|
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 칩 메이커들이 요약되어 있습니다:
Product |
Type |
Comments | |
Fujitsu |
F2MC-16L |
2.0B, Integrated |
16 bit |
Hitachi |
HCAN-1 |
Stand-alone |
- |
Intel |
82527 |
2.0B, FullCAN, Stand-alone |
- |
Intermetall |
CCU 3010E |
Integrated |
- |
Mitsubishi |
M37630 E4/M4 |
2.0B, Integrated |
8 bit |
Motorola |
MC68HC05XX |
2.0A, Integrated |
8 bit, XX=4K, 16K or 32K |
National Semiconductors |
COP87L88EB |
2.0B, BasicCAN, Integrated |
8 bit |
NEC |
uPD78F0948 |
2.0B, 8 bit Integrated |
Many variations available |
Philips Semiconductors |
SJA 1000 |
2.0B, BasicCAN, Stand-alone |
C200 was replaced by SJA 1000 |
SGS Thomson |
ST10F167 |
Integrated |
16 bit |
Infineon |
SAE81C90/91 |
2.0B, FullCAN, Stand-alone |
2.0B Passive |
Temic |
TSC8051A11 |
Integrated |
8 bit |
Texas Instruments |
TMS370E08D55 |
2.0B, Integrated |
- |
Toshiba |
TMP88PP87 |
2.0B, Integrated |
8 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을 위한 규격서입니다.
LIN 이란 무엇인가?
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
LIN 추가 정보
LIN 컨소티움 웹사이트 http://www.lin-subbus.org
<울산대학교 전기전자정보시스템공학부 / 김 한 실>
|