(一)ADC简介
这是一个典型的嵌入式闭环控制系统框图,在这个系统中将模拟量转换为数字量的过程称为模数(A/D)转换,完成这一转换的器件叫作模数转换器(ADC)。将数字量转化为模拟量的过程称为数模(D/A)转换,与之对应的器件就叫做数模转换器(DAC).
只要跟CPU打交道的通常是数字量,和控制系统相关的一般是模拟非电量(温度,速度等),模拟量和数字量之间的通信就需要A/D和D/A转换,A/D和D/A转换起到了桥梁的作用。
模拟信号的采集和处理过程可以用下面这个框图简单表示,数据采集系统主要是由模拟信号采集、A/D转换、数字信号处理这三大部分组成,可见A/D转换有多重要。(STM32的A/D模块包括的是运放之后的模块,即红色方框之内的部分)
(二)ADC原理
A/D转换主要包括两个内容:采样保持和量化编码,不光要采样,还要保持一会儿使得能够完成量化编码的工作,所以我们通常也会比较关心A/D转换所需的时间。上面这个示意图是教科书里常见的,让我们对采样和量化编码有个大致的理解。将一个模拟信号进行采样,得到的样点转化为数字量,这是整个A/D转换过程的核心,量化编码分为好多算法,这里不深入研究了,知道大致原理即可。
(三)ADC主要参数
1 分辨率:
AD转换器输出的数字量的最低位变化一个数时,对应输入模拟量的变化量,A/D转换器的位数越多,能够分辨的最小模拟电压值就越小,分辨率就越大,STM32的A/D转换器是12位的,假设最大输入电压为5V,所能分辨的最小电压量就是5/(2^12),很多时候我们会直接说一个n位的A/D转换器分辨率为n,这只是一个设计参数,不是实际的测量值。
2 相对精度:
A/D转换器实际输出数字量与理论值之间的最大差值称为相对精度
3转换速度:
A/D转换器完成一次转换所需要的时间,一般是us级别的