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 の書き込み可能なコピーを使用します。

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

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

    2. In Bus Element ブロックを作成します。[ブロック パラメーター] ダイアログ ボックスを開きます。[端子名]ReceivePort に設定し、信号名を In1 に設定します。

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

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

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

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

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

    2. Out Bus Element ブロックを作成します。[ブロック パラメーター] ダイアログ ボックスを開きます。[端子名]SenderPort に設定し、信号名を Out1 に設定します。

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

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

  4. [アプリ] タブから、AUTOSAR コンポーネント デザイナー アプリを開きます。

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

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

      各端子に選択されている AUTOSAR のデータ アクセス モードを調べます。

    • オプションで、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. 型エディターで Simulink.Bus オブジェクトを追加し、SenderInterface という名前を付けます。2 つの Simulink.BusElement オブジェクトを追加し、Out1 および Out2 という名前を付けます。

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

  3. SenderPort ブロックのダイアログ ボックスを開きます。SenderPort という名前のバス オブジェクトで一時停止し、表示されるボタンをクリックします。バス オブジェクトの [データ型][Bus:SenderInterface] に設定します。

  4. 新しいインターフェイスにより既存のマッピングされたインターフェイスが置き換えられているため、既存の送信側端子と送信側インターフェイスを明示的に削除しなければなりません。AUTOSAR コンポーネント デザイナー アプリを開き 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 インターフェイス定義を表示します。

参考

| |

関連する例

詳細