자료 리뷰/ISO|SAE 21434(사이버보안)

차량 UDS 프로토콜 스택에 대한 자동화된 테스트 방법

하소태 2023. 1. 2. 22:57

본 포스트는 다음 학술 문서를 기반으로 공부 목적으로 요약 및 분석하여 작성한 포스트입니다.


개요

CAN 버스를 기반으로 한 차량의 UDS(Unified Diagnostic Service) 프로토콜 스택에 대한 자동화 된 테스트 방법이 해당 문서에 기술되어 있습니다. ISO 14229-1에 명시된 다양한 진단 서비스에 따르면 테스트케이스 생성 전략은 주로 직교 설계 방법을 기반으로 하는 포괄적인 방법을 사용하여 설계됩니다. 그런 다음 델파이 개발 환경에서 테스트 도구를 개발합니다. 테스트 매개변수를 구성하고 표준 ODX(Open Diagnositc Data Exchange) 데이터베이스 파일을 가져오고, 테스트 스크립트를 자동으로 생성할 수 있습니다. 마지막으로 이러한 스크립트는 다른 테스트 환경에서 직접 실행되어 테스트 보고서를 자동으로 얻을 수 있습니다. 전체 테스트 프로세스 동안 사용자는 테스트 사양의 세부 사항을 연구하고 테스트 스크립트를 작성하거나 테스트 단계를 수동으로 수행할 필요가 없습니다. 테스트 도구를 구성하고 "실행"을 클릭하기만 하면 대상 스택을 테스트할 수 있습니다. 이 자동화된 테스트 방법은 UDS 프로토콜 스택 테스트의 효율성을 향상시키고 개발자의 작업량을 줄일 수 있습니다.

 

소개

진단 통신 기술은 자동차 산업에서 필수적인 부분입니다. 차량 ECU의 진단 인터페이스와 진단 테스터 간의 통신을 통해 내부 ECU의 작동 현황 및 고장 기록을 모니터링하고 읽을 수 있습니다.

UDS 진단 통신의 정확성과 표준화를 보장하기 위해 개발된 프로토콜 스택의 기능 테스트는 개발 과정에서 중요한 역할을 합니다. 이 테스트를 수행하는 방법에는 여러가지가 있으며 다음과 같습니다. 

첫 번째는 모든 기능을 수동으로 테스트하는 것입니다. 테스트 사양에 따라 개발자는 버스 통신 도구를 사용하여 진단 메시지를 하나씩 설정하고 보낸 다음 응답 메시지를 확인하여 데이터가 올바른지 판단할 수 있습니다. 이 방법은 직접적이고 비효율적입니다. 그것은 아주 처음에 간단한 테스트를 위한 것입니다.

두 번째 방법은 진단 테스터를 사용하고 대상 장치와 통신하는 몇 가지 간단한 PC 응용 프로그램을 개발하는 것입니다. 이러한 응용 프로그램은 특정 개발 프로젝트에서 사용되며 일반적으로 사용할 수 없습니다. 개발자는 또한 프로토콜 사양을 연구하고 테스트 코드를 작성하는데 많은 시간을 할애해야 합니다. 게다가 테스트는 여전히 수동으로 운영됩니다.

세 번째 방법은 Vector Informatik이라는 회사의 전문 테스트 도구를 사용하는 것입니다. 진단 데이터베이스는 CANdela 또는 ODXStudio에서 만듭니다. 테스트 사양 및 스크립트는 CAN 옵션 DiVa에 의해 생성됩니다. 그리고 모든 테스트는 CANoe 환경에서 실행됩니다. 이러한 도구를 사용하여 사용자는 전체 대상 진단 프로토콜 스택을 자동으로 올바르게 테스트할 수 있습니다. 현재 이 방법은 자동차 산업에서 널리 사용됩니다. 그러나 이러한 전문 도구는 경험이 있습니다. 그리고 전체 테스트는 이 Vector의 테스트 도구 체인을 완전히 중계해야 합니다. 이 문서에서는 새로운 테스트케이스 설계 방법을 제안하고 새로운 스크립트 생성기를 개발합니다. ISO 22901에 의해 지정된 ODX 프로젝트 파일을 가져와서 생성기는 테스트 사양 보고서 및 테스트 스크립트를 생성합니다. 이러한 스크립트는 해당 테스트 환경에서 실행할 수 있습니다. 이 방법은 개발자가 복잡한 테스트 스크립트를 작성하는 것을 방지하고 작업 부하를 줄이며 개발 효율성을 높입니다. 게다가 이 방법은 특정 테스트 환경에서 릴레이되지 않습니다. 스크립트 템플릿을 구성함으로써 생성기는 다른 테스트 실행 환경의 요구를 충족시키기 위해 다른 테스트 스크립트를 생성할 수 있습니다.

 

