KR101420481B1 - 차량용 ecu 디버깅 시스템 및 그 방법 - Google Patents

차량용 ecu 디버깅 시스템 및 그 방법 Download PDF

Info

Publication number
KR101420481B1
KR101420481B1 KR1020110115601A KR20110115601A KR101420481B1 KR 101420481 B1 KR101420481 B1 KR 101420481B1 KR 1020110115601 A KR1020110115601 A KR 1020110115601A KR 20110115601 A KR20110115601 A KR 20110115601A KR 101420481 B1 KR101420481 B1 KR 101420481B1
Authority
KR
South Korea
Prior art keywords
protocol
ecu
software
data
debugger
Prior art date
Application number
KR1020110115601A
Other languages
English (en)
Other versions
KR20130050501A (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 KR1020110115601A priority Critical patent/KR101420481B1/ko
Publication of KR20130050501A publication Critical patent/KR20130050501A/ko
Application granted granted Critical
Publication of KR101420481B1 publication Critical patent/KR101420481B1/ko

Links

Images

Classifications

    • 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
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols
    • 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/40241Flexray

Landscapes

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

Abstract

본 발명은 차량의 ECU 소프트웨어를 디버깅하는 기술에 관한 것으로서, 보다 상세하게는, JTAG/BDM 프로토콜을 이용하여 ECU의 소프트웨어를 원하는 부분마다 상세하게 분석할 수 있도록 하는 차량용 ECU 디버깅 시스템 및 그 방법에 관한 것이다.

Description

차량용 ECU 디버깅 시스템 및 그 방법{IN-VEHICLE DEBUGGING SYSTEM FOR ECU AND METHOD THEREOF}
본 발명은 차량의 ECU 소프트웨어를 디버깅하는 기술에 관한 것으로서, 보다 상세하게는, JTAG/BDM 프로토콜을 이용하여 ECU의 소프트웨어를 원하는 부분마다 상세하게 분석할 수 있도록 하는 차량용 ECU 디버깅 시스템 및 그 방법에 관한 것이다.
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 내부자원에 접근할 수 있도록 지원하고 있다. 그런데, 기존의 차량 환경에 JTAG/BDM 포트를 사용하지 못하고 있다. 이는, 기존에 차량 환경에서는 차량용 ECU가 장착되는 위치인 엔진룸이 외부 노이즈가 많은 환경이고, JTAG/BDM 통신선은 리셋(reset)기능을 가지고 있어 외부 노이즈에 의해 ECU가 리셋될 수 있기 때문이다.
이에 따라, 기존에는 ECU 개발시, CCP/XCP(Common Communication Protocol)과 같은 통신 프로토콜을 사용하여 CPU 내부 자원에 접근하고 있다. 이렇게 CPU에서 지원하는 통신 프로토콜이 아닌 CCP/XCP 프로토콜을 사용하는 경우, JATG/BDM 프로토콜을 사용할 때보다 프로그램을 개발하는데 있어 최적의 환경을 제공하기 어렵기 때문에 최적의 프로그램 개발이 용이하지 않을 수 있다.
이러한 배경에서, 본 발명의 목적은, JTAG/BDM 프로토콜을 이용하여 ECU를 디버깅할 수 있도록 함으로써, 정확한 디버깅이 가능하도록 하여 최적의 프로그램 개발이 용이하도록 하는 차량용 ECU 디버깅 시스템 및 그 방법을 제공하는 것이다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 차량에 탑재된 ECU의 소프트웨어를 디버깅하는 디버거;
상기 ECU와 연결되며, 상기 ECU와의 통신에 사용되는 제1프로토콜과, 차량용 네트워크에서 사용되는 제2프로토콜을 상호 변환하는 제1변환모듈; 및
상기 차량용 네트워크에 연결되도록 상기 차량의 외부에 설치되며, 상기 제2프로토콜을 이용하여 상기 제1변환모듈과 통신하고 상기 디버거와는 상기 제1프로토콜을 이용하여 통신하며, 상기 제2프로토콜과 상기 제1프로토콜을 상호 변환하는 제2변환모듈;을 포함하는 차량용 ECU 디버깅 시스템을 제공한다.
다른 측면에서, 본 발명은, 차량에 탑재된 ECU로부터 전달된 데이터의 프로토콜을 제1프로토콜에서 차량용 네트워크에서 사용되는 제2프로토콜로 변환하는 단계; 상기 제2프로토콜을 통해 차량의 외부로 상기 데이터를 전달하는 단계; 상기 데이터의 프로토콜을 제2프로토콜에서 제1프로토콜로 변환하는 단계; 상기 제1프로토콜을 이용하여 전달된 데이터를 디버깅하는 단계; 디버깅 결과 발생한 업데이트용 데이터의 프로토콜을 상기 제1프로토콜에서 상기 제2프로토콜로 변환하는 단계; 상기 제2프로토콜을 이용하여 차량의 내부로 상기 업데이트용 데이터를 전달하는 단계; 및 상기 업데이트용 데이터의 프로토콜을 상기 제2프로토콜에서 상기 제1프로토콜로 변환하여 ECU로 전달하는 단계;를 포함하는 차량용 ECU 디버깅 방법을 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 실차환경에서 JTAG/BDM 프로토콜을 이용하여 ECU의 소프트웨어를 디버깅하더라도 ECU가 리셋되는 것을 방지함으로써, 소프트웨어를 상세하고 정확하게 분석할 수 있다. 이렇게 실차환경에서 정확한 디버깅이 가능함에 따라, 최적의 소프트웨어 개발이 가능하고, 소프트웨어의 개발기간을 단축할 수 있다는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 차량용 ECU 디버깅 시스템을 도시한 구성도,
도 2는 도 1의 차량용 ECU 디버깅 시스템에서 ECU의 소프트웨어를 디버깅하는 과정을 도시한 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 차량용 ECU 디버깅 시스템을 도시한 구성도이다.
본 발명은 ECU(10)에 탑재된 소프트웨어를 디버깅하기 위한 ECU(10) 디버깅 시스템에 관한 것으로서, ECU(10)에 탑재된 소프트웨어를 라인 단위로 실행하고 분석할 수 있도록 함으로써, 정확한 분석과 수정이 가능하도록 한다.
일반적으로 차량용 ECU(10)는, MCU(20)(Micro Control unit)와 DSP(30)(Dynamic Shift Program)를 포함한다. 여기서, MCU(20)는 ECU(10)에서 제어 및 연산을 담당하며, 사고 피해를 줄이고 사고의 예방이 가능하도록 고속, 고성능의 프로세싱 능력과 충분한 용량의 메모리를 구비하고 있다.
DSP(30)는 운전자의 주행 취향 또는 도로 상황에 맞게 변속 시기를 자동으로 조정해 주는 장치로서, DRP(Dynamic Rgulating Program)라고도 한다. DSP(30)는 차량 속도, 엔진 회전수, 액셀러레이터 개방 정도, 페달 밟는 속도 등을 점검하여 운전자의 주행 취향을 파악하고, 센서를 이용하여 노면 상황을 점검한 뒤 컴퓨터로 이들 항목을 학습하여 변속 프로그램을 제어한다.
이렇게 MCU(20)와 DSP(30)를 포함하는 ECU(10)는, 차량 내부, 예를 들면 엔진 룸 또는 범퍼 등에 장착되어 있다. 그리고 MCU(20)와 DSP(30)는 각각 JTAG/BDM(Joint Test Action Group/Background Debug Mode) 포트를 구비하고 있다.
JTAG/BDM 프로토콜은 일반적으로 임베디드 시스템 개발에 사용하며, 디바이스 간 연결 상태를 테스트하고, 칩 내부를 조사 및 제어할 수 있다. 이에 따라, 본 발명에서는 JTAG/BDM 프로토콜을 이용하여 MCU(20)와 DSP(30)의 내부자원에 접근하여 상태를 테스트할 수 있다.
본 발명에 따른 ECU(10) 디버깅 시스템은, 차량에 탑재된 ECU(10)를 차량용 네트워크에 연결하는 제1변환모듈(40), ECU(10)의 소프트웨어를 디버깅하고 업데이트하는 디버거(Debugger), 제1변환모듈(40)과 디버거를 연결하는 제2변환모듈(50)을 포함한다.
제1변환모듈(40)은, ECU(10)와 제2변환모듈(50)을 연결하여 ECU(10)가 프로그래밍 장치에 접속되도록 한다. 제1변환모듈(40)은, MCU(20)의 JTAG/BDM 포트에 연결되는 제1포트와, DSP(30)의 JTAG/BDM 포트에 연결되는 제2포트를 구비한다. 이에 따라, 제1포트와 제2포트는 모두 JTAG/BDM 포트이며, MCU(20)와 DSP(30)는 각각 JTAG/BDM 프로토콜을 이용하여 제1변환모듈(40)과 통신할 수 있다.
또한, 제1변환모듈(40)은, 제2변환모듈(50)과 연결되는 제3포트를 포함하며, 제3포트는 이더넷(Ethernet) 또는 FlexRay이다. 이에 따라, 제1변환모듈(40)과 제2변환모듈(50)은, 차량용 고속 통신선인 이더넷(Ethernet) 또는 FlexRay를 이용하여 통신할 수 있다.
여기서, 이더넷은 LAN(Local Area Network)을 지원하기 위한 네트워크 프로토콜이고, FlexRay는 차량 전용 프로토콜이다.
FlexRay는 효율적인 빠른 데이터 전송속도를 가진 time-triggered 통신 시스템에 기초를 두고 있으며, 기존에 차량에 장착된 제어 유닛들 간에 교환되는 데이터 양이 증가하여 메시지 전송의 시간 결정(time determinaation)과 오류 허용한계(error tolerance)에 관련된 수요가 증대됨에 따라 개발되었다.
제1변환모듈(40)은 MCU(20)와 연결되는 제1포트와, DSP(30)와 연결되는 제2포트와, 제2변환모듈(50)과 연결되는 제3포트를 구비하고 있다. 이 중, 제1포트와 제2포트는 MCU(20) 및 DSP(30)와 JTAG/BDM 프로토콜을 이용하여 통신하고, 제3포트는 이더넷 또는 Flexray 프로토콜을 이용하여 통신할 수 있다.
이러한 제1변환모듈(40)은 데이터의 전송방향에 따라, JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하거나, 이더넷 또는 Flexray 프로토콜을 JTAG/BDM 프로토콜로 변환할 수 있다. 데이터가 MCU(20) 또는 DSP(30)로부터 디버거로 전달될 때는, 제1변환모듈(40)은 데이터의 프로토콜을 JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하게 되고, 데이터가 디버거로부터 MCU(20) 또는 DSP(30)로 전달될 때는, 제1변환모듈(40)은 이더넷 또는 Flexray 프로토콜을 JTAG/BDM 프로토콜로 변환하게 된다.
제1변환모듈(40)은 MCU(20)(Micro Controller Unit) 또는 FPGA(Field Programmable Gate Array)로 구성될 수 있으며, 소프트웨어나 RTL(Register Transfer Level) 합성에 의해 상세 변환 로직이 구현되어 프로토콜 변환을 수행할 수 있다.
이러한 제1변환모듈(40)은 차량 내부에 설치된 ECU(10)의 보드에 일체로 장착되며, 제1변환모듈(40)에 연결된 이더넷 또는 Flexray의 통신선이 소프트웨어의 개발이 이루어지는 운전석까지 연장된다.
이에 따라, MCU(20) 및 DSP(30)와 제1변환모듈(40)을 연결하는 JTAG/BDM 통신선도 ECU(10) 보드 상에 짧게 형성되므로, 기존에 JTAG/BDM 통신선이 노이즈가 심한 엔진룸을 통과하면서 발생하는 리셋 현상을 미연에 방지할 수 있다.
제2변환모듈(50)은, 이더넷 또는 Flexray 통신선을 통해 제1변환모듈(40)에 연결되는 제3포트와, 디버거에 연결되는 제1 및 제2포트를 포함한다. 제1포트와 제2포트는 각각 MCU 디버거(60)와 DSP 디버거(70)에 연결되며, MCU 디버거(60) 및 DSP 디버거(70)와 JTAG/BDM 프로토콜을 이용하여 통신할 수 있다.
제2변환모듈(50)은 제1포트와 제2포트는 JTAG/BDM 프로토콜을 사용하는 통신선이 연결되고, 제3포트는 이더넷 또는 Flexray 프로토콜을 사용하는 통신선이 연결됨에 따라, 제2변환모듈(50)은 이더넷 또는 Flexray 프로토콜과 JTAG/BDM 프로토콜을 상호 변환하게 된다.
데이터가 MCU(20) 또는 DSP(30)로부터 디버거로 전달될 때는, 제2변환모듈(50)은 데이터의 프로토콜을 이더넷 또는 Flexray 프로토콜로부터 JTAG/BDM 프로토콜로 변환하게 되고, 데이터가 디버거로부터 MCU(20) 또는 DSP(30)로 전달될 때는, 제2변환모듈(50)은 JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하게 된다.
제2변환모듈(50)과 MCU 디버거(60) 및 DSP 디버거(70)를 연결하는 JTAG/BDM 통신선은, 제1변환모듈(40)의 JTAG/BDM 통신선과는 달리 외부에 노출되어 있으나, 엔진룸과는 멀리 설치되어 있고, 길게 형성할 필요가 없으므로, 리셋의 염려가 없다.
디버거는, ECU(10)의 소프트웨어를 분석하여 오동작의 원인을 분석하고 수정하여 업데이트한다. 디버거는, MCU(20)에 관련된 소프트웨어를 디버깅하기 위한 MCU 디버거(60)와, DSP(30)에 관련된 소프트웨어를 디버깅하기 위한 DSP 디버거(70)로 이루어질 수 있다.
MCU 디버거(60)와 DSP 디버거(70)는, 단말기(80)에 연결되어 있으며, 단말기(80)는 MCU 디버거(60)와 DSP 디버거(70)의 동작을 제어하고, MCU 디버거(60) 및 DSP 디버거(70)에서 분석된 결과를 표시할 수 있다.
MCU 디버거(60)와 DSP 디버거(70)는, 소프트웨어 리프로그래밍, 데이터 칼리브레이션(Data Calibration), 데이터 측정(Data Measurement), 및 소프트웨어 흐름 제어를 수행한다.
소프트웨어 리프로그래밍은, 각각 MCU(20)와 DSP(30)에 설치된 소프트웨어를 다시 작성하는 것을 말하며, 데이터 칼리브레이션은 소프트웨어의 내부 파라메터들을 수정하여 소프트웨어를 튜닝하는 과정이다. 또한, 데이터 측정은, 소프트웨어의 내부 변수 값들의 변화를 실시간으로 모니터링함으로써, 소프트웨어의 동작을 분석하는 과정이다.
소프트웨어 흐름 제어는, 브레이크 포인트(Break Point)를 이용한 흐름제어와, 코드 라인 단위 흐름제어를 포함할 수 있다.
브레이크 포인트를 이용한 흐름제어는, 하드웨어와 소프트웨어에 각각 디버깅하길 원하는 부분에 브레이크 포인트를 설정하면, 브레이크 포인트에 도달하면 소프트웨어의 동작이 정지됨으로써, 내부 상황을 관찰할 수 있도록 한다. 이렇게 브레이크 포인트를 이용할 경우, 디버깅을 원하는 예외처리 벡터에 브레이크 포인트를 설정함으로써, 예외상황이 발생한 이유를 분석할 수 있다.
코드 라인 단위 흐름제어는, 소프트웨어의 코드 라인 단위로 실행함으로써, 소프트웨어가 어떻게 동작하는지 코드 라인 단위로 상세히 분석할 수 있다. 이에 따라, 소프트웨어의 코드 라인 단위에 따른 메모리 값의 변화를 살펴볼 수 있다. 더욱 자세히는 코드 라인 단위뿐만 아니라 어셈블리 레벨(Assembly level) 단위로 소프트웨어를 실행시키고 분석할 수도 있다.
이렇게 MCU 디버거(60)와 DSP 디버거(70)에서 MCU(20) 및 DSP(30)에 설치된 소프트웨어를 디버깅함에 따라, MCU 디버거(60)와 DSP 디버거(70)는 MCU(20)와 DSP(30)로부터 소프트웨어를 제공받게 되며, MCU 디버거(60) 및 DSP 디버거(70)에서의 분석 결과에 따라, 수정된 파라미터나 내부 변수 또는 리프로그래밍된 소프트웨어 등 업데이트에 필요한 데이터가 MCU(20)와 DSP(30)로 전달된다.
이에 따라, MCU(20)와 DSP(30)로부터의 소프트웨어가 MCU 디버거(60) 및 DSP 디버거(70)로 전달될 때는, 제1변환모듈(40)은 프로토콜을 JTAG/BDM 프로토콜로부터 이더넷 또는 Flexray 프로토콜로 변환하고, 제2변환모듈(50)은 프로토콜을 이더넷 또는 Flexray 프로토콜로부터 JTAG/BDM 프로토콜로 변환한다.
반면, MCU 디버거(60) 및 DSP 디버거(70)로부터 MCU(20) 또는 DSP(30)로 업데이트에 필요한 데이터가 전달될 때는, 제2변환모듈(50)은 JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하고, 제1변환모듈(40)은 이더넷 또는 Flexray 프로토콜을 JTAG/BDM 프로토콜로 변환한다.
한편, MCU 디버거(60)와 DSP 디버거(70)는 각각 메모리를 가지고 있으며, 각각의 메모리에는 MCU(20)와 DSP(30)의 소프트웨어가 저장되어 있다. 이에 따라, MCU 디버거(60)와 DSP 디버거(70)는 소프트웨어가 리프로그래밍되거나, 내부 파라메터가 수정되거나 하는 등 업데이트가 필요할 때, 소프트웨어 개발 장치에서 제공된 데이터와, 각 메모리에 저장된 데이터를 비교하여 각 메모리를 업데이트할 수 있다.
한편, MCU 디버거(60) 및 DSP 디버거(70)는, 각각 USB 포트가 형성되어 있고, MCU 디버거(60)와 DSP 디버거(70)에도 각각 USB 포트가 형성되어 있다. 이에 따라, 단말기(80)는 MCU 디버거(60) 및 DSP 디버거(70)와 USB 통신선으로 연결된다.
도 2는 본 발명에 따른 차량용 ECU(10) 프로그램 개발 시스템에서 차량용 ECU(10)를 디버깅하는 과정을 보인 흐름도이다.
작업자 또는 자동으로 단말기(80)를 통해 MCU 디버거(60) 및 DSP 디버거(70)의 작동을 명령하고, 소프트웨어 리프로그래밍, 데이터 칼리브레이션, 데이터 측정, 및/또는 소프트웨어 흐름 제어에 필요한 설정을 입력한다. 예를 들어, 단말기(80)를 통해 브레이크 포인트를 설정하거나 코드 라인 단위로 소프트웨어를 실행하여 분석하도록 설정한다.
그러면, MCU(20)와 DSP(30)로부터 MCU 디버거(60)와 DSP 디버거(70)로 소프트웨어에 대한 데이터가 전달되며, 이때, 제1변환모듈(40)은 MCU(20)와 DSP(30)와의 통신에 사용한 JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하여 데이터를 제2변환모듈(50)로 전달하고(S200), 제2변환모듈(50)은 프로토콜을 이더넷 또는 Flexray 프로토콜로부터 JTAG/BDM 프로토콜로 변환하여 데이터를 MCU 디버거(60)와 DSP 디버거(70)로 전달되도록 한다(S210).
MCU 디버거(60)와 DSP 디버거(70)에서는 MCU(20)와 DSP(30)의 소프트웨어를 리프로그래밍하고, 내부 파라메터를 수정하거나 내부 변수 값들의 변화를 모니터링하고, 각 브레이크 포인트마다 그리고 소프트웨어의 코드 라인 단위 또는 어셈블리 레벨 단위로 분석한다(S220). MCU 디버거(60)와 DSP 디버거(70)는 디버깅 결과를 각 메모리에 저장된 MCU(20) 및 DSP(30)소프트웨어와 비교하고, MCU(20)와 DSP(30)의 소프트웨어를 업데이트해야 하는 경우, 업데이트에 필요한 데이터를 제2변환모듈(50)과 제1변환모듈(40)을 통해 MCU(20)와 DSP(30)로 전달한다.
즉, MCU 디버거(60)와 DSP 디버거(70)는 업데이트에 필요한 데이터를 제2변환모듈(50)로 전달하고, 제2변환모듈(50)은 MCU 디버거(60)와 DSP 디버거(70)와의 통신에 사용한 JTAG/BDM 프로토콜을 이더넷 또는 Flexray 프로토콜로 변환하여 제1변환모듈(40)로 전달한다(S240). 그러면, 제1변환모듈(40)은 이더넷 또는 Flexray 프로토콜을 JTAG/BDM 프로토콜로 변환하여 데이터가 MCU(20) 및 DSP(30)로 전달되도록 한다(S250). MCU(20)와 DSP(30)로 전달된 업데이트용 데이터를 이용하여 MCU(20)와 DSP(30)의 소프트웨어가 업데이트된다(S260).
이와 같이, 본 차량용 ECU(10) 디버깅 시스템에서는, JTAG/BDM 통신선을 ECU(10) 보드에 설치하여 JTAG/BDM 통신선이 엔진룸과 같이 노이즈가 심한 곳을 통과하지 않도록 설계하고, 제1변환모듈(40)과 제2변환모듈(50)을 이용하여 ECU(10) 보드 외부의 노이즈가 심한 곳에서는 이더넷과 Flexray 등의 통신선을 사용한다. 이에 따라, 실차환경에서 JTAG/BDM 프로토콜을 이용하여 ECU(10)의 소프트웨어를 디버깅하더라도 ECU(10)가 리셋되는 것을 방지함으로써, 소프트웨어를 상세하고 정확하게 분석할 수 있다. 이렇게 실차환경에서 정확한 디버깅이 가능함에 따라, 소프트웨어의 개발기간을 단축할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (9)

  1. 차량에 탑재된 ECU의 소프트웨어에 대해 리프로그래밍, 내부 파라메터를 수정하는 데이터 칼리브레이션, 내부 변수값을 모니터링하는 데이터 측정, 및 브레이크 포인트를 설정하여 소프트웨어의 실행을 제어하거나 코드 라인 단위로 소프트웨어를 분석하는 소프트웨어 흐름 제어 중 적어도 하나를 수행하여 상기 ECU의 소프트웨어를 디버깅하는 디버거;
    상기 ECU와 연결되며, 상기 ECU와의 통신에 사용되는 제1프로토콜과, 차량용 네트워크에서 사용되는 제2프로토콜을 상호 변환하는 제1변환모듈; 및
    상기 차량용 네트워크에 연결되도록 상기 차량의 외부에 설치되며, 상기 제2프로토콜을 이용하여 상기 제1변환모듈과 통신하고 상기 디버거와는 상기 제1프로토콜을 이용하여 통신하며, 상기 제2프로토콜과 상기 제1프로토콜을 상호 변환하는 제2변환모듈;을 포함하는 차량용 ECU 디버깅 시스템.
  2. 제 1 항에 있어서,
    상기 제1프로토콜은 JTAG/BDM 프로토콜이며, 상기 제2프로토콜은 이더넷 또는 FlexRay 프로토콜인 차량용 ECU 디버깅 시스템.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 ECU로부터 상기 디버거로 데이터를 전송할 경우, 상기 제1변환모듈은, 상기 JTAG/BDM 프로토콜을 상기 이더넷 또는 FlexRay 프로토콜로 변환하고, 상기 제2변환모듈은, 상기 이더넷 또는 FlexRay 프로토콜을 상기 JTAG/BDM 프로토콜로 변환하는 차량용 ECU 디버깅 시스템.
  5. 제 2 항에 있어서,
    상기 디버거로부터 상기 ECU로 소프트웨어의 업데이트를 위한 데이터를 전송할 경우, 상기 제2변환모듈은, 상기 JTAG/BDM 프로토콜을 상기 이더넷 또는 FlexRay 프로토콜로 변환하고, 상기 제1변환모듈은, 상기 이더넷 또는 FlexRay 프로토콜을 상기 JTAG/BDM 프로토콜로 변환하는 차량용 ECU 디버깅 시스템.
  6. 삭제
  7. 차량에 탑재된 ECU로부터 전달된 데이터의 프로토콜을 제1프로토콜에서 차량용 네트워크에서 사용되는 제2프로토콜로 변환하는 단계;
    상기 제2프로토콜을 통해 차량의 외부로 상기 데이터를 전달하는 단계;
    상기 데이터의 프로토콜을 제2프로토콜에서 제1프로토콜로 변환하는 단계;
    상기 제1프로토콜을 통해 전달된 데이터를 이용하여 상기 ECU의 소프트웨어에 대해 리프로그래밍, 내부 파라메터를 수정하는 데이터 칼리브레이션, 내부 변수값을 모니터링하는 데이터 측정, 및 브레이크 포인트를 설정하여 소프트웨어의 실행을 제어하거나 코드 라인 단위로 소프트웨어를 분석하는 소프트웨어 흐름 제어 중 적어도 하나를 수행하는 디버깅하는 단계;
    디버깅 결과 발생한 업데이트용 데이터의 프로토콜을 상기 제1프로토콜에서 상기 제2프로토콜로 변환하는 단계;
    상기 제2프로토콜을 이용하여 차량의 내부로 상기 업데이트용 데이터를 전달하는 단계; 및
    상기 업데이트용 데이터의 프로토콜을 상기 제2프로토콜에서 상기 제1프로토콜로 변환하여 ECU로 전달하는 단계;를 포함하는 차량용 ECU 디버깅 방법.
  8. 제 7 항에 있어서,
    상기 제1프로토콜은 JTAG/BDM 프로토콜이며, 상기 제2프로토콜은 이더넷 또는 FlexRay 프로토콜인 차량용 ECU 디버깅 방법.
  9. 삭제
KR1020110115601A 2011-11-08 2011-11-08 차량용 ecu 디버깅 시스템 및 그 방법 KR101420481B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110115601A KR101420481B1 (ko) 2011-11-08 2011-11-08 차량용 ecu 디버깅 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110115601A KR101420481B1 (ko) 2011-11-08 2011-11-08 차량용 ecu 디버깅 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20130050501A KR20130050501A (ko) 2013-05-16
KR101420481B1 true KR101420481B1 (ko) 2014-07-16

Family

ID=48660838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110115601A KR101420481B1 (ko) 2011-11-08 2011-11-08 차량용 ecu 디버깅 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101420481B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022053139A1 (en) * 2020-09-10 2022-03-17 Huawei Technologies Co., Ltd. Microchip with on-chip debug and trace engine

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527778B1 (ko) * 2014-01-02 2015-06-10 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
KR101602225B1 (ko) * 2014-12-12 2016-03-10 현대오트론 주식회사 차량 리프로그래밍 시스템 및 방법
KR102410940B1 (ko) * 2017-10-11 2022-06-20 현대자동차주식회사 Ecu 실행시간 모니터링 및 고장원인 파악 방법 및 시스템
CN109104489B (zh) * 2018-08-29 2021-11-02 歌尔光学科技有限公司 控制设备及程序下载方法
CN110377004B (zh) * 2019-07-12 2020-08-11 北京祥远通达科技有限公司 车用半虚拟ecu测试系统及其测试方法
CN111505977B (zh) * 2020-03-11 2022-05-10 浙江吉利汽车研究院有限公司 功能辅助调试方法、功能调试方法、装置、系统及介质
CN113043970B (zh) * 2021-03-30 2023-03-14 重庆长安汽车股份有限公司 一种整车负载管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010113595A (ko) * 2001-08-10 2001-12-28 이철재 스마트카드를 이용한 차량 데이터 수집 및 차량 진단시스템 및 방법, 그리고 차량 편의장치 자동 설정 방법
JP2004326689A (ja) 2003-04-28 2004-11-18 Nissan Motor Co Ltd 車載機器のソフトウェア書き換え方法、テレマティクスシステムおよびテレマティクス装置
JP2004348545A (ja) 2003-05-23 2004-12-09 Clarion Co Ltd アプリケーション/データ更新システム
KR20070109578A (ko) * 2006-05-12 2007-11-15 주식회사 만도 차량 응용 프로그램 업데이트 기능이 구비된 네비게이션장치 및 그 업데이트 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010113595A (ko) * 2001-08-10 2001-12-28 이철재 스마트카드를 이용한 차량 데이터 수집 및 차량 진단시스템 및 방법, 그리고 차량 편의장치 자동 설정 방법
JP2004326689A (ja) 2003-04-28 2004-11-18 Nissan Motor Co Ltd 車載機器のソフトウェア書き換え方法、テレマティクスシステムおよびテレマティクス装置
JP2004348545A (ja) 2003-05-23 2004-12-09 Clarion Co Ltd アプリケーション/データ更新システム
KR20070109578A (ko) * 2006-05-12 2007-11-15 주식회사 만도 차량 응용 프로그램 업데이트 기능이 구비된 네비게이션장치 및 그 업데이트 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022053139A1 (en) * 2020-09-10 2022-03-17 Huawei Technologies Co., Ltd. Microchip with on-chip debug and trace engine

Also Published As

Publication number Publication date
KR20130050501A (ko) 2013-05-16

Similar Documents

Publication Publication Date Title
KR101420481B1 (ko) 차량용 ecu 디버깅 시스템 및 그 방법
US8019911B2 (en) System and method for testing and calibrating a control unit using an adaptation unit
EP3618363B1 (en) Network interface device and method for operating a network interface device
CN107145140B (zh) 车载电子控制单元can接口自动测试系统及其测试方法
US7882298B2 (en) Method for transmitting data from and to a control device
US10025883B2 (en) Method for generating a configuration for a control unit test system
US20140019942A1 (en) Method and device for creating and testing a control unit program
JP2007510992A (ja) 制御システムをシミュレーションおよび検証するためのシミュレーションシステムおよびコンピュータにより実施される方法
US20170045865A1 (en) Method for connecting an input/output interface of a tester equipped for control unit development
WO2010113538A1 (ja) 車載電子制御装置,制御ソフトウェアおよび制御ソフトウェアの開発ツール
US20060150021A1 (en) Device and method for analyzing embedded systems
US7249172B2 (en) System for remotely loading and remotely maintaining an electronic card
JP2015005189A (ja) Ecu評価装置、コンピュータプログラム及びecu評価方法
EP2600251B1 (en) Debug system, electronic control unit, information processing unit, semiconductor package, and transceiver circuit
KR20110059420A (ko) 차량용 전자 제어 장치의 진단 장치 및 방법
Oka Fuzz testing virtual ECUs as part of the continuous security testing process
CN113253701B (zh) 车辆远程诊断系统及方法
Vyas Trends of FPGA use in Automotive Engineering
Mouzakitis et al. Advanced automated onboard vehicle diagnostics testing
CN201724819U (zh) 电控发动机匹配标定系统
Freund Mulit-level system integration based on AUTOSAR
Skvarč Božič et al. In-Field Debugging of Automotive Microcontrollers for Highest System Availability
Ferrara Implementation of a Vehicle Function for an automotive Electronic Control Unit
Jaikamal et al. EHOOKS–Prototyping is Rapid Again
Otterbach et al. System verification throughout the development cycle

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170622

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 5