CANバス/プロトコルの概要と特長 (日本語ブログ)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

CANバス/プロトコルの概要と特長 (日本語ブログ)

Keita_Nagashima
NXP Employee
NXP Employee
0 0 480

CANの概要

 

CANとは?

 

Controller Area Networkの略で、×Car Area Networkではありません。

シンプルで信頼性が高く、自動車や産業機器など幅広い分野で利用されているネットワークです。

CANの歴史

歴史
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)が登場。より高いデータ レート、データ長を実現

 

CANの種類と比較

項目 (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バイト毎にデータをぶつ切りにしてフレームを作る必要がありました。

 

CANのフレームフォーマット比較

 

Keita_Nagashima_0-1746181380046.png

 

例:CAN FDの標準データ フレーム フォーマット

データサイズが16 Byteまでの場合:

Keita_Nagashima_0-1747110508669.png

 

データサイズが20 ~ 64 Byteの場合:

Keita_Nagashima_1-1747110532063.png

 

フィールド 説明
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の特長

 

CANの代表的な特長を紹介します。

特長1:各ECUは同じバスを共有

 

Keita_Nagashima_0-1746775179235.png

 

特長2:シンプルなバス構成と差動信号により信頼性を上げる

 

・CANバスでは、デジタルデータとして”0”と”1”を送受信します

“0”のことを「ドミナント(Dominant)」、”1”のことを「リセッシブ(Recessive)」と呼びます。

Keita_Nagashima_2-1746182323802.png

 

特長3:優先度は、ID番号が小さい方が勝つ!

 

・複数のノードが同時に送信を開始する可能性があります。この場合、優先度の高いメッセージが最初にバスへのアクセスを「獲得」します。

・以下のようにDevice AのID = 11001000111 (0x647)で、Device BのID = 11011111111 (0x6FF)が同時に送信した場合、Device AのID番号が小さいので、メッセージの送信が継続されます。Device Bが、バスが空いたときに再送するため待機します。

Keita_Nagashima_0-1746688656240.png

 

特長4:必要なデータをフィルタして受信できる (CAN, CAN FD)

 

・バス上のすべてのノードはメッセージの送信と受信の両方が可能で、常にブロードキャストされるメッセージを待ち受けています。すべてのノードにおいて、メッセージを送信するとブロードキャストされます。

・各ノードのCAN コントローラは、ブロードキャストされたメッセージのIDをチェックし、そのID が特定の範囲内にある場合はメッセージを受け入れ、範囲外のメッセージを無視するフィルタを実装できます。

・下図の例では、ノード 1 が現在の車両速度のメッセージを送信するとします。メッセージには ID 0x121 のタグが付けられているので、

  - ノード 2 は、0x100 ~ 0x1FF の範囲のID を持つデータを受け入れます

  - ノード 3 は、0x320 ~ 0x352 の範囲のID を持つデータを受け入れますが、今回のメッセージの ID はこの範囲外であるため、データを無視します

 

Keita_Nagashima_0-1746692882498.png

 

特長5:エラー検出機能による信頼性の向上

 

車載システムや産業機器など、障害が許されないシステムでは、信頼性が不可欠です。信頼性の向上には、豊富なエラー検出手法が使用されており、メッセージ レベル、ビット レベルで エラー・チェック手法が組み込まれています。これらのいずれかでエラーを検出すると、メッセージは受信されず、受信ノードからエラーフレームが生成されます。

・メッセージレベルでは、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 IDEMCUXpresso IDEモデルベース・デザイン・ツールボックス(MBDT)に含まれるサンプルをご参照ください。

 

=========================
本投稿の「Comment」欄にコメントをいただいても,現在返信に対応しておりません.
お手数をおかけしますが,お問い合わせの際には,NXP代理店,もしくはNXPまでお問い合わせください.