KR20210041972A - 차량 ecu 소프트웨어 업데이트 장치 - Google Patents

차량 ecu 소프트웨어 업데이트 장치 Download PDF

Info

Publication number
KR20210041972A
KR20210041972A KR1020190124868A KR20190124868A KR20210041972A KR 20210041972 A KR20210041972 A KR 20210041972A KR 1020190124868 A KR1020190124868 A KR 1020190124868A KR 20190124868 A KR20190124868 A KR 20190124868A KR 20210041972 A KR20210041972 A KR 20210041972A
Authority
KR
South Korea
Prior art keywords
software
delta file
ecu
area
existing
Prior art date
Application number
KR1020190124868A
Other languages
English (en)
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 KR1020190124868A priority Critical patent/KR20210041972A/ko
Publication of KR20210041972A publication Critical patent/KR20210041972A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Abstract

본 발명 차량 ECU 소프트웨어 업데이트 장치에 관한 것으로, 차량 ECU 소프트웨어 업데이트에 따른 개발소프트웨어에 대해 프로그래밍을 수행하되, 기존 소프트웨어를 기반으로 하여 신규 업데이트된 소프트웨어를 개발하여 기존 소프트웨어 및 신규 업데이트된 소프트웨어의 실행 파일을 제공하는 PC수단과; 상기 PC수단으로부터 기존의 소프트웨어에서 다른 부분만을 추출하여 델타 파일을 생성하는 단계 이전에 새로운 소프트웨어가 ECU내에서 플래싱 되는 크기를 최소화하기 위한 패치 수행 알고리즘과 엔코더 데이터를 활용한 델타 파일에서 각 영역별로 어플리케이션 명령을 수행하는 정보를 저장하는 델타파일 생성 알고리즘 및 ECU 내에 탑재되어야 하는 RAM 메모리를 최소화할 수 있도록 순서를 조정하는 최적화 수행 알고리즘을 통해 델타파일을 생성하는 델타파일생성기와; 상기 델타파일생성기를 통해 생성된 델타파일을 ECU로 안전하게 CAN통신을 수행하는 진단기와; 상기 진단기와 CAN통신을 통해 차량의 ECU 소프트웨어를 업데이트하며, 상기 델타파일생성기로부터 최적화된 델타 파일의 일부인 엔코더 데이터가 수신부를 통해 수신되면 이를 델타파일해석부에서 플래시메모리에 내장된 기존의 소프트웨어와 비교ㆍ해석하여 리프로그래밍모듈에서 신규로 추가된 해당 소프트웨어 영역을 리프로그래밍 하도록 명령하는 ECU가 구성되는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치를 제공함으로써, 차량 ECU 소프트웨어 업데이트 과정에서 기존 대비 Flash Erase 및 Program 작업량에 따른 펌웨어 업데이트 시간을 크게 줄임은 물론 차량 무선 소프트웨어 업데이트(OTA)의 기반 기술을 새롭게 개발할 수 있는 독특한 효과가 있다.

Description

