关于 protocol-analysis
protocol-analysis 指导 Agent 分析 I2C、SPI 和 UART 总线采集数据,涵盖 sigrok 解码、固件关联与 Python 解析,适用于总线调试和事务记录。
主要功能
- 01逻辑分析仪采集流程
- 02sigrok 与 PulseView 解码
- 03I2C、SPI、UART 协议检查
- 04Python 采集数据解析
- 05固件事务关联
适用场景
- 01排查传感器无响应
- 02对照驱动事务与数据手册
- 03记录 CI 回归测试所需事务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mohitmishra786/ low-level-dev-skills --skill protocol-analysis安装后在 Claude Code 中输入/protocol-analysis确认已加载。
详细介绍
协议分析(I2C / SPI / UART)
用途
指导 Agent 进行软件侧串行总线分析:逻辑分析仪工作流、sigrok/PulseView 解码、将采集结果与固件驱动关联,以及基于 Python 的解析——连接 skills/baremetal/spi-i2c-baremetal 与硬件 bring-up。
使用场景
- 传感器无响应——检查总线上的时钟和数据
- 将内核驱动事务与数据手册进行比较
- 记录预期事务格式,用于 CI/回归测试
- 无需昂贵的实验室设备即可讲解协议层(模拟 + 解码)
工作流
1. 采集工具链
Physical probe → logic analyzer hardware (or GPIO bit-bang)
├── sigrok-cli / PulseView GUI
├── Protocol decoder (i2c, spi, uart)
└── Export VCD/CSV for scripts
开源工具:sigrok 搭配廉价的 FX2LA 开发板。
2. PulseView 快速入门
# List devices
pulseview
# CLI capture (device-dependent)
sigrok-cli --driver fx2lafw --config samplerate=1MHz \
--channels 0=SDA,1=SCL \
--samples 1m \
--protocols i2c
3. I2C 解码预期
| 阶段 | 信号线 |
|---|---|
| START | SCL 为高电平时 SDA 下降 |
| 地址 + R/W | 7 位 + ACK |
| 数据字节 | 每个字节后都有 ACK |
| STOP | SCL 为高电平时 SDA 上升 |
地址处出现 NACK → 0x48 错误或设备保持在复位状态。
4. SPI 解码
检查模式(CPOL/CPHA)、位序(通常为 MSB 优先)、CS 极性和字长。与 skills/kernel-dev/bus-drivers-i2c-spi 中的 spi_setup() 进行比较。
5. UART 解码
设置波特率(9600/115200)、帧格式(8N1)和信号极性。UART 为异步传输——逻辑分析仪的采样率必须 ≥ 波特率的 4 倍。
6. Python 后处理(csv)
import csv
with open("capture.csv") as f:
for ts, ch0, ch1 in csv.reader(f):
# edge detect, reconstruct bits
pass
7. 与固件关联
Logic capture timestamp
├── Match driver reg write sequence
├── Compare inter-byte delay vs datasheet max
└── Flag extra clock pulses (mode fault)
8. Agent 用法
/protocol-analysis Decode this I2C capture — device NACKs after register 0x0F write
常见问题
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 解码结果乱码 | 采样率错误 | ≥ 总线速度的 4 倍 |
| 信号线悬空 | 缺少上拉电阻 | 启用内部上拉或使用外部上拉 |
| SPI 位移 | 模式不匹配 | 查阅 RM 中的 CPOL/CPHA 表 |
| UART 帧错误 | 波特率漂移 | 测量实际位时间 |
| 没有解码器 | sigrok 构建缺失 | 安装 sigrok-cli + 解码器 |
相关技能
skills/baremetal/spi-i2c-baremetal— 固件侧协议skills/baremetal/uart-serial-baremetal— UART 配置skills/kernel-dev/bus-drivers-i2c-spi— 内核事务skills/profilers/strace-ltrace— 用户空间系统调用跟踪类比skills/embedded/openocd-jtag— 配合 SWD 调试进行示波器观测
评论
支持 Markdown