「AUTOSARとは?」という問いにはさまざまな切り口での答えがある。今回は、前回に引き続き、「AUTOSARとは?/What is AUTOSAR?−2015年版−」の後編として、AUTOSARの標準化の対象である「(Software)Architecture」「Methodology」「Application Interface」の3項目の観点から説明する。
前回述べたように、「AUTOSARとは?」という問いには、さまざまな切り口での答えがある。今回は、「AUTOSARとは?/What is AUTOSAR?−2015年版−」の後編として、AUTOSARの標準化の対象である以下の3項目の観点から説明する。
前回紹介した、従来通りのAUTOSARプラットフォームである「AUTOSAR Classic Platform」のSoftware Architectureでは、ECU(電子制御ユニット)のソフトウェアをApplication Layer、Runtime Environment(RTE)、Basic Software(BSW)の3階層に分けている(図1)。ここでは、その概要のみを示す。
アプリケーション機能を実現するSoftware Component(SW-C)を配置する部分。 SW-CはApplication SW(ASW)と表現されることもある。センサーやアクチュエータに対する依存性があるSW-Cを除き、ECUハードウェアやECUへの配置には依存しない。SW-C同士、あるいはSW-CとBSW/Complex Device Driver(CDD)の間は、AUTOSAR Interfaceと呼ばれるインタフェースにより接続される。なお、SW-Cの実際の処理は、Runnable Entityあるいは略してRunnable(ランナブル)と呼ばれる要素(C言語であれば関数に相当するもの)により実現される。Runnableは、一部の場合を除き、割り込みISR(Interrupt Service Routine)レベルではなくOsのタスクレベルで動作する。
SW-C同士、あるいは、SW-CとBSW/CDDの間を互いに接続するインタフェースを実現する部分である。2つのSW-Cが、同一ECUに割り付けられている場合と異なるECUに割り付けられている場合のいずれであっても、SW-Cそのものには一切変更が必要ないようにする。SW-CのECUへの配置依存性を持たせないようにすると言い換えることもできる。必要に応じて、BSWの助けも利用する(Osや通信スタックなど)。また、BSW周期関数やRunnableの起動、各種排他制御(Exclusive Area/Critical Section)なども扱う。
「どの自動車メーカー向けか、どのECUサプライヤが開発したか、あるいは、どの種類のECUか」といったことに左右されにくい、共通の基本機能を実現する部分。R4.2 Rev. 1では計92個(うち9個はライブラリ)が定義されている。
マイコン依存部分
Os(Operating System)およびMCAL(Microcontroller Abstraction Layer、各種ドライバ群)。なお、MCALはマイコンベンダーから提供されることが多いが、必ずしも全品種に用意されているわけではない。
マイコン非依存部分
マイコン依存部分を除いた、残りすべてのBSW。通信(Communication)、不揮発メモリ(Memory)、ウオッチドッグ(Watchdog)、I/Oなどの各種スタック(stack)が用意されている。
Complex Device Driver(CDD)と表記される場合もある。AUTOSARの規格でカバーされないようなドライバ(例:マイコン固有のハードウェア機能の利用時)、リアルタイム制約の厳しい用途や従来型(non-AUTOSAR)の既存ソフトウェアを組み込む必要がある際に利用することを想定した部分である。ハードウェアへの直接アクセスや、割り込みの利用も許される。AUTOSAR Interfaceを介してSW-Cと接続することもできる。また、BSWによっては、CDDを直接接続する際の専用インタフェースがあらかじめ用意されている場合がある。
各階層のいずれも通常は主にC言語で実装されている。従って、マイコンだけではなくCコンパイラに対しても依存する。このコンパイラ依存性(コンパイラのベンダーやバージョン、オプションに対する依存性)は、主にCompiler Abstractionという仕組みにより吸収される。なお、コンパイラへの依存性の簡易的な大小関係は以下のようになる。
Os>MCAL>その他のBSW
RTEやBSWは、基本的に自動コード生成される。また、BSWでは設定により変化する生成コードの他に、不変の固定コード部分を持つ場合がある。それらの提供形態としては、ソースコード形式およびライブラリ形式が存在する。相対的に後者の方が、よりコンパイラ依存性が高くなる。ここでの依存性は見落とされがちであり、注意が必要である。
Copyright © ITmedia, Inc. All Rights Reserved.