-
CAN은 다중통신망(Multi Master Network)이며 CSMA/CD+AMP(Carrier Sense Multiple Access/Collision Detection with Arbitration on Message Priority) 방식을 이용
- 다중통신망
- 하나의 통신 케이블 회선이나 무선채널을 통해 다수의 독립된 통신을 혼선되지 않게 기술적으로 전송하는 통신
- CSMA/CD
- CS (Carrier Sense) : 버스 상태가 idle 상태 일 때 전송
- idle : 프로세스가 실행하고 있지 않은 상태
- MA (Multiple Access) : 다중 노드들이 동일한 네트워크에 연결되는 것이 가능
- LAN (근거리 통신 망)의 통신 프로토콜 종류중 하나
- AMP (Arbitration on Message Priority)
-
먼저 CAN 노드에 메시지를 보내기 전에 CAN 버스라인이 사용 중인지를 파악 (또한 메시지 간 충돌 검출을 수행)
-
메시지의 처음부분에 CAN 네트워크상에서 각각의 노드를 식별할 수 있도록 각 노드마다 유일한 식별자(ID-11bits 또는 29bits) 를 가지고 있음
-
네트워크상에 연결된 모든 노드는 네트워크상에 있는 메시지를 수신한 후 자신이 필요로 하는 식별자의 메시지인 경우에만 받아들이고, 그렇지 않은 경우의 메시지는 무시
- 네트워크상(CAN 통신 라인)에 흘러 다니는 여러 노드의 데이터들이 동시에 사용자가 필요로 하는 노드로 유입되는 경우에는 식별자의 숫자를 비교하여 먼저 받아들일 메시지의 우선순위를 정하는데, 식별자의 숫자가 낮을수록 우선순위가 높음
- 각 CAN 메시지는 11비트의 식별자(CAN 2.0A), 또는 29비트의 식별자(CAN 2.0B)를 가지며, CAN 메시지의 맨 처음 시작부분에 위치
- 식별자는 메시지의 형태를 식별시켜주는 역할과 메시지에 우선순위를 부여하는 역할