에러 추적

버스 전파 방해 피하기

네트워크 범위의 데이터 일관성을 보장하기 위해, 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)” 상태로 전환됩니다.

에러 패시브

에러 수동 상태의 CAN 컨트롤러는 6개의 동일한 열성 비트의 발신을 통해서만 탐지된 에러를 나타낼 수 있습니다. 이것은 에러 탐지 리시버가 탐지한 에러를 전체로 확산시키는 것을 예방합니다. 더불어 두 개의 연속적인 데이터 또는 리모트 프레임을 발신할 경우 “에러 수동” 상태의 CAN 컨트롤러는 “중지 전송 시간”(8 비트)을 대기해야 합니다.

버스 오프

CAN 컨트롤러가 고장 나거나 에러가 과도히 누적된다면, 상태는 버스 오프 상태로 전환되며, CAN 컨트롤러는 CAN 버스에서 연결이 끊어집니다. (128 x 11 비트 길이의 의무적 대기 시간으로) 호스트가 개입하거나 하드웨어의 재설정을 통해서만 버스 오프 상태에서 벗어날 수 있습니다.


마지막 수정됨: 2019년 August 22일, Thursday, AM 8:42