이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
A2L 파일 시작하기
이 예제는 A2L 파일에 저장된 정보에 액세스하고 확인하는 방법을 보여줍니다.
XCP(Universal Measurement and Calibration Protocol)은 자동차 산업에서 캘리브레이션 시스템을 전자 제어 장치(ECU)에 연결하기 위해 일반적으로 사용되는 네트워크 프로토콜입니다. 캘리브레이션 시스템은 일반적으로 클라이언트라고 불리며, ECU는 서버라고 불립니다. XCP는 런타임 시 변수 및 메모리 내용에 대한 읽기 및 쓰기 액세스를 가능하게 합니다.
전체 데이터 세트는 타이머 또는 작동 조건에 의해 트리거된 이벤트와 동기화되어 수집되거나 생성될 수 있습니다. XCP 프로토콜 사양은 ASAM(Association for Standardization of Automation and Measuring Systems)에 의해 정의되며, CAN 기반 XCP 또는 이더넷 기반 XCP와 같은 다양한 전송 계층을 허용합니다.
A2L 파일은 메저먼트, 캘리브레이션 및 이벤트 정의를 포함하는 구조화된 ASCII 텍스트 파일로, XCP와 함께 데이터를 수집하고 자극하는 데 사용됩니다. 이 예제는 이더넷 기반 XCP용으로 구성된 A2L 파일을 사용합니다. A2L 파일은 메저먼트 및 캘리브레이션 시 사용되는 내부 서버 변수의 설명 형식을 정의하는 ASAM MCD-2 MC 표준(ASAP2)을 따릅니다. .a2l 파일 확장자는 "ASAM MCD-2 MC Language"의 약어입니다.
A2L 파일 열기
A2L 파일은 하나 이상의 ECU에 대한 메저먼트, 캘리브레이션 및 이벤트 정의를 포함합니다. XCP 서버의 메모리에서 데이터를 직접 읽거나 쓰려면, 해당 시스템을 나타내는 A2L 파일을 여는 것이 필수적인 첫 단계입니다. A2L 파일에 액세스하려면 MATLAB® 세션에서 xcpA2L 함수를 사용하여 파일 객체를 생성하십시오:
a2lfile = xcpA2L("XCPServerSineWaveGenerator.a2l")a2lfile =
A2L with properties:
File Details
FileName: 'XCPServerSineWaveGenerator.a2l'
FilePath: '/tmp/Bdoc25b_2988451_1428583/tpf364ba40/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 함수는 XCP 채널 객체를 통해, 지정된 measurement에 대한 값을 스케일링하고 씁니다. 이 작업은 서버의 메모리에 직접 쓰기를 수행합니다.
특성 정보 액세스
특성은 조정 가능한 파라미터(캘리브레이션)의 속성을 설명합니다. 조정 가능한 파라미터의 가능한 유형에는 스칼라, 문자열 및 조회 테이블이 포함됩니다. 주소, 레코드 레이아웃, 계산 방법, 상한 및 하한 캘리브레이션 한계가 정의됩니다.
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 함수는 XCP 채널 객체를 통해, 지정된 characteristic 값을 스케일링하고 씁니다. 이 작업은 서버의 메모리에 직접 쓰기를 수행합니다.
이벤트 정보 액세스
데이터는 타이머 또는 작동 조건에 의해 트리거된 이벤트와 동기화되어 수집되거나 자극될 수 있습니다.
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 함수를 통해 메저먼트를 수집하고 자극할 수 있습니다. 메저먼트 데이터 수집을 위한 이벤트 활용은 예제 Read XCP Measurements with Dynamic DAQ Lists에서 더 자세히 살펴볼 수 있습니다.
프로토콜 계층 정보 보기
프로토콜 계층은 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 서비스 중 하나입니다. 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이나 이더넷과 같은 다양한 전송 계층을 허용합니다.
이 예제는 이더넷을 통한 XCP용으로 구성된 A2L 파일을 사용하며, IP 주소와 포트가 필요합니다. 이들은 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