레이블이 can인 게시물을 표시합니다. 모든 게시물 표시
레이블이 can인 게시물을 표시합니다. 모든 게시물 표시

2009년 6월 23일 화요일

CAN이란 무엇인가?

차량에서의 네트워크

 

아래의 그림은 다양한 전자 시스템이 결합된, 전형적인 현대 고급차의 내장을 보여준다. 이러한 정도의 분리된 시스템들의 경우, 이것들을 함께 연결하기 위해 보통 사용되는 배선 장치는 믿어지지 않을 정도의 엄청난 케이블들을 필요로 하며, 이것은 전체적인 차량의 무게와 제조 비용에서 상당한 부분을 차지하게 된다.

 

이 문제의 확실한 해결책은 이러한 모든 시스템들을 차량 둘레에서 실행되는 한 개 혹은 두 개의 전선들로 구성된, 사무실의 데스크탑 PC들을 함께 연결한 것 같은 방식인, 하나의 공통 네트워크 버스에 연결하는 것이다. 이것은 차량에서의 배선 양을 즉각 획기적으로 감소시키며, 네트워크 인터페이스 칩들이 아주 저렴한 이상, 차량의 총 제조 비용도 감소된다.

 

이것이 바로 계측 제어기 통신망(CAN)의 숨은 개념이다. 그러나 그토록 많은 시스템들과 우선 순위들 변경으로 서로 다른 응답 시간들과 우선 순위들을 처리하기 위해서는 별도의 독립적인 네트워크들을 사용하는 것이 마땅하다는 것을 금방 알게 된다(예를 들어 사용자는 썬루프 컨트롤러가 우선 순위를 갖는 것을 원하지 않거나 블록 정보, 에어백 개발 시스템을 원하지 않을 수도 있다!).  네트워크의 서로 다른 종류들은 크게 4개의 클래스 범주들로 나눌 수 있다:

 

 WarCarnet.jpg

 

 

클래스 A 네트워크들은 전자 부트 작동기(electronic boot release), 전동 거울 조정장치, 비 탐지, 썬루프, 기상 관리 등과 같은 편의 기능 또는 고급 기능들에 일반적으로 사용되며 10 kbit/s 미만으로 작동한다.

 

클래스 B 네트워크들은 파워 윈도우, 좌석 조절장치, 계기 같은 정보의 일반적인 전송을 담당한다. 이것들은 10 ~ 125 kbit/s 정도로 실행된다.

 

클래스 C 네트워크들은  파워 트레인, 안정성 제어(ABS, 견인 제어, 액티브 서스펜션), 엔진 관리, 변속 같은 실시간 제어 애플리케이션 - 정보의 빠른 응답 시간 또는 전송이 필요한 모든 애플리케이션- 들에서 사용된다. 이것들은 125 kbit/s부터 최대 1Mbit/s 로 작동합니다.

 

클래스 D 네트워크들은 인터넷, 디지털 TV, x-by-wire 같은 애플리케이션들에서 사용되며, 일반적으로 1Mbit/s 이상의 빠른 속도에서 실행되는 것들이다.

 


 

CAN (Controller Area Network)

 

CAN은 무엇인가?

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

 

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

 

누가 CAN을 개발했는가?

Controller Area Network는 원래 1980년대 후반에 자동차 산업을 위해 독일 회사 Robert Bosch GmbH에 의해 개발되었다. 그들이 CAN을 개발하게 된 동기는 - 고객들의 그들 차량에 대한 더욱더 많은 기능상의 요구들이, 대부분은 전자식으로 작동되며 더욱 많은 배선을 의미하는, 또 다른 온-보드 시스템과의 어떤 통신 형태를 필요로 하는 것이기 때문에, 현대 자동차에서의 내부-ECU 통신에 필요한 꾸준히 증가하고 있는 거대한 배선 작업의 문제에 대한 해결책을 제공하기 위해서였다.

 

그들의 결론은 모든 온-보드 주변장치들이 부착될 수 있는 하나의 단일 네트워크 버스를 설계하는 것이였다. 1993년 CAN은 표준 ISO 11898(고속 애플리케이션용)과 ISO 11519(저속 애플리케이션용)가 되었다. 이것은 다중-마스터 직렬 통신 버스로 이것의 기본 설계 사양은 고속, 높은 잡음 면역성, 그리고 오류-검출 기능들에 적합하게 되어있다. 이러한 기능들의 결과로, CAN 버스는 또한 제조 산업과 항공 우주 산업들에서도 폭넓게 사용되게 되었다.

 

CAN은 어떻게 동작하는가?

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

 

OSI 모델의 계층들은 아래의 표에 나와 있다. 사실 CAN 프로토콜은 OSI 모델의 가장 낮은 두 개 층들로 설명될 수 있다 - 데이터 링크 계층과 물리적 계층. 애플리케이션 계층 프로토콜들은 개별적인 CAN 사용자들에 의해 개발된 독점 구조, 또는 특정 산업 내에서 사용되는 신생 표준들 중의 하나가 될 수 있다. 프로세스-제어/제조 분야에서 사용되는 공통적인 애플리케이션 표준 층은 DeviceNet으로, 이것은 PLC의 네트워킹과 지능 센서들 그리고 액츄에이터에 특히 적합하다. 자동차 산업에서 많은 제조업체들은 그들 자신의 독점적인 표준을 사용하고 있다.

7

Application Layer

최상위층. 이것은 사용자가 네트워크와 상호 작용하는데 사용되는 소프트웨어를 설명하는 계층이다. 예를 들어 DeviceNet이 해당된다.

6

Presentation Layer

변환될 데이터의 구문을 서술한다. - 예를 들어 서로 다른 수학 포맷을 사용하는 두 개 시스템들 간의 부동 소수점 수 변환

5

Session Layer

하위 계층들에 의해 처리된 패킷들보다 큰 데이터 순차들 처리에 관하여 서술한다.

4

Transport Layer

두 개 통신 노드들 간의 데이터 전송 품질과 속성을 설명한다. 재전송과 오류 복구같은 문제들을 다룬다.

3

Network Layer

다양한 데이터 링크를 거쳐 일련의 교환들이 어떻게 한 네트워크에서 임의의 두 개 노드들 간의 데이터를 전송할 수 있는지 설명한다. 라우팅과 어드레싱 같은 문제들을 다룬다.

2

Data Link Layer

특정 매체를 통해 전송된 데이터 비트의 배열과 조직을 서술한다. 예를 들어, 이 계층은 checksum과 framing을 다룬다.

1

Physical Layer

교환된 신호들의 해석, 전기적 특성들과 함께 통신 매체의 물리적 특징들도 서술한다.

 

물리 계층에서, CAN은 광섬유 또는 꼬임-쌍(가장 보편적) 같은 다양한 종류의 매체를 사용하여 잠정적으로 통신할 수 있다. 꼬임-쌍 시그널링은 각각의 전선에서 서로 다른 전압들을 사용하여 실행되므로(balanced-line signalling 으로도 알려져 있다), 한 전선에서의 신호 전압은 또한 다른 전선에서 전송되지만, 반전된다.

 

수신기에서, 이 신호는 한 신호를 반전하고 두 개의 신호를 합해서 복원된다 - 이것은 두 개 전선들에 대해 공통적인 것이므로, 이 방법은 버스상에서 발견된 어떤 노이즈도 줄일 수 있다. 바로 이 과정에서 CAN은 자체의 잡음 면역(noise immunity)과 결함 허용(fault tolerance) 기능들을 유도한다. 두 개의 전선들은 CAN_H(or CAN High)와 CAN_L(or CAN Low)로 불린다.

 

정지 상태(또는 "recessive")에서 CAN_H와 CAN_L은 2.5V에 놓인다. 이것은 디지털 "1"로 표시되며, 또한 "recessive" 비트로도 알려져 있다. 디지털 '0'은 또한 "dominant' 비트로도 알려져 있으며, CAN_L보다 큰 CAN_H에 의해 지시된다. 일반적으로 디지털 '0' 의 경우, 관련된 전압은 CAN_H = 3.5V 그리고 CAN_L = 1.5V이다.

 

