Main Content

AUTOSAR コンポーネント モデルから参照されるサブモデルのキャリブレーション データのマッピング

AUTOSAR 設計の Simulink® 実装では、モデル参照によって、規模の大きいまたは数の多い AUTOSAR コンポーネントを階層的に整理し管理することができます。サブモデル内でアルゴリズムを定義し、それを繰り返し参照できます。参照されるモデルは、それを使用するモデルとは独立してコンパイルします。これによって、モジュラー開発、複数のコンポーネントや設計間での再使用と共有、インクリメンタルなコード生成が可能となります。

AUTOSAR モデル参照の階層内の任意のモデルについて、モデル データを実行時のキャリブレーション用に構成できます。AUTOSAR ソフトウェア コンポーネント モデルから参照されるサブモデルで、コード マッピング エディターまたは同等の機能を使用して、パラメーター、データ ストア、信号、状態をマッピングできます。サブモデルにマッピングされた内部データはメモリ セクションで使用でき、ソフトウェアインザループ (SIL) のテストおよびプロセッサインザループ (PIL) のテストに、最上位のモデルから、または AUTOSAR ランタイム環境でのキャリブレーションに使用できます。

サブモデルのデータ マッピングのワークフロー

Simulink サブモデル要素を AUTOSAR ソフトウェア コンポーネント要素にマッピングするには、以下の手順に従います。

  • サブモデルを、AUTOSAR ソフトウェア コンポーネント モデルから参照されるモデルとして構成します。AUTOSAR コンポーネントのクイック スタートまたは AUTOSAR 関数 autosar.api.create を使用します。

  • AUTOSAR コード パースペクティブで、コード マッピング エディターを使用してサブモデルの内部データを構成します。

  • サブモデルの内部データの実行時キャリブレーションをサポートする C コードと AUTOSAR XML (ARXML) ファイルを生成するには、そのサブモデルを参照するコンポーネント モデルを開いてビルドします。

この例では、AUTOSAR ソフトウェア コンポーネント モデルから参照されるモデルを選択します。この例では autosar_subcomponent を使用します。これは、AUTOSAR コンポーネント モデル autosar_component で 2 回参照されます。これらのモデルは、スクリプト例Configure Subcomponent Data for AUTOSAR Calibration and Measurementに関連付けられています。モデルは matlabroot/examples/autosarblockset/main (cd でフォルダーに移動) から作業フォルダーへコピーできます。

サブモデルをスタンドアロンで、つまり別のモデル ウィンドウで開きます。モデル ウィンドウで、[アプリ] タブから AUTOSAR Component Designer アプリを開きます。サブモデルがマッピングされている場合は、AUTOSAR コード パースペクティブで開きます。

サブモデルがマッピングされていない場合は、AUTOSAR コンポーネントのクイック スタートが開きます。クイック スタートの手順に従います。[Set Component] ペインで [Model referenced from AUTOSAR software component model] を選択します。

クイックスタート手順を完了して [終了] をクリックすると、サブモデルが AUTOSAR コード パースペクティブで開きます。

AUTOSAR コード パースペクティブでコード マッピング エディターを使用して、以下を行います。

  • 個別のパラメーターを PerInstanceParameters にマッピングする。

  • AUTOSAR 変数にマッピングしなければならないブロック信号がコード マッピング エディターに表示されない場合は、信号を選択し、それらをマッピング テーブルに追加します。

  • 個別の信号、状態、およびデータ ストアを ArTypedPerInstanceMemorys にマッピングする。

  • [Mapped To] プロパティをパラメーター、信号、状態、またはデータストアに設定した後、Icon to configure additional code mappings properties アイコンをクリックして、他の AUTOSAR コード属性とキャリブレーション属性を表示および変更します。

