can통신 기초
Can통신이란 무엇인가?
세상에는 다양한 통신 프로토콜들이 존재하는데
컴퓨터에 랜선을 연결해서 인터넷을 사용할 때 쓰는 TCP/IP 통신, WiFi 통신이 대표적인 예시이다.
CAN도 수 많은 통신 프로토콜 중 하나이다.
통신이라는 것은 서로 다른 두 주체가 데이터를 주고 받는 것을 의미한다.
자동차 안에는 굉장히 많은 제어기가 들어가 있다. 여기서 제어기는 일종의 컴퓨터라고 생각하면 된다.
핸들(조향장치)를 컨트롤 하는 제어기, 브레이크를 컨트롤 하는 제어기, 에어백을 컨트롤 하는 제어기, 스마트키 모듈을 컨트롤하는 제어기 등등.. 아주 많은 수의 제어기가 자동차 안에 들어가있다.
그리고 이러한 제어기들은 서로 정보를 주고 받을 필요가 있는데, 이 때 사용하는 통신 프로토콜이 바로 CAN 통신이다.
CAN 통신의 가장 큰 특징은 토폴로지가 버스형 토폴로지 라는 것인데, 용어가 낯설겠지만 별 것 아니다.
위 그림처럼 가운데 공통으로 사용하는 통신선을 두고,
통신에 참여하려는 제어기들은 모두 여기에다가 선을 연결해서 통신에 참여하면된다.
이때 저 공통의 선을 버스라고 부르기 때문에 버스형 토폴로지이다.
버스형 토폴로지에는 큰 장점이 있는데, 그것을 위 그림으로 나타내보았다.
새로운 제어기들이 통신에 참여 할 때,
그냥 공통선에만 바로 연결하면 된다.
또한, 기존에 통신에 참여하던 제어기를 떼고싶다면, 마찬가지로 공통선에서 연결된 선만 잘라내면 된다.
그런데 통신에 참여하는 모든 제어기가 공통의 버스선에 연결돼있기 때문에 단점도 있다.
통신에 참여하는 제어기 중에 한 개가 갑자기 비정상적으로 동작하면서 통신선 전체를 고장나게 해버리면
다른 제어기들도 모두 통신이 불가능하다.
왜냐면 모두 공통의선을 사용하기 때문이다.
이러한 상황을 방지하려고 캔 프로토콜에서는 BusOff 라는 개념을 도입했는데 이것은 나중에 알아보자.
CAN 통신은 아주 커다란 특징이 있는데,
주고받는 메세지에 Source Address, Destination Address가 없다는 것이다.
우리가 사용하는 인터넷 (Tcp/ip 프로토콜)의 경우 주고 받는 메세지에 들어있는 내용을 뜯어보면 메세지를 보내는 컴퓨터의 ip주소와 맥주소, 메세지를 받는 컴퓨터의 ip주소와 맥주소가 적혀있고 이를 바탕으로 수신자에게 메세지가 전송된다.
그런데 can에서는 메세지안에 송신자.수신자가 누구인지 쓰여있지않다.
can통신에서 모든 메세지는 브로드캐스트(broad cast) 방식이다.
용어가 낯설 수 있는데 별거 아니다. 버스에 연결된 모든 제어기에게 메세지를 송신하는걸 브로드캐스트라고 한다.
can통신에서는 버스 라는 하나의 공통선이 있고, 모든 제어기는 이 버스와 연결되어있다. 또한 모든 메세지가 브로드캐스트 방식으로 송신된다. 송신을 하면 버스에 연결된 모든 제어기에게 메세지가 전달 되기 때문에, 이 메세지를 받아서 쓸지 말지는 받는 쪽에서 결정한다.
이것이 캔의 첫번째 특징이다.
신입사원이 알아야 할 CAN 통신의 모든 것
강의를 진행하고 있습니다.
https://inf.run/Fbv2
'자동차 임베디드 SW > CAN통신 & LIN통신' 카테고리의 다른 글
CAN 통신 BaudRate과 Bus Load (3) | 2022.06.18 |
---|---|
CAN 통신에 대하여(3) 시그널의 개념. Factor , Offset 등등 (0) | 2022.06.15 |
CAN 통신에 대하여(2). 메세지의 ID (4) | 2022.06.15 |
J1939 에 대하여 (CAN 진단통신) (0) | 2022.06.02 |
CAN , CAN FD 종단저항 이슈 (4) | 2022.05.31 |