開発・デバッグ・テスト

ロジックアナライザ

複数信号の波形を観測する計測器。

概要

ロジックアナライザ(Logic Analyzer)とは、デジタル信号の論理状態(HIGH/LOW)を複数チャンネル同時に記録・表示する計測器である。時系列の信号変化をキャプチャし、プロトコルデコード機能によってI2C、SPI、UART、CAN、UARTなどのシリアル通信プロトコルのデータを人間が読める形に変換できる。

オシロスコープが電圧の連続的な変化(アナログ波形)を観測するのに対し、ロジックアナライザはHigh/Lowの二値状態の時系列変化と、その意味するプロトコルデータを解析することに特化している。組み込みシステムのデバッグで、通信プロトコルの検証や複数信号のタイミング関係を調べる際に欠かせないツールである。

歴史・背景

ロジックアナライザは1970年代に商業製品として登場した。HP(現Keysight)の1960Aシリーズ(1973年)が初期の代表製品であり、テクトロニクスやTektronixなども参入した。当初は大型で高価な機器だったが、デジタル機器の普及とともに組み込みエンジニアには必須のツールとなっていった。

2000年代後半、Saleaeが「Logic」シリーズ(USB接続、小型、数万円台)を発売し、それまで数十万円〜数百万円だったロジックアナライザが一般開発者にも手の届く価格帯になった。PCソフトウェアでプロトコルデコードや高度な分析を行う「PC接続型ロジックアナライザ」が普及し、現在では数千円〜数万円の製品も広く使われている。

オープンソースのSigrok/PulseViewの登場により、低コストのオープンハードウェアロジックアナライザとの組み合わせでも高機能な解析が可能になった。

技術仕様

ロジックアナライザの主要スペック

スペック説明組み込みでの目安
チャンネル数同時記録できる信号線数8〜16ch以上
サンプリングレート1秒間のサンプリング回数24MHz以上(UARTデバッグなら1MHz程度でも可)
メモリ深度記録できるサンプル数大きいほど長時間記録可能
電圧スレッショルドHigh/Low判定の閾値1.8V / 3.3V / 5V対応が必要
プロトコルデコード対応通信プロトコルの種類I2C/SPI/UART/CAN等

主要な製品比較

製品チャンネルサンプリング価格帯特徴
Saleae Logic 88ch100MHz~5万円使いやすさNo.1、豊富なデコード
Saleae Logic Pro 1616ch500MHz~15万円高速・多チャンネル
DSLogic Plus16ch400MHz~3万円コストパフォーマンス高い
Cypress FX2LP系8ch24MHz数千円超低コスト、Sigrok対応
RIGOL DS1054Z (混合信号)4ch+16ch1GSa/s~5万円オシロ+ロジックアナライザ兼用
Digilent Analog Discovery 22ch analog + 16ch logic100MHz~5万円教育・開発用多機能計測器

動作原理

サンプリングと記録の仕組み

入力信号(例:SPI SCK)
         ___     ___     ___
        |   |   |   |   |   |
________|   |___|   |___|   |______

内部サンプリングクロック(100MHz等)
 | | | | | | | | | | | | | | | | |

記録データ(0/1の時系列):
 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1

信号をNyquistの定理に従い、観測したい最高周波数の2倍以上でサンプリングすることが精度の基本である。実際には4〜10倍のサンプリングレートが推奨される:

  • UARTデバッグ(115200bps): 1MHz以上
  • I2C(400kHz): 4MHz以上
  • SPI(10MHz): 100MHz以上
  • USB FS(12MHz): 専用アナライザが必要

プロトコルデコードの仕組み

ロジックアナライザソフトウェアはキャプチャした波形データを解析し、プロトコルごとの規則に従ってデータを復元する:

[生波形データ]
SDA: __‾‾‾‾‾‾___‾‾‾‾‾___‾‾‾___‾‾‾‾‾...
SCL: ___‾___‾___‾___‾___‾___‾___‾...

     ↓ I2Cデコード処理

[デコード結果]
START | ADDR=0x48 W | ACK | DATA=0xA5 | ACK | STOP

     ↓ 表示

[Saleaeの画面イメージ]
I2C: [Write to 0x48] [0xA5] [ACK]

トリガ機能

特定の条件が成立した時点からキャプチャを開始するトリガ機能で、断続的に発生する事象を確実に記録できる:

トリガ条件の例:
- CH0(CS信号)がHighからLowに変化した時
- CH1とCH2が特定のパターン(0b1010)になった時
- プロトコルデコード結果が特定の値(I2Cアドレス0x48)の時

