AUTOSAR コンポーネントの動作のモデル化
Simulink® では、ランナブル、イベント、インターランナブル変数など、AUTOSAR コンポーネントの動作をモデル化できます。
コンポーネントの動作のモデル化に関する AUTOSAR 要素
AUTOSAR コンポーネントの動作をモデル化するには、コンポーネントのスケジューリングおよびリソース共有に関する側面を記述する AUTOSAR 要素をモデル化します。コンポーネントの動作に影響を与える AUTOSAR 要素には次のようなものがあります。
ランナブルとランナブルが対応するイベント
同じコンポーネントのランナブル間でのデータ通信に使用されるインターランナブル変数
コンポーネントの内部データ型を提供するインクルード データ型セット
コンポーネント アルゴリズム内での参照に使用可能な、システムレベルの定数値を指定するために使用されるシステム定数
コンポーネント内でインスタンス固有のグローバル メモリを指定するために使用されるインスタンスごとのメモリ
コンポーネント内のグローバル データおよびパラメーター値にアクセスするための静的メモリおよび定数メモリ
コンポーネントの内部パラメーター データにアクセスするための共有パラメーターおよびインスタンスごとのパラメーター
パラメーター データに対するポートベースのアクセス用のポート パラメーター
このトピックでは、コンポーネントの動作を定義するのに役立つ AUTOSAR 要素をモデル化する方法について説明します。
ランナブル
AUTOSAR ソフトウェア コンポーネントには、基礎となる AUTOSAR オペレーティング システムによって直接または間接的にスケジュールされたランナブルが含まれます。
次の図に、2 つのランナブル Runnable 1
および Runnable 2
をもつ AUTOSAR ソフトウェア コンポーネントを示します。AUTOSAR ランタイム環境 (RTE) で生成されたイベント RTEEvent で各ランナブルはトリガーされます。たとえば、TimingEvent は定期的に生成される RTEEvent です。
コンポーネントにはモデルで表される単一のランナブルを含められるので、シングルレートまたはマルチレートにすることができます。
メモ
ソフトウェアは、モデル化パターンに関係なく初期化関数に追加のランナブルを生成します。
詳細については、AUTOSAR ランナブルとイベントの設定を参照してください。
インターランナブル変数
AUTOSAR では、同じコンポーネントでのランナブル間のデータ通信に "インターランナブル" 変数を使用します。これらの変数を、サブシステム (ランナブル) を接続する信号線を使用して Simulink モデルで定義します。たとえば、次の図では、irv1
、irv2
、irv3
および irv4
はインターランナブル変数です。
エクスポートするインターランナブル変数の名前とデータ アクセス モードを指定できます。
インクルード データ型セット
AUTOSAR ソフトウェア コンポーネント モデルでは、AUTOSAR インクルード データ型セット (IncludedDataTypeSet
) の ARXML 記述をインポートおよびエクスポートできます。IncludedDataTypeSet
はソフトウェア コンポーネントの内部動作の一部として定義されます。これには、コンポーネント内部にあり、コンポーネント インターフェイスの記述に存在しない AUTOSAR データ型定義への参照が含まれます。参照される内部データ型の定義は、共有 AUTOSAR 要素定義のインポートと参照で説明されているように、複数のソフトウェア コンポーネント間で共有できます。
IncludedDataTypeSet
記述を含む ARXML ファイルを Simulink にインポートすると、インポーターで AUTOSAR コンポーネント モデルに内部データ型が作成され、それらがヘッダー ファイル Rte_Type.h
にマッピングされます。
AUTOSAR コンポーネント モデルで、ARXML IncludedDataTypeSet
記述でエクスポート用に内部データ型を設定するには、内部データ型をヘッダー ファイル Rte_Type.h
にマッピングします。コンポーネント モデルを作成すると、次が行われます。
モデル コードに使用される内部データ型の ARXML
IncludedDataTypeSet
記述がエクスポートされます。内部データ型の
Rte_Type.h
ヘッダー ファイル エントリが生成されます。
AUTOSAR IncludedDataTypeSet
のエクスポートでは、Simulink は以下のデータ型をサポートします。
数値
エイリアス
バス
固定小数点
列挙型
列挙型リテラルのリテラル接頭辞は、インポートおよび作成された IncludedDataTypeSets
で異なる方法で処理されます。
LiteralPrefix
を列挙型リテラルの共通接頭辞として定義するIncludedDataTypeSet
をインポートする場合、インポーターではIncludedDataTypeSet
のエクスポートとラウンド トリップ用にLiteralPrefix
が保持されます。AUTOSAR
IncludedDataTypeSet
でのエクスポート用にコンポーネント モデルで内部データ型を設定すると、エクスポーターでは、空のLiteralPrefix
をもつIncludedDataTypeSet
にデータ型が生成されます。
詳細については、AUTOSAR IncludedDataTypeSet の内部データ型の構成を参照してください。
システム定数
AUTOSAR システム定数 (SwSystemConstant
) は、コンポーネント アルゴリズム内での参照に使用可能なシステムレベルの定数値を指定します。AUTOSAR システム定数をモデルに追加するには、以下の方法を使用できます。
ARXML ファイルからインポートする。
[ストレージ クラス] が
[SystemConstant]
に設定されているAUTOSAR.Parameter
オブジェクトを使用して Simulink にそれらを作成します。
これにより、Simulink アルゴリズム内で AUTOSAR システム定数を参照できます。たとえば、Gain ブロック内にあるシステム定数や、Variant Subsystem またはモデル参照の条件式内にあるシステム定数を参照できます。
モデル内の AUTOSAR システム定数を参照する場合は次のとおりです。
エクスポートされた ARXML ファイルには、対応する
SwSystemConstant
とSwSystemConstant
を参照する AUTOSAR の対応する変動点プロキシ (VariationPointProxy
) が含まれます。モジュラー ARXML ファイルを生成する場合、SwSystemConstant
は
にあり、modelname
_datatype.arxmlVariationPointProxy
は
にあります。modelname
_component.arxml生成された C コードは、モデルが
SwSystemConstant
を使用する場所では生成されたVariationPointProxy
を使用します。
バリアント条件のロジックに関連付けられた条件値を表す AUTOSAR システム定数の例については、AUTOSAR ランナブル実装のバリアントの設定を参照してください。
インスタンスごとのメモリ
AUTOSAR はインスタンスごとのメモリをサポートするため、インスタンスに固有のグローバル メモリをソフトウェア コンポーネント内に指定できます。AUTOSAR ランタイム環境のジェネレーターは、このメモリを割り当て、メモリにアクセスするための API を提供します。
インスタンスごとのメモリは AUTOSAR 型または C 型のいずれかになります。AUTOSAR 型のインスタンスごとのメモリ (arTypedPerInstanceMemory
) は C 型ではなく AUTOSAR データ型を使用して記述されます。ARXML ファイルにエクスポートされると、arTypedPerInstanceMemory
により、キャリブレーション ツールと測定ツールを使用してインスタンスごとのメモリに対応するグローバル変数を監視できるようになります。
また、AUTOSAR では、インスタンスごとのメモリを不揮発性 RAM (NVRAM) のデータの RAM ミラーとして使用できます。AUTOSAR アプリケーション内で NVRAM にアクセスして使用することができます。AUTOSAR 不揮発性メモリへのソフトウェア コンポーネントのアクセスをモデル化する方法の詳細については、AUTOSAR 不揮発性メモリのモデル化を参照してください。
AUTOSAR のインスタンスごとのメモリをモデルに追加するには、以下の方法を使用できます。
インスタンスごとのメモリ定義を ARXML ファイルからインポートする。
インスタンスごとのメモリを表すモデル コンテンツを作成する。
arTypedPerInstanceMemory
をモデル化するには、ブロック信号、離散状態、またはデータ ストアを AUTOSAR モデルで使用できます。
ブロック信号と離散状態を使用するには、コード マッピング エディターの [信号/状態] タブを使用して信号または状態を選択し、それを
arTypedPerInstanceMemory
にマッピングします。インスタンスごとのメモリの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。データ ストアを使用するには、コード マッピング エディターの [データ ストア] タブを使用して、データ ストアを選択し、それを
arTypedPerInstanceMemory
にマッピングします。インスタンスごとのメモリの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
詳細については、AUTOSAR のインスタンスごとのメモリの設定を参照してください。
静的メモリおよび定数メモリ
AUTOSAR は静的メモリ (StaticMemory) と定数メモリ (ConstantMemory) のデータをサポートします。静的メモリは、Simulink 内部グローバル信号に対応します。定数メモリは、Simulink 内部グローバル パラメーターに対応します。Simulink では AUTOSAR 静的メモリと定数メモリの ARXML 記述をインポートおよびエクスポートできます。ARXML ファイルにエクスポートされると、静的メモリと定数メモリにより、キャリブレーション ツールと測定ツールを使用して内部メモリ データを監視できるようになります。
Simulink で AUTOSAR 静的メモリをモデル化するには、コード マッピング エディターの [信号/状態] または [データ ストア] タブを使用します。信号、状態、またはデータ ストアを選択して、それを [StaticMemory]
にマッピングします。静的メモリの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
Simulink で AUTOSAR 定数メモリをモデル化するには、コード マッピング エディターの [パラメーター] タブを使用してパラメーターを選択し、それを [ConstantMemory]
にマッピングします。定数メモリの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
詳細については、AUTOSAR の静的メモリの設定およびAUTOSAR 定数メモリの設定を参照してください。
共有パラメーターとインスタンスごとのパラメーター
AUTOSAR では、複数回インスタンス化される可能性があるソフトウェア コンポーネントで使用するために、共有パラメーター (SharedParameter
) とインスタンスごとのパラメーター (PerInstanceParameter
) をサポートしています。共有パラメーターの値は、コンポーネントのすべてのインスタンス間で共有されます。インスタンスごとのパラメーター値は、各コンポーネント インスタンスに対して一意でプライベートな値です。
Simulink では、AUTOSAR の共有パラメーターとインスタンスごとのパラメーターの ARXML 記述をインポートおよびエクスポートできます。ARXML ファイルにエクスポートされると、共有パラメーターとインスタンスごとのパラメーターにより、キャリブレーション ツールと測定ツールを使用してコンポーネント パラメーターを監視できるようになります。
Simulink で AUTOSAR の共有パラメーターをモデル化するには、モデル引数ではない (つまり、マルチインスタンス モデルの各インスタンスに一意でない) モデル ワークスペース パラメーターを設定します。たとえば、パラメーターのモデル エクスプローラーのビューで、[引数] プロパティをオフにします。コード マッピング エディターの [パラメーター] タブで、パラメーターを選択し、それをパラメーター タイプ [SharedParameter]
にマッピングします。共有パラメーターの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
Simulink で AUTOSAR のインスタンスごとのパラメーターをモデル化するには、モデル引数である (つまり、マルチインスタンス モデルの各インスタンスに一意である) モデル ワークスペース パラメーターを設定します。たとえば、パラメーターのモデル エクスプローラーのビューで、[引数] プロパティを選択します。コード マッピング エディターの [パラメーター] タブで、パラメーターを選択し、それをパラメーター [PerInstanceParameter]
にマッピングします。インスタンスごとのパラメーターの AUTOSAR コードとキャリブレーション属性を表示および変更するには、 アイコンをクリックします。
詳細については、AUTOSAR 共有パラメーターまたはインスタンスごとのパラメーターの設定を参照してください。
ポート パラメーター
AUTOSAR 規格ではパラメーター通信のポートベース パラメーターを定義しています。AUTOSAR パラメーター通信は、パラメーター ソフトウェア コンポーネント (ParameterSwComponent
) およびパラメーター データへのポートベースのアクセスを要する 1 つ以上のアトミック ソフトウェア コンポーネントに依存します。ParameterSwComponent
は AUTOSAR パラメーターを含むメモリを表し、接続されたアトミック ソフトウェア コンポーネントにパラメーター データを提供します。
Simulink では、AUTOSAR パラメーター通信の受信側をモデル化できます。ARXML 記述をインポートするか、ソフトウェア コンポーネント モデルを構成して、以下をモデル化できます。
ParameterSwComponent
と通信してパラメーター データを受信する AUTOSAR パラメーター受信側コンポーネント。パラメーター データ要素を含む AUTOSAR パラメーター インターフェイス。データ要素は、モデル ワークスペースのパラメーターまたはルックアップ テーブル オブジェクトにマッピングされます。
ParameterSwComponent
との通信に使用される AUTOSAR パラメーター受信側ポート。
AUTOSAR パラメーター受信側コンポーネントのコードを生成すると、次のようになります。
エクスポートされた ARXML ファイルには、パラメーター受信側コンポーネント、パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信ポートが含まれます。
生成された C コードには、AUTOSAR ポート パラメーターの関数
Rte
の呼び出しが含まれます。
実行時に、ソフトウェアはパラメーター データ要素にポートべースのパラメーターとしてアクセスできます。
ポート パラメーター データのスコープはモデル ワークスペースと AUTOSAR コンポーネントに設定されているため、次のようになります。
異なるコンポーネントが、名前の競合なしに同じパラメーター名を使用できます。
AUTOSAR コンポジションには、それぞれインスタンス固有のポート パラメーター データ値をもつ、パラメーター受信側コンポーネントの複数のインスタンスを含むことができます。
詳細については、パラメーター コンポーネントと通信するための AUTOSAR ポート パラメーターの設定を参照してください。
参考
関連する例
- AUTOSAR ランナブルとイベントの設定
- AUTOSAR ランナブル実装のバリアントの設定
- AUTOSAR IncludedDataTypeSet の内部データ型の構成
- AUTOSAR のインスタンスごとのメモリの設定
- AUTOSAR の静的メモリの設定
- AUTOSAR 定数メモリの設定
- AUTOSAR 共有パラメーターまたはインスタンスごとのパラメーターの設定
- パラメーター コンポーネントと通信するための AUTOSAR ポート パラメーターの設定