2009년 6월 23일 화요일

CAN Protocol

 단일 네트워크를 위한 CAN(Controller Area Network) 프로토콜

 

자동차 내부의 각종 제어 장치들간의 통신을 위해 개발되고, ISO 국제 표준으로 제정된  CAN(Controller Area Network)은 지난 10여년 이상 자동차를 비롯하여, 공장자동화, 의료기기, 우주항공, 크레인, 파이프라인 등 다양한 산업 분야에서 적극 사용되고 있다. <편집자 주>

 

CAN(Controller Area Network)은 원래 자동차내의 각종 계측제어 장비들간에 디지털 직렬 통신을 제공하기 위하여 1988BoschIntel에서 개발된 차량용 네트위크 시스템이다. 처음 CAN을 개발하게 된 동기는 고객들의 차량에 대한 더욱더 많은 기능상의 요구들이 대부분은 전자식으로 작동되며 더욱 많은 배선을 의미하는 또 다른 온-보드 시스템과의 어떤 통신 형태를 필요로 했기 때문이다. 또한 현대 자동차에서의 내부-ECU 통신에 필요한 꾸준히 증가하고 있는 거대한 배선 작업의 문제에 대한 해결책을 제공하기 위해서이기도 하다. 그들의 결론은 모든 온-보드 주변장치들이 부착될 수 있는 하나의 단일 네트워크 버스를 설계하는 것이었다.

 

CAN은 다른 자동화 통신망들에 비하여 가격 대 성능비가 우수하며, 지난 수년간 차량내의 열악한 환경에서 성공적으로 동작되어 신뢰도가 검증된 통신망이라 할 수 있다. CAN(chip)은 이미 인텔, 모토롤러, 필립스, NEC, 히타치, 지멘스 등 많은 회사에서 개발하여 상품화했다. CAN은 마스터/ 슬레이브 (master/ slave), 다중 마스터 (multiple master), 피어 투 피어 (peer to peeer) 등을 지원하는 매우 유연성 있는 네트워크이다. 특히 공장의 열악한 환경이나 고온, 충격이나 진동, 노이즈가 많은 환경에서도 잘 견딜 수 있다. 이러한 장점들로 최근에 와서 CAN은 공장자동화와 공정의 분산제어와 같은 각종 산업설비에서 제어 및 자동화 관련 장비들간에 데이터 교환을 위한 통신망으로도 널리 사용되고 있다.

 

처음 CAN 버스는 마이크로컨트롤러들 간의 통신을 위해 설계되었다. 자동차 분야에서 이것은 엔진 관리 시스템, 변속장치 제어, 계기 팩, 그리고 차체 전자 기술 같은 온-보드 전자 제어 장치(ECUs)들 간의 정보 교환에 사용되곤 한다.

 

이론적으로 하나의 단일 네트워크에는 최대 2,032개의 디바이스들이 한 개의 CAN 버스(한 개의 ID 번호를 가진 한 개의 노드를 가정)에 연결될 수 있다. 그러나 하드웨어 (, 송수신기)의 현실적인 제한으로 인해, 이것은 실제적으로는 한 개의 단일 네트워크에 최대 110개 노드들을 (필립스 82C250 CAN 컨트롤러를 사용) 허용한다. CAN은 최대 1 Mbit/sec 의 데이터 통신을 제공하여, 실시간 제어를 촉진한다. 덧붙여, 오류 제한(Error Confinement)과 오류 탐색(Error Detection) 기능들은 noise-critical 환경들에서의 신뢰성을 더욱 높여준다.

 

 

CAN의 계층 구성과 특징

 

CAN 통신 프로토콜은 CAN 버스에서 디바이스들 통신 사이로 데이터가 전달되는 방법을 명시한다. 이것은 ISO의 개방형 시스템 상호연결 모델 (Open System Interconnection model)을 따르며, 이 모델은 통신 네트워크 표준인 7계층으로 되어 있다.OSI 모델은 두 개 네트워크 노드들 간의 층화된 통신 시스템을 기술하며, 이론상 각 계층은 로컬 모드에서는 오직 자신의 직접적인 위, 아래의 계층들과 통신할 수 있다. 또한 원격 모드에서는 동등한 계층과 통신할 수 있다.

 

사실 CAN 프로토콜은 데이터 링크 계층과 물리적 계층이라는 OSI 모델의 가장 낮은 두 개 층들로 설명될 수 있다. 애플리케이션 계층 프로토콜들은 개별적인 CAN 사용자들에 의해 개발된 독점 구조, 또는 특정 산업 내에서 사용되는 신생 표준들 중의 하나가 될 수 있다. 자동차 산업에서 많은 제조업체들은 그들 자신의 독점적인 표준을 사용하고 있다.

 

물리 계층에서, CAN은 광섬유 또는 꼬임-(가장 보편적) 같은 다양한 종류의 매체를 사용하여 잠정적으로 통신할 수 있다.

 

