LINネットワークは、マスターノードが全体の通信を制御するマスター・スレーブ方式を採用しています。スレーブノードは、マスターノードに従って通信を行います。
LINノードの役割には、「マスタータスク」と「スレーブタスク」の2種類があります。
マスターノードのみが持っている役割で、トークンの送信とスケジュールの管理を行います。これは、決められたタイミングでLINバスに送信要求「トークン」を送信します。
マスターノードとスレーブノードの両方が持っている役割で「データ」を送信します。データの送信は、マスタータスクから送信されるトークンをスレーブタスクが監視し、データを送信するノードがトークンの後にデータを送信します。つまり、マスターノードからトークンが送信されない限り、各ノードはデータを送信できません。
LINでは、このトークンとデータで1つの「メッセージ」を構成しています。
LINではトークンを「ヘッダー」、データを「レスポンス」、メッセージを「フレーム」と呼んでいます。ヘッダーには、フレームの意味を表す「ID」と呼ばれる情報を持っており、各ノードはこのIDを監視することでレスポンスを送信するかどうかを識別します。また、LINフレームは「メッセージアドレッシング方式」で送信されるため、1つ、複数、すべてのLINノードがLINフレームを受信できます。
マスタータスクは、ヘッダーを送信するタイミングを「LINスケジュール」で定義します。LINスケジュールには送信するIDや送信の順番、送信する時間間隔が定義されています。
つまり、マスターノードはこのLINスケジュールを使用して、LINネットワーク全体の通信の制御を行います。そのため、LINスケジュールはLINバス上で通信の衝突が発生しないように送信タイミングを定義する必要があります。
また、LINスケジュールは複数のスケジュールテーブルの定義ができます。つまり、マスターノードは「起動時の初期化モード」「通常モード」「診断モード」など、車両状態の変化に応じてスケジュールの変更を行い、送信IDや送信周期の変更ができます。
LINノードはコスト削減のため、各信号の通信速度を調整する専用の配線などを使用していません。また、LINスレーブノードのクロック回路もコストを抑えるために、誤差が大きいCR発振やリングオシレーター発振などの使用が許されています。つまり、そのままでは、LINノード間の内部クロックに誤差が生じる可能性があります。
そこで、LINではこの“クロックの誤差”を補正するために、マスターノードから送信されるヘッダーを使用します。
LINでは、マスターノードは水晶発振子などの高精度な受動素子の使用が規定されており、その許容誤差は±0.5%です。これにより、マスターノードは正確なクロックの作成ができます。この高性能な内部クロックを持つマスターノードから送信されるヘッダーに、クロック誤差を補正するための「同期信号」を入れることにより、各ノード間のクロック誤差を補正します。なお、LINフレーム(ヘッダー)の構造については、連載第2回で説明する予定です。
ちなみに、LINではスレーブノードのクロックの許容誤差は±14%(LIN1.3では、±15%)と規定されています。ただし、高精度のクロック回路を使用した場合は、許容誤差±1.5%と規定されています。
連載第1回では、LINプロトコルの策定の背景やハードウェア、通信方式について説明しました。CANと比較すると簡易的であり、さまざまな部分でコスト削減が図られていることがお分かりいただけたかと思います。
次回は、「知っておきたいLINの基礎知識 その2」として、LINフレームの構造やネットワークマネジメントなどについて説明します。ご期待ください! (次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.