基于AD7714的高精度隔离数据采集系统

数字信号采集

8人已加入

描述

  在高精度及多路采样设备中,A/D芯片选用的恰当与否对系统整体性能的表现好坏非常关键。目前,由于数字信号处理技术的快速发展,对信号采集前向通道的器件要求也不断提高,特别是对器件的采样分辨率、采样速度以及采样通道数等参数的要求越来越严格。

  本系统测量采用极化继电器的力臂控制盒仪器设计,需要测量的数据变化范围大,精度要求高,测量的通道数多。同时,由于本系统测量电路相对复杂,各信号间容易产生干扰,而高速运转的电机信号产生的干扰将会使系统瘫痪。针对上述情况,笔者采用多路输入、高精度的A/D转换器AD7714,与MCU之间的通信采用光电隔离技术。

  1 AD7714的基本情况

  AD7714是一个完整的用于低频测量应用场合的模拟前端。它的3线串行接口与SPI、QSPI、MICROWEIR兼容。通过软件可对增益设定、信号极性和通道选择作出配置。AD7714的主要特点如下:

  ◇最高可实现24位无误码输出,同时保证0.0015%的非线性度;

  ◇具有前端增益可编程放大器,增益值为1~128,内含可编程低通滤波器和可读写系统校准系数;

  ◇有5通道输入,可根据需要采用3路差分输入或5路准差分输入;

  ◇低噪声(《150 nV rms);

  ◇低功耗,典型电流值为226μA(省电模式仅为4 μA);

  ◇采用单5 V供电(AD7714-5)或单3 V供电(AD7714-3)方式。

  AD7714提供24脚DIP、SOIC、TSSOP及28脚SSOP封装。其引脚功能如图1所示(以24DIP封装为例)。AD7714的功能方框图如图2所示。

  数据采集

  数据采集

  2 系统中的实际应用

  2.1 AD7714外围接口配置

  POL时钟极性。输入低电平时,数据传送操作中串行时钟的第1个跳变是从低电平至高电平。输入高电平时,数据传送操作中串行时钟的第1个跳变是从高电平至低电平。

  RESET逻辑输入端。低电平有效输入,它把器件的控制逻辑、接口逻辑、数字滤波器以及模拟调制器复位到上电状态。本系统是通过在DIN输入端写入一系列的1来进行软件复位,使AD7714返回到等待对通信寄存器进行写操作的状态。

  用软件进行复位需要注意两点:一是AD7714的DIN线写逻辑1至少达32个串行时钟周期;二是写到任何寄存器的信息是未知的,因而要再次设置所有的寄存器。

  CS芯片选择。用于选择AD7714的低电平有效逻辑输入端。当此输入端由硬件连线设置为低电平时,AD7714工作在其3线接口模式。

  SYNCL逻辑输入端。当使用多个AD7714时,它用于数字滤波器和模拟调制器的同步。

  2.2 AD7714与MCU的接口

  AD7714与MCU之间的接口关系如图3所示,图3中给出了输入和输出的电路转换。为了能够获得稳定的数据,AD7714与MCU之间加入光隔离器。光隔离器件采用的是隔离电压高、速度快、共模抑制性强的6N137。由于6N137的速度快,编程中不需要进行适当的延时就能满足光隔离器的电平建立时间。试验表明通过光隔离器,获得的稳定数据能够增加3~4位(二进制位)。

  AD7714的CS接地,使AD7714始终工作在SPI接口模式。对每个接口模块的控制是通过74LSl25的三态允许端来实现的。对其中一个SPI接口操作时,使其74LSl25处于选通状态,而其他SPI接口的74LSl25处于高阻状态。这样可实现微处理器单独对一个接口进行操作,而不影响其他接口。CPU通过对三态缓冲器74LSl25控制,可实现多个接口共用相同的数据线。图3中的DA-CS是控制具有SPI总线的D/A转换器芯片。

  6N137外部元件电阻根据自己的实际情况来选取,即不宜过大也不宜过小。为了增加稳定性,最好在电阻的两端并上电解电容。

  数据采集

  2.3基准电压源AD780

  高精度参考电压源AD780为AD7714提供基准电压。其基本特性:通过8脚的悬空或接地,可实现2.5 V或3.0 V的输出;输出电压范围在2.5 V±1 mV或3.0 v±l mV;输入电压范围可从4~36 V来实现2.5 V或3.0V的输出。

  在使用AD780作基准电压源时,其周围的电容一定要按照图4上所给的进行配置,否则,输出的精度会下降很多。特别要注意AD780输出端和地的100μF电容,试验表明这个电容可以使系统的精度提高2~3位(二进制位)。

  数据采集

  2.4 AD7714的模拟前端

  在模拟前端所要测量的电流和电压很多,并且变化范围很大。为了能够提高测量精度,必须根据电压和电流的大小来设计合理的电压表和电流表。在图5中,通过合理的选取R1和R2的阻值以及使其短路或开路,来实现电压表和电流表。

  设计电流表时,将R1短路,选取相应的R2电阻,R2的电阻是通过AD7714最大输入电压以及所要测量的最大电流来计算的。设计电压表时,如果测量的电压在AD7714输入电压范围内,将Rl短路,R2开路直接测量;如果测量的电压超过AD7714输入电压的范围,合理的选取R1和R2阻值分压,来满足测量的要求。

  AD7714的输人通道由AIN(+)和AIN(一)成对排列,AIN(+)输入端上单极性和双极性信号作为基准的电压是各自AIN(一)输入端上的电压。例如,如果开关SW在图5中的位置,即AIN(+)接入AD780输出电压+2.5 V,AD7714配置为单极性,若设定增益为2,那么AIN(+)输入电压范围为+2.5~+3.75 V。如果在相同的配置下,改为双极性,那么AIN(+)输入电压范围为+1.25~+3.75 V(即2.5士1.25 V)。如果通过SW开关使其AIN(一)为AGND,那么器件不能配置为超过±30 mV的双极性范围。

  数据采集

  如果外部电压和电流有很大干扰,测量的精度就会受到很大影响。在AD7714的每个模拟输入端都加上一个对地电容(如图5中C1和C2),通过实验表明对其精度有很大提高。电容的选取要根据自己的转换速率以及外部的干扰来选取。

  2.5 LDC5-24S5电源模块

  外部所能提供的电源是27 V,由于电源稳定性差以及来自外部的干扰会影响系统的正常工作,同时笔者所需的电源工作电压为单+5 V。因此,选用了LDC5-24S5直流一直流开关电源模块,其输入电压范围为18~36 V直流电压,输出为单+5 V。该电源模块有很好的DC-DC隔离作用,输出电压很稳定,用它可直接作为AD7714的电源,从而简化了整个电路。

  3 实际使用中的问题和解决方法

  3.1 如何滤除模拟输入端的干扰

  AD7714的模拟输入端可以接受单极性或双极性的输入电压范围。双极性输入范围并不意味着器件在模拟输入端可以处理负电压。为了确保器件的正常工作,模拟输入不能变到比一30 mV更低。本系统需要测试的电压有一个是27 V,它由带有高速电机的设备输出。如不加处理直接进行测试,由电机产生的过低负脉冲或过高正脉冲都会影响AD7714的正常工作,严重时会永久性损坏AD7714芯片。笔者通过大量的分析和试验,得出了如图6所示的理想滤除脉冲的电路图。其中LI和I.2是用双孔磁芯缠绕而成,C3的大小根据自己测量的实际情况来定。

  数据采集

  3.2如何制作印制板和元件装接

  为了使ADC获得最佳的性能,必须使用模拟地和数字地分开的印制电路板。在印制电路板的设计中,特别要注意地线的布置。通常把模拟地和数字地独立设置在各自电路中,然后把模拟地和数字地连到一点(星号标志)。

  在系统中,2片AD7714设计成2个独立电路板,那么可把该片的AGND和DGND引脚一起连到地平面。如果系统中有多片AD7714,那么可把多块芯片的AGND和DGND引脚相连,而后连到一个公共点,而这个公共点应尽量靠近AD7714的星形地。

  数字地严禁设计在芯片下面,因为这样会把噪声耦合给芯片,从而影响ADC正常工作。但是应当使模拟地在芯片下面运行,因为这样能减少数字噪声的耦合。AD7714的电源引脚输入线应尽可能宽,以提供一个低阻抗通道,从而降低电源线上脉冲的影响。

  由于AD7714是高分辨率的ADC,因而电源的耦合电路尤为重要。因此在印制电路板设计时,应对所有的模拟电源输入都加一级去耦电路,即用10μF钽电容和0.1μF陶瓷电容并联到地。这些去耦电路的元件应尽可能靠近芯片的电源引脚,这样才能获得更好的去耦效果和消除引线过长而带来的干扰。

  3.3如何从AD7714获取更多的稳定数据位

  在满足整个系统需要的前提下,应尽量降低单片机的工作频率,这样可以获取更多的稳定数据位。在印制板采取良好的抗干扰措施前提下,如果干扰仍然比较严重,那么软件上也应采取相应的措施,比如采用软件冗余技术进行相同命令的多次写入,以保证可靠操作。

  4 编程要点及相关的子程序

  4. 1 编程要点和注意事项

  ①AD7714具有8个片内寄存器,通过对片内寄存器的编程,可以实现通道选择、增益选择、滤波频率选择、转换周期选择、自动校准和A/D转换等功能。对AD7714的任何一种操作,必须首先对通信寄存器写入相应代码,然后才能对其他寄存器读写,RS2、RSl和RS0对8个片内寄存器选择的关系如表1所列。

  数据采集

  ②读A/D数据时,A/D首先输出数据最高位,最后是数据最低位;在对A/D内部寄存器进行写操作时,也应首先写人最高位,最后写入最低位。

  ③校准寄存器和数据寄存器是16位或24位寄存器。对于8位微处理器来说,16位或24位寄存器数据,需要分2个字节或3个字节进行读写操作。

  ④AD7714的串行接口具有仅用3条线工作的能力,它与SPI接口协议相兼容。A157714数字输入的上升和下降时间(特别是SCLK输入)应当不长于1μs。

  4.2有关AD7714子程序

  ①初始化子程序。

  CLR AD_CS ;选通74LS125

  MOV A,#24H; ;写通信寄存器

  LCALL W_7714

  MOV A,#4FH ;写滤波器高寄存器

  LCALL W7714

  MOV A,#34H; ;写通信寄存器

  LCALL W_7714

  MOV A,#0AOH ;写滤波器低寄存器

  LCALL W_7714

  MOV A,#14H ;写通信寄存器

  LCALL W_7714

  MOV A,#20H ;写模式寄存器

  LCALL W_7714

  RET

  ②读数据子程序。

  LCALL DELAY ;延时10 ms

  JB DRDY,POLL ;判断是否有新的数据

  MOV A,#5CH ;写通信寄存器

  LCALL W 7714

  LCALL R7714

  MOV 62H,A ;读数据寄存器的高8位寄存到62H

  LCALL R_7714

  MOV 61H,A ;读数据寄存器的中间8位寄存到61H

  LCALL R 7714

  MOV 60H,A ;读数据寄存器的低8位寄存到60H

  RET

  ③写字节子程序。

  MOV R4.08H

  WOUT74: CLR SCK

  NOP

  RLC A

  MOV SI,C

  NOF

  SETB SCK

  NOF

  DJNZ R4.WOUT74

  RET

  ④读字节子程序。

  MOV R4,#08H

  RIN74: CLR SCK

  NOP

  MOV C,SO

  NOP

  RLC A

  SETB SCK

  NOP

  DJNZ R4,RIN74

  RET

  结语

  本系统所介绍的技术已在电气检测平台和力臂控制盒原位检查仪中得到了应用,它不但提高了系统抗干扰性和数据的测量精度,而且由于结构简单也给维护带来了方便。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
642485965 2015-06-25
1 回复 举报
有没有c语言写的程序啊 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分