メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

パラメーター ソフトウェア コンポーネントと通信するための AUTOSAR ポート パラメーターの構成

AUTOSAR 規格ではパラメーター通信のポートベース パラメーターを定義しています。AUTOSAR パラメーター通信は、パラメーター ソフトウェア コンポーネント (ParameterSwComponent) およびパラメーター データへのポートベースのアクセスを要する 1 つ以上のアトミック ソフトウェア コンポーネントに依存します。ParameterSwComponent は AUTOSAR パラメーターを含むメモリを表し、接続されたアトミック ソフトウェア コンポーネントにパラメーター データを提供します。ポートベースのパラメーター ワークフローについては、ポート パラメーターを参照してください。

パラメーター通信のための AUTOSAR ソフトウェア コンポーネントの構成

Simulink® では、AUTOSAR ポートベース パラメーター通信の受信側をモデル化できます。AUTOSAR アトミック ソフトウェア コンポーネントをパラメーター受信側として設定するには、以下を行います。

  1. AUTOSAR コンポーネント モデルで、AUTOSAR ディクショナリに AUTOSAR パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信側ポートを作成します。

  2. Simulink モデル ワークスペースで、パラメーターを作成し、そのパラメーターを引数としてマークして、初期値を設定します。Simulink パラメーター、ルックアップ テーブル、およびブレークポイント オブジェクトを使用できます。

  3. Simulink モデル ワークスペース パラメーターまたはルックアップ テーブルを AUTOSAR パラメーター受信ポートとパラメーター インターフェイス データ要素にマッピングします。コード マッピング エディターの [パラメーター] タブまたは関数 mapParameter を使用します。

この例では、AUTOSAR ソフトウェア コンポーネントをパラメーター通信の受信側として設定する方法を示します。

  1. ソフトウェア コンポーネントがパラメーター データへのポートベースのアクセスを必要とする、AUTOSAR コード生成用に設定されたモデルを開きます。

  2. AUTOSAR ディクショナリを開きます。パラメーター インターフェイスをモデルに追加するには、[パラメーター インターフェイス] ビューを選択し、[追加] ボタン をクリックします。[インターフェイスの追加] ダイアログ ボックスで、新しいインターフェイスの名前を指定し、[データ要素数]1 に設定します。[追加] をクリックします。

  3. [パラメーター インターフェイス] を展開し、[DataElements] ビューを選択します。作成した関連データ要素のプロパティ (名前など) を調べて修正します。

  4. [AtomicComponents] を展開し、コンポーネントを展開します。パラメーター受信ポートをモデルに追加するには、[ParameterReceiverPorts] ビューに移動し、[追加] ボタン をクリックします。[ポートの追加] ダイアログ ボックスで、新しいポートの名前を指定し、[インターフェイス] を作成したパラメーター インターフェイスの名前に設定します。[追加] をクリックします。

  5. Simulink モデル ワークスペースで、パラメーターのデータ オブジェクトを作成します。たとえば、モデル エクスプローラーを使用します。データ オブジェクトを選択した状態で、[Name] および [Value] フィールドを設定します。パラメーターをモデル引数として (複数インスタンス モデルの各インスタンスに固有) 設定するには、[引数] チェック ボックスをオンにします。

    モデルのデータ オブジェクト名を参照します。たとえば、Gain ブロックの [ゲイン] パラメーター フィールドに k1 を入力します。

  6. コード マッピング エディターを開き [パラメーター] タブを選択します。[Model Parameter Arguments] グループで、作成したパラメーター データ オブジェクトを選択します。[マッピング先] メニューで、AUTOSAR パラメーター タイプ [PortParameter] を選択します。

  7. パラメーターの他のコードとキャリブレーション属性を表示および変更するには、[編集] アイコン Icon to configure additional code mappings properties をクリックします。

    1. [ポート] を AUTOSAR ディクショナリで設定したパラメーター受信ポートの名前に設定します。

    2. [DataElement] を AUTOSAR ディクショナリで設定したパラメーター インターフェイス データ要素の名前に設定します。

    詳細については、モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。

  8. AUTOSAR コンポーネント モデルのコードを生成すると、次のようになります。

    • エクスポートされた ARXML ファイルには、パラメーター受信側コンポーネント、パラメーター インターフェイス、パラメーター データ要素、およびパラメーター受信ポートが含まれます。

      <PARAMETER-INTERFACE UUID="...">
          <SHORT-NAME>myParamInterface</SHORT-NAME>
          <IS-SERVICE>false</IS-SERVICE>
          <PARAMETERS>
              <PARAMETER-DATA-PROTOTYPE UUID="...">
                  <SHORT-NAME>ParamElement</SHORT-NAME>
              ...
              </PARAMETER-DATA-PROTOTYPE>
          </PARAMETERS>
      </PARAMETER-INTERFACE>
    • 生成された C コードには、AUTOSAR ポート パラメーターの関数 Rte の呼び出しが含まれます。

      /* Model step function */
      void mArPortParam_Step(void)
      {
      ...
        Rte_IWrite_mArPortParam_Step_Out2_Out2(Rte_Prm_myParamPort_ParamElement() *
          Rte_IRead_mArPortParam_Step_In2_In2());
      }

    実行時に、ソフトウェアはパラメーター データ要素にポートベース パラメーターとしてアクセスできます。

AUTOSAR Blockset アーキテクチャでの ParameterSender ポートを使用したパラメーター提供側ポートの作成

この例では、AUTOSAR アーキテクチャでコンポーネント モデルを参照し (System Composer™ が必要)、パラメーター ソフトウェア コンポーネントを追加して、パラメーター ソフトウェア コンポーネント、インターフェイス、コネクタ、およびポートの記述を含むコードを生成する方法を示します。

