안녕하세요! 오늘은 차량 진단 시스템인 UDS(Unified Diagnostic Services)에서 중요한 개념 중 하나인 DTC(Diagnostic Trouble Code)에 대해 알아보도록 하겠습니다.
우리가 병원에 가면 의사 선생님께서 우리 몸의 상태를 진단해 주시듯이, 자동차도 건강 상태를 점검할 필요가 있습니다. 이때 사용되는 것이 바로 UDS입니다. UDS는 자동차 내부의 각종 센서와 컴퓨터로부터 데이터를 받아 분석하고, 문제가 있는 부분을 찾아내는 역할을 합니다.
이 과정에서 발견된 문제들을 코드화한 것이 바로 DTC입니다. DTC는 일종의 오류 코드로, 각 코드는 특정 부품이나 시스템의 고장을 나타냅니다. 예를 들어, “P0301″이라는 DTC는 “1번 실린더의 연소 실패”를 의미합니다.
DTC는 크게 두 가지 종류가 있습니다. 하나는 배출가스와 관련된 것으로, 대기 오염을 유발할 수 있는 문제를 나타냅니다. 다른 하나는 배출가스 외의 일반적인 문제를 나타냅니다. 보통 자동차에 심각한 문제가 발생하면, 계기판의 경고등(일명 “체크 엔진 라이트”)이 켜지는데, 이는 DTC가 저장되었다는 뜻입니다.
UDS에서는 다양한 방법으로 DTC 정보를 읽어올 수 있습니다. 현재 발생한 DTC의 개수를 확인할 수 있고, DTC 목록을 불러올 수도 있습니다. 또한 각 DTC에 대한 상세 정보, 예를 들어 고장이 발생한 횟수, 최초 발생 시점 등을 확인할 수 있습니다.
이렇게 수집된 DTC 정보는 자동차 정비사들이 고장 원인을 빠르게 파악하고 적절한 조치를 취하는 데 큰 도움이 됩니다. 운전자 입장에서도 DTC를 통해 자신의 차량 상태를 이해하고, 필요한 정비를 받을 수 있습니다.
DTC는 현대 자동차의 핵심 기술 중 하나로, 차량의 안전성과 환경 보호에 중요한 역할을 합니다. UDS와 DTC에 대한 이해는 앞으로 더욱 스마트해질 자동차 시대에 필수적이라 할 수 있겠죠?
이 서비스는 클라이언트가 차량 내 모든 서버 또는 서버 그룹에서 서버에 상주하는 Diagnostic Trouble Code (DTC) 정보의 상태를 읽을 수 있도록 합니다. 별도로 명시되지 않는 한, 서버는 배출 관련 DTC 정보와 비배출 관련 DTC 정보를 모두 반환해야 합니다. 이 서비스를 통해 클라이언트는 다음과 같은 작업을 수행할 수 있습니다:
- 클라이언트가 정의한 DTC 상태 마스크와 일치하는 DTC 개수를 검색합니다 (요청 시점 기준).
- 클라이언트가 정의한 DTC 상태 마스크와 일치하는 모든 DTC 목록을 검색합니다.
- 클라이언트가 정의한 DTC 및 상태 마스크 조합과 연결된 DTCSnapshot 데이터를 검색합니다. DTCSnapshot은 서버 메모리에 저장된 DTC와 관련된 특정 데이터 레코드입니다. DTCSnapshot의 내용은 이 표준에서 정의하지 않지만, 일반적으로 시스템 오작동 감지 시 데이터를 저장하는 데 사용됩니다. DTCSnapshot은 시스템 오작동 발생 당시의 데이터 값을 스냅샷으로 제공합니다.
- DTC 메모리 또는 DTC 미러 메모리에서 클라이언트가 정의한 DTC 및 상태 마스크 조합과 연결된 DTCExtendedData를 검색합니다. DTCExtendedData는 DTC와 관련된 확장 상태 정보로 구성됩니다. DTCExtendedData에는 요청 시점에 식별된 DTC 매개변수 값이 포함됩니다. DTCExtendedData의 일반적인 사용 예는 다음과 같은 DTC와 관련된 동적 데이터를 저장하는 것입니다:
- DTC 발생 카운터
- 현재 임계값
- 최종 발생 시간 (등)
- 결함 검증 카운터 (예: 보고된 “테스트 실패” 횟수 및 검증이 여러 단계로 수행되는 경우 가능한 기타 카운터)
- 미완료 테스트 카운터 (예: 테스트가 최근에 완료된 이후의 주행 사이클 수, 즉 “테스트 통과” 또는 “테스트 실패”가 보고된 이후)
- 결함 발생 카운터 (예: “테스트 실패”가 보고된 주행 사이클 수)
- DTC 에이징 카운터 (예: 결함이 최근에 실패한 이후의 주행 사이클 수. 단, 테스트가 “테스트 통과”를 보고하지 않거나 “테스트 실패”를 보고한 주행 사이클은 제외)
- OBD 전용 카운터 (예: “check engine” 램프가 꺼질 때까지 남은 주행 사이클 수)
- 클라이언트가 정의한 심각도 마스크와 일치하는 DTC 개수를 검색합니다 (요청 시점 기준).
- 클라이언트가 정의한 심각도 마스크 레코드와 일치하는 DTC 목록을 검색합니다.
- 클라이언트가 정의한 DTC에 대한 심각도 정보를 검색합니다.
- 서버에서 지원하는 모든 DTC의 상태를 검색합니다.
- 서버에서 처음 실패한 DTC를 검색합니다.
- 서버에서 가장 최근에 실패한 DTC를 검색합니다.
- 서버에서 처음 확인된 DTC를 검색합니다.
- 서버에서 가장 최근에 확인된 DTC를 검색합니다.
- DTC 미러 메모리에서 클라이언트가 정의한 DTC 상태 마스크와 일치하는 DTC 목록을 검색합니다.
- DTC 미러 메모리에서 클라이언트가 정의한 DTC 마스크 및 클라이언트가 정의한 DTCExtendedData 레코드 번호에 대한 미러 메모리 DTCExtendedData 레코드 데이터를 검색합니다.
- DTC 미러 메모리에서 클라이언트가 정의한 DTC 상태 마스크와 일치하는 DTC 개수를 검색합니다.
- 클라이언트가 정의한 DTC 상태 마스크와 일치하는 “오직” 배출 관련 OBD DTC 개수를 검색합니다. 배출 관련 OBD DTC는 해당 DTC가 감지되면 오작동 표시기를 켜거나 메시지를 표시합니다.
- 클라이언트가 정의한 DTC 상태 마스크와 일치하는 “오직” 배출 관련 OBD DTC의 상태를 검색합니다. 배출 관련 OBD DTC는 해당 DTC가 감지되면 오작동 표시기를 켜거나 메시지를 표시합니다.
- 아직 “pending” 또는 “confirmed”로 감지되지 않은 모든 현재 “prefailed” DTC를 검색합니다.
- “permanentDTC” 상태의 모든 DTC를 검색합니다. 이러한 DTC는 이전에 clearDiagnosticInformation 서비스에 의해 지워졌지만, 각 DTC에 대한 적절한 모니터가 성공적으로 통과할 때까지 서버의 비휘발성 메모리에 남아 있습니다.
이 서비스는 하위 기능을 사용하여 클라이언트가 요청하는 진단 정보의 유형을 결정합니다. 각 하위 기능 매개변수에 대한 자세한 내용은 다음 섹션에 제공됩니다.
이 서비스는 다음과 같은 용어를 사용합니다:
- Enable Criteria: 서버/차량 제조사/시스템 공급업체별 기준으로, 서버가 실제로 특정 내부 진단을 수행하는 시점을 제어하는 데 사용됩니다.
- Test Pass Criteria: 서버/차량 제조사/시스템 공급업체별 조건으로, 진단 중인 시스템이 정상적이고 허용 가능한 작동 범위 내에서 제대로 작동하는지 여부를 정의합니다 (예: 오류가 없고 진단된 시스템이 “OK”로 분류됨).
- Test Failure Criteria: 서버/차량 제조사/시스템 공급업체별 실패 조건으로, 진단 중인 시스템이 테스트에 실패했는지 여부를 정의합니다.
- Confirmed Failure Criteria: 서버/차량 제조사/시스템 공급업체별 실패 조건으로, 진단 중인 시스템에 확실한 문제가 있어 (확인됨) 장기 메모리에 DTC 레코드를 저장해야 하는지 여부를 정의합니다.
- Occurrence Counter: 특정 서버에서 유지 관리되는 카운터로, 주어진 DTC 테스트가 테스트 실패의 고유한 발생을 보고한 인스턴스 수를 기록합니다.
- Aging: 특정 서버가 각 내부 진단의 과거 결과를 평가하여 확인된 DTC를 장기 메모리에서 지울 수 있는지 여부를 결정하는 프로세스입니다 (예: 오류 없는 사이클의 보정된 횟수). (자세한 내용은 ISO 14229-1.2 “10.3 ReadDTCInformation Service” 참조)