ADC 简介 ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模数转换器可以实现这个功能,在各种不同的产品中都可以找到它的身影。与之相对应的 DAC(Digital-to-Analog Converter),它是 ADC 模数转换的逆向过程。ADC 最早用于对无线信号向数字信号转换。如电视信号,长短播电台发射接收等。 转换过程 如下图所示模数转换一般要经过采样、保持和量化、编码这几个步骤。在实际威廉希尔官方网站
中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。
采样是将时间上连续变化的模拟信号转换为时间上离散的模拟信号。采样取得的模拟信号转换为数字信号都需要一定时间,为了给后续的量化编码过程提供一个稳定的值,在采样威廉希尔官方网站
后要求将所采样的模拟信号保持一段时间。 将数值连续的模拟量转换为数字量的过程称为量化。数字信号在数值上是离散的。采样保持威廉希尔官方网站
的输出电压还需要按照某种近似方式归化到与之相应的离散电平上,任何数字量只能是某个最小数量单位的整数倍。量化后的数值最后还需要编码过程,也就是 A/D 转换器输出的数字量。 分辨率 分辨率以二进制(或十进制)数的位数来表示,一般有8位、10位、12位、16位等,它说明模数转换器对输入信号的分辨能力,位数越多,表示分辨率越高,恢复模拟信号时会更精确。 精度 精度表示 ADC 器件在所有的数值点上对应的模拟值和真实值之间的最大误差值,也就是输出数值偏离线性最大的距离。
转换速率 转换速率是指 A/D 转换器完成一次从模拟到数字的 AD 转换所需时间的倒数。例如,某 A/D 转换器的转换速率为 1MHz,则表示完成一次 AD 转换时间为 1 微秒。 访问 ADC 设备 应用程序通过 RT-Thread 提供的 ADC 设备管理接口来访问 ADC 硬件,相关接口如下所示:
查找 ADC 设备 应用程序根据 ADC 设备名称获取设备句柄,进而可以操作 ADC 设备,查找设备函数如下所示:
一般情况下,注册到系统的 ADC 设备名称为 adc0,adc1等,使用示例如下所示:
使能 ADC 通道 在读取 ADC 设备数据前需要先使能设备,通过如下函数使能设备:
使用示例如下所示:
读取 ADC 通道采样值 读取 ADC 通道采样值可通过如下函数完成:
使用 ADC 采样电压值的使用示例如下所示:
实际电压值的计算公式为:采样值 * 参考电压 / (1 << 分辨率位数),上面示例代码乘以 100 将数据放大,最后通过 vol / 100 获得电压的整数位值,通过 vol % 100 获得电压的小数位值。 关闭 ADC 通道 关闭 ADC 通道可通过如下函数完成:
使用示例如下所示:
FinSH 命令 在使用设备前,需要先查找设备是否存在,可以使用命令 adc probe 后面跟注册的 ADC 设备的名称。如下所示:
使能设备的某个通道可以使用命令 adc enable 后面跟通道号。
读取 ADC 设备某个通道的数据可以使用命令 adc read 后面跟通道号。
关闭设备的某个通道可以使用命令 adc disable 后面跟通道号。
ADC 设备使用示例 ADC 设备的具体使用方式可以参考如下示例代码,示例代码的主要步骤如下: 首先根据 ADC 设备名称 “adc1” 查找设备获取设备句柄。 使能设备后读取 adc1 设备对应的通道 5 的采样值,然后根据分辨率为 12 位,参考电压为 3.3V 计算实际的电压值。 最后关闭 ADC 设备对应通道。 运行结果:打印实际读取到的转换的原始数据和经过计算后的实际电压值。
原作者:RT-Thread文档中心
|