AUTOSAR アーキテクチャ モデルを作成し、モデル例 autosar_swc_parameter を読み込みます。

archModel = autosar.arch.createModel("AUTOSARArchitecture");
load_system("autosar_swc_parameter");

addComponent関数を使用してアーキテクチャ モデルにコンポーネントを追加します。

component = addComponent(archModel,"SensorComponent", ...
    Kind="SensorActuator");

linkToModel関数を使用してコンポーネント モデル autosar_swc_parameter をアーキテクチャのコンポーネントにリンクします。

linkToModel(component,"autosar_swc_parameter");

addPort関数を使用してアーキテクチャ モデル キャンバスにポートを追加します。connect関数を使用してアーキテクチャをコンポーネントに接続します。

addPort(archModel,"Sender","SenderPort");
addPort(archModel,"Receiver","ReceivePort");
connect(archModel,archModel.Ports(1),component.Ports(1));
connect(archModel,archModel.Ports(2),component.Ports(2));

アーキテクチャ モデルにタイプ ParameterSender のパラメーター ソフトウェア コンポーネントを追加します。

parameterComponent = addComponent(archModel,'ParameterProvider',...
    Kind='ParameterComponent')
parameterComponent = 
  ParameterComponent with properties:

      Name: 'ParameterProvider'
    Parent: [1×1 autosar.arch.Model]
     Ports: [0×0 autosar.arch.ParameterPort]

パラメーター コンポーネントにパラメーター送信側ポートを追加します。このポートの名前は、autosar_swc_parameter に既に存在する ParameterReceiverPort の名前に合わせて ParameterPort にする必要があります。

autosar_parameter_receiverport.png

paramPort = addPort(parameterComponent,"ParameterSender",...
    "ParameterPort")
paramPort = 
  ParameterPort with properties:

      Name: 'ParameterPort'
    Parent: [1×1 autosar.arch.ParameterComponent]

export関数を使用して ARXML をエクスポートします。

evalc("export(archModel)")
ans = 
    'Building component: autosar_swc_parameter (1 out of 1)
     ### Searching for referenced models in model 'autosar_swc_parameter'.
     ### Total of 1 models to build.
     ### Starting build procedure for: autosar_swc_parameter
     ### Generating XML files description for: autosar_swc_parameter
     ### Successful completion of code generation for: autosar_swc_parameter
     
     Build Summary
     
     Top model targets:
     
     Model                  Build Reason                                         Status           Build Duration
     ===========================================================================================================
     autosar_swc_parameter  Information cache folder or artifacts were missing.  Code generated.  0h 0m 13.453s 
     
     1 of 1 models built (0 models already up to date)
     Build duration: 0h 0m 14.463s
     Exporting composition: AUTOSARArchitecture
     ### Generating XML description files for: AUTOSARArchitecture
     ### Successful completion of export for: AUTOSARArchitecture
     ### Creating HTML report Architecture Export Report
     '

ARXML ファイルを検証します。パラメーター ソフトウェア コンポーネントの記述は AUTOSARArchitecture_component.arxml ファイルにあります。

<SHORT-NAME>Components</SHORT-NAME>
<ELEMENTS>
    <PARAMETER-SW-COMPONENT-TYPE UUID="89c7c60b-1b6c-5f1a-2bc1-3b1995cca37a">
        <SHORT-NAME>ParameterProvider</SHORT-NAME>
        <PORTS>
            <P-PORT-PROTOTYPE UUID="4165b1e0-469a-58e1-b9c4-178527d8eb42">
                <SHORT-NAME>ParameterPort</SHORT-NAME>
                <PROVIDED-COM-SPECS>
                    <PARAMETER-PROVIDE-COM-SPEC>
                        <INIT-VALUE>
                            <NUMERICAL-VALUE-SPECIFICATION>
                                <SHORT-LABEL>DefaultInitValue_float64_5</SHORT-LABEL>
                                <VALUE>5</VALUE>
                            </NUMERICAL-VALUE-SPECIFICATION>
                        </INIT-VALUE>
                        <PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/Company/Powertrain/Interfaces/myParamInterface/ParamElement</PARAMETER-REF>
                    </PARAMETER-PROVIDE-COM-SPEC>
                </PROVIDED-COM-SPECS>
            </P-PORT-PROTOTYPE>
        </PORTS>
    </PARAMETER-SW-COMPONENT-TYPE>
</ELEMENTS>

AUTOSARArchitecture_composition.arxml ファイルにコネクタの記述が含まれています。パラメーター ソフトウェア コンポーネントが同じ名前のポートに接続されています。

<CONNECTORS>
    <ASSEMBLY-SW-CONNECTOR UUID="feedb0dd-cf11-5623-6f5b-a68ed78a35e4">
        <SHORT-NAME>ParameterProvider_ParameterPort_SensorComponent_ParameterPort</SHORT-NAME>
        <PROVIDER-IREF>
            <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Components/AUTOSARArchitecture/ParameterProvider</CONTEXT-COMPONENT-REF>
            <TARGET-P-PORT-REF DEST="P-PORT-PROTOTYPE">/Components/ParameterProvider/ParameterPort</TARGET-P-PORT-REF>
        </PROVIDER-IREF>
        <REQUESTER-IREF>
            <CONTEXT-COMPONENT-REF DEST="SW-COMPONENT-PROTOTYPE">/Components/AUTOSARArchitecture/SensorComponent</CONTEXT-COMPONENT-REF>
            <TARGET-R-PORT-REF DEST="R-PORT-PROTOTYPE">/Components/ASWC/ParameterPort</TARGET-R-PORT-REF>
        </REQUESTER-IREF>
    </ASSEMBLY-SW-CONNECTOR>

参考

関数

オブジェクト

トピック