메시지 ID
- IP 통신 패킷(Source address, Destination address)과는 다르게 CAN 메시지 내부에는 Transmitter, Receiver 정보가 따로 없음
- 메시지를 수신받은 제어기들은 이 메세지가 무슨 메세지인지 누가 보낸건지 확인 필요
- ID별로 메세지의 이름을 붙이고, 그 메세지를 누가 보낼건지를 OEM에서 사전에 정의
- 이런 정보가 담겨있는 자료를 CAN Db, Can DataBase, Communiation Matrix , K-Matrix(독일어로 Kommunikation) 등으로 부름
- Can Db는 해당 네트워크에 참여하는 제어기들 끼리만 통용되는 약속이고 CAN이라는 통신 자체에 대한 Spec은 아님, 차종마다 회사마다 제각각 다름.
Bus Load & 메시지 우선순위
- 캔 메세지에는 우선순위가 있고 그것을 ID로 구분
- ID의 값이 작을수록 우선순위가 높음
- Bus Load: 버스에 메세지가 점유하고 있는 시간, 단위는 %. 일반적으로 OEM에서 최대 Bus Load를 정해줌
시그널
- 시그널: 메세지 안에 내보내려는 정보가 무엇인지를 나타내는 단위
- 위의 0x123이라는 ID를 갖는 메세지는 배터리의 상태를 전달하는데 실제로 보내려는 값이 배터리의 전압, 배터리의 용량, 배터리의 최대 허용 전류라면 이 3가지가 시그널이라고 말할 수 있음
- Data 영역에서 보낼 수 있는 시그널의 최대 용량은 8바이트로 각 메시지마다 1~8바이트 사이로 정해서 송신
- 시그널의 크기를 정하는 것이 DLC(Data Length Code). 데이터 영역의 길이가 얼마인지를 알려주는 영역.
- 데이터 안에 받은 시그널이 어떤 시그널인지에 대한 정보도 알아야 함.
- 각 시그널마다 Start bit, Length, Unit, signal comment, Factor, Offset 등 시그널에 대한 정보가 CAN db에 담겨 있어야함
- Start bit와 Length는 어디서부터 어디까지가 배터리 전압을 나타내는지 어디서부터 어디까지가 배터리 용량을 나타내는지를 나타냄.
- Unit 은 값의 단위를 표현함. 전압은 Volt, 전류는 Ampere, 용량은 Watt
- Signal Comment는 각 시그널이 어떤 데이터인지에 대한 설명이 들어감.
- 실수형 데이터(Float)는 4byte이므로 많은 용량을 차지하기 때문에 이를 정수형 데이터(Int or Short)로 변환하여 적은 용량으로 데이터를 변환하여 전송할 때 Factor를 이용함
- 실수형을 정수형으로 바꿀때는 10의 -N승으로 Factor 값을 정함
- 값이 너무 큰경우 그 값을 축소하여 전송하는 것이 편하므로 10의 N승으로 Factor값을 정함
- 송신하는 제어기: (본래 값 - Offset) / Factor 값을 보냄
- 수신하는 제어기: (수신 받은 값 X Factor) + Offset 값으로 해석
- Factor 와 Offset을 쓰게되면 데이터의 손실이 발생할 수 있지만 데이터가 차지하는 bit수를 줄일 수 있으므로 효율적으로 데이터를 송수신할 수 있다는 장점이 존재
'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 |