3、逻辑分析仪入门:什么是逻辑分析仪?
说实话,我刚入行那会儿,对逻辑分析仪这东西有点「敬而远之」。总觉得那是大佬才用的工具,我一个小工程师,拿个示波器凑合凑合得了。直到有一次,我调一个 SPI 接口的时序,示波器四个通道根本不够用,抓了半天数据还对不上。嗯,从那以后,我才真正开始认真用逻辑分析仪。
今天咱们就来聊聊,逻辑分析仪到底是什么?它跟示波器有啥区别?以及买的时候该怎么看参数。
什么是逻辑分析仪?
逻辑分析仪,说白了就是专门用来抓数字信号的仪器。它不关心电压具体是多少伏,只关心信号是「高」还是「低」——也就是逻辑 1 和逻辑 0。
你想想看,调试 UART、I2C、SPI 这类协议的时候,你最关心的是什么?是波形长啥样吗?不是。你最关心的是数据对不对、时序对不对、有没有毛刺。逻辑分析仪就是干这个的。
我个人习惯把逻辑分析仪叫做「数字信号的照相机」。它能把一段时间内的所有信号变化拍下来,然后你可以放大、回放、分析。我曾在项目中用它抓过一段长达 10 秒的 I2C 通信,硬是从里面找到了一个每隔 3 秒才出现一次的地址错误。示波器?根本存不了那么久。
核心要点:逻辑分析仪只关心信号的逻辑电平(0 或 1),不关心模拟波形细节。它擅长长时间、多通道的数字信号采集与分析。
逻辑分析仪与示波器的区别
很多新手会问:我有示波器了,为啥还要买逻辑分析仪?
我直接给你列个表,一看就明白。
| 对比项 | 逻辑分析仪 | 示波器 |
|---|---|---|
| 信号类型 | 数字信号(0/1) | 模拟信号(连续电压) |
| 通道数 | 通常 8~64 通道,甚至更多 | 通常 2~4 通道 |
| 采样率 | 可高达数 GSa/s | 通常 100MSa/s~数 GSa/s |
| 存储深度 | 通常很大(MB~GB 级别) | 通常较小(KB~MB 级别) |
| 触发方式 | 协议触发、数据模式触发等 | 边沿触发、脉宽触发等 |
| 主要用途 | 协议分析、时序调试、数据捕获 | 模拟信号测量、噪声分析、电源纹波 |
你看,示波器看的是「电压怎么变」,逻辑分析仪看的是「数据怎么走」。两者是互补关系,不是替代关系。
我记得有一次,一个同事用示波器抓 UART 数据,抓了半天说「波特率不对」。我拿逻辑分析仪一接,直接解码出数据帧,发现是停止位设置错了。示波器能看到波形,但你看不出那串高低电平代表什么字母。逻辑分析仪直接帮你把二进制翻译成 ASCII,省心多了。
我的建议:如果你主要做嵌入式软件开发、协议调试,逻辑分析仪比示波器更实用。如果你做硬件设计、电源调试,示波器是必须的。预算有限的话,先买逻辑分析仪,再攒钱买示波器。
逻辑分析仪的核心参数
买逻辑分析仪的时候,销售会跟你讲一堆参数。别被忽悠了,抓住三个核心就行:采样率、通道数、存储深度。
1. 采样率
采样率,就是逻辑分析仪每秒钟能采多少个点。单位是 Sa/s(Samples per second)。
为什么采样率重要?因为你要能分辨出信号的变化。根据奈奎斯特定理,采样率至少要是信号最高频率的 2 倍。但实际应用中,我建议至少 4 倍以上。
举个例子:你要分析一个 1MHz 的 SPI 时钟。理论上 2MSa/s 就够了。但如果你要看清毛刺、边沿抖动,我建议用 10MSa/s 以上。我在项目中遇到过,用 4MSa/s 的采样率抓 2MHz 的 SPI,结果数据全是乱的。后来换成 20MSa/s,问题立马找到了——原来是时钟线上有个 10ns 的毛刺。
注意:采样率不是越高越好。采样率越高,数据量越大,存储深度消耗越快。要根据实际信号频率合理选择。
2. 通道数
通道数,就是你能同时抓多少路信号。
我个人经验:
- 8 通道:够用。调试 UART(2 线)、I2C(2 线)、SPI(3~4 线)基本够了。
- 16 通道:推荐。可以同时抓多路协议,或者抓并行总线(如 8 位数据 + 控制信号)。
- 32 通道以上:专业级。调试 DDR、高速并行总线时用得上。
我刚开始买了个 8 通道的,后来发现调一个 8 位并行 ADC 时,8 个数据通道占满了,控制信号没地方接。那叫一个难受。后来换了 16 通道的,舒服多了。
所以我的建议是:预算允许的话,直接上 16 通道。别省那点钱。
3. 存储深度
存储深度,就是逻辑分析仪能存多少数据。单位是 bit 或 byte。
这个参数太容易被忽略了。很多人只看采样率,不看存储深度。结果呢?采样率设高了,几毫秒就存满了,根本抓不到想要的数据。
存储深度和采样率的关系很简单:
采集时间 = 存储深度 / 采样率
举个例子:
- 存储深度 1Mbit,采样率 100MSa/s → 只能采 10ms
- 存储深度 256Mbit,采样率 100MSa/s → 可以采 2.56s
你看,差了多少倍?
我曾经调试一个 UART 通信,设备每隔 5 秒才发一次数据。我用一个存储深度只有 512Kbit 的逻辑分析仪,采样率设到 1MSa/s,结果只能抓 0.5 秒的数据。根本等不到下一次发送。后来换了个 64Mbit 的,轻松抓到完整通信过程。
避坑指南:我曾经买过一个号称「高采样率」的便宜逻辑分析仪,采样率标 200MSa/s,但存储深度只有 128Kbit。实际用起来,高采样率模式下只能抓几百微秒的数据,根本没法用。所以,存储深度比采样率更重要。先看存储深度,再看采样率。
小结
好了,今天的内容就这些。总结一下:
- 逻辑分析仪是数字信号的「照相机」,只看 0 和 1
- 和示波器是互补关系,不是替代关系
- 核心参数:采样率、通道数、存储深度
- 存储深度往往比采样率更重要,别被高采样率忽悠了
下一章,我会带你实际动手,用逻辑分析仪抓一个 UART 信号。到时候你就知道,这东西到底有多好用了。
小提示:如果你现在还没买逻辑分析仪,建议先买个 16 通道、存储深度 64Mbit 以上的入门款。价格不贵,但足够你用很久。
公众号:蓝海资料掘金营,微信deep3321