KR20200121657A - 차량의 업데이트 제공 장치 및 방법 - Google Patents

차량의 업데이트 제공 장치 및 방법 Download PDF

Info

Publication number
KR20200121657A
KR20200121657A KR1020190044487A KR20190044487A KR20200121657A KR 20200121657 A KR20200121657 A KR 20200121657A KR 1020190044487 A KR1020190044487 A KR 1020190044487A KR 20190044487 A KR20190044487 A KR 20190044487A KR 20200121657 A KR20200121657 A KR 20200121657A
Authority
KR
South Korea
Prior art keywords
update
controller
previous version
target controller
version data
Prior art date
Application number
KR1020190044487A
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 KR1020190044487A priority Critical patent/KR20200121657A/ko
Priority to US16/688,036 priority patent/US20200334033A1/en
Publication of KR20200121657A publication Critical patent/KR20200121657A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • 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
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Abstract

본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치는 외부 장치와 유선 또는 무선으로 통신하도록 구성된 통신 인터페이스, 하나 이상의 주변 제어기 및 통신 인터페이스 및 하나 이상의 제어기와 전기적으로 연결된 업데이트 대상 제어기를 포함하고, 업데이트 대상 제어기는, 외부 장치로부터 통신 인터페이스를 통해 업데이트 대상 제어기에 대한 업데이트 요청을 수신하고, 업데이트 요청이 수신되면, 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신하고, 잔여 저장 공간에 대한 정보에 기초하여 업데이트 대상 제어기의 이전 버전 데이터를 분할하고, 분할된 이전 버전 데이터를 하나 이상의 주변 제어기로 송신할 수 있다.

Description

