知っておきたいLINの基礎知識 その2:車載ネットワーク「LIN」入門(2)(1/3 ページ)
前回に引き続き、LINの基礎知識を解説。今回は「LINフレームの構造」「ネットワークマネジメント」「LIN記述ファイル」について詳しく見ていこう
連載第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%)を使用した場合は、クロック誤差の調整は必要ありません。
- Protected ID(PID)フィールド
PIDフィールドは、LINフレームの識別情報を表す6ビット(0〜5ビット)のフレームIDと、2ビット(6、7ビット)のパリティの合計8ビットで構成されています(図3)。
図3 Protected IDフィールド (※ベクター・ジャパンの資料を基に作成)
・フレームIDの範囲は、6ビットで表現できる0〜63(0x3F)です。ただし、フレームID 60(0x3C)、61(0x3D)は診断フレームとして使用するなど、LIN仕様上、すでに役割が定義されているフレームIDもあります。
・パリティには、フレームIDから演算式によって求められた値が格納されます。ヘッダーを受信したノードは、ヘッダー内のパリティビットの値とフレームIDから演算した値を比較し、正しいフレームIDを受信したかどうかを確認します。
LIN1.xでは、PIDフィールドを「Identifier(ID)」フィールドと呼び、5、6ビット目(図3のID4、ID5)にレスポンスのデータ長(DLC:Data Length Code)の情報を格納する場合があります。
レスポンス
レスポンスは「データ」「チェックサム」の2つのフィールドで構成されています。データ、チェックサムともに、UARTフレーム(スタートビット/ストップビットあり)で送信します(図4)。
- データフィールド
データフィールドには、最大8バイトのデータが格納されます。 - チェックサム
チェックサムは、データを正確に受信できたかどうかを確認するために使用します。チェックサムには、各データ値の総和を反転した値が格納されます。ただし、総和の結果がけたあふれとなった場合、けた上がり値を演算結果に加算する必要があります(モジューロ256方式)。チェックサムには、「標準チェックサム(Classic Checksum)」「拡張チェックサム(Enhanced Checksum)」の2種類があります。
このように、LINフレームの先頭部分(Synchフィールド)でクロック誤差の調整をすることで、各スレーブノードはマスターノードからフレームIDを受信し、データの送受信を行うことができます。また、フレームIDやデータが正しく送受信できたかどうかを各ノードが確認するために、LINフレームにはパリティ、チェックサムが含まれています。
時間規定
LINフレームは、LINスケジュールによって各フレームの送信タイミングが重複しないように定義されます。その簡易的なハードウェア構成により、LINフレームの送信時間に「レスポンススペース」や「インターバイトスペース」と呼ばれる時間が含まれることを許容しており、これらの時間誤差を考慮してスケジュールを設計する必要があります(図5)。
LINフレームの送信に必要な時間は、以下の式で求めることができます。「公称タイミング」とはレスポンススペース、インターバイトスペースを含めず、Breakを13ビット(最小値)、Break-delimiterを1ビット(最小値)として求めたビット時間です。
レスポンススペース、インターバイトスペースなどの許容時間は、LINフレームごとに最大40%です。そのため、LINフレームの最大時間は、以下の式で求めることができます。
LINスケジュールの時間単位は、「タイムベース(Time_Base)」と呼ばれ、LINスケジュールを処理するための最小時間単位となります。例えば、タイムベースが5msとなっている場合、LINフレームの送信間隔は5ms単位で設定ができます。一般的にタイムベースは、5msまたは10msがよく使われています。
また、1つのLINフレームに必要なタイムベースの合計を「フレームスロット(Frame-Slot)」と呼びます。
Copyright © ITmedia, Inc. All Rights Reserved.