차량 ECU 소프트웨어 업데이트 장치{Apparatus for updating vehicle ECU software}
본 발명은 차량 ECU 소프트웨어 업데이트 장치에 관한 것으로, 특히 자동차 ECU의 펌웨어 업데이트 시 CAN 버스를 통한 과도한 시간이 요구되는 문제점을 특별히 고안된 알고리즘에 의해 델타 플래싱(Delta Flashing)의 사용을 개선시킨 차량 ECU 소프트웨어 업데이트 장치에 관한 것이다.
일반적으로, 자동차 ECU(Electronic Control Unit)의 펌웨어 업데이트(Firmware Update)에 대한 최신 솔루션은 'Flash Bootloader' 개념을 기반으로 하고 있다.
이러한 소프트웨어는 CAN 버스를 통해 표준 'Re-programming' 명령(예컨대, UDS 프로토콜)을 수신하여 전체 ECU를 업데이트 할 수 있다. 주된 단점은 통신 환경에 의해 도입된 전반적인 높은 업데이트 소요 시간뿐만 아니라 실제 'Re-programming' 시간이 요구된다. 또한 통신 시간은 다른 통신 환경(예컨대, Ethernet, FlexRay, MOST, Lvds 등)을 사용하여 줄일 수 있으나, 'Re-programming' 시간은 여전히 하드웨어에 좌우되므로 줄어들 수 없다. 따라서 높은 펌웨어 업데이트 지속 시간의 주요 문제는 여전히 남아 있다.
한편, 대한민국 공개특허공보(A) 제10-2015-0043732호(2015.04.23.)의 자동차 제어기의 소프트웨어 업데이트 시스템 및 방법에 의하면, 기존 제어기 소프트웨어 대비 현재 제어기 소프트웨어의 변경된 바이너리만을 검출하여 송신하는 서버; 기존 제어기 소프트웨어의 바이너리를 송신하는 제어기; 상기 서버에서 수신한 변경된 바이너리와 상기 제어기에서 수신한 기존 바이너리를 합병하여 업데이트된 현재 소프트웨어 바이너리를 형성하는 게이트웨이; 상기 게이트웨이에서 업데이트된 현재 소프트웨어 바이너리를 수신하여 상기 제어기에 프로그램하는 프로그램 인터페이스;를 포함하고 있다.
그러나 이 특허는 제어기의 전체 소프트웨어를 다운받지 않고 제어기에 존재하는 변경된 최소 바이너리만을 다운로드 받아 전송하기 때문에 무선 전송 데이터량을 최소화할 수 있으나, 서버에서 수신한 변경된 바이너리와 제어기에서 수신한 기존 바이너리를 합병하여 업데이트된 현재 소프트웨어 바이너리를 형성하는 게이트웨이 수단이 요구되고, 또한 합병된 데이터는 CAN 통신에 의해 이루어지므로 ECU에서 실제 Flash 메모리에 쓰기 전에 현재 ECU의 Flash 메모리와 합병된 데이터를 비교하여 새로 추가된 부분에 대한 기존 데이터의 Erase 및 Re-programming에 따른 SW 업데이트 시간이 길어질 수 있다. 즉, 새로 추가된 부분이 소프트웨어의 맨 앞에 존재할 경우, 기존의 모든 코드에 대한 주소가 새로 추가된 부분의 영향을 받아 변경될 수 있기 때문에 CAN 통신,Erase 및 Re-programming 시간이 길어지는 문제점을 배제할 수 없다.
따라서 본 발명의 목적은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 보다 상세하게는, 자동차 ECU의 펌웨어 업데이트 시 네트워크를 통해 전송되는 데이터의 양과 ECU 내에서 Erase 및 Re-Programming 해야하는 데이터의 양을 특별히 고안된 알고리즘(패치 수행과 Delta File 생성 및 최적화 수행)에 의해 줄임으로써, 펌웨어 업데이트 시간을 크게 줄일 수 있도록 한 차량 ECU 소프트웨어 업데이트 장치에 관한 것이다.
전술한 목적을 달성하기 위한 본 발명의 특징에 의하면, 차량 ECU 소프트웨어 업데이트 장치에 있어서, 상기 차량 ECU 소프트웨어 업데이트에 따른 개발소프트웨어에 대해 프로그래밍을 수행하되, 기존 소프트웨어(Base SW)를 기반으로 하여 신규 업데이트된 소프트웨어(Update SW)를 개발하여 기존 소프트웨어 및 신규 업데이트된 소프트웨어의 실행 파일을 제공하는 PC수단(100)과; 상기 PC수단으로부터 기존의 소프트웨어(Base SW)에서 다른 부분만을 추출하여 델타 파일을 생성하는 단계 이전에 새로운 소프트웨어(Update SW)가 ECU내에서 플래싱(Flashing) 되는 크기를 최소화하기 위한 패치 수행 알고리즘과 엔코더 데이터를 활용한 델타 파일에서 각 영역별로 어플리케이션 명령을 수행하는 정보를 저장하는 델타파일 생성 알고리즘 및 ECU 내에 탑재되어야 하는 RAM 메모리를 최소화할 수 있도록 순서를 조정하는 최적화 수행 알고리즘을 통해 델타파일(Delta File)을 생성하는 델타파일생성기(200)와; 상기 델타파일생성기를 통해 생성된 델타파일을 ECU로 안전하게 CAN통신을 수행하는 진단기(300)와; 상기 진단기와 CAN통신을 통해 차량의 ECU 소프트웨어를 업데이트하며, 상기 델타파일생성기로부터 최적화된 델타 파일의 일부인 엔코더 데이터가 수신부(410)를 통해 수신되면 이를 델타파일해석부(420)에서 플래시메모리(440)에 내장된 기존의 소프트웨어(Base SW)와 비교ㆍ해석하여 리프로그래밍모듈(430)에서 신규로 추가된 해당 소프트웨어 영역을 리프로그래밍(Re-programming) 하도록 명령하는 ECU(400)가 구성되는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치를 제공한다.
본 발명의 또 다른 실시 예에 따르면, 상기 패치 수행 알고리즘은, 기존 소프트웨어(Base SW) 대비 신규로 추가된 소프트웨어(Update SW)의 변경된 소프트웨어 영역을 분석하여 패치 작업에 필요한 영역을 확인하고, 상기 확인 후, 신규로 추가된 영역이 할당 가능하도록 기존 소프트웨어 영역의 일부 마지막으로 이동하며, 상기 신규로 추가된 소프트웨어는 별도의 주소 변경 없이 저장하되, 상기 일부 마지막으로 이동된 기존의 소프트웨어보다 신규로 추가되는 소프트웨어의 크기가 작다면 Dummy를 추가 및, 상기 일부 마지막으로 이동된 영역에 포함된 소프트웨어의 함수는 할당 주소가 변경될 경우 기존 소프트웨어에서 호출하는 부분을 찾아서 주소를 변경해주는 것을 특징으로 한다.
본 발명의 또 다른 실시 예에 따르면, 상기 델타파일 생성 알고리즘은, 엔코더 데이터(Encoder Data)를 활용하며, 상기 엔코드 데이터는 델타 파일에서 각 영역별로 어떠한 명령을 수행해야 하는지에 대한 신규 데이터 쓰기(CMD-1)와 기존 데이터 옮김(CMD-2) 및 데이터 무결성 확인(CMD-3) 정보를 각각 저장하되, 상기 신규 데이터 쓰기(CMD-1)는, 플래시할 시작 주소와 크기를 전송한 이후 새로 추가될 데이터는 통신으로 전송되고, 상기 기존 데이터 옮김(CMD-2)은, 기존 소프트웨어(Base SW)를 다른 메모리 영역으로 이동시킬 경우에 사용되며, 이동된 기존 소프트웨어는 시작 주소, 크기, 신규 주소를 각각 저장하며, 상기 데이터 무결성 확인(CMD-3)은, 리프로그래밍 작업이 완료된 이후 마지막 엔코더 데이터로 추가하여 리프로그래밍된 전체 플래시 메모리를 검사하여 상기 PC수단(100)에서 전송한 무결성 확인 코드와 동일한지를 확인하는 것을 특징으로 한다.
본 발명의 또 다른 실시 예에 따르면, 상기 최적화 수행 알고리즘은, 기존 소프트웨어(Base SW) 중에 변경이 없는 영역은 엔코더 데이터를 삭제하고, 상기 기존 소프트웨어(Base SW) 중에 메모리의 마지막 부분으로 옮겨지는 부분을 앞쪽에 순서대로 배치하며, 상기 배치는 가장 낮은 주소부터 추가되는 영역을 순서대로 정렬시키는 것을 특징으로 한다.
본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치 다음과 같은 효과가 있다.
즉, 자동차 ECU의 펌웨어 업데이트 시 네트워크를 통해 전송되는 데이터의 양과 ECU 내에서 Erase 및 Re-Programming 해야 하는 데이터의 양을 특별히 고안된 패치 수행과 Delta File 생성 및 최적화 수행 알고리즘에 의해 줄여주는 차량 ECU 소프트웨어 업데이트 장치를 구현함으로써,
(1)차량 ECU 소프트웨어 업데이트 과정에서 기존 대비 Flash Erase 및 Program 작업량에 따른 펌웨어 업데이트 시간을 크게 줄일 수 있다.
(2)차량 무선 소프트웨어 업데이트(OTA)의 기반 기술을 새롭게 개발 가능하고, 리콜 비용 부담을 완화시키며, CAN FD 및 Ethernet 등 최신 차량 통신기술에 적용 가능한 효과가 있다.
도 1은 종래의 특허기술 및 Delta flashing Re-programming 방법
도 2는 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치에 대한 전체 기술적 구성의 블록도
도 3은 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치에 대한 델타파일생성기의 패치 수행 알고리즘을 나타낸 플로워 챠트
도 4는 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치에 대한 델타파일생성기의 Delta File 생성 알고리즘을 나타낸 플로워 챠트
도 5는 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치에 대한 델타파일생성기의 최적화 수행 알고리즘을 나타낸 플로워 챠트
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치를 상세하게 설명한다.
우선 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시하더라도 가능한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지의 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 2 내지 도 5를 참조하여, 본 발명의 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치의 핵심 기술적 구성 수단은, 차량 ECU 소프트웨어 업데이트에 따른 개발소프트웨어의 프로그래밍을 수행하는 PC수단(100)과 상기 개발소프트웨어에 대해 패치수행 알고리즘과 최적화를 통해 델타파일(Delta File)을 생성하는 델타파일생성기(200), 상기 델타파일생성기를 통해 생성된 델타파일을 ECU로 안전하게 CAN통신을 수행하는 진단기(300) 및 상기 진단기와 CAN통신을 통해 차량의 ECU(Engine Control Unit) 소프트웨어를 업데이트하는 ECU(400)로 구성된다.
먼저, 도 1의 (나)는 차량 ECU 소프트웨어 업데이트를 위한 종래의 기술로서 “Delta flashing Re-programming”방법을 나타낸다.
즉, 업데이트되기 이전의 기존 소프트웨어(Base SW)가 ECU의 플래시 메모리(Flash Memory) 내에 저장되어 있는 특징을 이용하여, Base SW와 Update SW의 다른 부분만을 델타파일(Delta File)로 생성하고, 생성된 델타 파일을 진단기를 통해 ECU의 플래시 메모리에 저장된 Base SW와 조합하여 리프로그래밍 함으로써, 차량 ECU 소프트웨어 업데이트 시간을 단축하도록 하였다.
그러나 종래 기술은 변경된 부분만을 전송하여 업데이트하고자 하는 소프트웨어(SW)를 전송하는 시간과 일부 변경이 없는 SW의 리프로그래밍(Re-programming) 시간을 단축할 수 있는 특징이 있으나, 도 1의 (나)에서 보는 바와 같이, SW의 B1 영역과 B2 영역에서 일부 SW가 변경되는 경우 신규로 추가된 SW(A영역) 이후에 기존의 모든 소프트웨어들의 주소가 변경되기 때문에 신규로 추가된 소프트웨어의 A영역 이후 기존의 모든 소프트웨어 B2 내지 B4를 다시 리프로그래밍 해주어야 하는 문제점이 발생한다.
따라서 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치는 종래의 ‘Delta flashing Re-programming’방법을 획기적으로 개선하는데 그 독특한 특징이 있다.
도 2를 참조하여, 본 발명의 실시 예에 따른 상기 PC수단(100)은, 차량 ECU(Electronic Control Unit) 소프트웨어 업데이트에 따른 개발소프트웨어를 프로그래밍하기 위한 수단으로, 기존 소프트웨어(Base SW)를 기반으로 하여 신규 업데이트된 소프트웨어(Update SW)를 개발하여 기존 소프트웨어 및 신규 업데이트된 소프트웨어의 실행 파일을 제공한다.
도 2를 참조하여, 본 발명의 실시 예에 따른 상기 델타파일생성기(200)는, 상기 PC수단(100)으로부터 기존의 소프트웨어(SW)에서 다른 부분만을 추출하여 델타 파일을 생성하는 단계 이전에 새로운 소프트웨어(SW)가 ECU내에서 플래싱(Flashing) 되는 크기를 최소화하기 위한 패치 수행과 엔코더 데이터를 활용한 델타 파일에서 각 영역별로 어플리케이션 명령을 수행하는 정보를 저장하는 델타파일 생성 및 ECU 내에 탑재되어야 하는 RAM 메모리를 최소화할 수 있도록 순서를 조정하는 최적화 수행 알고리즘을 통해 델타파일(Delta File)을 생성하는 수단이다.
도 2 및 도 3을 참조하여, 본 발명의 실시 예에 따른 상기 패치 수행 알고리즘은 다음과 같다.
먼저 기존 소프트웨어(Base SW) 대비 신규로 추가된 소프트웨어(Update SW)의 변경된 소프트웨어 영역(도 3의 A부분)을 분석하여 패치 작업에 필요한 영역(도3의 A부분)을 확인한다.
다음은 상기 신규로 추가된 영역(도 3의 A부분)이 할당 가능하도록 기존 소프트웨어(Base SW) 영역(도 3의 B2부분)의 일부 마지막으로 이동한다. 즉 기존 SW에서 변경된 소프트웨어 영역(도 3의 A부분)이 추가되면 이후의 기존 소프트웨어들(도 3의 B2~B4부분)은 주소가 변경되어 도 3의 A영역만 코드가 변경되었음에도 불구하고, 실제 제어기에서 리프로그래밍시에 동일한 SW 코드(B2 ~ B4 부분)를 변경된 주소 영역으로 옮겨주기 위해 Erase 및 Flash 작업이 추가로 필요하다. 이를 방지하기 위해 신규로 추가된 영역 (도 3의 A부분)이 추가 가능한 최소한의 메모리 영역(도 3의 B2 부분)을 SW에서 미사용 중인 영역(예를 들면, SW의 마지막 부분)으로 이동시킨 후 기존의 B2 영역에 추가된 SW 영역 A를 추가한다. 이를 통해 B2 이후의 영역(도 3의 B3 ~ B4부분)는 동일한 주소에 할당되어 제어기에서 Erase 및 Flash작업을 최소화 할 수 있다.
또한, 상기 신규로 추가된 소프트웨어는 별도의 주소 변경 없이 저장되며, 이때 이동된 기존의 소프트웨어(도 3의 B2부분)보다 추가되는 소프트웨어(도 3의 A부분)의 크기가 작다면 Dummy를 추가한다. 상기 설명한 신규 업데이트된 SW 추가를 위해 이동할 메모리 영역 B2는 함수의 집합으로 해당 영역이 추가할 메모리 영역의 크기와 반드시 동일하지 않으며, 항상 추가할 메모리 영역보다 크거나 같아야 한다. 따라서, Dummy 는 실제로 어떠한 코드를 삽입하는 것이 아니라, 이동한 메모리의 영역이 추가된 SW 영역 보다 크다면 일부 메모리 영역이 미사용 Dummy 영역이 된다는 것을 의미하며, 필요에 따라 미사용 영역임을 나타내는 nop(no operation) 또는 0 등의 초기화 값으로 채울 수 있다.
여기서, 신규로 추가된 소프트웨어(도 3의 A부분)에 Dummy 값을 이용하여 ECU 내부에 존재하는 기존 소프트웨어에 대한 코드의 주소를 최대한 변경되지 않는 범위에서 기존 코드에 일부 추가된 소프트웨어(도 3의 A부분)와 관련된 코드만의 주소를 수정한다. 즉 추가된 Dummy 값은 기존 코드의 주소 일부만 제거하여 신규로 추가된 소프트웨어(도 3의 A부분)의 주소만 업데이트함으로써 CAN 통신을 통한 ECU의 업데이트 속도를 크게 향상시킬 수 있도록 하는 개선된 Delta File을 생성하도록 한다.
마지막으로, 상기 일부 마지막으로 이동된 영역(B2 영역)에 포함된 소프트웨어(Base SW)의 함수는 할당 주소가 변경될 경우 기존 소프트웨어에서 호출하는 부분을 찾아서 주소를 변경하여 준다.
도 2 및 도 4를 참조하여, 본 발명의 실시 예에 따른 상기 델타파일 생성 알고리즘은 다음과 같다.
상기 델타파일 생성 알고리즘은 엔코더 데이터(Encoder Data)를 활용하며, 엔코드 데이터는 델타 파일에서 각 영역별로 어떠한 명령을 수행해야 하는지에 대한 정보를 각각 저장한다.
즉, 상기 엔코더 데이터(Encoder Data)는 신규 데이터 쓰기(CMD-1)와 기존 데이터 옮김(CMD-2) 및 데이터 무결성 확인(CMD-3) 정보를 각각 저장한다.
먼저, 상기 신규 데이터 쓰기(CMD-1)는, 플래시할 시작 주소와 크기를 전송한다. 이후 새로 추가될 데이터는 통신으로 전송된다(도 3의 A부분 참조).
다음은, 상기 기존 데이터 옮김(CMD-2)은, B2와 같은 기존 소프트웨어(Base SW)를 다른 메모리 영역으로 이동시킬 경우에 사용되며, 이때 상기 B2에 대한 기존의 시작 주소, 크기, 신규 주소를 각각 저장한다.
마지막으로, 상기 데이터 무결성 확인(CMD-3)은, 리프로그래밍 작업이 완료된 이후 마지막 엔코더 데이터(Encode Data)로 추가하여 리프로그래밍된 전체 플래시 메모리를 검사하여 상기 PC수단(100)에서 전송한 무결성 확인 코드와 동일한지를 확인한다.
도 2 및 도 5를 참조하여, 본 발명의 실시 예에 따른 상기 최적화 수행 알고리즘은 다음과 같다.
먼저, 기존 소프트웨어(Base SW) 중에 변경이 없는 영역(혹은 Update SW)은 엔코더 데이터를 삭제한다(도 3의 B3,B4 참조).
다음은, 상기 기존 소프트웨어(Base SW) 중에 메모리의 마지막 부분으로 옮겨지는 부분을 앞쪽에 순서대로 배치한다(도 3의 B2 참조).
마지막으로, 상기 배치는 가장 낮은 주소부터 추가되는 영역을 순서대로 정렬시킨다(도 3의 A 참조).
여기서, 기존의 델타 플래싱(Delta Flashing) 기술은 큰 메모리가 장착된 모바일 장치 등을 위해 개발되어 수신한 델타 파일을 기존 메모리에 저장된 내용과 결합하여 업데이트하고자 하는 소프트웨어(SW) 전체를 다시 생성한 후 플래싱을 진행하였다. 일반적으로 차량 ECU에서는 소프트웨어(SW)의 크기보다 RAM의 크기가 작기 때문에 이와 같은 방법은 적용이 불가능하다. 따라서 본 발명의 실시 예에서는 메모리 사용을 최소화할 수 있도록 생성된 델타 파일의 순서를 조정하여, ECU에서 전체 소프트웨어(SW)를 생성하지 않고도 리프로그래밍(Re-programming)을 수행 가능하도록 진행한다. 최적화되지 않은 델타 파일의 경우 ECU에서 A 블록을 수신한 후 A블럭을 플래싱하면, 향후에 B2를 수신한 경우 이미 플래시 메모리의 B2가 A로 변경되어 리프로그래밍이 불가능하다. 따라서 이와 같은 문제를 방지하기 위해 먼저 기존 소프트웨어(SW) 중 미사용 영역(혹은 파일의 끝)으로 이동되는 영역을 가장 먼저 처리한 후 리프로그래밍을 진행해야 한다.
도 2를 참조하여, 본 발명의 실시 예에 따른 상기 진단기(300)는, 상기 델타파일생성기(200)를 통해 생성된 델타파일을 ECU(400)로 안전하게 CAN통신을 수행하는 수단이다.
여기서, 상기 CAN(Controller Area Network) 통신이란 1988년 BOSCH 사와 INTEL 사에서 개발된 차량용 네트워크 시스템 CAN 통신은 마이크로컨트롤러간의 통신을 위하여 설계된 Serial Network 통신방식으로 여러 개의 CAN Device가 서로 통신할 수 있는 경제적이고 안정적인 Network을 제공한다. 하나의 CAN 인터페이스(Interface)로 여러 개의 ECU(Electronic Control Units)를 제어함으로서 자동차의 전체 비용과 중량을 줄일 수 있고 시스템 속도와 안전성을 향상시킬 수 있다. 또한 각 디바이스마다 CAN 컨트롤러 칩이 있으므로 효율적으로 각 시스템을 제어할 수 있다.
도 2를 참조하여, 본 발명의 실시 예에 따른 상기 ECU(400)는, 상기 진단기(300)와 CAN통신을 통해 차량의 ECU(Engine Control Unit) 소프트웨어를 업데이트하는 수단으로, 수신부(410)와 Delta File 해석부(420), 리프로그래밍 모듈(430) 및 플래시 메모리(440)를 각각 구비하여 상기 델타파일생성기(200)로부터 최적화된 델타 파일의 일부인 엔코더 데이터가 수신부(410)를 통해 수신되면 이를 델타파일해석부(420)에서 플래시메모리(440)에 내장된 기존의 소프트웨어(Base SW)와 비교ㆍ해석하여 리프로그래밍모듈(430)에 신규로 추가된 해당 소프트웨어 영역(혹은 업데이트 소프트웨어)을 리프로그래밍 하도록 명령한다. 이때 플래시 메모리(440)에는 기존의 소프트웨어(Base SW)가 저장되어 있기 때문에 상기 델타파일해석부(420)는 신규로 추가된 업데이트용 소프트웨어인지를 용이하게 해석이 가능하다.
이하, 본 발명의 바람직한 실시 예에 따른 차량 ECU 소프트웨어 업데이트 장치는 다음과 같은 작용 효과를 상세하게 설명한다.
먼저, 본 발명은 기존의 델타 플래싱 기술과 일부 동일한 구성 수단이 강구되어 있으나 델타파일생성기(200) 및 델타파일해석부(420), 리프로그래밍모듈(430)의 동작 기능이 전혀 다른 점에 그 특징이 있다.
즉, 먼저 상기 델타파일생성기(200)는 기존의 소프트웨어(SW)에서 다른 부분만을 추출하여 델타 파일을 생성하는 단계 이전에 새로운 소프트웨어(SW)가 ECU(400) 내에서 플래싱(Flashing) 되는 크기를 최소화하기 위해서는 먼저 패치 단계를 수행한다.다음은 엔코더 데이터를 활용한 델타 파일에서 각 영역별로 어플리케이션 명령을 수행하는 CMD(1) 내지 CMD(3) 정보를 저장하는 델타파일 생성 알고리즘을 수행한다. 또한 ECU(400) 내에 탑재되어야 하는 RAM 메모리를 최소화할 수 있도록 순서를 조정하는 최적화 알고리즘 단계를 수행한다. 그리고 ECU(400)에서는 상기 최적화된 델타 파일을 수신부(410)를 통해 수신한 상기 델타 파일의 일부(엔코드 데이터)를 수신하면 이를 바탕으로 델타파일해석부(420)에서 플래시 메모리(440)에 내장된 기존의 소프트웨어(Base SW)와 비교ㆍ해석하고 리프로그래밍모듈(430)에서 신규로 추가된 해당 소프트웨어 영역(A부분)을 리프로그래밍(Re=programming) 하도록 명령한다.
따라서 기존에는 전체 델타 파일을 생성하는 모듈이 ECU에 탑재되었다면, 발명의 바람직한 실시 예에서는 전체 파일 생성 없이 일부 영역 수신만으로 동작하여 RAM 메모리의 사용을 최소화하면서도 Flash Erase 및 Program에 걸리는 시간과 업데이트 시간을 크게 저감할 수 있는 특징이 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 개시된 실시 예는 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : PC수단 200 : 델타파일생성기
300 : 진단기 400 : ECU
410 : 수신부 420 : 델타파일해석부
430 : 리프로그래밍모듈 440 : 플래시메모리

