본문 바로가기
회사/UDS

진단통신(UDS) 개념 (섹션4_1) UDB 진단 통신의 개요

by 응가1414 2024. 10. 13.

# UDB 진단 통신의 개요

 

 

  • UDS 통신 기본 원리
    • UDS 통신은 기본적으로 RequestResponse 방식으로 동작함.
    • 제어기에게 명령을 보내면, 제어기가 그 명령을 해석하고 맞게 동작한 후 응답을 보냄.
  • 서비스 용어 사용
    • 이 과정에서 서비스라는 용어가 사용됨.
    • ISO 14229에서 실제로 사용하는 용어로, 앞서 말한 명령들의 집합을 서비스라고 부름.

 

  • OBD(On-board Diagnostics) 프로토콜
    • 법적 의무 사항. 주로 차량 배기가스와 연관된 정보
    • 사용자에게 (오류 사항을 램프을 통해 알려줘야한다)
    • SAE - Society of Automotive Engineers

다양한 서비스의 종류

  • SID: Service ID
    (16진수로 표현되어 있음)
    (hex 또는 앞에 0x가 적혀 있음)

주요 서비스 목록

  • DiagnosticSessionControl - 10 hex
  • ECUReset - 11 hex
  • SecurityAccess - 27 hex
  • CommunicationControl - 28 hex
  • TesterPresent - 3E hex
  • AccessTimingParameter - 83 hex
  • SecuredDataTransmission - 84 hex
  • ControlDTCSetting - 85 hex
  • ResponseOnEvent - 86 hex
  • LinkControl - 87 hex
  • ReadDataByIdentifier - 22 hex
  • ReadMemoryByAddress - 23 hex
  • ReadScalingDataByIdentifier - 24 hex
  • ReadDataByPeriodicIdentifier - 2A hex
  • DynamicallyDefineDataIdentifier - 2C hex
  • WriteDataByIdentifier - 2E hex
  • WriteMemoryByAddress - 3D hex
  • ClearDiagnosticInformation - 14 hex
  • ReadDTCInformation - 19 hex
  • InputOutputControlByIdentifier - 2F hex
  • RoutineControl - 31 hex
  • RequestDownload - 34 hex
  • RequestUpload - 35 hex
  • TransferData - 36 hex
  • RequestTransferExit - 37 hex

추가 설명

  • 0~15번은 비워져 있음.
    • 이유: OBD를 위해서임.
  • OBD에서는 동일한 위치에 있는 값을 Mode라고 부름.
    • 기능도 유사함.

 

## CAN BD안의 진단 관련 정보

이 이미지는 CAN 통신 네트워크 구성 정보에 대한 슬라이드로, 표에는 다음 세 가지 항목이 있습니다:

  1. 메시지 ID: 메시지의 식별자.
  2. 전송 제어기: 메시지를 전송하는 제어기.
  3. 담기는 데이터: 메시지에 포함된 데이터.

표의 내용은 다음과 같습니다:

  • 메시지 ID 1: 조향 제어기 (조향 각도, 배터리 전압)
  • 메시지 ID 2: 조향 제어기 (xx정보)
  • 메시지 ID 3: 엔진 제어기 (엔진 RPM)
  • 메시지 ID 4: 진단 메시지 (조향 제어기용, Physical)
  • 메시지 ID 5: 진단 메시지 (제동 제어기용, Physical)
  • 메시지 ID 6: 진단 메시지 (Functional Address)

## Physical Address 와 Functional Address 차이

 

  • Physical Address: 특정 ECU에게 명령을 내리는 방식.
  • Functional Address: 모든 ECU에게 동시에 명령을 내리는 방식.

또한, CAN 메시지에는 ID가 포함되어 있으며, 이 ID를 이용해서 각 메시지를 구분할 수 있다

 

  • 메시지의 구분
    • CAN 메시지의 아이디를 통해 메시지 수신 대상을 구분함.
    • Physical과 Functional이라는 용어 사용.
  • EDS 통신에서의 정의
    • Physical Address와 Functional Address에 대한 EDS 통신에서의 정의.
  • Physical Address의 의미
    • Physical Address는 여러 개의 ECU 중에서 하나를 선택하여 연결.
    • Functional Address는 모든 제어기에게 동시에 명령을 전달할 때 사용.
  • Functional Address와의 비교
    • Functional Address가 없으면 제어기가 여러 리퀘스트를 각각 보내야 함.
    • Physical Address는 명확히 어떤 제어기에게 메시지가 전달되는 방식.
  • 정리
    • Physical Address와 Functional Address의 차이를 설명하고, 특정 제어기에게 명령을 전달하는 Physical Address 사용 필요성.

 

 

