여러 노드가 동시에 송신하면 CAN 은 ID 를 비트 단위로 비교해 작은 쪽이 버스를 가져간다. 진 쪽은 물러났다가 다시 시도한다.
대역별 배정
0x000~0x0FF 안전 이벤트 0x010 pinch_event · 0x020 amb_safety · 0x030 alert_event
0x100~0x1FF 제어 명령 0x110 win_cmd · 0x120 lock_cmd
0x200~0x2FF 고빈도 상태 0x210 sensing_fast (50 ms)
0x300~0x3FF 저빈도 상태 0x310 sensing_slow (200 ms)
0x400~0x4FF 설정
0x500~0x5FF heartbeat · 진단
pinch_event 를 0x010 에 둔 것이 요구사항 대응이다
§6.1.2 는 "안티핀치 비상 경고음을 다른 음향 및 피드백 음향보다 최우선으로 출력해야 한다"고 요구한다. 그 이벤트가 CAN 버스에서도 최우선이어야 요구사항이 실제로 성립한다.
버스가 혼잡할 때 다른 프레임에 밀리면 경고음이 늦는다. 소프트웨어 우선순위만 높여 놓고 CAN ID 를 아무렇게나 배정하면 코드는 맞는데 동작이 늦는 상황이 된다.
이벤트와 주기의 구분
pinch_event 는 주기 전송을 기다리지 않고 발생 즉시 보낸다. 반면 상태 신호는 이벤트 + 주기 재전송을 함께 쓴다 — 이벤트로 반응성을, 주기로 신뢰성(max age 판정 근거)을 얻는다.