차량의 업데이트 제공 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING UPDATE OF VEHICLE}
본 발명은 사용자의 모바일 단말을 이용하여 차량에 탑재된 제어기의 소프트웨어를 업데이트하는 기술에 관한 것이다.
자동차 산업의 발전에 따라 운전자에게 편의성을 제공하기 위해 무선 통신 기술을 이용하여 다양한 서비스를 제공하기 위한 시스템의 개발이 지속적으로 이루어지고 있다. 예를 들어, 차량은 무선 통신을 통해 차량에 장착된 제어기의 소프트웨어를 업데이트할 수 있다. 업데이트를 위해서는 업데이트를 관리하기 위한 관리 제어기가 요구될 수 있다. 관리 제어기의 탑재를 위한 비용을 절감하기 위해, 차량의 시스템과 사용자의 모바일 단말을 연결하여 모바일 단말을 관리 제어기로 사용함으로써 관리 제어기의 탑재를 위한 비용 및 통신 비용을 절감할 수 있다.
한편, 제어기의 업데이트를 지원하기 위해서는, 안전을 위해 업데이트 실패 시 소프트웨어를 이전 버전으로 복원하기 위한 수단이 요구될 수 있다. 이전 버전으로의 복원을 위해서는 이전 버전의 소프트웨어가 메모리에 저장될 필요가 있다.
모바일 단말을 관리 제어기로 이용하는 경우, 이전 버전의 소프트웨어를 저장하기 어려울 수 있다. 따라서, 사용자의 의사 또는 통신 장애로 인해 업데이트를 수행하는 동안 모바일 단말과 차량 사이의 연결이 끊어지는 경우, 업데이트 대상 제어기의 소프트웨어를 이전 버전으로 롤백(roll-back)하는 것이 어려울 수 있다.
본 발명은 차량과 연결된 외부 장치를 업데이트 관리 제어기로 사용하는 경우, 롤백을 위해 업데이트 대상 제어기의 이전 버전 소프트웨어를 저장하기 위한 장치 및 방법을 제공하기 위한 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치는 외부 장치와 유선 또는 무선으로 통신하도록 구성된 통신 인터페이스, 하나 이상의 주변 제어기 및 통신 인터페이스 및 하나 이상의 제어기와 전기적으로 연결된 업데이트 대상 제어기를 포함하고, 업데이트 대상 제어기는 외부 장치로부터 통신 인터페이스를 통해 업데이트 대상 제어기에 대한 업데이트 요청을 수신하고, 업데이트 요청이 수신되면, 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신하고, 잔여 저장 공간에 대한 정보에 기초하여 업데이트 대상 제어기의 이전 버전 데이터를 분할하고, 분할된 이전 버전 데이터를 하나 이상의 주변 제어기로 송신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 업데이트 요청에 따른 업데이트를 진행하는 동안, 외부 장치와의 연결이 끊어지면, 하나 이상의 주변 제어기에 저장된 이전 버전 데이터를 이용하여 롤백(rollback)을 수행할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 하나 이상의 주변 제어기 각각으로부터 분할된 이전 버전 데이터를 순차적으로 수신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 분할된 이전 버전 데이터의 송신이 완료되면, 외부 장치로부터 업데이트 대상 제어기에 대한 업데이트 데이터를 수신하고, 업데이트 데이터를 이용하여 업데이트를 수행할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 업데이트 요청에 따른 업데이트가 완료되면, 하나 이상의 주변 제어기로 분할된 이전 버전 데이터의 삭제를 요청할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 업데이트 요청에 따른 업데이트를 진행하는 동안 하나 이상의 주변 제어기로 업데이트의 진행을 알리는 알림 메시지를 송신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 잔여 저장 공간에 대한 정보 및 이전 버전 데이터의 크기에 기초하여 하나 이상의 주변 제어기 중 이전 버전 데이터를 송신할 주변 제어기를 결정할 수 있다.
일 실시 예에 따르면, 외부 장치는 모바일 통신 장치이고, 업데이트 대상 제어기는 서버로부터 모바일 통신 장치를 통해 업데이트 대상 제어기에 대한 업데이트 데이터를 수신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는 USB 포트를 통해 외부 장치와 연결될 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기는, 블루투스 통신을 통해 외부 장치와 연결될 수 있다.
본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법은 외부 장치로부터 업데이트 대상 제어기에 대한 업데이트 요청을 수신하는 단계, 업데이트 요청이 수신되면, 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신하는 단계, 잔여 저장 공간에 대한 정보에 기초하여 업데이트 대상 제어기의 이전 버전 데이터를 분할하는 단계 및 분할된 이전 버전 데이터를 하나 이상의 주변 제어기로 송신하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 방법은 업데이트 요청에 따른 업데이트를 진행하는 동안 외부 장치와의 연결이 끊어지면, 하나 이상의 주변 제어기에 저장된 이전 버전 데이터를 이용하여 롤백을 수행하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 방법은 분할된 이전 버전 데이터의 송신이 완료되면, 외부 장치로부터 업데이트 대상 제어기에 대한 업데이트 데이터를 수신하는 단계 및 업데이트 데이터를 이용하여 업데이트를 수행하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 방법은 업데이트 요청에 따른 업데이트가 완료되면, 하나 이상의 주변 제어기로 분할된 이전 버전 데이터의 삭제를 요청하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 방법은 잔여 저장 공간에 대한 정보 및 이전 버전 데이터의 크기에 기초하여 하나 이상의 주변 제어기 중 이전 버전 데이터를 송신할 주변 제어기를 결정하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 업데이트 제공 장치 및 방법은 외부 장치를 업데이트 관리 제어기로 이용하는 경우 업데이트 대상 제어기의 이전 버전의 데이터를 분할하여 다른 제어기에 저장함으로써, 관리 제어기 탑재 비용 및 통신 비용을 절감하는 동시에 업데이트 오류 발생 시 제어기의 소프트웨어를 효율적으로 롤백할 수 있다.
본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체는 차량의 거동을 제어하는 제어기를 업데이트하는 경우에만 업데이트 데이터를 롤백을 위해 메모리에 저장함으로써, 차량에 탑재되는 메모리에 투입되는 제조 단가를 감소시킬 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 동작 환경을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 예시적인 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 예시적인 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 컴퓨팅 시스템을 도시한다.
이하, 본 발명의 일부 실시 예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시 예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시 예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 동작 환경을 설명하기 위한 도면이다.
도 1을 참조하면, 서버(11)는 차량의 제어기를 위한 바이너리를 저장할 수 있다. 스마트폰(12)은 무선 통신을 통해 서버(11)와 연결될 수 있다. 스마트폰(12)은 USB(universal serial bus) 또는 블루투스를 통해 차량에 탑재된 업데이트 대상 제어기(110)와 연결될 수 있다.
스마트폰(12)은 차량의 업데이트 관리 제어기로 기능할 수 있다. 스마트폰(12)은 서버(11)로부터 무선 통신을 통해 업데이트 대상 제어기(110)의 바이너리를 수신할 수 있다. 스마트폰(12)은 USB 또는 블루투스를 통해 업데이트 대상 제어기(110)로 수신된 바이너리를 전달할 수 있다.
업데이트 대상 제어기(110)는 수신된 바이너리를 이용하여 업데이트를 개시하기 전에, 롤백을 대비하여 이전 버전의 바이너리를 다른 컴포넌트에 저장할 수 있다. 예를 들어, 업데이트 대상 제어기(110)는 이전 버전의 바이너리를 분할하고, 분할된 바이너리를 제1 제어기(121), 제2 제어기(122), 제3 제어기(123) 및 제4 제어기(124)에 저장할 수 있다. 제1 제어기(121) 내지 제4 제어기(124)의 저장 공간을 활용함으로써, 롤백을 위해 별도의 저장 공간을 확보할 필요가 없으므로, 비용이 절감될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치(200)는 통신 인터페이스(210), 업데이트 대상 제어기(220), 제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233)를 포함할 수 있다. 도 2에서는 업데이트 제공 장치(200)가 제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233)를 포함하는 것으로 도시되었으나, 이에 제한되지 않고, 업데이트 제공 장치(200)는 임의의 개수의 제어기를 포함할 수 있다. 업데이트 제공 장치(200)는 차량에 탑재될 수 있다.
통신 인터페이스(210)는 외부 장치(22)와 유선 또는 무선으로 통신하도록 구성될 수 있다. 예를 들어, 통신 인터페이스(210)는 외부 장치(22)와 연결 가능한 USB 또는 블루투스 모듈일 수 있다.
업데이트 대상 제어기(220)는 통신 인터페이스(210)와 전기적으로 연결될 수 있다. 업데이트 대상 제어기(220)는 차량에 탑재되는 다양한 제어기들 중 하나일 수 있다.
제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233)는 차량에 탑재된 다양한 제어기일 수 있다. 제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233)는 각각 업데이트 대상 제어기(220)와 전기적으로 연결될 수 있다. 제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233) 각각은 저장 공간을 포함할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 외부 장치(22)로부터 통신 인터페이스(210)를 통해 업데이트 대상 제어기(220)에 대한 업데이트 요청을 수신할 수 있다. 외부 장치(22)는, 예를 들어, 모바일 통신 장치일 수 있다. 업데이트 대상 제어기(220)는, 예를 들어, USB 포트를 통해 또는 블루투스 통신을 통해 외부 장치(22)와 연결될 수 있다. 서버(21)는 업데이트 대상 제어기(220)에 대한 업데이트 데이터를 저장할 수 있다. 업데이트 대상 제어기(220)는 통신 인터페이스(210)를 이용하여 서버(21)로부터 외부 장치(22)를 통해 업데이트 요청을 수신할 수 있고, 업데이트 데이터를 수신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 업데이트 요청이 수신되면, 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233) 각각의 잔여 저장 공간에 대한 정보를 수신할 수 있다. 예를 들어, 업데이트 대상 제어기(220)는 주변 제어기(예: 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233))가 자신의 롬바이너리를 저장한 후 남은 저장 공간의 크기 정보를 수신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 잔여 저장 공간에 대한 정보 및 이전 버전 데이터의 크기에 기초하여 제1 제어기(231), 제2 제어기(232) 및 제3 제어기(233) 중 이전 버전 데이터를 송신할 주변 제어기를 결정할 수 있다. 예를 들어, 이전 버전 데이터의 크기가 10MB이고, 제1 제어기(231)의 잔여 저장 공간의 크기가 6MB이고, 제2 제어기(232)의 잔여 저장 공간의 크기가 4MB인 경우, 업데이트 대상 제어기(220)는 제1 제어기(231) 및 제2 제어기(232)를 이전 버전 데이터를 송신할 주변 제어기로 결정할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 잔여 저장 공간에 대한 정보에 기초하여 업데이트 대상 제어기(220)의 이전 버전 데이터를 분할할 수 있다. 예를 들어, 업데이트 대상 제어기(220)는 이전 버전 데이터를 6MB의 제1 부분과 4MB의 제2 부분으로 분할할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 분할된 이전 버전 데이터를 주변 제어기로 송신할 수 있다. 예를 들어, 업데이트 대상 제어기(220)는 이전 버전 데이터의 제1 부분을 제1 제어기(231)로 송신하고, 이전 버전 데이터의 제2 부분을 제2 제어기(232)로 송신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 분할된 이전 버전 데이터의 송신이 완료되면, 외부 장치(22)로부터 업데이트 대상 제어기(220)에 대한 업데이트 데이터를 수신하고, 업데이트 데이터를 이용하여 업데이트를 수행할 수 있다. 업데이트 대상 제어기(220)는 업데이트 요청에 따른 업데이트를 진행하는 동안 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233) 중 이전 버전 데이터를 저장한 주변 제어기로 업데이트의 진행을 알리는 알림 메시지를 송신할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 업데이트 요청에 따른 업데이트가 완료되면, 하나 이상의 주변 제어기로 분할된 이전 버전 데이터의 삭제를 요청할 수 있다. 업데이트가 완료되면 롤백의 필요성이 없어지므로, 저장 공간의 낭비를 방지하기 위해 이전 버전 데이터는 삭제될 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 업데이트 요청에 따른 업데이트를 진행하는 동안, 외부 장치(22)와의 연결이 끊어지면, 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233)에 저장된 이전 버전 데이터를 이용하여 롤백(rollback)을 수행할 수 있다. 예를 들어, 업데이트 대상 제어기(220)는 업데이트를 진행하는 동안 외부 장치(22)와의 연결이 끊어지거나 오류가 발생되면, 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233)로 오류의 발생을 알릴 수 있다. 다른 예를 들면, 업데이트 대상 제어기(220)는 업데이트가 정상적으로 진행되는 동안 주기적으로 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233)로 메시지를 전송할 수 있고, 메시지가 지정된 시간 동안 전송되지 않으면 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233)는 오류의 발생을 인지할 수 있다. 오류의 발생이 인지되면, 업데이트 대상 제어기(220)는 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233)에 저장된 이전 버전 데이터를 수신하여 롤백을 수행할 수 있다.
일 실시 예에 따르면, 업데이트 대상 제어기(220)는 제1 제어기(231), 제2 제어기(232) 및/또는 제3 제어기(233) 각각으로부터 분할된 이전 버전 데이터를 순차적으로 수신할 수 있다. 예를 들어, 업데이트 대상 제어기(220)는 제1 제어기(231)로부터 이전 버전 데이터의 제1 부분을 수신하고, 제2 제어기(232)로부터 이전 버전 데이터의 제2 부분을 수신할 수 있다. 업데이트 대상 제어기(220)는 수신된 이전 버전 데이터를 이용하여 롤백을 완료할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
이하에서는 도 2의 업데이트 제공 장치(200)가 도 3의 프로세스를 수행하는 것을 가정한다. 또한, 도 3의 설명에서, 차량에 의해 수행되는 것으로 기술된 동작은 업데이트 제공 장치(200)의 업데이트 대상 제어기(220)에 의해 제어되는 것으로 이해될 수 있다.
도 3을 참조하면, 단계 310에서, 차량은 외부 장치로부터 업데이트 대상 제어기에 대한 업데이트 요청을 수신할 수 있다. 예를 들어, 차량은 서버에 업데이트 대상 제어기의 새로운 버전의 소프트웨어가 등록되면, 서버로부터 외부 장치를 통해 업데이트 요청을 수신할 수 있다.
단계 320에서, 차량은 업데이트 요청이 수신되면, 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신할 수 있다. 예를 들어, 차량은 롤백을 위한 저장 공간의 확보를 위해 주변 제어기들의 잔여 저장 공간의 크기에 대한 정보를 수신할 수 있다.
단계 330에서, 차량은 잔여 저장 공간에 대한 정보에 기초하여 업데이트 대상 제어기의 이전 버전 데이터를 분할할 수 있다. 예를 들어, 차량은 주변 제어기의 잔여 저장 공간에 저장될 수 있는 크기로 이전 버전 데이터를 복수의 부분으로 분할할 수 있다. 분할된 부분들은 주변 제어기들의 잔여 저장 공간에 따라 주변 제어기들로 각각 할당될 수 있다.
단계 340에서, 차량은 분할된 이전 버전 데이터를 하나 이상의 주변 제어기로 송신할 수 있다. 예를 들어, 차량은 분할된 부분들 각각을 할당된 주변 제어기에 저장할 수 있다. 이후 차량은 업데이트를 진행할 수 있고, 업데이트가 성공하면 이전 버전 데이터를 삭제할 수 있고, 업데이트가 실패하면 주변 제어기에 저장된 이전 버전 데이터를 이용하여 롤백을 수행할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 스마트폰(41)은 업데이트 관리 제어기로서 기능할 수 있다. 스마트폰(41)은 대상 제어기(410)로 대상 제어기(410)의 리프로그래밍(업데이트)을 요청할 수 있다.
대상 제어기(410)는 리프로그래밍 요청에 반응하여, 롤백을 위한 저장 공간의 확보를 위해 제1 주변 제어기(421), 제2 주변 제어기(422) 및 제3 주변 제어기(423)로 롤백 데이터의 저장 공간을 요청할 수 있다. 제1 주변 제어기(421), 제2 주변 제어기(422) 및 제3 주변 제어기(423) 각각은 대상 제어기(410)의 요청에 반응하여 잔여 저장 공간에 대한 정보를 대상 제어기(410)로 송신할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 단계 510에서, 업데이트 대상 제어기는 외부 장치의 요청에 따라 업데이트 대상 제어기의 업데이트를 개시할 수 있다.
단계 520에서, 업데이트 대상 제어기는 제1 제어기의 잔여 저장 공간에 대한 정보를 제1 제어기로 요청할 수 있다. 단계 530에서, 업데이트 대상 제어기는 제1 제어기의 잔여 저장 공간에 대한 정보를 제1 제어기로부터 수신할 수 있다. 단계 540에서, 업데이트 대상 제어기는 누적 저장 공간의 크기를 산출할 수 있다. 단계 550에서, 업데이트 대상 제어기는 누적 저장 공간의 크기가 이전 버전 롬바이너리의 크기보다 큰지 여부를 판단할 수 있다. 이전 버전 롬바이너리의 크기가 더 큰 경우, 업데이트 대상 제어기는 제2 제어기에 대해(단계 560), 단계 520 내지 단계 550을 다시 수행할 수 있다. 이 경우, 누적 저장 공간의 크기는 제1 제어기의 잔여 저장 공간의 크기와 제2 제어기의 잔여 저장 공간의 크기를 합산함으로써 산출될 수 있다.
누적 저장 공간의 크기가 더 커지면, 단계 570에서, 업데이트 대상 제어기는 주변 제어기 각각의 잔여 저장 공간에 따라 이전 버전 롬바이너리의 일부를 주변 제어기 각각으로 할당할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 예시적인 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 대상 제어기는 스마트폰과 연결될 수 있다. 대상 제어기는 스마트폰으로부터 업데이트 요청을 수신할 수 있다. 업데이트 요청이 수신된 경우, 대상 제어기는 업데이트 실패 시 롤백을 위해 대상 제어기에 저장된 기존 롬바이너리를 다른 컴포넌트에 저장할 수 있다.
대상 제어기는 기존 롬바이너리의 저장을 위해 주변 제어기(예: 제어기 1 내지 제어기 6)의 메모리의 여유 공간을 인지할 수 있다. 대상 제어기는 제어기 1 내지 제어기 6 각각의 여유 공간에 맞춰 기존 롬바이너리를 분할할 수 있다. 대상 제어기는 제어기 1 내지 제어기 6으로 분할된 부분들을 각각 전송할 수 있고, 이로써 기존 롬바이너리는 제어기 1 내지 제어기 6의 여유 공간에 저장될 수 있다.
도 7은 본 발명의 일 실시 예에 따른 차량의 업데이트 제공 장치의 예시적인 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 업데이트 중에 대상 제어기는 스마트폰과 연결이 끊어질 수 있다. 대상 제어기와 스마트폰의 연결이 끊어지면 업데이트가 실패할 수 있고, 롤백이 요구될 수 있다. 대상 제어기는 제어기 1 내지 제어기 6에 저장된 기존 롬바이너리의 부분들을 이용하여 롤백을 수행할 수 있다.
대상 제어기는 제어기 1로부터 기존 롬바이너리의 분할 부분 1을 수신할 수 있다. 제어기 1의 전송이 완료되면, 제어기 1은 제어기 2로 전송 완료를 알릴 수 있다. 제어기 2는 전송 완료 알림에 반응하여 분할 부분 2를 대상 제어기로 송신할 수 있다. 이후, 제어기 3 내지 제어기 6은 순차적으로 기존 롬바이너리의 분할 부분들을 대상 제어기로 송신할 수 있다. 제어기 1 내지 제어기 6의 송신이 완료되면, 대상 제어기는 기존 롬바이너리를 복원할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 컴퓨팅 시스템을 도시한다.
도 8을 참조하면, 상술한 본 발명의 일 실시 예에 따른 장치는 컴퓨팅 시스템을 통해서도 구현될 수 있다. 컴퓨팅 시스템(1000)은 시스템 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시 예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 차량의 업데이트 제공 장치에 있어서,
    외부 장치와 유선 또는 무선으로 통신하도록 구성된 통신 인터페이스;
    하나 이상의 주변 제어기; 및
    상기 통신 인터페이스 및 상기 하나 이상의 제어기와 전기적으로 연결된 업데이트 대상 제어기를 포함하고,
    상기 업데이트 대상 제어기는,
    상기 외부 장치로부터 상기 통신 인터페이스를 통해 상기 업데이트 대상 제어기에 대한 업데이트 요청을 수신하고,
    상기 업데이트 요청이 수신되면, 상기 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신하고,
    상기 잔여 저장 공간에 대한 정보에 기초하여 상기 업데이트 대상 제어기의 이전 버전 데이터를 분할하고,
    상기 분할된 이전 버전 데이터를 상기 하나 이상의 주변 제어기로 송신하는 것을 특징으로 하는, 장치.
  2. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 업데이트 요청에 따른 업데이트를 진행하는 동안, 상기 외부 장치와의 연결이 끊어지면, 상기 하나 이상의 주변 제어기에 저장된 상기 이전 버전 데이터를 이용하여 롤백(rollback)을 수행하는 것을 특징으로 하는, 장치.
  3. 제 2 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 하나 이상의 주변 제어기 각각으로부터 상기 분할된 이전 버전 데이터를 순차적으로 수신하는 것을 특징으로 하는, 장치.
  4. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 분할된 이전 버전 데이터의 송신이 완료되면, 상기 외부 장치로부터 상기 업데이트 대상 제어기에 대한 업데이트 데이터를 수신하고,
    상기 업데이트 데이터를 이용하여 업데이트를 수행하는 것을 특징으로 하는, 장치.
  5. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 업데이트 요청에 따른 업데이트가 완료되면, 상기 하나 이상의 주변 제어기로 상기 분할된 이전 버전 데이터의 삭제를 요청하는 것을 특징으로 하는, 장치.
  6. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 업데이트 요청에 따른 업데이트를 진행하는 동안 상기 하나 이상의 주변 제어기로 상기 업데이트의 진행을 알리는 알림 메시지를 송신하는 것을 특징으로 하는, 장치.
  7. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    상기 잔여 저장 공간에 대한 정보 및 상기 이전 버전 데이터의 크기에 기초하여 상기 하나 이상의 주변 제어기 중 상기 이전 버전 데이터를 송신할 주변 제어기를 결정하는 것을 특징으로 하는, 장치.
  8. 제 1 항에 있어서,
    상기 외부 장치는 모바일 통신 장치이고,
    상기 업데이트 대상 제어기는,
    서버로부터 상기 모바일 통신 장치를 통해 상기 업데이트 대상 제어기에 대한 업데이트 데이터를 수신하는 것을 특징으로 하는, 장치.
  9. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    USB 포트를 통해 상기 외부 장치와 연결되는 것을 특징으로 하는, 장치.
  10. 제 1 항에 있어서,
    상기 업데이트 대상 제어기는,
    블루투스 통신을 통해 상기 외부 장치와 연결되는 것을 특징으로 하는, 장치.
  11. 차량의 업데이트 제공 방법에 있어서,
    외부 장치로부터 업데이트 대상 제어기에 대한 업데이트 요청을 수신하는 단계;
    상기 업데이트 요청이 수신되면, 하나 이상의 주변 제어기 각각의 잔여 저장 공간에 대한 정보를 수신하는 단계;
    상기 잔여 저장 공간에 대한 정보에 기초하여 상기 업데이트 대상 제어기의 이전 버전 데이터를 분할하는 단계; 및
    상기 분할된 이전 버전 데이터를 상기 하나 이상의 주변 제어기로 송신하는 단계를 포함하는 것을 특징으로 하는, 방법.
  12. 제 11 항에 있어서,
    상기 업데이트 요청에 따른 업데이트를 진행하는 동안 상기 외부 장치와의 연결이 끊어지면, 상기 하나 이상의 주변 제어기에 저장된 상기 이전 버전 데이터를 이용하여 롤백을 수행하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
  13. 제 11 항에 있어서,
    상기 분할된 이전 버전 데이터의 송신이 완료되면, 상기 외부 장치로부터 상기 업데이트 대상 제어기에 대한 업데이트 데이터를 수신하는 단계; 및
    상기 업데이트 데이터를 이용하여 업데이트를 수행하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
  14. 제 11 항에 있어서,
    상기 업데이트 요청에 따른 업데이트가 완료되면, 상기 하나 이상의 주변 제어기로 상기 분할된 이전 버전 데이터의 삭제를 요청하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
  15. 제 11 항에 있어서,
    상기 잔여 저장 공간에 대한 정보 및 상기 이전 버전 데이터의 크기에 기초하여 상기 하나 이상의 주변 제어기 중 상기 이전 버전 데이터를 송신할 주변 제어기를 결정하는 단계를 더 포함하는 것을 특징으로 하는, 방법.
