카드뉴스










CAN FD와 Classic CAN은 payload와 전송 구간이 다릅니다
Classic CAN은 한 프레임에 최대 8바이트를 담습니다. CAN FD는 기존 중재 방식을 이어가면서 payload를 최대 64바이트로 늘렸습니다. 진단 응답이나 보정 데이터처럼 연속된 데이터가 크다면 여러 Classic 프레임을 더 적은 수의 FD 프레임으로 보낼 수 있어 헤더와 중재가 반복되는 횟수도 줄어듭니다.
그렇다고 CAN FD가 모든 메시지를 늘 더 빨리 전달하는 것은 아닙니다. 짧은 주기 신호는 큰 payload가 필요하지 않을 수 있고, 버스 부하는 메시지 길이와 주기, 비트 스터핑, 재전송, nominal bit rate와 data bit rate 설정에 따라 달라집니다.
BRS는 프레임 전체가 아닌 내부 비트 속도를 전환합니다
여러 노드가 함께 버스를 감시하며 우선순위를 정하는 구간에는 nominal bit timing을 사용합니다. BRS(Bit Rate Switch)가 1인 CAN FD 프레임은 BRS 비트 뒤부터 별도로 설정한 data bit timing으로 전환할 수 있고, CRC 시퀀스가 끝난 뒤 CRC delimiter에서 nominal timing으로 돌아옵니다. BRS가 0이면 긴 FD payload를 보내더라도 프레임 전체를 nominal bit rate로 전송합니다.
설정 화면에서는 nominal bit timing과 data bit timing을 따로 봐야 합니다. 목표 data bit rate는 컨트롤러 값만 높인다고 확보되지 않습니다. 트랜시버 대역폭, 배선과 분기 길이, 종단, 발진기 오차, 네트워크 토폴로지가 함께 맞아야 합니다.
CAN FD의 DLC 9~15는 실제 바이트 수와 일치하지 않습니다
DLC 0~8은 payload 0~8바이트에 그대로 대응합니다. 이후 DLC 9~15는 차례로 12, 16, 20, 24, 32, 48, 64바이트를 뜻합니다. 로그에 `DLC=15`가 보이면 15바이트가 아니라 64바이트 프레임입니다. 분석 도구가 DLC 코드와 변환된 Length를 별도 열에 표시하기도 하므로 두 값을 구분해서 봐야 합니다.
애플리케이션 데이터가 선택한 길이보다 짧다면 남는 바이트의 패딩 값과 수신 측 처리도 인터페이스 규칙으로 정해야 합니다. 길이만 맞고 패딩 규칙이 다르면 데이터 비교나 상위 계층의 무결성 검사에서 예상치 못한 차이가 생길 수 있습니다.
CRC와 기존 노드의 호환성도 전환 조건입니다
Classic CAN Data Frame은 CRC-15를 사용합니다. CAN FD는 Data Field가 16바이트 이하이면 CRC-17, 16바이트를 넘으면 CRC-21을 사용합니다. ISO CAN FD의 CRC 구조에는 동적 스터프 비트 수를 확인하는 정보와 고정 스터프 비트도 들어갑니다. 오류 검출을 보강한 것이지 손상된 데이터를 복구하는 기능은 아닙니다. CAN FD 프레임 형식에는 Classic CAN의 Remote Frame도 없습니다.
FD 컨트롤러가 Classic 프레임을 처리할 수 있다는 사실과 기존 네트워크가 FD 프레임을 받아들인다는 말은 다릅니다. 활성 상태의 Classic CAN 전용 노드는 FD 프레임을 오류로 판단할 수 있습니다. 적용 전에는 모든 활성 노드의 FD 지원 여부, 컨트롤러와 트랜시버 사양, 두 구간의 bit timing을 확인하고, 필요하면 게이트웨이 또는 분리된 버스로 호환 범위를 나눠야 합니다.