オシロスコープの基本操作

R&S®Essentials | デジタル・オシロスコープの基礎

オシロスコープを用いたシリアルプロトコルのデバッグ

著者:James Lewis l 電子計測器のエキスパート/ブロガー

知れば知るほど惹きつけられるUARTI2C(Q)SPI、およびCANバスの魅力的な特徴をご紹介します。この記事では、これらのシリアルプロトコルの紹介に加えて、オシロスコープを用いたデバッグ方法についても解説します。実践的なヒントから現場での知見まで、プロトコルのデバッグを習得するために役立つ基本情報を提供します。

エッジコンピューティングデバイスには、センサ、アクチュエーター、ボタン、ディスプレイに接続されたマイクロコントローラー(MCU)が搭載されていることがあります。このようなディスクリートデバイスの多くは、UART、I2C、またはCANなどのデジタルプロトコルを使用してMCUと通信します。これらのプロトコルをオシロスコープでデバッグする利点の1つは、信号線が少なく、従来の幅広なパラレルバスに比べてプロービングが容易な点です。オシロスコープはプローブに加えて、通常はプロトコル・アナライザが別途必要となる豊富な解析ツールセットも提供しています。ここでは、オシロスコープでシリアルプロトコルをデコードする方法のヒントと、代表的なシリアルプロトコルの概要を紹介します。

オシロスコープ対ロジック・アナライザ

R&S®RTM3000 オシロスコープ

R&S®RTM3000 オシロスコープ

主な特長:

  • 帯域幅:100 MHz~1 GHz
  • サンプリングレート:最大5 Gサンプル/秒
  • メモリ長:最大80 Mサンプル
  • ADC分解能:10ビット

プロトコルのデコードには、オシロスコープ、ロジック・アナライザ、または専用のプロトコル・アナライザを使用できます。では、これらのツールのうち、どれを使うのが最も適しているのでしょうか?以下で、3つを簡単に比較します。

ロジック・アナライザのチャネルは基本的にデジタルコンパレーターです。そのため、信号がハイかローかしか判断できません。一般的なロジック・アナライザは少なくとも8チャネルを備えており、中には32チャネル以上の機種もあります。プロトコル・アナライザはロジック・アナライザと似ていますが、シリアルリンクをデコードするためにプロトコル専用のハードウェアとソフトウェアを搭載しています。

一方、オシロスコープは、ビット分解能が高いものの、一般的にチャネルは2個または4個に制限されます。しかし、ビット深度が高いため、信号のアナログ特性を確認できます。

幸いなことに、最新のオシロスコープでは、このような3つのオプションからどれか1つを選択する必要はほとんどありません。ローデ・シュワルツの全モデルを含む多くのオシロスコープがロジックチャネルを備え、アナログとデジタルの両方に対応できます。このようなオシロスコープは、「ミックスド・シグナル・オシロスコープ」と呼ばれています。

中には、シリアルバス用のプロトコルデコードツールを搭載している機種もあります。例えば、R&S®RTB2000R&S®MXO 4、またはR&S®RTO 6は、多く使用されるシリアルプロトコルに対応したプロトコルデコード/トリガ機能を内蔵しています。

オシロスコープは、プロトコルエラーが検出された際に特に真価を発揮します。バスをサンプリングしているアナログチャネルは、プロトコルエラーの発生時やその前後にアナログ信号の問題があるかどうかを示すことができます。このような表示は、ロジック・アナライザではほとんどできません。

シリアルバスには非常に多くの種類があるため、そのサポート状況はオシロスコープによって異なります。以下に、代表的なバスを使用した回路をデバッグする際の注意点やヒントを紹介します。

UART

Universal Asynchronous Receiver/Transmitter(UART)は、「シリアル」と呼ばれることもあります。送信信号と受信信号は、個別のクロックを持たないワイヤーを使用します。ポイントツーポイント通信なので、通常は2つのデバイスのみを接続します。

場合によっては、TXまたはRXのいずれかの信号を確認するだけで済むため、UARTはデバッグが最も簡単です。ただし実際には、通信を理解するために両方向の信号を確認する必要があることが一般的です。

1/2

UARTセットアップ

UARTセットアップ

