3、信号采集基础:采样率与带宽的关系、触发模式设置、存储深度与时间窗口
做过多通道调试的工程师都知道,信号采集是第一步,也是决定成败的一步。很多人上来就按 Auto 键,波形出来了就以为万事大吉。其实不然。采样率、带宽、触发、存储深度——这几个参数要是没配好,你看到的波形可能就是假的。
我刚开始用示波器那会儿,就吃过这个亏。抓一个 SPI 的片选信号,怎么看怎么对,结果逻辑分析仪一拉,发现少了一个下降沿。后来才明白,是采样率没跟上。嗯,咱们今天就把这几个核心概念掰开揉碎了讲清楚。
3.1 采样率与带宽的关系
先问一个问题:示波器的带宽和采样率,哪个更重要?
答案是:两者必须匹配。带宽决定了你能测多快的信号,采样率决定了你能把信号还原得多真实。
核心公式:
- 采样率 ≥ 2.5 × 信号最高频率(实际工程中建议 5 倍以上)
- 示波器带宽 ≥ 5 × 信号最高频率(数字信号建议 10 倍)
举个例子。你要测一个 100MHz 的时钟信号。理论上奈奎斯特说采样率 200MSa/s 就够了,但实际中呢?我建议至少 500MSa/s。为什么?因为方波不是正弦波,它的高次谐波分量很丰富。你采样率不够,上升沿就变缓了,时序测量全偏。
| 信号类型 | 信号频率 | 推荐带宽 | 推荐采样率 |
|---|---|---|---|
| 低速串口 (UART) | 1 MHz | 10 MHz | 50 MSa/s |
| SPI / I²C | 10 MHz | 100 MHz | 500 MSa/s |
| DDR 时钟 | 200 MHz | 1 GHz | 5 GSa/s |
| 高速 SerDes | 1 GHz | 4 GHz | 20 GSa/s |
避坑指南:我曾经遇到过一位同事,用 200MHz 带宽的示波器去测 100MHz 的时钟,采样率设了 1GSa/s。波形看起来挺漂亮,但眼图测试死活不过。后来换了一台 1GHz 带宽的示波器,问题立刻暴露——原来信号本身就有过冲。带宽不够,示波器帮你把高频分量滤掉了,你看到的其实是「假波形」。
3.2 触发模式设置
触发是示波器的灵魂。没有触发,你看到的波形就是乱跑的。多通道调试时,触发设置更是关键——你要让所有通道在同一时间基准上对齐。
3.2.1 边沿触发
最基础也最常用的触发模式。设定一个电压阈值,信号跨过这个阈值时触发。
我个人习惯:触发源选时钟信号,触发电平设在信号幅度的 50% 处。这样能保证触发点稳定,多通道波形对齐也最准。
小技巧:如果信号有噪声,触发电平附近容易误触发。这时候可以打开「噪声抑制」或「高频抑制」滤波,或者把触发电平稍微调高/调低一点,避开噪声区域。
3.2.2 脉宽触发
边沿触发搞不定的场景,就得靠脉宽触发了。比如你要抓一个异常窄的毛刺,或者一个超长的低电平。
我记得有一次调试一个电源管理芯片,它的使能信号偶尔会有一个 50ns 的毛刺,导致系统复位。用边沿触发根本抓不到,因为毛刺太窄了。后来设了脉宽触发:触发条件设为「小于 100ns 的正脉冲」,示波器立刻就把那个毛刺锁住了。
// 脉宽触发设置示例(以某品牌示波器为例)
// 目标:捕获宽度小于 100ns 的正脉冲
Trigger Type: Pulse Width
Source: CH1
Polarity: Positive
Condition: Less Than
Time: 100 ns
3.2.3 协议触发
做多通道调试时,协议触发是神器。它能让你直接定位到协议层的特定事件,而不是在物理层瞎猜。
常见的协议触发包括:
- I²C:起始条件、停止条件、地址匹配、数据匹配
- SPI:片选触发、特定数据模式
- UART:起始位、特定字节、帧错误
- CAN/LIN:帧起始、ID 匹配、错误帧
实战经验:多通道对比调试时,我通常这样设置触发:
- 主触发通道选时钟或帧同步信号(边沿触发)
- 辅助触发通道选协议触发(比如 I²C 地址匹配)
- 两个触发条件用「逻辑与」组合
这样既能保证时间基准对齐,又能精准定位到感兴趣的数据包。
3.3 存储深度与时间窗口
存储深度,说白了就是示波器能存多少个采样点。它直接决定了你能看多长的时间窗口。
公式很简单:
时间窗口 = 存储深度 ÷ 采样率
举个例子:
- 存储深度 10 Mpts,采样率 1 GSa/s → 时间窗口 = 10 ms
- 存储深度 100 Mpts,采样率 1 GSa/s → 时间窗口 = 100 ms
你想想看,如果你要抓一个每隔 50ms 才出现一次的异常脉冲,10 Mpts 的存储深度根本不够用。要么降低采样率(但会损失波形细节),要么换一台存储深度更大的示波器。
| 应用场景 | 所需时间窗口 | 采样率需求 | 最小存储深度 |
|---|---|---|---|
| 单次脉冲捕获 | 1 ms | 1 GSa/s | 1 Mpts |
| 串行数据包分析 | 10 ms | 500 MSa/s | 5 Mpts |
| 电源纹波测量 | 100 ms | 100 MSa/s | 10 Mpts |
| 长时间异常监测 | 1 s | 100 MSa/s | 100 Mpts |
避坑指南:我曾经犯过一个低级错误。调试一个 I²C 总线时,我想看完整的一帧数据(大约 2ms),但示波器时间窗口只显示了 500μs。我以为是触发没设好,折腾了半天。后来才发现——存储深度只有 1 Mpts,采样率设了 2 GSa/s,时间窗口自然只有 500μs。把采样率降到 500 MSa/s,时间窗口就变成 2ms 了。嗯,有时候问题就是这么简单,但就是容易忽略。
3.4 知识体系总览
下面这张图把本章的核心逻辑串起来了。你可以把它当作调试时的检查清单。
我的调试习惯:拿到一个新信号,我一般先做三件事:
- 估算信号最高频率,设定带宽和采样率(留 5 倍余量)
- 选一个稳定的边沿触发,确认波形基本正常
- 根据要抓的事件长度,计算所需存储深度,调整时基
这三步走完,90% 的信号都能稳定捕获。剩下的 10%,再上脉宽触发或协议触发去定位异常。