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

ご興味がございましたらお気軽に!

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

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

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

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

パラレル伝送

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

シリアル伝送

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

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

パラレル伝送

シリアル伝送

シリアルプロトコルの例

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

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

汎用のアプリケーション

UART(Universal Asynchronous Receiver/Transmitter:汎用非同期送受信機)

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

I²C(Inter-IC:IC間)

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

SPI(シリアル周辺機器インタフェース)

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

車載用アプリケーション

CAN(Controller Area Network:コントローラーエリアネットワーク)

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

LIN(Local Interconnect Network:ローカルインターコネクトネットワーク)

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

FlexRay

  • 冗長性があり、高速

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

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

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

レベル

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

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

タイミング

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

フレーミング

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

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

プロトコル

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

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

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

まとめ

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

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

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

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

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

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

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

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

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

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