Automotive Software

SOME/IP 헤더 포맷 본문

이더넷/SOMEIP

SOME/IP 헤더 포맷

AutoSW 2024. 2. 12. 23:23

SOME/IP Header Format, E2E통신의 경우 Payload에 4Bytes 길이의 E2E 헤더가 추가됨

  • 메시지 아이디 (Message ID)
    • 전송되는 메서드 또는 이벤트를 구분하기 위한 아이디로 시스템 상에서 유일한 값을 가짐
      • 예, Service ID : 0x01에서 제공하는 메서드 중, Method ID : 0x02를 나타낼 경우, 0x0102
    • 메서드 호출의 경우
      • | Service ID (16 bits) | 0 (1 bit) | Method ID (15 bits) |
    • 이벤트, 필드 그리고 이벤트 그룹의 경우
      • | Service ID (16 bits) | 1 (1 bit) | Event ID (15 bits) |
    • 서비스 검색 프로토콜(Service Discovery)의 경우, 0xFFFF8100 로 고정
      • 이는 클래식 오토사의 SoAd에서 Tx와 Rx PDU들의 Header ID로 식별됨
  • 길이 (Length)
    • 요청 아이디 (Request ID)부터 메시지 마지막까지 메시지의 데이터 바이트 길이
  • 요청 아이디 (Request ID)
    • 동일 메서드, 이벤트 등의 병렬 사용 시 이를 구분하기 위한 용도
      • 서비스 가입 별 유일한 값을 가지며, 동일 값은 회신 전 또는 타임아웃 전에는 재사용 금지
      • 서비스 제공자가 회신 시, 요청 아이디값을 복사하여 회신 함으로써 요청에 대한 매핑 가능
    • 클라이언트 아이디 (Client ID)
      • 제어기내에서 유일한 값으로 동일 메서드의 요청자를 구분하게 도와줌
      • 기본 포맷 : | Client ID (16 bits) | Session ID (16 bits) |
      • 확장 포맷 : | Client ID Prefix (8 bits) | Client ID (8 bits) | Session ID (16 bits) |
        • SWC 별 또는 진단 주소별 특정 값을 Cient ID Prefix에 할당함으로써 제어기내에서만 아니라 전체 네트워크 상에서의 유일한 클라이언트 아이디를 구현 가능
    • 세션 아이디 (Session ID)
      • 세션 처리기능이 비활성화된 경우 :  0x00
      • 세션 처리기능이 활성화 된 경우 : 0x0001 ~ 0xFFFF, 0x0001부터 재시작
        • 1에서 시작하여 매회 호출 시마다 증가됨
      • 요청/응답 메서드의 경우, 요청한 메시지의 세션 아이디와 수신된 메시지의 세션 아이디가 불일치할 경우 해당 메시지를 무시함
    • 프로토콜 버전 (Protocol Version)
      • SOME/IP 헤더 포맷을 명시하며 현재 0x01 값을 가짐
    • 인터페이스 버전 (Interface Version)
      • 제공되는 서비스 인터페이스의 주요 버전 (Major Version)을 명시
    • 메시지 타입 (Message Type)
      • 전송되는 메시지 타입 명시
메시지 값 메시지 타입 설명
0x00 REQUEST 응답을 요청하는 메시지
(메서드에서 주로 사용)
0x01 REQUEST_NO_RETURN 응답이 필요없는 메시지
(메서드에서 주로 사용)
0x02 NOTIFICATION 응답이 필요없으며 일반적인 정보/이벤트 전달을 위한 메시지
0x80 RESPONSE 응답 메시지
0x81 ERROR 에러 메시지
0x20 TP_REQUEST TP(Transport Protocol)을 통한 요청 메시지 전달 후 응답 요청 메시지
0x21 TP_REQUEST_NO_RETURN 응답이 필요없는 TP 메시지 전달
0x22 TP_NOTIFICATION TP를 통한 정보/이벤트 메시지 전달
0xa0 TP_RESPONSE TP를 통한 응답 메시지
0xa1 TP_ERROR TP를 통한 에러 메시지

 

  • 리턴 코드 (Return Code)
    • 요청의 처리 결과 회신
      • 기본적으로 E_OK (0x00)을 회신
      • 응답 또는 에러의 경우, [PRS_SOMEIP_00191]에 정의된 E_NOT_OK (0x01), E_NOT_READY (0x04), E_TIMEOUT (0x06) 등의 값을 회신
  • 페이로드
    • 해당 서비스 요청 시 전달될 추가 데이터

'이더넷 > SOMEIP' 카테고리의 다른 글

SOME/IP 기초  (0) 2024.01.19