UARTには柔軟なフレーミング手法があります。スタートビットおよびストップビットの数は可変で、さらにオプションのパリティービットも使用できます。データペイロードは通常8ビットです。UARTは非同期式なので、ホストとデバイスはこれらのパラメータに加えてボーレートについても一致している必要があります。同じ要件が、デバッグ中のオシロスコープにも適用されます。

オシロスコープでのデバッグ

ヒント:デコーダーでは、通常捕捉後にボーレートを変更できます。デコード結果が不適切な場合は、この設定を調整してください。調整しないと適切にデコード(またはトリガ)ができません。

SPIおよびQSPI

すべてのデバイスがクロックを共有
すべてのデバイスがクロックを共有

SPIまたはS-P-Iというテキストは、「シリアル・ペリフェラル・インタフェース」として知られています。これは、シフトレジスタのように動作します。すべてのデバイスは、クロック、メイン出力/セカンダリ入力(MOSI)信号、メイン入力/セカンダリ出力(MISO)信号を共有します。これらはUARTの「TX」と「RX」に相当しますが、データの流れる方向のみが異なります。例えば、MOSIではホストからデバイスへ、MISOではデバイスからホストへデータが流れます。そのため、誤った信号をプロービングする恐れは少なくなります。

SPIプロトコルは、同じバスで複数のデバイスをサポートします。各デバイスは、チップセレクト(CS)信号で識別されます。ただし、SPIデバイスが1台しかない設計では、CS信号が省略されたり常に有効にされたりする場合があります。同様に、データが一方にしか流れない場合は、それに応じてMOSIまたはMISO信号のいずれかを接続すれば問題ありません。

この考え方は、オシロスコープでのデバッグにも同様に適用されます。バス上にデバイスが1台しかない場合、CSのプロービングは不要です。さらに、データが一方にしか流れない場合、多くのデコーダーは片方の信号をプローブするだけで処理できます。ただし、クロック信号は常に必要です。

QSPIとは?

フラッシュメモリチップの一般的なインタフェース規格がクワッドSPI(QSPI)プロトコルです。SPIと同様に、クロックピン、イネーブルピン、データピンがあります。

Inter-Integrated Circuit(I2C)

デバイスはクロックラインとデータラインを共有します。
デバイスはクロックラインとデータラインを共有します。

Inter-Integrated Circuit(I2C)は、Philips社(現NXP社)が提唱したもので、後にNXPの一部となりました。I2Cをサポートするデバイスの中には、商標やライセンスの問題を避けるために「2線式」と呼ばれるものもあります。

バス上のすべてのデバイスはクロックラインとデータラインを共有し、各デバイスは固有のアドレスを持ちます。一般的に、I2Cを使用するセンサやデバイスはベースアドレスを持ち、その最下位ビットを設定するための数ビットが用意されています。この仕組みは、最小限のピン数でバス上の同じセンサを複数使用するときに有用です。

I2Cをオシロスコープでデバッグするには、2つのチャネルが必要です。クロックは、ホストがデバイスと通信している間しか動作しないため、オシロスコープはクロック信号とデータ信号の両方を捕捉する必要があります。

I2C:7ビットまたは8ビット(または10ビット)

I2Cのアドレスは、2種類のアドレスモード(7ビットと10ビット)があるために混乱しがちです。7ビットモードの方が一般的ですが、これは8ビットアドレスとみなされる場合があるために、混乱を招く傾向があります。

7ビットアドレスモードと8ビットアドレスモードの比較
7ビットアドレスモードと8ビットアドレスモードの比較

混乱の原因は、アドレスの後に続くR/Wビットにあります。READトランザクションの場合、ビット値は「1」で、WRITEトランザクションの場合、ビット値は「0」です。そのため、I2Cのデバッグ中に想定されるアドレスに対するトリガが失敗した場合は、1ビットだけ左にアドレスをシフトさせてR/W値を含めるようにしてみてください。

CANバス

CANバスは差動シグナリングを使用
CANバスは差動シグナリングを使用

Controller Area Network(CAN)は自動車用に開発され、その後は輸送産業で多く使用されています。差動シグナリングは電気的ノイズに対する耐性を高めるため、CANは工業アプリケーションに最適です。

