CANとは
概要
CANとは、Controller Area Networkの略称であり、ボッシュが規格を行なったネットワークです。CANは、当初車載系のLANとして開発されたものですが、現在では、その信頼性や洗練された故障検出機能などが認められ、幅広い分野で注目されているネットワークです。
特徴
近年、車載LANとしてCANが注目されはじめた理由としては、下記の5つの特徴があるからだと考えます。
- 高速アクセス
伝送長により異なりますが、CANの転送レートは、MAX1Mbpsであり、制御系LANとしては、適度なアクセススピードを実現できます。 - エラー検出
エラー検出として送信2つ受信Textが3つのエラー検出機能があり、充実しています。 - 短いメッセージ構成
メッセージとしては、0byte~8byteと短いメッセージ構成がとなっていますので再送信などの場合、再送までの時間がかなり短くなります。 - マルチマスター方式
データとしては、マルチマスタ方式での通信となります。 - バスアクセスの優先順位
バスの優先順位は、IDの低いものが優先となります。
データ長について
IDの調停が終了すると、次にデータ長コードを転送します。CANでは、データ長は0~8byteの転送が可能となっています。富士通のCANマクロでは、DLC0~DLC3へのビット設定により、転送するデータ長を決める事ができます。
~ご注意~
理解しやすい様に、実際のCAN規格の概略のみを紹介している個所もあります。
CANとは
アプリケーション
CANの適用分野としては、車載が一番に考えられますが、その他にも、CANの特徴を生かした多くのシステムに使用されはじめています。
この他にも、ノイズが多いシステム及び、データの信頼性を要求されるシステムなどにも検討を進めていただいています。

CANとは
車内での使われ方
車載LANの種類としては、情報系LAN、パワートレイン系LAN、ボディ系LANといった形で、転送レートにより、複数のLANが使用されております。
- 情報系 : 数十~数百Mbps
- パワートレイン系 : 500kbps程度
- ボディー系 : 数十kbps~125kbps程度
また、ヨーロッパのメータでは、パワートレイン系とボディー系のゲートウェイとして動作させる事が多く、High-speedCANとLow-speedCANの双方の情報を共有する必要があり、2つ以上のCANを1chipに搭載するご要求にも対応出来ます。
(富士通では、1chのCAN内蔵製品はもちろん、2chのCAN、3chのCAN内蔵製品もご紹介出来ます)

CANとは
種類
このCANコントローラの種類としては、BasicCANとFullCANがあります。
BasicCANは、一般的に送信バッファ及び受信バッファの数が少なく、マスクレジスタにも制限があり、CPUにはかなりの負荷がかかります。FullCANは、送信バッファ及び受信バッファの数が多く、マスクレジスタにおいても許容範囲が大きいため、CPUへの負荷が少なくて済みます。富士通が対応しているCANは、FullCANになります。
また、CANのコントローラフォーマットとしては、 CAN Ver2.0A、CAN Ver2.0Bパッシブ、CAN Ver2.0Bアクティブの3種類があります。CAN Ver2.0Aは、標準フォーマット(ID11ビット)の送受信が可能です。CAN
Ver2.0Bパッシブでは、標準フォーマットの送受信と拡張フォーマット(ID29ビット)の受信が可能です。CAN Ver2.0Bアクティブでは、標準フォーマットと拡張フォーマットの送受信が可能であり、どのフォーマットにも対応出来ます。
当社のCANマクロは、CAN Ver2.0BアクティブをサポートしているFull CANマクロですので、どのフォーマットにも適応出来ます。
なお、各フォーマットの対応は、ソフトで選択可能な仕様になっています。

CANとは
ボーレート
CANの仕様では、転送レートは最高1Mbpsとなっています。富士通のCANマクロを使用した場合の転送レートは、プログラマブルに設定ができ、自由に選択が可能となっています。当然、転送レートが遅くなればなるほど、CANバス線路長は、長く出来ます。
また、転送レートにより、CANマクロに接続する振動子を意識する必要があります。Bosch社の規格では、125kbps程度であれば、多少精度的に劣りますが、価格的に非常に有利なセラミック振動子でも対応出来るといった記述もあります。

CANとは
フレームの種類
CANのフレームタイプには、データフレーム、リモートフレーム、エラーフレーム、オーバロードフレームがあります。データフレームは、データを送信する場合の転送フォーマットであり、データフィールドを中心として、アービトレーション、コントロール、CRC、ACKフィールドから構成されています。
- リモートフレームは、相手から情報を要求する場合の転送フォーマットであり、データフレームにデータフィールドが無いフレーム構成になります。
- CANバスにおいて、エラーが発生した場合は、エラーフレームを発生します。このフレームは、エラーを検知した後すぐに、送信されます。
- オーバロードフレームは、最近では、あまり使用されませんが、データが次のデータ受信までに処理できなかった場合の出力フォーマットです。
富士通のCANマクロでは、この全てのフレームタイプを自動で制御する様になっていますので、CANの通信を完全にアシスト出来ます。

