Note

现实世界是模拟的,处理、传输、存储却多用数字技术——两者之间必须有一座”翻译桥”。本章讲这座桥的完整工程:采样(sampling)→ 模数转换(ADC)→ 数字处理 → 数模转换(DAC)→ 重建,以及多路复用让一片转换器服务多路信号。

27.1 引言

数字系统抗噪、易处理、易传输、易存储,所以我们常把模拟量数字化。把(往往是多路的)模拟信息转成数字形式的过程称为数据采集(data acquisition),它由几个环节组成:先讨论如何对时变模拟量采样,再看把采样值变成数字量以及反向重建的硬件,最后看多路信号共用一套转换系统的复用技术。

一个典型的数据采集链路长这样:

传感器 → 放大/滤波(调理) → 采样保持 → ADC → 数字系统 → DAC → 重建滤波 → 执行器

本章按这条链从左到右走一遍:采样定理决定”多久测一次”,转换器决定”测多准”,采样保持保证”测的时候不变”,复用决定”一套硬件测几路”。

27.2 采样与奈奎斯特定理

要知道一个变化量如何变化,就得定期测量——这就是采样。信号变化越快,采样就要越密。那”多密才够”?答案由**奈奎斯特采样定理(Nyquist’s sampling theorem)**给出:

白话:采样率必须大于信号中最高频率的两倍。满足这一条件时,采样不丢失任何信息,可以从样本完整重建原始信号。最小采样率称为奈奎斯特速率(Nyquist rate)。

图 27.1:不同采样率的效果对比

为什么是”两倍”就够了?直观理解:若已知信号不含高于 F Hz 的成分,那么经过各采样点的所有可能曲线中,只有原波形不含高于 F 的频率成分——其余重建都会引入超限成分,故唯一合法的重建就是原信号(图 27.1b)。

图 27.1(c):低于奈奎斯特速率采样导致混叠

若采样率低于奈奎斯特速率,样本可以用多种曲线拟合,原始信号无法唯一确定。重建出来的波形像一个频率更低的信号产生的——这就是混叠(aliasing),表现为信号与采样波形之间的”拍频”效应。

抗混叠滤波:按”存在的最高频率”而非”感兴趣的频率”设计

关键细节:奈奎斯特速率由信号中实际存在的最高频率决定,而不是你感兴趣的最高频率。若信号含有不想要的高频噪声,不滤掉就采样,它们会在感兴趣频段内制造伪信号。

典型工程流程(以语音为例):人声其实含 10 kHz 以上成分,但 3.4 kHz 以下就有良好可懂度。于是先用滤波器去除 3.4 kHz 以上成分(抗混叠滤波器,anti-aliasing filter,典型用六阶巴特沃斯滤波器),再以约 8 kHz 采样——奈奎斯特速率本是 6.8 kHz,实际多留约 20% 余量,因为滤波器不理想、截止频率附近仍有残留成分。

Warning

混叠最阴险的地方:它不是”信号变差”,而是高频噪声伪装成低频信号混进有效频带,事后再也滤不掉。所以抗混叠滤波必须放在采样之前;采样率选定后倒推滤波器的截止频率,而不是相反。

一个完整的取舍例子:某信号频谱为 20 Hz–20 kHz,但应用只关心 10 kHz 以下的成分。若直接按 20 kHz 最高频率采样要 40 kHz 以上速率,数据量大且大部分是浪费。正确做法:先用抗混叠滤波器把 10 kHz 以上成分滤掉,再按 10 kHz × 2 × 1.2 ≈ 24 kHz 采样——数据量减半而有效信息一点不少。这就是”按感兴趣的带宽设计滤波器,再按滤波后的带宽定采样率”的标准思路。

27.3 信号重建

从样本重建模拟信号,本质是去除采样带来的阶梯跳变——也就是去除这些跳变所代表的高频成分。办法:低通滤波器,称重建滤波器(reconstruction filter),特性与采样前的抗混叠滤波器类似(也常用六阶巴特沃斯)。

27.4 数据转换器

采样是取瞬时值转成数字,重建是把数字值变回模拟量,两种操作由数据转换器完成:模数转换器(ADC)与数模转换器(DAC)。

