버스 전파 방해 피하기
네트워크 범위의 데이터 일관성을 보장하기 위해, CAN 네트워크의 각 노드는 결함이 있다고 생각되는 어떠한 CAN 메시지라도 종료시킬 권한을 가지고 있습니다. 올바른 CAN 메시지를 결함이 있다고 잘못 분석한 CAN 노드도 있을 수 있습니다. 전송 매체의 막힘 현상을 방지하기 위해 CAN 프로토콜은 CAN 노드로 하여금 때때로 발생하는 방해와 지속적으로 발생하는 방해를 구분하는 에러 추적 절차를 명시합니다.
TEC 및 REC
이에 따라 각 CAN 컨트롤러는 TEC(Transmission Error Counter, 전송 에러 카운터)와 REC(Receive Error Counter, 수신 에러 카운터)를 가집니다. 데이터 프레임 또는 리모트 프레임을 성공적으로 전송했을 경우 이와 관련이 있는 에러 카운터는 점차 감소합니다(TEC=TEC-1; REC=REC-1). 에러 플래그의 탐지와 잇따른 전송은 연관된 에러 카운터가 특정한 원칙에 따라 증가하도록 만듭니다. 송신 노드에는 TEC=TEC+8의 원칙이 적용됩니다. 처음에 에러 탐지 리시버는 REC를 한 단위씩 증가시킵니다(REC=REC+1). 그리고 에러를 유발하는 리시버의 경우에는 REC=REC+8의 원칙이 적용됩니다.
에러 액티브
에러 카운트에 따라 CAN 컨트롤러는 에러 상태의 전환을 처리합니다. 처음에 CAN 컨트롤러는 에러 능동(error active)의 정상 상태를 가정하는데, 이 상태에서 CAN 컨트롤러는 에러를 탐지한 후 6개의 우성 비트(능동 에러 플래그)를 발신합니다. 한계를 초과할 경우(TEC>127; REC>127), CAN 컨트롤러는 “에러 수동(error passive)” 상태로 전환됩니다.