KR1020190044487A 2019-04-16 2019-04-16 차량의 업데이트 제공 장치 및 방법 KR20200121657A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190044487A KR20200121657A (ko) 2019-04-16 2019-04-16 차량의 업데이트 제공 장치 및 방법
US16/688,036 US20200334033A1 (en) 2019-04-16 2019-11-19 Apparatus and method for providing update in vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190044487A KR20200121657A (ko) 2019-04-16 2019-04-16 차량의 업데이트 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20200121657A true KR20200121657A (ko) 2020-10-26

Family

ID=72832404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190044487A KR20200121657A (ko) 2019-04-16 2019-04-16 차량의 업데이트 제공 장치 및 방법

Country Status (2)

Country Link
US (1) US20200334033A1 (ko)
KR (1) KR20200121657A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200141296A (ko) * 2019-06-10 2020-12-18 현대자동차주식회사 차량 업데이트 제어 장치 및 방법
KR20210151498A (ko) * 2020-06-05 2021-12-14 현대자동차주식회사 차량 업데이트 시스템 및 방법

Also Published As

Publication number Publication date
US20200334033A1 (en) 2020-10-22

Similar Documents

Publication Publication Date Title
CN105791387B (zh) 车辆控制更新方法和系统
US20230359454A1 (en) Software update device, update control method, and non-transitory storage medium
KR20200121657A (ko) 차량의 업데이트 제공 장치 및 방법
JP7298427B2 (ja) プログラム更新システムおよびプログラム更新方法
US11449329B2 (en) Vehicle control device and program update system
KR102610730B1 (ko) 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체
US20240069906A1 (en) Server, software update system, distribution method, and non-transitory storage medium
EP3923139A1 (en) Electronic control device and method for using non-volatile memory
WO2021024792A1 (ja) 車両制御装置、更新プログラム、プログラム更新システム、及び書込み装置
US20220244946A1 (en) Ota master, update control method, non-transitory storage medium, and vehicle
US9880538B2 (en) Electronic device and method for loading program code thereof
US20220391194A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
EP3945417A1 (en) Software update device, update control method, non-transitory storage medium, and server
KR102540932B1 (ko) 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체
CN114040360A (zh) 服务器、更新管理方法、非临时存储介质、软件更新装置、带服务器及软件更新装置的系统
US20220391193A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US11954480B2 (en) Center, OTA master, system, method, non-transitory storage medium, and vehicle
JP7484791B2 (ja) Otaマスタ、更新制御方法、及び更新制御プログラム
US20230036444A1 (en) System, method, and non-transitory storage medium
US20220405080A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20230032451A1 (en) Center, method, and non-transitory storage medium
US20220342651A1 (en) Center, ota master, system, distribution method, non-transitory storage medium, and vehicle
US10540169B2 (en) Electronic device configured to update program stored therein using difference data and program updating method using difference data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal