1. CAN Data Frame
- CAN data frame

- Identifier

CAN의 Identifier라는 것은 Header의 앞부분에 속해져 있는데, 가야할 목적지의 주소가 아닌 현재 CAN Frame이 포함하고 있는 Data의 의미를 나타냅니다.
예를 들어 현재 싣고가는 Data의 정보가 Engine의 온도, Transmision의 1,2,3단 정보라는 것을 여기 CAN identifier에서 나타냅니다.
이로 인해 CAN에서 정보가 전송되어 특정 ECU에 전달되는 Message Routing은 이 Identifier에 의해 결정이 되는데,
ECU 입장에서 구리선에 올라온 CAN Frame Identifier 내용을 보고 원하는 정보인지 아닌지를 판단하는 Acceptance Filtering 를 수행합니다.
2. Example of One Identifier

12개의 ECU들이 있고, 5개의 그룹으로 나뉘어 있으며 ECU1에는 17개의 센서가 있다고 가정해보자.
이때 11bits의 정보를 가진 identifer로 각각의 정보를 표현해야 하는데, 이때 그룹을 3bit(0~7)를 이용해서 5가지 그룹을 표현이 가능하고, 어떤 ECU인지를 3 bits로, 어떤 센서인지를 5bits(0~31)로 표현이 가능하다.
3. CAN Communication Principle

- TX Buffer : 보내기 위한 CAN Frame이 저장되는 창고
- RX Buffer : 받는 CAN Frame이 저장되는 창고
- Send Module : 구리선에 정보를 싣기 위한 CAN Frame을 저장하는 공간
- Receive Module : 구리선에 얹어진 정보를 받아들여서 저장하는 공간
- Acceptance Filtering : 구리선에 얹혀진 정보를 받았을 때 그 정보가 필요한 정보인지 판단하는 Module
4. Cast
Unicast
- 보내는 ECU도 한개, 받는 ECU도 한개
Multicast
- 보내는 ECU도 한개, 받는 ECU 여러개
1. ECU 2번이 16진수로 3C, 2진수로 000 0011 1100 Identifier를 보낸다고 할때, 송신 창고 TX Buffer에 ID = 0x 3C CAN Frame을 옮긴다.

2. 정보를 구리선에 싣기 위해 Send Module에 ID = 0x 3C 를 얹음.

3. 보내는 ECU2를 제외한 ECU 1,3,4번은 Transceiver를 통해 ECU2 가 보낸 정보를 받을 수 있게 되는데, 각각 Receive Module에 ID = 0x 3C인 CAN Frame을 받게 된다.

4. 각각의 Acceptance Filtering Module을 통해 수신한 CAN Frame이 필요한 것인지 ID를 보고 판단

5. ECU 1, 4는 해당 ID CAN Frame이 필요하고, ECU3 은 필요 없다고 가정하면, ECU1, 4 만 해당 CAN Frame을 RX Buffer 로 전달

6. ECU 1, 4번은 CAN controller에서 CAN Frame의 Header, Tail을 떼고 순수 정보 DATA를 CPU Core로 전달

Broadcast
- 보내는 ECU도 한개, 모든 ECU가 받음
출처 : Kmooc, 차량용 내부 통신 시스템, 성균관대학교, 전재욱 교수님