Automotive Software

DoIP 차량내 IP기반 진단통신 기초 (Understanding the Basic of DoIP) 본문

차량 진단 (Vehicle Diagnostic)/DoIP (Diagnostic communication over IP)

DoIP 차량내 IP기반 진단통신 기초 (Understanding the Basic of DoIP)

AutoSW 2024. 2. 29. 17:00

차량내 진단통신 예시

차량 내 제어기(ECU, Electronic Control Unit)들의 고장 진단을 위해 예전에는 K라인(K-Line), 캔(CAN)과 같은 통신 방식을 주로 사용하였으나 현재는 고속 이더넷(ETHERNET)을 기반으로 하는 진단 통신이 주로 사용되며, 이를 통해 제어기들의 결함정보(DTC, Diagnostic Trouble Code) 수집, 행동 제어 그리고 소프트웨어 업데이트등의 서비스를 제공할 수 있다.

특히, 일상생활에서 잘 알려진 기술인 이더넷의 경우 적용이 용이할 뿐 아니라 기타의 차량 네트워크(CAN, LIN 또는 Flexray)들과 비교하여 고속통신을 기반으로 병렬적인 소트웨어 업데이트, 보안성등의 추가 장점을 제공할 수 있어 차량 제조사에서 더욱 선호하게 된다.

이러한 이더넷 환경에서의 진단통신을 구현하기 위해 "두 아이피" 또는 "도입"이라 불리는 IP기반 진단통신 프로토콜, DoIP(Diagnostic commnication over IP), 이 국제 표준(ISO-13400)으로 정의되었으며, 아래 예시에서와 같이 차량 내/외의 객체들에 의한 네트워크 토폴로지로 구성될 수 있다.

차량 내부에는 외부 테스트 장비와 DoIP 프로토콜로 직접 통신하는 DoIP 노드 개체, CAN과 같이 DoIP가 지원되지 않는 하위 네트워크에 변환된 데이터를 전달하는 DoIP 게이트웨이 개체가 존재하여 차량 네트워크 내 전체 제어기들의 DoIP 프로토콜을 지원하게 된다. DoIP 게이트웨이는 하위 네트워크에 따라 다수 존재할 수 있으며, 외부 테스트 장비의 첫 연결점인 DoIP 엣지 노드(옆 그림의 DoIP Gateway가 엣지 노드이자 게이트웨어 노드가 됨)가 이더넷 활성화 라인 (Activiation Line)에 연결되어 진단 통신의 개시와 종료를 제어하게 된다. 필요에 따라, 활성화 라인은 없지만 차량 내부에 위치하여 외부 테스트 장비와 동일한 기능을 제공하는 차량 내 테스트 장비도 토폴로지상에 구성할 수 있다.

기본적인 동작 절차는,

일반적인 DoIP 동작 절차

  1. 우선 DoIP 서버가 클라이언트와의 기본 통신(예, TCP 접속) 연결 후 Vehicle announce message를 3번 방송하여 차량정보(VIN, logical address, EID, GID)를 클라이언트에 전달한다.
    • VIN (Vehicle Identification Number, ISO 3779) : 차량 확인을 위한 고유 차량별 고유 아이디
    • Logical address : DoIP 개체에 접근하기 위한 고유 주소
    • EID (Entity Identification) : DoIP 응답 메시지를 구분하기 위한 개체들의 고유 아이디 (주로, MAC 주소 사용)
    • GID (Group Identification) : 차량 내 DoIP 개체들의 그룹을 나타내기 위한 아이디 (주로, VIN 대용으로 사용)
  2. 클라이언트가 Vehicle announce message를 수신하지 못한 경우, 필요에 따라 Vehicle identificaiton request 메시지를 통해 해당 정보를 요청할 수 있다.
    • 연결하고자 하는 차량 정보를 Vehicle identification request 메시지 (VIN (17 bytes)을 포함하는)를 통해 요청
    • Vehicle identification response를 통해 VIN, Logical address, EID 그리고 GID를 회신
  3. DoIP 클라이언트가 서버와 전술된 메시지 외 추가 데이터 교환을 필요로 하는 경우, Routing activation request 메시지를 통해 서버의 데이터 교환 준비를 요청하게 된다.
    • Routing activation request
      • Source address (SA) : Routing activation을 요청하는 클라이언트의 논리적 주소(Logical address)
      • Activation type : 활성화 타입으로 차량 제조사별 상의한 정의 존재
    • Routing activation response
      • 클라이언트 논리적 주소 (Logical address of client DoIP entity) : Routing activation을 요청한 클라이언트의 논리적 주소
      • 서버(응답 개체) 논리적 주소 (Logical address of DoIP entity) : 해당요청에 응답하는 서버(응답 개체)의 논리적 주소
      • 라우팅 활성화 응답 코드 (Routing activation response code) : DoIP Gateway의 응답 코드, 진단 메시지의 라우팅 기능이 성공적으로 활성화되었는지를 나타냄
  4. 그 후, UDS 기반 진단 메시지등의 데이터 교환을 진행한다.

 

그렇다면, DoIP 프로토콜은 어느 OSI 7 계층에 위치하는가?

제목에서와 같이 IP기반의 진단통신을 제공하기 위해 DoIP는 아래의 그림에서와 같이 OSI 계층중 전송 계층네트워크 계층에 걸쳐 위치하고 있으며, 실제 프로토콜 구현시에는 TCP와 UDP 소켓을 사용하게 된다. DoIP 프레임 별 사용하는 프로토콜이 상이하므로 주의가 필요하다.

또한, DoIP 프로토콜은 상위 계층의 UDS(Unified diagnostic services) 프로토콜과 연결되어 이더넷 환경에서 진단 서비스 제공의 시작점이 된다.

OSI 7계층내 DoIP 프로토콜 위치