車載アプリケーション・ソフトウェアの移植性を高める通信仕様とその実装 ――下位層を意識せずECU間のインターフェイスを実現する「OSEK COM」
内部通信は,前述したように同一ECU内のタスク間通信であり,ECU間の通信を必要としません.そのため,データは図3に示されているネットワーク層やデータリンク層を経由する必要はなく,インタラクション層の内部で処理が完結します.すなわち,データ送信が指令されたメッセージは,インタラクション層内部で受信データ・フォーマットに変換して,あたかも受信があったようにアプリケーション・ソフトウェアに渡すことができます.
図4は,インタラクション層の内部構造を示した図です.インタラクション層は内部で二つの層に分かれています.上層部はAPIを提供する部位で,ここで内部通信を実現します.下層部はインタラクション層の下位層と接続して下位層への処理要求や情報を受信する部位で,ここは外部通信時のみ利用されます.図4から理解できるように,インタラクション層が提供するAPIは,内部通信と外部通信で共通です.つまり,OSEK COMを利用すれば,アプリケーション・ソフトウェアは通信相手が内部のタスクなのか,外部ECUに含まれているオブジェクトなのかを区別することなく,メッセージ通信できるというメリットがあります.
図4 OSEK COMのメッセージ送受信モデル (1)
OSEK COMの送受信モデルを示す.アプリケーション・ソフトウェアは送信メッセージAPIを用いてCOMにメッセージを送信する.COMはそのメッセージが内部通信であるか,外部通信であるかを判断し,内部通信の場合はそのまま受信メッセージAPIでアプリケーション・ソフトウェアにメッセージを送る.外部通信の場合,COMの下位層を経由してほかのECUにメッセージが送信される.COMの下位層で受信したメッセージはCOMを経由して,受信メッセージAPIにてアプリケーション・ソフトウェアにメッセージが送られる.このように,アプリケーション・ソフトウェアは受信したメッセージが内部通信,外部通信にかかわらず同一のAPIを用いて受信できる.