1. ADC基础概念
模数转换器(ADC,Analog-to-Digital Converter)是嵌入式系统中连接模拟世界与数字处理核心的桥梁。在 Linux 设备树与 IIO(Industrial I/O)子系统中,ADC 的配置精度直接决定了传感器数据的可信度。本节将系统梳理 ADC 的核心参数与工作原理,为后续设备树绑定与驱动开发奠定理论基础。
学习提示:ADC 的五个核心参数——分辨率、采样率、参考电压、量化误差与转换时间——在设备树中均有对应的属性字段。理解这些参数的物理含义,是正确编写 ADC 设备树节点的前提。
1.1 ADC 工作原理:从模拟到数字的桥梁
ADC 的核心任务是将连续变化的模拟电压信号转换为离散的数字码值。其基本工作流程包含三个步骤:采样、保持与量化编码。
- 采样(Sampling):在特定时间点对模拟信号进行取样,将连续时间信号变为离散时间信号。
- 保持(Hold):将采样得到的电压值稳定一段时间,以便后续量化电路完成转换。
- 量化编码(Quantization & Encoding):将保持的模拟电压与参考电压进行比较,输出对应的二进制数字码。
下图展示了 ADC 从模拟输入到数字输出的完整信号链路:
关键点:在设备树中,
sampling-frequency 属性对应采样时钟频率,vref-supply 属性绑定参考电压源。这两个属性直接影响 ADC 的转换精度与速度。
1.2 分辨率:ADC 的“刻度尺”精细度
分辨率是 ADC 能够分辨的最小模拟电压变化量,通常用 位数(N-bit) 表示。N 位 ADC 可将参考电压范围划分为 2N 个离散等级。
| 分辨率(位) | 等级数(2N) | LSB 大小(Vref=3.3V) | 典型应用 |
|---|---|---|---|
| 8 位 | 256 | 12.89 mV | 电池电压监测、按键检测 |
| 10 位 | 1024 | 3.22 mV | 温度传感器、电位器 |
| 12 位 | 4096 | 0.806 mV | 电流检测、压力传感器 |
| 16 位 | 65536 | 50.35 µV | 精密称重、音频采集 |
分辨率与最小可分辨电压(LSB,Least Significant Bit)的关系为:
LSB = Vref / 2^N
示例:Vref = 3.3V,N = 12
LSB = 3.3 / 4096 ≈ 0.806 mV
常见误区:高分辨率并不等于高精度。分辨率只表示 ADC 能区分的等级数量,而精度受参考电压稳定性、噪声、非线性误差等因素影响。设备树中
bits 属性仅声明分辨率,实际精度需结合硬件设计评估。
1.3 采样率:转换速度的决定因素
采样率(Sampling Rate)表示 ADC 每秒完成转换的次数,单位是 SPS(Samples Per Second) 或 Hz。根据奈奎斯特采样定理,采样率必须至少为信号最高频率分量的两倍,才能无失真地重建原始信号。
采样率的选择需权衡以下因素:
- 信号带宽:高频信号需要更高的采样率,否则会发生混叠(Aliasing)。
- 分辨率:高分辨率 ADC 通常转换时间更长,采样率受限。
- 功耗:高采样率意味着更高的动态功耗,电池供电设备需谨慎选择。
设备树实践:在 IIO 驱动中,采样率通过
sampling-frequency 属性配置。例如 sampling-frequency = <100000>; 表示 100 kSPS。若未指定,驱动可能使用默认值或硬件复位值。
1.4 参考电压:转换的“标尺”基准
参考电压(Vref)是 ADC 转换的基准尺度,决定了输入电压的满量程范围。ADC 将输入电压与 Vref 进行比较,输出对应的数字码值。
| 参考电压类型 | 特点 | 典型场景 |
|---|---|---|
| 内部参考 | 集成在芯片内部,精度一般(±2%~±5%) | 低成本、低精度应用 |
| 外部参考 | 独立高精度芯片,温漂低(±0.1%~±0.5%) | 精密测量、工业传感器 |
| 电源参考 | 直接使用 VDD 作为参考,成本最低 | 电池监测、粗略检测 |
参考电压对转换结果的影响:
数字码值 = (Vin / Vref) × (2^N - 1)
示例:Vref = 3.3V,N = 12,Vin = 1.65V
数字码值 = (1.65 / 3.3) × 4095 = 2047.5 ≈ 2048
关键注意:Vref 的稳定性直接影响 ADC 精度。若 Vref 波动 1%,则转换结果同样会引入 1% 的误差。在设备树中,
vref-supply 属性通常绑定一个稳压器节点,确保参考电压的稳定供给。
1.5 量化误差:数字世界的“舍入代价”
量化误差是 ADC 转换过程中固有的、不可消除的误差,源于将连续模拟值映射到离散数字等级时的舍入操作。最大量化误差为 ±0.5 LSB。
量化误差与分辨率的关系:
- 分辨率越高,LSB 越小,量化误差的绝对值越小。
- 量化误差无法消除,但可以通过过采样(Oversampling)与求平均技术降低其影响。
- 信噪比(SNR) 与分辨率的关系:SNR ≈ 6.02N + 1.76 dB(理想 ADC)。
工程启示:在设备树中配置 ADC 时,若应用对精度要求较高(如称重传感器),应选择 16 位或更高分辨率的 ADC,并配合低噪声参考电压源。量化误差是系统误差的底线,无法通过软件校准消除。
1.6 核心参数对比总结
| 参数 | 定义 | 单位 | 设备树属性 | 对系统的影响 |
|---|---|---|---|---|
| 分辨率 | ADC 可区分的等级数量 | 位(bit) | bits |
决定最小可分辨电压 |
| 采样率 | 每秒转换次数 | SPS / Hz | sampling-frequency |
决定可处理的信号带宽 |
| 参考电压 | 转换基准电压 | V(伏特) | vref-supply |
决定满量程范围与精度 |
| 量化误差 | 离散化引入的固有误差 | LSB / mV | 无(硬件固有) | 限制理论最大精度 |
| 转换时间 | 单次转换所需时间 | µs / ns | conversion-time |
影响采样率上限 |
本节要点回顾:
- ADC 将模拟电压转换为数字码值,核心步骤为采样、保持、量化编码。
- 分辨率决定 LSB 大小,采样率决定信号带宽,Vref 决定满量程范围。
- 量化误差是 ±0.5 LSB 的固有误差,增加分辨率可减小其绝对值。
- 设备树中通过
bits、sampling-frequency、vref-supply等属性配置 ADC 参数。