目录
背景
在数字系统的广泛应用中,用数字系统处理模拟量的情况十分普遍,因此引入了模拟信号和数字信号的接口问题。为了解决这一问题,首先利用模数转换电路把模拟信号转成数字信号。(数字信号经过处理之后,也可以通过数模转换电路将模拟信号转换回模拟信号)。单片机开发当中,ADC是经常要到的外设。通过本篇文章对ADC硬件部分进行原理说明。本篇文章需要涉及到基尔霍夫电压定理、理想运放的虚短虚断特性、以及采样量化编码知识,所以需要电路、模拟电路、数字电路的基础知识。另外,DA转换方法有多种、AD转换的方法也有多种。本篇中就以最常用的方法(T型电阻网络DA转换器和逐次逼近AD转换器)来对DA转换和AD转换原理进行说明。嵌入式软件工程师能理解更好,但是不一定要掌握,只要懂得和硬件工程师合作懂得配置相关寄存器或者调用相关固件库函数即可。不要被吓倒!
AD转换器
AD转换器中一般要经过采样、保持、量化、编码这四个步骤来完成从模拟量到数字量的转换。
采样与保持
截图部分就是经典的采样保持电路。Ui(t)为输入的模拟信号。其中场效应管做成采样开关。它通过采样频率f(sample)的采样脉冲来完成控制开关的通断。电容C为保持功能,当采样开关导通的时候,电容迅速通电,使得电容的电压=输入的模拟电压!;当采样开关断开的时候,由于电容的漏电很小,所以电容电压基本保持不变!
因此经过采样保持电路之后,输入的模拟信号变成了一系列时间间隔内的阶梯信号。
量化
将采样输出的电压用某个最小单位的整数倍来表示的过程。这个最小数量单位称为量化单位(经常用🔺表示)。
编码
将量化的结果用代码来表示出来的过程称为编码(最小量化单位的整数倍->二进制数)。
AD转换器转换原理
本篇文章只是对原理进行一个说明。不同的芯片可以采用不同的技术。不代表stm32就是采用该技术。这篇文章只是个人学习过模电和数电的知识。在ADC原理说明的时候,将这些知识串联起来,形成一个知识的闭环。
因为AD转换器转换原理DA转换器,因此先对DA转换的原理先进行说明!
DA转换原理
。
本篇文章以T型电阻网络型进行说明
当dn-1闭合的时候,也就是说最左边的电阻接到参考电压,其他的模拟开关接地。
看截图中的电路,从左往右看,两个2R并联再和R串联 等价于一个2R电阻。所以最终的等效电路是
理想运放的两个特性(虚短和虚断)
虚短:反向输入端和同向输入端电位相同
虚断:运放的反向输入端和同相输入端的电流为0.
1)根据虚短特性可以知道,反相输入端的电压和同相输入端的电压相等,都为0.
2)根据虚断原理可以知道流过RF的电流(截图中的红色箭头)。
3)根据基尔霍夫电压定理可以知道Uo的电压就等于Rf上的电压大小相等,方向相反!
当d0为1(连接参考电压时),其他位模拟开关全部接地情况。
该等效电路也很好理解,通过从右往左看,就可以知道,和dn-1接参考电压的类似。
再根据电路知识中的线性电路的叠加原理可知
显然看截图中最后的式子就可以看出数-模的转换了!
DA转换器的最小输出电压与最大输出电压的比值称为分辨率,显然DA转换器的位数越多,分辨出的最小电压能力就越强。
前面的知识讲完了,我们现在就可以介绍AD的转换原理了。
AD转换原理
1)转换开始前,将逐次逼近寄存器清零。
2)开始转换时将逐次逼近寄存器最高位置为1,其他位全0.此时DA转换器会输出电压和输入的模拟电压进行比较
A.DA转换器的输出电压U0 < 输入的模拟电压U1.说明DA转换的电压太大,要减小,此时Uc=1.
通过控制逻辑将最高位清零,次高位置为1,继续比较。
B.DA转换器的输出电压U0 > 输入的模拟电压U1.说明DA转换的电压太小,要增大,此时Uc=0.
通过控制逻辑将最高位保持为1,次高位置为1,继续比较。
就这样子逐位进行直到最低位,转换过程结束。此时寄存器的数值就是转换的结果。