差動であるにも関わらず、ほとんどのケースで差動オシロスコーププローブは必要ありません。オシロスコープのデコーダーがバスをデコードするためには、「CANH」または「CANL」のいずれかの信号に対してシングルエンドプローブを使用すれば十分です。

2種類のCAN 2.0バージョン(ベース(11ビットアドレス)と拡張(29ビットアドレス))があり、これらのデータフレームは、アービトレーションとコントロールフィールドがわずかに異なります。ただし、それ以外のパケットは同じです。

R&S®RTM3000を使用したCANのデコード
R&S®RTM3000を使用したCANのデコード

CANバスは、2本の信号線のみを使用しますが、そのどちらもクロックではありません。そのため、デコードが不適切な場合は、サンプルポイントを調整して、デコーダーがデータをサンプリングする位置を変更してみてください。

デコード対トリガ

デコードは、捕捉された波形を解析してプロトコルを人間が読める形式にデコードする後処理手法です。一般に、デコードされたデータは、波形表示に重ねて表示したり、表形式で表示したりできます(R&S RTERTO6、およびRTPなどの一部のオシロスコープは、バス使用率解析機能のような追加解析ツールも提供しています)。大容量メモリを搭載したオシロスコープは、長期間の信号を捕捉してから、目的のイベント(またはそのイベントが発生した頻度)を検出するためにサーチを実行できます。この手法は主に「ソフトウェア」によるアプローチです。

ただし、トリガはオシロスコープのトリガシステム内で発生します。プロトコルトリガは継続的にシリアルバスを監視して、イベントが発生したタイミングを判断します。例えば、2つの一般的なトリガ条件として、I2Cアドレスやエラー条件(NAKまたはパリティエラー)があります。トリガオプションは一般的にいくつかのプロトコル固有のトランザクションに制限され、アドレス、データ、ペイロードのいずれかのビット深度にも制限される場合があります。この手法は主に「ハードウェア」によるアプローチです。

オシロスコープがこれらの2つのアプローチを組み合わせることもあります。例えば、トリガシステムは「オートトリガ」を実行し、同時にプロトコルデコーダーが目的のイベントを検出して、それを画面の中央に表示するような場合です。オシロスコープが特定のイベントを「逃した」場合は、マニュアルを確認して、どのトリガ条件が「ハードウェアベース」で、どの条件が「ソフトウェアベース」なのかを確認してください。

まとめ

  • 多くのエッジコンピューティングデバイスは、UART、SPI、I2C、またはCANなどのデジタルプロトコルを使用してMCUと通信します。
  • オシロスコープは、シリアルプロトコルをデコードするためのさまざまなツールを提供しています。
  • オシロスコープの中には、シリアルバス用のプロトコルデコードツールを搭載している機種もあります。
  • UARTは個別のクロックを持たず、ポイントツーポイント通信であるため、2台のデバイスのみが接続されます。
  • SPIはシフトレジスタのように動作し、すべてのデバイスがクロック、MOSI信号、MISO信号を共有します。
  • I2Cをオシロスコープでデバッグするには、2つのチャネルが必要です。クロックは、ホストがデバイスと通信している間しか動作しないため、オシロスコープはクロック信号とデータ信号の両方を捕捉する必要があります。
  • CANは差動であるにも関わらず、通常は差動オシロスコーププローブを必要としません。オシロスコープのデコーダーがバスをデコードするためには、「CANH」または「CANL」のいずれかの信号に対してシングルエンドプローブを使用すれば十分です。
  • ローデ・シュワルツのすべてのオシロスコープには、シリアルプロトコルオプションが用意されています。使用可能なトリガは、オシロスコープモデルとその帯域幅機能によって異なります。ただし、多くのオシロスコープがこちらに掲載されている基本的なシリアルプロトコルをサポートしています。
  • 一般的なシリアルプロトコルの汎用デバッグには、RTB2000またはRTM3000をご検討ください。480 Mbit/sを超える高速なプロトコルには、MXO4(1.5 GHz)、RTO、およびRTPオシロスコープをご検討ください。

テストの基本について理解を深めたいと思いませんか?

ニュースレターを購読する

こちらもご覧ください