KR20200062594A - 차량용 디버깅 시스템의 동작 방법 - Google Patents

차량용 디버깅 시스템의 동작 방법 Download PDF

Info

Publication number
KR20200062594A
KR20200062594A KR1020180148184A KR20180148184A KR20200062594A KR 20200062594 A KR20200062594 A KR 20200062594A KR 1020180148184 A KR1020180148184 A KR 1020180148184A KR 20180148184 A KR20180148184 A KR 20180148184A KR 20200062594 A KR20200062594 A KR 20200062594A
Authority
KR
South Korea
Prior art keywords
controller
command
messages
linux
data
Prior art date
Application number
KR1020180148184A
Other languages
English (en)
Other versions
KR102154279B1 (ko
Inventor
강진욱
Original Assignee
현대오트론 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대오트론 주식회사 filed Critical 현대오트론 주식회사
Priority to KR1020180148184A priority Critical patent/KR102154279B1/ko
Publication of KR20200062594A publication Critical patent/KR20200062594A/ko
Application granted granted Critical
Publication of KR102154279B1 publication Critical patent/KR102154279B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명에 따른 차량용 디버깅 시스템의 동작 방법은, 제어기에서 복수의 CAN(controller area network) 메시지들을 수신하는 단계, 상기 제어기에서 상기 수신된 메시지들의 각각에서 데이터 영역에 저장된 데이터를 취합하는 단계, 상기 제어기에서 상기 취합된 데이터로부터 대응하는 명령어를 생성하는 단계, 및 상기 제어기에서 상기 생성된 명령어에 따른 디버깅 동작을 수행하는 단계를 포함할 수 있다.

Description

차량용 디버깅 시스템의 동작 방법{OPERATING METHOD IN DEBUGGING SYSTEM FOR VEHICLE}
본 발명은 차량용 디버깅 시스템의 동작 방법에 관한 것이다.
일반적으로 ECU(electronic control unit)는 차량의 엔진, 자동변속기, TCU(transmission control unit), EPS(electric power steering), ABS(anti-lock brake system) 등의 상태를 컴퓨터로 제어하는 전자제어 장치이다. ECU는 자동차의 안전성을 높이기 위해 사용되기 때문에 ECU에 에러나 버그가 있는 경우, 운전자 및 동승자의 안 전에 문제가 생길 수 있다. 이에, ECU를 테스트하여 에러코드 수신시 어떤 동작을 나타내는지, ECU가 원하는 출력값을 출력하는지, 원하는 네트워크 디자인대로 실행되는지 등을 파악할 필요가 있다. 그리고, 테스트 결과가 만족스럽지 않은 경우, 탑재된 대응하는 응용 프로그램에 대한 변경 작업이나 리프로그래밍 같은 업데이트를 수행해야 한다. 이러한 ECU는 외부의 프로그램 개발을 위한 PC에 연결되어 디버깅되며, 대다수의 ECU가 JTAG/BDM(joint test action group/background debug mode) 포트를 이용하여 CPU 내부자원에 접근할 수 있도록 지원하고 있다.
등록특허: 10-0902808, 등록일: 2007년 11월 2일, 제목: 실시간 디버깅 기능을 가지는 대규모 실시간 감시 시스템용 디버깅 단말기 및 이를 포함하는 디버깅 시스템. 등록특허: 10-1209069, 등록일: 2011년 1월 25일, 제목: 차량 통신 진단 장비의 디버깅 장치. 공개특허: 10-2014-0134066, 공개일: 2013년 5월 13일, 제목: 차량 ECU의 소프트웨어 디버깅 장치 및 방법.
본 발명의 목적은 디버깅 포트를 구비하지 않고도 차량용 제어기를 디버깅하는 디버깅 시스템의 디버깅 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 차량용 디버깅 시스템의 동작 방법은: 제어기에서 복수의 CAN(controller area network) 메시지들을 수신하는 단계; 상기 제어기에서 상기 수신된 메시지들의 각각에서 데이터 영역에 저장된 데이터를 취합하는 단계; 상기 제어기에서 상기 취합된 데이터로부터 대응하는 명령어를 생성하는 단계; 및 상기 제어기에서 상기 생성된 명령어에 따른 디버깅 동작을 수행하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 수신된 메시지들의 각각의 크기는 8 바이트인 것을 특징으로 한다.
실시 예에 있어서, 상기 복수의 CAN 메시지들은 상기 명령어를 8 바이트씩 나눈 것을 특징으로 한다.
실시 예에 있어서, 상기 명령어는 리눅스 명령어이고, 상기 복수의 CAN 메시지들은 상기 명령어에서 아스키코드 \n이 나올 때까지의 문자열을 복수 개로 나눈 것을 특징으로 한다.
실시 예에 있어서, 상기 복수의 CAN 메시지들의 각각은 순차적으로 수신되고, 마지막으로 수신된 CAN 메시지의 데이터 영역은 상기 명령어의 끝을 알리는 \r\n을 저장하는 것을 특징으로 한다.
실시 예에 있어서, 상기 데이터를 취합하는 단계는, 상기 \r\n이 발견될 때까지 상기 수신된 메시지들의 데이터 영역의 데이터를 버퍼에 저장하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 디버깅 동작은 상기 제어기의 리눅스 플랫폼에서 수행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 제어기에서 상기 디버깅 동작의 결과를 적어도 하나의 CAN 메시지로 변환하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시 예에 따른 차량용 디버깅 시스템의 동작 방법은: PC(personal computer)에서 리눅스 명령어를 차량 통신 방식의 제 1 메시지들로 변환하는 단계; 상기 PC에서 상기 제 1 메시지들을 제어기로 순차적으로 전송하는 단계; 및 상기 PC에서 상기 제어기로부터 상기 리눅스 명령어에 따른 디버깅 결과에 대응하는 상기 차량 통신 방식의 제 2 메시지를 수신하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 차량 통신 방식은 CAN(controller area network) 인 것을 특징으로 한다.
실시 예에 있어서, 상기 차량 통신 방식은 CAN-FD(flexible data) 인 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 메시지들의 각각은 상기 제어기의 ID(identification)을 저장하는 메시지 ID 영역과, 상기 리눅스 명령어에 대응하는 데이터를 저장하는 데이터 영역을 포함할 수 있다.
본 발명의 실시 예에 따른 차량용 디버깅 시스템 및 그것의 동작 방법은, 리눅스 명령을 CAN 메시지로 변환시켜 디버깅 동작을 수행함으로써, 디버깅 환경의 물리적 제약을 극복할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 본 발명의 실시 예에 따른 디버깅 시스템(10)을 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 디버깅 시스템의 동작 방법을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 CAN 메시지를 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 디버깅 시스템에서 리눅스 명령이 전달되는 과정을 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 차량용 디버깅 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 차량용 디버깅 시스템(10)은 차량용 제어기(100) 및 사용자 PC(personal computer; 200)를 포함할 수 있다. 사용자 PC(200)는 CAN(controller area network) 통신 기반으로 리눅스 명령을 차량용 제어기(100)로 전송하고, 차량용 제어기(100)는 CAN 메시지 기반의 리눅스 명령을 수신하고 리눅스 명령에 따른 디버깅 동작을 수행할 수 있다.
일반적으로 리눅스 기반의 제어기를 개발하는 데 있어서, 디버깅 포트를 이용하여 대응하는 제어기의 상태나 SW(software) 업데이트 등이 수행된다. 이에 차량 양산의 proto 단계 수준으로 확대되는 경우, 이러한 디버깅 포트의 사용이 불가능하다. 이는, 대응하는 제어기는 정해진 차량의 위치에 고정되고, 이때 추가적으로 장착된 디버깅을 수행하기 위한 추가 board, wire 등은 모두 제거 되기 때문이다. 이때 최종적으로 리눅스 기반의 제어기에서 외부로 노출되는 신호선은 CAN, Ethernet, 전원, 기당 시그널 등의 신호이다. 하지만, 이러한 양산 개발 단계에서도 리눅스 기반 제어기에 대한 개발자 수준의 디버깅이 필요하다.
종래의 차량용 디버깅 시스템은 리눅스 터미널의 디버그 포트로만 제어를 하는데, 완성된 차량에서는 디버깅 포트로 직접 연결이 불가능하다. 그런데 CAN 통신은 현재 양산되고 있는 모든 차량에 대하여 상시 직접 연결이 가능하다. 또한 차량 내부의 CAN 포트의 어디에서든지 대응하는 제어기와 통신할 수 있다. 본 발명의 실시 예에 따른 디버깅 시스템(10)은 이러한 특징을 이용하여 리눅스 기반의 제어기(ECU에 대한 개발자 수준의 디버깅을 가능하게 할 수 있다.
본 발명의 실시 예에 따른 차량용 디버깅 시스템(10)은 CAN to Command 응답 프로그램(SW)를 필요로 한다. 이러한 CAN to Command 응답 프로그램은 리눅스 기반의 제어기(100)의 내부에 SW 형태로 설치될 수 있다. CAN to Command 응답 프로그램은 CAN 신호로 전달된 리눅스 제어 명령을 형성하고, 이를 리눅스 플랫폼으로 전달한 후, 이에 대한 결과를 다시 요청된 터미널로 전송할 수 있다.
또한, 본 발명의 실시 예에 따른 차량용 디버깅 시스템(10)은 사용자 PC 터미널 프로그램(SW)을 필요로 한다. 사용자 PC 터미널 프로그램은 디버깅을 수행할 Windows 혹은 Linux 기반의 데스크 탑 PC 혹은 노트북에 설치될 수 있다. 사용자 PC 터미널 프로그램은 리눅스 기반의 제어기(100)에서 수행될 리눅스 명령을 CAN 패킷으로 형성시키고, 이를 대응하는 제어기(100)으로 전송할 수 있다. 또한, 사용자 PC 터미널 프로그램은 대응하는 제어기(100)로부터 수신된 CAN 응답 메시지를 다시 사용자가 볼 수 있는 형태의 스트링으로 원복 시킬 수 있다.
도 2는 본 발명의 실시 예에 따른 디버깅 시스템의 동작 방법을 예시적으로 보여주는 도면이다. 도 1 내지 도 2를 참조하면, 디버깅 시스템(10)의 동작 방법은 다음과 같이 진행될 수 있다.
우선, 사용자 PC(100)에서 리눅스 명령이 CAN 메시지로 변환되는 과정을 수행할 수 있다. 사용자 PC(100)의 터미널 프로그램은 차량 제어기(100)에서 최종적으로 수행되어야 할 리눅스 명령을 사용자에 의해 입력할 수 있다(S110). 여기서 리눅스 명령은 ASCII Code기반의 문자열을 포함할 수 있다. 예를 들어, ls -al; ps -ef; kill -9 12343.
사용자 PC(100)의 터미널 프로그램은 입력된 리눅스 명령을 CAN 메시지로 변환할 수 있다(S120). 실시 예에 있어서, CAN 통신은 최대 8바이트의 데이터 크기를 가질 수 있다. 다른 실시 예에 있어서, CAN-FD(flexible data) 규격을 사용하는 경우 더욱 확대할 수 있다. CAN 통신의 경우 한번에 보낼 수 있는 문자열은 8바이트로 제한이 되기 때문에 입력된 리눅스 명령은 8바이트로 쪼개어 CAN 메시지로 변환될 수 있다.
이후에, 리눅스 플랫폼에서의 하나의 명령어 단위는 아스키코드로 (\n)으로 구분될 수 있다. 따라서, 사용자 PC(100)의 터미널 프로그램은 수행하고자 하는 명령어에서 \n이 나올 때까지 대응하는 문자열을 N개의 CAN 메시지로 나누어서 이를 차례대로 전송할 수 있다.
차량 제어기(200)는 수신된 CAN 메시지 중에서 데이터의 내용을 취합하는 과정을 수행할 수 있다. 차량 제어기(200)는 송신측으로부터 N개의 CAN 메시지를 수신할 수 있다(S210). 차량 제어기(200)는 수신된 CAN 메시지 중에서 데이터의 내용을 취합할 수 있다(S220). 이때 개행 문자(\n)가 발생할 때까지 N개의 CAN 메시지의 데이터 영역을 확인하여 내부에 포함된 최대 8바이트의 데이터가 추출되고, 수집된 데이터는 하나의 리눅스 명령어를 수행하기 위한 아스키 코드 기반의 문자열로 재구성 될 수 있다.
이후에 차량 제어기(200)는 취합된 데이터를 이용하여 하나의 리눅스 명령어를 생성할 수 있다(S230). 이때 명령어의 기준은 \n이다.
이후에, 차량 제어기(200)는 생성된 명령어를 리눅스 플랫폼에서 수행하는 과정을 진행할 수 있다(S240). 최종적으로 제대로 명령어들이 조합되면, 사용자 PC(100)에서 요청된 명령어가 그대로 전달 될 수 있다. 대응하는 명령어는 리눅스 플랫폼에서 동작을 수행이 가능하다.
이후에, 차량 제어기(200)는 리눅스 명령을 수행한 결과를 다시 CAN 메시지로 변환하여 사용자 PC(100) 으로 전송할 수 있다(S250). 리눅스 제어기에서 수행된 결과에 대한 아스키 코드 기반의 문자열들을 다시 위에 언급된 과정을 그대로 반복하여 원래 대응하는 명령어를 송신한 제어기로 다시 CAN 메시지를 변환하여 전송할 수 있다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.
실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/또는 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/또는 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
도 3은 본 발명의 실시 예에 따른 CAN 메시지를 예시적으로 보여주는 도면이다.
도 3을 참조하면, CAN 메시지는 identifier 필드를 포함할 수 있다. Identifier 필드는 메시지 ID를 포함하고, 메시지 ID는 대응하는 차량에서 유일한 CAN ID값을 정의하여 입력될 수 있다. 대응하는 ID는 리눅스 기반의 차량용 제어기의 CAN 메시지 ID를 의미한다.
또한, CAN 메시지는 데이터 필드를 포함하고, 데이터 필드는 ASCII Code로 구성될 수 있다. 실시 예에 있어서, CAN 메시지의 데이터 필드는 최대 8바이트로 구성될 수 있다. 8 바이트로 제한된 구역에 대응하는 리눅스 명령어는 대응하는 데이터 필드에 입력될 수 있다.
또한, CAN 메시지는 기타 필드를 포함하고, 기타 필드는 일반적인 CAN 메시지 포맷이다. 사용하고자 하는 CAN의 사양에 따라 입력이 가능하다.
도 4는 본 발명의 실시 예에 따른 디버깅 시스템에서 리눅스 명령이 전달되는 과정을 예시적으로 보여주는 도면이다.
조작하고자 하는 리눅스 명령어가 $ ps -ef | grep Aut 과 $ top | grep Aut 이라고 가정하겠다. CAN 통신을 위하여 리눅스 명령어에 대응하는 메시지 ID, 이벤트 혹은 주기, 데이터 크기로 CAN 메시지가 구성될 수 있다. 메시지 ID는 0x72F로써, 디버깅 목적을 위하여 정의한 메시지 ID이다. 데이터는 [p] [s] [ ] [-] [e] [f] [|] [g] [r] [e] [p] [A] [u] [t] [r] [o] [n] [\r] [\n]으로 구성될 수 있다. 한 CAN 데이터에서 최대 8 바이트까지 구성이 가능함으로 전송하고자 하는 명령어는 8 개씩 구분될 수 있다. 또한 메시지의 마지막 데이터는 최종 명령의 끝을 알리는 \r + \n로 구성될 수 있다. 이에 따라 최종적으로 생성되는 CAN 메시지들은 다음과 같다.
CAN 메시지 #1 : [0x72F] [p] [s] [ ] [-] [e] [f] [|] [g]
CAN 메시지 #2 : [0x72F] [r] [e] [p] [A] [u] [t] [r] [o]
CAN 메시지 #3 : [0x72F] [n] [\r] [\n]
차량용 제어기(200)는 사용자 PC에서 전송된 CAN 메시지 #1, #2, #3을 수신하고, 전달받은 메시지들에서 \r\n이 발견될 때까지 버퍼에 저장할 수 있다. 최종 합쳐진 메시지 내용은 ps -ef | grep Aut이 될 수 있다.
이러한 리눅스 명령에 따라 차량용 제어기(200)의 리눅스 플랫폼에서는 동작을 수행할 수 있다. 전달받은 데이터에 대한 문자열은 OS상에서 다음과 같이 수행될 수 있다.
root@p2382_t186:~/dist/usr/bin# ps -ef | grep Aut
root 2967 1 0 02:46 ? 00:00:00 ./AutEth_NM_D
root 2981 1 0 02:47 ? 00:00:00 ./AutEth_CC_SenderD -N 64
root 2993 1 4 02:47 ? 00:00:02 ./AutEth_CC_ReceiverD -N 64
root 3001 1 1 02:47 ttyS0 00:00:00 ./AutEth_gPTP
root 3011 1 0 02:47 ? 00:00:00 ./AutEth_TP_D
root 3024 1 0 02:47 ? 00:00:00 ./AutEth_AVB_Talker_D -d
root 3044 1 0 02:47 ? 00:00:00 ./AutEth_AVB_Listener_D -d
root 3089 2390 0 02:48 ttyS0 00:00:00 grep Aut
일반적으로 리눅스의 SSH 와 같은 터미널을 이용한 리눅스 콘솔을 제어하는 용도의 프로토콜이 존재하나, 이는 이더넷 통신망에서만 사용이 가능하다. 본 발명의 디버깅 시스템 및 그것의 동작 방법은, 이더넷이 아닌 CAN 통신 기반에서 동작시킴으로써 대응하는 기능을 수행하지 못하는 환경(이더넷 디버깅 장치가 없는 경우)에도 대응하는 제어기에 접근할 수 있다.
또한, 일반적인 UDS와 같은 기술은 CAN 기반의 통신을 이용해서 해당 제어기의 오류 코드를 기반으로 현재 제어기의 상태를 확인하거나 SW 업데이트를 수행한다. 하지만, 이러한 기술은 미리 OEM에서 정의된 사양을 기반으로 정해진 형태의 상태만 확인 가능하다.
본 발명의 실시 예에 따른 차량용 디버깅 시스템 및 그것의 동작 방법은, 리눅스 기반이 아닌 running shell 기반 OS를 가진 모든 제어기에 적용 가능하다. 예를 들어, 본 발명의 차량용 디버깅 시스템 및 그것의 동작 방법은, QNX, Android 와 같은 OS 역시 동일한 수준의 기술을 적용할 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
10: 차량용 디버깅 시스템
100: 차량용 제어기
200: 사용자 PC

Claims (12)

  1. 차량용 디버깅 시스템의 동작 방법에 있어서,
    제어기에서 복수의 CAN(controller area network) 메시지들을 수신하는 단계;
    상기 제어기에서 상기 수신된 메시지들의 각각에서 데이터 영역에 저장된 데이터를 취합하는 단계;
    상기 제어기에서 상기 취합된 데이터로부터 대응하는 명령어를 생성하는 단계; 및
    상기 제어기에서 상기 생성된 명령어에 따른 디버깅 동작을 수행하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 수신된 메시지들의 각각의 크기는 8 바이트인 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 복수의 CAN 메시지들은 상기 명령어를 사전에 결정된 크기로 나눈 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 명령어는 리눅스 명령어이고,
    상기 복수의 CAN 메시지들은 상기 명령어에서 아스키코드 \n이 나올 때까지의 문자열을 복수 개로 나눈 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 복수의 CAN 메시지들의 각각은 순차적으로 수신되고,
    마지막으로 수신된 CAN 메시지의 데이터 영역은 상기 명령어의 끝을 알리는 \r\n을 저장하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 데이터를 취합하는 단계는,
    상기 \r\n이 발견될 때까지 상기 수신된 메시지들의 데이터 영역의 데이터를 버퍼에 저장하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 디버깅 동작은 상기 제어기의 리눅스 플랫폼에서 수행되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 제어기에서 상기 디버깅 동작의 결과를 적어도 하나의 CAN 메시지로 변환하는 단계를 더 포함하는 방법.
  9. 차량용 디버깅 시스템의 동작 방법에 있어서,
    PC(personal computer)에서 리눅스 명령어를 차량 통신 방식의 제 1 메시지들로 변환하는 단계;
    상기 PC에서 상기 제 1 메시지들을 제어기로 순차적으로 전송하는 단계; 및
    상기 PC에서 상기 제어기로부터 상기 리눅스 명령어에 따른 디버깅 결과에 대응하는 상기 차량 통신 방식의 제 2 메시지를 수신하는 단계를 포함하는 방법.
  10. 제 9 항에 있어서,
    상기 차량 통신 방식은 CAN(controller area network) 인 것을 특징으로 하는 방법.
  11. 제 9 항에 있어서,
    상기 차량 통신 방식은 CAN-FD(flexible data) 인 것을 특징으로 하는 방법.
  12. 제 9 항에 있어서,
    상기 제 1 메시지들의 각각은 상기 제어기의 ID(identification)을 저장하는 메시지 ID 영역과, 상기 리눅스 명령어에 대응하는 데이터를 저장하는 데이터 영역을 포함하는 방법.
KR1020180148184A 2018-11-27 2018-11-27 차량용 디버깅 시스템의 동작 방법 KR102154279B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180148184A KR102154279B1 (ko) 2018-11-27 2018-11-27 차량용 디버깅 시스템의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180148184A KR102154279B1 (ko) 2018-11-27 2018-11-27 차량용 디버깅 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200062594A true KR20200062594A (ko) 2020-06-04
KR102154279B1 KR102154279B1 (ko) 2020-09-09

Family

ID=71081369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180148184A KR102154279B1 (ko) 2018-11-27 2018-11-27 차량용 디버깅 시스템의 동작 방법

Country Status (1)

Country Link
KR (1) KR102154279B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114488992A (zh) * 2021-12-17 2022-05-13 徐工汉云技术股份有限公司 一种基于监督机器学习的电动车控制器适配多车型的方法
WO2024080653A1 (ko) * 2022-10-11 2024-04-18 주식회사 미래엠에스 개조 전기차용 전자식 변속 다이얼 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102529983B1 (ko) 2021-07-26 2023-05-04 주식회사 현대케피코 디버깅 모듈을 구비한 전자 제어 장치 및 이를 이용한 디버깅 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100902808B1 (ko) 2007-11-02 2009-06-12 경북대학교 산학협력단 실시간 디버깅 기능을 가지는 대규모 실시간 감시 시스템용디버깅 단말기 및 이를 포함하는 디버깅 시스템
KR101209069B1 (ko) 2011-01-25 2012-12-06 아진산업(주) 차량 통신 진단 장비의 디버깅 장치
KR101363727B1 (ko) * 2012-04-10 2014-02-24 에스케이텔레시스 주식회사 스마트 디버깅 시스템
KR20140106872A (ko) * 2013-02-27 2014-09-04 주식회사 뉴티씨 (Newtc) 외부 전자 기기 제어 장치
KR20140134066A (ko) 2013-05-13 2014-11-21 현대모비스 주식회사 차량 ecu의 소프트웨어 디버깅 장치 및 방법
KR101791786B1 (ko) * 2016-05-20 2017-10-30 엘지전자 주식회사 자동차 보안 시스템 및 그 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100902808B1 (ko) 2007-11-02 2009-06-12 경북대학교 산학협력단 실시간 디버깅 기능을 가지는 대규모 실시간 감시 시스템용디버깅 단말기 및 이를 포함하는 디버깅 시스템
KR101209069B1 (ko) 2011-01-25 2012-12-06 아진산업(주) 차량 통신 진단 장비의 디버깅 장치
KR101363727B1 (ko) * 2012-04-10 2014-02-24 에스케이텔레시스 주식회사 스마트 디버깅 시스템
KR20140106872A (ko) * 2013-02-27 2014-09-04 주식회사 뉴티씨 (Newtc) 외부 전자 기기 제어 장치
KR20140134066A (ko) 2013-05-13 2014-11-21 현대모비스 주식회사 차량 ecu의 소프트웨어 디버깅 장치 및 방법
KR101791786B1 (ko) * 2016-05-20 2017-10-30 엘지전자 주식회사 자동차 보안 시스템 및 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114488992A (zh) * 2021-12-17 2022-05-13 徐工汉云技术股份有限公司 一种基于监督机器学习的电动车控制器适配多车型的方法
WO2024080653A1 (ko) * 2022-10-11 2024-04-18 주식회사 미래엠에스 개조 전기차용 전자식 변속 다이얼 장치

Also Published As

Publication number Publication date
KR102154279B1 (ko) 2020-09-09

Similar Documents

Publication Publication Date Title
CN109164783B (zh) 车辆诊断方法、装置、设备及介质
US10621797B2 (en) System and method for transferring diagnostic commands to a vehicle
KR102154279B1 (ko) 차량용 디버깅 시스템의 동작 방법
CN107656856B (zh) 一种基于cpld的系统状态显示方法及装置
CN109726061B (zh) 一种SoC芯片的验证方法
CN107135210A (zh) 一种汽车模拟通讯协议解析器及其解析方法
CN112689083B (zh) 车载摄像头配置方法、装置、电子设备和存储介质
CN113468070A (zh) 车载以太网的一致性测试方法
CN114089713A (zh) 一种基于uds的通信方法、ecu及上位机
GB2486136A (en) Simulation method, system and program
CN113805918A (zh) 一种用于升级tbox和获取tbox日志的数据交互系统及其方法
CN114064091A (zh) Ota升级控制方法、装置、电子设备及自动驾驶车辆
CN109286689B (zh) 一种信息发送方法、装置及车载人车交互终端
CN116319499A (zh) 车辆的诊断方法、装置、电子设备及存储介质
EP4310616A1 (en) Vehicle remote diagnosis system and method
US20060045127A1 (en) Portable communication interface device
US10191875B2 (en) Techniques of providing serial port in non-legacy system via embedded-system device
US20230035673A1 (en) Information processing system, information processing apparatus, use method of information processing apparatus, user terminal, and program therefor
CN114546701A (zh) 一种mcu现场软件调试定位问题的方法
CN114356760A (zh) 一种基于l3整车架构的canfd控制器软件远程升级测试方法及系统
WO2019009068A1 (ja) 車両制御装置用の検証装置及び車両制御装置
WO2020129531A1 (ja) 車両用電子制御装置、異常信号生成方法、異常信号生成プログラム
KR20240009766A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 네트워크 가상화 장치 및 방법
CN115344030A (zh) 一种汽车故障诊断系统及方法
CN115442261A (zh) 下位机测试方法及系统

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant