1 数据采集系统总体结构
DMA方式数据采集是指数据采集过程由底层数据采集单元完成,而数据采集结果不经过微处理器而被直接写入系统内存。底层数据采集单元依照上位机设定而高效运行,对微处理器的依赖程度低,能有效节省上位机软件开销,且数据采集实时性高。
数据采集系统的总体架构如图1所示,其中PCI核、DMA控制器与A/D控制器均在FPGA内部实现。为实现多路并行采样,可选用多片A/D器件并行处理的方式,在FPGA的高速状态机控制下,完成模拟信号经过多片A/D器件流水转换,并将数据采样结果储存到由Block RAM构建的高速缓冲RAM阵列中,采样时序由FPGA生成,保证了多路并行采样的高同步性。
FPGA采用Altera公司的Cyclone IV系列 EP4CGX150,内部带有6.3 MB嵌入式 Block RAM,支持最高频率167 MHz的存储区访问,易于设计接口友好的存储区[7]。在FPGA内部设计了数据FIFO用于实现总线速率匹配,PCI总线速率为32 bit、33 MHz,而数据采样流水速率为16 bit、20 MHz。为提高总线利用率,需设计数据缓冲来实现不同速率数据传输之间的速度匹配,而数据缓冲的深度取决于采样数据实时性要求。
采用以上结构具有如下优点:(1)底层A/D控制器提供精密采样时序,保证了ADC器件的采样吞吐,最大化地保证数据采样的实时性;(2)采用带DMA控制器的PCI接口与上位机进行数据交互,减少了上位机软件负荷; (3)基于单片FPGA芯片设计,结构简单而优化,可靠性高,可降低成本。
2 数据采集系统的实现
2.1 PCI IP核
PCI总线是独立于处理器的32 bit或64 bit局部总线,在32 bit/33 MHz时,可达到132 MB/s的带宽;在64 bit/66 MHz 时,可达到528 MB/s的带宽[1]。通常PCI总线接口通过专用的PCI桥芯片或带PCI控制器DSP器件(如TMS320C6205等)实现。
Altera公司推出的 PCI Compiler 软件包可以参数化地生成应用于PCI总线的IP核,基于该IP核可生成符合32 bit/33 MHz PCI 2.2规范的主从控制器,包含了PCI总线的全部功能,能实现总线协议的转换,并将复杂的、时序要求高的PCI总线操作,转换成易于使用本地总线(Local 总线)的接口逻辑[6]。
PCI IP核的结构如图2所示,包括:(1)配置寄存器:用于保存PCI设备的基本信息;(2)PCI地址数据缓存:用于缓存PCI总线上的地址信号;(3)主模式接口控制模块:负责在主模式(Master)下对PCI总线的操作;(4)从模式接口控制模块:负责在从模式(Slave)下PCI总线的操作;(5)奇偶校验器:当数据校验出错时,生成一个错误信息输出到配置寄存器;(6)本地主模式控制模块:负责主模式下的本地接口控制逻辑;(7)本地从模式控制模块:负责从模式下本地接口控制逻辑;(8)本地逻辑接口模块:负责控制本地端接口的地址、数据、控制、字节使能等[6]。