4、逻辑分析仪基础:工作原理、采样率与带宽、通道数选择、探头连接方法

做嵌入式调试,示波器和逻辑分析仪是左膀右臂。但说实话,处理 UART 这类串行协议,逻辑分析仪比示波器顺手得多。为什么?因为它不关心电压具体是多少,只关心电平是 0 还是 1。你想想看,我们抓 UART 数据,本质上就是看一串高低电平的时间序列,逻辑分析仪正好干这个。

这一章,我把逻辑分析仪的核心概念掰开揉碎讲清楚。从它怎么工作的,到买多少通道的够用,再到探头怎么夹才不会把信号夹没了。都是实战里一定会碰到的问题。

4.1 逻辑分析仪的工作原理

逻辑分析仪的核心,说白了就是一个「高速采样器 + 大容量存储器 + 触发逻辑」的组合体。

它不像示波器那样把波形画出来给你看,而是每隔一个固定的时间间隔,去读一下输入引脚的电平是 HIGH 还是 LOW,然后把这个 1 或 0 存下来。等采样结束了,再把这一长串二进制数据还原成时序图或者协议解码结果。

我习惯把它理解成一个「数字电压表 + 录像机」的结合体。它只回答两个问题:

  • 现在这个脚是高还是低?
  • 这个状态持续了多少个采样点?

下面这张图展示了逻辑分析仪的基本工作流程:

逻辑分析仪工作原理流程 输入信号 电平比较 采样时钟 存储器 触发逻辑 显示 / 协议解码 核心:采样时钟决定时间分辨率,存储深度决定一次能抓多长,触发逻辑决定从哪开始看

关键点:逻辑分析仪不测量电压幅度。它内部有一个阈值比较器,输入信号高于阈值判为 1,低于阈值判为 0。这个阈值通常是 1.4V 左右(TTL 电平),但很多分析仪可以调节。

4.2 采样率与带宽

这两个参数最容易搞混。我见过不少工程师把采样率当成带宽来用,结果抓出来的数据全是毛刺。

4.2.1 采样率

采样率就是逻辑分析仪每秒钟采多少个点,单位是 Sa/s(Samples per second)。比如 100M Sa/s,就是每 10ns 采一次。

采样率决定了你能分辨多窄的脉冲。根据奈奎斯特采样定理,要还原一个信号,采样率至少要是信号最高频率的 2 倍。但这是理论值,实际做数字信号抓取,我建议至少 4 倍,最好 8 倍以上。

举个例子:UART 在 115200 bps 下,一个 bit 的宽度大约是 8.68µs。用 1M Sa/s 的采样率(1µs 一个点),一个 bit 能采到 8-9 个点,够用了。但如果你要抓 SPI 的 10MHz 时钟,一个周期才 100ns,采样率至少得 100M Sa/s 起步。

我的经验:抓 UART 时,采样率设成波特率的 16 倍以上,解码基本不会出错。我曾经用 8 倍采样率抓 921600 bps 的数据,结果偶尔丢 bit,后来提到 32 倍就稳了。

4.2.2 带宽

逻辑分析仪的带宽,指的是它能准确捕获信号的最短脉冲宽度。通常带宽 = 采样率 / 某个系数,但这个系数各家算法不一样。

更实用的指标是 最小可检测脉宽。比如某款分析仪标称最小脉宽 5ns,意味着比 5ns 窄的毛刺它可能漏掉或者显示不准。

应用场景 推荐采样率 最小脉宽能力 典型用途
低速 UART / I2C 1M ~ 10M Sa/s 100ns 115200 bps 以下调试
中速 SPI / UART 高速 50M ~ 100M Sa/s 10ns 10MHz SPI、921600 bps
高速并行总线 / DDR 200M ~ 1G Sa/s 1ns 时序分析、信号完整性初判

注意:采样率不是越高越好。采样率越高,单位时间内产生的数据量越大,存储深度消耗越快。你可能会发现,设成 1G Sa/s 后,只能抓几十微秒的数据,根本看不到完整的 UART 数据帧。

4.3 通道数选择

通道数这个问题,我踩过坑。刚开始做项目时,觉得 8 通道够用了,结果调试一个 I2C + UART + SPI 混合的板子,8 个通道根本不够分。

怎么选?我给你一个参考:

  • 4 通道:只够抓最简单的 UART(TX、RX 各一路,剩下两路看流控)。说实话,现在不太推荐买 4 通道的,除非预算极其有限。
  • 8 通道:入门级标准配置。可以同时抓一组 UART(2 路)+ 一组 SPI(3 路)+ 一个 GPIO 触发。我个人的第一台逻辑分析仪就是 8 通道的,用了两年。
  • 16 通道:目前的主流选择。可以同时抓两组 UART + 一组 SPI + 一组 I2C,或者抓一个 8 位并行总线。我现在的主力就是 16 通道。
  • 32 通道及以上:搞 ARM 外部总线、DDR 调试、FPGA 逻辑分析时才用得上。普通嵌入式开发,16 通道绰绰有余。

我的建议:如果你主要做 UART 和 I2C 调试,8 通道勉强够用。但如果你要同时看多个协议交互,直接上 16 通道。差价不大,但省心很多。

4.4 探头连接方法

探头连接看起来简单,但连接不好,抓到的数据全是假的。我见过有人用杜邦线飞了 20cm 长去抓 1MHz 的 SPI,结果波形惨不忍睹。

4.4.1 探头类型

  • 排线探头:最常见,一头是 IDC 排线插座,另一头是带钩子的测试夹。适合接 2.54mm 排针。
  • 飞线探头:每根线独立,带 Mini 钩或 IC 测试夹。适合焊在板子上或者夹在 IC 引脚上。
  • 差分探头:抓差分信号(如 RS485、CAN)时用,普通逻辑分析仪用不上。

4.4.2 连接注意事项

我总结了几条铁律,照着做基本不会出问题:

  1. 地线要短。探头的地线夹子尽量靠近被测信号。地线长了会引入噪声,尤其是抓高速信号时。我习惯在板子上预留一个地孔,专门给探头用。
  2. 信号线不要太长。超过 15cm 的飞线,信号反射和串扰就会变得明显。如果必须长距离走线,考虑加个 100Ω 的串联电阻。
  3. 共地。逻辑分析仪的地和被测板子的地必须连在一起。不共地的话,测出来的电平全是浮空的,根本不准。
  4. 不要带电插拔。虽然很多逻辑分析仪有保护电路,但我还是习惯先断电再接线。曾经有一次带电插拔,把分析仪的输入通道烧了一个,血的教训。

避坑指南:我曾经用一根 30cm 长的杜邦线去抓 UART 的 TX 信号,结果发现波形上多了一个莫名其妙的毛刺。排查了半天,发现是线太长,耦合了旁边的 PWM 信号。换成 10cm 的屏蔽线,毛刺立刻消失。

4.4.3 探头连接步骤

步骤 操作 说明
1 断电连接探头 先断开被测板子电源,再夹探头
2 连接地线 优先连接地线,再连信号线
3 确认通道映射 在软件里标记好每个通道对应哪个信号
4 上电验证 上电后用分析仪看是否有信号跳变
5 设置触发条件 根据协议设置合适的触发边沿或码型