目录
背景
在数字系统的广泛应用中,用数字系统处理模拟量的情况十分普遍,因此引入了模拟信号和数字信号的接口问题。为了解决这一问题,首先利用模数转换电路把模拟信号转成数字信号。(数字信号经过处理之后,也可以通过数模转换电路将模拟信号转换回模拟信号)。单片机开发当中,ADC是经常要到的外设。通过本篇文章对ADC硬件部分进行原理说明。本篇文章需要涉及到基尔霍夫电压定理、理想运放的虚短虚断特性、以及采样量化编码、触发器知识,所以需要电路、模拟电路、数字电路的基础知识 。另外,DA转换方法有多种、AD转换的方法也有多种。本篇中就以最常用的方法(T型电阻网络DA转换器、逐次逼近AD转换器并联比较型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.逐次逼近型AD转换器

1)转换开始前,将逐次逼近寄存器清零。
2)开始转换时将逐次逼近寄存器最高位置为1,其他位全0.此时DA转换器会输出电压和输入的模拟电压进行比较
A.DA转换器的输出电压U0 < 输入的模拟电压U1.说明DA转换的电压太大,要减小,此时Uc=1.
通过控制逻辑将最高位清零,次高位置为1,继续比较。
B.DA转换器的输出电压U0 > 输入的模拟电压U1.说明DA转换的电压太小,要增大,此时Uc=0.
通过控制逻辑将最高位保持为1,次高位置为1,继续比较。
就这样子逐位进行直到最低位,转换过程结束。此时寄存器的数值就是转换的结果。
2.并联比较型AD转换器


1)显然通过并联比较型工作示意图,根据电阻的伏安特性可以知道各个电阻的电压。
2)各个电阻的电压与模拟输入电压在运放电路中进行比较
A.当模拟输入电压>电阻侧电压,输出1
B.当模拟输入电压<电阻侧电压,输出0
3)和运放的比较结果有7中情况,可以用编码器将7中状态信息转化为计算机系统可以处理的二进制信息
编码器
因为数字系统只能处理二值运算,因此需要将数字电路的各种信息用二值代码表示出来。这个过程就是编码。实现编码的电路就称为编码器。编码器是一个多输入和多输出的组合逻辑电路。m表示输入信息的状态数,n表示代码的位数,一般情况下他们之间存在m<= 2的n次方关系。
寄存器+代码转换器-》编码器
输入有7种状态,所以3条输出线即可(2的3 次方-1)!

显然就完成了模数的转化。
下面对编码器的涉及到的逻辑器件进行说明,以完成所学的电路、模电、数电的知识闭环。
同步D触发器和边沿D触发器
在复杂的数字电路中,要继续进行各种的复杂的运算与控制,就必须将曾经的输入过的信号以及运算结果暂时保存起来。以便与新的输入信号进一步运算来共同确定电路的输出状态。这样子就要求电路中必须包含记忆功能的电路单元-触发器
触发器输出有Q和Q非,因此也称为双稳态触发器。

同步D触发器的由来:
基本RS触发器 -> 同步RS触发器 ->同步D触发器 和边沿D触发器
基本RS触发器


同步RS触发器
同步RS触发器是为了使得多个相关的触发器同时工作,必须给电路加上统一的控制信号,这个控制信号就叫做时钟脉冲信号,简称CP.,这种触发器叫做同步RS触发器
D触发器是在同步RS触发器的基础上解决约束条件问题(即同步RS寄存器都是有效设置信号情况)而产生的。



特性方程

补充同步输入端和异步输入端的概念!

同步D触发器

D触发器的特性方程位

边沿型D触发器(维持-阻塞D触发器)


由同步RS触发器与利用反馈构成了边沿型D触发器!