SDV 조사자료/통신

CAN통신(2)

남광식 2024. 7. 9. 11:02

IP 통신 패킷
CAN 통신 프레임

메시지 ID

  1. IP 통신 패킷(Source address, Destination address)과는 다르게 CAN 메시지 내부에는 Transmitter, Receiver 정보가 따로 없음
  2. 메시지를 수신받은 제어기들은 이 메세지가 무슨 메세지인지 누가 보낸건지 확인 필요
  3. ID별로 메세지의 이름을 붙이고, 그 메세지를 누가 보낼건지를 OEM에서 사전에 정의
  4. 이런 정보가 담겨있는 자료를 CAN Db, Can DataBase, Communiation Matrix , K-Matrix(독일어로 Kommunikation) 등으로 부름
  5. Can Db는 해당 네트워크에 참여하는 제어기들 끼리만 통용되는 약속이고 CAN이라는 통신 자체에 대한 Spec은 아님, 차종마다 회사마다 제각각 다름.

 

Communication Matrix(CAN db) 예시

Bus Load & 메시지 우선순위

  1. 캔 메세지에는 우선순위가 있고 그것을 ID로 구분
  2. ID의 값이 작을수록 우선순위가 높음
  3. Bus Load: 버스에 메세지가 점유하고 있는 시간, 단위는 %. 일반적으로 OEM에서 최대 Bus Load를 정해줌

시그널

  1. 시그널: 메세지 안에 내보내려는 정보가 무엇인지를 나타내는 단위
  2. 위의 0x123이라는 ID를 갖는 메세지는 배터리의 상태를 전달하는데 실제로 보내려는 값이 배터리의 전압, 배터리의 용량, 배터리의 최대 허용 전류라면 이 3가지가 시그널이라고 말할 수 있음
  3. Data 영역에서 보낼 수 있는 시그널의 최대 용량은 8바이트로 각 메시지마다 1~8바이트 사이로 정해서 송신
  4. 시그널의 크기를 정하는 것이 DLC(Data Length Code). 데이터 영역의 길이가 얼마인지를 알려주는 영역.
  5. 데이터 안에 받은 시그널이 어떤 시그널인지에 대한 정보도 알아야 함.
  6. 각 시그널마다 Start bit, Length, Unit, signal comment, Factor, Offset 등 시그널에 대한 정보가 CAN db에 담겨 있어야함
  7. Start bit와 Length는 어디서부터 어디까지가 배터리 전압을 나타내는지 어디서부터 어디까지가 배터리 용량을 나타내는지를 나타냄.
  8. Unit 은 값의 단위를 표현함. 전압은 Volt, 전류는 Ampere, 용량은 Watt
  9. Signal Comment는 각 시그널이 어떤 데이터인지에 대한 설명이 들어감. 
  10. 실수형 데이터(Float)는 4byte이므로 많은 용량을 차지하기 때문에 이를 정수형 데이터(Int or Short)로 변환하여 적은 용량으로 데이터를 변환하여 전송할 때 Factor를 이용함
  11. 실수형을 정수형으로 바꿀때는 10의 -N승으로 Factor 값을 정함
  12. 값이 너무 큰경우 그 값을 축소하여 전송하는 것이 편하므로 10의 N승으로 Factor값을 정함
  13. 송신하는 제어기: (본래 값 - Offset) / Factor 값을 보냄
  14. 수신하는 제어기: (수신 받은 값 X Factor) + Offset 값으로 해석
  15. Factor 와 Offset을 쓰게되면 데이터의 손실이 발생할 수 있지만 데이터가 차지하는 bit수를 줄일 수 있으므로 효율적으로 데이터를 송수신할 수 있다는 장점이 존재 

Data 영역 안 각 시그널의 배치 및 구조

 

'SDV 조사자료 > 통신' 카테고리의 다른 글

IVN(In-vehicle network)[한국어 해석 및 정리]  (1) 2024.08.12
IVN(In-vehicle network)[원문 발췌]  (0) 2024.08.12
CAN 통신(1)  (0) 2024.07.08
ECU와 E/E 아키텍쳐(1)  (1) 2024.07.03