高速模数转换器(ADC)的INL/DNL测量
高速模数转换器(ADC)的INL/DNL测量
|
摘要:尽管积分非线性和微分非线性不是高速、高动态性能数据转换器最重要的参数,但在高分辨率成像应用中却具有重要意义。本文简要回顾了这两个参数的定义,并给出了两种不同但常用的测量高速模数转换器(ADC)的INL/DNL的方法。
近期,许多厂商推出了具有出色的静态和动态特性的高性能模数转换器(ADC)。你或许会问,“他们是如何测量这些性能的,采用什么设备?”。下面的讨论将聚焦于有关ADC两个重要的精度参数的测量技术:积分非线性(INL)和微分非线性(DNL)。
尽管INL和DNL对于应用在通信和高速数据采集系统的高性能数据转换器来讲不算是最重要的电气特性参数,但它们在高分辨率成像应用中却具有重要意义。除非经常接触ADC,否则你会很容易忘记这些参数的确切定义和重要性。因此,下一节给出了这些定义的简要回顾。
INL和DNL的定义
DNL误差定义为实际量化台阶与对应于1LSB的理想值之间的差异(见图1a)。对于一个理想ADC,其微分非线性为DNL = 0LSB,也就是说每个模拟量化台阶等于1LSB (1LSB = VFSR/2N,其中VFSR为满量程电压,N是ADC的分辨率),跳变值之间的间隔为精确的1LSB。若DNL误差指标≤ 1LSB,就意味着传输函数具有保证的单调性,没有丢码。当一个ADC的数字量输出随着模拟输入信号的增加而增加时(或保持不变),就称其具有单调性,相应传输函数曲线的斜率没有变号。DNL指标是在消除了静态增益误差的影响后得到的。具体定义如下:
DNL = |[(VD+1- VD)/VLSB-IDEAL - 1] |,其中0 < D < 2N - 2
VD是对应于数字输出代码D的输入模拟量,N是ADC分辨率,VLSB-IDEAL是两个相邻代码的理想间隔。较高数值的DNL增加了量化结果中的噪声和寄生成分,限制了ADC的性能,表现为有限的信号-噪声比指标(SNR)和无杂散动态范围指标(SFDR)。
图1a. 要保证没有丢码和单调的转移函数,ADC的DNL必须小于1LSB。
INL误差表示实际传输函数背离直线的程度,以LSB或满量程的百分比(FSR)来度量。这样,INL误差直接依赖于与之相比较的直线的选取。至少有两个定义是常用的:“最佳直线INL”和“端点INL” (见图1b):
- 最佳直线INL定义中包含了关于失调(截距)和增益(斜率)误差的信息,以及传输函数的位置(在后面讨论)。它定义了一条最接近ADC实际传输函数的直线。没有明确定义直线的精确位置,但这种方法却具有最好的可重复性,能够真正描述器件的线性特征。
- 端点INL所采用的直线经过转换器传输函数的两个端点,因而也就确定了直线的精确位置。这样,对于一个N位ADC来讲,这条直线就由其零点(全0)和其满度(全1)点确定。
最佳直线方法通常被作为首选,因为它能产生比较好的结果。INL是在扣除了静态失调和增益误差后的测量结果,可用下式表示:
INL = | [(VD - VZERO)/VLSB-IDEAL] - D |,其中0 < D < 2N-1
VD是数字输出码D对应的模拟输入,N是ADC的分辨率,VZERO是对应于全零输出码的最低模拟输入,VLSB-IDEAL是两个相邻代码的理想间隔。
图1b. 最佳直线法和端点法是定义ADC线性特性的两种可行办法
转移函数
理想ADC的转移函数是阶梯状的,其中每一个台阶对应于某个特定的数字输出代码,而每一次阶跃代表两个相邻代码间的转变。必须确定这些阶跃所对应的输入电压,以便对ADC的许多特性参数进行规范。这项任务会极为复杂,尤其是对于高速转换器中充满噪声的过渡状态,以及那些接近于最终结果、并变化缓慢的数字量。
过渡状态没有在图1b中显著标出,而是作为一种概率函数表达,更为接近实际。当慢慢增加的输入电压经过过渡点时,ADC将一个接一个地输出相邻代码。按照定义,在过渡点对应的输入电压下,ADC输出相邻两个代码的几率相等。
正确的过渡
过渡电压是指输出数码在两个相邻代码间发生跳变时输入电压。名义模拟值,对应于两个相邻过渡电压之间的某输入电压所产生的数字输出码,定义为此范围的中点(50%点)。如果过渡间隔的边界已知,该50%点很容易算出。过渡点的确定可以通过测量某一个区间,然后将该区间除以其间出现过的相邻代码的次数后得到。
测试静态INL和DNL的一般装置
INL和DNL可以利用准直流的斜坡电压或低频正弦波作为输入来进行测量。一个简单的直流(斜坡)测试可能需要一个逻辑分析仪,一个高精度DAC (可选),一个可以扫描待测器件(DUT)输入范围的高精密直流源,和一个可连接PC或X-Y绘图仪的控制接口。
如果设备中包含有高精度DAC (精度比待测器件高得多),逻辑分析仪能直接处理ADC的输出数据来监测失调和增益误差。精密信号源产生一个测试电压供给待测器件,并使测试电压从零刻度到满刻度缓慢扫过ADC的输入范围。经由DAC重构后,从ADC输入测试电压中减去对应的DAC输出电平,就产生一个小的电压差(VDIFF),这个电压可以用X-Y绘图仪显示出来,并且和INL、DNL误差联系起来。量化电平的改变反映了微分非线性,而VDIFF与零的偏移代表积分非线性。
积分型模拟伺服环
另一种办法也可以用来测试ADC的静态线性参数,与前面的办法相似但更复杂一些,这就是使用积分型模拟伺服环。这种方法通常是用于要求高精度测量、而对测量速度没有要求的测试设备。
典型的模拟伺服环(见图2)包含一个积分器和两个电流源,连接于ADC输入端。其中一个电流源向积分器注入电流,另一个则吸出电流。数值比较器连接于ADC输出并对两个电流源进行控制。数值比较器的另一输入由PC控制,后者可以对N位转换器的2N - 1个测试码进行扫描。
图2. 模拟积分伺服环的电路配置
如果环路反馈的极性正确的话,数值比较器就会驱使电流源“伺服”模拟输入跟随给定的代码跳变。理想情况下,这将在模拟输入端产生一个小的三角波。数值比较器控制斜坡信号的方向和速度。在跟随一次跳变时积分器的斜率必须快,而在采用精密数字电压表(DVM)进行测量时,为了降低叠加的三角波过冲峰值,又要求积分器足够慢。
在MAX108的INL/DNL测试中,伺服板通过两个连接器连接到评估板(见图3)。第一个连接器建立起MAX108的主(或副)输出端口和数值比较器的锁存输入口(P)的连接。第二个连接器将伺服环(数值比较器的Q端口)和用于生成参照码的计算机连接起来。
图3. 借助MAX108EVKIT和模拟积分伺服环,该测试装置可以确定MAX108的INL和DNL特性。
数值比较器的判决结果解码后通过P > QOUT输出端输出并送往积分器单元。每一次的比较结果都独立地控制 开关的逻辑输入,驱动积分电路产生出满足需要的斜坡电压,供给待测器件的两路输入。这种方法具有其优越性,但也有一些不足之处:
- 为了降低噪声,三角斜坡应该具有低的dV/dt。这有利于产生可重复的数码,但要获得精确测量它需要很长的积分时间。
- 正、负斜坡的斜率必须匹配方可达到50%点,并且必须对低电平三角波取平均后才可获得所需要的直流电平。
- 在设计积分器时常常要求仔细选择充电电容。为了尽量减小由于电容的“存储效应”而造成的潜在误差,应选择具有低介质吸收的积分电容。
- 测量精度正比于积分时间而反比于建立时间。
将一个数字电压表连接到模拟积分伺服环中,就可测出INL/DNL误差与输出量的关系(图4a和图4b)。值得注意的是,INL与输出码关系曲线中的抛物线形或弓形曲线表明偶次谐波占主导地位,若曲线呈“S状”,则说明奇次谐波占主导地位。
图4a. 该曲线给出了MAX108 ADC的典型积分非线性特性,由模拟积分伺服环测得。
图4b. 该曲线给出了MAX108 ADC的典型微分非线性特性,由模拟积分伺服环测得。
为了消除上述方法的缺陷,可以对伺服环中的积分单元加以改进,代之以一个L位的逐次逼近寄存器(SAR) (用于捕获待测器件的输出码)、一个L位DAC、以及一个简单的平均值电路。再结合一个数值比较器,该电路就组成了一个逐次逼近型转换器结构(见 图5和后续的“SAR转换器”部分),其中,由数值比较器对DAC进行控制、读取其输出、并完成逐次逼近。同时,DAC提供一个高分辨率的直流电平给被测N位ADC的输入。在这个实例中,采用一个16位DAC将ADC校准至1/8LSB精度,同时获得最可信转移曲线。
图5. 用逐次逼近寄存器和DAC结构取代模拟伺服环中的积分器单元
当接近终值时,由于受到噪声的影响,数值比较器会来回跳动而变得不稳定,此时,平均值电路的优势就突显出来了。平均值电路包含两个除法计数器。“参考”计数器具有2M个时钟的 周期,其中M是一个可编程的整数,用来控制计数周期(同时也决定了测量时间)。“数据”计数器仅在数值比较器输出为高时递增,其周期等于前者的一半,即2M-1个时钟。
参考计数器和数据计数器共同工作的效果是对高、低电平的数量进行了平均,结果被保存于一个触发器,并进而传送到SAR寄存器。这个过程重复16次(在本例中)后便产生了完整的输出码。和前面的方法一样,它也有优点和不足之处:
- 测试装置的输入电压由数字量定义,这样可以简便地修改求取平均值的测式样点。
- 逐次逼近方式提供给待测器件模拟输入的是一个直流电平,而非斜坡电压。
- 不足之处在于,反馈环中的DAC限制了输入电压的分辨率。
SAR转换器
SAR转换器的工作类似于旧时药剂师的天平。一边是未知的输入采样,另一边是由SAR/DAC结构产生的首个砝码(最高有效位,等于满量程输出的一半)。如果未知重量大于1/2FSR,则保留首个砝码并再增加1/4FSR。否则,用1/4FSR砝码代之。
将这个步骤重复N次,从MSB到LSB,SAR转换器就可得到所需要的输出代码。N是SAR结构中DAC的分辨率,每个砝码代表1个二进位。
INL和DNL的动态测试
要测定ADC的动态非线性,可以对其施加一个满度正弦输入,然后在其全功率输入带宽内测量转换器的信噪比(SNR)。对于一个理想的N位转换器,理论SNR (仅考虑量化噪声,无失真)如下:
SNR (单位为dB) = N×6.02 +1.76
这个公式包含了瞬变、积分非线性和采样时间的不确定性等效应的影响。除此之外的非线性成分可以通过测量恒频输入时的SNR来获得,并可得到一个随输入信号幅度的变化关系。例如,使信号幅度扫过整个输入范围,从零到满量程或者反之,当输入幅度逼近转换器满量程时,转换输出将与信号源发生较大偏移。要确定产生这种偏移,排除失真和时钟不稳定性因素的原因,可采用频谱分析仪分析量化噪声与频率的关系。
还有很多其他方法也可以用来测试各种高速和低速数据转换器的静态和动态INL、DNL。本文意在使读者更好地理解典型工作特性(TOC)的产生,所使用的工具和技术很简单,但极为巧妙和精确。
文章出处:高速模数转换器(ADC)的INL/DNL测量 (maximintegrated.com)
高速模数转换器(ADC)的INL/DNL测量相关推荐
- pcm 采样率转换_高速模数转换器 ADC 树立了实时监测和控制的标准
动态实时测量能够启用并增强各种实验流程.例如,设置系统参数并监测高速流程直至达到了理想条件,并以秒.分钟或小时为单位记录实验数据. 只有使用高速 ADC(模数转换器)才能最大限度提高这些应用的吞吐量. ...
- inl和dnl matlab_matlab仿真inl dnl
高速模数转换器ADC的INLDNL测量 美国美信公司关于ADC参数INL和DNL的测试方法介绍美国美信公司关于ADC参数INL和DNL的测试方法介绍隐藏>> Maxim > App ...
- 基于FPGA的模数转换器(ADC)或数模转换器
选择时首先要确定转换信号所需的采样频率.这个参数不仅将影响转换器的选择,同时也会影响对FPGA的选择,这样才能确保器件能够满足所需的处理速度及逻辑封装要求.转换器的采样频率至少为信号采样频率的2倍.因 ...
- 模数转换器(ADC)的几种主要类型简介
简介 现在的软件无线电.数字图像采集都需要有高速的A/D采样保证有效性和精度,一般的测控系统也希望在精度上有所突破,人类数字化的浪潮推动了A/D 转换器不断变革,而A/D转换器是人类实现数字化的先锋. ...
- STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换
目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...
- ADI推出高速模数转换器简化FPGA应用设计
北京2012年10月19日电 --信基础设施.成像设备.工业仪器仪表.防务电子和其它多通道.需要大量数据的系统要求数据转换级提供越来越宽的分辨率和越来越高的采样率.并行接口的物理布局限制和串行 LVD ...
- STM32F4_模数转换器(ADC)详解
目录 1. ADC是什么 2. ADC主要特性 3. ADC框图 3.1 ADC开关控制 3.2 ADC时钟 3.3 通道选择 3.4 单次转换模式和连续转换模式 3.5 时序图 3.6 模拟看门狗 ...
- 28335学习之《模数转换器ADC》
文章目录 第11章 模数转换器ADC **11.1 F28335内部的ADC模块** **11.1.1 ADC模块的特点** **11.1.2 ADC的时钟频率和采样频率** **11.2 ADC模块 ...
- 6. 模数转换器ADC
6. 模数转换器ADC 6.1 ADC结构及寄存器说明 6.2 ADC设计实例 6.2.1 用ADC1规则通道实现外部模拟信号的模数转换 6.2.2 用ADC1注入通道实现内部温度传感器的温度测量 6 ...
最新文章
- Hibernate Write operations are not allowed in read-only
- Eclipse中手动清理项目缓存,
- 第三次学JAVA再学不好就吃翔(part76)--Collection类
- publiccms中,怎么修改默认的端口8080以及默认上下文名称
- 第四篇:断路器(Hystrix)(Finchley版本)V2.0_dev
- python 打卡程序_如何用python实现腾讯文档自动打卡并定时执行
- 《C语言程序设计》(谭浩强第五版) 第5章 循环结构程序设计 习题解析与答案
- Directx发展史
- 利用Trie(字典树)实现敏感词过滤算法
- 帧数达不到144用144hz_专业FPS玩家讲解:60Hz与144Hz刷新率的问题
- 最新QQ搭建代挂系统2.0全新打包内带i优支付在线充值系统
- Android 腾讯地图定位
- Insyde uefi 隐藏设置_vivo手机怎么隐藏应用 vivo手机怎样把软件隐藏起来?
- 在react中使用codemirror
- Android 蓝牙开发 BLE(低功耗) 摩拜单车共享汽车开门实例
- 感受Java的魅力——基于Java二维数组和if语句编制的税后工资计算方法
- tail -f和tail -F的区别
- 技术前沿:超宽带UWB——定位你的人生
- 74ls390设计任意进制计数器,基于74LS192的任意进制计数器的设计
- 硬件基础知识和典型应用-STM32 替换说明-CKS32, HK32, MM32, APM32, CH32, GD32, BLM32, AT32(推荐), N32, HC华大系列
热门文章
- 角蜂鸟上手之路(一)——初玩FaceNet
- 【Java之多线程篇】——吐血整理Java多线程详解(知识点+代码)
- 妈妈们都喜欢什么样的育儿APP,企业该如何开发?
- Network scanning Network investigation
- Twitter Storm开篇之作
- “全国版双录”新政来了,容联云助力泛金融打造合规的远程双录平台
- 分享:ip网络对讲电话应用于银行中一键式解决方案
- F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)
- window.parent window.opener
- 2019中小学机器人教育调研报告-中国电子学