CAN의 특징

CAN의 가장 매력적인 특징들은 다음과 같다:

  • 저비용.
  • 극대화된 견고성
  • 빠른 데이터 전송 속도(최대 1MBit/sec)
  • 신뢰성. 탁월한 오류 처리와 오류 제한 기능들
  • 결함 메시지들의 자동적인 재-전송
  • 물리적으로 결함이 추정되는 노드들의 자동적인 버스 연결절단
  • 기능위주의 어드레싱 - 데이터 메시지들은 소스 혹은 목적지 주소들을 포함하지 않으며, 그들의 함수 그리고(또는) 우선순위와 연관된 식별자들만을 포함한다.

 

 

CAN 칩 제조사

아래에 주요 CAN 칩 메이커들이 요약되어 있다:

 

Vendor

Product

Type

Comments

Fujitsu

F2MC-16L

2.0B, Integrated

16 bit

Hitachi

HCAN-1
H8/300H
SuperH

Stand-alone
Integrated
integrated

-
-
-

Intel

82527
87C196CA/CB

2.0B, FullCAN, Stand-alone
Integrated

-
16 bit version

Intermetall

CCU 3010E

Integrated

-

Mitsubishi

M37630 E4/M4

2.0B, Integrated

8 bit

Motorola

MC68HC05XX
MC68HC08AZ
MC68376

2.0A, Integrated
2.0B, Integrated
2.0B, Integrated

8 bit, XX=4K, 16K or 32K
8 bit, 16K, 24K or 32K
32 bit

National Semiconductors

COP87L88EB
COP87L89EB
CR16-CAN
DS36C250

2.0B, BasicCAN, Integrated
Integrated
2.0B, Integrated
2.0B CAN transceiver

8 bit
-
16 bit flash
-

NEC

uPD78F0948

2.0B, 8 bit Integrated

Many variations available

Philips Semiconductors

SJA 1000
8XC592/8XCE598
XA-C3
P82C150
PCA82C250/251
PCA82C252

2.0B, BasicCAN, Stand-alone
2.0A, Integrated
2.0B, Integrated
1.0, Serial Link I/O
CAN Controller Interface
Fault-Tolerant CAN transceiver

C200 was replaced by SJA 1000
Will be replaced by XA-G3
16 bit
Discontinued
C250 will be replaced by C251
Low speed, up to 125Kbps

SGS Thomson

ST10F167

Integrated

16 bit

Infineon

SAE81C90/91
SABC167CR
SAB515C

2.0B, FullCAN, Stand-alone
2.0B, FullCAN, Integrated
2.0B, FullCAN, Integrated

2.0B Passive
16 bit
8 bit

Temic

TSC8051A11

Integrated

8 bit

Texas Instruments

TMS370E08D55
UN5350

2.0B, Integrated
CAN transceiver

-
Pin Compatible with 82C251

Toshiba

TMP88PP87
TMP93PW50

2.0B, Integrated
2.0B, Integrated

8 bit
16 bit

 

CSMA/CD-NDBA

CSMA/CD는 충돌 탐지 기능을 가진 Carrier Sense Multiple Access를 나타낸다. CSMA/CD를 이용하면 버스 주소지정이 버스 상(carrier sense)에서 반송파를 감지(listening)하여 이루어지며, 단지 버스가 유휴상태일 때 전송된다. 이 방식에서, 다중 노드들이 동일한 네트워크에 부착되는 것이 가능하다. 충돌이 탐지되면, 재전송 하기 전에 임의 시간이 지날 때까지 전송을 시작했던 모든 노드들이 다시 "listen"으로 되돌아가게 된다. 그러나 이 기법은 과중하게-로드된 버스에서는 여전히 약간의 지연을 유발한다.

 

이러한 지연을 피하기 위해, CAN 버스에서 두 개 노드들이 동시에 전송할 때, 한 개 메시지가 우선 순위를 갖게하는 방법이 필요하다 - 이것은 'Non-Destructive Bit-wise Arbitration'을 사용하여 달성된다. CAN 버스의 각 노드는 유일한 식별자(ID)를 가지며, 그것은 11비트 또는 29 비트 숫자이다. CAN은 이진 0 이 이진 1 에 우선하도록 결정한다. 따라서 더 낮은 ID 번호 - 더 높은 우선 순위, 그러므로 식별자 0(즉, 11 비트 이진 0 들)이 버스에서 최고의 우선 순위를 갖는다. 이것을 알아보는 다른 방법으로 메시지 충돌 상황이 있는데, 다른 노드가 1 을 보낼 때 0 을 보내는 최초의 노드가 버스 제어를 획득하게 되고 성공적으로 자신의 메시지를 전송하는 것이다.

 

CAN higher level protocol

CAN higher level protocol(또한 Application layer protocol로도 알려져 있다)은 현재의 하위 CAN 계층(물리 계층과 데이터 링크 계층)들의 "위"에서 실행되는 프로토콜이다. 상위 단계 프로토콜은 CAN의 물리 계층과 데이터 링크 계층들을 개발된 응용 계층의 밑바탕으로 사용한다. 많은 시스템들, (예. 자동차 산업)은 독점적 응용 계층을 사용하지만, 많은 산업들에서, 이 방법은 비용-효과적이지 않는다. 여러 단체들이 시스템 통합을 쉽게 하기 위해서 표준화된 개방형 애플리케이션 계층들을 개발하고 있다.

 

몇가지 이용할 수 있는 CAN 상위 단계 프로토콜들이다:

  • Open DeviceNet Vendors Association의 DeviceNet
  • Honeywell의 Smart Distributed System(SDS)
  • CiA의 CAN Application Layer(CAL)
  • CiA의 CANOpen(subset of CAL)
  • 스웨덴 Kvaser의 CANKingdom

 

Bitwise arbitration

CAN 버스에서 두 개 노드들이 동시에 전송할 때, 한 메시지가 우선 순위를 갖는 방법이 필요합니다 -이것은 'non-destructive bit-wise arbitration'을 사용하여 달성된다.; CAN 버스의 각 노드는 유일한 식별자(ID)를 가지며, 그것은 11비트 또는 29 비트 숫자이다.

 

CAN은 이진 0 이 이진 1 에 우선하도록 결정한다. 따라서 더 낮은 ID 번호 - 더 높은 우선 순위, 그러므로 식별자 0 (즉, 11 비트 이진 0 들)이 버스에서 최고의 우선 순위를 갖는다. 이것을 알아보는 다른 방법으로 메시지 충돌 상황이 있는데, 다른 노드가 1 을 보낼 때 0 을 보내는 최초의 노드가 버스 제어를 획득하게 되고 성공적으로 자신의 메시지를 전송하는 것이다.

 

BasicCAN과 FullCAN

BasicCAN과 FullCAN 이라 이름 붙여진, 두 개의 일반적인 CAN 접근법이 있다. 이것들은 들어오고 나가는 데이터가 처리되는 방식에서 서로 다르다. 간단히 말하면, BasicCAN은 CAN 메시지 전송과 수신을 처리하기 위해 호스트 CPU를 필요로 하며, 프레임 저장소를 다룬다. FullCAN은 메시지 전송, 메시지 수신 그리고 최대 16개 메시지들의 저장을 CAN 컨트롤러에 맡긴다. CPU는 정보가 필요할 때 CAN 컨트롤러에 문의한다. 이 방식에서, FullCAN은 CAN 처리의 책임을 CPU에서 배제시킨다 - 다른 작업들을 처리할 수 있는 자유를 부여. FullCAN에서 CAN 컨트롤러는 인터럽트가 설정되어 있다면 CPU를 인터럽트 할 수 있다 - 그리고 어떤 지정된 ID를 가진 메시지가 수신된다면 컨트롤러가 CPU를 인터럽트 하면서 "필터링 허용' 같은 작업들을 처리할 수 있다.

 

