sigrok / PulseView:开源逻辑分析仪
一句话回答
sigrok 是一套开源信号分析软件(PulseView 图形界面 + sigrok-cli 命令行 + libsigrok 硬件驱动 + libsigrokdecode 协议解码),最大价值是支持几十种廉价 USB 逻辑分析仪(FX2/Saleae 克隆、DSLogic 等),把它们统一成一个多通道采集和协议解码平台;不用厂商私有软件即可抓 SPI/I2C/UART,还能命令行批量和脚本化。
一、安装
bash
sudo apt install pulseview sigrok-cli # Debian/Ubuntu
# Windows/macOS 从 sigrok.org 下 PulseView 安装包
sigrok-cli --list-supported # 看支持的硬件
sigrok-cli --list-supported | grep -i fx2二、识别设备
插上 USB 逻辑分析仪后:
bash
sigrok-cli --show --driver fx2lafw
# 驱动名取决于芯片(fx2lafw、saleae-logic、demo 等)三、PulseView(GUI)
- 启动后选择设备/驱动、设采样率和采样点数;
- 点 Run 抓波形;
- 菜单 Add decoder 加 I2C/SPI/UART/1-Wire 解码器;
- 设触发、游标测时间、导出。
四、命令行
bash
sigrok-cli -d fx2lafw --config samplerate=10000000 \
--samples 1M --time 100ms -o capture.sr
sigrok-cli -i capture.sr -P i2c -A i2c=data-read适合批量采集、自动化测试和无界面环境。
常见坑
- 驱动选错/设备未被识别:用 --list-supported 查芯片对应驱动,权限需在 plugdev 组。
- 采样率超硬件/USB 能力:降采样率或通道数,USB2 带宽有限。
- 没共地/电平阈值不对:采到乱码。
- 解码器通道接错:SCL/SDA 或 CLK/MOSI 映射要对应。
- Windows USB 驱动:克隆设备可能需要 WinUSB/ Zadig 驱动。
- 期望 Saleae 专属协议:协议库丰富但并非与商业软件 100% 一致,查支持列表。
总结
sigrok 用 PulseView + sigrok-cli 和统一的 libsigrok 驱动,把廉价 USB 逻辑分析仪变成开源的多通道采集与协议解码平台,可 GUI 可命令行、能批量脚本化;注意选对驱动和 USB 驱动、采样率与共地,并按支持列表确认所需协议解码器。