mcpField
P
protocol-analysis

protocol-analysis

github.com/mohitmishra786開発269305 回インストール18 週間前に更新
リポジトリ

protocol-analysis について

protocol-analysisは、sigrokによるデコードからファームウェアとの照合、Python解析まで、I2C、SPI、UARTのキャプチャ分析をエージェントに案内します。バスのデバッグやトランザクションの記録に役立ちます。

主な機能

  1. 01ロジックアナライザーのキャプチャ手順
  2. 02sigrokとPulseViewによるデコード
  3. 03I2C、SPI、UARTのプロトコル確認
  4. 04Pythonによるキャプチャ解析
  5. 05ファームウェアのトランザクション照合

活用シーン

  1. 01応答しないセンサーの調査
  2. 02ドライバーの処理とデータシートの比較
  3. 03CI回帰テスト用トランザクションの記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill protocol-analysis

インストール後、Claude Code で/protocol-analysisを入力して読み込まれたか確認します。

詳細

プロトコル解析(I2C / SPI / UART)

目的

エージェントによるソフトウェア側のシリアルバス解析を支援します。ロジックアナライザーのワークフロー、sigrok/PulseView によるデコード、キャプチャとファームウェアドライバーの照合、Python ベースの解析を案内し、skills/baremetal/spi-i2c-baremetal とハードウェアの立ち上げをつなぎます。

使用する場面

  • センサーが応答しない場合 — バス上のクロックとデータを確認します
  • カーネルドライバーのトランザクションとデータシートを比較する場合
  • 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

オープンソース:安価な FX2LA ボードと sigrok を使用します。

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 が High の間に SDA が Low になる
アドレス + R/W7 ビット + ACK
データバイトバイトごとに ACK
STOPSCL が High の間に SDA が High になる

アドレスで NACK が発生する場合は、0x48 が誤っているか、デバイスがリセット状態に固定されています。

4. SPI デコード

モード(CPOL/CPHA)、ビット順(通常は MSB ファースト)、CS の極性、ワードサイズを確認します。skills/kernel-dev/bus-drivers-i2c-spi の spi_setup() と比較してください。

5. UART デコード

ボーレート(9600/115200)、フレーム(8N1)、信号の極性を設定します。非同期通信では、ロジックアナライザーのサンプリングレートをボーレートの 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. エージェントの使用方法
/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 デバッグと並行したスコープ測定

コメント