車載アプリケーション・ソフトウェアの移植性を高める通信仕様とその実装 ――下位層を意識せずECU間のインターフェイスを実現する「OSEK COM」
このようにECUどうしが協調して,共通の機能を実現するためにはなんらかの通信手段を用いて情報を交換する必要があります(右掲のコラム「車載ネットワークの発展」を参照).この情報交換のための通信を「車載ネットワーク」,「車載プロセッサ間通信」などと呼んでいます.現世代の車載ネットワークの代表例としては,CAN(controller area network)とそのサブネットであるLIN(local interconnect network)が挙げられます.一般に車載ネットワークという場合,物理層(トランシーバなど)について議論されることが多く,比較的多くの書籍で解説されています.
しかし,アプリケーション開発者から見た場合,かならずしも物理層を意識する必要性はなく,標準的なアプリケーション層が提供された通信仕様が規定されていれば問題ありません(図2).本稿では,車載ネットワーク用のデバイスについてではなく,ネットワーク層からアプリケーション層を規定した通信仕様であるOSEK COM仕様について解説します.また,筆者ら(ヴィッツ)が開発した車載用リアルタイムOS「TOPPERS/OSEK カーネル」に対応したOSEK COMモジュールについても説明します.
図2 OSI参照モデルとOSEK COM階層
OSEK COM階層では,インタラクション層にOSI参照モデルのプレゼンテーション層,セッション層,トランスポート層を含んでいるが,機能としてはOSIで規定している階層モデルを踏襲している.そのため,アプリケーション・ソフトウェアはアプリケーション層が提供しているAPI(application program interface)を用いることで通信機能が実現でき,移植性に優れる機能を兼ね備えているといえる.