CAN (コントローラー エリア ネットワーク) バスは、広く使用されているシリアル通信プロトコルであり、特に自動車および産業オートメーション分野に適しています。 CAN バス上のメッセージ タイプは次のように大まかに分類でき、各タイプには特定の目的と形式があります。
I. データフレーム
データ フレームは、CAN バス上の最も基本的なメッセージ タイプであり、ノード間でデータを送信するために使用されます。データ フレームは、フレーム開始、アービトレーション フィールド、制御フィールド、データ フィールド、CRC フィールド、ACK フィールド、フレーム終了などの複数のセグメントで構成されます。
1. フレーム開始 (SOF)
- 定義: データ フレームの開始を示すセグメント。単一のアクティブ ビット (論理 0) で構成されます。
- 機能: バスがアイドル状態の場合、送信ノードはフレームの開始を送信します。他の受信ノードはこのフレーム開始ビットに同期します。
2. 仲裁フィールド
- 定義: フレームの優先度を示すセグメント。アービトレーション フィールド ID コードの長さに応じて、フレームは標準フレーム (CAN 2.0A) と拡張フレーム (CAN 2.0B) に分類されます。
- 内容: 標準-形式のフレームの調停フィールドは、11-ビットの識別子(ID)とリモート送信要求(RTR)ビットで構成されます。拡張フォーマット フレームのアービトレーション フィールドは、29 ビットの識別子と RTR ビットで構成されます。
- 機能: 送信されているフレームのタイプ (データ フレームまたはリモート コントロール フレーム) とフレーム フォーマット (標準フレームまたは拡張フレーム) を決定し、フレームの優先順位を確立するために使用されます。
3. コントロールフィールド
- 定義: データ内のバイト数と予約ビットを指定するフィールド。
- 内容: データ長コード (DLC) と 2 つの予約ビット (r0、r1) が含まれます。 DLC はデータ フィールドのバイト数を示し、その範囲は 0 ~ 8 バイトです。
- 機能: データを正しく受信できるように、受信ノードにデータ フィールドの長さを通知します。
4. データフィールド
- 定義: データの内容。 0~8バイトのデータを送信できます。
- 目的:実データ情報を送信するため。
5. CRCフィールド(巡回冗長検査フィールド)
- 定義: フレーム内の送信エラーをチェックするために使用されるフィールド。CRC シーケンスと CRC デリミタで構成されます。
- 機能: CRC 検証を通じてデータの整合性と正確性を保証します。
6. ACKフィールド(確認応答フィールド)
- 定義: 受信成功の確認を示すセグメント。ACK スロットと ACK デリミタで構成されます。
- 機能: 受信機が有効なメッセージを正しく受信すると、ACK スロット中に受信を確認するために正のビットを送信機に送信します。
7. フレームの終わり (EOF)
- 定義: データ フレームの終わりを示すセグメント。7 つの負のビットで構成されます。
- 機能: データ フレームの終了を通知します。
II.リモートフレーム
リモートフレームは、同じIDのデータフレームの送信を要求するフレームです。受信ノードが特定のデータを必要とするが、それを持っていない場合、リモート フレームを送信して、送信ノードに対応するデータ フレームの送信を要求します。リモート フレームの構造はデータ フレームの構造と似ていますが、データ セグメントは空で、RTR ビットは 1 に設定されます。
Ⅲ.エラーフレーム
エラー フレームは、エラー フラグとエラー デリミタの 2 つのフィールドで構成されます。受信ノードがバス上のメッセージのエラーを検出すると、「アクティブ エラー フラグ」を自動的に送信します。他のノードは、アクティブなエラー フラグを検出すると、「エラー確認フラグ」を送信します。エラー フレームを送信すると、エラーが解決されるまで現在のバス通信が中断されます。
IV.オーバーロードフレーム
オーバーロード フレームは、オーバーロード フラグとオーバーロード セパレーターで構成されます。オーバーロード フレームは、受信ノードが次のフレームを受信する前に現在のデータの処理に過度の時間を必要とする場合、またはフレーム間スペース フィールドでドミナント レベルが検出された場合に送信されます。オーバーロード フレームの送信は、バス上の通信がオーバーロードによって中断されないように、後続のフレームの送信を遅らせます。
V. 他のメッセージタイプ
上述の 4 つの基本メッセージ タイプに加えて、CAN バス プロトコルは、フレーム間スペースや N_PCI メッセージ タイプ(単一フレーム、開始フレーム、連続フレーム、フロー制御フレームなど)など、他のいくつかの特別なメッセージ タイプを定義します。これらのメッセージ タイプは、さまざまな通信要件を満たすために特定の通信シナリオで使用されます。
まとめ
CAN バス上のメッセージ タイプには、データ フレーム、リモート コントロール フレーム、エラー フレーム、オーバーロード フレームなどの基本タイプに加え、フレーム間スペースや N_PCI メッセージ タイプなどの特殊なタイプが含まれます。各メッセージ タイプには固有の構造と目的があり、集合的に CAN バス通信の基礎を形成します。実際のアプリケーションでは、特定の通信要件に基づいてデータ送信に適切なメッセージ タイプを選択することで、信頼性が高く効率的な通信が保証されます。




