본문 바로가기
프로젝트/CAN_OBDII

CAN 통신 ID 값이 뭘 의미하는지 & OBD Broadcast에 관하여

by eeeun:) 2022. 1. 28.
반응형

CAN 통신을 이해한 줄 알았는데 막상 코드로 구현하려니 헷갈리는 부분이 너무 많았다.

이번 글을 통해 내가 헷갈렸던 부분을 정리하려고 한다.

 

 

CAN 통신 수신 송신 데이터

CAN ID는 11비트를 사용하는 경우 반드시 0x7DF로 해야 한다.

ECU의 브로드캐스트 주소 : 0x7DF

 

이 부분이 헷갈렸다.

 

ECU의 정보를 가져오기 위해 ID값에 브로드캐스트 address 값만 넣으면 ID값이 왜 필요한 거지?

각각의 ECU는 모든 메시지를 받고 이 메시지가 자신에게 필요한 메시지인지를 판별한다는데,

브로드캐스트 주소로 메시지를 보내면 도대체 ECU는 이 메시지가 자신에게 필요한 메시지인지 어떻게 판별하지?

자동차별로 ID값이 다르다는데 그 ID값을 어떻게 찾지?

OBD 정보를 얻기 위해서 브로드캐스트 주소로 값을 보내면 되는데 자동차별로 ID값이 왜 주어져있는 거지?

 

다 적지는 못했지만 수많은 질문이 머릿속을 오갔다..

이미 CAN과 OBD에 대해 잘 아시는 분들에게는 너무 웃긴 질문들이겠지만..

나는 이걸 고민들로 몇 주간 힘들었다..

 

일단 브로드캐스트라는 단어 때문에 고생을 많이 했다.

최대 8개의 ECU들(아마 자동차의 정보를 담고 있는 ECU들이 따로 있는 것 같다)이 Mask와 Filter로 0x7DF의 ID값을 지정해서 받는다.

브로드캐스트라는 주소가 따로 있는 것이 아니라 0x7DF는 OBD PID를 통해 정보를 송신할 수 있는 ECU들이 필터링하는 주소이다!

OBD의 정보를 담고 있는 ECU의 한정 브로드캐스트 주소랄까..?

 

브로드캐스트 주소라는 것을 CAN 통신 전체의 브로드캐스트 주소라고 생각을 했기에 너무 헷갈렸다.

브로드캐스트 주소라고 부르는 것은 OBD안에서 주소를 편하게 지칭하기 위해 붙여진 이름인 거 같다.

 

0x7DF 브로드캐스트 주소라는 것은 OBD 한정 브로드캐스트 주소이기에, 실제 자동차 내부에서 다른 ECU들은 자동차사에서 정의한 ID값들로 통신을 하게 된다.

그렇기에 ID 값에 따른 우선순위도 가능하다.

 


 

수신 CAN 메시지는 밑의 그림과 같은 형식이다.

 

송신 CAN 메시지는 밑의 그림과 같은 형식이다.

 

이때 응답으로 오는 CAN ID는 0x7E0 ~ 0x7E7 범위이다.

한마디로 자동차에 최대 8개의 OBD의 정보를 담고 있는 ECU가 있다는 뜻이다.

 

728x90

'프로젝트 > CAN_OBDII' 카테고리의 다른 글

CAN OBDII 통신 관련 링크 & 파일 모음  (0) 2022.01.28
CAN통신 MCP2515 Mask와 Filter  (0) 2022.01.27
CAN 통신 모듈(MCP2515)  (0) 2022.01.26
Can Controller, CAN Transceiver  (0) 2022.01.25
CAN 통신 프레임(Frame) 타입  (0) 2022.01.25

댓글