Standard CAN 과  Extended CAN

표준 CAN에서는 식별자들이 11비트 길이를 가지며 확장 CAN에서는 식별자들이 29비트 길이를 갖는다. CAN 프로토콜 버전 2.0 에서 명시된 것에 의하면, V2.0A로 컴파일하는 CAN 컨트롤러는 반드시 11-비트 식별자를 가져야만 한다. 반면 V2.0B 에서는, 11비트 또는 29비트 아무 것이나 될 수 있다. V2.0B active를 이용하면, CAN 컨트롤러는 표준 포맷과 확장 포맷 모두를 전송하고 수신할 수 있다. V2.0B passive를 이용하면, CAN 컨트롤러는 표준 프레임을 전송하고 수신하게 되며 확장 프레임은 오류 없이 무시하게 된다.

 

CAN2.0A 와 CAN2.0B

CAN 2.0A는 표준 CAN을 위한 규격서이다. CAN 2.0B는 확장 CAN을 위한 규격서이다.

 


 

DeviceNet

 

DeviceNet은 무엇인가?

DeviceNet은 산업 디바이스들(limit switches, photoelectric sensors, valve manifolds, motor starter, process sensors, panel displays, operator interfaces 등)을 단일 네트워크를 통해 서로 연결하기 위한 신뢰성있는 CAN 기술을 바탕으로 한 공개형 저가 커뮤니케이션 링크이다. 이것은 연결 수 증가로 인한 오류와 값비싼 배선을 감소시켜준다. 또한 산업 자동화 장치들을 배선하고 설치하는데 드는 비용과 시간은 줄여주는 반면 여러 공급업체들로부터의 믿을 만한 부품 호환성도 제공한다. 직접 연결은 디바이스들 간의 향상된 커뮤니케이션을 제공하며 마찬가지로 유선 I/O 인터페이스들을 통해서는 이용이 불가능하거나 쉽게 접근할 수 없었던 중요한 디바이스-레벨 진단도 제공한다.

 

이 기술은 미국, 오스트레일리아, 뉴질랜드, 일본, 중국에서 광범위하게 사용되며 유럽 지역에서도 급속히 인기를 얻고 있다. DeviceNet은 자동차 네트워킹을 위한 ISO 표준을 기본으로 하며 계측 제어기 통신망(CAN)으로 알려져, 사실상 모든 산업들에서 사용된다. 예. 자동차, 제조, 농업, 의료 설계 제어, 선박, 항공 우주 등. DeviceNet은 이제 공식적인 CENELEC 표준이다 - EN50325.

 

누가 DeviceNet을 개발했는가?

ODVA는 DeviceNet 규격서를 관리하고 DeviceNet의 전세계적인 성장을 지원하는 독립적인 공급자 단체이다. ODVA 는 제조업체들과 작업하며 개발자 툴, 개발자 교육, 호환성 테스트, 마케팅 활동들을 통해 돕고 있다. 300여개 이상의 회사들로 구성된 국제적인 회원제를 갖고 있다. ODVA는 DeviceNet 제품 카다로그를 발행하며 특수 종류의 제품들을 위한 Device Profiles을 개발하여 공급자 Special Interest Groups (SIGs)을 지원한다. 미국에 기반을 두는 ODVA는, WMG's CAN Lab을 통하여 유럽에서도 그 기반을 넓혀가고 있으며, 그것은 이제 실제적으로 ODVA Europe을 포함한다. 또 다른 연구소가 일본, 도쿄의 ASTEM RI (Advanced SofTwarE and Mechatronics Research Institute)에 설립되었다.

 

DeviceNet은 어떻게 동작하는가?

DeviceNet은 프로토콜을 바탕으로 한 연결이다. 즉, 필요한 모든 디바이스들은 정보 교환에 대한 연결 우선을 설정한다. DeviceNet은 이른바 오브젝트 모델링 접근법을 적용한다, 다시 말하며, 각 정보는 서로 다른 오브젝트들에서 구조화된다. (Get 과 Set 같은) 서비스들은 이러한 정보를 추출/교환 하기 위해 이러한 오브젝트들에 적용될 수 있다.

 

네 개의 기본 오브젝트들은 이러한 정보 교환을 처리하기 위해 필요하다:

 

Identity object.  디바이스의 식별 정보(제조자 ID, 디바이스 프로파일, 개정판 등)들은 이 오브젝트에 저장된다. 사용자들은 이 오브젝트에 대한 원격 접속으로 특정 오브젝트를 식별할 수 있다.

 

Message Router. 이 오브젝트는 올바른 목적 오브젝트로 이것을 라우팅하여 수신된 명시적 메시지들을 처리한다.

 

DeviceNet Object. 이 오브젝트는 모든 DeviceNet 관련 정보들을 저장한다, 즉, MAC ID 와 보오율.

 

Connection Object. 이 오브젝트는 Explicit Messaging 또는 I/O Messaging 같은 모듈의 연결을 처리한다. 각각의 오브젝트는 attributes(Vender ID같은)라 불리는 자신의 고유한 파라매터들을 갖고 있다. 이러한 속성들은 디바이스의 동작을 지배한다. 연결이 이루어졌을 때, 이 연결을 통해 교환된 모든 데이터들이 통신 연결 인스턴스에 의해 처리되어진다.

 

Explicit Messaging과 I/O Mesaging

명시적 메시지는 모듈의 정보(제조자, 파라매터 등)를 포함하는 메시지이다. 이 정보는 I/O 메시지보다 상대적으로 덜 중요하다. 따라서 이것은 버스에서 I/O 메시지 교환을 방해하지 않도록 보다 높은 CAN 식별자(600-7BF Hex)를 통해 전송된다. I/O 메시지는 모듈의 실시간 I/O 정보를 포함하고 있는 메시지이다. "실시간" 을 달성하기 위해, 이러한 메시지들은 가능한 빨리 전송되어져야 하며, 따라서 명시적 메시지보다 낮은 CAN 식별자(000-3FF Hex)를 통해 전송된다.

 

DeviceNet의 특징

DeviceNet의 특징에는 다음이 포함된다; 저비용(저가의 CAN 칩을 바탕), 고속. 이것은 3가지 보오율을 지원한다: 125Kbps, 250Kbps, 500 Kbps  산업 규격의 95%를 충족하는 것으로 알려져 있다. 신뢰성. 이것은 신뢰성을 보증하기 위하여 엄격한 적합 테스트를 통과한 애플리케이션 층들과 훌륭히 검증된 CAN 프로토콜을 사용한다. 최대 64개의 active 노드들을 지원한다. 이론상, 노드는 브리지 시스템(CAN/CAN bridge 또는 다른 gateway)을 사용하여 확장될 수 있다. 간편한 인스톨. 사실상의 "Plug-and-Play".

 

DeviceNet의 최대 케이블 길이

DeviceNet은 허용 영역내에서 전송된 메시지 하강 전파를 보증하기 위하여 최대 케이블 길이(trunk 와 drop 케이블)를 정의하고 있다. 트렁크 케이블과 드롭 케이블 길이의 상위 한계는 아래의 표와 같습니다.:

 

Baud Rate

100% Thick Cable

100% Thin Cable

Flat Cable

125 Kbps

500 metres

100 metres

420 metres

250 Kbps

250 metres

100 metres

200 metres

500 Kbps

100 metres

100 metres

100 metres

Trunk cable length specification

 

Baud Rate

Maximum

Cumulative

125 Kbps

6 metres

156 metres

250 Kbps

6 metres

78 metres

500 Kbps

6 metres

39 metres

Drop cable length specification

 

DeviceNet 케이블 설치시 주의사항

