知っておきたいLINの基礎知識 その2:車載ネットワーク「LIN」入門(2)(2/3 ページ)
LINのフレームタイプは、「アンコンディショナル(Unconditional)」「イベントトリガー(Event Triggered)」「スポラディック(Sporadic)」「診断(Diagnostic)」の4種類となります。
- アンコンディショナルフレーム(フレームID 0〜59)
通常使われるLINのフレームタイプです。LINノード間のデータ通信に使われます。
図6 アンコンディショナルフレーム(※画像提供:ベクター・ジャパン)
- イベントトリガーフレーム(フレームID 0〜59) ※LIN2.0で追加
発生頻度の少ないイベントに使用するスレーブノード用のフレームで、1つのヘッダーに対して複数のレスポンスを定義できます。ヘッダーはLINスケジュールのとおりに送信されますが、レスポンスは必要なときにだけ送信されます。送信したノードが判断できるように、データバイトの1バイト目はPIDが格納されます。
図7 イベントトリガーフレーム(※画像提供:ベクター・ジャパン)
イベントトリガーフレームのフレームIDは、関連するスレーブノードで共有しているため、同時に複数のスレーブノードがレスポンスを送信し、衝突する可能性があります。衝突が発生した場合、衝突によって失われたレスポンスデータを再送信させるために、マスターノードはアンコンディショナルフレームを使用し、スレーブノードごとに再送信要求を行います。LIN2.1では、イベントトリガーフレームの衝突発生時に使用する「コリジョンリゾルビング(Collision Resolving)スケジュールテーブル」が追加されています。
イベントトリガーフレームの使用例として、4ドア・セントラル・ロッキング・システムでのドアロックの監視があります。イベントトリガーフレームを使用した場合、1つのフレームスロットで4つのドアロックを監視できます。フレームスロットの減少は帯域の有効活用につながり、より効率的な通信を設定できます。しかし、同時に複数のドアロックが操作された場合は衝突が発生するので、再送信が必要です。もし、ドアロックの監視にアンコンディショナルフレームを使用した場合、ほとんど変化しないドアロック信号に4つのフレームスロットを使用するので、帯域の無駄となります。このように、発生頻度の少ないイベントに対し、1つのフレームスロットで通信することで、帯域の有効活用ができます。
- スポラディックフレーム(ID 0〜59) ※LIN2.0で追加
特定のシグナルが更新された場合などに使用されるマスターノード用のフレームです。1つのフレームスロットに複数のスポラディックフレームを定義できます。ただし、同時に複数のシグナルが更新された場合は、優先順位の高いフレームを最初に送信します。シグナル更新がない場合、マスターノードはスポラディックフレームのレスポンスだけでなくヘッダーも送信しません。
図8 スポラディックフレーム(※画像提供:ベクター・ジャパン)
- 診断フレーム(フレームID 60〜61)
LINネットワークの診断、ノードコンフィグレーション、スリープモードコマンドに使用するフレームです。フレームID 60(0x3C)は、「マスターリクエスト」フレームと呼ばれ、マスターノードがレスポンスを送信します。フレームID 61(0x3D)は、「スレーブレスポンス」フレームと呼ばれ、スレーブノードがレスポンスを送信します。
図9 診断フレーム(※画像提供:ベクター・ジャパン)
- 予約フレーム(フレームID 62〜63)
フレームID 62(0x3E)と63(0x3F)は予約フレームとなっているため、LIN2.xでは使用できません。
LINフレームでエラーが検出された場合は、マスタータスク、スレーブタスクによりデータを破棄します。LINプロトコルでは、エラー処理の定義がないのでアプリケーションで定義する必要があります。LIN1.3の仕様書では、下記のエラーが定義されています。
- Bit Error
- Checksum Error
- Identifier Parity Error
- Slave Not Responding Error
- Inconsistent Synch Field Error
- Physical Bus Error
LIN2.xでは上記に加え、エラーを検知したスレーブノードがマスターノードに通知する「ステータスマネジメント」が追加されました。ステータスマネジメントについては、次回説明する予定です。
Copyright © ITmedia, Inc. All Rights Reserved.