Claims (4)

  1. 차량 ECU(Electronic Control Unit) 소프트웨어 업데이트 장치에 있어서,
    상기 차량 ECU 소프트웨어 업데이트에 따른 개발소프트웨어에 대해 프로그래밍을 수행하되, 기존 소프트웨어(Base SW)를 기반으로 하여 신규 업데이트된 소프트웨어(Update SW)를 개발하여 기존 소프트웨어 및 신규 업데이트된 소프트웨어의 실행 파일을 제공하는 PC수단(100)과;
    상기 PC수단으로부터 기존의 소프트웨어(Base SW)에서 다른 부분만을 추출하여 델타 파일을 생성하는 단계 이전에 새로운 소프트웨어(Update SW)가 ECU내에서 플래싱(Flashing) 되는 크기를 최소화하기 위한 패치 수행 알고리즘과 엔코더 데이터를 활용한 델타 파일에서 각 영역별로 어플리케이션 명령을 수행하는 정보를 저장하는 델타파일 생성 알고리즘 및 ECU 내에 탑재되어야 하는 RAM 메모리를 최소화할 수 있도록 순서를 조정하는 최적화 수행 알고리즘을 통해 델타파일(Delta File)을 생성하는 델타파일생성기(200)와;
    상기 델타파일생성기를 통해 생성된 델타파일을 ECU로 안전하게 CAN통신을 수행하는 진단기(300)와;
    상기 진단기와 CAN통신을 통해 차량의 ECU 소프트웨어를 업데이트하며, 상기 델타파일생성기로부터 최적화된 델타 파일의 일부인 엔코더 데이터가 수신부(410)를 통해 수신되면 이를 델타파일해석부(420)에서 플래시메모리(440)에 내장된 기존의 소프트웨어(Base SW)와 비교ㆍ해석하여 리프로그래밍모듈(430)에서 신규로 추가된 해당 소프트웨어 영역을 리프로그래밍(Re-programming) 하도록 명령하는 ECU(400)가 구성되는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치.
  2. 제1 항에 있어서,
    상기 패치 수행 알고리즘은, 기존 소프트웨어(Base SW) 대비 신규로 추가된 소프트웨어(Update SW)의 변경된 소프트웨어 영역을 분석하여 패치 작업에 필요한 영역을 확인하고,
    상기 확인 후, 신규로 추가된 영역이 할당 가능하도록 기존 소프트웨어 영역의 일부 마지막으로 이동하며,
    상기 신규로 추가된 소프트웨어는 별도의 주소 변경 없이 저장하되, 상기 일부 마지막으로 이동된 기존의 소프트웨어보다 신규로 추가되는 소프트웨어의 크기가 작다면 Dummy를 추가 및,
    상기 일부 마지막으로 이동된 영역에 포함된 소프트웨어의 함수는 할당 주소가 변경될 경우 기존 소프트웨어에서 호출하는 부분을 찾아서 주소를 변경해주는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치.
  3. 제1 항에 있어서,
    상기 델타파일 생성 알고리즘은, 엔코더 데이터(Encoder Data)를 활용하며, 상기 엔코드 데이터는 델타 파일에서 각 영역별로 어떠한 명령을 수행해야 하는지에 대한 신규 데이터 쓰기(CMD-1)와 기존 데이터 옮김(CMD-2) 및 데이터 무결성 확인(CMD-3) 정보를 각각 저장하되,
    상기 신규 데이터 쓰기(CMD-1)는, 플래시할 시작 주소와 크기를 전송한 이후 새로 추가될 데이터는 통신으로 전송되고,
    상기 기존 데이터 옮김(CMD-2)은, 기존 소프트웨어(Base SW)를 다른 메모리 영역으로 이동시킬 경우에 사용되며, 이동된 기존 소프트웨어는 시작 주소, 크기, 신규 주소를 각각 저장하며,
    상기 데이터 무결성 확인(CMD-3)은, 리프로그래밍 작업이 완료된 이후 마지막 엔코더 데이터로 추가하여 리프로그래밍된 전체 플래시 메모리를 검사하여 상기 PC수단(100)에서 전송한 무결성 확인 코드와 동일한지를 확인하는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치.
  4. 제1 항에 있어서,
    상기 최적화 수행 알고리즘은, 기존 소프트웨어(Base SW) 중에 변경이 없는 영역은 엔코더 데이터를 삭제하고,
    상기 기존 소프트웨어(Base SW) 중에 메모리의 마지막 부분으로 옮겨지는 부분을 앞쪽에 순서대로 배치하며,
    상기 배치는 가장 낮은 주소부터 추가되는 영역을 순서대로 정렬시키는 것을 특징으로 하는 차량 ECU 소프트웨어 업데이트 장치.
