Main Content

AUTOSAR のスケジューリングとシミュレーションの構成

AUTOSAR Classic アーキテクチャ モデルまたは AUTOSAR Adaptive アーキテクチャ モデルの集約されたコンポーネントの動作をシミュレーションできます。入力値とその他のモデル要素を提供するテスト ハーネス モデルを接続して、モデルをテストできます。シミュレーションするには、アーキテクチャ モデルの最上位レベルに移動し、[実行] をクリックします。

AUTOSAR Classic アーキテクチャ モデルのスケジューリングとシミュレーションを構成する例として、次の方法を使用できます。

  • BSW サービスへの呼び出しをシミュレートする Basic Software (BSW) ブロックを追加する。

  • 入力およびプラント要素をアーキテクチャ モデルに接続するテスト ハーネス モデルを作成する。

  • スケジュール エディターを使用して、コンポーネント ランナブルの実行順序をスケジュールおよび指定する。

基本ソフトウェア サービス呼び出しのシミュレーション

AUTOSAR Classic Platform の場合、AUTOSAR Blockset は基本ソフトウェア (BSW) ブロックを提供します。これにより、AUTOSAR ランタイム環境で実行する BSW サービスへのソフトウェア コンポーネントの呼び出しをモデル化できます。BSW サービスには NVRAM Manager (NvM)、Diagnostic Event Manager (Dem) および Function Inhibition Manager (FiM) があります。ランタイム環境では、AUTOSAR ソフトウェア コンポーネントは通常、クライアント/サーバー通信または送信側/受信側通信を使用して BSW サービスにアクセスします。

BSW サービスを呼び出す AUTOSAR コンポーネントをシミュレーションするには、それが含まれるアーキテクチャ、コンポジション、またはテスト ハーネス モデルを作成し、事前構成された BSW サービス コンポーネント ブロックを追加します。そのブロックは、BSW サービス オペレーションの参照実装を提供します。

アーキテクチャ モデル内のコンポーネントに BSW 呼び出し側ブロックを使用している場合、アーキテクチャ モデルに BSW サービス実装が含まれていることを確認してください。詳細については、AUTOSAR 基本ソフトウェア サービス呼び出しのモデル化およびAUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションを参照してください。

AUTOSAR アーキテクチャ モデルで BSW ブロックを使用する例については、アーキテクチャ モデル内の AUTOSAR コンポジションおよびコンポーネントの作成を参照してください。

テスト ハーネスの接続

アーキテクチャ モデルの作成が終わると、意味のある入力値とプラント モデル要素を提供するテスト ハーネス モデルに接続できるようになります。たとえば、アーキテクチャ モデル内の AUTOSAR コンポジションおよびコンポーネントの作成の例のアーキテクチャ モデル autosar_tpc_composition について考えてみます。このモデルには要求側 (入力) ポートが 3 つあり、提供側 (出力) ポートが 1 つあります。

ここに示すのは、アーキテクチャ モデル autosar_tpc_composition をシミュレーションするためのテスト ハーネス モデルです。このテスト ハーネスには、ペダル入力ブロックおよびアーキテクチャ モデルの要求側ポートと提供側ポートに対応する信号を持つプラント モデルが含まれています。このモデルは、モデル例 autosar_tpc_system を応用したものです。

アーキテクチャ モデルをテスト ハーネスに接続するには、以下を行います。

  1. Model ブロックを挿入します。

  2. アーキテクチャ モデルを参照するように Model ブロックを設定します。

  3. Model ブロックのダイアログ ボックスで、オプション [レートのスケジュール] を選択します。関連するパラメーター [次を使用してレートをスケジュール] では、[スケジュール エディター] を選択します。アーキテクチャ モデル コンポーネントには、スケジュール エディターでスケジュール可能な明示的な分割があります。

  4. アーキテクチャ モデルのポートをテスト ハーネスの信号に接続します。

完成したテスト ハーネス モデルを表示し、実行するには、モデル例 autosar_tpc_system を開きます。(ローカルの作業フォルダー内にあるモデルを開くには、openExample('autosar_tpc_system') を使用します)。

コンポーネント ランナブルのスケジュール

複数のランナブルを含む AUTOSAR Classic Platform ソフトウェア コンポーネントでは、AUTOSAR タイミング拡張仕様で実行順序の制約が定義されます。これらの制約は、コンポーネント内のランナブル エンティティの実行順序を指定します。制約の表示と操作はコンポーネント レベルで実行でき、AUTOSAR アーキテクチャ モデルでは仮想機能バス (VFB) レベルで実行できます。

アーキテクチャ モデルでは、次を実行できます。

  • ARXML ファイルから VFB レベルの実行順序の制約をインポートする。

  • スケジュール エディターを使用して AUTOSAR コンポーネント ランナブルの実行順序を変更する。エディターには、そのコンポジション階層のすべてのコンポーネントのすべてのランナブルが表示されます。

  • コンポジションのエクスポートの一環として、VFB レベルの実行順序の制約を ARXML タイミング モジュール modelname_timing.arxml にエクスポートする。

