mcpField
P
protocol-analysis

protocol-analysis

github.com/mohitmishra786开发269305 次安装18 周前更新
代码仓库

关于 protocol-analysis

protocol-analysis 指导 Agent 分析 I2C、SPI 和 UART 总线采集数据,涵盖 sigrok 解码、固件关联与 Python 解析,适用于总线调试和事务记录。

主要功能

  1. 01逻辑分析仪采集流程
  2. 02sigrok 与 PulseView 解码
  3. 03I2C、SPI、UART 协议检查
  4. 04Python 采集数据解析
  5. 05固件事务关联

适用场景

  1. 01排查传感器无响应
  2. 02对照驱动事务与数据手册
  3. 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 解码预期
阶段信号线
STARTSCL 为高电平时 SDA 下降
地址 + R/W7 位 + ACK
数据字节每个字节后都有 ACK
STOPSCL 为高电平时 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