メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

ARXMLファイル入門

この例では、ARXML ファイル内の情報を解析して表示する方法を示します。

アクセスは ARXML ファイル オブジェクトを介して提供されます。ARXML ファイル オブジェクトは次の目的で使用できます。

  • 生のメッセージのデコード方法の入力。

  • 復号化失敗の原因となる可能性のある欠落要素を観察します。

  • 関心のあるメッセージ、PDU、または信号に関する情報を検索します。

  • ARXML ファイルの構成を理解する。

この例では、CAN の状況について説明します。

ARXMLファイルを開く

arxmlDatabase MATLAB 関数を使用してサンプル ファイル SampleFile.arxml を開きます。ARXML ファイル オブジェクトには、NamePathCAN の 3 つのプロパティが含まれています。

arxmlObj = arxmlDatabase("SampleFile.arxml")
arxmlObj = 
  Database with properties:

    Name: "SampleFile.arxml"
    Path: "/tmp/Bdoc25a_2864802_1971459/tpcbc94420/vnt-ex86715502/SampleFile.arxml"
     CAN: [1×1 shared.vnt.arxml.protocol.CAN]

ARXML ファイルからエンティティ値を表示する

CAN プロパティは、CAN プロトコル固有の ARXML 情報を含むオブジェクトです。現在、CAN プロトコルのみがサポートされており、オブジェクト内のすべての情報は読み取り専用です。

CAN オブジェクトには、ARXML ファイルの基本構造を反映した 3 つのプロパティ (FramePDUISignal) が含まれています。

arxmlObj.CAN
ans = 
  CAN with properties:

      Frame: [2×9 table]
        PDU: [1×1 shared.vnt.arxml.shared.PDU]
    ISignal: [6×9 table]

フレーム情報を表示

フレーム テーブルを表示するには、Frame プロパティを呼び出します。

arxmlObj.CAN.Frame
ans=2×9 table
        Name                    Path                  ID     Extended    StartBit    Length           ByteOrder                         PDU                     FrameTriggering  
    ____________    _____________________________    ____    ________    ________    ______    _______________________    ________________________________    ___________________

    "ML_Frame_1"    "/MathWorks/FRAME/ML_Frame_1"    1000     false         0          8       mostSignificantByteLast    /MathWorks/PDUS/ML_ISignalIPDU_1    "FrameTriggering_1"
    "ML_Frame_2"    "/MathWorks/FRAME/ML_Frame_2"    1001     true          0          4       mostSignificantByteLast    /MathWorks/PDUS/ML_ISignalIPDU_2    "FrameTriggering_2"

フレーム テーブルには、CAN の ARXML ファイルで定義された情報が含まれます。この表には、CAN フレームを ISignalIPDU に復号化するために必要なすべての情報が含まれています。

この表では、AUTOSAR 標準に従って用語を定義します。

  • Path は上から下への階層構造を反映し、要素がどのように互いに含まれているかを示します。

  • PDU (プロトコル データ ユニット) は、ソフトウェア コンポーネントと ECU 間の通信に使用されるデータ パケットです。表内の Path と同じ表現を使用します。

  • FrameTriggering は、ネットワーク上で Frame が送信または受信されるタイミングと条件を定義します。

  • ByteOrder はエンディアンを反映します。mostSignificantByteLast (リトルエンディアン) と mostSignificantByteFirst (ビッグエンディアン) という用語が使用されます。

PDU情報を見る

CAN の PDU 情報を表示するには、PDU プロパティを呼び出します。PDU は、さまざまなタイプの PDU をプロパティとして持つオブジェクトです。現在、ISignalIPDU のみがサポートされています。

arxmlObj.CAN.PDU
ans = 
  PDU with properties:

    ISignalIPDU: [2×6 table]

ISignalIPDU テーブルを表示するには、ISignalIPDU を呼び出します。

arxmlObj.CAN.PDU.ISignalIPDU
ans=2×6 table
           Name                      Frame                 ISignal      StartBit    Length           ByteOrder       
    __________________    ___________________________    ___________    ________    ______    _______________________

    "ML_ISignalIPDU_1"    /MathWorks/FRAME/ML_Frame_1    {4×5 table}       0          8       mostSignificantByteLast
    "ML_ISignalIPDU_2"    /MathWorks/FRAME/ML_Frame_2    {2×5 table}       0          4       mostSignificantByteLast

ISignalIPDU テーブルには、CAN の ARXML ファイルで定義された ISignalIPDU 情報が含まれています。ISignal 列には、特定の ISignalIPDU 内に含まれる ISignal がリストされます。