AUTOSAR コンポーネント ランナブルの実行順序をスケジューリングおよび指定するには、スケジュール エディターを使用します。スタンドアロンのコンポーネント モデルまたはアーキテクチャ モデルから、次を実行できます。

  • AUTOSAR コンポーネントまたはアーキテクチャ モデルでの分割としてコンポーネント ランナブルのグラフィカルな表現を表示する。

  • 分割を作成し、それらを AUTOSAR ランナブルにマッピングする。

  • ランナブルの実行順序を直接指定する。

スケジュール エディターは、レートベースおよびエクスポート関数モデリングを含む、複数のモデリング スタイルをサポートします。詳細については、スケジュール エディターの使用および分割の作成を参照してください。AUTOSAR コンポーネント モデル例については、AUTOSAR ランナブルの実行順序の設定を参照してください。

AUTOSAR アーキテクチャ モデルでスケジュール エディターを開くには、[モデル化] タブを開き、[設計] ツール[スケジュール エディター] を選択します。エディターには、そのコンポジション階層のすべてのコンポーネントのすべてのランナブルが表示されます。ここに示すのは、アーキテクチャ モデル例 autosar_tpc_composition からスケジュール エディターを開いたときの実行順序の表示です。エディターのコントロールを使用して、ランナブルの実行順序を変更します。

AUTOSAR アーキテクチャ モデルからコンポジションをエクスポートすると、VFB レベルの実行順序の制約がファイル modelname_timing.arxml にエクスポートされます。ARXML モジュールにより、コンポジション階層全体からタイミング情報が集約されます。次の ARXML コードは、スケジュール エディターの設定に基づいた、autosar_tpc_composition のランナブルに対してエクスポートされた実行順序の制約を示しています。

<VFB-TIMING UUID="...">
  <SHORT-NAME>TPC_Composition</SHORT-NAME>
  <TIMING-REQUIREMENTS>
    <EXECUTION-ORDER-CONSTRAINT UUID="...">
      <SHORT-NAME>EOC</SHORT-NAME>
      <BASE-COMPOSITION-REF DEST="COMPOSITION-SW-COMPONENT-TYPE">
        /Components/TPC_Composition
      </BASE-COMPOSITION-REF>
      <ORDERED-ELEMENTS>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>PedalSensor_PedalSensor_Step</SHORT-NAME>
          <COMPONENT-IREF>
            <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">
              /Components/Sensors/PedalSensor
            </TARGET-COMPONENT-REF>
          </COMPONENT-IREF>
          <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
            /Components/PedalSensor/PedalSensor_IB/PedalSensor_Step
          </EXECUTABLE-REF>
          <SUCCESSOR-REFS>
            <SUCCESSOR-REF DEST="EOC-EXECUTABLE-ENTITY-REF">
              /Timing/TPC_Composition/EOC/TPS_Primary_ThrottleSensor1_Step
            </SUCCESSOR-REF>
          </SUCCESSOR-REFS>
        </EOC-EXECUTABLE-ENTITY-REF>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>TPS_Primary_ThrottleSensor1_Step</SHORT-NAME>
          ...
        </EOC-EXECUTABLE-ENTITY-REF>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>TPS_Secondary_ThrottleSensor2_Step</SHORT-NAME>
        ...
        </EOC-EXECUTABLE-ENTITY-REF>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>Monitor_ThrottleSensorMonitor_Step</SHORT-NAME>
          ...
        </EOC-EXECUTABLE-ENTITY-REF>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>Ctrl_Controller_Step</SHORT-NAME>
          ...
        </EOC-EXECUTABLE-ENTITY-REF>
        <EOC-EXECUTABLE-ENTITY-REF UUID="...">
          <SHORT-NAME>Actuator_Actuator_Step</SHORT-NAME>
          <COMPONENT-IREF>
            <TARGET-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">
              /Components/TPC_Composition/Actuator
            </TARGET-COMPONENT-REF>
          </COMPONENT-IREF>
          <EXECUTABLE-REF DEST="RUNNABLE-ENTITY">
            /Components/Actuator/Actuator_IB/Actuator_Step
          </EXECUTABLE-REF>
        </EOC-EXECUTABLE-ENTITY-REF>
      </ORDERED-ELEMENTS>
    </EXECUTION-ORDER-CONSTRAINT>
  </TIMING-REQUIREMENTS>
  <COMPONENT-REF DEST="COMPOSITION-SW-COMPONENT-TYPE">
    /Components/TPC_Composition
  </COMPONENT-REF>
</VFB-TIMING>

参考

| |

関連するトピック