CAN(Controller Area Network)

agnusdei·2025년 4월 20일
0

Network

목록 보기
415/419

CAN(Controller Area Network)에 대한 설명

1. 개요

CAN(Controller Area Network)은 1986년 독일의 Robert Bosch GmbH에서 개발한 직렬 통신 프로토콜로, 원래는 자동차 내부의 전자 제어 장치(ECU, Electronic Control Unit) 간의 실시간 통신을 위해 설계되었습니다. 멀티 마스터(Multi-Master) 방식의 통신을 지원하는 필드버스 기술로, 높은 신뢰성과 내노이즈성을 바탕으로 자동차 분야를 넘어 산업 자동화, 의료 장비, 선박, 항공기 등 다양한 분야로 응용 범위가 확장되었습니다.

2. CAN의 기술적 특징

2.1 물리적 특성

  • 전송 매체: 차폐된 꼬임 쌍선(Shielded Twisted Pair) 케이블을 주로 사용
  • 신호 방식: CAN_H(High)와 CAN_L(Low) 두 신호선의 전압 차이로 데이터 전송
  • 전송 속도: 최대 1Mbps(통신 거리 40m 기준), 거리에 따라 속도 제한(예: 1km 거리에서는 50kbps)
  • 버스 토폴로지: 단일 버스에 다수의 노드가 연결되는 구조로, 종단 저항(120Ω)을 양 끝에 배치

2.2 데이터 프레임 구조

CAN 프로토콜은 다음과 같은 프레임 형식을 사용합니다:
1. SOF(Start of Frame): 프레임의 시작을 알리는 1비트
2. ID 필드:

  • 표준 CAN(CAN 2.0A): 11비트 식별자
  • 확장 CAN(CAN 2.0B): 29비트 식별자(11비트 기본 + 18비트 확장)
  1. RTR(Remote Transmission Request) 비트: 데이터 요청 여부 표시
  2. 제어 필드: 데이터 길이 코드(DLC, 0~8바이트) 포함
  3. 데이터 필드: 최대 8바이트의 실제 데이터
  4. CRC(Cyclic Redundancy Check) 필드: 오류 검출용 15비트
  5. ACK(Acknowledgment) 필드: 수신 확인용 2비트
  6. EOF(End of Frame): 프레임 종료 표시 7비트

2.3 통신 특성

2.3.1 메시지 기반 통신

CAN은 노드 간 직접 통신이 아닌 메시지 브로드캐스팅 방식을 사용합니다. 모든 메시지는 고유한 식별자(ID)를 가지며, 수신 노드는 자신에게 필요한 메시지만 선택적으로 수신합니다.

2.3.2 우선순위 기반 비파괴적 경쟁 방식

여러 노드가 동시에 전송을 시도할 경우, CSMA/CD+AMP(Carrier Sense Multiple Access/Collision Detection with Arbitration on Message Priority) 방식으로 충돌을 해결합니다. 낮은 ID 값을 가진 메시지가 높은 우선순위를 가지며, 충돌 발생 시 우선순위가 높은 메시지가 버스 사용권을 획득합니다.

2.3.3 오류 검출 및 처리 기능

CAN은 다음과 같은 5가지 오류 검출 메커니즘을 갖추고 있습니다:
1. CRC(Cyclic Redundancy Check): 데이터 전송 오류 검출
2. 프레임 검사(Frame Check): 프레임 형식 검사
3. ACK 검사(Acknowledgement Check): 수신 확인 실패 검출
4. 비트 모니터링(Bit Monitoring): 송신 비트와 버스 상태 비교
5. 비트 스터핑(Bit Stuffing): 연속된 5개 이상의 동일 비트 방지

오류 발생 시 오류 플래그를 전송하여 모든 노드에게 알리고, 오류 카운터를 증가시킵니다. 오류가 지속되면 해당 노드는 오류 패시브(Error Passive) 상태를 거쳐 버스오프(Bus Off) 상태로 진입하여 네트워크 안정성을 확보합니다.

3. CAN의 발전 및 변형

3.1 CAN 2.0

  • CAN 2.0A: 11비트 ID를 사용하는 표준 CAN
  • CAN 2.0B: 29비트 확장 ID를 지원하는 확장 CAN

3.2 CAN FD(Flexible Data-rate)

기존 CAN의 한계를 극복하기 위해 2012년 도입된 개선된 버전으로, 다음과 같은 특징이 있습니다:

  • 데이터 필드가 최대 64바이트까지 확장
  • 중간에 비트 레이트를 전환하여 최대 5Mbps까지 데이터 전송 속도 증가
  • 보다 강화된 CRC 오류 검출

3.3 상위 프로토콜

CAN은 OSI 모델의 물리 계층과 데이터 링크 계층만 정의하므로, 다음과 같은 상위 계층 프로토콜과 함께 사용됩니다:

  • CANopen: 산업 자동화, 의료 장비 등에 사용되는 응용 계층 프로토콜
  • DeviceNet: 공장 자동화 시스템에 사용되는 CAN 기반 네트워크 프로토콜
  • J1939: 상용 차량 및 중장비에 사용되는 SAE 표준
  • TTCAN(Time-Triggered CAN): 결정적 시간 동기화 통신을 위한 프로토콜

4. CAN의 응용 분야

4.1 자동차 산업

CAN은 현대 자동차에서 가장 널리 사용되는 네트워크 프로토콜로, 다음과 같은 시스템에 적용됩니다:

  • 엔진 제어 시스템
  • 브레이크 시스템(ABS, ESC)
  • 변속기 제어 시스템
  • 에어백 및 안전 장치
  • 차체 제어 시스템(조명, 창문, 도어 등)
  • ADAS(Advanced Driver Assistance Systems)

