(기존 산업용 통신) UART와 같은 1:1 통신은 여러 대의 제어기 간 정보 공유와 전송 속도, 실시간성을 맞추기 어려움
(차량용 CAN 통신) 제어기 간 안정적인 정보 교환 가능
차량용 맞춤 통신으로 비용, 무게, 안정성, 통신 속도 및 거리, 실시간성이 고려되어 개발됨
83' BOSCH 주축 개발 시작
92' CAN 통신 적용 차량 출시
98' TT CAN(Time-Triggered) 개발 - 제어 성능 및 실시간성 향상
06' Low-speed CAN 개발 - 통신선 하나가 끊어져도 낮은 속도에서 안정적 통신 가능
16' CAN-FD 개발 - 기존 대비 통신 속도 향상
CAN High, Can Low를 이용해 각각의 통신선을 제어기가 공유하는 형태
Multi-master
네트워크로 구성된 제어기는 원하는 시점에 정보 송,수신 가능
각 제어기가 통신선을 관리하는 주인 역할을 함
Twisted pair(2-wire)
두 개의 통신선으로 네트워크 구성 -> 기존의 통신(이더넷 등)보다 단순한 선로 구성 가능
Bus Topology
제어기의 추가, 제거 용이해 설계자 입장에서 사용 용이함
다른 부품사에서 제조된 제어기들의 네트워크 구성이 CAN 통신으로 가능함
ISO 국제표준단체에서 ISO 11898 의 spec으로 CAN 정의
통신이 어떤 신호를 통해 전달되는지에 관한 물리 계층의 spec
두 가닥의 통신선 이용
최대 1Mbit/s 최저 10kbit/s 통신 속도 조절 가능
1000kbit/s 의 경우 최대 40m까지 통신선 길이 제한됨
-> 일반적인 차량 내 30~40m 통신선 필요
-> 130m까지 구성 가능한 500kbps 속도로 보통 구성
통신선로 양 끝단에 종단 저항 -> 반사파 현상 제거를 위함
Star, Ring, Bus Topology 모두 사용가능함
차량 내에서는 Bus Topology 사용해 여러 개의 네트워크 구성
CAN 통신 물리 계층 동작 원리
Differential signal
두 통신선의 전압 차이로 0 또는 1 판별
외부의 진동, 전자기파에 의한 신호의 왜곡 발생 가능
-> 신호의 왜곡은 두 통신선에 모두 작용하기 때문에 전압 차이는 유지됨
-> 1 또는 0 판별에 문제 없음
= 매우 안전한 통신 방식
각 High/Low 신호는 Transceiver를 통해 구현됨
TTL 레벨 신호 -> CAN Differential 신호 생성
Transmitter(발신기) -- Message(정보) --> Receiver(수신기)
Data Frame : 정보를 담고 있는 그릇
SOF (Start of Frame): single dominant bit
프레임 포맷 정의
Arbitration Field :
11 bit identifier
1 bit RTR(Remote Transmission Request) Dominat for data frames, recessive for remote frames
메시지의 인덱스 넘버 지정
ex) ID0 엔진, ID1 브레이크, IC2 내비게이션
CRC (Cyclic Redundancy Check) :
15 bit CRC with generator polynomial X^15+X^14+X^10+X^8+X^7+X^4+X^3+1
1 bit CRC delimiter : single (always) recessive bit
수신 확인으로 데이터 안정성 보장
ACK (Acknowledgement)
1 bit ACK slot : dominant overwriting
1 bit ACK delimiter : single (always) recessive bit
정확한 데이터 수신 시 발신자에게 전달
부가 정보 이용 -> 안정적인 데이터 전달
End of Frame : 7 recessive bits
버스에 연결된 여러 개의 제어기가 동시에 메세지를 보내려고 할 때 Message ID 정보로 메세지 전송 순서를 정함
Message ID 정보
숫자로 표현될 수 있는 정보
순차적인 메세지 전소잉 필요함 -> 메세지 간 우선 순위 경쟁에 활용
번호가 낮을수록 우선 순위가 높음
메세지 1번이 전송이 완료된 후 메세지 2번을 전송할 수 있음
Bit rate (통신 속도)
차량 내 500Kbps 속도 이용
Bit Time
1 bit의 시간 길이
500Kbps의 경우 1 bit time = 1/500,000s = 2us
Sample Point
1 bit의 Bit time 중 0/1을 판단할 수 있는 지점
1 bit time = 2us 인 경우, 2us 동안 0/1을 확인할 지점을 지정
Time Quanta
1 bit를 나누는 최소 단위
1 time quanta = 100ns의 경우, 2us = 20개의 time quanta로 구성
sampling 지점에 따라 다른 값 측정
1 bit의 길이는 통신 속도에 의해 결정
500Kbps 설정 -> 1 bit time = 2us = 20개의 time quanta 중 smaple point 지정 위치에 따라 다른 값 측정 가능
Phase seg 1과 Phase seg 2 사이의 지점을 sample point로 지정하여 퍼센트(%)로 표현함
1 bit 전체 중 sampling 지점에 대한 기준점 제시
보통 보다 안정적인 신호를 가지는 70%이상의 지점으로 정함
CAN 통신 신호 = 우성 비트(Dominant bit), 열성 비트(Recessive bit)
두 신호가 충돌 시 우성 비트가 bus 신호 점유
Arbitration : 여러 제어기가 동시에 메시지를 전송하려 할 때 발생하는 현상
CAN ID의 설정에 따라 신호를 전달하는 제어기 설정
동작과정 ex)
각 Message ID는 서로 다른 값을 가짐
동일한 비트를 전송할 때는 동작하지 않음
서로 다른 비트를 전송할 때 Arbitration 동작
-> 열성비트는 우성비트에 의해 무시됨
-> 무시된 비트를 가진 제어기는 이후의 메시지 신호 전달을 중지함(Loses Aritration)
-> 제어기 2의 데이터 전송 완료. 다시 메시지 전달하지 않음
CAN-Flexible Datarate
CAN 통신에서 파생된 새로운 개념
제어기 수와 데이터량 증가로 기존의 방식에 한계
기존 CAN 통신의 네트워크 체계 유지, 성능 개선 방안 모색
Ethernet과 Classic CAN, CAN-FD 사이의 중간 단계 제어기들의 정보 처리
Tunneling(터널링) 하나의 프로토콜이 다른 프로토콜을 감싸는 캡슐화 기능을 통해 TCP/IP 형태의 데이터를 변환없이 그대로 CAN-XL 통신으로 전달할 수 있는 기능 제공