트렁크 케이블과 드롭 케이블을 설치하기 위해서는, 몇 가지 사항들을 주의해야 합니다.

  • 트렁크 라인 탭에서 연결될 가장 먼 디바이스까지의 길이가 탭에서 가장 가까운 말단 레지스터까지의 길이보다 멀다면, 드롭 길이 계산과 함께, 드롭 라인 길이는 트렁크 케이블 길이의 부분으로써 포함되어야 한다.
  • 누적 드롭 라인 길이는 케이블 시스템에서의 모든 드롭 라인들, thick 또는 thin 케이블,의  합계를 말한다. 이 합계는 주어진 사용 통신 비율에 허용된 최대 누적 길이를 초과할 수 없다.

 

 

UCMM-capable과 UCMM-Incapable 디바이스

UCMM (UnConnected Message Manager) capable 디바이스들은 peer-to-peer 모드에서 데이터를 교환할 수 있는 디바이스들이다. 다른 말로는, 어떤 디바이스가 다른 디바이스들과 동시에 서로 다른 연결을 가질 수 있는 것이다.

 

UCMM Incapable 디바이스들은 (위와 같이) peer-to-peer 모드에서 동작할 수 없는 디바이스들이다. 이러한 디바이스들은 일반적으로 "Group 2 Only server" 또는 "Group 2 Only slave"와 같이 일컬어진다. 이러한 디바이스들은 한 개의 디바이스(마스터) 이상과는 연결할 수 없다. 다른 말로는, 이것은 한번에 오직 하나의 마스터에 의해서만 소유(할당, 또는 연결)될 수 있으며, 교환되는 어떤 정보도 디바이스와 그것의 마스터 사이에서만 있는 것이다. 마스터는 필요한 경우, 다른 디바이스들로부터의 요청에 응답하기 위해 슬래이브를 프록시하게 된다.

 

DeviceNet과 호환되는 CAN 송수신기

아래에 DeviceNet 승인 CAN 송수신기 제조업체가 나열되어 있습니다.

 

 

Description

Manufacturer

82C250/82C251 Philips Semiconductors
UN5350
UN5351 (not released)
Texas Instrument (Unitrode)

 

그러나 DeviceNet 규격서에 언급되어 있지 않을지라도, 공급자에게 25 볼트(UC5350과 82C251) 이상의 과전압 방지를 제공하는 CAN 송수신기를 사용할 것을 알려 주어야 한다. DeviceNet이 CAN 송수신기의 유지-전압을 18볼트로 규정한 이유는 Philips Semiconductors(82C251)에서 나온 최초의 CAN 송수신기가 단지 18볼트까지의 과-전압 방지를 가진 것이었기 때문이다.

 


 

LIN (Local Interconnect Network)

 

LIN(Local Interconnect Network)은 차량에서의 분산된 전자 시스템을 위한 저비용의, 직렬 통신 시스템이다. 이것은 CAN과 같은, 현존하는 자동 다중화 네트워크를 보완하기 위해 고안된 것이다. 이 규격에는 프로토콜과 물리 계층의 정의와 더불어 개발 도구와 애플리케이션 소프트웨어에 대한 인터페이스 정의도 들어있다. LIN은 CAN의 대역폭과 다기능이 필요하지 않은 액츄에이터와 스마트 센서를 위한 비용-절감 통신을 가능하게 한다. 

 

이 통신은 SCI (UART) 데이터 포맷,  single-master/multiple-slave 개념, single-wire 12V 버스, 안정된 time base가 없는 노드들을 위한 클럭 동기화을 바탕으로 한다.  개발 환경과 맞추어 Serial low cost communication concept의 개념을 표준화하기 위한 LIN 협회가 만들어져서, 자동차 제조업체들과 그들의 공급업체들은 매우 경쟁력있는 가격으로 복잡한 계층적 다중 시스템들을 생성, 실행, 처리할 수 있게 되었다.

 

LIN의 핵심 기능

  • 개선된 ISO 9141을 바탕으로 저비용의 single-wire 구현
  • 최대 속도  20Kbit/s (EMI-이유로 제한)
  • Single Master / Multiple Slave 개념 따라서 중재 불필요
  • 보편적인 UART 인터페이스를 바탕으로 하는 저 비용 실리콘 구현. 이것은 거의 모든 마이크로컨트롤러들이 필요한 하드웨어를 칩 상에 갖고 있다는 것을 뜻함.
  • 크리스탈 또는 세라믹 공진회로(resonator)가 없는 slave 모드에서의 반 동기화로 slave 하드웨어의 중요한 비용 절감 효과
  • 신호 전송을 위한 보증된 대기 시간. 따라서 예측 시스템 가능.
  • 다른 slave 노드들에서 하드웨어나 소프트웨어를 변경하지 않고도 LIN 네트워크에 노드들을 추가 가능
  • 전형적인 LIN 네트워크의 크기는, 적은 수의 64 식별자들과 상대적으로 느린 전송속도로 인한,  12 노드들 이하 (그러나 여기에 제한되지는 않음),

 

 

LIN communication 개념

LIN 네트워크는 한 개의 마스터 노드와 한 개 혹은 그 이상의 슬래이브 노드들로 이루어진다. 모든 노드들은 하나의 전송과 하나의 수신 작업으로 분할되는 한 개의 슬래이브 커뮤니케이션 작업을 포함하며, 이에 반해 마스터 노드는 모든 부가적인 마스터 전송 작업을 포함한다. active LIN 네트워크에 있는 통신은 항상 마스터 태스크에 의해 초기화된다. 이 마스터는 동기화 break, 동기화 byte, 메시지 식별자로 구성된 메시지 헤더를 전송한다. 정확히 하나의 슬래이브 태스크는 식별자의 수신과 필터링시 활성화되어 메시지 응답 전송을 시작한다. 응답은 2, 4 혹은 8 데이터 바이트와 한 개의 checksum 바이트로 구성된다. 헤더와 응답 파트는 하나의 메시지 프레임을 형성한다.

 

LIN 메시지 프레임의 구성

LIN 메시지 프레임의 내용은 아래와 같이 나타난다:-

메시지의 식별자는 수신지가 아닌, 메시지의 내용을 나타낸다. 이 통신 개념은 다양한 방식에서의 데이터 교환을 가능하게 한다: 마스터 노드(자신의 슬래이브 태스크를 사용하는)에서 한 개 또는 그 이상의 슬래이브 노드들까지,  그리고 하나의 슬래이브 노드에서 두 개의 마스터 노드와/또는 다른 슬래이브 노드들. 마스터 노드를 통해 라우팅할 필요 없이, 또는 네트워크에서 마스터의 메시지들을 모든 노드들로 방송할 필요 없이, slave에서 slave로 직접 신호들을 커뮤니케이트하는 것이 가능하다. 메시지 프레임의 순서는 마스터로 제어되며 사이클을 형성할 수 있다.

 

LIN의 대상이 되는 애플리케이션

LIN 버스의 전형적인 애플리케이션들은 (자동차) 문, 핸들, 의자, climate regulation, lighting, rain sensor, 또는 이와 같은 조립 유닛들이다. 이러한 유닛들에서 LIN의 예민한 비용 특성은 스마트 센서, 액츄에이터, 또는 조명 같은 메카트로닉스 요소들의 도입을 가져왔다. 이것들은 차량의 네트워크에 쉽게 연결될 수 있으며 모든 종류의 진단과 서비스들에 접속할 수 있게 된다. LIN 구현 하에서, 흔히 사용되는 아날로그 신호 코딩은 디지털 신호들로 대체될 것이며, 이것은 최적화된 배선 작업을 가져올 것이다.

 

자동차 애플리케이션들에서, 다음과 같은 것들이 LIN 구현에 이상적이다:-

 

  자동차 지붕 (Vehicle Roof)

  •    Rain Sensor
  •    Light Sensor
  •    Light Control
  •    Sun Roof

 

  자동차 문 (Vehicle Doors)

  •    Mirror
  •    Central Locking
  •    Mirror Switch
  •    Window Lift

 

  엔진 (Engine)  

  •    Sensors
  •    Small Motors
  •    핸들(Steering Wheel)
  •    Cruise Control Switches
  •    Wiper
  •    Turn Signal
  •    Radio
  •    Climate Control
  •    Seat
  •    Seat Position Motors
  •    Occupancy Sensor

 

