- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于CPLD的多路信号采集系统实现方案
引言
存储测试的特点是集多参数微型传感器及信号调整、信息采集、信息存储及传输接口电路为一体,对被测物体的工作环境、运动控制等多通道、大容量参数进行(实时、动态)数据采集、存储、事后回收、数据再现、数据分析。目前,存储测试技术已经在许多重大武器型号的研制、生产中得到成功应用,并取得了一系列重要科研成果。解决了过去无法解决的重大测试难题,显示出了突出的优越性。[1]
2 硬件设计
2.1 系统框图:
本系统中有1路速变模拟信号、8路缓变模拟信号、4路数字信号。该采集系统能实现采集0~10V之间的模拟信号,其中单路速变模拟信号采样率不低于40Khz,8路缓变模拟信号采样率不低于12.5Khz,两者精度均在0.1%,同时还能够存储4路数字信号。信号记录时间均不低于0.75s,整体设计如图1所示。
2.2信号调理设计
在本系统中,由于模拟输入信号的电压范围是0~10V,所以此次设计使用LM324运算放大器组成的比例电路将输入信号变换成0~2.5V电压。然后输入模拟开关经过跟随器后,再输入A/D转换器。4路数字信号使用一个5V的稳压管,将输入数字信号中大于5V的高电平信号钳制在5V,起到了调压的作用。如果是低于5V,那么电压将不改变。
2.3输入通道设计
存储测试系统常常需要多通道同时采集。此次设计中根据被测信号的特点选用ADG506模拟开关进行各通道的切换,该模拟开关具有开关速度快、泄漏小等特点,从而用最简单的硬件电路完成多路信号的存储测试。
2.4采集芯片选用:
此次设计采用AD公司的AD7492采集芯片,AD7492为12位高速、低功耗、逐次逼近式AD转换器。它可在2.7V-5.25V的供电电压下工作,采样频率最高为1.25MSPS,从而为正确采集回速变、缓变信号提供保障。[2]
2.5存储电路设计
此系统中,我们共有1路速变模拟信号,8路缓变模拟信号,4路数字信号。首先,对于单路速变信号而言,其最低采样频率为40kHz,系统要求的最低记录时间为0.75S此次设计中,用了一个模拟开关和一个AD7492循环进行数据采集,将1路速变信号和8路缓变信号交叉安排在ADG506上,这样在每次速变信号采集后,紧接着采集8路缓变信号,经过循环交叉采集后,便使得速变信号采样率是缓变信号采样率的8倍,所以速变信号采样率为8×12.5kHz≥40kHz。其次,对于8路缓变信号,其单路采样率为12.5kHz, 记录时间为0.75s,共8路。最后,存储4路数字信号。由于我们采用12路的AD采集,所以4路数字信号与AD产生的高4位信号合起来组成8位一起存入512K的SRAM 628512。因此不再单独占用空间。由以上分析我们可以得到存储容量为:M≥12.5kHz×8路×2×0.75+12.5kHz×8次×2×0.75=300kbyte。为了方便读数和数据分析,在每组数据前加上通道标志位,以区分是哪一路信号。为了确保存储空间,此次设计我们一共选用两块容量为512K的SRAM进行数据存储。AD转换和CPLD处理后的采集信号通过74LVC4245电平转换后送入SRAM进行存储。[3]
[p]
3 CPLD实现计算机异步串行通讯设计
3.1异步串行通信的帧格式
在异步串行通信中,数据位是以字符为传送单位,数据位的前、后要有起始位、停止位,另外可以在停止位的前面加上一个比特位(bit)的校验位。其帧格式仍然采用1位开始位+8位数据位+1位停止位.如图2所示。此次设计中没有奇偶效验位。停止位,为逻辑1,总在每一帧的末尾。此次设计中停止位为1位。
3.2异步串行通信的波特率
串行口每秒发送或接收数据的位数为波特率。若发送或接收一位数据需要时间为t,则波特率为1/ t,相应的发送或接收时钟为1/t Hz。发送和接收设备的波特率应该设置成一致,如果两者的波特率不一致,将会出现校验错或者帧错。要产生9600b/s波特率,要有一个不低于9600 Hz的时钟才可以。为产生高精度的时钟,我们专门选取48M的晶振,通过5000分频,最终频率为48M/5000=9600BIT/S
3.3发送程序设计
根据采用的帧格式,需要发送的数据为10位(1位开始位、8位数据位、1位停止位),在发送完这10位后,就应该停止发送,并使发送端电平处于逻辑1,然后等候下次的发送。发送电路一共有3个并行进程如图3所示,进程1产生9600bps波特率,使系统能够以9600的波特率发送帧。进程2中,当允许写信号WR下降延时,发送完成标志位tdEmpty变为低电平,开始接受并行数据,并将数据放入锁存器锁存。当写允许WR标上升延时,发送完成标志位变为高。进程3,将放入锁存器中的并行数据并串转换,并依照帧格式,将10位数据,在TXD引脚上以9600波特率,串行输出经过串口芯片MAX232电平转换后实现与计算机正常通讯。
3.4接收程序设计
接收电路比发送电路要复杂,接收电路要实时检测起始位的到来,一旦检测到起始位到,就要将这一帧数据接收下来。接受电路一共设计有三个并行进程如图4所示,其中 进程1 负责产生9600bps波特率,使系统能够在9600的波特率与外界系统通讯。进程2 产生接收信号RXD的完成标志位,每次在接收到帧的起始位时,标志位RXDF变高,在完成接受数据后,标志位RXDF变低。进程3负责将RXD信号输入的10位串行数据,依照10位的帧格式,先去掉串口的接收起始位和接收结束位,取其中的8位有效数据,并将8位有效数据进行串并转换,变成并行数据后,由8位数据总线DATA0~DATA7并行输出。
4采集存储控制程序设计
4.1采样主控程序设计:
此次系统我们使用48M晶振,每路信号采样率不低于12.5khz,一共相当于16路模拟量,所以控制点为48M ÷ (16 12.5khz)=240点,所以主控计数器中有240个计数点可以用于控制。在0~240个点中实现了通道选通、启动AD、帧计数、两次SRAM地址递推等工作。每次循环结束后,系统主控计数器清零,反复循环采集。具体细节如图5所示。
[p]
4.2 各个模块的设计
在本设计中采用Altera公司EPM7064系列CPLD,程序使用VHDL语言编写,并在Quartus II环境下编译通过,程序主要有“采集模块”和“读数模块”。采集模块:在采集模块中,共有5个并行进程,其中在进程1中,首先在主控计数器COUNT=10时开始结合内部时钟COL信号来产生多路开关选通信号CNT,当COL='0'时: CNT=0000.COL='1'时:CNT=0001.以次类推一直到COL='15'时选通15路后,进程1停止。在进程2中,当主控计数器COUNT在130和150区间内时,且内部计数器信号COL在0~15范围内,则开始打开AD,开始采集。在进程3中如果主控计数器COUNT=185~255时打开RAM的写入状态。在进程4中当主控制计数器count=200和220时,结合内部时钟信号COL,分别选择存入高4位、低8位或者帧计数。进程5:count=235递推帧标志位和ADG506(模拟开关)选通标志位,具体见图6所示。[4]
读数模块:读数模块共分为3个并行进程:在进程1中,当时钟上升延时,且如果使能EN_R为高时,且电脑控制读数口CPUCLK='1'时开始读数。在进程2中,读完一次数据后,将RAM地址递推一次。进程3中,如果系统为读数模块有效时,数据将通过CPLD发送到MAX232通过异步串行的方法将数据上传,具体见图7所示。[5]
5 结束语
本文对多路数据采集系统的组成原理、单元电路设计、接口电路设计和系统控制程序设计进行了详细的阐述,完成了多路信号数据采集系统软硬件设计。使系统工作安全可靠,数据采集精度较高,抗干扰能力较强。具有良好的应用前景和很高的使用价值。
文章创新点:本文应用CPLD复杂可编程逻辑器件实现了:模拟/数字信号采集系统设计、异步串行数据传输等技术。并且通过使用多路切换开关循环采集的方法,实现对高速信号采集。有效控制了成本,提高了系统的完整性,可靠性,实用性。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:CPLD在双轴位置检测系统中的应用
下一篇:表面贴装技术