SDV 조사자료/통신

CAN 통신(1)

남광식 2024. 7. 8. 10:06

제어기와 중계기

 

배경

  1. 차량 내 전장장치들과 이 장치들을 컨트롤하는 제어기들이 서로 정보를 주고받을 필요성이 있었음.
  2. 기존의 통신(TCP/IP통신,와이파이,블루투스)으로는 차량 개발 상황과는 맞지않는 비효율적인 문제가 존재. 
  3. 따라서 BOSCH라는 회사에서 자동차 개발 환경에서 자동차 제어기끼리 정보를 주고받는데 특화된 통신 새롭게 만듦 

배경 지식

  1. Canoe: CAN 통신과 관련된 소프트웨어 툴. 캔통신과 관련해서 시뮬레이션을 하거나 캔 네트워크에서 송수신하는 데이터들을 로깅하는 기능을 함.
  2. Vector: Canoe를 만든 회사. 이 회사에서 만든 툴들이 종종 등장을 해서 알아두면 좋음

버스형 토폴로지

  1. 버스라는 공통선을 두고 각각의 제어기들을 버스에 연결해서 네트워크에 참여함
  2. 제어기들을 확장하고 제거하는데 용이함
  3. 통신선이 단순하고 통신선의 수와 길이가 감소함. ->무게 감소, 연비 증가
  4. 모든 메시지는 브로드캐스트 방식으로 송신함.
  5. 단점: 제어기 하나에서 고장이 나면 잘못된 신호가 다른 통신선에도 전달되어 통신자체가 불가함
  6. 이러한 단점을 커버하기 위해 스스로 고장을 감지하여 Bus Off 라는 state에 가는 알고리즘을 만듦.
  7. bus off state에 가면 고장난 제어기는 더이상 통신을 하지 않음
  8. Can 커넥터: D-Sub로 연결함. 두가닥의 전선을 사용.(CAN High, Low) 
  9. 2번 pin - CAN Low, CAN High에 연결함
  10. 120옴 저항 -> 반사파에 의한 신호왜곡 방지

 

CAN 버스 토폴로지

 

120옴 저항, CAN High, Low 신호 

  1. 캔 버스 양 끝단에 120옴의 저항이 필요. 혹시 통신이 정상적으로 안된다면 체크!!
  2. CAN 에서는 CAN High, CAN Low 간의 전압차를 이용하여 데이터를 표현
  3. 전압차를 이용한 방법의 장점: Noise에 강하다!
  4. 선을 꼬아 놓음으로서 High와 Low 양쪽에 확실하게 Noise를 줄 수 있게 함
  5. CAN High – CAN Low 값이 0.9 ~ 5 볼트 = 0= Dominant을 표현 
  6. CAN High – CAN Low 값이 -0. 1 ~ 0.5 볼트 = 1 = Recessive을 표현
  7. Dominant 가 Recessive 보다 우선순위가 높음

CAN 통신의 High, Low 신호
CAN Controller와 Transceiver

CAN Controller, CAN Transceiver

  1. 각각의 제어기 안에는 일종의 작은 컴퓨터인 MCU가 존재
  2. MCU 내부에는 각종 peripheral(MCU의 구성요소를 뜻함)들이 있고, 그 중에 CAN 통신과 관련된 역할을 하는 CAN Controller 라는 peripheral 있음
  3. 캔 컨트롤러 : 메세지에 담기는 값과 관련 (Data Link Layer라고 함)
  4. 트랜시버 : 실제로 전선에 출력되는 전압과 관련 (Physical Layer라고 함)
  5. CAN Controller가 송신하는 데이터는 CAN TX 핀을 통해서 캔 트랜시버에게 전달(5V or 3.3V : Data 1 ,0V: Data 0로 전달)
  6. CAN Tranceiver는 CAN Controller로부터 정보를 받아서 CAN High, CAN Low 핀으로 실제 ‘전압‘ 을 출력
  7. 반대로 다른 제어기가 메세지를 전송하면 CAN High, CAN Low의 전압값을 읽어서 비트로 해석하여 CAN RX 핀을 통하여 캔 컨트롤러에게 전달
  8. 작동 모드에는 Normal Mode, Listen-only Mode, Standby Mode, Go-to-Sleep mode, Sleep mode가 있음
    1. Normal Mode
    2. Listen-only Mode
    3. Standby Mode
    4. Sleep mode
    5. Go-to-Sleep mode

CAN DB의 유저 인터페이스 화면
NISSAN의 CAN DB 구성

 

NISSAN 자동차의 CANdb 구성

브레이크(Brake,ABS(Anti-lock Brake System)), 속도(Cruise), 도어(Door), 자동주행장치(ESP(Electronic Stability Program)), 기어박스(Gearbox), 헤드업디스플레이(HUD), 라이트(Light), 차선유지시스템(LKAS), 자율주행(ProPilot), 안전벨트(Seatbelt), 조향장치(Steer), 바퀴(Wheel) 등으로 구성

 

Baud Rate(통신속도)

  1. CAN 통신 속도를 Baud Rate라고 함. 단위는 bps.
  2. CAN DB: 자동차 개발 기간 동안 작성되며, 일종의 설계도 같은 역할을 함. 데이터 전송을 위한 요소(메시지의 ID, 주기, 전송 노드, 수신 노드 등)들이 정의됨.
  3. 해당 네트워크에 참여하는 모든 제어기들은 모드 통일된 Baud Rate을 사용해야함.
  4. Baud Rate을 얼마로 할 건지는 OEM(완성차회사)에서 지정하여 CAN DB에 나타냄.
  5. 캔 프로토콜은 크게 Low-Speed CAN, High Speed CAN, CAN FD 3가지 종류로 나뉘며 각 프로토콜 별로 최대속도의 차이가 있음.
  6. High Speed CAN을 주로 사용하며 최대속도는 1Mbps이지만 실제로 500Kbps로 통신함
  7. 물리적인 버스(전선)의 최대길이에 따라 최대속도에 한계가 있음.
  8. Sampling Point: 하나의 비트 값이 0인지 1인지 판단하는 지점. 단위는 %. OEM에서 몇 %로 해야하는지 정해줌.
  9. CAN Controller로 제공되는 클락속도에 따라 Time qunta 라는 것이 계산( time qunta = 1 / CAN Clock )
  10. CAN Clock의 속도를 얼마로 할 건지 까지도 OEM에서 정해주기도 함.
  11. 하나의 bit는 Sync(항상 1 time qunta), Tseg1(Prop+Phase1),Tseg2(Phase2) 라는 것으로 나뉘고 이것들은 모두 여러 개의 time qunta로 구성됨
  12. Tseg1, Tseg2의 값을 적절하게 정함으로써 샘플링 포인트 값을 조절할 수 있음.
  13. 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