AD7715在精密分析仪器中的应用研究
扫描二维码
随时随地手机看文章
关键词:∑-Δ技术 AD7715 分析仪器 三线制串口
引言
AD7715模数转换器是美国模拟器件公司(ADI)出品的采用和差转换技术(∑-Δ技术)的系列ADC之一。该系列A/D转换器均由信号缓冲、可编程增益放大、∑-Δ调制器、数字滤波、三线串行接口等几部分组成,在性能、通道数、功耗等指标上有差别。传统的讨论局限于将此类ADC应用到手持仪器、工业仪表、DSP设备等便携式系统中,以发挥其小体积、低功耗的特点。而在比较大的系统,例如高严谨分析仪器(如医用生化类仪器和化学成分测量仪器)中,还是偏爱传统的逐次比较或双积分ADC。在我们以前设计的两种智能仪器当中,涉及到高阻低频信号的测量时,曾使用过AD574和ICL7109。经过认真的分析,我们在其后的改型产品中,大胆使用了单通道的AD7715作为替换,考虑到成本以及我们所需要的通道数目,我们没有使用AD公司的∑-Δ系列中的多通道产品,因为AD7715的指标已经很好了。
这种尝试取得了很好的效果,它不仅简化了电路,缩小了面积,提高了分辨率,而且在抗干扰能力上不逊于双积分式的7109;在量程处理和输入信号的阻抗要求上双比逐次逼近式的574灵活方便。转换速度其实也是可变的,其满足精度要求后的速度虽然和574不是一个数量级,但远比7109快,足以满足系统的转换频率要求。其唯一的缺点是,物理接线简单的三线制串行数据接口造成数据处理和程序调试的麻烦,不过和其显著的优点相比,这点困难是值得克服的。
1 ∑-Δ技术和AD7715简介
1.1 ∑-ΔADC工作原理
∑-Δ也称为增量调制型转换技术,和普通的模数转换原理不同,∑-Δ技术本身就采用了数字技术。使用∑-Δ技术的器件都具有数字系统所普遍具备的高可靠性、高稳定性的优点。
∑-Δ模数转换器中的模拟部分非常简单(类似于一个1位ADC),而数字部分要复杂得多。由于更接近于一个数字器件,∑-Δ模数转换器的制造成本很低廉。
简单地说,∑-ΔADC以很低的采样分辨率(1位)和很高的采样速率将模拟信号数字化。通过使用采样、噪声整形和数字滤波等方法增加有效分辨率,然后对ADC输出进行数字滤波和采样抽取以降低有效采样速度,使之符合分辨率和带宽的要求。
∑-ΔADC主要由∑-Δ调制器、数字滤波和采样抽取等几部分组成,如图1所示。
调制器本质上是一个高速低精度(1位)的ADC,调制器以非常大的过采样率采样模拟信号。在这个阶段调制器将输入和输出之间的差值(Δ)进行一阶划多阶积分(∑),结果通过一个量化器(1位ADC)输出二进制码流。该码流一方面输出给数字滤波部分,另一方面通过一位DAC后和输入信号比较,提供差值信号(Δ),构成一个反馈循环。
∑-Δ调器以采样速率输出1位数据流,频率可高达MHz量级。数字滤波和采样抽取的目的是从该数据流中提取出有用的信息。通过数字滤波采样抽取,滤波经过调制器整形后的量化噪声,提高系统精度。采样抽取的底限是满足信号无损重建的采样定律,采样频率大于奈奎斯特频率的两倍(fn>2fb)。
1.2 AD7715简介
我们使用了16脚标准DIP封装形式的AD7715,而没有使用SOIC或TSSOP封装。因为和原来使用的ADC相比,DIP封装的AD7715已经非常不占位置了。限于篇幅,AD7715的详细工作原理不作介绍,可以参见AD公司的AD7715器件手册。为便于下面的分析,在此仅给出主要技术参数和内部编程用寄存器的简单说明。AD7715片内共有通信、设置、数据、测试四个寄存器供编程和访问。
主要技术参数:
①16位无误码输出,0.0015%非线性度;
②三线制串行接口,可灵活地与微处理机或DSP执连接;
③前端增益可编程为1、2、32、128这四种,能对四段量程内信号直接进行高分辨率的转换而不用另外进行量程匹配处理;
④内设自校准电路,可有效去除零点漂移和增益误差;
⑤内设模拟输入缓冲器,可直接对高阻信号进行转换;
⑥带输出速率可编程的低通滤波器,可根据需要选用不同转换速率。
图3 自校准时序
可使用的内部寄存器:
①通信寄存器,8位,可读写。每次对AD7715的访问都必须先向此寄存器写入命令字。写入的命令字决定下一步操作是针对哪一个寄存器,是读操作还是写操作。此外,通过该寄存器可设定片内放大器增益。
②设置寄存器,8位,可读写。该寄存器负责A/D各种模式的设置。
③数据寄存器,16位,只读。保存了最后一次A/D采样的转换结果。
2 在精密分析仪器中应用AD7715
我们的分析测量仪器使用mV至V级的模拟信号,具有随时间缓慢变化的曲线波形,要求准确测量这种变化的曲线,通过对信号的处理获得数据,这种测量方法具有代表性。下面以其中种仪器为例进行说明。
2.1 问题讨论
我们的分析系统需要对两路透射光信号通过光电波检测后输出,经过电流-电压转换电路后范围为0~1.5V,精度要求0.5%;另外还有两路温度信号,经过温度传感器后的输出的电压范围为0~450mV,对应0~45℃,要求精度0.1℃。
对转速速度有一定的要求:首先温度测定是连续的,从开机时候起就要连续监控,一个温度信号用于控制加温装置,使测量系统恒温在37℃;另一路温度信号监测机箱内部温度,根据这个温度决定风扇的启停,风扇启动温度可由用户设定,停止温度低于启动温度2℃.每2s测定一次这两路的温度,在进行测量光信号时也不能停止37℃恒温的监控。
其次,测量两路光信号必须精确按照0.1s一次的频率进行,即每100ms要各测量一次。考虑到对采样数据简单处理要保留3ms时间,所以一次A/D转换时间不能超过47ms。
这样就出现了一个问题,我们可以把测量光信号的时间中断优先级设置得比测量温度的时间中断要高,这样才能保证前者的时间精度,而后者被中断的、未转换完的结果丢弃。但是,若每次A/D转换(包括数据处理)时间大于33ms,将导致恒温监控事件上无法进行,因为其间的每个测温A/D都无法完成。如果想使对机相温度的监控也不停止,则A/D转换时间至少要小于25ms,其道理是显而易见的。
2.2 设计思想
我们的系统使用12MHz主频的97C52,AD7715的接线如图2所示。
串口方式0很适合三线制接口的使用,此方式下TXD引脚作为串行时钟,接收和发送均使用RXD引脚;RUN接CPU的P1.6引脚,IN_PORT.8是输入端口的第8位,用来接收状态信号DRDY;数字供电(DVDD、DGND)和模拟供电(AVDD、AGND)分开;VREF是基准电压,系统中使用2.39V精密电压。Signal_IN接多路开关(8选1)的输出,因为不需要转换差分信号,所以AIN-接模拟地。
2.3 调试和软件实现
AD7715的最高更新率可以达到500Hz,即理论上2ms可以完成1次A/D转换,但实际上如果考虑到通道切换的因素后,这个速率是不可能的。因为通道轮流切换后,A/D内部的信号需要重新建立,通道间信号差异越大,两次连续转换间误差也越大。这个问题在其它类型的ADC中也存在。有两种方法可以使AD7715在恒定的时间后获得正确的输出:一是使用设置寄存器中的FSYNC(同步)位,二是使用通信寄存器中的STBY(备用)位,我们采用后面一种方法。
另外一个问题就是串口数据,AD7715输出数据和接收命令都是高位在先,而51系列串口的数据时序是低位在先;所以不论是写8位的命令,还是读取16位的转换结果,数据要经过高低位的颠倒处理。
关于校准方式,一般采用自校准就够了,不是特殊情况一般不用进行系统标准。校准一定在有效的复位后进行,否则不能成功。
至于编程和调试,建议使用C语言,这已是潮流所趋。我们这个系统的工作方式类似于两个任务并发执行,每个通道最多一次要转换1800个数据供分析,用汇编来写程序是力不从心的。而对于AD7715的编程,一个好的调试工具是必须的,特别需要能观察时序的手段。图3~图5是逻辑分析仪采取的波形,分别是自校准时序、写命令时序和一次完整转换后读取16位结果的时序。
void initial_7715(){
SCON=0x00; /*串口写*/
initialize_ad(); /*初始化AD7715的通信口*/
writereg(0x10);/*下面写设置寄存器*/(写入时序见图4)
writereg(0x7c);/*自标定,2.4576MHz,500Hz更新率,单极性,非缓冲模式*/
while(!IN_PORT & 0x80)); /*等待自标定结束*/(图3中J3.3所示高电平时间)
while(IN_PORT & 0x80);
}
void writereg(UNCHAR bytepoint){
RUN=0; /*AD7715 CS=0*/
SBUF=exchange(bytepoint); /*字节首尾交换*/
while(!TI);
TI=0;RUN=1;
}
float readdata 16(){
UNCHAR temp1;
UNINT temp2;
writereg(0x04); /*进入stby方式,且下次写通信寄存器*/
writereg(0x38); /*退出standby方式,设置读操作,3/rate时间后出结果*/
while(!(IN_PORT & 0x80));
while(IN_PORT & 0x80); /*等待读时刻到来*/
RUN=0; /*AD7715选中*/
SCON=0X10; /*串口读*/
while(!RI);
temp1=SBUF; /*读低8位*/
temp2=(UNINT)temp1;
while(!RI);
SCON=0x00; /*读两字节后停止接收*/
RUN=1;
temp1=SBUF; /*读高8位*/(两次读取波形见图5)
temp2|=((UNINT)temp1)<<8; /*合并成16位*/
return((float)(exchange_16(temp2))/65536.0*VREF); /*首位颠倒后换成电压值*/
}
3 结论
根据我们的对比研究,得出这样的结论:AD7715以及类似的∑-ΔADC系列产品和目前国内几乎所有同类分析仪器中采用的传统双积分或逐次逼近模数转换电路相比,具有精度高、抗干扰性和可靠性强、转换速度可以满足低频要求、电路简单、外围器件少、维修更换方便等许多优势,对于很多方便提供三线制串口时序的系统来说,完全可以作为A/D转换电路的首先。