비록 LIN이 원래 자동차 애플리케이션을 위해 설계된 것이기는 하지만, 이것은 또한 산업 자동화와 소비 전자제품들을 위한 센서 버스로써도 관심을 받고 있다.

 

LIN을 지원하는 반도체

현재 다음의 반도체 제조업체들이 LIN 송수신기와 보드상에 LIN 송수신기를 포함한 마이크로컨트롤러를 개발하고 있다:-

  •  Philips
  •  Motorola
  •  Infineon Technologies
  •  ST Microelectronics
  •  Mitsubishi

 

LIN Consortium Steering Committee의 주요 회원들

  •  Audi AG
  •  BMW AG
  •  DaimlerChrysler AG
  •  Motorola GmbH
  •  Volcano Communication Technologies AB
  •  Volvo Car Corporation
  •  Volkswagen AG

 

LIN 추가 정보

LIN 컨소티움 웹사이트 http://www.lin-subbus.org

 


 

SAE J1939

 

SAE J1939는 무엇인가?

SAE J1939는 확장 CAN (29비트 식별자)을 사용하는 클래식 C CAN 기본 네트워크로 원래는 그림 1과 같은 일반 트럭과 트레일러 시스템 내의 전자 제어 장치들을 함께 연결하기 위해 개발된 것이였다.

 

 WarJ1939.jpg

그림 1: J1939로 함께 연결된 전형적인 시스템

 

J1939 메시지의 포맷

29 비트 CAN ID를 가진 확장 CAN 프레임의 포맷은 그림 2에 나와 있습니다. J1939 프로토콜은 중재 필드의 29비트 ID를 보다 작은 필드들로 깨뜨려서 (그림 2 참고. 29비트의 ID가 11비트와 18비트의 두 개 필드로 나누어짐) 우선 순위, 수신 디바이스와 데이터 내용을 제어한다. SOF, SRR, IDE와 RTR은 이 설명에서는 무시된다. 이것은 J1939-21의 데이터 연결층에서 명시된다.

 

WarJ1939-2.jpg

그림 2: 29비트 CAN ID 를 가진 확장 CAN 프레임의 분할

 

29비트 CAN ID의 최초 3비트는 가장 높은 우선 순위를 가진 000으로, 메시지 우선 순위를 결정하는데 사용된다. 이것은 당연히 CAN이 작동하는 방식과 일치한다.

 

CAN ID의 그 다음 비트는 저장되어 전송된 메시지를 위한 0으로 설정되어야 한다. 29비트 CAN ID의 그 다음 9비트는 DP(데이터 페이지)와 PDU 포맷으로 나누어진다. 이러한 것들은 CAN 메시지의 데이터 영역에 어떤 데이터가 포함되는지를 서술한다. DP비트는 page selector이며, 8비트 PDU 포맷은 서로 다른 데이터 내용을 나타내는 256 values를 제공한다. Page 0 (DP=0)은 현재 정의된 모든 정보를 포함하며, Page 1 (DP=1)은 향후 확장을 위해 남겨진다.

 

29비트 CAN ID의 그 다음 8비트는 PDU 규격이다. PDU 포맷 영역이 0에서 239인 경우, 이 영역은 PDU1으로 알려진 수신지 주소를 포함한다. PDU 포맷 영역이 240에서 255인 경우, 이 영역은 PDU2로 알려진 확장 데이터 내용을 포함한다.

 

29비트 CAN ID 의 마지막 8비트는 전송 디바이스의 주소를 포함한다. 따라서 256 디바이스들은 단일 J1939네트워크에 속할 수 있다.

 

WarJ1939-3.jpg

그림 3: J1939 영역에서의 CAN 29비트 ID 분할

 

PDU1

PDU1의 경우, PDU Specific 영역은 메시지의 수신지 주소가 되며 따라서 PDU1은 특정 수신지 주소를 이용하여 직접적인 통신을 허용한다. 이것은 그림 4에 나와있다.


 WarJ1939-4.jpg

그림 4: PDU1에 관한 J1939 영역에서의 CAN 29비트 ID 분할

 

PDU2

PDU2 포맷은 특정 수신지가 아닌 오직 통신 메시지들이다. 특정 PDU 영역은 그림 5에서 보여지는 것처럼, 그룹 확장이 된다.

 

WarJ1939-5.jpg

그림 5: PDU2에 관한 J1939 영역에서의 CAN 29비트 ID 분할

 

J1939를 통해 얼마나 많은 데이터 바이트들이 전송될 수 있는가?

특정 파라매터 그룹을 위해 8 또는 그 이하의 데이터 바이트 전송이 필요하다면, 1 single CAN 프레임을 통해 전송하시오. 전송될 데이터 바이트가 8바이트 이상인 경우, 이것들은 다중 CAN 프레임을 통해 전송된다. 최대 1785 data bytes가 7 바이트의 배수들로 전송될 수 있다.  CAN 프레임의 다른 바이트는 하나의 'multiplex'  비트로 사용되며 따라서 총 (255 x 7) = 1785 CAN 프레임들이 전송될 수 있다.

 

SAE J1939의 애플리케이션

J1939 는 원래 일반 트럭과 트레일러 시스템에서 ECU들을 연결하기 위해 개발되었다. 그러나, 이것의 응용은 건설, 농기계를 거쳐 심해 탐사 차량에까지 널리 확산되고 있다.

 

J1939 물리 계층

J1939 물리 계층은 J1939/11 규격에서 표준화되었다. J1939 네트워크는 차량의 ECU 각각을 함께 연결하면서 차량 둘레에서 동작하는 단일의, 선형, 차폐된 꼬임 쌍의 전선으로 설계된다. 이 위상은 반사를 줄이는 termination 레지스터를 가진 250Kbaud에서 실행되는 선형 버스로 설계된다. J1939 네트워크는 다중 버스 섹션들로 구성될 수 있으며, 그들 하나 하나는 서로간에 브리지로 연결된다. 이 브리지의 주요 기능은 서로 다른 세그먼트들 간의 전기적 독립을 제공하여 한 시스템의 전기적 실패가 부근 시스템에 그와 같은 실패를 일으키지 않도록 하기 위함이다. 예를 들어, 트레일러 상의 CAN/J1939 시스템의 실패가 트럭의 트랙터 중심 CAN/J1939 제어 시스템의 실패를 일으켜서는 안된다. 더 자세한 사항은 그림 1과 J1939-11을 참고하기 바란다.

 

J1939에서 사용할 수 있는 표준

J1939 는 SAE에 의해 표준화되었다 (www.sae.org 참고). 다음 규격들을 SAE에서 구입할 수 있다:-

  • J1939 Recommended Practice for a Serial Control & Communications Vehicle Network
  • J1939/11 Physical Layer, 250 Kbits/s, Shielded Twisted Pair
  • J1939/13 Off-Board Diagnostic Connector
  • J1939/15 Reduced Physical Layer, 250 Kbits/s, Unshielded Twisted Pair
  • J1939/21 Data Link Layer
  • J1939/31 Network Layer
  • J1939/71 Vehicle Application Layer
  • J1939/73 Application Layer - Diagnostics
  • J1939/81 Network Management

 

J1939 약자 (Abbreviations)

  • ACK Acknowledgement
  • CAN  Controller Area Network
  • CRC Cyclic Redundancy Check
  • DLC Data Length Code
  • DP Data Page
  • EOF  End of Frame
  • ID  Identifier
  • IDE Identifier Extension Bit
  • PDU  Protocol Data Unit
  • PGN  Parameter Group Number
  • RTR  Remote Transmission Request
  • SOF  Start of Frame
  • SRR  Substitute Remote Request

 


 

TTCAN

 

TTCAN은 무엇인가?