4.2 산업 자동화

산업 현장에서 CAN은 다음과 같은 용도로 활용됩니다:

  • 공장 자동화 시스템의 센서/액추에이터 네트워크
  • 모션 제어 시스템
  • 로봇 제어 시스템
  • PLC(Programmable Logic Controller) 간 통신

4.3 기타 응용 분야

  • 의료 장비: MRI, CT, X-ray 장비 등의 내부 통신
  • 건물 자동화: 엘리베이터, HVAC 시스템 등의 제어
  • 해양/선박: 선박 내 각종 장비 제어 및 모니터링
  • 항공/우주: 비행 제어 시스템, 위성 내부 통신

5. CAN의 장점 및 한계

5.1 장점

  • 높은 신뢰성: 강력한 오류 검출 및 처리 메커니즘
  • 실시간성: 우선순위 기반의 메시지 중재로 결정적 응답 시간 보장
  • 내노이즈성: 차동 신호 방식으로 전자기 간섭(EMI)에 강인
  • 비용 효율성: 저렴한 하드웨어로 구현 가능
  • 분산 제어: 중앙 제어기 없이도 분산 시스템 구축 가능
  • 유연성: 노드의 추가/삭제가 용이한 확장성

5.2 한계

  • 제한된 데이터 길이: 기본 CAN은 한 프레임당 최대 8바이트(CAN FD는 64바이트)
  • 제한된 대역폭: 최대 1Mbps(CAN FD는 5Mbps) 속도 제한
  • 노드 수 제한: 물리적으로는 최대 120개 노드까지 연결 가능하나, 실질적으로는 ID 충돌 및 부하 문제로 더 적은 수 사용
  • 네트워크 길이 제한: 고속에서 짧은 거리만 가능(예: 1Mbps에서 40m)
  • 보안 기능 부재: 초기 설계 시 보안이 고려되지 않아 별도의 보안 대책 필요

6. CAN의 최신 동향 및 미래

6.1 자동차 네트워크 진화

최신 자동차에서는 CAN과 함께 다음과 같은 고속 네트워크도 함께 사용되고 있습니다:

  • FlexRay: 고속(최대 10Mbps) 결정적 통신을 위한 프로토콜
  • Automotive Ethernet: 최대 1Gbps 속도의 차량용 이더넷
  • LIN(Local Interconnect Network): 저비용, 저속 네트워크(CAN의 보조 역할)
  • MOST(Media Oriented Systems Transport): 멀티미디어 데이터 전송용 네트워크

6.2 보안 강화

자동차 네트워크의 보안이 중요해지면서, 다음과 같은 보안 기능이 CAN 시스템에 추가되고 있습니다:

  • 메시지 인증 코드(MAC) 도입
  • 암호화 통신
  • 침입 탐지 시스템(IDS) 적용
  • 안전한 부팅 및 펌웨어 업데이트

6.3 TSN(Time-Sensitive Networking)과의 통합

실시간 이더넷 기술인 TSN과 CAN의 장점을 결합한 새로운 통신 프로토콜들이 연구되고 있습니다.

7. 결론

CAN은 30년 이상의 역사를 가진 입증된 통신 프로토콜로, 실시간성, 신뢰성, 비용 효율성을 바탕으로 자동차 및 산업 환경에서 널리 사용되고 있습니다. CAN FD와 같은 개선된 버전과 다양한 상위 프로토콜의 발전으로 응용 범위가 계속 확장되고 있으며, 여전히 현대 임베디드 시스템의 통신에서 중요한 역할을 담당하고 있습니다. 다만, 대용량 멀티미디어 데이터나 고속 제어 시스템을 위해서는 이더넷과 같은 고속 프로토콜과의 상호 보완적인 사용이 필요합니다. 향후에도 CAN은 자동차 및 산업용 네트워크의 기반 기술로서 계속 발전해 나갈 것으로 예상됩니다.

어린이 버전 요약

CAN은 '자동차의 신경망'과 같은 특별한 통신 방식이에요! 우리 몸에 있는 신경이 뇌와 근육, 눈, 귀 등을 연결해서 정보를 전달하듯이, CAN은 자동차 안의 여러 컴퓨터들을 하나의 선으로 모두 연결해요.

예를 들어, 운전자가 브레이크 페달을 밟으면 브레이크 센서가 "브레이크가 밟혔어요!"라는 메시지를 CAN 선을 통해 보내고, 이 메시지는 엔진 컴퓨터, 바퀴 제어 컴퓨터 등 여러 장치에 동시에 전달돼요. 각 장치는 필요한 메시지만 골라서 반응하기 때문에 아주 효율적이죠!

CAN은 아주 튼튼하게 만들어져서 전기적 간섭이나 노이즈에도 메시지가 잘못 전달되지 않아요. 또한 중요한 메시지(예: 브레이크 관련)는 덜 중요한 메시지(예: 라디오 볼륨 조절)보다 먼저 전송되게 할 수 있어서, 안전에 매우 중요한 역할을 한답니다!

처음에는 자동차에서만 사용했지만, 지금은 병원 장비, 공장의 로봇, 엘리베이터 등 다양한 곳에서도 CAN을 사용하고 있어요. 우리 생활 주변의 많은 기계들이 CAN 덕분에 더 똑똑하고 안전하게 작동하고 있답니다!

0개의 댓글