Controller Area Networkの略で、×Car Area Networkではありません。
シンプルで信頼性が高く、自動車や産業機器など幅広い分野で利用されているネットワークです。
年 | 歴史 |
1986 | Bosch は最初の CAN プロトコルを公式にリリースし、その後すぐに Philips (現在の NXP) がCANコントローラを統合したMCUをリリースした最初の半導体メーカーの 1つとなりました。 |
1993 | 国際標準化機構 (ISO) は CAN を ISO 11898 として標準化しました。その後、3つの標準に分割されました。 ・ISO 11898-1 は、プロトコルのデータ リンク層を記述 ・ISO 11898-2 は、高速 CAN (最大ボーレート 1Mbps) の物理層を記述 ・ISO 11898-3 は、後にリリースされ、フォールト トレラント CAN としても知られる低速 CAN (最大ボーレート 125kbps) の CAN 物理層をカバー |
2012 | Bosch は、より高いデータレートに対応する進化した標準規格である CAN FD 1.0 (CAN with Flexible Data-Rate) をリリースしました。 |
2018 | CAN XL (CAN with Extended Length)が登場。より高いデータ レート、データ長を実現 |
項目 | (Classic) CAN | CAN FD | CAN XL |
登場年 | 1986 | 2012 | 2018 |
最大データ長 | 8バイト | 64バイト | 2048バイト |
最大伝送速度 | 1 Mbps | 5~8 Mbps | 10~20 Mbps |
フレーム形式 | 標準フレーム : 11ビットID | 標準フレーム : 11ビットID 拡張フレーム : 29ビットID |
標準フレーム : 11ビットID |
互換性 | - | CANと後方互換 | CAN FDと後方互換 |
*CAN XLでは、データ長が増えたことにより、Ethernet(最大 1500バイト)との親和性が上がりました。例えば、Ethernet to CAN XL または CAN XL to Ethernetのプロトコル変換を行う際に、1フレームでパッケージングすることができます。Ethernet to CAN FDでは、64バイト毎にデータをぶつ切りにしてフレームを作る必要がありました。
データサイズが16 Byteまでの場合:
データサイズが20 ~ 64 Byteの場合:
フィールド | 説明 |
SOF (フレーム開始) | メッセージが来ていることを他のECUに伝えるためにドミナント「0」を送信。 |
Arbitration ID (Base ID) (以後"ID"と記載) |
メッセージと優先度を識別。標準 CAN (CAN 2.0A) フレームの ID は 11 ビット、拡張 CAN (CAN 2.0B) フレームの ID は 29 ビット。 |
RRS (リモート送信要求) |
Remote Request Substitutionとして、ドミナント「0」固定。 |
IDE |
標準フォーマット フレーム (11 ビット識別子) か拡張フォーマット フレーム (29 ビット識別子) かを示す。 |
FDF |
フレキシブル データ フォーマット (FDF) ビットと呼ばれている。フレームがクラシック CAN か CAN FD かを示す。 ドミナント「0」:CAN リセッシブ「1」:CAN FD |
res | 予約ビット。ドミナント「0」固定。 |
BRS | Bit Rate Switch。BRSビットのサンプリングポイントで、高速なBit Rateへと切り替え。*サンプリングポイントの調整は要注意。 |
ESI | Error State Indicator。送信ノードのエラー状態を伝える。ドミナント「0」でError Active。 |
DLC (データ長コード) | データの長さをバイト単位で格納 (0~64 バイト) |
Data | 実際のデータ値が含まれます。長さは DLC フィールドによって決まる。 |
Stuff count | CAN FDで追加された4bitの領域。SOFからData Fieldまでに含まれるスタッフビットの総数を8で割った余りを3bit長でグレイコード化した値で格納。4bit目には偶数パリティを格納。 |
CRC (巡回冗長検査) |
データの整合性をチェックするエラー検出コード。 |
CRC delimiter (区切りビット) | リセッシブ「1」である必要あり。 |
ACK(確認応答スロット) | CRC プロセスが正常であることを確認。 |
ACK delimiter (区切りビット) | リセッシブ「1」である必要あり。 |
EOF (フレームの終了 ) | 7 ビット。フレームの終了は、リセッシブ「1」で示す。 |
CANの代表的な特長を5つ紹介します。
・CANバスでは、デジタルデータとして”0”と”1”を送受信します
・“0”のことを「ドミナント(Dominant)」、”1”のことを「リセッシブ(Recessive)」と呼びます。
・複数のノードが同時に送信を開始する可能性があります。この場合、優先度の高いメッセージが最初にバスへのアクセスを「獲得」します。
・以下のようにDevice AのID = 11001000111 (0x647)で、Device BのID = 11011111111 (0x6FF)が同時に送信した場合、Device AのID番号が小さいので、メッセージの送信が継続されます。Device Bが、バスが空いたときに再送するため待機します。
・バス上のすべてのノードはメッセージの送信と受信の両方が可能で、常にブロードキャストされるメッセージを待ち受けています。すべてのノードにおいて、メッセージを送信するとブロードキャストされます。
・各ノードのCAN コントローラは、ブロードキャストされたメッセージのIDをチェックし、そのID が特定の範囲内にある場合はメッセージを受け入れ、範囲外のメッセージを無視するフィルタを実装できます。
・下図の例では、ノード 1 が現在の車両速度のメッセージを送信するとします。メッセージには ID 0x121 のタグが付けられているので、
- ノード 2 は、0x100 ~ 0x1FF の範囲のID を持つデータを受け入れます。
- ノード 3 は、0x320 ~ 0x352 の範囲のID を持つデータを受け入れますが、今回のメッセージの ID はこの範囲外であるため、データを無視します。
車載システムや産業機器など、障害が許されないシステムでは、信頼性が不可欠です。信頼性の向上には、豊富なエラー検出手法が使用されており、メッセージ レベル、ビット レベルで エラー・チェック手法が組み込まれています。これらのいずれかでエラーを検出すると、メッセージは受信されず、受信ノードからエラーフレームが生成されます。
・メッセージレベルでは、CRCチェック (受信ノードが演算したCRC値と、送信フレームに含まれるCRC値が合致しなかった時に、CRCエラーとする)や、フォームチェック (SOF、EOF、ACK デリミタ、CRCデリミタビットは論理が固定されているため、反対の論理が検出された場合はエラーとする)があります。
・ビットレベルでは、送信ノードは自身の送信メッセージを自身で受信して、ビット単位で監視します(ビットモニタリング)。バスに送信したデータビットと反対のビットが読み取られると、エラーが生成されます。
・また「ビットスタッフィングルール」という同じ論理レベルのビットが5回連続すると、スタッフビット(5回連続したビットとは反対の状態ビット)が挿入される仕組みがあります。これにより、ネットワークの同期を維持するためのエッジが確保されます。スタッフィングされたフレームは、受信ノードによってデスタッフィングされます。ビットスタッフィングは、CRCデリミタ、ACKフィールド、EOFを除くフレーム内のすべてのフィールドに適用されます。同じ極性のビットが6回連続すると、ビットスタッフィングルールに違反するため、エラーとみなされます。
上記の点をまとめると、CAN バスは自動車および産業用途で多くのメリットを提供します。
・低コスト - 各 ECU ・ノードは、単一の CAN インターフェースを介して通信できるため、配線数の削減、配線重量の低下、コスト削減に貢献します。
・堅牢 – CAN の高速バス ラインは電気的障害に対する耐性が非常に高く、差動信号を用いることで耐ノイズ性にも優れています。一部の CAN コントローラとレシーバーは産業用/拡張温度範囲で使用できます。
・優先度 – フレームの初めに含まれるArbitration IDにより優先度を決定し、メッセージ同士の衝突を回避することができます。
・フィルタ – ネットワーク上の各ノードは、送信されたメッセージを送受信し、メッセージが適切か無視すべきかを判断できます。
・エラー検出 – CAN仕様には、各ノードが送信エラーをチェックするエラー処理機能が組み込まれています。これにより、信頼性を高めることができます。
・CANは長年使われているネットワークであり、NXPはCANの老舗です。NXPでは、CANコントローラを統合したマイコンやプロセッサ、CANトランシーバ、システムベースチップ、そしてこれらすべてをサポートする開発ツール、ソフトウェア、各種ドキュメント、技術サポートなど、さまざまなCANソリューションを提供しています。
・CANを使い始めるには、S32 Design Studio IDE 、MCUXpresso IDE 、モデルベース・デザイン・ツールボックス(MBDT)に含まれるサンプルをご参照ください。
=========================
本投稿の「Comment」欄にコメントをいただいても,現在返信に対応しておりません.
お手数をおかけしますが,お問い合わせの際には,NXP代理店,もしくはNXPまでお問い合わせください.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.