連載
AUTOSAR CP入門(その3)SW-C内部のふるまいを実装する:AUTOSARを使いこなす(26)(1/4 ページ)
車載ソフトウェアを扱う上で既に必要不可欠なものとなっているAUTOSAR。このAUTOSARを「使いこなす」にはどうすればいいのだろうか。連載第26回は、「AUTOSAR CP入門」のその3として「AUTOSAR SW-C内インタフェース」と「SW-C内部で利用できるその他のメカニズム」について取り上げる。
前回までのおさらい
前々回から、「スケジューラは分かるが、リアルタイムOS(RTOS)はいまひとつ」という皆さんに向けてのAUTOSAR CP(Classic Platform)入門を、おおよそ以下の構成でスタートしています。
- 処理の起動
- 処理の中身(ふるまい)の実現
- SW-Cとその他の要素(RTE、BSW、HW)とのインテグレーション
- 従来と同じことしかできないの?(いいえ、違います!)
前回掲載の「2.処理の中身(ふるまい)の実現」を要約するとこんなところでしょうか。
- 処理実行の最小事項単位はRunnable Entity(RE)であり、REは、RTEが提供するRTE Eventと呼ばれるトリガーイベント(処理実行のきっかけ)により起動される
- Software Component(SW-C)には、複数のREをまとめて入れることができる(REと関連要素の集合体)。REのまとめ方(どうまとめるか、どう切り分けるか)は自由だが、例えば、a)再利用/再配置の単位、b)Safety/Securityの管理の単位(要件やそのASIL、アクセス許可などを含む)、c)開発の実行単位などの観点で行うことができ、組織ごとあるいはプロジェクトごとの設計標準の形で整備が必要な部分の1つ
- SW-C間(より正確には、異なるSW-C Prototypeに属するRE間)のインタフェース(I/F)は「Port Interface」
- データ授受用インタフェースは、主にSender-Receiver Interface(SenderReceiverInterface、S/R)。1つのS/R I/Fには、複数の授受データ(Data Element、DE)を割り当てることができる(例:各種ライト/インジケーターのそれぞれの点消灯情報)。DE送信側(Sender Port:S/R I/FのProvide Port(PPort)側)にはRte_Write()などのAPIがあり、受信側(Receiver Port:S/R I/FのReceiver Port(RPort)側)にはRte_Read()などのAPIがある。APIは、data semantics(最新データが参照できればよいもの。さらに、RE処理を開始してから完了するまでの間に使用する入力データが変わらないようにしたい場合(RE処理開始前に値をラッチしておきたい)や処理が完全に完了してからその出力を送信したい場合に使用するimplicit accessと、ラッチする必要がなくRTE内RAM消費量を抑制したい場合や出力に変化を即反映したい場合に使用するexplicit accessの2つのアクセス方法あり)や、event semantics(取りこぼすと困るため、キューイングが必要なもの)のそれぞれに対して用意されている
- 処理の実行要求(サービスのトリガー、連載第24回の「1.2.3 AUTOSAR RTEを使用する場合」でご紹介したRTE Eventの1つであるOperationInvokedEvent(OI)の生成)用インタフェースは、主にClient-Server(ClientServerInterface、C/S)。1つのC/S I/Fには、複数のサービス処理を割り当てることができる(例:set/getなど)。各サービス処理は、引数や返値を持つことができる。ClientからServerに対してトリガーをかけた後、Server側処理が完了するまでの間のClient側のふるまいにより、同期型(synchronous、Client側が待たされるもの)、非同期型(asynchronous、待たされないもの)の2つがある。トリガーをかけるためのAPIはRte_Call()、非同期側での結果取得用APIはRte_Result()。Clientとの授受用引数・返値ともに不要であれば、C/S I/FではなくTrigger I/F(TriggerInterface、External Trigger、API:Rte_Trigger())を使用することも可能(初期化イベントや周期イベントによってトリガーされるREを、強制的に他のSW-Cからも追加でトリガーする手段として利用可能、RTE EventのExternalTriggerOccurredEvent、ETO)
- 動作モード切り替え制御用インタフェースは、Mode Switch Interface(ModeSwitchInterface)
では「2. 処理の中身(ふるまい)の実現」の続き、「AUTOSAR SW-C内インタフェース」と、併せて「SW-C内部で利用できるその他のメカニズム」のご紹介に入りましょう。
Copyright © ITmedia, Inc. All Rights Reserved.