Leo's Garage

CAN FD (Controller Area Network and Flexible Data Rate) 본문

자동차 및 자동차 SW/자동차 SW 개발 일반

CAN FD (Controller Area Network and Flexible Data Rate)

LeoBehindK 2023. 6. 25. 19:05
728x90
반응형

배경은 역시나 일반 CAN의 한계 때문이다. 자동차가 발전 됨에 따라서 더 많은 기능과 제어기가 들어가게 되었다. 따라서 CAN의 네트워크 속도는 한계에 직면했고 돌파구가 필요했다. 그래서 CAN을 개발한 Bosch는 2012년에 CAN의 확장 형태인 CAN FD(CAN with Flexible Data rate)의 사양을 발표했다.  

표준 CAN 네트워크는 Frame 당 최대 payload가 8bytes인 1Mbit/s로 제한된다. 

CAN FD는 CAN의 physical layer를 변경하지 않고도 Frame당 최대 64bytes까지 더 긴 Data Field를 허용하여 유효 데이터 전송률을 높인다. 또한 CAN FD는 일반적인 CAN bus arbitration을 유지하여 Arbitration이 끝날 때만 더 짧은 bit time으로 전환하고 수신기가 Ack bit를 전송하기 전에 CRC 영역에서 더 긴 bit time으로 되돌아감으로써 Bit 전송률을 높인다. 이 말은 전통적인 CAN Bus 내에서도 유기적으로 동작할 수 있다는 말이다. 일반적인 CAN에서보다 약 3 ~8 배정도의 대역폭 이득은 다양한 어플리케이션에서 유용하다. 

Classic CAN은 11 bit(표준) 및 29 bit(extended)를 제공하는 반면에, CAN FD는 이름에서 알 수 있듯이 Frame 당 0 ~ 64 bytes 범위 내에 유연한 데이터 전송률을 제공한다. 

Classic CAN과 CAN FD의 차이점
Frame Format for a standard CAN Bus (11bit)

SOF : Start of Frame, 데이터 Frame의 시작을 표시

Address Field : 이 Filed는 데이터의 우선순위를 결정한다. 주소가 낮을수록 우선순위가 높다. 두 노드가 동시에 동일한 메시지 주소를 전송할 수 없다. 

RTR : Remote Transmission Request, 이 기능은 데이터를 지속적으로 전송할 필요가 없는 노드에게 데이터를 요청할 때 사용한다. 이 경우 노드 간에 직접 통신이 이루어지므로, Bus 혼잡을 줄일 수 있다. 

Arbitration : 해당 프로세스는 어떤 노드가 마스터가 될 지 결정하는 프로세스이다. 다른 노드들이 0을 전송할 때, 1을 전송하는 노드들은 탈락하게 된다. 0이 Dominant하며 나머지는 재전송을 위해 대기한다. 

IDE : Identifier Extension Bit, 이 bit는 향후 사용/확장을 위한 것이다. recessive IDE는 address의 18bit를 추가로 생성할 수 있다.

RSRV: Reserve Bit, 이름에서 알 수 있다시피 향후 업그레이드를 위함이다.

DLC: Data Length Code, 데이터 길이 코드 (0 ~ 8 Bytes)

DATA: 사용자 정의 데이터 (0 ~ 64bits)

CRC: Cyclic Redundancy Check for error/data corruption detection, 오류 및 데이터 손상 감지를 위한 비트

ACK:  Acknowledgement, 수신 측의 신호 수신확인용 비트

EOF: End of Frame, 프레임의 종료 표시

Frame Format for CAN FD

기존의 CAN과 CAN FD Format은 유사해보이나, 몇 가지 새롭게 추가된 부분이 있다. 

RRS : Remote Request Subsitution (항상 Dominant 0) Remote Request는 CAN FD에서 지원되지 않는다. CAN에는 RTR이 있었다.

FDF : Flexible Data Rate Format (항상 recessive 1) FD를 사용하고 있음을 나타내는 비트이다.

EDL : Extended Data Length (항상 recessive 1) CAN FD에서 더 큰 payload와 더 빠른 비트전송률을 관리하기 위한 비트이다.

BRS : Bit Rate Switch, 데이터 프레임의 비트 전송률을 결정하는 비트이다. Dominant 0이면, CAN FD 프레임의 Arbitration 속도가 최대 1Mbit/s임을 나타낸다. Recessive 1이면, CAN FD의 Arbitration 속도가 최대 5Mbit/s로 높거나 빠름을 나타낸다. 

ESI : Error State Indicator, 오류 상태 표시 Dominant 0은 오류 엑티브 모드를 Recessive 1은 오류 패시브 모드를 나타낸다. -> 에러 핸들링과 연관

DLC : Data Length Code, 데이터 길이 코드는 프레임의 바이트 수를 나타내는 CAN FD의 4bit 코드이다. (1001 ~ 1111 범위 내에서 DLC 값은 12, 16, 20, 24, 32, 48, 64 byte의 데이터 길이를 지정하는데 사용된다.)

CRC : 최대 16 byte의 데이터의 경우 17bit, 20 ~ 64 byte의 경우에는 21bit이다. 이 길이는 EDL과 DLC 길이에 따라 다르다. 

728x90
반응형

'자동차 및 자동차 SW > 자동차 SW 개발 일반' 카테고리의 다른 글

CAN DBC files  (0) 2023.06.25
CAN multiplexing  (0) 2023.06.25
CAN Error Handling  (0) 2023.06.25
CAN bit Timing  (0) 2023.06.25
CAN connectors  (0) 2023.06.25
Comments