組み込みシステム設計者のためのLIN2.0マイコン実装術(前編) ――プロトコル仕様を正しく読みこなすコツ

舘 伸幸

tag: 組み込み

技術解説 2006年1月12日

 次章の"WORK FLOW CONCEPT"では,LINクラスタ開発の際のしくみについて概要が示されています(図3)

 "NODE CONCEPT"の章ではソフトウェア構造について述べられています.LIN 1.3の仕様書よりも図がわかりやすくなりました(図4).要は,図4のとおりの階層構造のソフトウェアにしなさいということです.API(application program interface)から物理リソース制御(UARTやポート,内部タイマなど,LIN通信に必要となるマイコンのハードウェアの制御)までを,通常,LINドライバと呼ばれるソフトウェアで処理します.多くの場合,半導体メーカやツール・ベンダの設計者がこの部分の開発を担当することになります.一方,セット・メーカの設計者はAPIの仕様を遵守してアプリケーションを作成します.実際には,マイコンの限られたリソースの中で実装しなくてはならないため,いろいろな妥協が必要になります.例えば,速度優先のためにグローバル変数を多用することなどが挙げられます.これには,性能と引き換えにモジュール間やプログラム階層間のインターフェースがあいまいになってしまうという副作用があります.

 アプリケーションもドライバも両方開発しなければならない設計者は,APIの境界だけは遵守しておくべきでしょう.図4のように,APIはノードの機能を実現するアプリケーションとLINプロトコルを実現するドライバの境界です.アプリケーションの中でハードウェアに依存する記述を行ったり,LINドライバ内部で管理している情報へAPIを介さずに直接アクセスするような構造をとると,移植性や拡張性が大きく損なわれるだけでなく,(ドライバ部分も含めた)ソフトウェア全体の信頼性も低下してしまいます.

f03_01.gif
図3  LINクラスタの開発フロー例
スレーブ・ノードはLINクラスタを形成するマスタに接続される.該当するノード機能ファイルは,システム定義プロセスにおいてLIN記述ファイルを生成するシステム定義ツールによって解析される.LIN記述ファイルはシステム・ジェネレータによって解析され,希望するノード(図の例ではマスタおよびスレーブ3)のLIN機能を生成する.また,LIN記述ファイルはバス・アナライザやエミュレータでクラスタ・デバッグの際に使用される.

f04_01.gif
図4 ノード構造
太線が内部的なインターフェースとなる.通常,物理層はUARTやポートである.APIが,ノードのアプリケーションとのインターフェースであり,ソフトウェア資産化のためにも仕様の堅守が重要.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日