×

高速ADC的误差分析资料下载

消耗积分:2 | 格式:pdf | 大小:325.57KB | 2021-03-27

胡秋阳

分享资料个

模数转换器(亦称为ADC)广泛用于各种应用中,尤其是需要处理模拟传感器信号的测量系统,比如测量压力、流量、速度和温度的数据采集系统(仅举数例)。一般而言,这些信号属于时域签名,以脉冲或阶跃函数的形式出现。

在任何设计中,理解这些类型应用的总系统精度始终都是非常重要的,尤其是那些需要对波形中极小的灵敏度和变化进行量化的系统。理想情况下,施加于信号链输入端的每一个伏特都由ADC以数字表示一个伏特的输出。但是,事实并非如此。所有转换器和信号链都存在与此相关的有限数量误差。

本文描述与模数转换器本身相关的误差。本文还将揭示转换器内部的不精确性累积到何种程度即会导致这些误差。定义新设计的系统参数时,若测量精度极为重要,那么这些内容对于理解如何正确指定一个ADC有着重要作用。最后,本文将讨论一个简单的误差分析,帮助为设计选择正确的转换器。

ADC的不精确性

无论何种信号链,转换器都是系统的基本要素。为设计选择的任何ADC都会决定系统的总精度。换言之,系统精度不可能高于转换器的最低有效位(LSB)大小。为了表明这一点,让我们来看一个简短的ADC不精确性指南。

首先,注意到由于ADC不是理想的,并且分辨率有限,因此它们在输出端只能显示有限数量的信息表示。表示的信息数量由转换器满量程输入除以2N表示,N为转换器的理想位数。

例如,假设选择一个12位ADC,则它可在输出端以4096个数字表示施加于转换器输入端的任何信号。这些表示信息确实存在有限量的误差。因此,如果12位ADC的输入满量程(VFS)为10 V p-p,那么其理想情况下的LSB大小为2.44 mV p-p,精度为±1.22 mV。

公式1

而实际上,ADC是非理想的。在转换器内部存在一定噪声,

甚至直流中也有噪声。记住,1 kΩ电阻等效于4 nV∙ Hz (1 Hz带宽,25°C)。注意,查看12位ADC数据手册时,SNR通常为大约70 dB到72 dB。但是,根据下列公式,一个12位ADC理想情况下应当具有74 dB:

公式2

因此,实际上12位分辨率是无法达到的,因为转换器本身存在一定的不精确性,如图2所示。

这些不精确性或误差决定了转换器表示信号的效率,并最终为信号链所接收。失调误差定义为传递函数无法通过零点的模拟值。增益误差是失调误差为零时理想与实际传递函数之间的满量程数值之差。通常意义上的线性度误差或非线性度是指零电平与满量程之间的直线偏差,如图1所示。

图1. ADC量化误差
图2. ADC的不精确性

有关ADC不精确性的更多信息

对最基本的模数转换器误差进行定义并有所了解后,再说明这些误差的区别会有些帮助。大部分ADC的失调和增益都存在这种小误差,通常可以忽略或通过外部模拟威廉希尔官方网站 调节(消除),或者采用数字技术校正。然而,诸如线性度、量化和温度系数等其他误差无法轻易调节或消除。

模数转换器线性度只与转换器自身有关,即取决于架构和工艺变化。有很多方法可以校正,但都很昂贵。设计人员有两种选择:购买更好、成本更高的转换器,或采用数字手段校正线性度。数字校正的成本也十分高昂。这意味着可能需要更多资源来指定DSP或FPGA,因为线性度会随温度和工艺的变化而改变。根据采样速率、IF和分辨率,数字校正可能需要广泛的特性表述和查找表,以便即时校正或调节ADC的性能。

线性度有两种类型的误差:它们是差分非线性和积分非线性,通常分别称为DNL和INL。DNL定义为偏离理想值的一切误差或偏差。换言之,它表示两个相邻代码的模拟差与理想代码值VFS/2N之间的偏差。可将其看作与ADC的SNR性能相关的因素。随着代码的偏差越来越大,转换数也随之下降。该误差在温度范围内的界限为±0.5 LSB,可保证无失码。

INL定义为零电平和满量程之间的理想直线近似曲率偏差。多数情况下,INL决定了ADC的SFDR性能。INL总偏差形状可以决定最主要的谐波性能。比如,INL曲线呈弓形会相应产生更差的偶次谐波,而INL曲线呈S弓形则通常产生奇次谐波。该误差本质上与频率有关,并与这类误差分析无关。

