このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
A2L ファイル入門
この例では、A2L ファイルに保存されている情報にアクセスして表示する方法を示します。
XCP (Universal Measurement and Calibration Protocol) は、自動車業界でキャリブレーション システムを電子制御ユニット (ECU) に接続するために一般的に使用されているネットワーク プロトコルです。一般的に、キャリブレーション システムはクライアント、ECU はサーバーと呼ばれます。XCP は、実行時に変数とメモリの内容への読み取りおよび書き込みアクセスを可能にします。
タイマーや動作条件によってトリガーされるイベントに同期して、データセット全体を取得または刺激することができます。XCP プロトコル仕様は ASAM (Association for Standardization of Automation and Measuring Systems) によって定義されており、XCP over CAN や Ethernet などのさまざまなトランスポート層を可能にします。
A2L ファイルは、XCP でデータの取得と刺激に使用される測定、キャリブレーション、およびイベント定義が含まれる構造化 ASCII テキスト ファイルです。この例では、XCP over Ethernet 用に構成された A2L ファイルを使用します。A2L ファイルは、測定とキャリブレーションで使用される内部サーバー変数の記述形式を定義する ASAM MCD-2 MC 標準 (ASAP2) に準拠しています。.a2l
ファイル拡張子は、「ASAM MCD-2 MC Language」の略語です。
A2Lファイルを開く
A2L ファイルには、1 つ以上の ECU の測定、キャリブレーション、およびイベント定義が含まれています。XCP サーバーのメモリから直接データを読み取ったり、メモリにデータを書き込んだりする場合、最初に必要な手順は、そのシステムを表す A2L ファイルを開くことです。A2L ファイルにアクセスするには、xcpA2L
関数を使用して MATLAB ® セッションでファイル オブジェクトを作成します。
a2lfile = xcpA2L("XCPServerSineWaveGenerator.a2l")
a2lfile = A2L with properties: File Details FileName: 'XCPServerSineWaveGenerator.a2l' FilePath: '/tmp/Bdoc25a_2864802_1971459/tpcbc94420/vnt-ex00266724/XCPServerSineWaveGenerator.a2l' ServerName: 'ModuleName' Warnings: [0×0 string] Parameter Details Events: {'100 ms'} EventInfo: [1×1 xcp.a2l.Event] Measurements: {'Sine' 'SineAfterGain' 'SineAfterTable' 'XCPServer_DW.lastCos' 'XCPServer_DW.lastSin' 'XCPServer_DW.systemEnable'} MeasurementInfo: [6×1 containers.Map] Characteristics: {'Gain' 'ydata'} CharacteristicInfo: [2×1 containers.Map] AxisInfo: [1×1 containers.Map] RecordLayouts: [4×1 containers.Map] CompuMethods: [3×1 containers.Map] CompuTabs: [0×1 containers.Map] CompuVTabs: [0×1 containers.Map] XCP Protocol Details ProtocolLayerInfo: [1×1 xcp.a2l.ProtocolLayer] DAQInfo: [1×1 xcp.a2l.DAQ] TransportLayerCANInfo: [0×0 xcp.a2l.XCPonCAN] TransportLayerUDPInfo: [0×0 xcp.a2l.XCPonIP] TransportLayerTCPInfo: [1×1 xcp.a2l.XCPonIP]
測定情報にアクセスする
測定は、記録可能なサーバー内部変数のプロパティを記述します。この変数はスカラーまたは配列にすることができます。測定にはビットマスクとビット操作を適用できます。アドレス、バイト順序、計算方法、上限と下限、その他のプロパティについて説明します。この標準では、実行時にサーバーを刺激するために測定オブジェクトに書き込むこともできます。
A2L ファイル オブジェクトの Measurements
プロパティを介して利用可能なすべての測定値を表示します。
a2lfile.Measurements
ans = 1×6 cell
{'Sine'} {'SineAfterGain'} {'SineAfterTable'} {'XCPServer_DW.lastCos'} {'XCPServer_DW.lastSin'} {'XCPServer_DW.systemEnable'}
getMeasurementInfo
関数を使用して Sine
測定に関する情報を取得します。この関数は、指定された A2L ファイルから指定された測定に関する情報を返します。
measInfo = getMeasurementInfo(a2lfile,"Sine")
measInfo = Measurement with properties: Name: 'Sine' LongIdentifier: 'Sine wave signal' LocDataType: FLOAT64_IEEE Conversion: [1×1 xcp.a2l.CompuMethod] Resolution: 0 Accuracy: 0 LowerLimit: -3.0000 UpperLimit: 3.0000 Dimension: 1 ArraySize: [] BitMask: [] BitOperation: [1×0 xcp.a2l.BitOperation] ByteOrder: MSB_LAST Discrete: [] ECUAddress: 1586712 ECUAddressExtension: 0 Format: '' Layout: ROW_DIR PhysUnit: '' ReadWrite: []
xcpChannel
を使用すると、それぞれ readMeasurement
および writeMeasurement
関数を使用して、測定データを XCP サーバーのメモリに直接読み書きすることができます。readMeasurement
関数は、XCP チャネル オブジェクトを通じて指定された measurement
の値を読み取り、スケーリングします。このアクションは、サーバーのメモリから直接読み取りを実行します。writeMeasurement
関数は、指定された measurement
の値を XCP チャネル オブジェクトを通じてスケーリングして書き込みます。このアクションは、サーバーのメモリへの直接書き込みを実行します。
アクセス特性情報
特性は、調整可能なパラメータ (キャリブレーション) のプロパティを記述します。調整可能なパラメータの種類としては、スカラー、文字列、ルックアップ テーブルなどがあります。アドレス、レコードレイアウト、計算方法、上限および下限のキャリブレーション限界が定義されます。
A2L ファイル オブジェクトの Characteristics
プロパティを使用して、使用可能なすべての特性を名前で表示します。
a2lfile.Characteristics
ans = 1×2 cell
{'Gain'} {'ydata'}
getCharacteristicInfo
関数を使用して Gain
特性に関する情報を取得します。この関数は、指定された A2L ファイルから指定された特性に関する情報を返します。
charInfo = getCharacteristicInfo(a2lfile,"Gain")
charInfo = Characteristic with properties: Name: 'Gain' LongIdentifier: '' CharacteristicType: VALUE ECUAddress: 549960 Deposit: [1×1 xcp.a2l.RecordLayout] MaxDiff: 0 Conversion: [1×1 xcp.a2l.CompuMethod] LowerLimit: -5.0000 UpperLimit: 5.0000 Dimension: 1 AxisConversion: {1×0 cell} BitMask: [] ByteOrder: MSB_LAST Discrete: [] ECUAddressExtension: 0 Format: '' Number: [] PhysUnit: ''
xcpChannel
を使用すると、それぞれ readCharacteristic
関数と writeCharacteristic
関数を使用して、特性データを XCP サーバーのメモリに直接読み書きすることができます。readCharacteristic
関数は、XCP チャネルを介して指定された characteristic
の値を読み取り、スケーリングします。このアクションは、サーバーのメモリから直接読み取りを実行します。writeCharacteristic
関数は、指定された characteristic
の値を XCP チャネル オブジェクトを通じてスケーリングして書き込みます。このアクションは、サーバーのメモリへの直接書き込みを実行します。
イベント情報にアクセスする
データは、タイマーまたは動作条件によってトリガーされるイベントと同期して取得または刺激できます。
A2L ファイル オブジェクトの Events
プロパティを介して利用可能なすべてのイベントを表示します。
a2lfile.Events
ans = 1×1 cell array
{'100 ms'}
getEventInfo
関数を使用して 100 ms
イベントに関する情報を取得します。この関数は、指定された A2L ファイルから指定されたイベントに関する情報を返します。
eventInfo = getEventInfo(a2lfile, "100 ms")
eventInfo = Event with properties: Name: '100 ms' ShortName: '100 ms' ChannelNumber: 0 Direction: DAQ MaxDAQList: 255 ChannelTimeCycle: 1 ChannelTimeUnit: 8 ChannelPriority: 0 ChannelTimeCycleInSeconds: 0.1000
xcpChannel
を使用してイベントを指定すると、readDAQList
and
writeSTIM
などの利用可能な XCP 関数を使用して測定値を取得および刺激できます。測定データを取得するためのイベントの使用については、例 ダイナミックDAQリストでXCP測定を読み取る でさらに詳しく説明します。
プロトコル層情報の表示
プロトコル層は、XCP サーバーとクライアント間のメッセージングのコア操作と構成の一部を定義します。これには、XCP コマンドおよび応答メッセージ内のバイトのサイズと構造が含まれます。
A2L ファイル オブジェクトの ProtocolLayerInfo
プロパティを介してプロトコル層の詳細を表示します。
a2lfile.ProtocolLayerInfo
ans = ProtocolLayer with properties: T1: 1000 T2: 200 T3: 0 T4: 0 T5: 0 T6: 0 T7: 0 MaxCTO: 255 MaxDTO: 65532 ByteOrder: BYTE_ORDER_MSB_LAST AddressGranularity: ADDRESS_GRANULARITY_BYTE
DAQ情報の表示
XCP は、ASAM MDC-2 MC で説明されているように、同期データ取得 (DAQ) モードを提供します。DAQ は、サーバーが提供できる主要な XCP サービスの 1 つです。XCP DAQ イベントは、測定データのサンプリングをトリガーするためにクライアントによって定義できます。サーバー内のアルゴリズムがそのようなサンプリング イベントの場所に到達すると、サーバーは測定パラメータの値を収集し、クライアントに送信します。A2L ファイル オブジェクトの DAQInfo
プロパティを介して DAQ の詳細を表示します。
a2lfile.DAQInfo
ans = DAQ with properties: ConfigType: DYNAMIC MaxDAQ: 65535 MaxEventChannels: 128 MinDAQ: 0 OptimizationType: OPTIMISATION_TYPE_DEFAULT AddressExtension: ADDRESS_EXTENSION_FREE IdentificationFieldType: IDENTIFICATION_FIELD_TYPE_ABSOLUTE GranularityODTEntrySizeDAQ: GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE MaxODTEntrySizeDAQ: 255 OverloadIndication: NO_OVERLOAD_INDICATION DAQAlternatingSupported: [] PrescalerSupported: [] ResumeSupported: [] STIM: [1×0 xcp.a2l.STIM] Timestamp: [1×1 xcp.a2l.TimestampSupported] Events: [1×1 xcp.a2l.Event Map]
トランスポート層情報の表示
XCP パケットは、選択されたトランスポート プロトコルのパケットであるトランスポート層のフレームに埋め込まれます。A2L ファイルは、サポートされているプロトコルのトランスポート層情報を提供します。特定のプロトコルのトランスポート層情報が空の場合、サーバーはそのトランスポートをサポートしていません。XCP プロトコル仕様では、CAN や Ethernet などのさまざまなトランスポート層が許可されます。
この例では、IP アドレスとポートを必要とする XCP over Ethernet 用に構成された A2L ファイルを使用します。これらは A2L ファイルで指定されます。
A2L ファイル オブジェクトの TransportLayerTCPInfo
プロパティを介してトランスポート層の詳細を表示します。
a2lfile.TransportLayerTCPInfo
ans = XCPonIP with properties: CommonParameters: [1×1 xcp.a2l.CommonParameters] TransportLayerInstance: '' Port: 17725 Address: 2.1307e+09 AddressString: '127.0.0.1'
A2Lファイルを閉じる
ワークスペースから変数をクリアして、A2L ファイルへのアクセスを閉じます。
clear a2lfile