DoIP 붙이려고 할 때 가장 먼저 부딪히는 게 있다.
“차량을 어떻게 찾지?” 이거다.
CAN에서는 그냥 버스에 붙으면 됐는데,
DoIP는 IP 기반이라서 대상 ECU 또는 차량을 먼저 찾아야 한다.
여기서 등장하는 게 바로 Vehicle Identification이다.
쉽게 말하면 이거다.
네트워크 위에서 ‘이 차 누구냐’ 확인하는 과정이다.
Vehicle Identification 한 줄 정리
Vehicle Identification은
DoIP 환경에서 대상 차량 또는 ECU 정보를 탐색(discovery)하는 단계다.
Routing Activation 이전 단계라고 보면 된다.
즉, 누군지 알아야 연결도 한다는 흐름이다.
언제 이걸 쓰게 되냐
보통 이런 상황에서 쓰인다.
- 테스트 장비가 어떤 차량에 붙었는지 모를 때
- 네트워크에 여러 ECU/차량이 있을 때
- 자동으로 대상 장비를 찾고 싶을 때
특히 생산 라인이나 테스트 환경에서는
이 과정이 거의 필수다.
전체 흐름에서 위치는 여기다
DoIP 전체 흐름을 단순화하면 이렇다.
1. Vehicle Identification
2. TCP 연결
3. Routing Activation
4. UDS 통신
여기서 포인트는 이거다.
- 1번이 안 되면, 2번 대상도 못 잡는다
- 수동으로 IP를 알고 있으면 생략 가능하다
즉, 필수는 아니지만 거의 항상 쓰는 단계다.
어떤 방식으로 찾냐
Vehicle Identification은 보통 UDP 기반 브로드캐스트로 동작한다.
테스터가 이렇게 던진다.
"DoIP 지원하는 애들 있으면 응답해라"
그러면 차량 또는 DoIP Entity가 응답한다.
"나 여기 있음, 내 정보는 이거임"
와 이거, 구조는 되게 단순하다.
근데 여기서도 은근히 막힌다.
응답에서 뭘 받냐
응답 메시지에는 보통 이런 정보가 들어온다.
- VIN (차량 식별 번호)
- Logical Address
- EID / GID 같은 식별자
- 추가 옵션 정보
여기서 중요한 건 이거다.
- VIN으로 차량 식별
- Logical Address로 이후 통신 준비
즉, 이 단계는 단순 discovery가 아니라
다음 단계로 넘어가기 위한 정보 수집이다.
실무에서 자주 막히는 포인트
이건 경험상 꽤 자주 나온다.
1) 브로드캐스트 안 먹히는 경우
네트워크 환경에 따라
UDP 브로드캐스트가 막혀 있는 경우가 있다.
이러면 요청은 날렸는데 응답이 안 온다.
이때는 그냥 헤매지 말고
네트워크 설정부터 확인하는 게 빠르다.
2) 응답은 오는데 연결이 안 되는 경우
Vehicle Identification은 성공했는데
TCP 연결이 안 되는 경우도 있다.
이건 보통:
- 포트 문제
- 방화벽
- DoIP 포트 미오픈
이쪽에서 막힌다.
3) 여러 개 응답 오는 경우
테스트 환경에서 ECU가 여러 개면
응답이 여러 개 온다.
이때 기준 없이 고르면
엉뚱한 ECU에 붙는다.
그래서 보통:
- VIN 기준 선택
- Logical Address 기준 필터링
이런 로직을 넣는다.
코드 느낌으로 보면 이런 흐름이다
간단하게 Python 느낌으로 보면 이렇다.
send_vehicle_ident_request()
responses = receive_responses()
for r in responses:
print(r.vin, r.logical_address)
target = select_target(responses)
connect_tcp(target.ip, target.port)
실제로 구현하면 훨씬 복잡하지만,
개념은 이 정도면 충분하다.
다음 단계로 이어보자
Vehicle Identification까지 왔으면
이제 다음은 거의 정해져 있다.
- TCP 연결
- Routing Activation
특히 Routing Activation에서 많이 막히니까
이 흐름을 연결해서 보는 게 중요하다.
이걸 끊어서 보면 계속 헷갈린다.
추천 대상
- DoIP 처음 붙이는 사람
- 차량 탐색 단계에서 막힌 경험 있는 사람
- 자동 테스트 환경 구성하는 사람
한 줄 요약
Vehicle Identification은 DoIP에서 통신 대상 차량을 찾고, 다음 단계로 넘어가기 위한 정보를 수집하는 discovery 단계다.
추천 키워드
DoIP, VID, Vehicle Identification, discovery, Automotive Ethernet, UDS, UDP
DevBJ | No Bio, Just Log #오늘을살자