单片机是一个典型的数字系统,数字系统只能对输入的数字信号进行处理,其输出信号也是数字的。但工业或者生活中的很多量都是模拟量,这些模拟量可以通过传感器变成与之对应的电压、电流等模拟量。为了实现数字系统对这些电模拟量的测量,运算和控制,就需要一个模拟量和数字量之间的相互转化的过程。

A/D和D/A的基本概念

A/D是模拟量到数字量的转换,依靠的是模数转换器(Analog to Digital Converter),简称ADC。D/A是数字量到模拟量的转换,依靠的是数模转换器(Digital to Analog Converter),简称DAC。它们的道理是完全一样的,只是转换方向不同,因此我们讲解过程主要以A/D为例来讲解。         什么是模拟量?就是指变量在一定范围内连续变化的量,总之,任何两个数字之间都有无限个中间值,所以称之为连续变化的量,也就是模拟量。ADC就是起到把连续的信号用离散的数字表达出来的作用

A/D的主要指标

我们在选取和使用A/D的时候,依靠什么指标很重要。由于AD的种类很多,分为积分型,逐次逼近型,并行/串行比较型,Σ-Δ型等多种类型。同时指标也比较多,并且有的指标还有轻微差别。

1.ADC的位数

一个n位的ADC表示这个ADC共有2的n次方个刻度。8位ADC,输出的是从0-255的256个数字,也就是2的8次方的一个数据刻度。

2.基准源

基准源也叫基准电压,是ADC的1个重要标准,要想把输入ADC的信号测量准确,那么基准源首先要准,基准源的偏差会导致转换结果的偏差比如一根米尺,总长度本应该是1米,假定这根米尺被火烤了一下,实际变成了1.2米,再用这根米尺测物体长度的话自然就有了较大的偏差。假如我们的基准源应该是5.10V,但是实际上提供的却是4.5V,这样误把4.5V当成了5.10V来处理的话,偏差也会比较大。

3.分辨率

分辨率是数字量变化的一个最小刻度时,模拟信号的变化量,定义为满刻度量程与2n-1的比值。假定5.10V的电压系统,使用8位的ADC进行测量,那么相当于0-255一共256个刻度把5.10V划分成255份,那么分辨率就是5.10/255=0.02V.

4.INL(积分非线性度)和DNL(差分非线性度)

一般容易混淆两个概念就是分辨率和精度,认为分辨率越高,则精度越高,而实际上,两者并没有必然的联系。

分辨率是用来描述刻度划分的,而精度是用来描述准确程度。同样一根米尺,刻度数相同,分辨率就相当,但是精度却可以相差很大,ADC精度关系重大的两个指标是INL(Integral NonLiner)和DNL(Differencial NonLiner)。

 INL指的是ADC器件在所有的数值上对应的模拟值,和真实值之间的误差最大的哪一个点的误差值,是ADC最重要的一个精度标准,单位是LSB。LSB是最低有效位的意思,那么实际上对应的就是ADC的分辨率。一个基准为5.10V的8位ADC,它的分辨率就是0.02V,用它去测量一个电压信号,得到的实际结果是100,就是表示它测到的电压值是100*0.02=2V,假定它的INL是1LSB,就是表示这个电压信号真实的准确值是在1.98V——2.02之间的,按理想情况对应的数字因该是99-101,测量误差是一个最低的有效位,即1LBS。

DNL表示的是ADC相邻两个刻度之间最大的差异,单位也是LSB。一把分辨率是1毫米的尺子,相邻的刻度之间并不都刚好是一毫米,而总是会存在或大或小的误差。同理,一个ADC的两个刻度线之间也不总是准确的等于分辨率,也是存在误差,这个就是DNL。一个基准为5.10V的8位ADC,假定DNL是0.5LSB,那么当它的转换结果从100增加到101时,理想情况下实际电压应该增加0.02V,但DNL为0.5LSB的情况下实际电压为0.01——0.03V之间,值得一提的是DNL并非一定小于1LSB,很多时候它会等于或者大于1LSB,这在相当一定程度上刻度紊乱,当实际电压保持不变时,ADC得出的结果可能会在几个数值之间跳动,很大程度上由于这个原因(但并不完全是,因为还有很多干扰)。

简单的说:

做一个电压表,10位AD测10V电压,基本上每一格就是 10V/2^10=10/1024=0.01V,这是分辨率,表示它的分辨率是每格就是0.01V,但是由于积分电容不好,电阻温飘大,外部干扰,AD本身非线性等,一个真正精确的10V电压你测出来是9.51V(分辨率决定了你最后一位小数的位置--十分位,还是百分位等),这时分辨率是够高了,0.01V分辨率,但精度呢?差了0.5/10V=5%! 所以对于测量来说,分辨率可以上得很高,大不了增加AD位数,分辨率小数点后位数再多少都可以,但受其它因素影响,但精度却不能提高。

5.转换速率

