首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ADS8344和FPGA的高精度数据采集前端

ADS8344和FPGA的高精度数据采集前端

  数据采集在工业测试系统中是一个很重要的环节,其精确性和可靠性是至关重要的。本文阐述的数据采集系统精度高达16位,能够对8个外部模拟通道进行A/D采样,最大模拟输入信号范围达到-15~+15V。该系统具有限幅保护功能,程序编写简便,能够实现对远端数据的采集和传输。
  1 系统硬件设计
  数据采集系统框图如图1所示。

  图中,A/D转换器采用了TI公司的16位逐次逼近型ADS8344;FPGA主要用于控制ADC的启动、停止和查询ADC状态等,同时对数据进行高速数据缓冲、异步数据编解码、无线信道编解码等数据处理。
  1.1 主要芯片ADS8344
  ADS8344是一款高性能、低功耗的ADC,采用2.7~5V单电源供电,最大采样频率为100 kHz,信噪比达84dB,自带采样/保持电路,包含8个单端模拟输入通道(CH0~CH7),也可合成为4个差分输入。参考电压VRFF的范围为500mV~VCC,相应的每个模拟通道的输入为0V~VREF,DS8344是通过三线SPI接口与FPGA相互通信的,数据从DIN引脚输入到8位只写控制寄存器。当FPGA读取完ADC上次转换
结果时,下一个转换通道的控制字节就写到了DIN引脚。一个完整的控制字节需要8个DCLK时钟。写完控制字节的同时,模/数转换结束,模/数转换状态输出引脚BUSY产生一下降沿,数据输出有效,FPGA开始接收由DCUT输出的转换结果。16位串行数据需要16个DCLK时钟,在接收串行数据的LSB位时,下一个通道的控制字开始输入到A/D芯片。ADS8344完成一次完整的数据采样保持、转换和输出共需要25个DCLK时钟。ADS8344串行接口时序如图2所示。

  1.2 信号调理电路
  数据采集前端的调理电路如图3所示。2个运放选用的是TI公司的精密仪表放大器OPA277。由于输入模拟电压信号为双极性,范围为一15~+5 V,而ADX8344模拟输入通道为O V~VREF(本系统是+5 V),所以必须对输入信号进行单极性转换。

  其传递函数为:

  式中:VOUT为转换后的单极性电压信号;VREF由电压基准源提供,在图中是+2.5V;VIN为输入的一15~+15 V电压信号。当R3=6R1、R4=6R2时,传递函数可化简为:

  可见,传递函数是线性函数。只要正确选择精确的电阻值,一15~+15 V电压信号可线性转换为O~+5V,从而保证了系统的精度。
  1.3 无线通道
  本系统是按用户的要求设计开发的,其中,无线通道是由用户提供的。本系统采用的无线通道是点对点传输,传输距离最远达40 km,传输速率最高达11 Mbps,对标准异步串口数据是透明传输。A/D电路输出的数据经FPGA高速数据缓冲、异步数据编码、无线信道编码等数据处理后,送到无线通道进行无线传输。远端的无线接收机接收到数据后送到FPGA进行无线信道解码、异步数据解码等处理,恢复A/D采样数据,然后或者送到D/A电路进行模拟量输出,或者重新进行异步数据编码送到PC机,由PC机对数据做进一步的分析处理。
  2 软件设计
  本系统的软件设计包括了FPGA硬件描述语言编程和PC机应用程序。
  2.1 FPGA编程
  FPGA编程使用VHDL语言,主要包括对ADS8344的数据读写、异步数据编解码等。使用FPGA很容易实现SPI接口间的通信,对ADS8344的数据读写仅用两个进程就可以实现。部分程序如下:
  (1)写数据进程

  程序中的8位控制字节是在另一进程中根据用户要求进行配置的。控制寄存器格式如下:

  控制寄存器各位的功能说明如下:
S——控制字节开始位。为高时,才表示输入的字节有效。
A2~AO——模拟输入通道选择位。
SGL/DIF——模拟通道输入方式选择位。为高时,为单端输入i为低时,为双端差分输入。
PDl~DO——功率管理选择位。
返回列表