原文链接:https://www.cnblogs.com/raymon-tec/p/4995698.html

笔者最近在做的一个项目中,用到一片16位的高分辨率的芯片,借此再学习一下由于ADC和DAC的相关知识,以此巩固。

关于ADC的精度和分辨率将在另外一篇博客讨论,分辨率不等于精度。

一块精度0.2%(或常说的准确度0.2级)的四位半万用表,测得A点电压1.0000V,B电压1.0005V,可以分出B比A高0.0005V,但A点电压的真实值可能在0.9980~1.0020之间不确定。

那么,既然数字万用表存在着精度和分辨率两个指标,那么,对于ADC和DAC,除了分辨率以外,也存在精度的指标。模数器件的精度指标是用积分非线性度(Interger NonLiner)即INL值来表示。也有的器件手册用 Linearity error 来表示。他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。也就是,输出数值偏离线性最大的距离。单位是LSB(即最低位所表示的量)。

比如12位ADC:TLC2543,INL值为1LSB。那么,如果基准4.095V,给定数字量1000,输出电压在1V,那么,真实电压值可能分布在0.999~1.001V之间。对于DAC也是类似的。比如DAC7512,INL值为8LSB,那么,如果基准4.095V,给定数字量1000,那么输出电压可能是0.992~1.008V之间。

下面再说DNL值。理论上说,模数器件相邻量个数据之间,模拟量的差值都是一样的。就相一把疏密均匀的尺子。但实际并不如此。一把分辨率1毫米的尺子,相邻两刻度之间也不可能都是1毫米整。那么,ADC相邻两刻度之间最大的差异就叫差分非线性值(Differencial NonLiner)。DNL值如果大于1,那么这个ADC甚至不能保证是单调的,输入电压增大,在某个点数值反而会减小。这种现象在SAR(逐位比较)型ADC中很常见。 
     举个例子,某12位ADC,INL=8LSB,DNL=3LSB(性能比较差),基准4.095V,测A电压读数1000,测B电压度数1200。那么,可判断B点电压比A点高197~203mV。而不是准确的200mV。对于DAC也是一样的,某DAC的DNL值3LSB。那么,如果数字量增加200,实际电压增加量可能在197~203mV之间。

很多分辨率相同的ADC,价格却相差很多。除了速度、温度等级等原因之外,就是INL、DNL这两个值的差异了。比如AD574,贵得很,但它的INL值就能做到0.5LSB,这在SAR型ADC中已经很不容易了。换个便宜的2543吧,速度和分辨率都一样,但INL值只有1~1.5LSB,精度下降了3倍。 
     另外,工艺和原理也决定了精度。比如SAR型ADC,由于采用了R-2R或C-2C型结构,使得高权值电阻的一点点误差,将造成末位好几位的误差。在SAR型ADC的2^n点附近,比如128、1024、2048、切换权值点阻,误差是最大的。1024值对应的电压甚至可能会比1023值对应电压要小。这就是很多SAR型器件DNL值会超过1的原因。但SAR型ADC的INL值都很小,因为权值电阻的误差不会累加。 
    和SAR型器件完全相反的是阶梯电阻型模数/数模器件。比如TLC5510、DAC7512等低价模数器件。比如7512,它由4095个电阻串联而成。每个点阻都会有误差,一般电阻误差5%左右,当然不会离谱到100%,更不可能出现负数。因此这类器件的DNL值都很小,保证单调。但是,每个电阻的误差,串联后会累加,因此INL值很大,线性度差。

这里要提一下双积分ADC,它的原理就能保证线性。比如ICL7135,它在40000字的量程内,能做0.5LSB的INL值(线性度达到1/80000 !!)和0.01LSB的DNL值.这两个指标在7135的10倍价钱内,是不容易被其他模数器件超越的。所以7135这一类双积分ADC特别适合用在数字电压表等需要线性误差非常小的场合。 
     还要特别提一下基准源。基准源是测量精度的重要保证。基准的关键指标是温飘,一般用ppm/K来表示。假设某基准30ppm/K,系统在20~70度之间工作,温度跨度50度,那么,会引起基准电压30*50=1500ppm的漂移,从而带来0.15%的误差。温漂越小的基准源越贵,比如30ppm/K的431,七毛钱;20ppm/K的385,1块5;10ppm/K的MC1403,4块5;1ppm/K的LM399,14元;0.5ppm/K的LM199,130元。 
该死的教科书害了一代学生。在ADC电路中的基准源不能直接接电源VCC,这里要考虑基准电压的稳定度。其中常用的基准源电压可由TL431提供。 
       最后说一下Sigma-Delta型ADC,它比较特殊,对于精度,一般用直接用线性度表示,比如0.0015%.不说差分非线性值,而直接用有效分辨率来表示。此外,Sigma-Delta型ADC还存许多怪脾气,难伺候。

总结: 
     (1)INL(Interger NonLinear,Linearity error)精度。理解为单值数据误差,对应该点模拟数据由于元器件及结构造成的不能精确测量产生的误差。 
     (2)DNL(Differential NonLinear)差分非线性值。理解为刻度间的差值,即对每个模拟数据按点量化,由于量化产生的误差。 
例子: 
     (1)INL,精度 
     比如12位ADC:假设基准Vref=4.095V,那么1LSB=Vref/2^12=0.001V。如果精度为1LSB,则它的单值测量误差0.001V*1=0.001V,比如测量结果1.000V,实际在1.000+/-0.001V范围。如果精度为8LSB,则他的单值测量误差0.001V*8=0.008V,比如测量结果1.000V,实际在1.000+/-0.008V范围 