哪怕可以消除静态失调和增益误差,与失调和增益误差有关的温度系数将会依然存在。

例如,一个12位ADC具有10 ppm增益误差,或FSR/°C = 0.001%/°C.

12位系统中的1 LSB为¼096,或者近似等于0.024%。

因此,若125°C Δ (–40°C至 85°C),则产生±2.5 LSB增益温度系数误差,或0.001% × 125 = 0.125%。.

其中,0.125/0.024 = 5.1 or ±2.55 LSBs.

For offset tempco a 5 ppm offset error or FSR/°C = 0.0005%/°C.

这将产生±1.3 LSB失调温度系数误差,或0.0005% × 125 = 0.0625. 其中,0.0625/0.024 = 2.6 or ±1.3 LSBs.

ADC误差分析

影响转换器性能的其它误差来源有:CMRR、时钟抖动、固有威廉希尔官方网站 板噪声、耦合等等。所有这些误差最终都决定了ADC如何有效地表示信号;通常在频率域内ADC能更高效地表示自身。

从时域角度来看,分析转换器的总精度需要了解下面五个误差:

  • 相对精度DNL,定义为±0.5 LSB
  • 相对精度温度系数和DNL温度系数,通常包含在数据手册的相对精度规格中。
  • 增益温度系数误差,为±2.5 LSB (数据来源于上文示例)
  • 失调温度系数误差,为±1.3 LSB (数据来源于上文示例)
  • 电源灵敏度,通常以第一奈奎斯特区内的低频PSRR (电源抑制比)表示。对于12位ADC而言,它一般可表示为60 dB或±2 LSB。

只需进行方和根(RSS)运算,所有这些误差源构成±3.5 LSB总转换器误差。这个结果可能过于悲观了。然而,统计容差结果可能过于乐观了,或者总误差之和除以误差数,即(0.5 2.5 1.3 2)/4 = ±1.58 LSBs。ADC实际容差应当介于这两种思路或方法之间。

因此,当在转换器中加入精度误差的时候,或者进行任何系统精度分析的时候,设计人员应当使用加权误差源法,然后对这些误差源进行RSS计算。这是确定ADC总误差的最佳方法。因此,±0.5 LSB的相对精度应当保持在100%。然而,±2.5 LSB增益温度系数误差应当是总误差的66%,或2.5/(0.5 1.3 2) × 100。±1.3 LSB的失调温度系数误差将为总误差的26%,或1.3/(0.5 2.5 2) × 100。±2 LSB的电源灵敏度误差将为总误差的47%,或2/(0.5 1.3 2.5) × 100。将这些加权误差以RSS方式相加,或者进行平方根计算则总误差为±2.0 LSB,这是一个更接近实际的结果,介于上文乐观方法和悲观方法得出的结果之间。

ADC带宽精度

ADC还有建立时间精度。记住,转换器的内部前端需要具有足够的带宽(BW),才能精确地对信号进行采样。否则,累积误差将大于上文讨论的结果。

一般而言,一个ADC的内部前端需要在半个周期或采样时钟周期内建立(0.5/Fs),这样才能提供对内模拟信号捕捉的精确表达。因此,对于一个12位ADC(采样速率为2.5 GSPS,满量程输入范围为1.3 V p-p)来说,全功率带宽(FPBW)可通过下列瞬态公式推导:

求解t:

代入 τ = 1/(2 × π × FPBW),一个时间常数,求解FPBW:

现在,令t = 0.5/Fs,则样本建立所需的时间如下(样本周期为1/Fs):

这样会使ADC内部前端所需的带宽或FPBW最小。这是转换器内部前端建立至1 LSB以内并正确采样模拟信号所需的带宽。为了满足这类ADC的1 LSB精度要求,这将会需要花费数个时间常数。

一个时间常数为24 ps或 τ = 1/(2 × π × FPBW)。要了解ADC满量程范围内达到LSB尺寸要求所需的时间常数数量,就需要找出满量程误差或%FS。或者1 LSB = FS/(2N),其中N = 位数,或1.3 V p-p/(212) = 317 μV p-p, 且%FS = (LSB/FS) × 100 = 0.0244.

通过描绘欧拉数或eτ,可以绘出一条曲线,以便每次通过常数都能方便地看出相对误差。如图3可见,12位ADC样本建立至大约1 LSB以内需时8.4个时间常数。

图3: 建立精度与时间常数的关系

