首页 » 解决方案 » 三十二通道扫描PCI数据采集模块设计

三十二通道扫描PCI数据采集模块设计

作者:  时间:2009-03-02 22:32  来源:
  数据采集和传输控制逻辑的实现

  为了便于控制,本设计在FPGA内部嵌入一个NIOSII软核处理器,NIOSII处理器通过 Avalon总线与外设通信,根据设计的要求,在NIOSII处理器中定制带中断的定时器、DMA控制器、SPI控制器和PIO控制器。由于设计要求最高采样率是200KSa/s,而AD7612从启动采样到得到稳定的数据时间是1.5μs ,所以通过设定定时器最短的时间5μs(<200KSa/s任意设定,可以通过实时设置定时器的值来完成)来实现。每隔5μs,定时器计数到0,产生一次IRQ中断,在中断服务程序中执行如下操作:

       读取ADC采集的结果;

  是否需要改变输入方式和增益,如果需要,送下一个值;

  送下一个通道码;

  判断ADC缓冲池( 30K×16bit FIFO)是否已满,如果满则把读取的数据扔掉,否则把数据送到FIFO中;

  在送数据到FIFO的同时,也需要复制数据到RAM中。RAM数据的存储需要在FPGA中设计一个20bit的向上增加的地址计数器来制定数据的存储位置,也要设计一个数据比较器,当计数器计满时,跟数据比较器预设的值相等,产生一个电平,将RAM的数据通道断开,同时告诉NIOSII启动DMA控制器,在PCI9054的本地总线和RAM之间建立一个DMA通道,把数据取走。图4是系统控制流程图。

系统控制流程图

  PCI接口控制时序

  本设计采用PCI总线作为数据总线连接采集模块和上位机进行通信,用以实现数据的分析处理和历史显示等功能。

  由于本文设计的采集模块需要工作在连续采集的系统中,所以当存储器存满之后,需要快速地输出通道并将数据通过PCI接口传输出去,本设计采用DMA的方式传输数据,这样做既可以不占用CPU资源,又能实现快速的数据传输。基于以上原因本设计选用PCI接口芯片PCI9054作为总线控制器和上位机通信。该芯片符合PCI2.2总线规范,支持低成本从属适配器,PCI时钟为0~33MHz,基本可达到60Mbyte/s的平均传输速率。

  FPGA按照PCI9054的读写时序设计读写控制逻辑,接收上位机传来的命令,对电路进行相应的设置后,启动ADC采集数据,然后将采集的数据送到ADC缓冲FIFO中(或者控制将存储在RAM中的数据),当FIFO满后(或者RAM满后)通过相应的传输方式将数据发送到PCI9054的本地数据线上,并将地址译码作为局部器件的地址片选,从而实现对PCI总线的局部器件的访问。PCI9054从模式的局部总线包括局部时钟线LCLK,数据线LD[31..0],地址线LA[31..2],控制状态线ADS#,LBE[3..0]#,BLAST#,LW/R#,READY#和仲裁线LHOLD和LHOLDA。本设计使用了16位的本地数据总线和24位地址总线进行数据传送和地址译码控制。PCI9054 DMA方式工作时序图如图5所示。

PCI9054 DMA方式工作时序图

  结论

  通过详细分析各种数据指标,本文所设计的PCI数据采集模块,充分考虑设计中各种影响信号质量的因素,包括噪声的抑制和信号衰减等。合理的设计保证了PCB板设计方面的电磁兼容性和信号回路方面的要求,同时综合考虑各种方案,减小了PCB板的尺寸,减少了设计成本。通过FPGA内嵌NIOSII和扩展的CPLD可靠地实现了三十二个通道不同输入方式、增益改变、顺序扫描或者点名扫描的要求,通过定时中断实现最高实时采样率200KSa/s和低于200KSa/s时任意采样率的设置指标。通过选用高精度的ADC实现了设计对16bit分辨率的需求,合理的元件选择保证了检测信号的幅值范围为±100mV、±1V、±10V的各种量程需求。通过真实的硬件测试,各项指标均得到满足。本文设计的PCI扫描采集模块适用于最多三十二通道扫描采集的场合,同时根据设计思路可以扩展更多输入通道和更高采样速度和分辨率的采集模块。

相关推荐

基于Web的MCF5249数据采集系统的设计

Web  MCF5249  数据采集  2011-08-18

探地雷达信号的数据采集与显示研究

数据采集  探地雷达  2011-08-18

基于Virtex5的PCI-Express总线接口设计

PCI  Virtex5  2011-08-16

多路跟踪滤波同步数据采集系统的研究

AD73360L  数据采集  2011-08-01

为铁路谐波干扰的研究搭建一个数据采集和监控系统

数据采集  2011-07-25

外接PCI-E标准计划挑战Thunderbolt

PCI-E  hunderbolt  2011-06-24
在线研讨会
焦点