시스템 개요

생성기의 기능은 가져온 ODX 파일 및 사용자 구성에 따라 테스트 사양 보고서 및 스크립트를 생성하는 것입니다. 데이터베이스 파일 해석기와 사용자 구성 모듈은 가져온 ODX 파일과 사용자 구성 인터페이스에서 각각 정보를 수집합니다. 두 종류의 정보는 모두 코어 생성 모듈로 전송됩니다. 그리고 마지막으로 생성기는 사양과 스크립트를 생성합니다. 테스트 환경의 기능은 테스트 스크립트를 실행하는 것입니다. 소프트웨어 환경은 스크립트를 실행하고 하드웨어 도구를 제어하여 실제 CAN 버스에서 통신을 활성화하고 테스트 단계와 데이터 흐름을 세부적으로 기록하고 최종적으로 테스트 보고서를 생성할 수 있습니다. 하드웨어 환경은 실제 통신 네트워크입니다. AutoCAN은 ihr이라는 회사의 CAN 버스 설계 도구입니다. 이것은 PC에 의해 제어되며 CAN 버스의 동작을 활성화하거나 모니터링합니다. DUT(Device Under Test)는 테스트 중인 장치를 나타냅니다.

 

테스트 방법 설계

테스트 목적. UDS 프로토콜 스택은 차량 내부의 네트워크 노드에 설치되어 진단 통신 프로세스를 담당하는 주요 테스트 대상입니다.

Type Sub-function supressPos-RspMsgBit Error Situation
OK 0x01 0 Sub-function invalid
(NRC=0x12, sub-function ID = 0xaa)
Error 0x02 1 Sub-function invalid
(NRC=0x12, sub-function ID = 0xcc)
- 0x03 - Data too long
(NRC=0x13, invalid data = 0x11)
- - - Data too long
(NRC=0x12, invalid data = 0x11)
- - - No sub-function
(NRC=0x13)

그러면 위의 모든 Factor가 직교 테이블에서 정렬되고 서로 결합될 수 있습니다. 마지막으로 테스트케이스 테이블이 형성됩니다. 다음은 '진단 제어 서비스' 테스트 클래스에서 테스트케이스의 일부를 보여주는 예시 표입니다. 이 표의 각 행은 테스트케이스를 자세히 설명합니다.

Index Type Sub-function SuppressPosRspMsgBit Error Situation
1.1.1 OK 0x01 0 -
1.1.2 OK 0x02 0 -
1.4.4 Error 0x02 0 NRC=0x13 long + 0x22
1.4.5 Error 0x03 0 NRC=0x13 long + 0x11

결과

이 문건에서는 주로 차량의 UDS 프로토콜 스택에 대한 자동화된 테스트 방법을 설명합니다. 테스트케이스 생성 전략은 국제 표준에 따라 설계되고 테스트 스크립트 생성기가 개발됩니다. 대상 데이터베이스 파일을 가져오고 테스트 사양 및 스크립트를 생성할 수 있습니다. 이 스크립트는 ihr 테스트 시스템에서 실행되며 CAN 버스 도구로 생각되는 버스 동작을 제어합니다. 모든 테스트 단계가 완료되면 보고서가 자동으로 생성됩니다. 이 방법은 UDS 프로토콜 스택의 개발 효율성을 높이고 개발자의 작업량을 줄일 수 있습니다.