MCU, ECU 끼리 서로 통신하기 위해서 설계된 통신 규격이다. 예전에는 이래 그림처럼 CAN이 없을 때는 uart라는 1대1 연결 프로토콜을 사용하다 배선의 증가로 인한 유지보수 문제와 차량 성능 하락이 발생했고 이것을 해결한 것이 can통신 이다.
CAN은 기본적으로 아래 그림과 같은 구조를 이루고 있다
~
데이터 송신간 충돌을 감지하여 충돌이 발생 할 수 있다면 대기 후 다시 전송하게 된즉 CAN버스가 유휴상태(idle)일 때 전송된다. 하지만 약간의 지연이 유발되기 때문에 메세지의 우선 순위가 필요하다 따라서 CAN 버스에서 두 개의 노드들이 동시 전송 한다면 메세지는 ID를 가지며 더 낮은 번호가 더 높은 우선 순위를 가진다
ID 우선순위로 인하여 데이터 교환이 이루어지기때문에 멀티캐스팅(multicasting)과 브로드캐스팅(broadcasting)이 가능해진다
다양한 에러 감지 메커니즘이 서로 보완적으로 에러를 감지하기 때문에 안전성이 높다
can 네트워크에는 감독자 노드가 필요가없다. 버스가 비어 있을 때(idle)라면 언제든지 메시지 전송이 가능합니다. 동시에 전송되려고 한다면 우선 순위에 의해서 전송 순서가 정해진