티스토리 뷰

CAN 통신이란?


CAN (Controller Area Network)은 1985년 Bosch사에서 차량 네트워크용으로 최초로 개발되었습니다. 차량에 필요한 장비들이 늘어남에 따라 결선 및 무게에 대한 문제점이 발생하였고, CAN은 이를 해결하기 위한 대안으로 고려되었습니다. 결국 CAN은 지능형 디바이스 네트워크 구축을 위한 높은 무결성의 시리얼 버스 시스템으로서 차량용 네트워크의 표준으로 부상하였습니다. 자동차 업계에서는 신속하게 CAN을 도입하였으며 1993년에는 ISO에서 국제 표준 규격 (ISO 11898)으로 제정하였습니다. 1994부터 CANopen, DeviceNet 등 CAN에 대한 여러 가지 상위 레벨 프로토콜이 표준화되었습니다. 


CAN은 다수의 CAN 장비간의 효율적인 통신을 가능하게 합니다. ECU(Electronic Control Units)이라 불리는 장비를 통해서 차량을 제어가 되는데 단일 CAN 인터페이스를 활용하여 여러 장비간의 통신이 가능합니다. 아래의 그림은 CAN을 사용하였을 때 효율적으로 통신이 가능함으로 보여주고 있습니다. 


이 통신 방식은 노이즈에 강하고, 프레임을 하드웨어적으로 처리하므로 소프트웨어 처리가 비교적 단순하다는 장점을 가지고 있습니다. 




CAN은 차량용으로 개발되었으므로 가장 보편적인 어플리케이션은 in-vehicle 전자 네트워킹입니다. 차량용 외에도 지난 15년간 CAN의 안정성과 장점이 입증되면서 타 업계에서도 광범위한 어플리케이션에 CAN 버스를 도입하였습니다. 그 일례로 철도용 어플리케이션 (트램, 지하철, 경전철, 장거리 열차 등)에 CAN이 도입되었습니다. 이와 같은 차량 내 여러 네트워크의 다른 레벨에서도 CAN을 찾아볼 수 있습니다. 또한 CAN은 항공기 상태 센서, 네비게이션 시스템, 조종실 내 리서치 PC 등 항공기 어플리케이션에도 적용되었습니다. 뿐만 아니라, 기내 데이터 분석에서부터 엔진 컨트롤 시스템 (연료 시스템, 펌프, 선형 액추에이터 등)에 이르는 다양한 우주 항공 어플리케이션에서도 CAN 버스가 사용됩니다.


CAN의 물리 계층


CAN은 여러 종류의 서로 다른 물리 계층을 가지고 있습니다. 이는 전기 레벨, 임피던스, Baudrate 속도등을 통해서 구분이 됩니다. 일반적으로 사용이 되는 CAN의 물리 계층 종류는 아래와 같습니다.

  • High-Speed CAN : 두 개의 와이어로 실행되며 최대 1 Mb/s 전송 속도로 통신
  • 저속/내고장(fault-tolerant) CAN : 저속/내고장 CAN 네트워크 또한 두 개의 와이어로 실행되며, 최고 125 kb/s 속도로 통신
  • 단일 와이어 CAN 하드웨어 : 최고 33.3 kb/s (고속 모드에서는 88.3 kb/s) 속도로 디바이스와 통신
  • 소프트웨어 선택가능한 CAN 하드웨어 : 소프트웨어 적으로 CAN 인터페이스 적용 가능하며, 모든 온보드 트랜시버 사용 가능

물리 계층을 보면 알 수 있듯이, CAN은 서로 다른 전송 속도를 가지고 있습니다. 이 속도는 트랜시버라는 부품을 통해서 결정이 됩니다. 각 속도에 따라서 최대 1 Mbps 의 high-speed CAN 을 위한 ISO11891, 최대 속도 125kbps 의 low-speed CAN 을 위한 ISO11519 와 single-wire CAN 을 위한 SAE J2411 를 사용하고 있습니다. 


CAN 메시지 


CAN 메시지의 구성은 아래의 그림과 같습니다. CAN은 Arbitration ID를 기반으로 통신을 하게 됩니다. 메시지의 구성은 그림을 통해서 확인할 수 있습니다. 


Arbitration ID를 통해서 CAN 버스에 들어오는 메시지의 우선순위를 구할 수 있습니다. 이 ID는 CAN 버스의 노드가 가지는 유일한 식별자 역할을 하게되는데 11비트 혹은 29비트로 사용을 할 수 있습니다. 기본적으로 11비트로 이용을 하고, 확장시 29비트를 사용하게 됩니다. 이 ID가 낮으면 낮을 수록 더 높은 우선 순위를 가지는 식별자로 CAN 통신시에는 인식을 할 수 있습니다. 




이 글에서는 CAN 통신에 대한 일반적인 개요에 대해서 설명드렸습니다. 앞으로 추가적으로 NI 제품군을 이용하여 CAN 통신을 하는 방법에 대해서 알아보도록 하겠습니다.


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요



댓글