This study is the report based on TI corporation " Introduction to the Controller Area Network (CAN) "
Introduction to the Controller Area Network (CAN).pdf
ABSTRACT
A controller area network (CAN) is ideally suited to the many high-level industrial protocols embracing CAN and ISO-11898:2003 as their physical layer. Its cost, performance, and upgradeability provide for tremendous flexibility in system design.
This application report presents an introduction to the CAN fundamentals, operating principles, and the implementation of a basic CAN bus with TI's CAN transceivers and DSPs. The electrical layer requirements of a CAN bus are discussed along with the importance of the different features of a TI CAN transceiver.
CAN
bus (for controller area network) is a vehicle bus
standard designed to allow microcontrollers and devices to communicate with
each other within a vehicle without a host computer.
CAN bus is a message-based protocol,
designed specifically for automotive applications but now also used in other
areas such as aerospace, industrial automation and medical equipment. - Wiki
1 Introduction
The CAN bus was developed by BOSCH(1) as a multi-master, message broadcast
system that specifies a maximum signaling rate of 1 megabit per second (bps).
Unlike a traditional network such as USB or Ethernet, CAN does not send large
blocks of data point-to-point from node A to node B under the supervision
of a central bus master. In a CAN network, many short messages like
temperature or RPM are broadcast to the entire network, which provides
for data consistency in every node of the system. Once CAN basics such as
message format, message identifiers, and bit-wise arbitration -- a major
benefit of the CAN signaling scheme are explained, a CAN bus implementation is
examined, typical waveforms presented, and transceiver features examined.
1986년 자동차 내의 서로 다른 세 개의 전자장치 (ECU-Electronic Control Unit) 간의 통신을 위한 통신 장치 개발을 자동차 업체인 벤츠의 요구에 의하여 자동차 부품 업체인 독일의 보쉬에 의해 최초로 개발되었다.
초기에는 UART 방식을 고려하였으나 일대일 (Point To Point) 통신 방식이기에 서로 다른 세 개의 ECU 간의 통신 방식으로는 적합하지 않아 다중통신 (Multi Master Communication) 방식이 필요하게 되어 CAN이 탄생. 그후 최초의 집적화된 CAN 부품은 1987년 인텔에 의해 생산되어졌다.
2 The CAN Standard
CAN is an International Standardization Organization (ISO) defined serial communications bus originally developed for the automotive industry to replace the complex wiring harness with a two-wire bus. The specification calls for high immunity to electrical interference and the ability to self-diagnose and repair data errors. These features have led to CAN’s popularity in a variety of industries including building automation, medical, and manufacturing.
The CAN communications protocol, ISO-11898: 2003, describes how information is passed between devices on a network and conforms to the Open Systems Interconnection (OSI) model that is defined in terms of layers. Actual communication between devices connected by the physical medium is defined by the physical layer of the model. The ISO 11898 architecture defines the lowest two layers of the seven layer OSI/ISO model as the data-link layer and physical layer in Figure 1.
▶CAN Version 변천
- ver 1.0 : 1985 - ver 1.1 : 1987 - ver 1.2 :
1990 - ver 2.0 A&B : 1991
ver1.0, 1.1, 1.2는 안정화 및 보편적인 전자 부품의 사용을 가능케 하기 위해 변한 것이며 ver2.0부터는 A와 B로 구분되어져 A는 기존과 동일하지만, B는 확장 ID를 추가함으로 보다 많은 종류 (최대2036->500만개) 의 데이터를 사용할 수 있게 하였다
▶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의 장점 및 특징
- CAN 프로토콜은 Multi
Master 통신을 한다. 통신버스를 공유하고 있는 CAN컨트롤러들은 모두가 Master역할을 하여 언제든지
버스를 사용하고 싶을 때 사용할 수 있다.
- 노이즈에 매우 강하다. 레벨은 다르지만 RS485와 비슷하게 twist pair 2선을 사용하여 전기적 Differential 통신을 하여 전기적
인 노이즈에 매우 강하다
- 표준 프로토콜이므로 시장성이 뛰어나다. 이로 인해 많은 업체들이 경쟁적으로 CAN칩을 제작하고 있으며, 비용 또한 비교
적 저렴하다. CAN 프로토콜은 호스트 CPU에 내장된 CAN 컨트롤러 칩이나, 호스트 CPU에 장착된 CAN 주변장치에서 실행
된다.
- 통신속도가 빠르다. -최대 1 Mbps까지 사용할 수 있다.
- 먼 거리를 통신할 수 있다. -최대 1000 m 까지도 40 kbps로 통신할 수 있다. 하드웨어적인 오류보정이 있다.
- 하드웨어적으로 설정된 ID만을 골라 수신 받을 수 있다. CAN에는 수신필터가 있어 필터를 어떻게 설정하느냐에 따라 정해
진 ID, 특정 그룹 또는 전체 수신을 할 수 있다.
- 실시간 메시지 통신을 할 수 있다. 한번에 8개의 데이터를 전송하는 HW 패킷을 제공한다. 보통
RS232/RS485
통신에서는 패킷 통신을 위해 사용자가 일일이 패킷 형식을 만들어 주고 수신 받을 때도 그런 해석이 필요하지만 CAN은 8바이트 데이터를 담는 HW 패킷 통신을 기본으로 한다. 따라서 사용자는 데이터 버퍼에 데이터를 쓰고 전송만 하면 그 외 모든 처리는 HW가 알아서 한다. 분산제어 분야 적용이 용이하다.
- 우선순위가 있다.
-사용되는 전선의 양을 획기적으로 줄일 수 있다.
- PLUG &
PLAY 를 제공한다.
[본문중] CAN 은
ISO가 정의한 complex wiring을 간단한 a
two-wire bus 타입으로 바꾸었다.
CAN 통신은
ISO 11898 통신방식을 채택하고 있다. 즉, The CAN communications protocol, ISO-11898:
2003 은 네트워크상의
디바이스들 간에 정보가 어떻게 교류될 수 있는지를 설명하고, 계층으로 나눠져 설명하는 OSI모델을 따른다.
Actual communication between devices connected
by the physical medium is defined by the physical layer of the model.
The ISO 11898 architecture defines the lowest
two layers of the seven layer OSI/ISO model as the data-link layer and physical
layer in Figure 1.
ISO-11898은
Figure1처럼 데이터 링크와 물리계층 낮은 두 계층으로 정의됩니다.
In
Figure 1, the application layer establishes the communication link to an
upper-level application specific protocol such as the endor-independent
CANopen™ protocol. This protocol is supported by the international users and
manufacturers group, CAN in Automation (CiA). Additional CAN information is
located at the CiA Web site, can-cia.de. Many protocols are dedicated to
particular applications like industrial automation, diesel engines, or
aviation. Other examples of industry-standard, CAN-based protocols
are KVASER's CAN Kingdom and Rockwell Automation's DeviceNet™.
그림 1에서 애플리케이션 계층은 데이터 링크 레이어 위에 있습니다. 어플리케이션 계층에서 사용되는 예는 CAN open™ protocol 등이 있습니다.
CAN에 대한 자세한 내용은 cia사이트나 아래를 참조해주세요.
CANopen is a communication protocol and device profile specification for embedded systems used in automation. In terms of the OSI model, CANopen
implements the layers above and including the network layer. The CANopen standard consists of an addressing scheme,
several small communication protocols and an application layer defined by a device profile. The communication protocols have
support for network management, device monitoring and communication between
nodes, including a simple transport layer for message segmentation/desegmentation. The lower level
protocol implementing the data link and physical layers is usually Controller Area Network (CAN), although devices using some other means of
communication (such as Ethernet Powerlink, EtherCAT) can also
implement the CANopen device profile. -wiki