TTCAN은 Time Triggered Controller Area Network를 뜻한다. TTCAN은 자동차 최초 generation drive-by-wire 시스템의 요구에 부응하기 위해 개발되어졌다. 통신 네트워크의 순수한 타임 트리거 실행은 전역적으로 동기화된 시간의 진행에 의해 활동이 결정된다는 것을 의미한다. 통신은 사전-정의된, 다시 말하면 설계시 정의된 시간 스케쥴에 의해 좌우된다.

 

TTCAN의 주요 특징

TTCAN의 주요 특징은 Basic Cycle로 불리는 시간의 규칙적 반복 사이클을 사용하는 방법과 같은 Time Division Multiplexed Access (TDMA)를 통해 버스 액세스가 제어되는 것이다.

 

Basic Cycle은 네 종류들 중의 어느 것과 혼합이 될 수 있는 time windows의 고정된 수(즉, 설계시 고정된)로 분할된다; Reference Message, Exclusive Window, Arbitration Window, Free Window.

 

아래 도표의 Basic Cycle 을 보시오.

 

WarTT.gif

 

전반적인 주요 특징들은 다음과 같습니다:-

  • 최초 generation Drive-by-wire 시스템 겨냥
  • Time Triggered bus access
  • 실리콘이 이제 등장하기 시작
  • 현재의 기술 지식과 개발 도구 사용 가능
  • Global time master를 통해 전역적으로 동기화된 시간
  • 중재가 파괴되는 경우 메시지 재전송 중단 기능

 

Reference Message

이것은 타임 마스터 제어 유닛(global time master)에 의해 전송되며 Basic Cycle의 타이밍을 제어한다. Reference Message는 Basic Cycle의 시작을 나타낸다. 전역 시간(global time)은 4 data bytes에서 전송될 수 있으며 일반 데이터 전송을 위해 이용할 수 있는 나머지 4 data bytes를 남긴다.

 

Exclusive Window

이것은 전송될 메시지와 데이터를 수용할 수 있을 만큼의 길이를 가진 시간 조각(time slice)이다. 이 Exclusive Window는 단지 한 개의 특정 CAN 메시지를 위해 예비된 것이다.

 

Arbitration Window

Arbitration Window에서 수많은 노드들이 메시지 전송을 시도하게 된다. 따라서 Arbitration Window에서 버스 액세스를 다투게 되는 노드들은 일반적인 비-파괴 bitwise 중재 방법에 의해 경쟁하게 된다. 그러므로 가장 낮은 CAN 식별자를 가진 메시지가 중재에서 이기게 된다. 보통 CAN 시스템에서, 중재에서 진 노드들은 메시지의 재전송을 시도하게 된다.  이것은 TTCAN에서는 사용할 수 없는데 재전송은 Basic Cycle의 나머지 실행을 망가뜨리기 때문이다.

 

Free Window

Free Window는 TTCAN 시스템의 향후 확장을 위해 예비된 것이다. 따라서 나중에 더 많은 노드들이 추가될 수 있다.

 

TTCAN의 표준화 계획이 있나?

현재 TTCAN은 ISO-11898 파트 4에서 표준화가 진행되고 있다.

 

TTCAN에 알맞은 애플리케이션

현재 이용되고 있는, drive-by-wire 시스템의 최초 세대에 이상적이다. 기계적 백업이 포함된 Throttle-by-wire 또는 Brake-by-wire 시스템.

 

이것의 대역폭은 효율적이지 않을 수 있으므로 대부분의 steer-by-wire 시스템에는 적합하지 않을 수 있다; 그러한 시스템에 필요한 대역폭은 자동차의 속도가 증가함에 따라 증가된다.

 

TTCAN을 지원하는 반도체

비록 아직 결과가 알려지지는 않았으나, 많은 회사들이 그들의 CAN 컨트롤러에 time triggered 기능을 제공하고 있다

  • Atmel은 현재 그들의 T89C51CC01 8051 기본 프로세서에 레벨 1을 구현하고 있다.
  • NEC의 모든 현존하는 CAN 칩들은 이미 레벨 1까지의 표준을 지원하고 있으며, 레벨 2의 구현 작업이 곧 시작될 것이다.
  • Hitachi는 그들이 TTCAN 하드웨어 지원을 개발하고 있다는 것을 발표했다.
  • Bosch는 최근 실리콘에서의 레벨 1과 2의 최초 구현을 선보였다. 그들은 현재 TTCAN 기능을 가진 자립형 82527 호환 컨트롤러를 설계하고 있다. 이것의 TTCAN 코어의 VHDL 모델은 Bosch에서 이용할 수 있게 될 것이다.

 

TTCAN에 대한 어떤 대체 기술들을 이용할 수 있나?

TTCAN은 현재 drive-by-wire 시스템의 최초 세대를 위해 이용할 수 있는 기술인 반면 다른 기술들은 차세대 drive-by-wire의 사실상 업계 표준 최고 자리를 놓고 다투고 있다. 이러한 경쟁 기술들에는 byteflight, Time Triggered Protocol(TTP), FlexRay, EC-Net 이 포함된다. 이러한 기술들 각각은 CAN과 TTCAN의 대역폭을 훨씬 능가하는 대역폭을 보장한다; 5Mbaud부터 최대 25Mbaud.

 

요약

요약하여, TTCAN의 핵심 이점들은 다음과 같습니다:-

  • 현행 기술을 바탕으로 한 통신의 시간 결정 방법을 제공한다. 현행 기술에 바탕을 두고 있으므로, TTCAN에 관한 전문 지식은 단체의 현행 CAN 지식과 경험에 근거하게 될 것이다.
  • 원래 CAN을 겨냥했던 개발 도구들은 TTCAN에서의 데이터 분석을 위해 사용될 수 있다. TTCAN 프레임이 CAN의 것과 정확히 같으므로, 현재의 CAN 버스 분석 도구로 TTCAN의 직접적인 모니터링이 가능하다. 그러나, 현재의 도구들은 거의 확실하게 메시지 스케쥴을 방해할 것이므로, TTCAN 버스에서 전송한다면 이것이 반드시 가능한 것은 아니다.
  • 따라서 CAN에서 TTCAN 시스템으로의 변경은 커다란 재정적 지출을 필요로 하지 않을 것이다.
  • 버스가 하이 로딩에서 실행되는 것이 가능해짐에 따라 데이터 처리량이 증가한다.

 

 

출처: http://www.eskorea.net

 

 


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

 

CAN 개요

1) 정의

CAN은 초기에 자동차 산업(Automotive Industry) 분야에 적용하기 위해 고안된 시리얼 네트웍 통신방식이다. 근래에는 자동차 분야뿐만 아니라 산업 전 분야에 폭 넓게 적용되고 있으며 기본적인 시스템 구성은 아래와 같다.

 

1%281%29.jpg

 

2) 특징

임베디드 시스템(또는 마이크로 컨트롤러)에서 일반적으로 사용되는 CAN 버스는 마이크로 컨트롤러(마이컴) 사이에서 통신망을 형성하며, 2가닥의 꼬임선(Twist Pair Wire)으로 연결되어 반이중 통신(Half Duplex) 방식으로 짧은 메시지를 사용하는 고속 응용 시스템에 적당하다. 더불어 외부의 요인(노이즈 등) 등에 강인성을 가져 통신 에러율을 최소화 하여 높은 신뢰성을 가지고 있다. 이론적으로는 2032 개의 서로 다른 디바이스(임베디드 컨트롤러)를 하나의 네트웍 상에 연결하여 통신을 수행할 수 있으나 CAN 트랜시버(송신기)의 한계로 인하여 110 개까지의 Node(통신 주체)를 연결하여 사용할 수 있다(필립스 트랜시버 82C250의 경우).

 

통신 속도는 실시간 제어가 가능한 1Mbps(ISO 11898 규격)의 고속 통신을 제공하며 더불어 자동차 환경(자동차 엔진룸의 경우 다양하고 심각한 전기적인 노이즈 상존)과 같은 심각한 노이즈 환경에 적합하도록 에러 검출 및 에러 보정의 기능이 있다.

 

 

