<CAN FRAME 종류>
[CAN Remote Frame_Standard Frame]
- 메시지 ID 11 Bit (과거에는 충분한 크기의 범위였지만 자동차가 보다 전장화됨에 따라 메시지가 더 많이 필요해져서 더 넓은 메시지 ID의 범위를 가진 프레임이 필요하게 되었다. 이와 같은 이유로 나타난 것이 Extended Frame 이다.)
- Data Field 없음
- Remote Frame은 메시지를 제대로 수신하지 못해서 해당 메시지의 재전송이 필요한 경우 전송되는 프레임 (다만, 자동차에서는 잘 사용되지 않음) → 자동차는 주기적으로 메시지를 송수신하는 방식을 주로 사용하고 있기 때문에 Data를 제대로 수신하지 못했을 경우에는 다음 차례에서 Data를 수신하면 되기 때문
[CAN Remote Frame_Extended Frame]
- 메시지 ID 29 Bit
- Data Field 없음
- Remote Frame은 메시지를 제대로 수신하지 못해서 해당 메시지의 재전송이 필요한 경우 전송되는 프레임 (다만, 자동차에서는 잘 사용되지 않음) → 자동차는 주기적으로 메시지를 송수신하는 방식을 주로 사용하고 있기 때문에 Data를 제대로 수신하지 못했을 경우에는 다음 차례에서 Data를 수신하면 되기 때문
[CAN Data Frame_Standard Frame]
- 메시지 ID 11 Bit (과거에는 충분한 크기의 범위였지만 자동차가 보다 전장화됨에 따라 메시지가 더 많이 필요해져서 더 넓은 메시지 ID의 범위를 가진 프레임이 필요하게 되었다. 이와 같은 이유로 나타난 것이 Extended Frame 이다.)
- Data Field 있음
[CAN Data Frame_Extended Frame]
- 메시지 ID 29 Bit
- Data Field 있음
[CAN data frame_Extended Frame]
- data frame_(extended) → 현재 사용중
- CAN data frame은 데이터에 대한 포장이라고 말할 수 있다.
- Header
- SOF = Start Of Frame
- 메시지의 시작을 알림
- (1 bit) 논리값 0 가짐
- SOF가 구리선에 닿는 순간 하강 에지를 기준으로 동기화를 시작 (모든 ECU들이 동기화를 시작)
- Arbitration Field
- ID = Identifier
- SRR = Substitute Remote Request
- SRR 비트는 중재 필드에 속해 있음
- 0의 값을 가짐
- IDE = Identifier Extension Bit
- CAN Standard 프레임과 CAN Extended 프레임 구분
- 0 → Standard Id
- 1 → Extended Id
- RTR = Remote Transmission Request
- RTR은 원격 요청 신호 이다.
- 0 → 다음 메시지들이 DATA Frame
- 1 → ID에 해당하는 신호를 요청하는 메시지
- Ctrl Field
- r0, r1 = Reserved Bit
- 추후에 추가될 기능을 위해 남겨둔 예약비트
- 모두 0의 값을 가짐
- DLC = Data Length Code
- DLC는 이 코드 뒤에 올 데이터 바이트의 수량을 표시 → 0x08
- Data
- Tail
- CRC
- 16bit (끝을 알리는 “1”의 값을 가지는 비트 포함) 의 Checksum → 메시지 상의 에러 유무를 나타냄
- ACK = 승인
- 메시지를 정확히 수신한 모든 CAN 컨트롤러는 ACK 비트를 전송 (ACK가 발견되지 않은 경우에는 재 전송을 시도)
- 2 bit로 구성
- EOF = End Of Frame