Simulink Coder™ および Embedded Coder® ソフトウェアがある場合は、サブモデルを参照するコンポーネント モデルをビルドできます。ビルドすると、エクスポートされた ARXML ファイルと生成された C コードは、サブモデルの内部データの実行時キャリブレーションをサポートします。最上位モデルにエクスポートされた ARXML ファイルにはサブモデルのパラメーター、信号、状態、データストアの記述が、サブモデルで使用されるソフトウェアのアドレス メソッドとともに含まれています。生成された C コードはサブモデルの内部データを参照します。モデルのビルドでは SIL テストと PIL テスト、および AUTOSAR ランタイム環境でのキャリブレーションでサブモデル データにアクセスできるようにするマクロも生成されます。詳細については、検証と展開のためのサブモデルのデータ マクロの生成を参照してください。

サブモデルを AUTOSAR ソフトウェア コンポーネント モデルから参照されるモデルとしてプログラムで構成するには、AUTOSAR 関数 autosar.api.create を呼び出し、名前と値のペアの引数 'ReferencedFromComponentModel',true を指定します。以下に例を示します。

hModel = 'autosar_subcomponent';
open_system(hModel);
autosar.api.create(hModel,'default','ReferencedFromComponentModel',true);

サブモデルと共に使用するソフトウェアのアドレス メソッドの共有定義をプログラムで追加するには、AUTOSAR インポーター関数 updateModel を呼び出し、共有定義を含む AUTOSAR XML (ARXML) ファイルの名前を指定します。次に例を示します。

ar = arxml.importer('SwAddrMethods.arxml');
updateModel(ar,hModel);

サブモデルのパラメーターの AUTOSAR コンポーネント パラメーターへのマッピング

コード マッピング エディターの [Parameters] タブで、Simulink サブモデルのパラメーターを、AUTOSAR の実行時キャリブレーション用に AUTOSAR のインスタンスごとのパラメーターにマッピングできます。マッピングできるモデル ワークスペース パラメーターの例には、次が含まれます。

  • Simulink パラメーター オブジェクト

  • Simulink ルックアップ テーブル オブジェクト

  • Simulink ブレークポイント オブジェクト

ルックアップ テーブル オブジェクトとブレークポイント オブジェクトを AUTOSAR 内部キャリブレーション パラメーターにマッピングすることで、AUTOSAR パラメーターを統合ルックアップおよび分散ルックアップ用にモデル化できます。詳細については、AUTOSAR キャリブレーションおよび測定用のルックアップ テーブルの設定を参照してください。

モデルでモデル ワークスペース パラメーターを作成した後、たとえば、モデル エクスプローラーを使用して、コード マッピング エディターを開き、[Parameters] タブを選択します。Simulink モデル ワークスペース パラメーターを選択し、それらを AUTOSAR コンポーネントのインスタンスごとのパラメーターにマッピングします。

詳細については、AUTOSAR インスタンスごとのパラメーターとしてのモデル ワークスペース パラメーターの設定を参照してください。

[Parameters] タブに、AUTOSAR パラメーターにマッピングできる各 Simulink モデル ワークスペース パラメーターがリストされます。次のことを実行できます。

  • パラメーターを選択し、AUTOSAR パラメーター タイプ [PerInstanceParameter] または [Auto] のメニュー値を選択してマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[Auto] を指定します。

    たとえば、サブモデル autosar_subcomponent[Parameters] タブを次に示します。AUTOSAR ソフトウェア コンポーネント モデル autosar_component には 2 つの autosar_subcomponent のインスタンスが含まれています。

  • パラメーター タイプ [PerInstanceParameter] を選択する場合、Icon to configure additional code mappings properties アイコンをクリックして、パラメーターの他の AUTOSAR コードとキャリブレーション属性を表示および変更します。

    属性目的
    SwAddrMethodAUTOSAR パラメーターで有効としてリストされている中から SwAddrMethod 名を選択します。たとえば、サブモデル autosar_subcomponent は CALIB_32 を定義します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR パラメーターをグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
    SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR パラメーターにアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
    DisplayFormatAUTOSAR パラメーターの表示形式を指定します。例: %5.1f。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。

サブモデルのデータ ストアの AUTOSAR 変数へのマッピング

