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

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

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

フレームタイプ

 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.