分辨率(resolution):转换器使用的量化级数。n 位转换器用 2ⁿ 级:8 位 = 256 级,10 位 = 1024 级。相邻量化级之间的电压差(量化阶)为:

白话:n 位转换把量程切成 2ⁿ 格,每格宽度即分辨力——8 位在 5 V 量程下每格约 19.5 mV,相当于满量程的约 0.4%;20 位分辨约百万分之一,几乎满足一切应用。

Warning

分辨率 ≠ 精度(accuracy)。分辨率只是级数多少;精度衡量每个电平对应的实际误差(基准电压漂移、电阻误差、运放失调、非线性等都会拖低精度)。一个 12 位分辨率的转换器完全可以只有 8 位的实际精度——标称位数高不代表测得准,选型时两者都要看数据手册。

转换需要时间,称转换时间或建立时间(settling time),随分辨率与速度型号差别极大;一般 DAC 比 ADC 快。集成电路转换器价格便宜(随分辨率和速度上升),实际系统几乎都用成品 IC——自己用电阻、运放、比较器搭转换器,只有在教学或极端特殊场合才有意义。

27.4.1 数模转换器(DAC)

二进制加权电阻法:由电流-电压转换器(反相运放)发展而来。

图 27.2:二进制加权电阻 DAC

每位输入控制一个开关,把阻值递增的电阻接到基准电压 :最高位(MSB)开关接电阻 R。运放反相输入端是虚地(0 V),所以电阻两端电压就是 ,注入虚地的电流为:

下一位接 2R,电流减半:

依次减半,各位电流天然二进制加权。虚地不随注入电流变化,各开关互不影响,电流直接相加;运放再把总电流转成输出电压:

单独置位最低位(LSB)时:

缺点:电阻取值范围从 R 跨到 ,10 位转换器阻值比超过 500:1——不同阻值的电阻温度系数往往不同,比值随温度漂移,温漂稳定性差。位数越高问题越糟,所以这种方法实际只用于位数不高的场合。

R–2R 电阻链法

图 27.3:R–2R 电阻链 DAC

只用两种阻值(R 与 2R,2R 还可以用两只 R 串联构成):开关电阻一端全部等值 R,另一端接入从运放虚地到地的 R–2R 链。设计使每个节点向链的两个方向看去都是 2R,所以每个开关的电流在链上每经过一个节点就被对半分流一次——到达运放时自然形成二进制加权,与加权电阻法等效。

白话版:把每个开关的贡献想成”一股水流”,链上每个节点都是”三岔口”,往下走与往虚地走电阻相同,各分一半;离虚地越远的开关,被对半分的次数越多,到达终点的水流越细——最远那位(LSB)正好被分了 n−1 次,贡献是最 MSB 的 1/2ⁿ⁻¹。

好处:只用等值或成对匹配的电阻,可做温度匹配,温漂大幅改善。实际 IC 的 DAC 多用此法。

建立时间:两种方法相近,取决于开关速度与运放响应。转换时间随分辨率上升:通用 8 位 DAC 约 100 ns–1 μs,16 位约几 μs,高速件可达几 ns(图形显示用 10 位 DAC 采样率可超 100 MHz,即建立时间 <10 ns)。有时厂商更愿意标”每秒可转换的样本数”而不是建立时间——视频级 100 MHz 采样率对应 <10 ns 建立时间。DAC 输出通常接低通重建滤波器平滑波形,截止频率的选取原则:滤掉采样频率成分而不衰减有效信号。

DAC 的典型应用:除了做 ADC 内部的”标准电压源”,DAC 还广泛用于任意波形发生、数字电位器、音频/视频回放(数据流 → 模拟波形)以及电机/执行器的模拟驱动信号源。

27.4.2 模数转换器(ADC)

四种主流结构,速度与复杂度各占一端。

计数式(counter)/伺服式(servo)

图 27.4:计数式 ADC

核心:一个加法计数器驱动 DAC,DAC 输出与模拟输入用比较器(输出 0 或 1,取决于哪端输入更正)比较。计数器从零开始加计数,DAC 输出随之阶梯上升;一旦追平输入,比较器翻转、停止计数并发出”转换完成”信号,此时计数器的并行输出就是转换结果;外设读走后计数器清零重来。

