본문 바로가기
회사/UDS

진단통신(UDS) 개념 (섹션8_) CAN TP 프로토콜 개요

by 응가1414 2024. 10. 13.

# 개요 및 Single Frame, First Frame, Consecutive Frame 설명

 

## Single Frame

 

 

  • UDS 메시지 포맷
    • UDS 메시지에서 SID 및 DID의 위치 설명.
    • 메시지 전송 시 각 바이트의 역할 설명.
  • TP 프로토콜의 Single Frame 포맷
    • 첫 번째 바이트는 프레임 종류와 UDS 메시지 길이를 나타냄.
    • UDS 메시지 길이가 7바이트 이하일 경우 Single Frame으로 전송 가능.
    • 1BYTE, 하위 4BIT으로 메시지 길이 표시
  • 프레임의 종류 구분
    • Single Frame에서 첫 번째 바이트의 역할.
    • 메시지 길이에 따른 TP 프로토콜 적용 여부.

## First Frame

 

  • First Frame(FF) 설명
    • 메시지 길이가 긴 경우, UDS 메시지를 나누어 전송할 때 첫 번째로 보내는 프레임이 First Frame임.
    • First Frame의 첫 번째 바이트는 상위 4비트에 값 1을 설정하고, 하위 12비트는 메시지의 총 길이를 나타냄.
  • First Frame의 예시
    • 예시로 27바이트의 UDS 메시지를 나누어 보낼 때, First Frame에서 상위 비트와 총 길이 정보를 기록.
    • 나머지 데이터를 전송하는 방법 설명.
  • Consecutive Frame(CF) 설명
    • First Frame에서 보내지 못한 데이터를 나머지 프레임인 Consecutive Frame으로 전송.
    • CF의 역할과 메시지 전송 흐름 설명.

## Consecutive Frame(CF) 설명

- 긍정적인 메시지, Consecutive Frame(CF) 설명

 

  • Consecutive Frame(컨시캐티브 프레임) 설명 (처음은 1, Reset은 0)
    • 첫 번째 바이트에서 상위 4비트에 값 2를 설정하고, 하위 4비트에 시퀀스 넘버를 기록.
    • 시퀀스 넘버는 메시지를 나눠서 전송할 때 순서를 나타내며, 0부터 시작하여 15까지 증가 후 다시 0으로 반복.
  • 시퀀스 넘버의 동작 방식
    • 시퀀스 넘버는 1에서 시작하여 전송될 때마다 1씩 증가, 최대 15까지 도달한 후 다시 0으로 돌아감.
    • 시퀀스 넘버를 통해 메시지가 순차적으로 제대로 전송되었는지 확인 가능.
  • 시퀀스 넘버의 오류 검증
    • 만약 시퀀스 넘버가 올바르게 증가하지 않으면 전송 중 오류가 발생한 것으로 판단할 수 있음.
    • 플로우 컨트롤을 통해 오류를 감지하고, 재전송 여부를 결정함.

- 부정적인 메시지, Consecutive Frame(CF) 설명, 데이터 누락되는 경우

  1. Consecutive Frame의 시퀀스 넘버 오류 처리
    • 시퀀스 넘버가 올바르게 증가하지 않으면 전송 중 오류로 간주.
    • 시퀀스 넘버가 1씩 증가하는 규칙을 통해 전송의 오류 여부를 판단.
  2. Consecutive Frame의 시퀀스 넘버 규칙
    • 첫 번째 메시지의 시퀀스 넘버가 1이고, 다음 메시지는 2가 되어야 함.
    • 두 번째 메시지에서 시퀀스 넘버가 3으로 누적되면, 메시지가 중간에 누락되었음을 판단.
  3. 플로우 컨트롤을 통한 오류 확인
    • 시퀀스 넘버의 오류를 통해 수신자가 송신자에게 재전송 요청을 보내는 상황 설명.
  4. 컨시캐티브 프레임의 바이트 용도
    • 첫 번째 바이트는 시퀀스 넘버를 포함하며, 나머지 7바이트는 UDS 메시지 값을 저장하는 용도로 사용.

 

## 요약

 

  • First Frame과 Consecutive Frame 설명
    • UDS 메시지를 First Frame과 Consecutive Frame으로 나누어 보내는 방법 설명.
    • 첫 번째 프레임에 상위 4비트에 값 1, 하위 12비트에 메시지 길이 작성.
    • 그 후 나머지 바이트에 메시지 데이터를 적고, 시퀀스 넘버로 다음 프레임 전송.
  • 메시지 전송 과정
    • First Frame에 이어서, 나머지 데이터를 Consecutive Frame으로 분할 전송.
    • 각 프레임의 첫 번째 바이트에 시퀀스 넘버 포함.
  • Flow Control의 역할
    • Sender가 보낸 프레임을 수신한 후, Receiver가 Flow Control을 통해 확인하고 필요한 경우 송신 재요청.
    • 프레임 전송 흐름 제어.
  • 예시 설명
    • 27바이트 메시지를 First Frame과 세 개의 Consecutive Frame으로 나누어 전송하는 과정을 설명.