3) 연혁

1986년 자동차 내의 서로 다른 세 개의 전자장치(ECU-Electronic Control Unit)간의 통신을 위한 통신 장치 개발을 자동차 업체인 벤츠의 요구에 의하여 자동차 부품 업체인 독일의 보쉬에 의해 최초로 개발되었다. 초기에는 UART 방식을 고려하였으나 일대일(Point To Point) 통신 방식이기에 서로 다른 세 개의 ECU 간의 통신 방식으로는 적합하지 않아 다중통신(Multi Master Communication) 방식이 필요하게 되어 CAN이 탄생하게 되었다. 그후 최초의 집적화된 CAN 부품은 1987년 인텔에 의해 생산되어졌다.

 

 

 3.jpg

 

 

4) 규격

CAN 메시지에 있는 식별자(ID)의 길이에 따라 두가지 모드로 구분되어 진다.

  • 표준 CAN (버전 2.0A) : 11 비트 식별자
  • 확장 CAN (버전 2.0B) : 29 비트 식별자

 

ISO 규격에 따라 두가지로 구분되며 이 경우에는 물리계층에서 차이가 있다.

  • ISO 11898 : 1Mbps 이상의 고속 통신 가능
  • ISO 11519 : 125Kbps 까지의 통신 가능

 

대부분의 CAN 2.0A Controller는 오직 표준 CAN 포맷 방식의 메시지만 전송 및 수신이 가능하며 확장 CAN 포맷 방식(CAN 2.0B)의 메시지를 수신 하더라도 그 데이터를 무시해 버린다. 즉, CAN 2.0A Controller에서 보내온 메시지 데이터만 유효하다. 그러나 CAN 2.0B Controller는 양쪽 모두의 메시지 포맷을 송수신 가능하다.

 

 

4.jpg

 

 

5) 동작 원리

  • CAN은 다중통신망(Multi Master Network)이며 CSMA/CD+AMP(Carrier Sense Multiple Access / Collision Detection with Arbitration on Message Priority) 방식을 이용한다.
  • 먼저 CAN Node에 메시지를 보내기 전에 CAN 버스라인이 사용중 인지를 파악한다.
  • 또한 메시지간 충돌 검출을 수행합니다. 이러한 방식은 이더넷 통신 방식과 유사합니다.
  • 어떠한 Node(시스템)로부터 보내어진 데이터 메시지는 송신측이나 수신측의 주소를 포함하지 않는다.
  • 대신에 각 노드의 데이터 메시지 항목에 CAN 네트웍상에서 각각의 노드(시스템)를 식별할 수 있도록 각 노드(시스템) 마다 유일한 식별자(ID-11bit 또는 29bit)를 가지고 있다.

 

5.jpg

 

 

  • 네트웍상에 연결된 모든 노드(CAN Controller 시스템)는 네트웍상에 있는 메시지를 수신한 후 자신에게 필요한 메시지인지를 식별자를 통하여 평가한 후 자신이 필요로 하는 식별자의 메시지인 경우만 취하고 그렇지 않은 경우의 메시지는 무시한다.
  • 네트웍상(CAN 통신 라인)에 흘러 다니는 여러 노드의 데이터들이 동시에 사용자가 필요로하는 노드로 유입되는 경우에 식별자의 숫자를 비교하여 먼저 취할 메시지의 우선순위를 정한다. 식별자의 숫자가 낮은 경우가 우선순위가 가장 높다. (식별자가 1 인 경우가 10 인 경우보다 우선순위가 높음)
  • 우선순위가 높은 메시지가 CAN 버스의 사용 권한을 보장 받으며 이때 낮은 순위의 메시지는 자동적으로 다음 버스 사이클에 재전송을 수행한다. 이때 까지도 높은 우선순위를 가진 메시지가 완료되지 않은 상태이면 전송을 완료할 때까지 대기하고 있는다.
  • 각 CAN 메시지는 11 비트의 식별자(CAN 2.0A) 또는 29 비트의 식별자(CAN 2.0B)를 가지며 CAN 메시지의 맨 처음 시작부분에 위치한다.
  • 더불어 식별자는 메시지의 형태를 식별시켜 주는 역할과 메시지의 우선 순위를 부여하는 역할을 한다.

 

6) 메시지 구조 (Message Format)

(1) 개요

CAN 시스템(통신)에서 데이터는 메시지 프레임을 사용하여 송수신이 이루어진다. 메시지 프레임은 하나 또는 그 이상의 송신 노드로부터 데이터를 수신노드로 운반한다.
CAN Protocol(통신 규약)은 다음과 같은 두가지 형태의 메시지 프레임을 지원한다.

  • 표준 CAN (버전 2.0A)
  • 확장 CAN (버전 2.0B)

대부분의 2.0A CAN Controller는 표준 CAN 방식을 사용하나 2.0B CAN Controller는 표준 또는 확장 방식 모두를 사용하여 데이터의 송수신을 행할 수 있다.

 

(2) 표준 CAN 메시지 구조 (2.0A)

  • 7 개의 서로 다른 필드로 구성된다. (그림 참조)

6%281%29.jpg

< CAN 2.0A 메시지 구조>

  • 프레임의 시작(SOF : Start Of Frame) 필드 ; 메시지 프레임의 시작을 표시하며 메시지 프레임의 최우선에 위치하며 디폴트 "0" 값을 가진다.
  • 중재 필드(Arbitration Field) ; 11 비트의 식별자와 원격 전송 요구(RTR) 비트를 가지며 디폴트 "0"을 가지는 RTR 비트는 비트값이 "0" 일 때 CAN 메시지가 데이터 프레임 이라는 것을 가리킨다. 역으로 RTR 비트 값이 "1"이면 CAN 메시지가 원격전송요청(RTR : Remote Transmission Request)을 의미한다. 다시 말해 CAN 메시지가 데이터 프레임이 아닌 원격프레임(Remote Frame) 상태임을 나타낸다.
    원격 프레임은 데이터 버스상의 어떤 한 노드로부터 다른 노드로 데이터를 전송 요청할 때 사용되어진다. 데이터를 보내기 전에 사용되는 메시지 프레임이기에 데이터 필드를 포함하지 않는다.
  • 제어 필드(Control Field) ; 6 비트로 구성되며 향후에 사용되기 위해 예약된 두 개의 "0"의 값을 가지는 R0, R1과 데이터 필드의 바이트 수를 가리키는 4 비트의 데이터 길이 코드 (DLC : Data Length Code)로 구성된다.
  • 데이터 필드(Data Field) ; 한 노드로부터 다른 노드로 전하고자 하는 데이터를 포함하며 0~8 바이트로 구성된다.
  • CRC 필드(CRC : Cyclic Redundancy Check) ; 15 비트의 주기적 중복확인(CRC) 코드를 가지며 데이터필드의 끝을 알리는 "1"의 값을 가지는 비트가 이어진다.
  • ACK 필드 (ACKnowledge Field) ; 2 비트로 구성되며 첫 번째 비트는 "0" 값을 가지는 Slot 비트입니다. 그러나 메시지를 성공적으로 수신한 다른 노드로부터 전송된 "1"의 값으로 기록될 수 있다. 두 번째 비트는 "1"의 값을 가진다.
  • 프레임 종료 필드 (EOF : End Of Frame Filed) ; 7 비트로 구성되며 모두 "1"의 값을 가집니다. EOF 뒤이어 모두 "1"의 값을 가진 3 비트의 프레임 중단 필드 (INTermission Field)가 이어진다. 3 비트의 INT 주기 이후에 CAN 버스라인은 자유상태로 인식된다. 이후 버스 Idle Time은 "0"을 포함한 임의의 길이이다.

 