꼬임-쌍 시그널링은 각각의 전선에서 서로 다른 전압들을 사용하여 실행되므로  한 전선에서의 신호 전압은 또한 다른 전선에서 전송되지만 반전된다. 수신기에서, 이 신호는 한 신호를 반전하고 두 개의 신호를 합해서 복원된다. - 이것은 두 개 전선들에 대해 공통적인 것이므로, 이 방법은 버스상에서 발견된 어떤 노이즈도 줄일 수 있다. 바로 이 과정에서 CAN은 자체의 잡음 면역(noise immunity)과 결함 허용(fault tolerance) 기능들을 유도한다. 두 개의 전선들은 CAN_H (or CAN High)CAN_L (or CAN Low) 로 불린다. 일반적으로 디지털 '0' 의 경우, 관련된 전압은 CAN_H = 3.5V 그리고 CAN_L = 1.5V이다.

 

 

CAN 프로토콜에는 여러가지 장점이 있으며, 특히 다음과 같이 5가지로 정리할 수 있다.

 

1. 표준 통신 프로토콜이므로 다양한 업체에서 제작된 서브들을 공동의 네트워크에 인터페이스시키는 작업을 쉽고 경제적으로 수행할 수 있다.

 

2. CAN 프로토콜은 수백만의 메시지 확인자를 지원하고 복잡한 메시지 방식을 사용할 수 있는 유연성을 가지고 있다. 또한 에러 발견과 응답은 CAN칩 자체에서 처리되므로 그에 따른 처리가 현저히 감소된다.

 

3. CPU에서 주변기기로 통신작업이 이양되었기 때문에 CPU는 시스템 태스크만 전적으로 실행할 수 있다.

 

4. 다중 채널식 통신법이기 때문에 포인터간의 와이어 작업을 줄여 와이어 크기를 대폭 줄일 수 있다.

 

5. 표준 프로토콜이므로 시장성이 뛰어나고 이로 인해 많은 업체들이 경쟁적으로 CAN칩을 제작하고 있으며, 비용 또한 비교적 저렴하다. CAN 프로토콜은 호스트 CPU에 인터케이스된 CAN 컨트롤러 칩이나, 호스트 CPU에 장착된 CAN 주변장치에서 실행된다.

  

CAN 애플리케이션

 

CAN을 사용하는 대표적인 통신망으로는 DeviceNet, SDS, CAN Kingdom, CANopen/CAL 등이 있으며, 이들은 모두 데이터 링크 계층으로 CAN을 사용하나 응용계층은 서로 다른 프로토콜을 채택하고 있다.

 

1. DeviceNet은 Rockwell/Allen-Bradley에서 개발된 응용계층으로, 현재 폭넓은 산업 자동화 현장에서 사용되고 있으며, 기본적으로 개방 버스시스템을 채택하고 있어 모든 모듈은 같은 우선순위로 버스를 사용할 수 있으며 단 몇 개의 규정만 지키면 된다.

 

2. SDS(Smart Distributed System)는 미국 Honeywell 에서 개발하였으며, I/O 장비(on/off 스위치, 근접센서 등)PLC의 연결에서 사용되며, 기본적으로는 마스터(master)와 원격 I/0사이의 일대일(point-to-point) 연결을 기반으로 한다.

 

3. CAN Kingdom은 스웨덴 기업인 Kvaser AB가 제공하고 있는 응용계층을 디지털이나 아날로그를 위한 프로파일(porfile) 등을 포함하지 않고 연결되거나 제어되는 시스템을 집약하는 프로토콜을 사용하고 있다. 모든 CAN 우선순위나 ID등을 각자 모듈이 갖고 있는 것이 아니라 중심이 되는 노드 즉, King이라는 것이 갖고 있게 된다.

4. CANopen은 8바이트 이상의 긴 데이터(16바이트)를 전송하는데 효과적이다. 응용계층이 OSI 모델의 형태를 취하고 있으며 이로 인해 데이터 전송을 위해 표준화된 서비스, 프로토콜, 네트윅 관련 작업의 수행과 계층관리를 위한 기능 등을 제공한다.

 

위의 모든 응용계층들은 모두 ISO 11898 CAN 통신 프로토콜과 CAN 특성의 회로를 기반으로 하여 이루어지고 있다. 그러나 CAN KingdomSDSDeviceNet과 가장 특이한 점은 하나의 노드가 시작할 때 시스템을 구성한다는 점이다.

 

표 1. 네트워크 프로토콜별 애플리케이션 현황

Network technology

Nodes in 2005

Installed nodes

Ethernet (all derivates)

 2.651  6.978

Others

 2.050

14.225

Profibus

 1.660

15.400

AS-Interface

 1.500

11.000

CAN(open)

 1.500   6.000

Modbus

 1.200

16.000

CC-Link

   760  3.370

DeviceNet

   697  8.000

Interbus

   300  8.000

USB

   250  1.000

Hart

   240  2.000

Sercos

   230  1.500

FF

   220    700

ControlNet

   175  1.150

Firewire

     28     700

Total

13.460

96.023

Figures in thousands

Source: IMS Research 2007

 

월간 아이씨엔(산업통신망) 2007년 3월호  www.ICNweb.co.kr

 

댓글 없음:

댓글 쓰기