コード マッピング エディターの [Data Stores] タブで Simulink サブモデルのデータ ストアのメモリ ブロックを、AUTOSAR の実行時キャリブレーション用に AUTOSAR 型のインスタンスごとのメモリ要素にマッピングできます。

Data Store Memory ブロックをモデルで作成したら、コード マッピング エディターを開いて [Data Stores] タブを選択します。データ ストアを選択し、それらを AUTOSAR 型のインスタンスごとのメモリ要素にマッピングします。詳細については、AUTOSAR のインスタンスごとのメモリの設定を参照してください。

[Data Stores] タブには AUTOSAR 変数にマッピングできる各 Simulink データ ストアがリストされます。次のことが可能です。

  • データ ストアを選択し、AUTOSAR 変数タイプ [ArTypedPerInstanceMemory]、または [Auto] のメニュー値を選択してマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[Auto] を指定します。

    たとえば、サブモデル autosar_subcomponent[Local Data Stores] タブを次に示します。AUTOSAR ソフトウェア コンポーネント モデル autosar_component には 2 つの autosar_subcomponent のインスタンスが含まれています。

  • [ArTypedPerInstanceMemory] の変数型を選択する場合、Icon to configure additional code mappings properties アイコンをクリックして、変数の他の AUTOSAR コードとキャリブレーション属性を表示および変更します。

    属性目的
    ShortNameAUTOSAR 変数の省略名を指定します。例: dsmsig。指定しない場合、ARXML エクスポートで省略名が生成されます。
    NeedsNVRAMAccessこのオプションをオンまたはオフにして、AUTOSAR 変数がプロセッサの不揮発性 RAM へのアクセスを必要とするかどうかを指定します。インスタンスごとのメモリを特定の NVRAM ブロックのミラー ブロックとして設定するには、このオプションをオンにします。
    SwAddrMethodAUTOSAR 変数で有効としてリストされている中から SwAddrMethod 名を選択します。たとえば、サブモデル autosar_subcomponent は VAR_INIT_32 を定義します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR 変数をグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
    RestoreAtStartこのオプションをオンまたはオフにして、起動時に状態を読み取るかどうかを指定します。
    StoreAtShutdownこのオプションをオンまたはオフにして、シャットダウン時に状態を書き出すかどうかを指定します。
    SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR 変数にアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
    DisplayFormatAUTOSAR 変数の表示形式を指定します。例: %5d。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。

AUTOSAR 変数へのサブモデル信号と状態のマッピング

コード マッピング エディターの [Signals/States] タブで Simulink サブモデル ブロック信号と状態を、AUTOSAR の実行時キャリブレーション用に AUTOSAR 型のインスタンスごとのメモリ要素にマッピングできます。

コード マッピング エディターで、状態オーナー ブロックに対応する Simulink ブロック状態をマッピングに使用できます。

Simulink ブロックの信号をマッピング用に使用できるようにするには、コード マッピング エディターのボタンまたはモデル キューを使用します。

  • モデル キャンバスで、1 つ以上の信号を選択します。コード マッピング エディターを開き、[信号/状態] タブで、[追加] ボタン をクリックします。

  • モデルのキャンバスで、信号を選択します。表示された省略記号にカーソルを置き、モデル キュー [選択した信号をコード マッピングに追加] を選択します。

または、MATLAB® 関数 addSignal を呼び出します。

ブロック信号を選択して AUTOSAR 信号のマッピングに追加した後、コード マッピング エディターを開いて、[信号/状態] タブを選択します。ブロック信号と状態を選択し、それらを AUTOSAR 型のインスタンスごとのメモリ要素にマッピングします。詳細については、AUTOSAR のインスタンスごとのメモリの設定を参照してください。

