シリアルプロトコルの概要

シリアルプロトコルの概要

専門スタッフに問い合わせる

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

シリアルプロトコル解析の概念とデコード

デジタルデータの伝送:パラレル伝送とシリアル伝送

デジタルシステムはビットの概念に基づいており、2つのコンポーネントまたはデバイス間で伝送する必要があります。ビットを伝送するには多くの方法がありますが、主に2つのカテゴリーに分けられます。パラレル伝送とシリアル伝送です。

パラレル伝送

パラレル伝送では、トランスミッタとレシーバの間で複数のビットを同時に伝送し、ビットごとに別個の導線を使用します。パラレル接続は、短距離接続ポイントツーポイント接続に適しています。タイミングがシンプルで、解析が比較的容易です。しかし、かつてはパラレル伝送が一般的でしたが、今日では大部分がシリアル伝送に置き換えられています。

シリアル伝送

その名称が示すように、シリアル伝送は1ビットずつ送信し、すべてのビットが同じ導線上で送信されます。シリアル伝送は長距離アプリケーション、高スループットが必要なアプリケーション、および複数のノードがあるアプリケーションに適しています。シリアル伝送にはこれらの長所がある一方で、より複雑で解析が困難という課題があります。データビットが単一の導線または「ワイヤー」で送信されるのは事実ですが、ほとんどのシリアルプロトコルでは複数の導線を使用します。

データビット用のワイヤーに加えて、多くのプロトコルではクロック信号、マルチノード用の何らかの制御またはアドレス指定機能を追加します。

パラレル伝送

シリアル伝送

シリアルプロトコルの例

シリアルプロトコルは、非常に幅広いアプリケーションで使用されます。汎用のアプリケーションで使用される3つの主なシリアルプロトコルは、 UARTI²C、SPI です。

シリアルプロトコルの特殊なカテゴリー自動車業界で使用されるもので、 CAN、LINFlexRay などがあります。これらのプロトコルは、低速と高速の両方が混合される環境やノイズの多い環境における信頼性の高い動作の提供など、車載通信に関する厳しい要件に対処するためにデザインされています。

汎用のアプリケーション

UART(Universal Asynchronous Receiver/Transmitter)

  • 典型的なシリアルプロトコル
  • 実装しやすい
  • 何十年もPCシリアルポートおよびCOMポートで使用されてきている

I²C(Inter-IC)

  • 集積回路間の通信(集積回路以外も含む)

SPI(Serial Peripheral Interface)

  • I²Cよりも高速
  • 使用するワイヤー本数が多く、一般的に複雑性が高い

車載用アプリケーション

CAN(Controller Area Network)

  • 高速
  • センサと共に用いられることが多い

LIN(Local Interconnect Network)

  • 低速
  • アクセサリ(窓、ミラーなど)と共に用いられる

FlexRay

  • 高速性と冗長性を兼ね備える

シリアルプロトコルの特性

実装上の詳細はプロトコル間で異なりますが、すべてのシリアルプロトコルに4つの基本的な特性があり、これらの特性はシリアルデータの解析とデコードの際にも重要となります。

  • レベル:0または1を表すための電圧の使用方法
  • タイミング:ビットが送信される頻度(ビット時間)
  • フレーミング:ビットの分類方法と各ビットまたはビットのグループの役割
  • プロトコル:どの状況でどのメッセージが交換されるのか

レベル

デジタルデコードに着手する前に、0と1を見分けられるようになる必要があります。言い換えると、ビット値はどのようにして電圧レベルから決定されるのか?ということです。シンプルな考え方としては、電圧レベルがローのときが0にあたり、電圧レベルがハイのときが1に該当すると定義することです。実際、一部のシリアルプロトコルはこの方法で動作します。
車載用など過酷な環境で使用されるシリアルプロトコルは、多くの場合で差動電圧を用います。差動信号は、ノイズ耐性が高い傾向にあるためです。差動とは、0または1をグランドに対して定義するのではなく、2電圧間の差に基づいて定義するものです。

