CAN 통신
왜 배우는가: CAN 통신은 차량 안 제어기들이 정보를 주고받는 기본 방식이라 차량 네트워크 설계와 고장 진단을 이해하는 출발점이다. 시험에서는 통신 방식, 중재 원리, 프레임 구조를 묻는 문항으로 반복해 나온다.
출제 이력: 제128회 4교시 3번, 제125회 3교시 2번, 제122회 1교시 13번
1. 한 줄 정의와 핵심 키워드
제어기 영역 네트워크(CAN)는 호스트 컴퓨터 없이 2선식 버스로 메시지를 주고받는 직렬 통신 규격이다.
CAN 통신은 차량 안에 흩어진 전자제어장치(ECU)들이 정보를 공유하기 위해 사용하는 통신이다. 핵심 키워드는 다음과 같다.
- 메시지 기반 프로토콜: 노드의 주소 대신 메시지 자체를 단위로 통신하는 방식이다.
- 다중 마스터 방식: 모든 노드가 전송 권한을 가져 필요할 때 버스를 점유할 수 있는 구조이다.
- 중재: 동시에 송신하는 메시지의 식별자를 비교해 전송 순서를 정하는 과정이다.
- 브로드캐스트 방식: 한 노드의 송신을 모든 노드가 수신하고 각자 필터링하는 방식이다.
- 내용 주소 지정: 메시지 내용 자체가 수신 주소 역할을 하는 방식이다.
- 2선식 버스: 두 가닥 선으로 모든 제어기를 연결하는 배선 구조이다.
- 비동기식 직렬 통신: 비트를 한 줄로 차례대로 보내며 별도의 클록선을 두지 않는 방식이다.
- 오류 검출과 처리: 비트 감시, 순환 중복 검사(CRC), 응답 확인(ACK)으로 전송 오류를 찾아내고 재전송하는 기능이다.
2. 개념 풀이
CAN 통신은 자동차 안의 여러 제어기가 센서 값과 제어 명령을 서로 공유하도록 설계된 표준 통신 규격이다. 정식 규격은 ISO 11898로 규정되어 있으며, 연결된 모든 노드가 같은 버스를 공유하는 것이 개념의 출발점이다. 제어기를 추가할 때 개별 배선을 새로 늘리지 않고 버스에 연결하면 되므로 확장성이 높다.
CAN은 다중 마스터 방식으로 동작한다. 모든 노드가 전송 권한을 가지므로 전송할 메시지가 생긴 노드는 언제든 버스에 송신을 시도한다. 두 노드가 같은 시점에 송신을 시작하면 중재로 순서를 정하며, 메시지 식별자(ID)를 비트 단위로 비교해 식별자가 낮은 메시지가 이긴다. 이긴 메시지는 손실 없이 전송되고, 진 노드는 버스가 비었을 때 다시 송신을 시도한다.
식별자가 낮은 메시지가 중재에서 이겨 먼저 전송된다. 중재는 중앙 중재기 없이 노드들이 버스 신호를 함께 읽으며 이루어진다.
CAN은 브로드캐스트 방식의 버스이다. 한 노드가 보낸 메시지는 버스에 연결된 모든 노드가 수신하고, 각 노드는 하드웨어 필터로 자신에게 필요한 식별자의 메시지만 처리한다. 메시지에는 수신 노드의 주소가 없고 메시지 내용이 곧 주소 역할을 하므로, 이를 내용 주소 지정이라 부른다. 특정 노드 하나에만 보내는 기능은 기본적으로 제공되지 않는다.
물리적으로는 두 가닥 선의 전압 차이로 비트를 전달하는 차동 방식이다. 각 노드는 CAN 컨트롤러와 트랜시버로 구성되며, 컨트롤러는 프레임 생성과 오류 검출을 맡고 트랜시버는 버스 신호의 전기적 변환을 맡는다. 표준 형식의 식별자는 11비트이고, 확장 형식의 식별자는 29비트이다. 클래식 CAN의 데이터 필드는 8바이트 이하이다.
CAN의 전송 속도는 표준상 최대 1Mbit/s이다. 저속 CAN은 전송 속도가 125kbit/s 이하이고, 고속 CAN은 125kbit/s 이상이다. 저속 CAN은 바디 전장 계통에, 고속 CAN은 파워트레인과 섀시처럼 실시간 제어가 필요한 계통에 쓰인다.
오류 검출은 송신 노드가 자신이 보낸 비트를 버스에서 다시 읽어 비교하는 비트 감시, 프레임에 실린 CRC 검사, 수신 노드가 응답하는 ACK 확인으로 이루어진다. 오류를 감지한 노드는 오류 프레임을 보내고, 해당 메시지는 재전송된다.
3. 등장 배경과 필요성
자동차에 엔진, 변속, 제동, 편의 장치가 전자제어로 바뀌면서 제어기의 수가 크게 늘었다. 제어기들은 서로 센서 값과 상태를 주고받아야 하는데, 장치마다 개별 배선을 연결하면 배선 하네스가 복잡해지고 설계와 정비가 어려워진다. CAN은 이 문제를 풀기 위해 복잡한 배선 하네스를 두 가닥 버스로 대체하는 목적으로 개발되었다.
1983년 보쉬(Bosch)가 개발에 착수했다. 1986년 미국자동차공학회(SAE) 컨퍼런스에서 프로토콜이 공식 발표되었다. 1987년에는 인텔과 필립스가 최초의 CAN 컨트롤러 칩을 시장에 내놓았다. 1991년 보쉬가 CAN 2.0 규격을 발표했다. 1993년 국제표준화기구(ISO)가 CAN 표준 ISO 11898을 제정했다. 이 표준은 데이터 링크 계층을 ISO 11898-1로, 고속 물리 계층을 ISO 11898-2로, 저속 내결함성 물리 계층을 ISO 11898-3으로 나눠 규정한다.
CAN은 제어기 사이 정보 공유가 필수가 되면서 파워트레인과 섀시 제어의 기반 통신으로 자리 잡았다. 엔진, 변속, 제동, 조향이 같은 버스로 상태를 공유하면 기능을 나눠 개발하고 새 기능을 추가하기가 쉬워진다. 오류 검출과 처리 성능이 우수하고 실시간 제어에 적합하다는 점이 이 채택을 뒷받침한다.
이어지는 내용
- 4. 구성요소·원리·절차
- 5. 관련 법령·기준·표준
- 6. 유형과 비교
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기