[信号/状態] タブには、AUTOSAR 変数にマッピングできる、各 Simulink ブロック信号と状態がリストされます。次のことが可能です。

  • Simulink 信号または状態を選択し、AUTOSAR 変数タイプ [ArTypedPerInstanceMemory]、または [Auto] のメニュー値を選択してマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[Auto] を指定します。

    たとえば、サブモデル autosar_subcomponent[Signals/States] タブを示します。AUTOSAR ソフトウェア コンポーネント モデル autosar_component には 2 つの autosar_subcomponent のインスタンスが含まれています。

  • [ArTypedPerInstanceMemory] の変数型を選択する場合、Icon to configure additional code mappings properties アイコンをクリックして、変数の他の AUTOSAR コードとキャリブレーション属性を表示および変更します。

    属性目的
    ShortName

    AUTOSAR 変数の省略名を指定します。例: lutsig。指定しない場合、ARXML エクスポートで省略名が生成されます。

    • 信号の場合、自動生成される省略名が信号名と異なる場合があります。

    • 状態の場合、自動生成される省略名は状態名 (存在する場合) に基づきます。状態に名前がない場合、生成される名前はブロック名と異なる場合があります。

    SwAddrMethodAUTOSAR 変数で有効としてリストされている中から SwAddrMethod 名を選択します。たとえば、サブモデル autosar_subcomponent は VAR_INIT_32 を定義します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR 変数をグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
    SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR 変数にアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
    DisplayFormatAUTOSAR 変数の表示形式を指定します。例: %1d。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。

AUTOSAR 信号マッピングから Simulink ブロック信号を削除するには、コード マッピング エディター ボタンまたはモデル キューを使用します。

  • モデル キャンバスまたは [信号/状態] タブで、1 つ以上の信号を選択します。[信号/状態] タブで、[削除] ボタン をクリックします。

  • モデルのキャンバスで、信号を選択します。表示された省略記号にカーソルを置いて、モデル キュー [選択した信号をコード マッピングから削除] を選択します。

または、MATLAB 関数 removeSignal を呼び出します。

検証と展開のためのサブモデルのデータ マクロの生成

サブモデルを参照する AUTOSAR ソフトウェア コンポーネント モデルをビルドするとき、エクスポートされた ARXML ファイルと生成された C コードは、サブモデルの内部データの実行時キャリブレーションをサポートします。

  • 最上位モデルにエクスポートされた ARXML ファイルにはサブモデルのパラメーター、信号、状態、データストアの記述が、サブモデルで使用されるソフトウェアのアドレス メソッドとともに含まれています。

  • 生成された C コードはサブモデルの内部データを参照します。

モデルのビルドでは、参照しているコンポーネント モデルからの SIL テストと PIL テスト、および AUTOSAR ランタイム環境でのキャリブレーションでサブモデルにアクセスできるようにするマクロも生成されます。AUTOSAR コンポーネント モデルのビルドにマッピングされた内部データがある参照モデルが含まれている場合、生成されるサブモデルのヘッダー ファイルは、これらのマクロを参照します。

  • INCLUDE_RTE_HEADER — RTE コンポーネント ヘッダーを含むかどうかを示すフラグ。

  • RTE_COMPONENT_HEADER — サブモデルの内部パラメーター、信号、状態、データ ストアの定義を含むヘッダー ファイルの名前。

たとえば、2 つの autosar_subcomponent のインスタンスを含む AUTOSAR ソフトウェア コンポーネント モデル autosar_component をビルドする場合、生成されるファイル autosar_subcomponent.h にはこのコードが含まれます。

#ifdef INCLUDE_RTE_HEADER
#include RTE_COMPONENT_HEADER
#endif

マッピングされたサブモデルを参照する AUTOSAR ソフトウェア コンポーネント モデルから最上位モデルの SIL または PIL テストを実行する場合、SIL モデルまたは PIL モデルのビルドはサブモデルのに内部データ定義を自動的にピックアップします。

生成されたコードを AUTOSAR ランタイム環境に統合する場合、INCLUDE_RTE_HEADER および RTE_COMPONENT_HEADER マクロにサブモデルの内部データ定義が含まれるよう構成しなければなりません。

参考

|

関連する例

詳細