这样,设计人员便能估算用于转换器的最大模拟输入频率或采样带宽,并依旧建立至1 LSB误差以内。超出这个范围,则ADC无法精确表示信号。 这可以简单定义为:FMAX = 1/(τ × 时间常数数量) 或 1/(24 ps × 8.4) = 4.96 GHz.

记住,这里表示的是最佳情形,并假定采用单极点ADC前端。并非所有现实中的转换器都以这种方式工作,但这是一个很好的开端。例如,上文描述的模型最高可适用至12位,但针对14/16位以及更高位则需要根据这些细微影响采用二阶模型,以使建立时间扩展至预测的一阶模型以外。

关于ADC带宽的简要说明

记住,ADC全功率带宽不同于上文定义的转换器可用带宽或采样带宽。它可以当成是模拟信号输入运算放大器的全功率带宽(FPBW),信号更像是三角波信号,并且输出端存在大量失真。FPBW是ADC精确捕捉信号并使内部前端正确建立所需的带宽(前文示例中为6.62 GHz)。选择一个IF并在该范围内使用转换器不是一个好主意,因为系统的性能结果会大幅改变;在大约5 GHz处,如上文示例所示,根据转换器数据手册中的额定分辨率和性能指标,满量程带宽远高于转换器自身的最大采样带宽。设计是围绕采样带宽而展开的。所有设计都应当避免使用额定全功率带宽的某一或全部最高频率部分,否则动态性能(SNR/SFDR)会下降并大幅改变。为了确定高速ADC的采样带宽,应当使用上文中的示例,因为这些数据并非总能从数据手册中获取。通常,数据手册会规定甚至列出转换器采样带宽内经过生产测试、能够保证额定性能的频率。然而,在较老的ADC产品中这些测试频率在数据手册中并不总是以FMAX来定义。今后还需要对行业中的这些带宽术语做出更好的说明、定义和测试。

结论

本文给出了有关如何查看一般静态ADC的不精确性误差和涉及带宽的ADC不精确性误差的指导说明。还提供了针对ADC误差以及这些误差如何影响信号链的更深入解释。请记住,并非所有的元件都采用相同的方式构建,这对于有源和无源器件来说都是正确的。创建囊括所有这些误差的电子表是插入不同信号链元件的简便方法,可更快进行评估并决定元件的权衡取舍。这在元件之间进行成本、尺寸和功耗的权衡取舍以及衡量信号链性能差异方面尤为如此。

进行下一款信号链设计时,应牢记这些原则。

有关如何生成完整的信号链分析将在《第二部分:模拟信号链精度》中进行讨论。最后,请记住,单纯增加信号链中ADC的性能或分辨率无法提升测量精度。如果依旧存在同样数量的前端噪声,精度将不会得到改善。只会让噪声测量达到更精细的程度,并最终可能让设计人员的老板付出更多的成本。

参考威廉希尔官方网站

AN010应用笔记,信号分析仪的动态范围测量. LDS Dactron, 2003。

Bennett, William R."量化信号频谱",Bell System技术杂志,第27卷,1948。

Bennett, William R."PCM系统内噪声",Bell Labs Record,第26卷,1948。

Brad Brannon,AN-410应用笔记"通过扰动消除转换器非线性",ADI公司,1995。

Gyorki, John R. 信号调理与PC数据采集手册,第三版,1-11。

Kester, Walt. "模数转换:研讨会系列" ,模数转换,ADI公司,2004。

整体精度 = ENOB (有效位数),数据转换。

Ruscak, Steve和Larry Singer。利用直方图技术测量模数转换器噪声,模拟对话,第29-2卷,1995。

"系统衰减预算、精度、分辨率" Dataforth.

Titus, John. "分辨率和精度: 相似,并不相同" 。Design News, 2003.

作者

Rob Reeder

Rob Reeder是ADI公司(美国北卡罗来纳州格林斯博罗)工业与仪器仪表部门高级系统应用工程师,负责防务和航空航天应用,发表了大量有关各种应用的转换器接口、转换器测试和模拟信号链设计的论文。Rob曾在高速转换器产品线上担任应用工程师8年之久。在此之前,Rob还担任过ADI多芯片产品业务的测试开发和模拟设计工程师,拥有5年的太空、防务和高度可靠的应用模拟信号链模块设计经验。 Rob于1996年和1998年分别获得北伊利诺斯州大学(迪卡尔布市)的电子工程学士(BSEE)学位和电子工程硕士(MSEE)学位。 

(mbbeetchina)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'高速ADC的误差分析资料下载',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);