用途・ユースケース

I2Cデバッグ(ACKが返らない問題の解析):

問題: I2Cでセンサと通信できない

ロジックアナライザで確認:
SDA: __‾‾‾‾‾___‾‾‾___‾‾‾___‾‾‾‾‾‾‾‾‾‾‾...
SCL: ___‾___‾___‾___‾___‾...

I2Cデコード結果:
[START][0x48 Write][NACK]  ← ACKでなくNACK!

診断: アドレスが間違っている(0x48ではなく0x49が正しい)
     または、SCL/SDAの接続が逆になっている
     または、プルアップ抵抗が抜けている

SPIタイミングの検証:

// SPIのモード(CPOL/CPHA)が合っているか確認
// ロジックアナライザでCS, SCK, MOSI, MISOを同時観測

// 観測ポイント:
// 1. CSのアサート(Low)からSCKの最初のエッジまでの時間
// 2. SCKのエッジでのMOSI/MISOのサンプリング位置(CPHA=0 or 1)
// 3. 最後のSCKエッジからCSデアサートまでの時間(tCSH)

UARTのボーレートずれの診断:

正しい115200bps:
1ビット = 1/115200 = 8.68μs

実測値(ロジックアナライザで計測):
1ビット = 9.1μs

差異: (9.1 - 8.68) / 8.68 × 100 = 4.8% のずれ
→ MCUのクロック設定が正しくない可能性

複数信号のタイミング関係の確認:

タスク: GPIOトリガからADC変換完了割り込みまでの遅延を測定

CH0: ADC_TRIG (GPIOパルス)
CH1: ADC_EOC  (変換完了信号)

   _
CH0: | |_______________
CH2: _____________ _
                  | |__

計測: CH0立ち上がりからCH1立ち上がりまでの時間 = 1.2μs

実装・開発のポイント

1. テストポイントの設計

基板設計時に主要な信号線にテストポイント(露出したパッド)を設けておくことで、ロジックアナライザのプローブを容易に接続できる:

推奨テストポイント:
- すべてのシリアル通信信号(I2C SDA/SCL, SPI CLK/MOSI/MISO/CS等)
- 割り込み信号
- デバッグ用GPIO(処理時間測定に使用)
- 電源ラインのENABLE信号

2. デバッグ用GPIOトグルとの組み合わせ

ロジックアナライザでプログラムの実行時間を測定する手法:

// 処理時間の計測
void time_critical_function(void) {
    GPIO_SetHigh(DEBUG_PIN);   // 処理開始を示す(ロジックアナライザでキャプチャ)

    // 計測したい処理
    process_sensor_data();

    GPIO_SetLow(DEBUG_PIN);    // 処理終了
    // ロジックアナライザでHigh区間の時間を読む
}

3. トリガを活用した効率的なキャプチャ

全時間を録画するとメモリが足りなくなるため、関心のある事象をトリガで絞り込む:

例: CAN通信でエラーフレームが発生する瞬間をキャプチャ
トリガ設定:
  - CANデコーダのエラーフレーム検出をトリガにする
  - トリガの100ms前からのプリトリガ記録を有効にする
  → エラー前後の状況を確実に取得できる

4. サンプリングレートの選択

高いサンプリングレートはメモリを大量消費するため、プロトコルに合わせて適切に選択する:

推奨サンプリングレート:
UART 115200bps  : 1 MHz  (1ビット≈8.68μs の 8倍程度)
I2C  400kHz     : 4 MHz  (1クロック≈2.5μs の 10倍)
SPI  10MHz      : 100MHz (1クロック≈100ns の 10倍)
CAN  1Mbps      : 10MHz
USB FS 12Mbps   : 専用アナライザを使用

他技術との比較

比較項目ロジックアナライザオシロスコープインサーキットデバッガ
観測できる信号デジタル(High/Low)のみアナログ(電圧波形)も可CPU内部状態
チャンネル数8〜16ch+通常2〜4ch1CPU
プロトコルデコード豊富(I2C/SPI/UART等)限定的なし
タイミング精度高い最も高い低い(停止させるため)
プログラム停止不要不要停止させる
価格帯数千円〜数十万円数万円〜数百万円数千円〜数万円

オシロスコープは電圧波形を精密に測定するツールであり、ロジックアナライザとは相補的な関係にある。I2CSPIなどのシリアル通信のデバッグに特に有用である。インサーキットデバッガとロジックアナライザを組み合わせることで、ソフトウェアの状態とハードウェア信号の両面からデバッグできる。

関連用語

参考リンク