組み込みシステム設計者のためのLIN2.0マイコン実装術(中編) ――使用するCPU性能に応じたオプション選び
● 2種類のチェックサムで,V1.3とV2.0の混在が可能に
同期バイトの次のフィールドは保護IDです.保護IDは,IDとパリティで構成される1バイトのデータです.特別なIDとして,60(0x3c)と61(0x3d)がノード・コンフィグレーションとノード診断注2,およびスリープ要求に割り当てられています.0x3cをマスタからのリクエスト用,0x3dをスレーブのレスポンス用として使用します.
保護IDの後に1~8バイトのデータが来ます.LIN 2.0以前は,データ長はIDフィールドのビット4とビット5で指定していました(LIN 1.1では必須,LIN 1.3では推奨).しかし,LIN 2.0ではクラスタの仕様で決定します.仕様書ではpublisher(レスポンスを送信するノード)とsub-scriber(レスポンスを受信するノード)によって決定すると表現されていますが,これは送信する側と受信する側のアプリケーションの仕様で決定するという意味です.
フレーム最後のフィールドはチェックサムです.LIN 2.0では2種類のチェックサムを扱います.データ・バイトのみで計算するLIN 1.3と互換性のあるものを標準チェックサム(classic checksum),保護IDバイトも計算に加えたものを拡張チェックサム(enhanced checksum)と言います.
スレーブ・ノードがLIN 1.3に対応している場合は標準チェックサムを,LIN 2.0に対応している場合は拡張チェックサムを使います.これはマスタ・ノードが管理します.仕様書群の中の"LIN Node Capability Language Speci-fication"では,プロトコル・バージョンについての記述があります.これをもとに生成した情報にしたがって,マスタはノードごとのバージョンを把握します.つまり,LIN 2.0に対応したマスタを持つLINクラスタでは,LIN 2.0とLIN 1.3のスレーブ・ノードを混在して接続することができます.
一方で,後述するイベント・トリガ・フレームを使用したいクラスタでは,LIN 1.3とLIN 2.0を混在させてはならないという規定もあるので,注意が必要です.
注2;詳細はLIN Diagnostic and Configuration Specificationで規定されている.