Simulink バス端子の使用による AUTOSAR 端子の構成
Classic および Adaptive の AUTOSAR ソフトウェア コンポーネントでは、Inport ブロックと Outport ブロックの代わりに、ルートレベルの Simulink® バス端子を使用して AUTOSAR 端子をモデル化できます。バス端子ブロック In Bus Element および Out Bus Element によってモデル インターフェイスを単純化できます。詳細については、バス要素端子を使用したサブシステム インターフェイスとモデル インターフェイスの簡略化を参照してください。
バス端子ブロックは、AUTOSAR 通信端子、インターフェイス、およびデータ要素のグループをモデル化するのに、より直観的な方法を提供します。AUTOSAR 端子を In Bus Element ブロックおよび Out Bus Element ブロックを使用してモデル化し、かつバス オブジェクトを使用してバス端子の型を指定する場合、AUTOSAR 端子の基本的なプロパティ、インターフェイス、およびデータ要素は AUTOSAR ディクショナリを使用しないで構成されます。コンポーネント インターフェイスを管理するには、Simulink バス オブジェクトを設定します。
以下と一緒にルートレベルのバス端子を使用できます。
レートベース モデリング スタイルまたはエクスポート関数モデリング スタイルを使用する AUTOSAR ソフトウェア コンポーネント。
AUTOSAR 信号ベースの通信。
Classic のキューに登録されている送信側/受信側 (S-R) または Adaptive のイベントベース メッセージングなどの AUTOSAR メッセージベース通信。
AUTOSAR アーキテクチャ モデルでは、バス端子をもつ Classic Platform コンポーネント モデルをリンクし、スケジュール エディターを使用して、シミュレーションをスケジュールできます。
Simulink バス端子の設定による AUTOSAR 端子のモデル化
Simulink バス端子を AUTOSAR モデルで構成するには次のようにします。
AUTOSAR ソフトウェア コンポーネント モデルを作成、または開きます。このトピックの例では、モデル例
autosar_swc
の書き込み可能なコピーを使用します。2 つの In Bus Element ブロックをモデルに追加してルート入力端子として接続します。バス端子を同じ AUTOSAR 端子を共有しながら異なる要素をもつよう構成します。バス端子ブロックは AUTOSAR 端子と要素に自動的にマッピングされます。
モデル内の既存の Inport ブロックを削除します。
In Bus Element ブロックを作成します。[ブロック パラメーター] ダイアログ ボックスを開きます。[端子名] を
ReceivePort
に設定し、信号名をIn1
に設定します。ブロックを最初の入力信号に接続します。ブロックのコピーを作成し、2 番目の入力信号に接続します。モデル キャンバス ([ブロック パラメーター] ダイアログ ボックスではなく) で、2 番目のブロックの名前をクリックし
In1
をIn2
に変更します。In Bus Element ブロック パラメーター ダイアログ ボックスに両方の信号がリストされます。
各信号を編集し [サンプル時間] をそれぞれ 1 および 2 に設定します。
2 つの Out Bus Element ブロックをモデルに追加し、ルート出力端子として接続します。バス端子を同じ AUTOSAR 端子を共有しながら異なる要素をもつよう構成します。バス端子ブロックは AUTOSAR 端子と要素に自動的にマッピングされます。
モデル内の既存の Outport ブロックを削除します。
Out Bus Element ブロックを作成します。[ブロック パラメーター] ダイアログ ボックスを開きます。[端子名] を
SenderPort
に設定し、信号名をOut1
に設定します。ブロックを最初の出力信号に接続します。ブロックのコピーを作成し、2 番目の入力信号に接続します。この場合、信号名は
Out2
に自動的に設定されます。Out Bus Element ブロック パラメーター ダイアログ ボックスに両方の信号がリストされます。
[アプリ] タブから、AUTOSAR コンポーネント デザイナー アプリを開きます。
コード マッピング エディターを使用して、レートベース関数が AUTOSAR ランナブルに正しくマッピングされていることを確認します。
バス端子が AUTOSAR 端子に正しくマッピングされていることを確認します。
各端子に選択されている AUTOSAR のデータ アクセス モードを調べます。
オプションで、AUTOSAR ディクショナリを開いて AUTOSAR コンポーネント端子、ランナブル、S-R インターフェイス、データ要素を表示できます。
モデルのコードを生成すると、次のようになります。
生成された ARXML ファイル
autosar_swc_component.arxml
には、各サンプル レートについてRunnable_1s
およびRunnable_2s
という名前の周期的なランナブルが記述されます。生成されたコード ファイル
autosar_swc.c
でレートベース関数Runnable_1s
およびRunnable_2s
が定義されます。
バス端子をバス オブジェクト型にすることによる AUTOSAR インターフェイスのモデル化
AUTOSAR インターフェイスを定義するには、バス端子をバス オブジェクト型とします。この例では、前の例で変更したものと同じ AUTOSAR ソフトウェア コンポーネント モデルを使用します。この例では autosar_swc
の送信側インターフェイス Output_If
を SenderInterface
という名前の新しいインターフェイスで置き換えます。
変更された
autosar_swc
が開いている状態で型エディターを開きます。[モデル化] タブの [設計] ギャラリーで、[型エディター] を選択します。型エディターで
Simulink.Bus
オブジェクトを追加し、SenderInterface
という名前を付けます。2 つのSimulink.BusElement
オブジェクトを追加し、Out1
およびOut2
という名前を付けます。オプションで、ダイアログを終了する前に、後で使用するために
SenderInterface
バス オブジェクトを MAT ファイルに保存します。モデル例mAutosarSwcBusPorts
は、MAT ファイルを読み込みません。代わりに、PreLoadFcn
モデル コールバックを使用して、SenderInterface
バス オブジェクトをプログラムにより作成します。SenderPort
ブロックのダイアログ ボックスを開きます。SenderPort
という名前のバス オブジェクトで一時停止し、表示されるボタンをクリックします。バス オブジェクトの [データ型] を[Bus:SenderInterface]
に設定します。新しいインターフェイスにより既存のマッピングされたインターフェイスが置き換えられているため、既存の送信側端子と送信側インターフェイスを明示的に削除しなければなりません。AUTOSAR コンポーネント デザイナー アプリを開き AUTOSAR ディクショナリを開きます。送信側端子
SenderPort
および S-R インターフェイスOutput_If
を選択し削除します。新しい送信側インターフェイスを生成しマッピングするには、関数
autosar.api.create
を呼び出してモデル マッピングを更新するか、Ctrl+B キーを押してモデルのコードを生成します (Embedded Coder® が必要)。ここに関数autosar.api.create
の呼び出しがあります。autosar.api.create('autosar_swc');
オプションで、AUTOSAR ディクショナリを開き、新しい送信側端子および S-R インターフェイス定義を表示します。
参考
In Bus Element | Out Bus Element | autosar.api.create