1. ADC基础概念:什么是ADC、ADC在嵌入式系统中的作用、ADC的主要性能指标概览

大家好,我是你们的硬件讲师。今天咱们聊聊ADC——模数转换器。这东西在嵌入式系统里太常见了,几乎每个做硬件的工程师都绕不开它。

ADC,全称是Analog-to-Digital Converter。说白了,就是把连续的模拟信号,变成离散的数字信号。你想想看,现实世界里的温度、压力、声音、光线,这些都是模拟量。但我们的单片机、DSP、FPGA,它们只认0和1。ADC就是连接这两个世界的桥梁。

1.1 什么是ADC?

ADC的核心工作,就是采样和量化。

采样,是按一定的时间间隔,把连续的模拟信号“拍个快照”。量化,是把这些快照的电压值,用二进制数字表示出来。

举个例子。一个10位的ADC,参考电压是3.3V。它能分辨的最小电压变化,就是3.3V除以2的10次方,也就是1024份。每份大约3.22mV。嗯,这里要注意,这个值就是ADC的“分辨率”。

我个人习惯把ADC想象成一把尺子。模拟信号是你要测量的长度,ADC的位数就是尺子的刻度数。位数越高,刻度越密,测量结果就越精确。

核心公式:

数字输出 = (模拟输入电压 / 参考电压) × (2^N - 1)

其中N是ADC的位数。

1.2 ADC在嵌入式系统中的作用

ADC在嵌入式系统里,扮演着“感官”的角色。没有它,单片机就是个瞎子、聋子。

我做过一个温度采集项目。用的是NTC热敏电阻,它的阻值随温度变化。但单片机读不了电阻值,只能读电压。怎么办?

先把电阻变化转换成电压变化,再用ADC把电压读进来。这样,单片机就能知道当前温度是多少了。

类似的场景太多了:

  • 传感器数据采集:温度、湿度、压力、光照、加速度……几乎所有模拟传感器,都需要ADC来“翻译”。
  • 音频处理:麦克风输出的模拟信号,必须经过ADC才能被数字处理器处理。
  • 电源监测:检测电池电压、电流,判断电量剩余情况。
  • 触摸屏控制:电阻式触摸屏,就是通过ADC读取触摸点的坐标。

你想想看,如果没有ADC,这些功能全都实现不了。所以我说,ADC是嵌入式系统的“眼睛”和“耳朵”,一点都不过分。

1.3 ADC的主要性能指标概览

选ADC芯片的时候,不能只看价格。有几个关键指标,你必须搞清楚。我曾经因为忽略了一个指标,导致整个项目返工,教训深刻啊。

1.3.1 分辨率(Resolution)

分辨率就是ADC能分辨的最小模拟信号变化。单位是bit。常见的有8位、10位、12位、16位、24位。

分辨率越高,能区分的电压等级就越多。比如12位ADC,有4096个等级。16位ADC,有65536个等级。

但要注意,分辨率高不代表精度高。这是两码事。我见过有人把12位ADC当16位用,结果噪声比信号还大。

1.3.2 采样率(Sampling Rate)

采样率是ADC每秒能完成多少次转换。单位是SPS(Samples Per Second),或者Hz。

根据奈奎斯特定理,采样率至少要是信号最高频率的两倍,才能无失真地重建信号。比如你要采集20kHz的音频,采样率至少得40kHz。

实际项目中,我一般留出3到5倍的余量。比如信号最高1kHz,我会选5kSPS以上的ADC。为什么?因为抗混叠滤波器不是理想的,留点余量心里踏实。

1.3.3 精度(Accuracy)

精度是ADC实际输出与理想输出之间的偏差。它受很多因素影响:

  • 偏移误差:输入为0时,输出不为0。
  • 增益误差:转换曲线的斜率偏离理想值。
  • 积分非线性(INL):实际转换曲线与理想直线的最大偏差。
  • 微分非线性(DNL):相邻两个数字码对应的模拟输入之差,与理想LSB的偏差。

这些参数在芯片数据手册里都能找到。选型时,一定要看“典型值”和“最大值”。有些厂家只给典型值,那就要小心了。

1.3.4 信噪比(SNR)与有效位数(ENOB)

SNR是信号功率与噪声功率的比值,单位是dB。ENOB是有效位数,它反映了ADC在实际工作条件下的真实性能。

公式很简单:ENOB = (SNR - 1.76) / 6.02

比如一个16位ADC,如果SNR只有80dB,那它的ENOB大约只有13位。也就是说,你花16位的钱,买到的实际性能只有13位。

我的经验:选型时别只看位数,一定要看ENOB。有些24位的Σ-Δ ADC,在低采样率下ENOB能做到20位以上,但采样率一高,ENOB就掉得厉害。要根据你的实际应用场景来选。

1.3.5 转换时间与建立时间

转换时间,是ADC完成一次转换所需的时间。建立时间,是ADC从开始转换到输出稳定数据的时间。

对于逐次逼近型ADC(SAR ADC),这两个时间基本相等。但对于积分型ADC,建立时间可能比转换时间长很多。

我曾经在一个多通道采集系统里,用了多路复用器加一个ADC的方案。结果发现,切换通道后,ADC的输出要等很久才能稳定。后来查手册才知道,这个ADC的建立时间比转换时间长了10倍。嗯,这就是没仔细看数据手册的后果。

1.3.6 输入范围与参考电压

输入范围,是ADC能接受的模拟信号电压范围。常见的有0~3.3V、0~5V、±10V等。

参考电压,是ADC进行量化的基准。它直接影响ADC的测量范围。参考电压越稳定,ADC的测量结果就越准确。

我建议,对精度要求高的项目,一定要用外部参考电压源。内部参考电压虽然方便,但温漂和噪声都比较大。

1.3.7 功耗

对于电池供电的设备,功耗是个关键指标。ADC的功耗通常和采样率成正比。采样率越高,功耗越大。

有些ADC有“休眠模式”或“低功耗模式”,在不使用时可以关掉。选型时,可以关注一下这些特性。

避坑指南:我曾经选了一款号称“超低功耗”的ADC,结果发现它的低功耗模式只能在特定条件下使用。一旦进入正常工作模式,功耗比标称值高了3倍。所以,一定要仔细看数据手册的“典型工作条件”和“最大额定值”。

1.4 小结

好了,这一章的内容就到这里。我们讲了ADC是什么,它在嵌入式系统里扮演什么角色,以及选型时要注意的几个关键指标。

记住,ADC选型不是简单地看位数和价格。分辨率、采样率、精度、SNR、ENOB、转换时间、输入范围、功耗,这些指标都要综合考虑。

下一章,我们会深入讲解ADC的几种常见架构,比如逐次逼近型、Σ-Δ型、流水线型。每种架构都有它的优缺点,选对了,事半功倍;选错了,事倍功半。

咱们下章见。