Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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 モデルで構成するには次のようにします。

  1. AUTOSAR ソフトウェア コンポーネント モデルを作成、または開きます。このトピックの例では、モデル例 autosar_swc の書き込み可能なコピーを使用します。

    参考として、モデル例 matlabroot/help/toolbox/autosar/examples/mAutosarSwcBusPorts.slx では、この手順の最終結果が示されます。

  2. 2 つの In Bus Element ブロックをモデルに追加してルート入力端子として接続します。バス端子を同じ AUTOSAR 端子を共有しながら異なる要素をもつよう構成します。バス端子ブロックは AUTOSAR 端子と要素に自動的にマッピングされます。

    1. モデル内の既存の Inport ブロックを削除します。

    2. In Bus Element ブロックを作成します。[block parameters] ダイアログ ボックスを開きます。[Port name]ReceivePort に設定し、信号名を In1 に設定します。

    3. ブロックを最初の入力信号に接続します。ブロックのコピーを作成し、2 番目の入力信号に接続します。モデル キャンバス ([block parameters] ダイアログ ボックスではなく) で、2 番目のブロックの名前をクリックし In1In2 に変更します。

    4. In Bus Element ブロック パラメーター ダイアログ ボックスに両方の信号がリストされます。

      各信号を編集し [サンプル時間] をそれぞれ 1 および 2 に設定します。

  3. 2 つの Out Bus Element ブロックをモデルに追加し、ルート出力端子として接続します。バス端子を同じ AUTOSAR 端子を共有しながら異なる要素をもつよう構成します。バス端子ブロックは AUTOSAR 端子と要素に自動的にマッピングされます。

    1. モデル内の既存の Outport ブロックを削除します。

    2. Out Bus Element ブロックを作成します。[block parameters] ダイアログ ボックスを開きます。[Port name]SenderPort に設定し、信号名を Out1 に設定します。

    3. ブロックを最初の出力信号に接続します。ブロックのコピーを作成し、2 番目の入力信号に接続します。この場合、信号名は Out2 に自動的に設定されます。

      Out Bus Element ブロック パラメーター ダイアログ ボックスに両方の信号がリストされます。

  4. [アプリ] タブから、AUTOSAR Component Designer アプリを開きます。

    • コード マッピング エディターを使用して、レートベース関数が AUTOSAR ランナブルに正しくマッピングされていることを確認します。

      バス端子が AUTOSAR 端子に正しくマッピングされていることを確認します。

      各端子に選択されている AUTOSAR のデータ アクセス モードを調べます。参照モデル mAutosarSwcBusPorts は、暗黙的な送受信データ アクセスを指定して、autosar_swc の元の設定を一致させます。

    • オプションで、AUTOSAR ディクショナリを開いて AUTOSAR コンポーネント端子、ランナブル、S-R インターフェイス、データ要素を表示できます。

  5. モデルのコードを生成すると、次のようになります。

    • 生成された ARXML ファイル autosar_swc_component.arxml には、各サンプル レートについて Runnable_1s および Runnable_2s という名前の周期的なランナブルが記述されます。

    • 生成されたコード ファイル autosar_swc.c でレートベース関数 Runnable_1s および Runnable_2s が定義されます。

バス端子をバス オブジェクト型にすることによる AUTOSAR インターフェイスのモデル化

AUTOSAR インターフェイスを定義するには、バス端子をバス オブジェクト型とします。この例では、前の例で変更したものと同じ AUTOSAR ソフトウェア コンポーネント モデルを使用します。この例では autosar_swc の送信側インターフェイス Output_IfSenderInterface という名前の新しいインターフェイスで置き換えます。

  1. 変更された autosar_swc が開いている状態でバス エディターを開きます。[モデル化] タブで [設計][バス エディター] を選択します。

  2. [バス エディター] ダイアログ ボックスでバスを追加し SenderInterface という名前を付けます。2 つのバス要素を追加し Out1 および Out2 という名前を付けます

    オプションで、ダイアログ ボックスを終了するとき、後で使用するために SenderInterface バス オブジェクトを MAT ファイルに保存します。モデル例 mAutosarSwcBusPorts は、MAT ファイルを読み込みません。代わりに、PreLoadFcn モデル コールバックを使用して、SenderInterface バス オブジェクトをプログラムにより作成します。

  3. SenderPort ブロックのダイアログ ボックスを開きます。端子 SenderPort (信号ではなく) を編集します。[データ型] メニューで、[Bus:SenderInterface] を選択します。

  4. 新しいインターフェイスにより既存のマッピングされたインターフェイスが置き換えられているため、既存の送信側端子と送信側インターフェイスを明示的に削除しなければなりません。AUTOSAR Component Designer アプリを開き AUTOSAR ディクショナリを開きます。送信側端子 SenderPort および S-R インターフェイス Output_If を選択し削除します。

  5. 新しい送信側インターフェイスを生成しマッピングするには、関数 autosar.api.create を呼び出してモデル マッピングを更新するか、Ctrl+B キーを押してモデルのコードを生成します (Embedded Coder® が必要)。ここに関数 autosar.api.create の呼び出しがあります。

    autosar.api.create('autosar_swc');
  6. オプションで、AUTOSAR ディクショナリを開き、新しい送信側端子および S-R インターフェイス定義を表示します。

参考として、モデル例 matlabroot/help/toolbox/autosar/examples/mAutosarSwcBusPorts.slx では、この手順の最終結果が示されます。

参考

| |

関連する例

詳細