8通道并行数据采集PCI模块的设计
扫描二维码
随时随地手机看文章
数据采集是自动测试系统的主要功能之一,而在一些应用领域,比如超声、医疗电子中,信号的频率范围不同会要求采样率的不同。有时,为了配合信号处理算法,甚至要求采样率在一定范围内随意设定。而且,这些应用通常要求多个通道并行采集,甚至是差分单端方式可选择的输入。针对这些要求,我们提出了一种最多可达12通道的同步并行多通道数据采集方案。该方案能实现的最高采样率为10MS/s,存储深度2×32M×16bit(2个SDRAM),垂直分辨率14bit,可编程增益为1、2、5、10、100五个等级。
设计方案的确定
硬件电路主要包括信号调理电路、信号输入方式选择电路、程控增益电路、A/D转换、数据存储、触发控制以及PCI接口几个部分。8个通道输入的模拟信号经信号调理电路调理后,进行单端变差分的转换(前端也可以是直接输入的8路差分信号),由多路开关选择输入方式后,再通过两级可选择增益放大器进行增益控制,最后进入ADC转换成相应的数字信号。而逻辑控制单元在接收到采集命令后,会根据相应的触发方式启动ADC进行采样,再将采样得到的数据通过FPGA内部串并转换逻辑和数据输出仲裁逻辑存储到SDRAM中准备上传。本设计的采集极限指标是8个通道同时同步采集,最大采样速率是单通道10MS/s,连续采样存储时间最大可以达到3.2s。上位机通过32位的数据总线采用查询、中断或者DMA方式将采集的数据读取到内存中进行后期的数据处理和分析。系统的基本结构如图1所示。
图1 系统原理框图
图2 信号输入方式选择电路
信号调理电路设计
在本设计中,信号调理电路包括输入方式选择电路和增益选择电路。此部分中,高输入阻抗、低输出阻抗的普通运算放大器构成的电压跟随器会对前后电路进行隔离,避免后级多路开关的导通阻抗影响前级电路。输入端加两个二极管,提供±15V的钳位电压,形成过压保护。多路开关选择DG409,它是4通道差分多路开关,具有较低的导通阻抗和低功耗和低泄漏电流。信号的输入方式有四种:0输入、单端正极输入、单端负极输入和差分输入,通过DG409正好可以选择这四种输入方式,电路如图2所示。
选择一种输入方式后,经过两级可编程增益仪表放大器AD8250,可以实现增益值可选1、2、5、10、100五个等级。AD8250有两个增益控制端A0、A1,写这个两个位,能选择增益值,并通过W/R锁存状态值,从而保证该增益的稳定。本设计通过在FPGA内部设计串行传输逻辑,将数据写入CPLD,然后控制选择信号的输入方式和写AD8250增益控制位。增益选择电路如图3所示。
图3 增益选择电路
数据采集与控制电路设计
A/D转换器是数据采集系统的核心,对A/D器件的选择往往影响到整个系统的性能指标。为了实现8通道并行同步采样可以采用两种方案。一是采用8个独立的A/D转换器,这样不仅成本比较高,而且难以实现8通道同步采样,绘制PCB板的时候也有很大的困难。第二种方式就是本设计的方法,采用一个AD9252来满足最多8个通道的并行同步采样要求。本设计通过NIOSII软核处理器向AD9252发送控制字,以实现8通道并行同步采样。首先,输出14bit的LVDS信号到FPGA,经由串并转换逻辑输出14bit并行数据,再通过仲裁逻辑实现不同通道数据存储位置的不同,最后通过两片SDRAM的乒乓操作实现连续数据采集和传输。
本设计数字控制部分由FPGA和外扩的CPLD共同合作完成。由于设计需要大量的引脚资源,而FPGA的引脚资源有限,所以在FPGA外部通过SPI总线接口外接一片CPLD,从而控制8个通道的输入方式选择和增益选择。FPGA内部嵌入一个NIOSII软核,负责数据采集、数据传输和输入方式以及增益的选择控制。下面详细分析一下这三个数字控制电路的实现方法。
1信号输入方式和增益选择控制逻辑的实现
FPGA和CPLD之间通过串行总线通信。通过在FPGA内部构建一个8bit地址总线,8bit数据线的RAM块,用来存储输入方式和增益选择控制数据。8bit地址线的前三位用来控制通道号,后五位控制所在通道的20种选择状态(4种输入方式,5种增益选择)。8bit数据的前两位是输入方式的选择码,后六位是增益选择码。在FPGA内构建一个地址计数器来进行通道的选择数据提取,该计数器的时钟频率是SPI控制器时钟的32倍。
在CPLD中构建一个48bit的串并转换逻辑,把输入方式选择码和增益选择码送到相应的引脚,从而实现信号输入方式和增益选择控制逻辑的实现。
2数据采集和传输控制逻辑的实现
本设计在FPGA内部设计逻辑如下:
● 读取ADC串行LVDS数据流,然后通过串并转换逻辑把串行数据流变成并行数据流;
● 内部设计SDRAM的控制逻辑,实现数据的存储,通过内部的仲裁逻辑实现不同通道的数据存储按照一定的时序存储在SDRAM中;
● 判断第一个SDRAM已经满后,通过片选切换逻辑把数据存储在第二个存储器中,同时通过DMA方式把数据传输到上位机。
图4 控制逻辑框图
图4是FPGA内部控制逻辑框图。
3 PCI接口电路设计
本设计采用PCI总线作为数据总线连接采集模块和上位机进行通信,用以实现数据的分析处理和历史显示等功能。
由于设计中的采集模块需要工作在连续采集系统中,所以当存储器存满之后,需要快速输出通道将数据通过PCI接口传输出去。本设计采用DMA的方式传输数据,这样做既可以不占用CPU资源,又能实现快速的数据传输。我们选用了使用比较稳定的专用PCI接口芯片PCI9054作为总线控制器和上位机通信。该芯片符合PCI2.2总线规范,支持低成本从属适配器PCI时钟为0~33MHz,理论的数据传输速率可达132Mb/s,实际速率为60Mb/s。
图5 PCI接口电路
本设计中,PCI9054被配置为从模式,用FPGA作为主控制器实现数据的传输控制。PCI9054有三种总线操作模式:M模式、C模式和J模式。M模式主要是配合MPC850/MPC860处理器使用的,主要用在电信领域。J模式用来满足接口设计比较复杂的情况,C模式主要为通用模式。本设计采用C模式,接口电路如图5所示。
FPGA按照PCI9054的读写时序设计读写控制逻辑,接收上位机传来的命令,对电路进行相应的设置后,启动ADC采集数据,然后将采集到的数据送到SDRAM中;当一个SDRAM满后产生一次中断,将已经满SDRAM的地址线映射到PCI9054的本地数据线上,同时通过本地主控方式配置PCI9054的DMA控制器,通过DMA方式将SDRAM中准备好的数据上传。本设计使用了14位的本地数据总线和24位地址总线进行数据传送和地址译码控制。
结语
通过充分考虑设计中可能出现的各种影响信号质量的因素,设计了过压保护电路。通过选用合适的元件减少了电路板设计复杂程度,以及成本的最优化。经过实际测试,模块很好地达到了本文所提及的技术指标,具有很高的实用性。