Posts
All the articles I've posted.
-
DoIP에서 ACK를 받았는데 UDS 응답이 없다: Diagnostic ACK/NACK를 제대로 쓰는 법
DoIP에서 Diagnostic ACK를 봤는데 UDS 응답이 없으면 보통 'ACK를 UDS 응답으로 착각'한 경우가 많다. DoIP ACK/NACK는 DoIP 레벨 신호고, UDS 응답(Positive/Negative/NRC)은 별개다. ACK/NACK를 디버깅 힌트로 쓰는 관점을 정리한다.
-
DoIP Functional Address는 왜 응답이 이상하게 보일까
DoIP functional request는 특정 ECU 하나를 대상으로 하는 physical request와 다르다. 하나의 요청에 여러 ECU가 응답할 수 있고, 응답 순서도 보장되지 않는다. 그래서 response collection, source tracking, timeout policy가 중요하다.
-
lwIP에서 ISR에서 바로 보내면 가끔 터진다: tcpip_thread로 넘기는 패턴 정리
이더넷 IRQ에서 패킷 받자마자 lwIP API를 호출하면, 어떤 보드에서는 잘 돌아가고 어떤 보드에서는 랜덤하게 죽는다. 원인은 대부분 컨텍스트/락 문제다. ISR에서 할 일과 tcpip_thread로 넘길 일을 분리하는 패턴을 짧게 정리한다.
-
-
DoIP 통신이 가끔 끊긴다: Alive Check / TCP Keepalive / Tester Present를 분리해서 보자
DoIP는 TCP라서 붙기만 하면 끝인 줄 아는데, 실무에서는 가만히 두면 어느 순간 세션이 끊기는 경우가 많다. Alive Check, TCP Keepalive, UDS Tester Present는 목적이 다르다. 끊김을 줄이려면 이 셋을 분리해서 설계해야 한다.
-
DoIP에서 Tester Present 왜 계속 보내는 걸까
DoIP 디버깅하다 보면 은근 자주 보이는 패킷이 하나 있다. 처음 보면 좀 이상하다. 특별한 데이터도 없음 ECU 제어도 아님 읽는 것도 아님 근데 계속 주기적으로 날아간다. 이게 바로: Tester Present Session 유지 메시지 다. 오
-
DoIP에서 Session Control 먼저 이해해야 하는 이유
DoIP 붙이고 나서 많이 하는 착각이 하나 있다. “연결됐으면 이제 다 되는 거 아닌가?” 근데 실제 ECU는 그렇지 않다. TCP 연결 성공 Routing Activation 성공 UDS 요청도 감 근데 중요한 기능은 안 된다. 왜냐면 아직 ECU
-
DoIP Security Access, 여기서부터 ECU 성격이 확 달라진다
DoIP로 기본 통신까지 붙고 나면 다음에 거의 반드시 만나게 되는 게 있다. 바로: Security Access Seed / Key Unlock 절차 이쪽이다. 처음에는 그냥 인증 정도로 보이는데, 실제로 들어가 보면 ECU마다 구현 차이도 크고 디
-
DoIP timeout 처리, Response Pending 제대로 이해해야 덜 헤맨다
DoIP 구현하다 보면 결국 여기까지 온다. 요청 보냈다 ECU 응답 기다린다 근데 바로 응답 안 온다 이때 timeout을 어떻게 처리하느냐가 꽤 중요하다. 특히 Response Pending(0x78) 을 제대로 처리 안 하면 멀쩡한 ECU도 실패
-
DoIP에서 응답이 이상할 때, Negative Response부터 봐야 한다
DoIP 디버깅하다 보면 이런 순간이 온다. 패킷은 정상 Routing Activation도 성공 ECU 응답도 옴 근데 결과가 실패다. 이럴 때 대부분은 UDS Negative Response 를 보고 있는 상황이다. 처음에는 “통신은 되는데 왜 실
-
DoIP Diagnostic Message, UDS가 실제로 어떻게 실리는지 보자
앞에서 헤더까지 봤으면 이제 진짜 중요한 걸 볼 차례다. UDS 메시지가 DoIP 위에서 실제로 어떻게 전달되는지 이 부분이다. 결론부터 말하면 단순하다. DoIP는 “운반”, UDS는 “내용” 즉, DoIP는 박스고, UDS는 그 안에 들어가는 물건