CAN(Controller Area Network)
- Bus Topology
- Multi-Master : 버스가 idle 상태일 때 모든 노드가 정보를 보낼 수 있는 자격을 가짐
- Multi-Casting Protocol : 모든 노드가 같은 메세지를 수신하고, 메세지 내용에 따른 동작을 취함
- Unicast : 일대일
- Multi-cast : 1:M (특정 노드)
- Broadcast : 1:N (N:모든 노드)
- 메세지 종류에 따른 ID 할당 ➡ 우선순위를 이용한 충돌 회피
- 높은 우선순위(ID 작음) : 작은 Latency
- 낮은 우선순위(ID 큼) : 큰 Latency
- 계속 delay 되어 무한루프에 빠질 가능성 有
- CAN bus의 최대 성능의 50%만 사용하여 해결
CAN Bus Topology
장점
- 케이블 사용 小
- 설치 간편 ➡ 초기 LAN 구성에 용이
- LAN (Local Area Network) : 거리가 가까운 장치들을 연결한 네트워크
- 노드 개수 적은 소규모 네트워크 구성에 유리함
단점
- 케이블 고장시 전체 시스템 통신 불가 가능성 有
- 트래픽 증가시 데이터 충돌 발생 (지연시간 Latency ⬆⬆)
- 노드 개수 / 트래픽 증가에 따른 통신 성능 급감
- 케이블 길이 확장에 한계
- 케이블 길이 ⬆ 전송 속도 ⬆ ➡ 반사 영향 ⬆
CAN 통신 종류
Type | Name | Data Rate[bps] | ID[bit] | Payload[Byte] |
---|
1.0 | LS-CAN | 125k | 11 | 8 |
2.0A | HS-CAN | 125k ~ 1M | 11 | 8 |
2.0B | HS-CAN | 125k ~ 1M | 29 | 8 |
FD 1.0 | CAN FD | 100k ~ 5M | 11 / 29 | 64 |
- payload (유료부하) : 실제로 수신부에서 받는 데이터의 양
CAN Bus Cable
- 신호 전달에 케이블 두 가닥 필요 (CAN_High, CAN_Low)
- 120Ω 종단 저항
- 버스에 최대 32개의 노드 연결 가능
Twisted pair cabling
Twisted Pair Cabl (꼬임 쌍선) : 도체 두 가닥을 꼬아서 만든 케이블
두 케이블은 잡음원(noise)로부터 평균 거리 일정 ➡ 동일한 영향
수신부에서는 두 와이어의 신호 차이를 측정하여 노이즈 제거
라인 임피던스 (Z0)
Z0=I(x)V(x)=G+jωCR+jωL
라인을 따라 전송되는 파형의 전압과 전류의 비율
- 라인 길이 : ∞
- ω=2πf ➡ 주파수에 따라서도 변할 수 있음
- 결정 요소 : 라인의 기하학적 구조, 사용 물질
- 라인의 경계에서 임피던스가 다르면 파형 반사 발생
- 라인 임피던스와 동일한 값을 라인 종단에 추가하면 반사 제거 가능
CAN 버스의 라인 임피던스 : 120Ω
버스 길이에 따른 데이터 전송 속도
케이블(Bus)가 길어질수록 전송 속도가 느려짐
- 신호 감쇄 : 크기가 작아지고 노이즈 多
- 신호 반사 : 각 노드에서 반사 발생 ➡ 기존 신호 + 반사 신호 = 신호 왜곡
반사에 의한 dispersion(분산) 현상 발생
CAN Bus 신호
전압
- dominant <0>
- CAN_H - CAN_L = 2V (실제로는 0.9V 이상)
- recessive <1>
- CAN_H - CAN_L = 0V (실제로는 0.5V 이하)
버스 로직
Tx | Rx | Bus |
---|
0 | 0 | 0 |
0 | 1 | error |
1 | 1 | 1 |
1 | 0 | 0 (다른 노드가 이김) |
CAN system 구성
CAN Transceiver
- CAN 버스 신호 처리 : 디지털 신호 레벨 ➡ CAN Bus 신호 레벨
- Physical Layer
CAN Controller
- 역할
- CAN Message frame 생성
- CAN Message 동기화
- 오류 탐지 및 처리
- Bit stuffing 담당
- Datalink Layer
Microcontroller