(2)DNL,差分非线性值 
     比如12位ADC:假设基准Vref=4.095V,那么1LSB=Vref/2^12=0.001V。不考虑精度,即精度为0LSB。没有单值误差。如果DNL=3LSB=0.001V*3=0.003V假设A实际电压为1.001V,B实际电压为1.003V。理论上A点读数1.001V/1LSB=1001,B点读数1.003V/1LSB=1003,B-A=2,B>A,但由DNL=3LSB=0.003V,模拟数据间的量化误差有0.003V,那么B-A会在-1(2-3=-1)到+5(2+3=5)之间的某一个数。

ADC相关参数之---INL和DNL相关推荐

  1. 对ADC(DAC)的线性度(INL和DNL)的一点理解

    大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略. 其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个: INL:翻译过来叫& ...

  2. inl和dnl matlab_请问如何用matlab仿真它的性能, 比如 INL, DNL, SFDR,EOB等等。

    如果用Hspice仿真一个Pipelined ADC, 之后如何用matlab仿真它的性能, 比如 INL, DNL, SFDR,EOB等等. 这个你可能要自己编程. 小编能给个联系方式吗?我做的也是 ...

  3. inl和dnl matlab_matlab仿真inl dnl

    高速模数转换器ADC的INLDNL测量 美国美信公司关于ADC参数INL和DNL的测试方法介绍美国美信公司关于ADC参数INL和DNL的测试方法介绍隐藏>> Maxim > App ...

  4. ADC芯片参数定义及选型指南

    I.参数定义 1. 分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与 2n 的 比值.分辩率又称精度,通常以数字信号的位数来表示. 2. 转换速率(Conver ...

  5. 【FPGA】ADC芯片参数定义及选型指南

    I.参数定义 1. 分辩率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与 2n 的 比值.分辩率又称精度,通常以数字信号的位数来表示. 2. 转换速率(Conver ...

  6. RFSoC应用笔记 - RF数据转换器 -21- API使用指南之配置ADC相关工作状态

    配置ADC相关工作状态 XRFdc_SetDecimationFactor 函数原型 u32 XRFdc_SetDecimationFactor(XRFdc *InstancePtr, u32 Til ...

  7. mysql 中修改对象_在MySQL中,创建一个数据库后,还可以对象其进行修改,不过这里的修改是指可以修改被创建数据库的相关参数,也可以修改数据库名。...

    [多选题]注射时,在(  )情况下,采用较高的注射速率. [单选题]通常,所设置的模具温度是指和制品接触的模腔内表面在(   ). [单选题]反映某一事件发生强度的指标应选用 [判断题]当试样制备之后 ...

  8. linux 内核调整相关参数

    linux 内核调整相关参数 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认 ...

  9. Data Guard相关参数学习介绍

    LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u  AFFIRM and NOAFFIRM u  ALTERNATE (not suppor ...

  10. MySQL-DB参数、内存、I/O、安全等相关参数设置

    文章目录 生猛干货 官方文档 服务器参数介绍 MySQL获取信息配置领 MySQL配置参数的作用域 内存配置相关参数 I/O相关配置参数 Innodb I/O 相关的配置 MyISAM I/O 相关的 ...

最新文章

  1. vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。
  2. Javascript导航菜单13则
  3. 查看linux中的sh指向哪,什么是Linux的Shell脚本和怎么执行脚本?
  4. python 抽象类分析
  5. 基于 Kyma 的企业级云原生应用的扩展案例分享
  6. 前端学习(2577):Nuxt解决了什么问题
  7. 期权协议Charm在主网上线为UniswapV3设计的被动做市策略AlphaVaults
  8. 程序员面试金典——1.1确定字符互异
  9. LINQ to SQL之使用Lambda Expression批量删除数据
  10. 2017省夏令营Day6
  11. FRR BGP协议分析4 -- 路由更新(1)
  12. 关键路径例题图解_图解!九大常见数据结构被24张图给安排的明明白白
  13. 群晖nas使用rsync备份
  14. win10系统CUDA10.0安装教程(for tensorflow2.0)
  15. jQuery实现form表单reset按钮重置清空表单功能
  16. 计算机中年级排名怎么操作,智学网怎么查看年级排名?智学网查看年级排名的方法...
  17. JS调用google DEMO朗读
  18. 抛物线模拟合地对空导弹轨迹[python][抛物线][地对空导弹轨迹]
  19. 【基于JAVA的旅游路线推荐系统-哔哩哔哩】 https://b23.tv/4STx5NI
  20. 对于makefile不支持c++11的处理

热门文章

  1. Bumped!(dijskra)
  2. mysql 密码复杂度要求_MySQL设置密码复杂度
  3. java格林威治时间转北京时间
  4. 安庆集团-冲刺日志(第一天)
  5. 【MATLAB】GA优化算法整定PID控制器参数(三)—— 一阶带时延的被控对象
  6. 地图比例尺与空间分辨率之间的关系_百度、google、高德 地图比例尺功能实现(算法地图分辨率和zoomlevel之间的关系)...
  7. mac paralles内 windows虚机 连接 linux虚机
  8. 上古卷轴5怎么加补丁_上古卷轴5:想要装MOD的话,小编教你怎么做!
  9. Office安装时遇到的问题
  10. 基于主机的入侵检测优缺点_[转]基于网络和主机的入侵检测比较,各自优缺点...