三十二通道扫描PCI数据采集模块设计
引言
数据采集模块是自动测试系统中的主要功能模块之一,在光谱分析、医疗成像等领域,通常需要组建多时基、多通道虚拟仪器系统,有些领域要求输入信号频率并不高,从几赫兹到几百赫兹。对于不同频率范围的信号,通常要求的采样率也不同。有时为了配合信号处理算法,甚至要求采样率可以在一定范围内随意设定。这些应用通常要求多个通道循环扫描采集,甚至是差分单端方式可选择的输入,对于不同的应用还要求增益的可变性。针对这些要求,本文介绍了一种三十二通道扫描数据采集模块的设计方案。该方案最高采样率为200KSa/s,存储深度IM×16bit ,垂直分辨率16bit,增益可编程为1、2、5、10、100五个等级的PCI数据采集模块的设计与实现。
总体设计方案的确定
根据上述系统的技术指标,本设计硬件电路主要包括信号调理电路、信号输入方式选择电路、程控增益电路、A/D转换、数据存储、触发控制以及PCI接口几个部分。三十二个通道的模拟信号经过信号调理电路使信号的带宽、峰值和偏置电压等达到ADC的输入信号要求后,经过单端变差分的转换(前端也可以是直接输入的三十二路差分信号),通过多路开关选择输入的多种方式,再通过两级可编程增益仪用放大器进行增益的控制,然后进入ADC把模拟信号转换成相应的数字信号。逻辑控制单元在接收到采集命令后,根据相应的触发方式启动ADC进行采样,采样得到的数据通过FPGA内部FIFO直接发送到上位机处理或者存储到高速的静态RAM中以便历史显示。三十二个通道共享RAM最大的采样速率是200KSa/s,那么连续采样存储时间最大可以达到4s。上位机通过32位的数据总线,采用查询、中断或者DMA方式将采集的数据读取到内存中进行后期的数据处理和分析。基本结构如图1所示。
信号调理电路设计
本设计信号调理电路包括输入方式选择电路和增益选择电路。将经过前端模块调理电路变成的三十二路差分信号(或者直接从接口输入的三十二路差分信号)通过低导通阻抗、低泄漏电流、带过压保护的多路模拟开关切换成一路差分通道,再通过普通运放构成的电压跟随器进行阻抗变换,避免后级的多路开关的导通阻抗影响前级电路。多路开关选择DG408,它是八选一多路开关,具有较低的导通阻抗和低功耗、低泄漏电流。通过八个DG408把三十二通道的差分输入变换成四通道的差分输入,再通过一个DG409(4路差分开关),将输入信号变成一路差分输入,然后再经过一个DG409选择信号的输入方式,通过这样的电路能实现四种输入方式:零输入、单端正极输入、单端负极输入和差分输入,电路如图2所示。
选择一种输入方式后,经过两级可编程增益仪表放大器AD8250,可以实现增益值可选1、2、5、10、100五个等级。AD8250具有较宽工作电压范围,可以工作在±5V~±15V;输入阻抗可以达到G?级别,有效防止了消耗的衰减;单个AD8250有1、2、5、10四个增益选择,在G=10的时候仍具有最小98dB的高共模抑制比和低增益漂移。AD8250有两个增益控制端A0、A1,通过写这两个位选择增益值,通过WR可以锁存状态值,从而稳定保持在该增益值上。本设计通过在FPGA内部内嵌32bit NIOSII软核处理器,NIOSII通过SPI总线传送数据给CPLD然后控制选择信号的输入方式和写AD8250增益控制位。增益选择电路如图3所示。
数据采集与控制电路设计
A/D转换器是数据采集系统的核心,对A/D器件的选择往往影响到整个系统的性能指标,甚至可能需要重新设计电路。为了实现三十二通道扫描采样,本设计采用多路提取技术,把三十二路差分输入信号经过两级多路开关提取出一路差分信号,再通过增益变换电路将差分信号变成单端模拟信号输入到ADC中进行采样,通过FPGA控制CPLD定时扫描的方式实现三十二通道轮流采样。本设计选择的A/D转换器是ADI公司的AD7612,它具有-路双极性的高阻抗输入,采样速率为750KSa/s,具有可选择的并行或者串行的输出接口,容易与其他器件连接。AD7612内部集成了采样的时钟电路,具有可选择的内部2.5V参考电压或者外部用户自己提供的参考。AD7612有四个差分输入范围和三个差分输入模式,不同的模式对应不同的特点。Warp模式具有最快的吞吐率,正常模式具有最快的异步吞吐率,脉冲模式可以实现吞吐率和功耗的线性映射。根据技术要求本设计选用正常模式,采用并行16位数据的输出方式和FPGA直接接口。根据AD7656的内部时序将采集的数据并行输出到数据缓冲池和SRAM中。
本设计数字控制部分由FPGA和外扩的CPLD共同合作完成。FPGA内部嵌入一个NIOSII软核,负责数据采集、数据传输和输入
- 为什么要进行信号调理?(09-30)
- 利用软件工具实现数据的采集和分析 (09-28)
- 高精度微功耗数据采集系统设计与应用(11-03)
- 多通道数据采集系统(11-12)
- 在LabVIEW中驱动数据采集卡的三种方法(04-21)
- 基于dsPIC30F的高精度数据采集器的研制(10-23)