배경
- 차량 내 전장장치들과 이 장치들을 컨트롤하는 제어기들이 서로 정보를 주고받을 필요성이 있었음.
- 기존의 통신(TCP/IP통신,와이파이,블루투스)으로는 차량 개발 상황과는 맞지않는 비효율적인 문제가 존재.
- 따라서 BOSCH라는 회사에서 자동차 개발 환경에서 자동차 제어기끼리 정보를 주고받는데 특화된 통신 새롭게 만듦
배경 지식
- Canoe: CAN 통신과 관련된 소프트웨어 툴. 캔통신과 관련해서 시뮬레이션을 하거나 캔 네트워크에서 송수신하는 데이터들을 로깅하는 기능을 함.
- Vector: Canoe를 만든 회사. 이 회사에서 만든 툴들이 종종 등장을 해서 알아두면 좋음
버스형 토폴로지
- 버스라는 공통선을 두고 각각의 제어기들을 버스에 연결해서 네트워크에 참여함
- 제어기들을 확장하고 제거하는데 용이함
- 통신선이 단순하고 통신선의 수와 길이가 감소함. ->무게 감소, 연비 증가
- 모든 메시지는 브로드캐스트 방식으로 송신함.
- 단점: 제어기 하나에서 고장이 나면 잘못된 신호가 다른 통신선에도 전달되어 통신자체가 불가함
- 이러한 단점을 커버하기 위해 스스로 고장을 감지하여 Bus Off 라는 state에 가는 알고리즘을 만듦.
- bus off state에 가면 고장난 제어기는 더이상 통신을 하지 않음
- Can 커넥터: D-Sub로 연결함. 두가닥의 전선을 사용.(CAN High, Low)
- 2번 pin - CAN Low, CAN High에 연결함
- 120옴 저항 -> 반사파에 의한 신호왜곡 방지
120옴 저항, CAN High, Low 신호
- 캔 버스 양 끝단에 120옴의 저항이 필요. 혹시 통신이 정상적으로 안된다면 체크!!
- CAN 에서는 CAN High, CAN Low 간의 전압차를 이용하여 데이터를 표현
- 전압차를 이용한 방법의 장점: Noise에 강하다!
- 선을 꼬아 놓음으로서 High와 Low 양쪽에 확실하게 Noise를 줄 수 있게 함
- CAN High – CAN Low 값이 0.9 ~ 5 볼트 = 0= Dominant을 표현
- CAN High – CAN Low 값이 -0. 1 ~ 0.5 볼트 = 1 = Recessive을 표현
- Dominant 가 Recessive 보다 우선순위가 높음
CAN Controller, CAN Transceiver
- 각각의 제어기 안에는 일종의 작은 컴퓨터인 MCU가 존재
- MCU 내부에는 각종 peripheral(MCU의 구성요소를 뜻함)들이 있고, 그 중에 CAN 통신과 관련된 역할을 하는 CAN Controller 라는 peripheral 있음
- 캔 컨트롤러 : 메세지에 담기는 값과 관련 (Data Link Layer라고 함)
- 트랜시버 : 실제로 전선에 출력되는 전압과 관련 (Physical Layer라고 함)
- CAN Controller가 송신하는 데이터는 CAN TX 핀을 통해서 캔 트랜시버에게 전달(5V or 3.3V : Data 1 ,0V: Data 0로 전달)
- CAN Tranceiver는 CAN Controller로부터 정보를 받아서 CAN High, CAN Low 핀으로 실제 ‘전압‘ 을 출력
- 반대로 다른 제어기가 메세지를 전송하면 CAN High, CAN Low의 전압값을 읽어서 비트로 해석하여 CAN RX 핀을 통하여 캔 컨트롤러에게 전달
- 작동 모드에는 Normal Mode, Listen-only Mode, Standby Mode, Go-to-Sleep mode, Sleep mode가 있음
- Normal Mode
- Listen-only Mode
- Standby Mode
- Sleep mode
- Go-to-Sleep mode
NISSAN 자동차의 CANdb 구성
브레이크(Brake,ABS(Anti-lock Brake System)), 속도(Cruise), 도어(Door), 자동주행장치(ESP(Electronic Stability Program)), 기어박스(Gearbox), 헤드업디스플레이(HUD), 라이트(Light), 차선유지시스템(LKAS), 자율주행(ProPilot), 안전벨트(Seatbelt), 조향장치(Steer), 바퀴(Wheel) 등으로 구성
Baud Rate(통신속도)
- CAN 통신 속도를 Baud Rate라고 함. 단위는 bps.
- CAN DB: 자동차 개발 기간 동안 작성되며, 일종의 설계도 같은 역할을 함. 데이터 전송을 위한 요소(메시지의 ID, 주기, 전송 노드, 수신 노드 등)들이 정의됨.
- 해당 네트워크에 참여하는 모든 제어기들은 모드 통일된 Baud Rate을 사용해야함.
- Baud Rate을 얼마로 할 건지는 OEM(완성차회사)에서 지정하여 CAN DB에 나타냄.
- 캔 프로토콜은 크게 Low-Speed CAN, High Speed CAN, CAN FD 3가지 종류로 나뉘며 각 프로토콜 별로 최대속도의 차이가 있음.
- High Speed CAN을 주로 사용하며 최대속도는 1Mbps이지만 실제로 500Kbps로 통신함
- 물리적인 버스(전선)의 최대길이에 따라 최대속도에 한계가 있음.
- Sampling Point: 하나의 비트 값이 0인지 1인지 판단하는 지점. 단위는 %. OEM에서 몇 %로 해야하는지 정해줌.
- CAN Controller로 제공되는 클락속도에 따라 Time qunta 라는 것이 계산( time qunta = 1 / CAN Clock )
- CAN Clock의 속도를 얼마로 할 건지 까지도 OEM에서 정해주기도 함.
- 하나의 bit는 Sync(항상 1 time qunta), Tseg1(Prop+Phase1),Tseg2(Phase2) 라는 것으로 나뉘고 이것들은 모두 여러 개의 time qunta로 구성됨
- Tseg1, Tseg2의 값을 적절하게 정함으로써 샘플링 포인트 값을 조절할 수 있음.
- Tseg1, Tseg2 얼마로 할지도 제조사에서 정해주기도 함
'SDV 조사자료 > 통신' 카테고리의 다른 글
IVN(In-vehicle network)[한국어 해석 및 정리] (1) | 2024.08.12 |
---|---|
IVN(In-vehicle network)[원문 발췌] (0) | 2024.08.12 |
CAN통신(2) (0) | 2024.07.09 |
ECU와 E/E 아키텍쳐(1) (1) | 2024.07.03 |