历史上的今天
返回首页

历史上的今天

今天是:2024年12月20日(星期五)

正在发生

2019年12月20日 | AD7715在精密分析仪器中的应用研究

2019-12-20 来源:elecfans

摘要:新型高集成度∑-ΔADC正在得到越来越广泛的应用。这种ADC只需极少外接元件就可直接处理微弱信号,仅适合嵌入式系统的应用,也适合应用在很多测量分析仪器中,取代传统的A/D转换器。本文通过对∑-Δ系列ADC和积分式以及逐次逼近式ADC的比较,以AD7115为实例说明这种取代的可行性。


引言

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转换电路的首先。

推荐阅读

史海拾趣

Ferranti Electric Inc公司的发展小趣事

随着技术的不断发展和创新,Ferranti Electric Inc公司在电气领域取得了显著的成就。特别是在设计和制造用于恶劣气候或关键安全领域的复杂、高可靠性电气产品方面,公司展示了其卓越的技术实力。这些产品不仅广泛应用于军用领域,同时也为民用领域提供了大量电气产品解决方案。公司的全球影响力逐渐扩大,产品远销世界各地。

光磊(GL)公司的发展小趣事

Ferranti Electric Inc公司的历史可追溯到1880年,由Sebastian Ziani de Ferranti(塞巴斯蒂安·齐亚尼·德·费兰蒂)在英国创立。作为发电机及壳式变压器的发明者之一,费兰蒂博士不仅拥有交流发电机、高压电缆、断路器等176项专利,而且他的创新精神也为公司的创立和发展奠定了坚实的基础。初创时期,公司就专注于电气产品的研发和生产,逐渐在电气行业崭露头角。

台湾第一电阻(Firstohm)公司的发展小趣事
电冰箱电路中常见的易损部件包括启动继电器、过载保护器、温控器等。启动继电器负责启动压缩机,如果其性能不良或损坏,将导致压缩机无法启动。过载保护器用于保护压缩机免受过载损坏,如果其触点接触不良或损坏,也可能导致压缩机无法正常工作。温控器用于控制冰箱的温度,如果其出现故障,将影响冰箱的制冷效果。
EMC [ELAN Microelectronics Corp]公司的发展小趣事

随着公司的发展,义隆电子不断加大研发投入,致力于技术创新和产品多元化。公司拥有一支高素质的研发团队,拥有多项自主知识产权和核心技术。通过不断的技术创新和产品升级,义隆电子成功推出了微控制器、个人计算机外设芯片、数字显示器芯片等一系列具有市场竞争力的产品。同时,公司还积极拓展智能型人机接口技术之应用芯片等新兴领域,为未来的发展奠定了坚实的基础。

Cornell Dubilier公司的发展小趣事

随着时间的推移,Cornell Dubilier公司不断致力于技术创新和产品升级。在电力电容领域,公司取得了显著的成果,其产品广泛应用于飞机、激光医学技术、替代能源、电焊机及发电机等多个领域。这些技术的突破和应用,不仅提升了公司的市场竞争力,也为电子行业的发展做出了贡献。

Corstat Containers公司的发展小趣事

在环保意识日益增强的背景下,Corstat Containers公司积极响应,推出了可回收、可降解的环保电子元件包装盒。这一产品不仅满足了市场对环保产品的需求,还为公司赢得了良好的社会声誉。同时,公司还加大了对环保技术的研发投入,不断推出更加环保、高效的电子产品包装解决方案,进一步巩固了其在电子行业的领先地位。

问答坊 | AI 解惑

梦幻五环如何发光

焰火渐渐熄灭,却在地上聚集出了一个奥运五环的标志。这个标志像是吸引了附近的火星,越来越亮,后来更是缓缓升上了半空——奥运开幕式上的这段表演几乎只能用“梦幻”来形容。像网友们评价的那样,这是一个富有冲击力和想象力的表演项目。那么,这 ...…

查看全部问答>

电子技术视频教程

714电子实验室下载资源整理,提供大量电子技术视频教程,大型EDA软件和教程等下载。…

查看全部问答>

急!安装凌华采集卡、控制卡 出现的问题

跪求高手指点:    在安装凌华采集卡驱动时,系统提示:If your drivers DO NOT perform DMA and INTERUPT Operation ,                         & ...…

查看全部问答>

CORTEX-M3启动文件

昨天参加了MCUDAY 研讨会,得到一个消息是Cortex-M3启动文件可以用C语言编写,不知论坛的朋友们有谁有编写启动文件的经验,给小弟介绍一下。…

查看全部问答>

关于数据采集卡的问题

   本人新做一个有关数据采集的项目,问些比较菜的问题~!!  见笑啊    数据采集卡是12位的,用256k的频率进行数据采集,fifo缓冲区是8k*16bit。    我想知道这个缓冲区能存多少个数,缓冲区存满需要多 ...…

查看全部问答>

如何用LED灯闪烁频率不同表现系统工作状态

现在有一个ARM7系统,想用LED灯闪烁频率不同来表示系统的工作状态。该LED灯通过一个GPIO来控制,谁能给一个思路? 谢谢…

查看全部问答>

计算器如何运算1+1=2

就拿我们现实中普通的计数器来说吧,当我按下1键后,在它内部会产生什么情况?难道会产生一股电流?这股电流如何把1这个信息存储在内部某个元件上啊?这个元件是如何存储它的啊?我需要详细的了解最最底层的原理啊,硬件是如何识别0和1的?如何存储 ...…

查看全部问答>

关于三星Armv4-2410ep教学开发板上串口的问题

各位大师们好     我现在在三星Armv4-2410ep教学开发板上做串口通信的开发。我是在Windows Ce 4.2的平台下作的。台子上的Serial 0,我可以轻松搞定,可是Serial 2我怎么调也调不成功?这是为什么?     答案正确,一定给分 ...…

查看全部问答>

请问evc中如何快速获取一个大文件的总行数?

文件比较大,怎样才能快速获取它的总行数,总不能一行一行的加吧。请各位高手指教!…

查看全部问答>

ARM,FPGA学习群QQ:37392778,有高级工程师指导做项目,想学习者加入

想学习ARM,FPGA,相关开发的,有工程师指导,现有开发项目,可长期指导…

查看全部问答>