AUTOSAR 不揮発性メモリのモデル化
AUTOSAR 規格では、AUTOSAR ソフトウェア コンポーネントが車載システムの不揮発性メモリに対して読み取りと書き込みを実行できる暗黙的および明示的なメカニズムを定義しています。
"暗黙的なアクセス" では、送信側/受信側ポートまたはデータ ストア メモリ ブロックを使用して RAM にある AUTOSAR 不揮発性メモリ ブロックのコピーにアクセスします。
"明示的なアクセス" では、クライアント/サーバー呼び出しを使用して AUTOSAR 不揮発性メモリ ブロックに直接アクセスします。
AUTOSAR 不揮発性メモリへの暗黙的なアクセス
AUTOSAR 不揮発性メモリへの暗黙的なアクセスでは、起動イベントを使用して RAM の不揮発性メモリ ブロックの優先順位変更またはミラーリングを開始します。不揮発性メモリの RAM コピーを使用することにより、高速なアクセスをサポートできます。
ECU の電源を入れて起動イベントが発生すると、バックグラウンド タスクにより、メモリ ブロックが不揮発性メモリ領域から RAM にコピーされます。
システムの実行中、ソフトウェア コンポーネントは RAM の速度で不揮発性データにアクセスできます。
シャットダウン イベントが発生すると、シャットダウン前のバックグラウンド タスクにより、優先順位が低くなったかミラーされたメモリ ブロックが不揮発性メモリ領域にコピーされます。
AUTOSAR コンポーネント モデルの不揮発性メモリに対する読み取りと書き込みの暗黙的なアクセスをモデル化するには、ポートベースの不揮発性 (NV) データ通信または NVRAM ミラー ブロックのいずれかを構成します。
ポートベースの不揮発性 (NV) データ通信では、AUTOSAR ソフトウェア コンポーネントは AUTOSAR の不揮発性コンポーネントに対してデータの読み取りと書き込みを行います。NV データ通信を実装するために、AUTOSAR ソフトウェア コンポーネントは NV データを送受信するポートを定義します。Simulink® では、以下のことができます。
AUTOSAR NV データ インターフェイスとポートを ARXML ファイルからインポートする。
AUTOSAR NV インターフェイスとポートを作成し、Simulink 入力端子と出力端子を AUTOSAR NV ポートにマッピングする。
送信側/受信側インターフェイスに説明されている同じ手順で、AUTOSAR NV ポートを Simulink 入力端子と出力端子でモデル化します。
AUTOSAR NV データ インターフェイスとポートの C コードおよび ARXML ファイルを生成する。
ポートベースの NV データ通信では、NV データ アクセスをソフトウェア コンポーネント間で分散または調整できます。たとえば、不揮発性ソフトウェア コンポーネントに 1 つのコンポーネントから書き込んでいるときに、複数のコンポーネントで同じ NV データを読み取ることができます。
詳細については、AUTOSAR 不揮発性データ通信の設定を参照してください。
NVRAM ミラー ブロックを構成するために、AUTOSAR ソフトウェア コンポーネントはデータ ストア メモリ ブロックを AUTOSAR 型のインスタンスごとのメモリ (ArTypedPerInstanceMemory) にマッピングし、オプション [NeedsNVRAMAccess] を選択します。このオプションは、ArTypedPerInstanceMemory が RAM ミラー ブロックであり、NVRAM Manager (NvM) マネージャー モジュールにサービスを要求することを示します。Simulink では、以下のことができます。
AUTOSAR NVRAM ミラー ブロックを ARXML ファイルからインポートする。
データ ストア メモリ ブロックを AUTOSAR NVRAM ミラー ブロックとして構成するモデル コンテンツを作成する。
AUTOSAR NVRAM ミラー ブロックの C コードと ARXML ファイルを生成する。AUTOSAR ランタイム環境のジェネレーターでメモリが割り当てられ、コンポーネントがメモリにアクセスするための API が提供されます。
詳細については、AUTOSAR のインスタンスごとのメモリの設定を参照してください。
AUTOSAR 不揮発性メモリへの明示的なアクセス
AUTOSAR Classic Platform の場合、AUTOSAR 規格では、重要なサービスを AUTOSAR ランタイム環境 (RTE) で実行される基本ソフトウェア (BSW) の一部として定義しています。例としては、NVRAM Manager や Diagnostic Event Manager によって提供されるサービスがあります。AUTOSAR RTE では、AUTOSAR ソフトウェア コンポーネントは通常、クライアント/サーバー通信を使用して BSW サービスにアクセスします。
AUTOSAR 不揮発性メモリへの明示的なアクセスでは、NVRAM Manager (NvM) サービスの呼び出しを使用して AUTOSAR 不揮発性メモリ領域に直接アクセスします。明示的なアクセスは、エア バッグ イベントなどのイベントへの応答や、シャットダウン シーケンスがないコントローラーなどの各タイム ステップで使用できます。
AUTOSAR コンポーネントおよびサービスのシステムレベルでのモデル化をサポートするために、AUTOSAR Blockset には AUTOSAR Basic Software ブロック ライブラリが備わっています。このライブラリには、NvMAdminCaller や NvMServiceCaller など、NVM サービス インターフェイスに対するコンポーネント呼び出しをモデル化するための事前に構成された Function Caller ブロックが含まれています。
AUTOSAR ソフトウェア コンポーネントで AUTOSAR NVM サービス インターフェイスに対するクライアント呼び出しを実装するには、Basic Software ブロックを AUTOSAR モデルにドラッグ アンド ドロップします。[クライアント ポート名] や [オペレーション] などの各ブロックのパラメーターには、値が事前に入力されています。オペレーションの選択を編集すると、ブロックの入力と出力が対応するようにソフトウェアが更新されます。
AUTOSAR ソフトウェア コンポーネントで追加されたブロックを設定するには、モデルのコード マッピング エディター ビューで [更新] ボタン をクリックします。ソフトウェアで AUTOSAR クライアント サービス インターフェイス、オペレーションおよびポートが作成され、各 Simulink 関数呼び出しが AUTOSAR クライアント ポートとオペレーションにマッピングされます。
詳細については、AUTOSAR NVRAM Manager サービスの呼び出しの構成を参照してください。
BSW サービスを呼び出す AUTOSAR コンポーネント モデルのシミュレーションを実行するには、含まれるコンポジション、システムまたはハーネス モデルを作成します。その含まれるモデルで、コンポーネントによって呼び出される NvM サービス オペレーションの参照実装を提供します。
AUTOSAR Basic Software ブロック ライブラリには NVRAM Service Component ブロックが含まれます。このブロックは、NvM サービス オペレーションの参照実装を提供します。NvM サービスに対するコンポーネント呼び出しのシミュレーションをサポートするには、含まれているモデル内にこれらのブロックを含めます。ブロックは次の 2 つの方法のいずれかで挿入できます。
Simulink Test™ ハーネス モデルを作成することにより、自動的にブロックを挿入する。
含まれるコンポジション、システムまたはハーネス モデルに手動でブロックを挿入する。
詳細については、シミュレーション用の AUTOSAR 基本ソフトウェア サービス実装の構成およびAUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションを参照してください。
参考
NvMAdminCaller | NvMServiceCaller | NVRAM Service Component