XCP on Ethernet : 패킷(Packet) 구조 / CTO, DTO

네트워크 통신에서 데이터를 주고받으려면 패킷 구조를 먼저 정해야 한다. XCP도 목적에 따라 CTO(Command Transfer Object)와 DTO(Data Transfer Object)로 패킷을 나눈다.




XCP CTO와 DTO 분류
상위 분류역할하위 분류
CTO명령 교환CMD, RES, ERR, EV, SERV
DTO데이터 교환DAQ, STIM




CTO는 명령과 응답을 전달하고, DTO는 측정값이나 자극 데이터를 전달한다. 하위 패킷의 세부 형식은 데이터 성격과 설정에 따라 달라지므로 ASAM XCP 문서와 사용 중인 도구의 레퍼런스를 함께 확인한다.




XCP on Ethernet 기본 구조

XCP 패킷 기본 구조

TCP 또는 UDP 위에서 XCP를 쓸 때는 보통 XCP 헤더 뒤에 XCP 패킷이 이어진다. XCP on Ethernet은 Tail을 별도로 사용하지 않는 구조를 기본으로 본다.




XCP on Ethernet 패킷 구조
영역크기설명
LEN2 ByteCTR 이후 XCP 패킷 길이, Little Endian
CTR2 Byte송신마다 증가하는 카운터, 손실 감지에 사용
PID1 Byte패킷 식별자
FILL0 또는 1 Byte정렬을 위한 Padding
DAQ0, 1, 2 ByteDAQ List 식별값
TIME STAMP0, 1, 2, 4 Byte측정 시간 값
DATAN Byte측정 또는 제어 데이터




XCP PID 활용 범위

CTO 패킷 예

XCP CTO 패킷 구조 예

Master에서 Slave로 보내는 CTO는 CMD가 될 수 있고, Slave에서 Master로 보내는 CTO는 RES가 될 수 있다. 두 패킷의 PID가 같아도 송신 방향에 따라 의미가 달라질 수 있으므로, 패킷을 볼 때는 먼저 송신자를 구분한다.




DTO 패킷 예

XCP DTO 패킷 구조 예

DTO에서는 LEN과 CTR이 XCP 헤더가 되고, 그 뒤의 PID와 DATA가 실제 XCP 패킷을 이룬다. LEN은 전체 Ethernet 프레임 길이가 아니라 CTR 이후의 XCP 패킷 길이를 뜻한다.




XCP DTO 기본 구조

DTO 패킷 종류

XCP DTO 패킷 종류

DTO는 Identification Field와 Timestamp Field 구성에 따라 여러 형태로 나뉜다. PID는 뒤에 DAQ 영역이 있는지에 따라 상대 또는 절대 ODT 번호를 뜻할 수 있고, DAQ는 절대 DAQ List 번호를 뜻한다.




XCP DTO 필드 설명

패킷 구조를 해석할 때는 PID 값만 보지 말고 송신 방향, CTO 또는 DTO 구분, DAQ와 Timestamp 필드 유무를 함께 확인한다.

Comments

댓글을 불러오고 있습니다.