过严格测试的PCI接口功能模块价格昂贵,同时要求对PCI总线的操作时序非常了解,使得设计PCI控制接口难度较大,对于产品不大而又有时限的工程项目来说,成本过大。这样,在小规模的应用中,就限制了利用可编程逻辑器件来实现PCI接口。
2.2 采用专用接口芯片
采用PCI总线专用接口芯片,如PLX公司的PCI9054和PCI9052,AMCC公司的S5933和S5920等,设计者不需花大量的精力去了解PCI总线的详细工作机理,也不用考虑PCI接口芯片的具体构造,而只需要把精力集中于整个硬件系统的设计上,完成PCI芯片和微处理器的硬件接口设计即可,从而可以将复杂的PCI总线接口转换为相对简单的接口设计,使设计者可以将整个的精力放在系统设计上,从而大大缩短设计周期,这种芯片也具有较低的成本和通用性。
2.3 接口方案选择
通过对这两种接口实现方案进行比较后可知,采用CPLD或FPGA等可编程逻辑器件实现PCI接口优点在于其灵活的可编程性,但是技术上和经济上要求比较高,而且为了达到PCI规范的严格要求,需要作大量的逻辑验证、时序分析和程序调试,对于小范围的使用是完全没有必要的。而采用专用的PCI接口芯片无论从技术上还是从成本上来说都是比较理想的选择。
3 数据采集卡的功能模块介绍
基于PCI总线的数据采集卡主要由PCI接口模块,数据存储模块,AD转换模块以及CPLD逻辑控制模块等组成,其基本工作原理是通过高速A/D将外部模拟信道的信号进行采样,先将采样数据存储在FIFO中,当FIFO半满时,会产生一个半满信号HF通知CPLD使其产生控制信号用来控制PCI9054执行DMA传送,将数据读入到电脑内存中,这样就可以在电脑中对数据进行分析处理。
数据采集的过程如下:传感器出来的小电压、小电流信号经过信号条理,送到A/D转换模块,从而将模拟信号转换为数字信号后,送到FIFO中缓存起来,实现一级缓存,这些缓存的数据再通过PCI总线接口芯片PCI9054以主控的DMA方式送到计算机内存中。
数据采集的控制逻辑是由一片Altera公司的PLD芯片EPM3064构成的控制模块来完成的。控制模块的主要功能有两部分:一是产生分频信号,由于对采样频率要求不同,所以通过控制模块分频产生采样信号;二是根据FIFO模块的状态信号(FIFO半满、FIFO空)和接口模块的一些状态、命令信号,产生对A/D转换模块和FIFO模块的控制信号和对接口模块命令响应的状态信号。
3.1 PCI 接口模块
PCI9054是32位、33MHz的通用PCI总线控制器专用芯片。该芯片符合PCI总线规范2.2版,突发传输速率达到132MB/S。Local总线支持复用/非复用的32位地址/数据,可为M模式、C模式、J模式中的一种。PCI9054内部有六个可编程的FIFO,以实现零等待突发传输及局部总线和PCI总线之间的异步操作。PCI9054支持主模式(initiator)、从模式(target) 、DMA传输方式,可用于适配卡和嵌入式系统。其工作电压为3.3V,频率33.3MHz,局部总线频率可达50MHz。
该 PCI9054 接口的硬件电路主要分为 3 部分(PCI9054 接口电路原理图详见附录Ⅲ)。第一部分是PCI9054和PCI插槽间的连接信号线,这些信号包括地址数据复用信号AD[31﹕0],总线命令信号 C/BE[3﹕0]#,PCI 协议控制信号 PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、DEVSEL、PERR#、SERR#。第二部分是与串行 EEPROM 的连线,这部分有 4 根信号线:EESK、EEDO、EEDI、EECS,串行 EEPROM 的数据可以提前烧好,也可以在线烧写。第三部分是 PCI9054与 EPM3064 的连接,EPM3064 被选择作为该设计的控制器,利用其内部逻辑单元设计局部总线控制器,可用于实现局部总线的状态控制。
3.2 晶振部分
用来给 AD9240 提供工作频率 10MHz 的外部信号源(在调试时用)。 3.3 AD 转换模块
由AD公司推出的模数转换芯片AD9240,此芯片最高的转换率为10MSPS,转换精度为14Bits,供电电压为5V,输出为TTL电平,AD9240在设计上将诸多的外围电路如采样保持、基准参考电压电路等都集成到了内部,将用户所需的工作降到了很低的程度。
AD9240采用低成本的CMOS处理技术,由四级宽带输入取样保持电路(SHA)的流水线结构组成。每个流水线结构单元至少包括一个低分辨率的快闪A/D转换器,一个与A/D转换器相连的开关控制的DAC和一个级间剩余电压放大器
(MDAC)。剩余电压放大器放大重构的DAC输出与快闪输入端之间的电压差。最后一个流水线仅由快闪A/D电路组成。
3.4 数据存储模块
在接口芯片PCI9054中用于DMA的内部FIFO容量只有32 DWord大小,远不能满足高速连续大容量数据采集的要求,同时为了能高速连续的采集信号,存储器模块必须有读和写同时进行的能力。采集数据和处理数据应该是按照时间顺序进行,选择的FIFO的处理速度应小于15ns(1/66M),为了能连续的采集信号,要求FIFO有HF标志(半满标志)。