转换速率,是指ADC每秒能进行采样转换的最大次数,单位是sps(或s/s、sa/s,即samples per second),它与ADC完成一次从模拟到数字的转换所需要的时间互为倒数关系。ADC的种类比较多,其中积分型的ADC转换时间是毫秒级的,属于低速ADC;逐次逼近型ADC转换时间是微妙级的,属于中速ADC;并行/串行的ADC的转换时间可达到纳秒级,属于高速ADC。

【车载】【ADC】通俗易懂ADC相关推荐

  1. 【GD32L233C-START】8、使用内部参考电压校准adc,adc采样更准确

    1.为什么要校准 因为MCU的VDD的电压会有微小的波动,并不是3.3v恒定的. 2.ADC与ADC通道 可以看出GD32L233C-START开发板,也就是芯片GD32L233CCT6有一个ADC外 ...

  2. cubemx 配置多通道ADC进行ADC采样

    cubemx 配置多通道ADC进行ADC采样 AD的基础知识 AD很复杂,其实也不复杂,因为我们用的不多. AD:模拟量转换数字量(模拟信号转换数字信号). ADC:模拟量转数字量的转换器. 为什么需 ...

  3. STM-32:ADC模数转换器—ADC单通道转换/ADC多通道转换

    目录 一.ADC 模数转换器 1.1ADC简介 1.2 逐次逼近型ADC工作原理 1.3STM32中的ADC基本结构 1.4STM32中ADC的输入通道 1.5STM32中的ADC的四种转换模式 1. ...

  4. matlab建模sar adc,SAR ADC的系统级建模与仿真

    徐韦佳,田俊杰,施琴 (中国人民解放军理工大学 理学院,江苏 南京 211101) 摘要:为了实现逐次逼近型模数转换器(Successive Approximation AnalogtoDigit ...

  5. 也说说ADC以及ADC的主要技术参数及分类介绍

    ​       我们经常在芯片选型时,提到MCU是否内嵌ADC,是几位ADC等名词.这个ADC是什么呢?它代表什么意思?这里我们就带大家一起来了解一下,ADC的概念以及如何选择ADC芯片.       ...

  6. stm8s001 - SWIM复用为ADC输入 ADC电压值不准确?

    文章目录 引脚功能 软件配置 SWIM复用为ADC之后采样值不准确 引脚功能 STM8S001有三个ADC输入通道,但是分布在两个引脚,所以可以说只有两个可用的ADC. 分别是PD6.PD5.PD3, ...

  7. STM32H743,基于LL库实现adc采样(ADC+DMA+TIM)

    买了一块正点原子的阿波罗H743开发板,最近在调试ADC采样,由于CubeMx生成的是HAL库格式的代码,HAL库使用时太占用资源了不喜欢,个人比较喜欢LL库,这个库和STD库有点像.因此用LL库来实 ...

  8. HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.Cube配置(F407VET6) 二.使用步骤 1. 代码总览 2.代码注意事项以及解析 总结 前言 第一次写,无 ...

  9. 【ADC】ADC介绍

    一.什么是ADC.DAC.模拟信号.数字信号? 模拟信号可以理解成是现实世界的物理量,但是这些物理量者是电信号.比如说无线电信号等,模拟信号的特点是时间连续.幅值连续.它的优点是直观,易于实现.但是它 ...

最新文章

  1. Asp.Net Core轻量级Aop解决方案:AspectCore
  2. UProceduralMeshComponent
  3. STL源码剖析 set
  4. SQL Server 2000/2005 数据库分页
  5. 容器、Docker与Kubernetes——Kubernetes的配置入门
  6. python-jieba分词模块
  7. [Codeforces967C]Stairs and Elevators(二分查找)
  8. redis取值偶尔取不到_redis 入门
  9. linux命令行添加管理员用户,Linux基础命令---添加用户useradd
  10. Java可视化图像界面编程如何插入图片
  11. Tryhackme-Web Hacking Fundamentals
  12. 中国十大徒步路线,你走过几个?_我是亲民_新浪博客
  13. Exchange会议室邮箱4种常见会议预定场景的介绍和设置
  14. flac格式歌曲如何转换成mp3格式,flac转mp3详细图文教程
  15. 穿普拉达的女王 观后感
  16. 事务前沿研究 | 隔离级别的追溯与究明,带你读懂 TiDB 的隔离级别(上篇)
  17. 通过路由器子接口实现 VLAN 间的互访
  18. 2.Echart----绘制饼图
  19. JSON快速学习入门
  20. Nginx配置WebSocket 【支持wss与ws连接】

热门文章

  1. wps交叉表_使用WPS图表功能中的堆叠条形图制作日程交叉图
  2. 工大校园邮箱申请流程
  3. android代码获取deviceid,获取安卓系统的设备id用getDeviceId()函数
  4. canvas绘图详解-06-绘制一个五角星-常用绘图原理
  5. vue实现简单搜索功能
  6. MoveIt 1 源码构建: Linux
  7. 【肝帝一周总结:全网最全最细】十万字python教程,学不会找我!教到你会为止!!内容超多,建议收藏慢慢看!
  8. MySQL如何备份整个数据库
  9. 基于Token的身份验证的原理
  10. .Net 简单使用 Hangfire