KR101917378B1 - 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법 - Google Patents

리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법 Download PDF

Info

Publication number
KR101917378B1
KR101917378B1 KR1020160130630A KR20160130630A KR101917378B1 KR 101917378 B1 KR101917378 B1 KR 101917378B1 KR 1020160130630 A KR1020160130630 A KR 1020160130630A KR 20160130630 A KR20160130630 A KR 20160130630A KR 101917378 B1 KR101917378 B1 KR 101917378B1
Authority
KR
South Korea
Prior art keywords
program
control unit
compressed
memory
reprogramming
Prior art date
Application number
KR1020160130630A
Other languages
English (en)
Other versions
KR20180039387A (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 KR1020160130630A priority Critical patent/KR101917378B1/ko
Publication of KR20180039387A publication Critical patent/KR20180039387A/ko
Application granted granted Critical
Publication of KR101917378B1 publication Critical patent/KR101917378B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

본 발명의 일 실시예에 따른 리프로그래밍 장치는 전자제어유닛의 리프로그램을 위한 프로그램을 저장하는 메모리; 상기 프로그램의 압축 여부를 선택하는 압축명령이 입력되는 입력부; 상기 프로그램을 미리 정해진 통신 프로토콜에 따라 전송하는 통신모듈; 및 상기 입력부를 통해 압축 명령이 입력되는 경우, 상기 프로그램을 압축하여 상기 통신모듈을 통해 전자제어유닛으로 전송하도록 제어하는 제어부;를 포함하고, 상기 제어부는 상기 프로그램의 압축 정보를 포함하는 압축정보 파라미터를 함께 전송하도록 제어할 수 있다.

Description

리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법{REPROGRAMMING APPARATUS, ELECTRONIC CONTROL UNIT, AND REPROGRAMMING METHOD USING THEREOF}
본 리프로그래밍 장치 및 방법에 관한 것으로, 보다 상세하게는 데이터를 압축하여 전송하는 리프로그래밍 장치 및 방법에 관한 것이다.
일반적으로 차량의 전자제어유닛(Electric Control Unit: ECU)은 차량 출고시 설정된 알고리즘에 의하여 차량을 제어하면서 각 구동부를 제어하게 된다. 이러한 전자제어유닛은 차량 제어에 필요한 각종 소프트웨어를 포함한 각종 데이터를 저장하는 메모리를 포함한다.
그러나 차량의 고장이나 혹은 이상으로 인하여 전자제어장치의 데이터 에러가 발생하였을 경우에는 상기 메모리에 상기 전자제어장치의 데이터를 새로 업데이트해야 하며 이를 리프로그램이라고 한다.
이와 관련하여, 대부분의 전자제어장치의 리프로그래밍(Re-Programming) 방식은 마이크로프로세서(MicroProcessor)에서 지원하는 프로그램 모드를 사용하거나 전자제어장치에 기 탑재된 리프로그램 기능(Reprogram function)을 외부 장비와 커뮤니케이션 라인을 통해 연동함으로써, 기존 데이터를 지우고 새로운 데이터를 다시 넣도록 하는 방식을 사용하고 있다.
이러한 리프로그래밍 작업은 CAN(Controller Area Network) 통신 방식을 이용하여 리프로그래밍 데이터를 송수신하는 것이 일반적이다. CPU 플래시 메모리가 증가함에 따라 리프로그래밍 데이터는 크기가 나날이 증가하고 있으며, CAN 통신 최대 속도인 1Mbps를 이용한다 하여도 대용량의 리프로그래밍 데이터를 빠르게 전송하는 데에는 무리가 있다. 또한, 크기가 큰 리프로그래밍 데이터를 전송함에 따라 리프로그래밍 소요 시간이 증가하고 있으며 데이터 전송 과정에서 에러(Error) 프레임도 빈번하게 발생하고 있다.
이때 외부 장비와 리프로그램을 위한 데이터를 수신하는 경우 일반적으로 CAN 통신을 이용하여 외부장비로부터 데이터를 수신하기 때문에 수신되는 데이터의 양이 많은 경우에는 리프로그램에 많은 시간이 소요되는 문제점이 있다.
본 발명이 해결하고자 하는 과제는 전자제어유닛의 리프로그래밍시에 데이터를 압축하여 전송함으로써 리프로그램 시간을 단축할 수 있는 장치 및 방법을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 데이터를 압축하여 전송하는 경우 압축 여부에 대한 정보를 송신하는 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 리프로그래밍 장치는 전자제어유닛의 리프로그램을 위한 프로그램을 저장하는 메모리; 상기 프로그램의 압축 여부를 선택하는 압축명령이 입력되는 입력부; 상기 프로그램을 미리 정해진 통신 프로토콜에 따라 전송하는 통신모듈; 및 상기 입력부를 통해 압축 명령이 입력되는 경우, 상기 프로그램을 압축하여 상기 통신모듈을 통해 전자제어유닛으로 전송하도록 제어하는 제어부;를 포함하고, 상기 제어부는 상기 프로그램의 압축 정보를 포함하는 압축정보 파라미터를 함께 전송하도록 제어할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 장치에서, 상기 압축 정보 파라미터는 상기 통신 프로토콜에 포함될 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 장치에서, 상기 통신 프로토콜은 KWP2000 또는 UDS 통신 프로토콜을 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 장치에서, 상기 제어부는 압축된 데이터를 헥사 포맷으로 변환 후 전송할 수 있다.
또한, 본 발명의 일 실시예에 따른 전자제어유닛은 차량 제어에 필요한 프로그램 및 상기 프로그램의 압축 여부에 대한 정보를 포함하는 압축 정보 파라미터를 미리 정해진 통신 프로토콜에 따라 수신하는 통신모듈; 상기 통신모듈로부터 프로그램을 입력받아 임시로 저장하는 제1메모리; 상기 제1 메모리에 저장된 데이터를 수신하여 저장하는 제2 메모리; 상기 압축 정보 파라미터를 확인하여 상기 프로그램이 압축된 경우, 상기 프로그램을 상기 제1 메모리에 압축해제하고, 압축해제된 프로그램을 상기 제2 메모리에 저장하도록 제어하는 제어부;를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 전자제어유닛 장치에서, 상기 제어부는 상기 제1 메모리에 수신되는 데이터가 미리 정해진 크기가 되면 압축해제하도록 제어할 수 있다.
또한, 본 발명의 일 실시예에 따른 전자제어유닛 장치에서, 상기 압축 정보 파라미터는 상기 통신 프로토콜의 전송 정보를 전달하는 프레임에 포함될 수 있다.
또한, 본 발명의 일 실시예에 따른 전자제어유닛 장치에서, 상기 통신 프로토콜은 압축 정보 파라미터를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 장치에서 전자제어유닛으로 전송하여 전자제어유닛을 리프로그램하는 전자제어유닛 리프로그래밍 방법은 상기 리프로그래밍 장치에서, 압축 명령이 입력되는 경우, 메모리에 저장되어 있는 헥사 포맷의 프로그램을 바이너리 포맷으로 변환하는 단계; 상기 리프로그래밍 장치에서, 상기 바이너리 포맷을 압축하는 단계; 상기 리프로그래밍 장치에서, 상기 압축 포맷을 헥사 포맷으로 변환하는 단계; 상기 리프로그래밍 장치에서, 상기 바이너리 포맷을 헥사 포맷으로 변환하는 단계; 상기 리프로그래밍 장치에서, 상기 변환된 프로그램을 전송하되, 압축 여부에 대한 정보를 포함하는 압축 정보 파라미터를 미리 정해진 통신 프로토콜에 따라 전송하는 단계; 상기 전자제어유닛에서, 상기 프로그램 및 압축 정보 파라미터를 수신하는 단계; 및 상기 전자제어유닛에서, 상기 압축 정보 파라미터를 확인하여 상기 프로그램이 압축된 경우, 상기 프로그램을 제1 메모리에 압축해제하고, 제1 메모리에 압축 해제된 데이터를 제2 메모리에 기록하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 방법에서, 상기 제2 메모리에 기록하는 단계는 상기 수신되는 데이터가 미리 정해진 크기가 되면 압축해제할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 방법에서, 상기 통신 프로토콜은 압축 정보 파라미터를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 리프로그래밍 방법에서, 상기 통신 프로토콜은 KWP2000 또는 UDS 통신 프로토콜을 포함할 수 있다.
본 발명의 실시예에 따르면, 프로그램을 압축하여 전송함으로써 데이터를 빨리 전송할 수 있고, 그 결과 전자제어유닛의 리프로그램 시간을 단축할 수 있다.
또한, 본 발명의 실시예에 따르면, 프로그램 전송시 프로그램의 압축 여부를 포함하는 정보를 함께 전송함으로써, 전자제어유닛에서는 압축된 데이터를 수신하거나 압축되지 않은 데이터를 수신하거나에 관계없이 리프로그래밍 작업을 수행할 수 있다.
또한, 본 발명의 실시예에 따르면, 통신 프로토콜의 전송 정보를 전달하는 프레임에 압축 정보를 전송함으로써, 1회의 압축 정보 전송만으로도 압축 정보를 효율적으로 전송할 수 있다.
도 1은 본 발명의 일 실시예에 따른 리프로그래밍 시스템을 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 리프로그래밍 장치의 블록도를 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 전자제어유닛의 블록도를 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 전자제어유닛의 리프로그래밍 방법을 나타낸 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예를 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 ‘및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다'또는 '포함하는'으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
또한, '제1, 제2' 등과 같은 표현은, 복수의 구성들을 구분하기 위한 용도로만 사용된 표현으로써, 구성들 사이의 순서나 기타 특징들을 한정하지 않는다.
실시예들의 설명에 있어서, 각 층(막), 영역, 패턴 또는 구조물들이 기판, 각 층(막), 영역, 패드 또는 패턴들의 "상/위(on)"에 또는 "하/아래(under)"에 형성된다는 기재는, 직접(directly) 또는 다른 층을 개재하여 형성되는 것을 모두 포함한다. 각 층의 상/위 또는 하/아래에 대한 기준은 도면을 기준으로 설명한다.
이하, 첨부된 도면을 참조하여 본 발명의 리프로그래밍 장치 및 방법을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 리프로그래밍 장치와 전자제어유닛(Electronic Control Unit, ECU)로 구성된 리프로그래밍 시스템을 나타낸 블록도이다.
도 1을 참조하면, 상기 리프로그래밍 장치(10)는 CAN(Controller Area Network) 및 CAN FD(Controller Area Network with Flexible Data rate) 통신 방식을 지원하는 일종의 리프로그래밍 툴(Tool)로써, 코딩된 프로그램을 압축하여 통신모듈을 통해 전자제어유닛(20)으로 전송한다.
상기 전자제어유닛(20)에는 ECU 맵 데이터가 저장되어 있으며, 전자제어유닛(20)은 통신모듈을 통해 리프로그래밍 장치(10)와 연결될 수 있다. 전자제어유닛(20)은 ECU 맵데이터가 저장된 일종의 제어 장치이기 때문에, 리프로그래밍 장치(10)와 직접적으로 연결될 수 없다. 따라서 통신모듈을 통해 연결될 수 있으며, 통신모듈은 리프로그래밍 장치(10)와 전자제어유닛(20) 사이의 인터페이스 역할을 수행한다. 한편, 전자제어유닛은 리프로그래밍 장치(10)와 같이 CAN FD 통신 방식을 지원할 수 있으나, CAN 통신 방식만을 지원할 수도 있다. 상기 통신모듈은 트랜시버일 수 있다.
도 2는 리프로그래밍 장치(10)의 구성을 나타낸 블럭도이다.
도 2를 참조하면, 리프로그래밍 장치(10)는 메모리(11), 입력부(12), 통신모듈(13), 및 제어부(14)를 포함할 수 있다.
상기 메모리(11)는 전자제어유닛(20)을 리프로그램하기 위한 소프트웨어와 같은 프로그램을 저장한다. 상기 프로그램은 전자제어유닛(20)이 자동차를 제어하는데 사용되는 프로그램일 수 있다.
상기 메모리(11)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
상기 입력부(12)는 사용자 인터페이스로 사용자가 필요한 정보를 입력하는 장치로서, 사용자는 입력부(12)를 통해 프로그램 압축 명령 및 전송 명령을 입력할 수 있다.
상기 통신모듈(13)은 상기 메모리에 저장되어 있는 프로그램을 CAN 통신 방식을 이용해 전자제어유닛으로 전송한다. 이때 압축 정보 파라미터를 포함하는 통신 프로토콜을 이용하여 전송할 수 있다. 그리고 상기 압축 정보 파라미터를 포함하는 통신 프로토콜은 KWP2000 또는 UDS 통신 프로토콜일 수 있다.
상기 제어부(14)는 리프로그래밍 장치(10) 전체를 제어하는 부분으로, 메모리(11)에 저장되어 있는 데이터 즉, 프로그램을 압축하고 압축된 데이터가 상기 통신모듈(13)을 통해 전송되도록 제어한다.
상기 메모리(11)에는 헥사(hex) 포맷의 데이터가 저장되어 있는데, LZMA(Lemple-Ziv-Markovchain algorithm) 방식을 사용하여 압축한다. 압축하게 되면 헥사 포멧의 데이터는 바이너리 포맷으로 변환된다. 바이너리 포맷의 파일은 전자제어유닛에서 지원되지 않으므로 전송시에는 다시 바이너리 포맷을 헥사 포맷으로 변환하여 전송한다. 이때 변환된 파일은 헥사 포맷으로 파일 형식만 변환되었고 압축 해제된 것은 아니므로 여전히 압축 파일이다.
또한, 상기 제어부(14)는 압축 파일을 통신모듈(13)을 통해 전자제어유닛으로 전송하는데, 압축 여부를 나타내는 정보를 함께 전송할 수 있다. 압축 여부를 나타내는 정보는 통신 프로토콜에 포함된 압축 정보 파라미터일 수 있다. 즉, 상기 압축 정보 파라미터는 압축 여부에 대한 정보를 담고 있는 구분자로서의 기능을 수행한다. 그리고 압축 정보 파라미터는 통신 프로토콜의 전송 정보를 전달하는 프레임에 포함될 수 있다. 압축 정보는 데이터 전송 시작부에 1회만 전송할 수 있다.
앞서 살펴본 KWP 2000 이나 UDS와 같은 통신 프로토콜은 전송되는 데이터의 압축 정보를 전달하는 프레임을 포함하고 있다. 예를 들어 KWP2000 통신 프로토콜은 다섯 번째 바이트(byte)에 압축 정보를 전달하는 프레임이 정의되어 있다. 압축 정보 파라미터의 헥사 값이 '0x00'인 경우에는 비압축(uncompressed) 상태를 의미하고, 압축 정보 파라미터의 헥사 값이 '0x10'인 경우에는 압축(compressed) 상태를 의미한다.
압축 정보 파라미터를 리프로그램 데이터와 함께 전송하기 때문에 압축 정보를 1회만 전송하여도 수신단에서는 압축 정보를 확인하여 압축 여부에 따라 리프로그래밍 작업을 수행할 수 있다.
이때 CAN 통신 방식은 전송 속도가 결정되어 있으므로, 제어부(14)는 압축 파일을 한 번에 전송하지 않고 CAN 전송 방식에 따라 분할하여 전송한다. 일반적으로 CAN 통신 방식은 한번에 256바이트(byte)씩만 전송이 가능하므로 압축된 파일 역시 256 바이트씩 분할하여 전송한다.
도 3은 전자제어유닛(20)의 구성을 나타낸 블럭도이다.
도 3을 참조하면, 전자제어유닛(20)은 통신모듈(21), 제1 메모리(22), 제2 메모리(23) 및 제어부(24)를 포함할 수 있다.
상기 통신모듈(21)은 리프로그래밍 장치(10)에서 전송되는 데이터를 수신하기 위한 것으로, CAN 통신 방식을 지원한다.
상기 제1 메모리(22)는 통신모듈을 통해 수신된 데이터를 일시적으로 저장하며 RAM(Random Access Memory)과 같은 휘발성 메모리일 수 있다. 즉, 상기 통신모듈(21)을 통해 수신된 데이터는 제1 메모리에 압축 해제되어 일시적으로 저장된다.
또한, 상기 제1 메모리(22)는 CAN으로부터 데이터를 수신하는 CAN 버퍼 영역, 수신된 데이터가 압축 해제되는 압축 해제 버퍼 영역, 및 상기 압축 해제된 데이터가 제2 메모리(23)에 기록되도록 하는 제어 영역으로 구분될 수 있다.
상기 제2 메모리(23)는 제1 메모리에 일시적으로 저장되어 있는 데이터를 최종적으로 저장한다.
상기 제어부(24)는 전자제어유닛의 전체 동작을 제어하는 부분으로써, 수신되는 데이터가 압축되었는지 여부를 확인하고 압축된 경우 수신된 데이터가 상기 제1 메모리(22)에 압축 해제되도록 제어하고, 압축 해제된 데이터가 제2 메모리(23)에 기록되도록 제어한다.
구체적으로 살펴보면, 상기 제어부(24)는 리프로그램 데이터가 통신모듈을 통해 수신되면, 수신된 데이터에 포함된 압축 정보 파라미터를 확인하여 수신된 데이터가 압축된 데이터인지 압축되지 않은 데이터인지를 확인한다. 통신 프로토콜의 압축 정보를 포함하는 프레임을 확인하여 확인할 수 있다. 예를 들어, KWP2000 통신 프로토콜을 사용하는 경우 다섯 번째 바이트를 확인하여 헥사 값이 '0x10'이면 압축 데이터가 수신된 것으로 판단하고 헥사 값이 '0x00'이면 압축되지 않은 데이터가 수신된 것으로 판단한다.
또한, 상기 제어부(24)는 상기 제1 메모리(22)의 CAN 버퍼 영역에 수신되는 데이터가 소정 크기가 되면 이를 압축 해제하도록 제어한다. CAN 통신에서는 256 바이트씩 전송되므로 수신되는 데이터가 256 바이트가 되면 압축 해제하도록 제어할 수 있다. 압축 해제된 데이터는 제1 메모리(22)의 압축 해제 버퍼 영역에 해제되어 일시적으로 저장된다. 제어부(24)는 압축 해제된 데이터가 제2 메모리(23)에 기록되도록 제어한다. 상기와 같은 제어부(24)의 동작에 의해, 리프로그래밍 장치에서 압축 전송된 데이터가 전자제어유닛(20)의 제2메모리(23)에 복사되어 저장될 수 있다.
상기 제어부(24)는 일반적으로 부트 소프트웨어라는 프로그램에 의해 제어 동작이 수행될 수 있다. 부트 소프트웨어는 제2 메모리(24)에 저장되어 있다가 리프로그램 수행시 제1 메모리로 호출되어 동작을 수행할 수 있다.
도 4는 본 발명의 일실시예에 따른 리프로그램 데이터 전송 방법을 나타낸 것이다.
도 4를 참조하면, 리프로그램 장치의 제어부는 압축명령이 입력되는지 여부를 확인하고(S41), 압축 명령이 입력되는 경우에는 메모리에 저장되어 있는 헥사 포맷의 프로그램을 바이너리 포맷으로 변환한다(S42). 변환된 바이너리 포맷의 데이터를 압축한 후(S43) 이를 다시 헥사 포맷으로 변환한다(S44).
그리고 리프로그램 장치의 제어부는 상기 변환된 데이터를 CAN 통신을 통해 전자제어유닛으로 전송한다(S45). 이때 압축 정보 파라미터를 포함하는 통신 프로토콜을 사용하여 전송할 수 있다. 압축 데이터를 전송할 때에는 상기 압축 정보 파라미터는 '0x10'값으로 전송되고, 압축되지 않은 데이터를 전송할 때에는 상기 압축 정보 파라미터는 '0x00'값으로 전송될 수 있다. 상기 압축 정보 파라미터는 데이터 전송 시작시에 1회만 전송된다.
만약 압축 명령이 입력되지 않는 경우에는 단계 S42 내지 단계 S44를 거치지 않고 메모리에 저장되어 있는 데이터를 플래그 신호와 함께 전송한다(S45).
전자제어유닛(ECU)은 리프로그램 데이터 및 압축 정보를 수신한다(S46). 수신된 데이터에서 압축 정보를 확인하여 리프로그램 데이터가 압축된 데이터인지 압축되지 않은 데이터인지를 확인하고(S47) 압축된 데이터인 경우에는 압축 데이터를 압축 해제한다(S48). 압축 데이터인지 여부는 통신 프로토콜에 포함되어 있는 압축 정보 파라미터를 확인하여 압축 여부를 확인할 수 있다. 상기 파라미터가 '0x10'인 경우에는 압축 데이터로 판단하고, 상기 파라미터가 '0x00'인 경우에는 압축되지 않은 데이터로 판단할 수 있다.
압축해제시에는 미리 결정된 크기의 데이터가 수신될 때까지 대기 후 압축을 해제한다. 예를 들어 256 바이트가 수신되면 압축을 해제할 수 있다. 이때 상기 데이터는 전자제어유닛의 제1 메모리에 압축해제 되어 임시로 저장된다.
마지막으로 전자제어유닛의 제어부는 압축 해제되어 제1 메모리에 임시로 저장되어 있는 데이터를 제2 메모리에 기록한다(S49).
만약, 압축되지 않은 데이터가 수신되는 경우에는 제1 메모리에 256 바이트가 수신되면 압축 해제 단계(S48)를 생략하고 제2 메모리에 기록한다(S49).
이상에서 살펴본 바와 같이, 본 발명에 의하면 리프로그래밍 데이터를 압축하여 전송함으로써 리프로그래밍 시간을 단축할 수 있고, 데이터 전송시 압축 정보를 함께 전송함으로써 이를 수신하는 전자제어유닛에서 압축을 해제하여 리프로그래밍 할 수 있다.
도 5는 본 발명의 실시예에 따른 리프로그램 방법에서, 리프로그램 절차 및 관련 프로그램을 개념적으로 나타낸 것이다.
도 5를 참조하면, 압축되기 전의 소스 파일(S51)은 압축 프로그램(52)을 통해 압축되어 압축 파일이 생성된다(S53). 이때 소스 파일은 HEX 및 A2L 파일일 수 있다. A2L 파일은 자동차 ECU 소프트웨어 분야에 널리 사용되는 파일로 HEX값의 변수 및 데이터 정보를 포함한다.
상기 압축 프로그램인 INCA 프로그램 및 WinproF 프로그램을 포함할 수 있다. INCA 프로그램은 소스 파일이 입력되면, WinproF 프로그램에서 옵션을 선택하여 압축파일을 생성할 수 있다. WinproF 프로그램은 INCA 프로그램 내에서 리프로그램을 위해 구동되는 프로그램이다.
상기 압축 파일은 앞서 살펴본 바와 같이 LZMA(Lemple-Ziv-Markovchain Algorithm) 형식의 파일일 수 있다.
상기 압축 파일은 CAN 통신을 통해 256 바이트씩 ECU로 전송된다(S54).
ECU 내의 제어부는 전송받은 파일을 램에 저장하고(S55), 설정된 수신 버퍼 크기만큼의 데이터가 전송완료되면 압축을 해제하여 롬에 저장한다(S56). 이때 설정된 수신 버퍼의 크기는 램에 맞게 설정 가능하고 설정한 램의 크기가 HEX의 크기보다 작으면 여러 번 전송하여 개별로 압축 해제를 실시한다.
이러한 프로세스에 의해 롬에 모든 데이터가 저장된 후에는 전송받은 데이터의 이상 유무를 체크하기 위해 롬에 저장된 데이터의 이상 여부를 확인한다(S57). 확인 방법은 checksum 방식으로 확인할 수 있다.
도 6은 압축 리프로그램 소프트웨어 구현 방법을 보다 자세히 나타낸 것이다.
도 6을 참조하면, HEX 파일 및 A2L 형태의 소스 파일(S61)은 LZMA 형식으로 압축 되어 바이너리 포맷의 LZMA 파일이 생성된다(S62).
바이너리 포맷의 LZMA 파일은 압축 프로그램에 의해 HEX 포맷의 LZMA 파일로 변환되고(S63), 변환된 파일은 WinproF와 같은 압축 프로그램에 의해 전송된다. 전송시에는 CAN 통신이 사용될 수 있다. 이때 압축과 비압축 데이터를 구별하기 위해 데이터 전송 시작 전 압축 여부를 구별할 수 있는 구분자(0x10 : 압축, 0x00 : 비압축)를 1회 송신한다. 이 구분자는 WinproF 메뉴에 의해 결정되어 전송된다.
전자제어유닛으로 전송된 데이터는 전자제어유닛의 램에 일시적으로 저장된 후 롬에 최종 저장된다. 상기 램은 입력 버퍼, 압축해제 버퍼, 및 플래시 제어부를 포함할 수 있다. 그리고 이들의 동작을 제어하는 부트 소프트웨어를 저장할 수 있다.
상기 부트 소프트웨어는 입력버퍼로 256 바이트가 수신되면 압축 해제하고(S64) 압축 해제 버퍼에 저장한다(S65). 그리고 플래시 제어부는 256 바이트 단위로 플래싱(flashing)하여 압축 해제된 파일을 롬에 저장한다(S66). 플래싱은 플래시 메모리에 기록하는 것을 의미한다.
전체 데이터 수신 완료시에는 checksum 방식으로 이상 여부를 확인하여 리프로그램을 완료하게 된다.
상기와 같은 절차에 의해 압축 정보를 압축파일 전송시 압축 관련 정보를 1회만 송신하여 효율적으로 리프로그램을 수행할 수 있다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
10 :리프로그래밍 장치
11 : 메모리
12 :입력부
13 :통신모듈
14 :제어부
20 : ECU
21 : 통신모듈
22 : 제1 메모리
23 : 제2 메모리
24 :제어부

Claims (12)

  1. 전자제어유닛의 리프로그램을 위한 프로그램을 저장하는 메모리;
    상기 프로그램의 압축 여부를 선택하는 압축명령이 입력되는 입력부;
    상기 프로그램을 미리 정해진 통신 프로토콜에 따라 전송하는 통신모듈; 및
    상기 입력부를 통해 압축 명령이 입력되는 경우, 상기 프로그램을 압축하여 상기 통신모듈을 통해 전자제어유닛으로 전송하도록 제어하는 제어부;를 포함하고,
    상기 제어부는 상기 프로그램의 압축 정보를 포함하는 압축정보 파라미터를 함께 전송하도록 제어하는 리프로그래밍 장치에 있어서,
    상기 제어부는 압축된 프로그램을 헥사 포맷으로 변환 후 전송하는 리프로그래밍 장치.
  2. 제1항에 있어서,
    상기 압축정보 파라미터는 상기 통신 프로토콜에 포함되어 있는 리프로그래밍 장치.
  3. 제1항에 있어서,
    상기 통신 프로토콜은 KWP2000 또는 UDS 통신 프로토콜을 포함하는 리프로그래밍 장치.
  4. 삭제
  5. 차량 제어에 필요한 프로그램 및 상기 프로그램의 압축 여부에 대한 정보를 포함하는 압축 정보 파라미터를 미리 정해진 통신 프로토콜에 따라 수신하는 통신모듈;
    상기 통신모듈로부터 프로그램을 입력받아 임시로 저장하는 제1메모리;
    상기 제1 메모리에 저장된 프로그램을 수신하여 저장하는 제2 메모리; 및
    상기 압축 정보 파라미터를 확인하여 상기 프로그램이 압축된 경우, 상기 프로그램을 상기 제1 메모리에 압축해제하고, 압축해제된 프로그램을 상기 제2 메모리에 저장하도록 제어하는 제어부;를 포함하는 전자제어유닛.
  6. 제5항에 있어서,
    상기 제어부는 상기 제1 메모리에 수신되는 프로그램이 미리 정해진 크기가 되면 압축해제하도록 제어하는 전자제어유닛.
  7. 제5항에 있어서,
    상기 압축 정보 파라미터는 상기 통신 프로토콜의 전송 정보를 전달하는 프레임에 포함되어 있는 전자제어유닛.
  8. 제5항에 있어서,
    상기 압축 정보 파라미터는 상기 통신 프로토콜에 포함되어 있는 전자제어유닛.
  9. 리프로그래밍 장치에서 전자제어유닛으로 전송하여 전자제어유닛을 리프로그램하는 전자제어유닛 리프로그래밍 방법에 있어서,
    상기 리프로그래밍 장치에서, 압축 명령이 입력되는 경우, 메모리에 저장되어 있는 헥사 포맷의 프로그램을 바이너리 포맷의 프로그램으로 변환하는 단계;
    상기 리프로그래밍 장치에서, 상기 변환한 바이너리 포맷의 프로그램을 압축하는 단계;
    상기 리프로그래밍 장치에서, 상기 압축한 바이너리 포맷의 프로그램을 헥사 포맷의 프로그램으로 변환하는 단계;
    상기 리프로그래밍 장치에서, 상기 변환한 헥사 포맷의 프로그램을 전송하되, 압축 여부에 대한 정보를 포함하는 압축 정보 파라미터를 미리 정해진 통신 프로토콜에 따라 전송하는 단계;
    상기 전자제어유닛에서, 상기 변환한 헥사 포맷의 프로그램 및 압축 정보 파라미터를 수신하는 단계; 및
    상기 전자제어유닛에서, 상기 압축 정보 파라미터를 확인하여 상기 변환한 헥사 포맷의 프로그램이 압축된 경우, 상기 압축한 헥사 포맷의 프로그램을 제1 메모리에 압축해제하고, 제1 메모리에 압축 해제된 헥사 포맷의 프로그램을 제2 메모리에 기록하는 단계;를 포함하는 전자제어유닛 리프로그래밍 방법.
  10. 제9항에 있어서, 상기 메모리에 기록하는 단계는
    상기 수신되는 프로그램이 미리 정해진 크기가 되면 압축해제하는 전자제어유닛 리프로그래밍 방법.
  11. 제9항에 있어서,
    상기 통신 프로토콜은 압축 정보 파라미터를 포함하는 전자제어유닛 리프로그래밍 방법.
  12. 제9항에 있어서,
    상기 통신 프로토콜은 KWP2000 또는 UDS 통신 프로토콜을 포함하는 전자제어유닛 리프로그래밍 방법.
KR1020160130630A 2016-10-10 2016-10-10 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법 KR101917378B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160130630A KR101917378B1 (ko) 2016-10-10 2016-10-10 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160130630A KR101917378B1 (ko) 2016-10-10 2016-10-10 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법

Publications (2)

Publication Number Publication Date
KR20180039387A KR20180039387A (ko) 2018-04-18
KR101917378B1 true KR101917378B1 (ko) 2018-11-09

Family

ID=62082908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160130630A KR101917378B1 (ko) 2016-10-10 2016-10-10 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법

Country Status (1)

Country Link
KR (1) KR101917378B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204581B1 (ko) * 2019-10-07 2021-01-20 주식회사 오비고 확장 서비스 프레임워크 내 특정 서비스 모듈의 업데이트 방법 및 이를 사용한 확장 서비스 프레임워크 서버

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202000022709A1 (it) * 2020-09-25 2022-03-25 Cnh Ind Italia Spa Metodo di generazione di un file applicativo per una centralina veicolare e metodo di trasferimento nella centralina veicolare del file applicativo ottenuto

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081604A (ja) 2009-10-07 2011-04-21 Toyota Motor Corp 車両用プログラム更新装置
US20130039487A1 (en) * 2011-08-12 2013-02-14 Cisco Technology, Inc. Coordinating compression information for unreliable encrypted streams through key establishment protocols
KR101601751B1 (ko) 2014-12-05 2016-03-10 현대오트론 주식회사 차량용 전자제어유닛 및 그 부트 소프트웨어 리프로그래밍 방법
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090044077A (ko) * 2007-10-31 2009-05-07 엘지전자 주식회사 전자제어장치의 리프로그램 방법
KR20140050323A (ko) * 2012-10-19 2014-04-29 삼성전자주식회사 라이선스 검증 방법 및 그 장치
KR101469560B1 (ko) * 2013-03-05 2014-12-05 현대오트론 주식회사 차량의 전자제어유닛 업데이트 장치 및 방법
KR101543069B1 (ko) * 2013-06-07 2015-08-07 현대자동차주식회사 차량 데이터 수집 시스템
KR102256988B1 (ko) * 2014-10-13 2021-05-26 현대모비스 주식회사 복수개의 모듈들을 구비하는 차량 기기의 업데이트 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081604A (ja) 2009-10-07 2011-04-21 Toyota Motor Corp 車両用プログラム更新装置
US20130039487A1 (en) * 2011-08-12 2013-02-14 Cisco Technology, Inc. Coordinating compression information for unreliable encrypted streams through key establishment protocols
KR101601751B1 (ko) 2014-12-05 2016-03-10 현대오트론 주식회사 차량용 전자제어유닛 및 그 부트 소프트웨어 리프로그래밍 방법
WO2016121442A1 (ja) * 2015-01-26 2016-08-04 日立オートモティブシステムズ株式会社 車載制御装置、プログラム書き込み装置、プログラム生成装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204581B1 (ko) * 2019-10-07 2021-01-20 주식회사 오비고 확장 서비스 프레임워크 내 특정 서비스 모듈의 업데이트 방법 및 이를 사용한 확장 서비스 프레임워크 서버
US11175903B2 (en) 2019-10-07 2021-11-16 Obigo Inc. Method for updating specific update-required service module in extension service framework and extension service framework server using the same

Also Published As

Publication number Publication date
KR20180039387A (ko) 2018-04-18

Similar Documents

Publication Publication Date Title
US10725772B2 (en) Electric control device for vehicles, program updating method, and server apparatus
US11513783B2 (en) Control apparatus, program update system, and program update method
KR102626253B1 (ko) Ota를 이용한 차량용 소프트웨어 업데이트 방법 및 장치
CN108650287B (zh) 物联网中的终端设备的升级方法、设备及计算机可读介质
JP2009536395A (ja) Otaが可能な端末の情報アップグレードシステム及び方法{informationupgradesystemandmethodforota−capabledevice}
CN111240722B (zh) 空中升级固件的方法及其所应用的终端、服务器及系统
KR101917378B1 (ko) 리프로그래밍 장치, 전자제어유닛 및 이를 이용한 리프로그래밍 방법
US20230315436A1 (en) Program update system, program transmission device, and program transmission method
CN111158751A (zh) 一种Windows环境部署方法、电子设备及存储介质
JP2018005848A (ja) 車載通信装置
CN115421745A (zh) 设备远程升级方法、装置、终端及存储介质
CN103631611A (zh) 对光端机进行升级的方法及该设备
CN111443930B (zh) 级联终端的升级方法、装置、存储介质及电子终端
CN113626057A (zh) 一种基于GigE Vision接口的相机远程固件升级系统和方法
CN114489769A (zh) 设备升级方法和相关设备
CN113168318A (zh) 模块和包括该模块的信息处理装置以及更新模块的程序数据的程序数据更新方法
CN117560285B (zh) 一种智控物联整机ota升级方法、客户端及服务端
KR102541439B1 (ko) 차량 무선 업데이트의 관리 제어 방법 및 장치
KR101745174B1 (ko) 차량용 전자 제어기 복구 방법 및 이를 실행하는 장치
CN107710681B (zh) 升级多住户单元的方法和设备
JP5971687B2 (ja) Icカード、携帯可能電子装置及びicカードのコマンド処理方法
US20220166855A1 (en) System for development interface and data transmission method for development interface
JP2954202B1 (ja) 移動体通信基地局システムでのプログラムの転送方式及び転送格納方式
KR20090044077A (ko) 전자제어장치의 리프로그램 방법
KR100498905B1 (ko) 시스템 프로그램 고속 다운로딩 방법

Legal Events

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