KR1020190124868A 2019-10-08 2019-10-08 차량 ecu 소프트웨어 업데이트 장치 KR20210041972A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190124868A KR20210041972A (ko) 2019-10-08 2019-10-08 차량 ecu 소프트웨어 업데이트 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190124868A KR20210041972A (ko) 2019-10-08 2019-10-08 차량 ecu 소프트웨어 업데이트 장치

Publications (1)

Publication Number Publication Date
KR20210041972A true KR20210041972A (ko) 2021-04-16

Family

ID=75743868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190124868A KR20210041972A (ko) 2019-10-08 2019-10-08 차량 ecu 소프트웨어 업데이트 장치

Country Status (1)

Country Link
KR (1) KR20210041972A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347248A (zh) * 2021-05-31 2021-09-03 重庆长安汽车股份有限公司 一种基于诊断仪升级整车控制器的方法及系统
CN113419748A (zh) * 2021-07-06 2021-09-21 柏科(常熟)电机有限公司 一种ecu原车数据的查找与清除方法、存储介质
CN114780171A (zh) * 2022-04-14 2022-07-22 重庆长安汽车股份有限公司 一种在研、产、销全链路支持车载功能动态配置的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347248A (zh) * 2021-05-31 2021-09-03 重庆长安汽车股份有限公司 一种基于诊断仪升级整车控制器的方法及系统
CN113419748A (zh) * 2021-07-06 2021-09-21 柏科(常熟)电机有限公司 一种ecu原车数据的查找与清除方法、存储介质
CN113419748B (zh) * 2021-07-06 2024-03-15 柏科(常熟)电机有限公司 一种ecu原车数据的查找与清除方法、存储介质
CN114780171A (zh) * 2022-04-14 2022-07-22 重庆长安汽车股份有限公司 一种在研、产、销全链路支持车载功能动态配置的方法

Similar Documents

Publication Publication Date Title
KR101088192B1 (ko) 플래시 메모리 프로그래밍을 위한 시스템 및 방법
CN110231952B (zh) 一种ecu程序备份及循环升级控制方法及装置
US10409587B2 (en) Method for programming vehicle electronic control modules
KR20210041972A (ko) 차량 ecu 소프트웨어 업데이트 장치
CN111309364B (zh) 芯片程序的升级方法、装置及存储介质
US20030028772A1 (en) Method for generating a read only memory image
CN110825403A (zh) 一种汽车电子控制单元ecu刷写的方法及系统
CN112424747A (zh) 具有反向数据的增量文件
US20090172338A1 (en) Feedback linker for increased delta performance
WO2019123747A1 (ja) 自動車用電子制御装置及びその制御方法
US9367482B2 (en) Systems and methods to extend ROM functionality
CN104239109A (zh) 嵌入式系统固件在线管理方法
CN110489167B (zh) 双内核码流下载方法、装置、计算机设备及存储介质
WO2019085365A1 (zh) 一种基于特征值查表法的增量升级方法
CN113157329A (zh) 启动应用的方法、系统、服务器和存储介质
CN112860287A (zh) 系统程序升级方法、装置、计算机设备及存储介质
CN113448596A (zh) 一种车辆控制器刷写系统、方法及相关设备
CN103984566B (zh) 一种在轨细粒度的功能函数增加方法
CN113553085B (zh) 嵌入式操作系统在线升级的方法、装置、设备和存储介质
CN113434163B (zh) 适用于电子控制单元的在线标定方法、系统、设备及介质
KR20040110648A (ko) 무선통신단말기의 소프트웨어 부분 업그레이드 방법
JP2007199985A (ja) 不揮発性メモリの書き換え装置及び書き換え方法
CN116166304A (zh) 一种基于分散加载的mcu固件高效增量升级方法
Tan et al. Design and Implementation of Bootloader for Vehicle Control Unit Based on Can Bus
CN117931203A (en) Method and device for calibrating internal variables of application module and computer readable storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application