CANとは
ビット構成
CANの転送レートは、基本的にビットタイム区分で決定されます。

上記の様に、CANのビットタイム区分は、下記4つのセグメントで規定されます。
- SYNC_SEG(同期セグメント):
ビットタイムの短縮、延長のための同期化をとる。 - PROP_SEG(伝播遅延セグメント):
ネットワーク間の物理的ディレイを補正する。 - PHASE_SEG1,2(位相セグメント1):
発振の誤差による位相ミスずれの補正を行う。
なお、仕様的には、PROP_SEGとPHASE_SEG1については、富士通では、TSEG1として1つのセグメントとして対応しています。また、PHASE_SEG2については、TSEG2として対応しています。
サンプルポイントについては、上記の様に一般仕様と富士通の仕様でも、同じ箇所にサンプルポイントを設定できます。
CANとは
バスレベル
CANでは、データのレベルをドミナットとリセッシブと言った形で表現します。
それぞれの意味を下記に示します。
- ドミナント(優性) : デジタル信号“0”
- リセッシブ(劣性) : デジタル信号“1”
また、CANの通信調停は、IDフィールドにおいて行われ、この他のフィールドでは、通信調停はされません。通信調停では、IDの低いNode(小さいNode)が優先となり、IDの高いNode(大きいNode)は調停に負けます。
下記の場合、Node1(ID=653h)は、Node2(ID=65Bh)よりIDが低いので、Node1が優先され、Bus-LineにはNode1のIDのみが載ります。また、この時にNode2は、調停で負けますが、その後は、IDの送信を停止して受信状態に遷移します。そのため、バス調停後のCANバスへのNode2の影響はされない事になります。

CANとは
CANのエラー
CAN通信において、データ長が転送され、実際にデータ通信が始ると、当然通信においてエラーの検出が気になります。

富士通のCANコントローラでは、完全自動なエラー処理をサポートしています。
CANには、エラー処理として下記の5つのエラー検知が用意されています。
これらのエラーは、それぞれ適応エリアがあり、右記のエリア内でのみ有効となります。
- 送信側

- ビットエラー:
送信データとサンプリングデータとの相違をチェックする。 - アクノリッジエラー:
アクノリッジスロットにおいてどのレシーバもドミナントを返さなかったとき全てのノードが誤ったメッセージを受信したか、ネットワークに他のノードが接続されていないときに起きる。
- ビットエラー:
- 受信側

- CRCエラー:
受信したビット例と、CRCの指し示す値が合致しなかったとき。 - スタッフエラー:
ビットスタッフィングルールが守られなかった場合(同一レベルが5ビット以上継続したとき)。 - フォーマットエラー:
CRCディリミタ、アクノリッジディリミタ、またはEOF(End Of Frame)にてドミナントビットが検出されたとき。
- CRCエラー:
CANとは
エラーステータスについて
CANにおいて、エラーが発生した場合、CANバスにはエラーフレームを出します。また、状態にもよりますが、エラーカウントを+8します。また、正常に送受信が出来た場合は、エラーカウントが-1します。

富士通のCANには、このエラーカウント数により、下記の4つのステータスが用意されています。
- エラーアクティブ :
CANバスにとって、もっとも正常な状態を示すステータスです。 - ワーニングエラーアクティブ :
少しCANバスに異常をきたした事を示すステータスです。 - エラーパッシブ :
かなりCANバスに影響を与え重傷状態を示すステータスです。 - バスオフ :
完全にCANバスから切り離された状態です。この状態からCAN通信を復帰するには決まった手順を踏む必要があります。
また、マイコンに対しては、上記1 -> 2 -> 3 -> 4に遷移した場合には、状態遷移において、割り込み要求を発生します。そこで、プログラムにおいて、現状のステータスを確認すると、CANバスへの影響の度合いを知る事が出来ます。
CANとは
アクセプタンスマスクレジスタとは
富士通CANマクロの特徴の一つにアクセプタンスマスク用のレジスタの充実といった点があります。
アクセプタンスマスク用レジスタとは、受信時の動作で、受信メッシージIDに対してマスクを掛けるためのレジスタです。
これは、CANバスを通してメッセージを受信する場合に、複数IDのメッセージを受信する時の有効な手段の一つです。

当社のCANマクロには、アクセプタンスマスクレジスタを2つ用意しています。それぞれのマクスレジスタは、29bitのアドレスを設定できる様になっていますので、拡張フォーマットにおいても2つとも使用する事が可能です。さらに、全てのメッセージバッファにおいて、それぞれ固有にアクセプタンスマスクの設定が可能ですので、ご自由に制御して下さい。