코딩을 4 OR 6일떄 진행, 

왜냐하면 6은 Functional 하게 진행하기 때문이다. (모든 제어기)

## 응답 메세지의 포멧

 

  • 첫 번째 바이트 해석
    • 0x40을 사용하여 포스티브 메시지 식별.
    • 첫 번째 바이트를 통해 메시지를 해석하는 방법 설명.
  • 서비스 0x22의 명령 처리
    • ECU가 0x22 서비스 명령을 처리하지 않았을 때 어떻게 대응하는지 설명.
    • ECU가 처리하지 않았을 경우 부정적 응답 메시지 전송.

 

- 긍정적 응답

 

 

 - 부정적인 응답

  • 부정적 응답 처리
    • 첫 번째 바이트 값으로 7을 쓰고 두 번째 바이트에 0x22 값 입력.
    • 부정적 응답 코드(nrc)를 통해 ECU의 상태를 전달하는 방식 설명.
  • 부정적 응답 분석
    • 왜 부정적 응답을 받았는지에 대한 ECU 측 이유 설명.
    • 부정적 응답 코드(nrc) 분석 및 해석.

 

  • 결론
    • 부정적 응답 이유와 코드가 메시지에 어떻게 반영되는지 설명.
    • 문제가 발생했을 때 응답을 못한 이유와 결과 분석.

## NRC (Negative Response Code)

 

 

  • NRC(Negative Response Code) 코드 종류
    • 0x10: generalReject (명령되지 않은 모든 경우)
    • 0x11: serviceNotSupported (서비스가 지원되지 않음)
    • 0x12: subFunctionNotSupported (서브 기능 미지원)
    • 0x24: requestSequenceError (요청 순서 오류)
    • 0x31: requestOutOfRange (요청 범위 초과)
    • 0x33: securityAccessDenied (보안 접근 거부)
    • 0x88: vehicleSpeedTooHigh (차량 속도 과다)
    • 0x89: vehicleSpeedTooLow (차량 속도 부족)
  • NRC(0x100)와 0x22 서비스 처리
    • 0x100 코드의 의미와 제너럴 코드 사용 설명.
    • 0x22 서비스 명령을 처리하지 못하는 상황.
  • RequestSequenceError 처리
    • 메시지 전송 순서와 오류 발생 시 대응 방법.
    • 순서에 따른 메시지 처리 방식 설명.
  • NRC 정의와 사용
    • 다양한 NRC 코드의 정의와 그 의미.
    • 특정 오류 발생 시 제어기 반응 설명.

 

## suppressPosRspMsgIndicationBit

 

 

  • suppressPosRspMsgIndicationBit의 개념
    • Positive Response를 하지 말라는 명령의 역할.
    • suppress bit가 1일 경우 답변을 하지 않고, 0일 경우 답변을 함.
  • 통신 부하량 감소 기능
    • 통신 부하를 줄이기 위한 suppress 기능 설명.
    • Positive Response를 생략함으로써 통신 효율을 높이는 목적.
  • 기능 구현 방식
    • suppress bit 설정의 실제 용도 및 적용 사례.
    • 예를 들어 reset 명령을 보낼 때 답변을 하지 않고 리셋을 수행하는 기능.
  • SID와 Byte 처리 방식 설명
    • SID에 대한 설명과 두 번째 Byte에 비트 설정 방식 설명.
    • 첫 번째 bit 설정에 따른 Positive 또는 Negative 응답 처리 방식

 

## 요약

 

  • Test(진단기)의 요청 및 ECU의 응답과 동작 구성
    • Physical Address와 Functional Address 방식을 사용.
  • 서비스 요청과 SID
    • 요청하는 명령을 Service라 부르며, Service마다 SID가 존재함.
    • SID의 위치는 첫 번째 바이트이고, 1byte 숫자임.
  • 응답 메시지
    • Positive와 Negative 두 가지 형태의 응답 메시지가 있음.
  • NRC (Negative Response Code)
    • 부정적인 응답 코드와 그 사용.
  • suppressPosRspMsgIndicationBit
    • Positive Response를 억제하는 비트 설명.