9. シリアル・バス解析

(1) シリアル・バスって何?

波形の形を観測したり、波形のパラメータ(大きさや時間)を測定する機能と比べと、シリアル・バス解析機能はちょっと毛色が違っています。I2CやCANやRS232Cなどのシルアル・バスを流れるデータを読み解き(デコード)、表示する機能です。シリアル・バスとは、I2C、SPI、CAN、LINやRS232Cのように規格化された「低速シリアル信号」の流れるバスのことです。シリアル信号と呼ばれますので、1本の信号線で伝送されるように誤解されがちですが、規格によっては2本の信号線や3本の信号線を要します。複数の信号線がバスを形成する状態からシリアル・バスと呼ばれます。

シリアル通信とアナログ通信の違い(イメージ図)

(2) シリアル・バス解析

シリアル・バス解析機能を持つオシロスコープは、データの内容をデコードする点でプロトコル・アナライザの機能を持ったオシロスコープということができます。シリアル・バスを流れる信号を規格にしたがいデコードします。デコードしたデータの表示の仕方に2通りあり、シリアル・バスを流れる実波形に沿わせるようにデコード値を表示することもできますし、デコード値のみを一覧表(イベント・テーブル)にして表示することもできます。不具合の原因追及(デバッグ)過程において、ソフトウェアの内容に特化してデバッグを進める場合にはイベント・テーブルが効率的ですし、他の波形との因果関係を追跡する場合には実波形に沿わせた表示が役に立ちます。

イベントテーブル

オシロスコープがシリアル・バス解析機能まで持つに至った背景には、組み込みシステムの隆盛があります。コンピュータを内蔵しながらも、コンピュータの存在を意識させない機器を組み込みシステムと呼びますが、冷蔵庫からロケットまで、今日の多くの機器が組み込みシステムです。これら組み込みシステムの内部で使用されるICなど多くのデバイスは、シリアル・バスによるコントロールを用いています。シリアル・バスによるコントロールは設計の効率化に大いに寄与しますが、一旦不具合が生じるとやっかいです。オシロスコープで波形を観測しても、データがシリアル列として連続するだけで、何が何やら全くわかりません。

古くから、オシロスコープはいろいろな機器の設計から製造、検査と多くの局面で不具合のデバッグに使われてきましたが、波形を見るだけのオシロスコープでは、ことシリアル・バスの解析に関しては無能でした(シリアル・バスの解析機能が可能になる前は、I2C信号なら、クロック・エッジごとにデータのHI/LOを記録して、I2Cのプロトコルに従い手作業により、データの内容をデコードしなければなりませんでした)。とても時間のかかる非効率な作業を強いることになります。ところが、シリアル・バス解析機能を持つオシロスコープは、そんな作業を一瞬にしてこなします。

<使用例>
組み込みシステムのエンジニアの守備範囲は広く、「ソフトウェアは正しく動作しているのか?」「ハードウェアは正しく動作しているのか?」「特定のコマンド・データを送った時のシステムの振る舞いは?」と多方面に気を配らなくてはなりません。シリアル・バス解析機能を持つオシロスコープは、ソフトウェアの動作(例えば、特定のコマンド・データがバスに流れた)を感知することができますし、その後に続くハードウェアの動作(例えば、ICの出力波形)を確認することができます。ソフトウェアの動作がおかしい(例えば、特定のコマンド・データがバスに現れない)場合は、その前に流れたデータの内容を読み解き、原因(例えば、プログラムの不備)を見つけることもできます。

シリアルの伝送方式は、データが時間方向に結合された形ですので、単純に言うと、8ピットのパラレル伝送方式をシリアルの伝送方式にすれば、8倍超の長さになります。したがってシリアル・バスの解析には長いレコード長を必要とします。レコード長に関しては、今日のオシロスコープの多くは十分な長さ持ちますが、問題は、その長いレコード長をストレス無く使いこなすツールを装備しているかどうかです。WaveInspector(前回の記事を参照)のようなツールなしでは、長いレコード長を扱う作業は、ワラの山から一本の針を探すような非効率な苦痛の満ちたものとなってしまいます。WaveInspectorのようなツールがあれば、検索やマーク付け機能により、シリアル・バスに流れる特定のデバイスを指定したり、特定の動作を指定したりできますので、ストレスなく効率的にデバッグを進めることができます。

WaveInspectorの検索機能ボタン

著者
稲垣 正一郎(いながき・しょういちろう)
日本テクトロニクス テクニカルサポートセンター センター長