速度分析:每次计数后都必须给 DAC 和比较器留出建立时间,所以转换时间至少是 m 倍建立时间(m 为最终数字值),n 位转换最坏要 2ⁿ 倍建立时间——8 位就是最多 256 步——典型转换耗时几毫秒。最简单、最便宜,但效率最低。

把加法计数器换成加/减计数器,比较器输出改作加/减方向控制,计数器不再清零而是持续跟踪输入信号——这就是伺服式 ADC。输入缓变时它每步只需±1 的修正,速度快得多;适合跟踪变化平缓的信号。

逐次逼近式(successive approximation):把”线性搜索”换成”二分搜索”。类比查字典:从第 1 页逐页翻(计数式)远不如对半翻——先翻第 500 页判断在前半还是后半,再翻 250 页……每次排除一半,2¹⁰=1024,最多 10 次锁定目标页。

图 27.5:逐次逼近 ADC

逻辑:DAC 输入字先全清零,置 MSB=1(对应半量程),比较 DAC 输出与输入——DAC 低则保留该位 1,否则清 0;然后置次高位,再比较……每位依次定夺,n 位转换约需 n 倍(而非 2ⁿ 倍)建立时间。典型 8 位 1–10 μs、12 位 10–100 μs。复杂度略高于计数式,但速度优势使它成为 IC 转换器最常用的结构。

走一遍 4 位例子(假设输入对应数值 10,即二进制 1010):

  1. 置 1000(=8):DAC 输出 8 < 10,保留 MSB=1;
  2. 置 1100(=12):12 > 10,清掉该位;
  3. 置 1010(=10):10 = 10,保留;
  4. 置 1011(=11):11 > 10,清掉。

四步锁定结果 1010。每一步都是”试探 + 保留/否决”,与查字典的对半翻法一模一样——这正是”逐次逼近”四个字的含义。

双斜率式(dual slope)

图 27.6:双斜率积分 ADC

运放积分器先对输入积分一段固定时间,电容上的电荷正比于输入电压;再改接恒流源以恒定速率放电,用稳定时钟计数测出放完电荷所需时间——该时间正比于电荷即正比于输入电压。

“双斜率”因此得名:上升斜率由输入电压决定(斜率 ∝ ),下降斜率恒定,两段斜率一比较,输入电压就折算成了计数值。它还有个隐藏福利:积分本身就是对固定时间窗内信号取平均,工频干扰(50/60 Hz)在一个整周期窗口内被平均抵消——这正是数字万用表普遍采用双斜率结构的原因之一。

优点:精度高、成本低,分辨率可超 20 位;缺点:慢(高分辨率件每秒仅 10–100 次转换)。数字面板表(DPM)的经典选择。

并行式(flash)

图 27.7:并行(flash)ADC

用精密电阻链产生量程内每一个电压台阶,每个台阶配一个比较器,所有比较器同时与输入比较,再用组合逻辑从比较器输出模式算出数字值。速度之王:转换只需几 ns,采样率可超每秒 1.5 亿次。代价:n 位需要 2ⁿ 个比较器——8 位就是 256 个——硬件随位数指数增长,贵,位数也做不高(常见 6–10 位)。适合示波器、视频采集等”速度压倒一切”的场合。

Success

ADC 选型口诀:要快选 flash,要准选双斜率,通用选逐次逼近,图省事用计数式。速度排序 flash > 逐次逼近 > 计数;精度排序双斜率 > 逐次逼近 > 计数。

四种结构横向对比:

类型转换时间量级分辨率典型范围优点缺点
计数/伺服ms 级低–中电路最简单最慢(最坏 2ⁿ 步)
逐次逼近μs 级8–16 位速度/复杂度折中好,IC 最常用逻辑较复杂
双斜率10–100 ms可超 20 位精度高、成本低、抗扰好
并行 flashns 级6–10 位最快,比较全并行比较器 2ⁿ 个,贵、位数上不去

27.5 采样保持门(sample and hold gate)