注記:これらの測定では差動プローブがとても役に立ちます。

タイミング

「0」と「1」の電圧レベルを定義するだけでは、どのビットが受信されているかを決定するには不十分です。さらに、どのくらいの速度でビットが生成されているのか、つまり、「ビット時間」または「ビットレート」がどの程度であるかを理解することが重要です。
シリアルデータをデコードするためには、レシーバまたは測定器がトランスミッタと同じビットレートを用いる必要があります。

フレーミング

シリアルプロトコルでは、ビットは一般的にフレームというものにまとめられます。フレーム内の個々のビットまたはビットのグループには定義された意味があります。正しくフレームをデコードするには、この構造に関するある程度の知識が必要です。
例えば、UARTシリアルプロトコルをデコードするとき、データラインがアイドル状態の場合は電圧レベルがハイであることを知っておくことが重要です。ハイからローへの遷移はフレームの開始を示す「スタートビット」です。このほかにも、読むべきデータビットの数、およびフレームが終了するハイの電圧レベルのストップビットがあり、その後にアイドル状態に戻ることを知る必要があります。フレーム構造を知ることによって、ユーザーデータをシリアルのビットストリームから抽出し、伝送に関する他の情報を得ることができます。

ビットは通常「フレーム」にまとめられていて、フレーム内の各ビットまたはビットのグループには定義された意味があります

プロトコル

最後に考慮すべき要素は「プロトコル」と呼ばれるものです。プロトコルの一般的な定義は、情報をエンコードして、やりとりするためのルールのセットです。データ送信の方法、タイミングおよび終端点間でやりとりされるメッセージの種類や意味についてもルールがあります。
シンプルなプロトコルでは、レシーバが受信データに対して準備ができているかどうかにかかわらず、データが利用可能になるとすぐにデータを送信します。より高度なプロトコルでは、データ送信前に許可を求めるための何らかのメカニズムを使用します。さらに高度なプロトコルでは、送信者が、さらにデータを送信する前または欠落したデータあるいはエラーがあったデータを送信する前に、データが正常に受信されたことを示す明示的な受信確認を待ちます。

シリアルプロトコルのデコード

過去のシリアルプロトコル解析では、一般的に特殊な専用のプロトコルテスタを使用してデコードしていました。現在の最も一般的な方法では、チャネルが1つ以上の最新のデジタル・オシロスコープを使用します。必要なシリアルプロトコルを選択した後、レベル、タイミング、フレーミングを構成して、解析したシリアル信号に一致させる必要があります。これらの情報を使用することで、オシロスコープが生の電圧レベル、検出ビット、フレームの形式で結果を生成し、その内容はバイナリ、HEX、またはASCIIで表示することができます。オシロスコープ上でのシリアルデコードには、多くの場合、フレーム内の特定のシンボルによるトリガ、ユーザー定義されたパターンにエンジニアが読める形式のラベルを割り当てる機能、そしてデータのエクスポートなど、追加の機能が含まれます。

まとめ

シリアルプロトコルは、コンポーネント間もしくは個々のデバイス間でビットを連続的に、または1ビットずつ伝送するために使用されます。

シリアル通信は、ほぼすべてのデジタルデバイスで使用されており、

シリアルプロトコルは、以下のように分けられます。

  • UART、I²C、SPIなどの汎用規格
  • CAN、LIN、FlexRayなど、よりアプリケーション固有のプロトコル(主に車載用に使用)

すべてのシリアルプロトコルには、以下のような決まった特性があります。

  • どのように電圧をビットにマッピングしているか
  • タイミングまたはビットレート
  • ビットをどのようにメッセージユニットまたはフレームにまとめているか
  • 交換されるフレームのタイプ、ならびに各タイプのフレームを送信するタイミングのルール

今では最新のデジタルオシロスコープがシリアルデータを解析し、デコードするために最適なツールです。

シリアルプロトコル、またはシリアルプロトコルのデコードに関するご質問等がございましたら、 弊社のエキスパートがお答えします。

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

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