CAN Frame Format

·2024년 3월 31일
0

차량 통신

목록 보기
3/3

데이터 프레임 (Data Frame)

SOF + Arbitration + Control + Data + CRC + ACK + EOF + IFS

CAN 2.0A

출처

CAN 2.0B

SOF (Start Of Frame) - 1bit

  • dominant bit 0
  • frame 전송이 시작되었음을 알려줌
  • Rising edge에서 모든 노드들이 동기를 맞춤

Arbitration Field - 12bit

ID + RTR

CAN 2.0A

CAN 2.0B

출처

  • IDentifier
    • CAN 2.0A : 11bit
    • CAN 2.0B : 29bit
    • 작은 ID가 큰 ID보다 우선순위가 더 높음
  • RTR (Remote Transmisson Request bit)
    • 0 : data frame
    • 1 : remote frame
  • SRR(Substitute Remote Request bit)
    • 항상 recessive(1)
      - CAN 2.0A와 충돌할 경우, CAN 2.0A의 우선순위를 더 높게 하기 위해서
    • Extended임을 나타냄
    • CAN 2.0B에만 존재

    충돌 발생시, 일반적으로 MAC protocol은 bandwidth degradation (성능저하)이 발생하지만 CAN에서는 bandwidth의 낭비 없이 100% 활용 가능함

Control Field - 6bit

  • IDE (IDentifier Extension)
    • STD : dominant <0>
    • Extended : recessive <1>
  • Reserved bit : 새로운 기능 등을 위해 남겨둔 여유 비트
    • STD : 1bit
    • Extended : 2bit
  • DLC (Data Length Code)

Data - 8Nbit

  • 최대 8Bytes
  • Remote Frame : N = 0
    Data Frame : 1 <= N <= 8

CRC Field - 16bit

전송 과정 중 error를 검출하기 위해서 사용됨

  • [SOF ~ Data field + 15zeros]
  • Hamming distance = 6 ➡ 최대 5bit error까지 검출 가능
  • error detection ⭕ error correction ❌

ACK Field - 2bit

정상적으로 수신했는지를 확인하기 위해서 사용됨

  • ACK + ACK delimiter(always 1)
  • Tx : 11
  • Rx : 01 (success) 11(fail)

송신과 동시에 수신 오류 여부를 확인할 수 있음 ➡ 빠르고 효율적

EOF (End Of Frame) - 7bit

Frame의 끝, 전송 종료를 알리기 위해 사용됨

  • 7 recessive bits ('1111111')

IFS (Interframe Space) - 3bit

프레임과 프레임을 구분하기 위해서 사용됨

  • data, remote frame ⭕
  • error, overload frame ❌
  • 최소 3bit
  • 모든 노드들에게 공평하게 버스를 차지할 기회를 줌

원격 프레임 (Remote Frame)

정보를 보내달라고 특정 노드에게 요청

data frame과의 차이점

  • ID : 내가 원하는 정보의 ID
  • DLC : 요청한 정보의 길이 (이 길이로 보내줘!)
  • Data field : empty (0 Byte)
  • RTR : recessive 1

오류 프레임 (Error Frame)

  • Error는 여러 위치에서 발생할 수 있음
  • Error 감지시 버스의 모든 프레임에서 Error frame
  • Error Delimiter = 8r (11111111)

과부하 프레임 (Overload Frame)

  • 처리에 시간이 걸릴 것 같으니 대기상태가 되도록 하기 위해서 사용
  • overload flag = 6d, overload delimiter = 8r
  • IFS의 초반 2bit에 전송

0개의 댓글

관련 채용 정보