組み込みシステム設計者のためのLIN2.0マイコン実装術(後編) ――スレーブ・ノード用ドライバ・ソフトウェア開発のポイント
前編と中編でLIN 2.0のプロトコル仕様について説明しました.今回は,このLIN2.0プロトコルを実際にマイコンに実装するためのドライバ・ソフトウェアの設計について,事例を交えて解説します. (筆者)
前編で解説したように,LINは大きく分けて「マスタ・タスク」と「スレーブ・タスク」という二つの機能で動作します.マスタ・タスクは基本的にスケジュールに従ってヘッダを送信するのみであるのに対し,スレーブ・タスクはヘッダを受信し,その内容に従ってレスポンスを送信または受信しなければなりません(図1).さらに,スレーブ・タスクが単体で搭載されるスレーブ・ノードは,コストを低く抑えるために非力なマイコンで実現することがほとんどです.また,RC発振器など,精度の低いクロックによる動作を補正する必要が生じる場合もあります.したがって,ドライバ・ソフトウェアの設計にあたっては,マイコンの機能をうまく使いこなすくふうを施さなければなりません.
一方,マスタ・タスクは,LINプロトコルの実装よりは,むしろゲートウェイとしての動作や,OS(またはスケジューラ)との連携といったところに設計のポイントがあります.実際の動作環境ではLINクラスタが単独で動作することは少なく,マスタ・ノードは別の基幹回線(例えば,CANなど)とのゲートウェイとしての動作が主であるためです(図2).
本稿では,LINプロトコルを実装するうえで,マイコンのハードウェア制御に関する技術的ポイントが多く,また実際にノードを設計する機会がより多いスレーブ・ノード(タスク)について解説します.
とくに車載用途では,LINクラスタはCANのノードとして動作することがほとんどである.