CAN 버스
CAN(Controller Area Network) 버스는 자동차 내부 IC 칩 간 통신을 위해 개발된 통신 규격이다. 자동차는 여타 전자기기와 달리 급변하는 외부 환경에 높은 내결함성을 가지고 PC 등의 컴퓨터 대비 매우 큰 자동차의 전체를 제어해야 하므로 CAN 버스는 그에 맞추어 여러 에러 감지/복구 메커니즘을 가진다.
특징[편집 | 원본 편집]
- 최대 1Mb/s까지 되는 비트레이트의 신호를 25m까지 전달 가능한 고출력 통신 규격으로 두 차동 버스 사이를 120Ω의 높은 저항을 걸어 신호가 되돌아가는 것을 방지한다.
- 2개의 회선을 가지고 Peer to Peer(P2P) 통신 방식으로 통신하며, 우선순위에 따라 먼저 권한을 획득한 장치가 있으면 회선 간 0.5V 이하(예:2.5V로 일치) 균형 상태의 recessive state를 0.9V 이상 차이(예:3.5V vs 1.5V) 전위차를 만드는 dominant state로 바꾸고 통신한다.
- 각 메세지는 11비트나 29비트 길이를 갖는 식별자로 시작한다.
- 이 식별자는 동시에 같은 회선에 여러 장치가 전송한 후 다시 읽는다. 그리고 앞자리부터 보냈을 때 0을 먼저 보낸 장치가 회선의 주도권을 잡는다
- 이때 0이 우성 비트, 1이 열성 비트가 된다. 모든 장치가 1을 보내면 회선 상태는 1로 읽히며, 하나의 장치라도 0을 보내는 순간 회선 신호는 0이 된다. 따라서 ID가 낮은 장치가 우선권을 잡는다.