arxmlObj.CAN.PDU.ISignalIPDU.ISignal{1}
ans=4×5 table
         Name         StartBit    Length           ByteOrder              BaseType  
    ______________    ________    ______    ________________________    ____________

    "ML_ISignal_1"       0          1       mostSignificantByteLast     {1×1 struct}
    "ML_ISignal_2"       1          2       mostSignificantByteFirst    {1×1 struct}
    "ML_ISignal_3"       3          2       opaque                      {1×1 struct}
    "ML_ISignal_4"       5          1       mostSignificantByteLast     {1×1 struct}

arxmlObj.CAN.PDU.ISignalIPDU.ISignal{2}
ans=2×5 table
         Name         StartBit    Length           ByteOrder             BaseType  
    ______________    ________    ______    _______________________    ____________

    "ML_ISignal_5"        0          2      mostSignificantByteLast    {1×1 struct}
    "ML_ISignal_6"      NaN        NaN      mostSignificantByteLast    {1×1 struct}

この ISignal テーブルには、ISignalIPDU 内の ISignal のビット位置などの基本情報が含まれています。完全な ISignal 情報は ISignal テーブルで確認できます。

ISignal情報を見る

ISignal テーブルを表示するには、ISignal プロパティを呼び出します。

arxmlObj.CAN.ISignal
ans=6×9 table
         Name                             CompuMethod                        StartBit    Length           ByteOrder              BaseType         Unit                      PDU                                    SystemSignal                  
    ______________    ___________________________________________________    ________    ______    ________________________    ____________    ___________    ________________________________    _______________________________________________

    "ML_ISignal_1"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod        0          1      mostSignificantByteLast     {1×1 struct}    F              /MathWorks/PDUS/ML_ISignalIPDU_1    "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_1_System"
    "ML_ISignal_2"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod        1          2      mostSignificantByteFirst    {1×1 struct}    min            /MathWorks/PDUS/ML_ISignalIPDU_1    "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_2_System"
    "ML_ISignal_3"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod        3          2      opaque                      {1×1 struct}    rpm            /MathWorks/PDUS/ML_ISignalIPDU_1    "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_3_System"
    "ML_ISignal_4"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod        5          1      mostSignificantByteLast     {1×1 struct}    F              /MathWorks/PDUS/ML_ISignalIPDU_1    "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_4_System"
    "ML_ISignal_5"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod        0          2      mostSignificantByteLast     {1×1 struct}    F              /MathWorks/PDUS/ML_ISignalIPDU_2    "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_5_System"
    "ML_ISignal_6"    1×1 shared.vnt.arxml.shared.compumethod.CompuMethod      NaN        NaN      mostSignificantByteLast     {1×1 struct}    <undefined>    /MathWorks/PDUS/ML_ISignalIPDU_2    ""                                             

CompuMethod 列には CompuMethod オブジェクトが表示され、サポートされている CompuMethods のプロパティを表示できます。表内の項目を呼び出すと、さらに詳しい情報が提供されます。

たとえば、ISignal "ML_ISignal_2" は TextTable 型の CompuMethod を使用します。

arxmlObj.CAN.ISignal.CompuMethod(2)
ans = 
  TextTable with properties:

            Name: "ML_ISignal_2_Encoding"
            Unit: "min"
              VT: ["Group1"    "Group2"    "Group3"]
      LowerLimit: [1 2 3]
      UpperLimit: [1 2 3]
    DefaultValue: ""
    InverseValue: [NaN NaN NaN]

BaseType 列には物理データ型の情報が表示されます。データのエンコード方法とサイズを指定します。

arxmlObj.CAN.ISignal.BaseType{1}
ans = struct with fields:
    BaseTypeEncoding: 'NONE'
        BaseTypeSize: 16

欠けている要素

ARXML では、特定の要素はオプションです。ファイルに定義されていない場合は、ARXML ファイル オブジェクト テーブルに存在しない可能性があります。

データ型によって、テーブル内の「欠落」の表現が異なります。

arxmlObj.CAN.ISignal(6,:)
ans=1×9 table
         Name                          CompuMethod                     StartBit    Length           ByteOrder             BaseType         Unit                      PDU                   SystemSignal
    ______________    _____________________________________________    ________    ______    _______________________    ____________    ___________    ________________________________    ____________

    "ML_ISignal_6"    1×1 shared.vnt.arxml.shared.compumethod.Empty      NaN        NaN      mostSignificantByteLast    {1×1 struct}    <undefined>    /MathWorks/PDUS/ML_ISignalIPDU_2         ""