[CAN] CAN Frame 구조

2022. 6. 13. 20:03프로젝트 로그/TI C2000 Firmware Update via CAN

반응형

CAN Frame 구조

  • SOF(Start Of Frame)
    • 데이터를 전송하고자 하는 노드는 SOF를 송신함으로서 메시지 전송을 시작한다.
    • SOF는 1bit로 구성되어 있으며 이 신호에 의해 모든 노드는 싱크되어 수신 및 응답 준비가 되야 한다.
  • ID(Identifier) Field
    • CAN에서의 ID는 메시지를 식별하는데 사용된다.
    • CAN 2.0A(Standard)는 11bit, CAN 2.0B(Extension)는 29bit로 구성되어 있다.
  • Control Field
    • Control Field는 6bit로 구성되어 있으며, 첫번째(IDE), 두번째(R0) bit는 Standard Type인지 Extenstion Type인지를 구분하는데 사용된다.
    • 나머지 4bit는 DLC(Data Length Code)로 이 코드 뒤에 오는 데이터의 바이트(bytes) 수량을 표시한다.
  • Data Field
    • DLC에 표시된 길이 만큼의 데이터 바이트가 전송 된다.
    • 자신의 상태를 알리는 에러 프레임을 Data Field로 전송한다.
      • 상태에 따라 6bit 이상의 High 신호 또는 Low 신호를 송신 함으로서 에러 프레임을 보낸다.
        • 이런 이유로 High 혹은 Low로 같은 데이터를 6bit 이상 전송하면 안됨 --> 이런 경우를 위해 스터핑(Stuffing) 기법 사용
    • 스터핑(Stuffing:끼워넣기)
      • 연속해서 6bit 이상 같은 데이터를 전송해야 하는 경우, 5bit 이후 인위적으로 반대 값을 가진 비트(그림에서 S)를 채워 넣어서 에러 프레임이 아닌 데이터 프레임 임을 알려 준다.
      • 수신 하는 장비 입장에서, 아래 그림 S bit를 무시 한다.

  • CRC Field
    • 메시지의 유효성 검증을 위한 방법으로 송신측에서 보내고자 하는 원래의 정보 이외에 별도의 데이터를 추가하여 전송하면, 수신측에서 이 데이터를 이용하여 메시지 유효성을 검증 한다.
    • K-line, LIN 시스템에서는 Parity와 Checksum을 사용하고 있으나, CAN에서는 순환중복검사(CRC : Cyclic Redundancy Check)를 이용한다.
  • Acknowledgement Field
    • ACK 필드는 ACK bit와 ACK 구분자로 구성된다.
    • 데이터를 수신하는 수신 노드가 응답해주는 것이며, 정상적으로 수신한 경우 '01' (ACK + ACK 구분자) 수신이 불량한 경우 '11'(ACK+ACK 구분자)가 된다.
    • 파형 상으로 ACK는 아래 그림과 같이 다른 bit에 비해 진폭이 큰 특징을 가지고 있다.

  • EOF
    • 메시지의 끝을 나타내는 데이터이다.
    • 7개의 High bit로 구성되어 있으며, 고정 값으로 데이터 필드에서 사용한 스터핑 규칙은 적용하지 않는다.

 

참고자료

https://dept.kookje.ac.kr/automobile/index.php?pCode=notice2&mode=fdn&idx=397&num=2 

 

반응형