关键词:多通道,高速数据采集系统,CPLD,FIFO
1 引 言
随着数字信号处理技术及各种故障分析技术的发展,以及单片机的运算速度的提高,在一些由单片机构成的较小系统中对信号进行实时处理(如谐波分析等)已经成为可能,且越来越受到人们的重视。这就要求作为最底层的数据采集系统,既要具有很高的采样速率,又要能提供更丰富的原始数据信息。
常规采集方案为:(1)由单片机直接控制的采集方案,这是最简单最常用的控制方案。由于每次采样都要有单片机的参与,需占用单片机的时间,影响其数据处理,而且对于多通道、多个A/D转换器的控制,因所需处理的信息更多,则更加不方便。(2)由DMA控制的采集方案。此方案硬件电路复杂,若与单片机配合使用,需要单片机具有总线挂起功能(Hold功能),否则还需要进行总线切换。在总线挂起的时候,单片机就不能访问外部存储器和外部端口,如果单片机要访问外部数据,也只能等待总线的释放,这样就带来很多不方便,也影响数据的及时处理。
在电力系统的微机检测系统中或者其他数据巡检系统中,需要对多通道的数据作快速的采集分析,尤其是对于实时性很强的系统,更要求采集获得的数据必须实时准确地反映系统的运行情况,例如,故障录波和实时在线监测系统〔1〕〔2〕。本文提出了一种易与各种单片机系统接口的由纯硬件电路控制的多通道高速数据采集系统。它的自动采样硬件电路主要采用CPLD(Complex Programmable Logic Device)和FIFO(First In FirstOut)技术设计而成。该装置可以实现多路模拟量的高速采集,每一个模数转换器(ADC)可以采集10个通道的数据,并且多个模数转换器件的输出可以以总线形式进行扩展。
2 系统设计原理框图和基本设计思想
多通道高速A/D数据采集系统的设计原理框图如图1所示。
图中模拟输入量1至模拟输入量n是指每一个模数转换器(ADC)的采样通道数,模拟量经过低通滤波器预处理后,再进入采样保持器(S/H),经多路开关(Multi-channelSwitches)分时切换进入模数转换器,通过DSP(Digital SignalProcessing)芯片的触发,在CPLD器件的控制下,进入n个通道的一次循环采样,并将采样数据依顺序打入FIFO器件,DSP在每个采样结束后直接从FIFO芯片中读出数据即可。该多通道高速A/D数据采集系统的设计核心就是在DSP芯片的每一个定时中断时,从FIFO芯片中读入采样数据后,复位FIFO器件,触发CPLD进行硬件时序控制采样,采样过程不需要DSP芯片的参与,DSP芯片可以并行处理主程序中的数据。
3 芯片介绍
3.1 FIFO存储器件LH5496(H)简介
LH5496(H)是SHARP公司采用CMOS工艺制造的512×9位可以实现先进先出(FIFO)算法、可以进行异步读写操作的双端口存储器。它提供“全空”(/EF)、“全满”(/FF)、“半满”(/HF)状态标志,用以防止数据溢出或不足。扩展逻辑电路允许多片FIFO进行级联,在字宽和容量深度两方面进行扩展,而且不会增加额外的延时时间〔3〕。LH5496(H)功能引脚如图2所示。
读写操作会自动访问存储器中的连续存储单元,从FIFO中读出的数据顺序与写入的顺序相同,地址的顺序在内部已经预先定义好,对芯片的操作不需要额外的地址信息。芯片提供对读/写指针的复位功能(/RS),使内部读/写指针同时设置到初始位置。另外,它还对读指针提供单独的复位功能(/RT),仅把读指针设置到初始位置,实现对已读出数据的重新读取。该器件采用9位数据宽度,第9位用作控制位或奇偶校验位,在需要对传输进行奇偶校验的通讯系统中,该位可以被用到。IDT公司的LH5496(H)的存取时间可以有15μs、20μs、25μs、35μs、50μs、65μs、80μs几种选择。
需要注意的是,这是一个单向的FIFO双端口存储器,即,只能由D0~D8输入数据,由Q0~Q8输出数据,所以,读、写控制线只有一套。也就是说不能作为
双向的数据传送。另外,因为这是一个FIFO(先入先出)存储器,所以没有绝对地址的概念,只有读指针和写指针的相对位置。当相对位置为0时,表明存储器空;为所用的存储器的容量时,表明存储器己满。具体包括:
(1)写操作:只要/FF标志不为0,就可以进行写操作,且可以与读操作同时进行。每写一次数据,写指针自动加一,当写指针与读指针的相对位置为存储器的容量时,标志/FF清零。当/FF标志为0时,所进行的任何写操作都不会改变存储器中的数据,也不会改变写指针的值。此时的写禁止由内部控制。
(2)读操作:只要/EF标志不为0,就可以进行读操作,且可以与写操作同时进行。每读一次数据,读指针自动加一,当读指针与写指针的相对位置为0时,标志/EF清零。当/EF标志为0时,所进行的任何读操作都不会改变读指针,且读出的数据都为0FFH,即数据总线呈现高阻。
3.2 X95108芯片简介
X95108芯片是XILINX公司生产的CPLD芯片,它是X9500系列芯片,是一种ISP(在系统可编程)芯片〔4〕(http://www.XILINX.com,1998),它的主要特点有:7.5ns的pin-to-pin逻辑时延,工作时钟125MHz,具有108个宏单元和2400个逻辑门,每个宏单元可工作在省电模式,最多108个用户I/O引脚,采用ISP在系统可编程技术,可编程10000次以上,支持扩展IEEE1149.1边界扫描协议(JTAG),输入输出缓冲器可兼容5V TTL电平,5V CMOS电平,3.3V及2.5V CMOS电平,封装有84脚PLCC,100脚PQFT,100脚TQFP,和160脚PQFP供选择。
3.3 AD976A简介
AD976A是ANALOGDEVICE公司生产的一种高速16位模数转换器,其采样速率为200ksps,能够在单电源5V供电情况下工作,具有极低功耗的特点(http://www.ANALOG.com,1998)。它的输入信号范围为-10V~+10V,内含时钟、2.5V参考电源和误差校准电路,使用时,用户可选择外部参考电源亦可选择内部参考电源。芯片采用低功耗设计,最大功率消耗为100mW。AD976A在漂移、增益、线性度和SNR(信噪比)上作了严格的修正。有28引脚DIP、SSOP和SOIC封装可供选择。
4 系统设计原理及工作原理
4.1 A/D转换部分的工作原理
多通道高速A/D数据采集系统的采样部分的原理框图如图3所示。它由一片多路模拟开关MAX306,一片仪器放大器AD620,一片AD976A,两片数据缓冲接口器件74HC245构成了一个数据转换单元。MAX306是一个16路的多路模拟开关,本设计中输入了10路模拟量,其中,前9路接入采样的模拟信号。为了减小采样误差,在信号进入MAX306之前增加了采样保持LF398进行采样保持,第10路用于电源电压的监视。AD620是一个高精度的仪器放大器,本系统将其接成放大倍数为1的工作方式,AD976采用内部2.5V电压基准源,74HC245作为数据缓冲接口,输入接到AD976A的数据线上,输出接到连接FIFO的输入数据总线上,可以将多个这样的数据转换单元并接到总线上,通过每个单元的74HC245的使能脚选通。由于设计上是可以扩展的,即,将多个数据转换单元数据输出总线并联接到FIFO的输入总线上,所以,采用将AD976A的/BUSY位作为数据位最低位读入。由于是多通道多A/D转换器的工作模式,在设计时已经考虑到采样保持及转换时间的要求,并给出了一定的裕度,定时采样时不必判断A/D转换是否完成,而直接读取总线上的数据。在数据处理时,判
断最低位是否为0来确定本次采样数据是否有效,如果有效,则右移一位得到有效数据,当然,这样会降低采样精度,但对一般的数据处理系统,15位也已经足够了。如果无效,则舍弃本次采样数据,并累加无效次数,计数超过设定的次数,则应发出告警,提示AD976A采样异常。
4.2 CPLD实现全自动硬件采样的原理
FIFO与CPLD及与DSP(TMS320F206)、74HC245输出总线及外围器件的连接如图4所示。图中,X95108芯片的引脚只画出了与采样有关的一部分,另外与DSP接口及存储器等的片选信号没有画出。
FIFO的D0~D15连接到A/D转换单元的74HC245的输出数据线上,BD0~BD15则连接到DSP芯片的数据总线上。/WR F是由CPLD发出的将AD976A转换完成后的数据打入FIFO的写信号,/RD F是DSP采样数据从FIFO芯片中读出的读信号。/RST F复位FIFO芯片的信号,S/H是启动采样保持器工作在采样还是保持状态的控制信号,CH0~CH3是每一片A/D芯片的输入通道选择。由于每次采样前会复位FIFO器件,所以,每次采样开始时的读指针和写指针均指向第一个物理存储地址,只要采样的数据不超过256个字,/EF和/FF标志可以不读入判断,实际上,/EF和/FF标志引脚虽然连接到了X95108,但没有处理。X95108实现时序的控制,包括:启动采样,锁存数据,启动A/D转换,将数据打入FIFO存储器,通道号递增重复下一通道采样。
硬件控制采样逻辑实际上就是CPLD与采样保持器、A/D转换器、FIFO的时序配合,时序由CPLD在DSP触发采样后自动完成。
DSP芯片上电初始化时就给FIFO器件发一个复位信号,使FIFO器件的读指针和写指针复位,指向第一个物理单元,同时,去触发CPLD进入第一通道的采样逻辑,CPLD硬件逻辑如图5所示。
由于FIFO器件的读和写是完全独立的,所以,DSP芯片在每一个定时中断中,直接一次性地将所有采样数据从FIFO中读取数据,放入DSP的内存区域供处理,读完数据后,复位FIFO器件并重新触发CPLD执行下一点的采样,退出定时中断程序处理数据。
多个AD976A的转换是同时进行的,顺序进行的仅仅是从AD976A将采样数据打入FIFO存储器和从FIFO读出采样数据,所以,数据最高采样速率取决于以下几个部件的速率,即,采样保持器的采样时间,A/D转换时间,A/D中数据打入FIFO的时间,以及从FIFO中读出数据的时间。通过选用高速的采样保持器件和高速的A/D转换器件,可以提高采样的速率。
CPLD程序用VHDL语言设计,设计的关键是分析各个器件的工作时序和采样保持时间,A/D转换时间,打入数据等。VHDL设计的时序处理的进程中,要根据CPLD工作的频率计算各个等待周期,等器件准备好以后才能进行下一个处理。如图5所示,DSP触发复位FIFO信号和采样逻辑,CPLD先复位FIFO,然后启动采样保持器进行采样,插入等待周期,等采样完成以后,再发出命令使采样保持器保持数据,然后启动A/D转换器转换,插入等待周期,即理论上的转换完成时间加上一定的时间裕度,等待A/D转换结束,然后将数据打入FIFO,递增模拟通道号,进行下一通道的采样。
5 结束语
本文提出了一种易与各种单片机系统接口的由纯硬件电路控制的多通道高速数据采集系统。由于本采样电路是多通道高速采样,所以要合理地设计直流电源,在设计PCB板时,要注意合理布局和设置良好的静电屏蔽,还要考虑电磁干扰问题。如果是扩展多个A/D转换器,A/D选择的读入信号为X95108上的/BRD1~/BRD4,在X95108上还可以扩展读入信号,以增加A/D转换器,这时更应该注意总线的布局。它的自动采样硬件电路主要采用CPLD和FIFO技术设计而成。该装置可以实现多路模拟量的高速采集。在实际应用工频电流电压采样中,可以采集36路模拟量,每个周波(20ms)采样32点,工作非常稳定可靠,值得推广。
2 李维波,毛承雄,李启炎,等.陡脉冲大电流的Rogowski测 量线圈仿真研究.高电压技术,2002,28(8):11~133 窦振中编著.单片机外围器件使用手册——存储器分册.北京:北京航空航天大学出版社,1998
4 朱明程编著.XILINX数字系统现场集成技术.南京:东南大学出版社,2001
5 李刚,林凌,叶文宇编著.TMS320F206DSP结构、原理及应用.北京:北京航空航天大学出版社,2002
评论
查看更多