信号变化快时,转换期间输入还在变,会搅乱转换器——需要先把信号”拍快照”并保持住。ADC 前加采样保持门,保证转换期间输入恒定;DAC 输出侧同理,需要保持两次更新之间的输出值。

工作原理一句话:一个模拟开关 + 一个保持电容 + 一个高输入阻抗缓冲器。采样阶段开关闭合,电容跟踪(跟踪)输入电压;进入保持阶段开关断开,电容把采样瞬间的电压”冻”住,供转换器从容处理。

典型 IC 采样需几 μs,保持期间电压以几 mV/ms 的速度衰减,称跌落(droop)——缓冲器输入电流和电容自身漏电都在一点点放掉电荷。视频级高速件采样只要几 ns,但跌落率也升到几 mV/μs——快与保持长久不可兼得,选型要按”采样快、保持够久”两头的需求折中。

27.6 多路复用(multiplexing)

多路模拟输入/输出,每路配一个转换器当然可以,但更经济的是复用——分时共用。转换器是采集系统里最贵的部件之一,而绝大多数应用并不需要多路同时转换,只需要多路被转换——“分时”与”并发”的区分正是复用可行性的根基。

图 27.8:输入与输出复用

  • 输入复用(图 a):模拟多路选择器(electronic-controlled analog switch,见第 17.7.3 节的模拟开关)依次把各路信号接到一个 ADC,切换时序由控制信号决定。
  • 同步采样(图 b):图 a 的方案各路采样时刻不同,无法直接比较信号间的相位关系。解决:给每路配一个采样保持门,先同步采样、再依次读出——时间关系不丢。
  • 输出复用(图 c):一片 DAC 依次接收各通道数据,每次转换完成后用控制信号激活对应的采样保持门,把该次输出”存”给相应通道。各输出按顺序轮询刷新。

实际系统中输入输出还要加抗混叠/重建滤波器(图中为清晰而省略)。

单芯片数据采集系统(single-chip data-acquisition system):ADC + 多路选择器集成一片,常为微机系统专门设计,控制线齐全,便于接口。名字略有夸张(系统不止这两块),但两功能合一确实方便,是微机数据采集板的主力器件。

27.6.1 例 27.1:8 入 8 出微机系统的完整设计

8 路 1 kHz 带宽传感器、1% 精度;8 路 100 Hz 带宽执行器、1% 精度。完整推演一遍,把本章各要点串起来:

输入侧:模拟多路选择器(3 根控制线从 8 路中选 1)+ 逐次逼近 ADC(两根控制线:处理器发出的”开始转换”与 ADC 回报的”转换结束”)。传感器信号先经 1 kHz 截止的六阶巴特沃斯抗混叠滤波;采样率按奈奎斯特速率(2 kHz)加 20% 余量取 2.4 kHz/通道;8 通道共需 8 × 2.4 kHz = 19.2 kHz 转换率,即 52 μs/次——通用逐次逼近 ADC 轻松胜任;1% 精度需 7 位分辨率,按惯例直接取 8 位器件。

输出侧:单 DAC 依次转换各通道数据,配 8 个采样保持门(各由处理器一根控制线激活;若 I/O 口紧张,可用 3–8 译码器把 3 根线扩展成 8 根)。保持门输出的阶梯跳变含高频成分,经 100 Hz 截止的六阶巴特沃斯重建滤波器后再驱动执行器。

控制信号小结:多路选择器 3 线(通道选择)、ADC 2 线(启动/完成)、采样保持门 8 线(或 3 线 + 译码器)——这些控制线正是微机并行 I/O 端口的典型用途。

Warning

多路复用系统算采样率时别忘乘通道数:每通道 2.4 kHz、8 通道就是 19.2 kHz——按单通道速率选 ADC 是常见低级错误。输出侧同样要注意:通道越多,每通道的刷新率越低(DAC 速率被 8 个通道分摊),刷新不足会导致输出”肉眼可见地”阶跃。

Success

数据链口诀:先滤波再采样(防混叠),先保持再转换(防漂移),先重建再输出(防阶梯)——三个”先”,对应系统里三个滤波器/保持器的位置。