連載
» 2010年10月08日 00時00分 UPDATE

車載ネットワーク「LIN」入門(2):知っておきたいLINの基礎知識 その2 (1/3)

前回に引き続き、LINの基礎知識を解説。今回は「LINフレームの構造」「ネットワークマネジメント」「LIN記述ファイル」について詳しく見ていこう

[倉田正人(ベクター・ジャパン),@IT MONOist]

 連載第1回「知っておきたいLINの基礎知識 その1」では、LINの基礎知識としてLINプロトコルの特徴やハードウェア、通信方式について解説しました。

 今回は、「LINフレームの構造」「ネットワークマネジメント」「LIN記述ファイル(LDF:LIN Description File)」について説明します。

1.フレーム構造

 前回説明したとおり、LINは「マスター・スレーブ方式」で通信を行います。1つのLINフレームは「ヘッダー」と「レスポンス」で構成されており、ヘッダーは「マスタータスク(マスターノード)」から送信され、レスポンスは「スレーブタスク(マスターノードまたはスレーブノード)」から送信されます。

 ここでは、ヘッダーとレスポンスのフレーム構成を説明します。

ヘッダー

 ヘッダーは「Break」「Synch」「Protected ID(PID)」の3つのフィールドで構成されています(図1)。

ヘッダーの構成 図1 ヘッダーの構成(※ベクター・ジャパンの資料を基に作成)
※LIN1.xは、プロトコルバージョンLIN1.0〜1.3、LIN2.xはLIN2.0〜2.1を表す。BreakフィールドとPIDフィールドは、LINプロトコルバージョンによって名称が異なる
  • Breakフィールド
     Breakフィールドは、ほかのフィールドと異なり、意図的にフレーミングエラー(スタートビットから数えて10ビット目にストップビットが検出されない場合に発生)を起こすことにより、すべてのスレーブノードにLINフレームの開始を通知します。

     BreakフィールドはBreakとBreak-delimiterで構成され、Breakは13ビット以上のドミナント、Break-delimiterは1ビット以上のリセッシブとなります。Break-delimiterは、Breakの終わりを表します。

  • Synchフィールド
     連載第1回の同期方法で説明した「同期信号」がSynchフィールドです。Synchフィールドは、各ノード間のクロック誤差の補正に使用し、0x55 UARTフレーム(スタートビット/ストップビットあり)を送信します。スレーブノードは、立ち下がりエッジの最初と最後の時間差を8で割ることによって算出された1ビットの時間間隔(TBit)を基に、各ノードのクロック誤差を調整します(図2)。ただし、高精度のクロック回路(許容誤差±1.5%)を使用した場合は、クロック誤差の調整は必要ありません。
Synchフィールド 図2 Synchフィールド(※ベクター・ジャパンの資料を基に作成)※Synchフィールドにより、各ノードの通信速度をマスターノードの通信速度に合わす。これにより各ノードのクロック誤差が調整される
  • Protected ID(PID)フィールド
     PIDフィールドは、LINフレームの識別情報を表す6ビット(0〜5ビット)のフレームIDと、2ビット(6、7ビット)のパリティの合計8ビットで構成されています(図3)。
Protected IDフィールド 図3 Protected IDフィールド (※ベクター・ジャパンの資料を基に作成)
・フレームIDの範囲は、6ビットで表現できる0〜63(0x3F)です。ただし、フレームID 60(0x3C)、61(0x3D)は診断フレームとして使用するなど、LIN仕様上、すでに役割が定義されているフレームIDもあります。
・パリティには、フレームIDから演算式によって求められた値が格納されます。ヘッダーを受信したノードは、ヘッダー内のパリティビットの値とフレームIDから演算した値を比較し、正しいフレームIDを受信したかどうかを確認します。
ay_lin02_04.gif

 LIN1.xでは、PIDフィールドを「Identifier(ID)」フィールドと呼び、5、6ビット目(図3のID4、ID5)にレスポンスのデータ長(DLC:Data Length Code)の情報を格納する場合があります。

レスポンス

 レスポンスは「データ」「チェックサム」の2つのフィールドで構成されています。データ、チェックサムともに、UARTフレーム(スタートビット/ストップビットあり)で送信します(図4)。

レスポンス 図4 レスポンス(※ベクター・ジャパンの資料を基に作成)
  • データフィールド
     データフィールドには、最大8バイトのデータが格納されます。

  • チェックサム
     チェックサムは、データを正確に受信できたかどうかを確認するために使用します。チェックサムには、各データ値の総和を反転した値が格納されます。ただし、総和の結果がけたあふれとなった場合、けた上がり値を演算結果に加算する必要があります(モジューロ256方式)。チェックサムには、「標準チェックサム(Classic Checksum)」「拡張チェックサム(Enhanced Checksum)」の2種類があります。
標準チェックサム
→演算対象は、すべてのデータバイト
→LIN1.xのすべてのフレームIDに使用
→LIN2.xでは、診断フレーム(フレームID 60〜61)のみ使用
ay_lin02_06.gif

拡張チェックサム
→演算対象は、PIDおよびすべてのデータバイト
→LIN2.xのフレームID 0〜59に使用
ay_lin02_07.gif

 このように、LINフレームの先頭部分(Synchフィールド)でクロック誤差の調整をすることで、各スレーブノードはマスターノードからフレームIDを受信し、データの送受信を行うことができます。また、フレームIDやデータが正しく送受信できたかどうかを各ノードが確認するために、LINフレームにはパリティ、チェックサムが含まれています。

時間規定

 LINフレームは、LINスケジュールによって各フレームの送信タイミングが重複しないように定義されます。その簡易的なハードウェア構成により、LINフレームの送信時間に「レスポンススペース」や「インターバイトスペース」と呼ばれる時間が含まれることを許容しており、これらの時間誤差を考慮してスケジュールを設計する必要があります(図5)。

時間規定 図5 時間規定(※ベクター・ジャパンの資料を基に作成)

 LINフレームの送信に必要な時間は、以下の式で求めることができます。「公称タイミング」とはレスポンススペース、インターバイトスペースを含めず、Breakを13ビット(最小値)、Break-delimiterを1ビット(最小値)として求めたビット時間です。

ay_lin02_a.gif

 レスポンススペース、インターバイトスペースなどの許容時間は、LINフレームごとに最大40%です。そのため、LINフレームの最大時間は、以下の式で求めることができます。

ay_lin02_b.gif

 LINスケジュールの時間単位は、「タイムベース(Time_Base)」と呼ばれ、LINスケジュールを処理するための最小時間単位となります。例えば、タイムベースが5msとなっている場合、LINフレームの送信間隔は5ms単位で設定ができます。一般的にタイムベースは、5msまたは10msがよく使われています。

 また、1つのLINフレームに必要なタイムベースの合計を「フレームスロット(Frame-Slot)」と呼びます。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.