CAN 프레임을 하드웨어가 직접 다루는 주변장치다. 소프트웨어가 비트를 만들지 않는다.
메시지 버퍼 구조
MB0 송신용 ID 0x555 로 내보낼 데이터
MB1 …
MB4 수신용 ID 0x556 만 받도록 필터 설정
각 버퍼에 ID·길이·데이터가 들어가고, 코드는 플래그를 확인해 읽고 쓰기만 한다. 아비트레이션·재전송·에러 카운트는 하드웨어가 처리한다.
수신 필터
마스크 비트가 1인 자리만 ID 를 비교한다
마스크 0x7FF → ID 전체 일치해야 수신 (한 종류만)
마스크 0x700 → 상위 3비트만 비교 (그룹 수신)
차량에는 프레임이 초당 수천 개 흐르므로, 필요 없는 프레임을 CPU까지 올리지 않는 것이 성능의 핵심이다.
루프백 모드
트랜시버 없이 자기가 보낸 프레임을 자기가 받는 시험 모드다. 보드 한 장으로 프로토콜 계층을 검증할 수 있다. 다만 송신 ID와 수신 필터 ID를 같게 맞춰야 한다 — 쿡북 예제는 송신 0x555 / 수신 0x556 이라 그대로 두면 아무것도 안 받는다.
CAN FD
데이터 길이가 최대 64바이트가 되고, 데이터 구간만 속도를 올릴 수 있다(BRS). 중재 구간은 여전히 느린 속도로 도는데, 여러 노드가 동시에 말할 때 중재가 성립해야 하기 때문이다.