連載
» 2008年09月10日 00時00分 公開

車載ネットワーク“CANの仕組み”教えます(4):実装や試験で役立つ物理層から見るCANの仕組み (3/3)

[増田浩史(ベクター・ジャパン),@IT MONOist]
前のページへ 1|2|3       

CANビットタイミング −通信調停と識別のためのタイミング制御

 続いて、送信遅延時間がどのように通信に影響を与えるのかについて解説する。これについては、アクナレッジ(ACK)部分で考えてみると分かりやすい。

 送信側がアクナレッジスロットを送信(実際にはリセッシブ状態)し、それを受信側が認識して、アクナレッジを送信(正常受信をし、ドミナントを送信する場合)。送信側が受信側から送信されたアクナレッジをアクナレッジスロットのサンプリングポイントで認識できれば正常に通信が可能となる(図10)。


通信調停と識別のためのタイミング制御 図10 通信調停と識別のためのタイミング制御
※ベクター・ジャパンの資料を基に作成
  • ノード(1)からノード(2)への信号の遅れは、下記の要素により生ずる(図10)。
    1.出力ドライバのディレイ時間(tCAN + tTX)
    2.バス遅延時間tBus
    3.入力ドライバ(コンパレータなど)のディレイ時間(tCAN + tRX)
  • もし、ノード(2)ノード(1)上で同期を取り、双方のノードが通信調停されている場合、ノード(1)はバスをサンプリングする前にノード(2)の情報を受け取らなければならない。
  • 正しい動作のため、下記の条件が満たされなければならない。
tProp_seg ≥ 2 × ( ( tCAN + tTX ) + tBus + ( tCAN + tRX ) )


 単純化のためには、(tACAN + tATX) = (tBCAN + tBTX)かつ(tACAN + tARX) = (tBCAN + tBRX)とならなくてはならない。

※「tACAN」「tATX」「tARX」は、ノード(1)
※「tBCAN」「tBTX」「tBRX」は、ノード(2)


CANビットタイミング−同期

 セグメントの種類と送信遅延時間などについての解説を行ったが、これらが使用される状況はタイミング制御(同期)が主である。送信側ノードがデータを送信して、そのデータの開始部分が受信側ノードの「SYNC_SEG(同期セグメント)」内に収まっていれば送信側ノード/受信側ノードともに同期が取れているといえる。しかし、何らかの理由で送信側ノードと受信側ノードの同期がずれてしまう場合がある。

 送信側ノードがデータを送信して、そのデータの開始部分より受信側ノードの「SYNC_SEG(同期セグメント)」が速い場合は、受信側ノードの「TSEG_1」をCANコントローラに設定される「SJW」分を加えて次回より同期できるようにしている。

 送信側ノードがデータを送信して、そのデータの開始部分より受信側ノードの「SYNC_SEG(同期セグメント)」より遅い場合は、送信側ノードのデータ開始部分で受信側ノードが次のビットを開始し(結果的に前ビットの長さが短くなる)、それにより同期を行う。

 このタイミング制御は、図11のように行われている。

同期 図11 同期
※ベクター・ジャパンの資料を基に作成

 図11におけるバス上の3つのノードの動きは以下のとおりだ。

  • ノード(1)は完全に同期しており、エッジは「tSYNC」スロットの内側にある。
  • ノード(2)はタイミングが早過ぎる。リセッシブからドミナントへのエッジが発生した際、「tTSEG_1」の2サイクル目はアクティブである。この誤った同期は、2つの追加されたサイクルによる「tTSEG_1」の拡張により補正される。図11は、次のエッジが希望どおり「tSYNC」に収まることを示す。
  • ノード(3)は遅過ぎる。リセッシブからドミナントへのエッジが発生した際、「tTSEG_2」の最後のサイクルは依然アクティブである。このセグメントは(「tTSEG_2」の短縮により)「tSYNC」にセットされる。

ルール

  • リセッシブからドミナントへのエッジのみが再同期に使われる。
  • サンプリングポイントの前のエッジが「tTSEG_1」の延長をもたらす。
  • サンプリングポイントの後のエッジが「tTSEG_2」の短縮をもたらす。
  • ビットタイムの延長、短縮のためのサイクルの最大値は、再同期ジャンプ幅「SJW」以下となる。SJWは、CANコントローラで設定される。

通信速度と通信可能距離

 通信速度と通信可能距離については図12のようになる。

通信速度と通信可能距離 図12 通信速度と通信可能距離
※ベクター・ジャパンの資料を基に作成

 遅延時間によって若干異なるが、低速になれば通信可能距離は長くなっていく。通信速度が低速になれば、1ビットの長さは長くなるため、アクナレッジスロット部分で考えてみると、アクナレッジスロット−アクナレッジの送受信に対する許容時間が多く取れ、通信可能距離も長くできる。CANを採用するときには用途や通信可能距離に応じた通信速度の選択をすべきである。



 今回は、いままでと違い制御だけではなく、実際の通信線の仕組みなど(物理層)について解説した。これまでのCANプロトコルの内容と併せCANの概要についての解説はひとまず終了となる。しかしながら、こうした概要だけでは実際に使用する状況において、「どのように使えるのか?」など具体的な使用方法などがつかみにくいと思う。そこで、次回は実践でも役立つ「実務的な内容」について解説する予定だ。(次回に続く)

【 筆者紹介 】
増田 浩史(ますだ ひろし)
ベクター・ジャパン株式会社 トレーニング部 チームリーダー

ベクター・ジャパンのトレーニング部 講師としてCAN、LINといったさまざまな通信プロトコルや開発ツールを対象としたトレーニングサービスに従事。受講者のレベルに応じて最適なトレーニングを提供できるように日々業務に取り組んでいる。

ベクター・ジャパン
https://www.vector.com/jp/ja/
トレーニングサービスの概要
https://vector-academy.com/vj_training_jp.html


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.