AUTOSAR ランナブルのモデル化パターン
Simulink® モデル、サブシステム、関数を使用して、AUTOSAR アトミック ソフトウェア コンポーネントとそのランナブル エンティティ (ランナブル) をモデル化します。
マルチタスク用に構成された複数の周期的なランナブル
モデル例 autosar_swc.slx
を開きます。
open_system('autosar_swc')
モデルは、AUTOSAR アトミック ソフトウェア コンポーネント (ASWC) の実装を示します。2 つの周期的なランナブル Runnable_1s
と Runnable_2s
は、複数のサンプル レート 1 秒 (In1_1s
) および 2 秒 (In2_2s
) でモデル化されています。実行効率を最大にするため、モデルはマルチタスクに構成されています。
モデルには Runnable_2s
の積分器を 1 の値に初期化する Initialize Function ブロックが含まれています。
注釈と凡例付きの色分けされたサンプルレートを表示するには、[デバッグ] タブで、[診断]、[情報のオーバーレイ]、[色] を選択します。
関連のモデル コンフィギュレーション パラメーター設定
[ソルバー]、[タイプ] は [
Fixed-step
] に設定されている。[ソルバー]、[ソルバー] は [
discrete (no continuous states)
] に設定されている。[ソルバー]、[固定ステップ サイズ (基本サンプル時間)] は [
auto
] に設定されている。[ソルバー]、[各離散レートを個別のタスクとして扱う] がオンになっている。
スケジューリング
モデル ウィンドウで、[デバッグ] タブを選択し、[診断]、[情報のオーバーレイ]、[色] を選択して、サンプル時間の色分けを有効にします。サンプル時間の凡例に暗黙的なレートのグループ分けが示されます。赤色は最も速い離散レートを表します。緑色は 2 番目に速い離散レートを表します。黄色は 2 つのレートの混在を表します。
モデルに複数のレートがあり、[ソルバー] パラメーター [各離散レートを個別のタスクとして扱う] が選択されているため、モデルはマルチタスク モードでシミュレーションを行います。モデルは In2_2s
のレート変換を Rate Transition ブロックを使用して明示的に処理します。
Rate Transition ブロックのパラメーター [確定的にデータ転送を確保] がオフにされ、AUTOSAR ランタイム環境への統合を容易にします。
モデルで生成されたコードはモデルでサブレートをスケジュールします。この例では、Inport ブロック In2_2s
のレート (緑色のレート) がサブレートです。生成されたコードは、さまざまなレートで実行されるタスク間でデータを適切に転送します。
コードとレポートの生成 (Embedded Coder)
Simulink Coder と Embedded Coder ソフトウェアをお持ちの場合、コードとコード生成レポートを生成します。モデル例がレポートを生成します。
生成されたコードは AUTOSAR に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。
生成コードのレビュー
コード生成レポートで、生成されたコードをレビューします。
autosar_swc.c
には、モデルのアルゴリズムを実装するコードのエントリ ポイントが含まれる。このファイルには、レート スケジューリング コードが含まれています。autosar_swc.h
は、モデル エントリ ポイントとデータ構造にモデル データ構造体とパブリック インターフェイスを宣言する。autosar_swc_private.h
には、モデルとサブシステムに必要なローカルdefine
定数とローカル データが含まれる。autosar_swc_types.h
は、リアルタイム モデル データ構造体とパラメーター データ構造体のための前方宣言を与える。rtwtypes.h
は、生成コードが必要とするデータ型、構造体およびマクロを定義する。autosar_swc_component.arxml
、autosar_swc_datatype.arxml
、autosar_swc_implementation.arxml
、およびautosar_swc_interface.arxml
には、AUTOSAR ソフトウェア コンポーネント、ポート、インターフェイス、データ型、パッケージを表す要素およびオブジェクトが含まれる。ARXML ファイルを AUTOSAR ランタイム環境に統合します。AUTOSAR ARXML インポーター ツールを使用して、ARXML ファイルを Simulink 環境にインポートできます。Compiler.h
、Platform_Types.h
、Rte_ASWC.h
、Rte_Type.h
、およびStd_Types.h
には、AUTOSAR ランタイム環境関数のスタブ実装が含まれる。これらのファイルを使用して、テスト対象コンポーネントのソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) シミュレーションなど、Simulink で生成コードをテストします。
コード インターフェイス
コード インターフェイス レポートを開いてレビューします。この情報は ARXML ファイルに取得されます。ランタイム環境ジェネレーターは ARXML 記述を使用してコードを AUTOSAR ランタイム環境に連動します。
入力端子:
要求側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側要求側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側
エントリポイント関数:
初期化エントリポイント関数、
void Runnable_Initialize(void)
。開始時にこの関数を一度呼び出します。出力および更新エントリポイント関数、
void Runnable_1s(void)
。この関数を、モデルの最速レートで定期的に呼び出します。このモデルでは、関数を毎秒呼び出します。リアルタイムの実行を実現するには、この関数をタイマーに接続します。出力および更新エントリポイント関数、
void Runnable_2s(void)
。この関数を、モデルの 2 番目に速いレートで定期的に呼び出します。このモデルでは、関数を 2 秒ごとに呼び出します。リアルタイムの実行を実現するには、この関数をタイマーに接続します。
出力端子:
提供側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側提供側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側
周期的レートのランナブルおよび非同期の関数呼び出しランナブルとして構成された複数のランナブル
モデル例 autosar_swc_fcncalls.slx
を開きます。
open_system('autosar_swc_fcncalls')
モデルは、AUTOSAR アトミック ソフトウェア コンポーネント (ASWC) の実装を示します。このモデルでは、外部イベントによってトリガーされる非同期の関数呼び出しランナブル Runnable_Trigger
が使用されます。モデルには周期的なレートベースのランナブル Runnable_1s
も含まれます。Rate Transition ブロックはインターランナブル変数 (IRV) を表します。
このアプローチを使用して、JMAAB コンプレックス制御モデル型ベータ アーキテクチャをモデル化します。JMAAB 型ベータ モデリングでは、制御モデルの最上位で、スケジューリング レイヤーの上に関数レイヤーを配置します。
モデルには Runnable_1s
の単位遅延を 0 の値に初期化する Initialize Function ブロックが含まれます。
注釈と凡例付きの色分けされたサンプルレートを表示するには、[デバッグ] タブで、[診断]、[情報のオーバーレイ]、[色] を選択します。
関連のモデル コンフィギュレーション パラメーター設定
[ソルバー]、[タイプ] は [
Fixed-step
] に設定されている。[ソルバー]、[ソルバー] は [
discrete (no continuous states)
] に設定されている。[ソルバー]、[固定ステップ サイズ (基本サンプル時間)] は 1 に設定されている。
[ソルバー]、[各離散レートを個別のタスクとして扱う] がオフになっている。
スケジューリング
モデル ウィンドウで、[デバッグ] タブを選択し、[診断]、[情報のオーバーレイ]、[色] を選択して、サンプル時間の色分けを有効にします。サンプル時間の凡例に暗黙的なレートのグループ分けが示されます。赤色は離散レートを表します。マゼンタは非同期の関数のトリガーを表します。黄色は 2 つのレートが混在していることを表しています。
非同期トリガー ランナブルは非同期レートで実行されますが (Function-Call Subsystem の Trigger ブロックの [サンプル時間タイプ] パラメーターが [トリガー] に設定されている)、周期的レートのランナブルは指定された離散レートで実行されます。生成されたコードは、シングルタスクでの仮定を使用してレートを管理します。離散レートが 1 つのモデルに対しては、実行するレートが 1 つしかないため、コード ジェネレーターはスケジューリング コードを生成しません。周期的なランナブルが 1 つの場合は、シングルレート アプリケーションに対してこの手法を使用します。
モデルは、2 つの Rate Transition ブロックを使用して、接続されたランナブルの非同期レートと離散レート間の遷移を処理します。Rate Transition ブロックのパラメーター [確定的にデータ転送を確保] がオフにされ、AUTOSAR ランタイム環境への統合を容易にします。
コードとレポートの生成 (Embedded Coder)
Simulink Coder と Embedded Coder ソフトウェアをお持ちの場合、コードとコード生成レポートを生成します。モデル例がレポートを生成します。
生成されたコードは AUTOSAR に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。
生成コードのレビュー
コード生成レポートで、生成されたコードをレビューします。
autosar_swc_fcncalls.c
には、モデルのアルゴリズムを実装するコードのエントリ ポイントが含まれる。このファイルには、レート スケジューリング コードが含まれています。autosar_swc_fcncalls.h
は、モデル エントリ ポイントとデータ構造にモデル データ構造体とパブリック インターフェイスを宣言する。autosar_swc_fcncalls_private.h
には、モデルとサブシステムに必要なローカルdefine
定数とローカル データが含まれる。autosar_swc_fcncalls_types.h
は、リアルタイム モデル データ構造体とパラメーター データ構造体のための前方宣言を与える。rtwtypes.h
は、生成コードが必要とするデータ型、構造体およびマクロを定義する。autosar_swc_fcncalls_component.arxml
、autosar_swc_fcncalls_datatype.arxml
、autosar_swc_fcncalls_implementation.arxml
、およびautosar_swc_fcncalls_interface.arxml
には、AUTOSAR ソフトウェア コンポーネント、ポート、インターフェイス、データ型、パッケージを表す要素およびオブジェクトが含まれる。ARXML ファイルを AUTOSAR ランタイム環境に統合します。AUTOSAR ARXML インポーター ツールを使用して、ARXML ファイルを Simulink 環境にインポートできます。Compiler.h
、Platform_Types.h
、Rte_ASWC.h
、Rte_Type.h
、およびStd_Types.h
には、AUTOSAR ランタイム環境関数のスタブ実装が含まれる。これらのファイルを使用して、テスト対象コンポーネントのソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) シミュレーションなど、Simulink で生成コードをテストします。
コード インターフェイス
コード インターフェイス レポートを開いてレビューします。この情報は ARXML ファイルに取得されます。ランタイム環境ジェネレーターは ARXML 記述を使用してコードを AUTOSAR ランタイム環境に連動します。
入力端子:
要求側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側
エントリポイント関数:
初期化エントリポイント関数、
void Runnable_Initialize(void)
。開始時にこの関数を一度呼び出します。Simulink 関数、
void Runnable_1s(void)
。この関数を、モデルの最速レートで定期的に呼び出します。このモデルでは、関数を毎秒呼び出します。リアルタイムの実行を実現するには、この関数をタイマーに接続します。エクスポート関数、
void Runnable_Trigger(void)
。外部のトリガーからこの関数をいつでも呼び出します。
出力端子:
提供側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側
Function-Call Subsystem および Simulink Function として構成された複数のランナブル
モデル例 autosar_swc_slfcns.slx
を開きます。
open_system('autosar_swc_slfcns')
モデルは、AUTOSAR アトミック ソフトウェア コンポーネント (ASWC) の実装を示します。モデルには、Function-Call Subsystem の SS1
を使用する 1 つの周期的レートのランナブル Runnable_1s
が含まれます。また、値を要求するクライアントに対して値 (CurVal
) を提供する Simulink Function readData
も含まれます。
モデルには、サブシステム RollingCounter
の単位遅延を 0 の値に初期化する Initialize Function ブロックが含まれます。
注釈と凡例付きの色分けされたサンプルレートを表示するには、[デバッグ] タブで、[診断]、[情報のオーバーレイ]、[色] を選択します。
次の場合に、Function-Call Subsystem を使用します。
Simulink モデルでシステム イベントを指定することが困難である、または指定できない場合。
ランナブルの複雑なマルチレート スケジュールを実現するため。各レートを個別の Function-Call Subsystem としてモデル化します。
関連のモデル コンフィギュレーション パラメーター設定
[ソルバー]、[タイプ] は [
Fixed-step
] に設定されている。[ソルバー]、[ソルバー] は [
discrete (no continuous states)
] に設定されている。[ソルバー]、[固定ステップ サイズ (基本サンプル時間)] は 1 に設定されている。
[ソルバー]、[各離散レートを個別のタスクとして扱う] がオンになっている。
スケジューリング
モデル ウィンドウで、[デバッグ] タブを選択し、[診断]、[情報のオーバーレイ]、[色] を選択して、サンプル時間の色分けを有効にします。サンプル時間の凡例に暗黙的なレートのグループ分けが示されます。赤色は離散レートを特定します。緑色はエクスポートされた関数から継承されたレートを特定し、Simulink スケジュールのコンテキスト外で実行されることを示しています。
実行フレームワークは生成された関数コードをスケジュールし、関数間のデータ転送を処理しなければなりません。
コードとレポートの生成 (Embedded Coder)
Simulink Coder と Embedded Coder ソフトウェアをお持ちの場合、コードとコード生成レポートを生成します。モデル例がレポートを生成します。
コード ジェネレーターは次を行います。
モデルのルート レベルで、Function-Call Subsystem の AUTOSAR ランナブルを生成する。
ランナブル間の信号の接続を AUTOSAR インターランナブル変数 (IRV) として実装する。
生成されたコードは AUTOSAR に準拠しているため、そのコードを AUTOSAR ランタイム環境でスケジュールできます。
生成コードのレビュー
コード生成レポートで、生成されたコードをレビューします。
autosar_swc_slfcns.c
には、モデルのアルゴリズムを実装するコードのエントリ ポイントが含まれる。このファイルには、レート スケジューリング コードが含まれています。autosar_swc_slfcns.h
は、モデル エントリ ポイントとデータ構造にモデル データ構造体とパブリック インターフェイスを宣言する。autosar_swc_slfcns_private.h
には、モデルとサブシステムに必要なローカルdefine
定数とローカル データが含まれる。autosar_swc_slfcns_types.h
は、リアルタイム モデル データ構造体とパラメーター データ構造体のための前方宣言を与える。readData_private.h
には、Simulink 関数が必要とするローカルdefine
定数とローカル データが含まれる。rtwtypes.h
は、生成コードが必要とするデータ型、構造体およびマクロを定義する。autosar_swc_slfcns_component.arxml
、autosar_swc_slfcns_datatype.arxml
、autosar_swc_slfcns_implementation.arxml
、およびautosar_swc_slfcns_interface.arxml
には、AUTOSAR ソフトウェア コンポーネント、ポート、インターフェイス、データ型、パッケージを表す要素およびオブジェクトが含まれる。ARXML ファイルを AUTOSAR ランタイム環境に統合します。AUTOSAR ARXML インポーター ツールを使用して、ARXML ファイルを Simulink 環境にインポートできます。Compiler.h
、Platform_Types.h
、Rte_ASWC.h
、Rte_Type.h
、およびStd_Types.h
には、AUTOSAR ランタイム環境関数のスタブ実装が含まれる。これらのファイルを使用して、テスト対象コンポーネントのソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) シミュレーションなど、Simulink で生成コードをテストします。
コード インターフェイス
コード インターフェイス レポートを開いてレビューします。この情報は ARXML ファイルに取得されます。ランタイム環境ジェネレーターは ARXML 記述を使用してコードを AUTOSAR ランタイム環境に連動します。
入力端子:
要求側ポート、インターフェイス: 1 次元の
uint16-T
タイプの送信側 - 受信側要求側ポート、インターフェイス: 1 次元の
real-T
タイプの送信側 - 受信側
エントリポイント関数:
初期化エントリポイント関数、
void Runnable_Init(void)
。開始時にこの関数を一度呼び出します。エクスポート関数、
void Runnable_1s(void)
。この関数を周期的に毎秒呼び出します。Simulink 関数、
Std_ReturnType readData(real_T Data[2])
。この関数をいつでも呼び出します。
出力端子:
提供側ポート、インターフェイス: 1 次元の
uint16-T
タイプの送信側 - 受信側