데이터 일관성

CAN 프로토콜은 네트워크 범위 데이터 일관성(network-wide range data consistency)으로 인해 에러 탐지 CAN 노드에 부분적인 방해가 발생했을 경우, 해당 노드는 CAN 네트워크에 연결된 모든 CAN 노드에 이를 알려야 합니다. 에러 탐지 CAN 노드는 이러한 목적으로 에러 신호(에러 플래그)를 전송하며, 에러 신호는 6개의 우성 비트로 구성됩니다. 이는 비트 스터핑 원칙을 의도적으로 위반하는 것으로 비트 스터핑 에러(bit stuffing error)를 발생시킵니다.

에러 플래그

에러 플래그를 전송하는 것은 다른 모든 CAN 노드 역시 에러 플래그(이차 에러 플래그)를 전송하는 것을 보장하며, 따라서 일차 에러 플래그의 송신 노드와 마찬가지로 정기적 데이터 전송을 종료시킵니다. 상황에 따라 일차 에러 플래그와 이차 에러 플래그가 중첩될 수 있습니다.

에러 딜리미터

에러 플래그의 전송은 항상 에러 구획 문자(error delimiter)로 종료됩니다. 에러 구획 문자는 여덟 개의 열성 비트로 구성되며, ACK 구획 문자와 정기적 메시지 전송의 EOF를 대체합니다. 이것은 CAN 버스의 의무적 전송 중지(Intermission, ITM)와 함께 열한 개의 열성 비트(버스 유휴 확인자)를 발생시킵니다.

버스 부라

방해받은 CAN 메시지의 송신 노드가 에러 처리를 완료합니다. ITM 이후 송신 노드는 방해받은 CAN 메시지를 다시 한 번 전송합니다. 그림 “에러 처리”에는 에러가 탐지된 이후 CAN 네트워크가 취하는 모든 행동을 요약해서 보여줍니다. 또한 그림 “비트 모니터링 에러”을 통해 비트 모니터링 에러의 예시에 기반하여 에러 처리 과정을 학습할 수 있습니다.

우선순위 기반 버스 접근 방식(priority-driven bus access)으로 인해 즉각적인 반복이 계속되지 않을 수 있습니다. 최선의 경우 에러 탐지에서 재발신까지 17 비트 타임의 시간이 걸립니다.(일차 에러 플래그, 에러 구획 문자, ITM) 일차 및 이차 에러 플래그가 중복되지 않을 경우 23 비트 타임이 걸립니다.

CAN 노드가 에러 수동적 상태(error passive state) 일 경우 31비트 타임이 소요됩니다. 이 경우 CAN 노드CAN 버스에 다시 접근할 수 있을 때까지 중지 전송 시간(Suspend Transmission Time)이라고 불리는 시간 동안 대기해야 하는데, 이 시간은 8비트 길이의 중지 시간입니다.


마지막 수정됨: 목요일, 22 8월 2019, 9:48 AM