(3) 확장 CAN 메시지 구조 (2.0B)

  • 2.0A와 구분되기 위해 29 비트의 메시지 프레임 식별자를 가진다.
  • 기존에 사용중인 2.0A와 호환되는 2.0B로 발전되었다.
  • 2.0A와 차이점은 중재 필드가 두 개의 CAN 메시지 식별자로 구분되어 포함되며 첫 번째(기본 ID)는 11 비트 길이로 2.0A와 호환되게 하며 두 번째 필드(확장 ID)는 18 비트 길이로 ID는 총 29 비트로 구성된다. 두 개의 ID 필드 사이에 ID 확장자(IDE : IDentifier Extension)가 있어 두 개의 ID 필드를 구분한다. (그림 참조)

7.jpg

 

  • SRR(Substitute Remote Request) 비트는 중재 필드에 속해 있으며 표준 데이터 프레임과 확장 데이터 프레임을 중재해야 하는 경우에 대비하기 위해 항상 "1"의 값을 전송한다. 만약 표준 데이터 프레임과 확장 데이터 프레임이 같은 기본 ID(11 비트)를 가지고 있으면 표준 데이터 프레임이 우선 순위를 가진다. 그리고 2.0B 메시지 프레임에 있는 다른 필드들은 표준 메시지 포맷으로 식별된다.

 

(4) CAN 2.0A와 2.0B의 호환성

  • 2.0B Controller 입장에서는 2.0A와 송수신에 있어 완벽하게 호환이 된다.
  • 2.0A Controller는 두가지 경우가 있다.
    1) 첫번째는 2.0A Format의 메시지만 송수신이 가능한 경우이며 2.0B의 메시지는 에러를 발생시킨다.
    2) 두번째는 2.0B Passive로 알려져 있으며 2.0A의 메시지는 송수신 가능하고 더불어 2.0B의 메시지는 식별을 하여 무시해버린다. 그 결과 2.0A와 2.0B는 하나의 CAN 네트웍상에서 함께 사용할 수 있게 된다.
  • 사용자가 사용할 수 있는 CAN ID는 2.0A는 2,032 개이고 2.0B는 5억개를 초과 사용할 수 있다.

 

출처: http://www.eskorea.net


CAN (Controller Area Network) 소개


1) CAN 누가 개발했는가?

BOSCH(독일) : 자동차 전장품 개발 업체 (Injector, ABS 등)

 

2) CAN 필요성

  • 자동차 ECU (엔진 ECU, 미션 ECU, ABS, Air-Bag, ETACS 등) 간의 정보 공유 필요
  • 늘어나는 차량 Sensors의 공용화 필요
  • Noise가 많은 차량 환경(주 원인은 Spark)에 강인한 통신 필요
  • 독립적인 성향의 ECU들의 Network의 요구

 

3) CAN 응용 분야

  • 자동차 분야 : 센서 및 정보 공유
  • 기계 설비 분야 : 다수의 Processor 사용 분야

 

4) CAN-Bus 특징

-          Multi-Master, Multi-Slave : 각각의 Processor / Controller Priority(우선 순위) 존재하지만, Master 수도 있고 Slave 있다. 다시 말해, Processor / Controller 보낸 Data 필요에 따라 여러(Group) Processor / Controller 공유할 있다.

-          Shared Serial Bus Type : 최소의 Line(2 line) 통신인 Serial Type이며, ± line으로 구성되(485통신과 동일) 있으며, 이와 같은 방식의 장점은 외부 전자파나 노이즈에 강인한 특징을 갖는(이유는 외부 전자파나 노이즈가 ±Line 동일하게 영향을 끼쳐도 ±Line 위상차는 영향이 없기 때문이다).

-         Real-Time Communication : 기존의 Real-Time 통신이란, 특정 시간 안에 각각의 통신을 허용시키는 Token 방식 (통신 이용권)으로 이에 따른 문제점은 정작 중요한 Data 보내기 위해선 자기에게 Token 도달할 때까지 시간이 많이 걸릴 있거나, 통신 Line 이용할 Processor / Controller 충돌할 때에 중재자의 역할이 없으며, 필요없는 Data들을 선별하는 데에 에로 사항이 발생함으로, 이에 따른 문제점을 해결한 CAN 등장하게 되었다.

 

 5) CAN Version 변천

-          ver1.0 : 1985

-         ver1.1 : 1987

-          ver1.2 : 1990

-         ver2.0 A&B : 1991

            ver1.0, 1.1, 1.2 안정화 보편적인 전자 부품의 사용을 가능케 하기 위해 변한 것이며, ver2.0부터는 A B 구분되어져 A 기존과 동일하지만, B 확장 ID 추가함으로 보다 많은 종류 (최대2036->500만개) 데이터를 사용할 수 있게 하였다.

 

6) CAN Spec.

1-Mbps 이상 -> ISO 11898, 125Kbps 이상 -> ISO 11519 참조

 

7) CAN 이용 반도체 제조사들

  • Cygnal : 8051 계열의 Controller
  • Fujitsu : Microcontroller
  • Hynix : ARM720T Core의 Processor
  • Infineon : Stand-alone controller, Microcontrollers, Transceiver
  • Intel : Stand-alone controller, Microcontrollers
  • Philips : Stand-alone controller, Microcontrollers, Transceiver
  • 기타 취급하는 반도체 회사는 Atmel, Bosch, CiA, Dallas, Hitachi, Inicore, Microchips, Mishibishi, Motorola, NEC, NI, STM, TI 등이 있다.

출처: 임베디드 시스템 코리아

 

CAN (controller area network) ; 계측 제어기 통신망

CAN은 실시간 제어 응용시스템 내에 있는 센서나 기동장치 등과 같은 주변장치들을 서로 연결해 주는 마이크로 제어기용 직렬 버스 네트웍을 가리킨다. CAN에서는 이더넷 등에서 사용되는 것과 같은 주소 지정 개념은 사용되지 않으며, 메시지는 해당 네트웍에서의 고유한 식별자를 사용하여 네트웍 내에 있는 모든 노드들에게 동시에 뿌려진다. 개개의 노드들은 이 식별자에 기반하여 해당 메시지를 처리할 것인지의 여부를 결정하며. 버스 접근 순서 역시 경쟁원리에 따라 메시지 우선순위를 정한다. 충돌이 감지되었을 때 이더넷에서는 전송이 중단되는 것과는 달리, CAN과 같은 방식을 사용하면 중단 없는 데이터 전송이 가능하다.

 

CAN은 원래 차량에 적용하기 위해 처음 개발되었다. 네트웍에는 일련의 센서들이 구비되어 있어 자동차가 적절하고 안전하게 달리고 있는지에 관한 시스템을 감시할 수 있다. 하지만, CAN은 차량에 적용하는 것 이외에도 지능형 주변장치를 위한 개방형 통신시스템은 물론, 마이크로 제어기용 내장 통신 시스템으로도 사용될 수 있다.

 

CAN은 1986년에 로버트 보쉬에 의해 처음 개발되었으며, 최고 속도 125 Kbps 까지의 활용을 위해 ISO 11519로, 그리고 1 Mbps 까지의 활용을 위해 ISO 19898로 각각 표준화되었다.

 

CAN 통신

CAN통신 (Controller Area Network 의 약자) 여러개의 ECU를 병렬로 연결하여 데이터를 주고 받는 통신방법이다. 즉, 각각의 ECU는 자기가 가지고 잇는 데이터를 계속해서 다른 ECU들에게 보내고, 또한 상대편 ECU에서 보내주는 데이터를 우선순위에따라 받아 처리하는 방식으로 다량의 정보를 공유할 수 있는 장점이 있다.

 

통신선은 2개인데 흔히 BUS A 와 BUS B라고 부르며, 통신선 상에 데이터를 띄워놓고 필요한 데이터를 가져다 사용하는 방식이라고 생각하면 이해하는데 도움이 될 것이다. CAN 통신은 BUS A와 BUS B 의 전압 차이로 데이터를 읽기 때문에 2개선중에서 1개라도 단선이 되면 통신이 불가하다.