데이터 프레임
13/42

데이터 프레임은 CAN 네트워크에서 사용자 데이터를 전송하는 매우 중요한 역할을 담당합니다. 데이터 프레임은 여러 개의 서로 다른 컴포넌트로 구성되는데, 각각의 컴포넌트 역시 전송 과정에서 중요한 임무를 수행합니다. 이 임무는 통신 파트너 간 동기화를 시작하고 유지하는 것, 통신 매트릭스에서 정의된 통신 관계를 수립하는 것, 그리고 사용자 데이터를 전송하고 보호하는 것입니다.

데이터 프레임의 전송 과정은 시작 비트(프레임 시작, SOF)로 출발합니다. 이것은 트랜시버에 의해 우성 레벨(dominant level)로 전송되며, 전 네트워크의 동기화를 위해 이용되던 이전의 열성(버스 유휴) 레벨(recessive level)에서 신호 에지(signaling edge)를 생성합니다. 리시버가 프레임 전송 과정에서 트랜시버와의 동기성을 상실하지 않도록 미리 설정된 비트 타이밍(bit timing)으로 모든 열성-우성 신호 에지(recessive-dominant signal edge)를 비교합니다. 맞지 않는 경우가 발생하면 리시버는 관련된 구문 에러로 재동기화합니다(재동기화).

SOF 이후에는 확인자(ID)가 등장하는데, 확인자는 데이터 프레임의 우선순위를 설정하고 수용 필터링(acceptance filtering)과 함께 트랜시버-리시버 관계(sender-receiver relationship)를 설정하여 통신 매트릭스를 정의합니다. 확인자 다음에 등장하는 RTR 비트(Remote Transmission Request, 원거리 전송 요청)는 트랜시버가 리시버에게 프레임의 종류(데이터 프레임 또는 리모트 프레임)를 알리기 위해 이용됩니다. 우성 RTR 비트는 데이터 프레임을 의미합니다.

그 후, IDE 비트(IDentifier Extension bit, 확인자 확장 비트)가 표준 포맷과 확장 포맷을 구분하기 위해 사용됩니다. 확인자는 표준 포맷에서는 11비트를, 확장 포맷에서는 29비트를 가집니다. 그림 “표준 및 확장 포맷의 데이터 프레임”을 통해 이 두 가지 포맷을 학습할 수 있습니다.

DLC(데이터 길이 코드)는 리시버에게 페이로드 바이트의 숫자를 보냅니다. 페이로드 바이트는 데이터 필드에 전송되며, 하나의 데이터 프레임에 최대 8바이트가 전송될 수 있습니다. 페이로드는 순환 중복 검사(CRC)를 이용하는 체크섬에 의해 보호되며 이는 구획 문자로 종료됩니다. CRC의 결과에 따라 리시버는 ACK 슬롯(ACK slot)에 긍정적으로 또는 부정적으로 응답할 수 있으며, 이후에서 구획 문자가 이용됩니다. 이 과정이 끝나면 데이터 프레임의 전송 과정은 일곱 개의 열성 비트에 의해 종료됩니다(프레임 종료, EOF).

CAN 데이터 프레임에 대해 더 많이 알고 싶다면 그림 “표준 포맷에서 데이터 프레임의 물리 전송”과 두 개의 연습 과제를 참조하십시오. 이 그림은 고속 CAN 네트워크 표준 포맷에서 데이터 프레임의 물리 전송 과정을 다루고 있습니다. 레이아웃 연습 과제에서는 표준 포맷의 모든 데이터 프레임 컴포넌트를 알맞은 순서로 배열하는 것을 연습할 수 있습니다.