Classic CAN & CAN FD의 개념
Classical CAN과 CAN FD의 차이는 데이터 속도에서 차이가 있다.
Classical CAN은 11비트(Standard) 및 29비트(Extended) 데이터 속도를 제공하는반면
CAN FD는 0~64바이트 범위의 프레임당 데이터 속도를 지원하고 있다.
이 기술들은 자동차 산업에서 데이터와 기술에 대한 끊임없이 증가하는 요구를 지원하기 위해 개발되었다.
Classicalal CAN 2.0버스는 많은 ECU가 있고 데역폭 활용이 적은 어플리케이션에 이상적인 선택이 된다. Classical CAN버스는 프레임당 최대 8바이트의 최대 메세지 페이로드를 1Mbps의 최대 데이터 속도를 지원한다. 반면 CAN FD는 프레임당 0,8,12,16,24,32,48,64 바이트 범위의 유연한 메세지 페이로드를 2,5,8Mbps의 데이터 속도 를 지원한다.
또한, CAN FD 프로토콜은 중재(arbitration) 단계와 데이터 단계에 대해 두 개의 독립적인 비트 속도를 가지고 있다. 중재 단계에서는 Classical CAN과 동일하게 비트 타이밍을 사용하지만, 데이터 비트 속도는 중재 비트 속도와 동일 또는 더 높다.
CAN FD는 CAN보다 향샹된 데이터 처리 능력과 유연성을 제공하여 자동차 산업에서 요구하는 높은 데이터 전송 속도와 복잡한 통신 요구 사항을 충족 시키는 데 적합하다. 이러한 기술의 진보는 자동차 산업에서 매우 중요한 역할을 하고 있다.
CAN 데이터 프레임 비교
이전 게시글에서 언급했던 프레임 구조를 살짝 살펴보자면
- SOF : 데이터 프레임의 시작을 표시 값은 0(Dominant)로 표시 된다.
- 주소필드 : 데이터의 우선 순위를 결정한다. 주소가 낮으면 우선 순위가 높다 Dominant값인 '0'을 가진 주소는 가장 높은 우선 순위를 갖는다. 동일 시간에 두 개의 노드가 같은 메세지 주소를 전송할 수 없다.
- RTR(Remote Transmission Request): 지속적으로 데이터를 보낼 필요가 없는 노드로 부터 데이터를 요청하는데 사용한다. 특정 노드와의 통신을 원하는 경우에 사용된다. 이는 노드 간 직접 통신이 이루어지기 때문에 버스 혼잡도도 직접 줄일 수 있다.
- 중재(Arbitration): 어떤 노드가 특정 시점에 마스터가 될 지 결정하는 과정, 다른 노드가 논리적 '0'을 전송할 때 논리적 '1'을 전송하는 노드는 중에서 탈락한다. 첫 번째 '1'을 전송하는 노드가 중재에서 패배한다는 의미이며, Dominant '1'이 항상 승리한다. 중재에서 패배한 노드는 메세지를 재전송 대기열에 넣고 CAN 프레임 비트 스트림은 오류 없이 계속 진행되어 단 하나의 노드만 전송한다.
- IDE : 미래의 사용/확장을 위함, IDE는 주소의 추가 18비트를 결과적으로 가져온다.
- RSRV(Reserve Bit): 미래 업그레이드를 위해 예약
- DLC : 데이터의 길이
- CRC(Cyclic Redundancy Check): 오류/데이터 손상 감지를 위한 것
- ACK(Acknowledgement): 수신측에서 승인
- EOF: 프레임의 끝 7비트 순응적'1'
- RRS : 항상 도미넌트 0으로, CAN FD에서는 원격 프레임이 전송되지 않는다.
- FDF(Flexible Data Rate Format): 항상 리세시브 1로 유연한 데이터 프레임 형식 사용을 나타낸다.
- EDL(Extended Data Length): 항상 리세시브 1값으로, CAN FD에서 더 큰 페이로드와 더 빠른 비트 전송률을 관리
- BRS(Bit Rate Switch): 데이터 프레임의 비트 전송률을 결정하는데 도움을 준다. 도미넌트 0은 CAN FD 데이터 프레임의 중재 전송률이 최대 1Mbps/초임을 나타내며, 리세시브 1은 최대 5Mbps/초에 이르는 더 높은/빠른 중재 전송률을 나타낸다.
- ESI(Error State indicator): 오류 상태를 나타낸다. 도미넌트 0은 오류 활성 모드를, 리세시브 1은 오류 수동 모드를 나타낸다
- DLC(Data Length Code): CAN FD는 4비트 코드로, 프레임의 데이터 바이트 수를 나타낸다 DLC값(1001부터 1111까지)은 12,16,20,24,32,48,64바이트의 데이터 길이를 지정하는데 사용한다.
- CRC: 데이터의 양에 따라 17비트(16바이트 이하의 데이터에 대해) 또는 21비트(20~64바이트의 데이터에 대해) 길이다. 이 길이는 EDL 및 DLC 비트의 길이에 따라 달라진다. CAN FD는 통신 신뢰성을 높이기 위해 항상 4개의 고정 스터프 비트를 사용한다.
'Embedded > CAN' 카테고리의 다른 글
Little & Big Endian (0) | 2025.01.14 |
---|---|
CAN 기본 내용 (0) | 2024.12.19 |