KR20080083512A - Firmware over the air system - Google Patents

Firmware over the air system Download PDF

Info

Publication number
KR20080083512A
KR20080083512A KR1020070024173A KR20070024173A KR20080083512A KR 20080083512 A KR20080083512 A KR 20080083512A KR 1020070024173 A KR1020070024173 A KR 1020070024173A KR 20070024173 A KR20070024173 A KR 20070024173A KR 20080083512 A KR20080083512 A KR 20080083512A
Authority
KR
South Korea
Prior art keywords
firmware
information
file
data
personality
Prior art date
Application number
KR1020070024173A
Other languages
Korean (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 KR1020070024173A priority Critical patent/KR20080083512A/en
Publication of KR20080083512A publication Critical patent/KR20080083512A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

A FOTA(Firmware Over The Air) system is provided to compare old version firmware with new version firmware, extract a changed, added or deleted part of corresponding firmware, generate a differential file for partial update from the extracted part and transmit the differential file to at least one client terminal, thereby achieving efficient partial firmware update. A FOTA system generates a differential file including a header and a body. The header includes an identifier for identifying the file, file information representing file property, new version firmware size information and old version firmware size information. The body includes at least one unit data which is composed of data kind information representing the kind of block data, block information representing a block length according to the kind of the block data, position information of old version firmware, and block data information representing data information corresponding to the block length of the block data information.

Description

FOTA 시스템{Firmware Over The Air system}FOTA system {Firmware Over The Air system}

도 1 은 FOTA 시스템의 개요도1 is a schematic diagram of a FOTA system;

도 2 는 본 발명에 따른 FOTA 시스템에 의해 생성되는 차분 파일 구조도2 is a differential file structure diagram generated by the FOTA system according to the present invention;

도 3 은 본 발명에 따른 FOTA 시스템의 부분 업데이트 절차를 도시한 흐름도3 is a flowchart illustrating a partial update procedure of the FOTA system according to the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for main parts of the drawings>

100 : FOTA 시스템 110 : 파일 생성부100: FOTA system 110: file generation unit

120 : 업데이트 수행부 200 : 클라이언트 단말기120: update execution unit 200: client terminal

본 발명은 FOTA 시스템에 관한 것으로, 특히 펌웨어(Firmware) 부분 업데이트를 위해 생성되는 차분 파일의 구조에 관련한 것이다.The present invention relates to a FOTA system, and more particularly to the structure of a differential file created for firmware partial updates.

FOTA(Firmware Over The Air)는 휴대폰 등의 모바일 디바이스(Mobile Device)의 펌웨어(Firmware)를 무선으로 자동 업데이트하는 기술을 말한다. 그런데, 무선 특성상 대역폭의 제한, 데이터 량에 따른 비용문제, 저장 용량의 제약 때문에 펌웨어 전체를 휴대폰 등의 모바일 디바이스에 전송하여 업데이트하는 방법은 효율적이지 못하다.FOTA (Firmware Over The Air) refers to a technology that automatically updates the firmware of a mobile device such as a mobile phone wirelessly. However, due to the limitations of bandwidth, cost problems due to the amount of data, and limitation of storage capacity, the method of updating and transmitting the entire firmware to a mobile device such as a mobile phone is not efficient due to wireless characteristics.

따라서, 이러한 문제를 해결하기 위해 펌웨어(Firmware)의 변경된 부분만 업데이트하는 펌웨어 부분 업데이트 기술들이 제안되었으며, 본 발명자는 이러한 펌웨어 부분 업데이트시, 보다 효율적으로 펌웨어 부분 업데이트가 가능하도록 하는 기술에 대한 연구를 하였고, 이러한 연구의 일환으로 펌웨어 부분 업데이트에 있어서의 핵심 부분인 펌웨어 부분 업데이트를 위해 생성되는 차분 파일의 가변 구조를 제안하게 되었다.Therefore, in order to solve such a problem, firmware partial update techniques for updating only a changed portion of firmware have been proposed, and the present inventors have studied a technique for enabling a more efficient firmware partial update during such firmware partial update. As part of this research, we proposed a variable structure of the difference file generated for the firmware part update, which is a key part of the firmware part update.

본 발명은 상기한 취지하에 발명된 것으로, 펌웨어 부분 업데이트를 위해 생성되는 차분 파일의 가변 구조를 제공함을 그 목적으로 한다.The present invention has been invented under the above-mentioned object, and an object thereof is to provide a variable structure of a difference file generated for firmware partial update.

상기한 목적을 달성하기 위한 본 발명의 일 양상에 따르면, 본 발명에 따른 FOTA 시스템이 파일 식별을 위한 식별자 정보와, 파일 특성을 기록한 파일정보와, 신버전 펌웨어 크기 정보와, 구버전 펌웨어 크기 정보를 포함하는 헤더(Header)와; 구간 데이터 성격을 기록한 데이터 성격정보와, 상기 구간 데이터 성격에 따른 구간 길이 및 구버전 펌웨어의 위치정보를 기록한 구간정보와, 상기 구간정보의 구간 길이 만큼 기록되는 데이터 정보를 기록한 구간 데이터 정보로 이루어지는 단위 데이터를 적어도 하나 포함하는 가변 구조의 바디(Body)를 포함하여 이루어지는 차분 파일을 생성하는 것을 특징으로 한다.According to an aspect of the present invention for achieving the above object, the FOTA system according to the present invention includes identifier information for file identification, file information recording the file characteristics, new version firmware size information, old version firmware size information A header; Unit data consisting of data personality information recording section data personality, section information recording section length and location information of the old version firmware according to the section data characteristics, and section data information recording data information recorded as section length of the section information. And generating a difference file including a body having a variable structure including at least one of the two.

따라서, 본 발명은 가변 구조의 차분 파일을 통해 보다 효율적으로 펌웨어 부분 업데이트가 가능하도록 하는 장점을 가진다.Accordingly, the present invention has an advantage of enabling a more efficient firmware partial update through a difference file having a variable structure.

이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily understand and reproduce the present invention.

도 1 은 FOTA 시스템의 개요도이다. 펌웨어 부분 업데이트를 위한 FOTA 시스템(100)은 파일 생성부(110)와, 업데이트 수행부(120)로 이루어진다. 상기 파일 생성부(110)는 구버전 펌웨어(Firmware)와 신버전 펌웨어를 바이너리(Binary) 단위로 비교하여 해당 펌웨어의 변경 또는 추가 또는 삭제된 부분을 추출하고, 이로부터 부분 업데이트를 위한 차분 파일을 생성한다. 이 때, 상기 차분 파일 생성시 구버전 펌웨어와 신버전 펌웨어를 소정 단위의 부분영역으로 나누고, 각 부분영역을 순차적으로 비교하여 변경된 영역을 추출하는 등의 방법을 사용할 수 있다.1 is a schematic diagram of a FOTA system. The FOTA system 100 for firmware part update includes a file generator 110 and an update performer 120. The file generation unit 110 compares the old version firmware with the new version firmware in binary units, extracts the changed, added or deleted portions of the corresponding firmware, and generates a differential file for partial update therefrom. . At this time, when generating the difference file, the old version firmware and the new version firmware may be divided into partial regions of a predetermined unit, and each partial region may be sequentially compared to extract a changed region.

상기 업데이트 수행부(120)는 상기 파일 생성부(110)에 의해 생성된 차분 파일을 적어도 하나의 클라이언트 단말기(200)로 전송하여, 해당 클라이언트 단말기(200)에 설치된 해당 펌웨어에 대한 부분 업데이트를 수행하도록 처리한다. 즉, 이 업데이트 수행부(120)는 OMA(Open Mobile Alliance) DM(Device Management)에서 규정한 디바이스 관리에 관한 기능을 담당하는 소프트웨어 모듈로, 생성된 차분 파일의 배포 및 보관 관리, 버전 관리 등의 기능을 수행한다.The update performing unit 120 transmits the difference file generated by the file generating unit 110 to at least one client terminal 200 to perform a partial update of the firmware installed in the client terminal 200. Do it. That is, the update performing unit 120 is a software module that is responsible for the device management function specified by the Open Mobile Alliance (OMA) Device Management (OMA), and the distribution and storage management of the generated differential file, version management, etc. Perform the function.

상기 차분 파일을 수신한 클라이언트 단말기(200)는 펌웨어 업데이트를 위한 소프트웨어 모듈을 실행하여 클라이언트 단말기(200)에 설치된 펌웨어에 대해 변경된 부분만 부분 업데이트함으로써 클라이언트 단말기(200)에 설치된 구버전 펌웨어가 신버전 펌웨어로 업그레이드 된다. 따라서, 이러한 펌웨어 부분 업데이트를 통해 FOTA(Firmware Over The Air)시의 무선 특성상 대역폭의 제한, 데이터 량에 따 른 비용문제, 저장 용량의 제약 문제를 해결할 수 있게 된다. The client terminal 200 receiving the difference file executes a software module for firmware update to partially update only the changed part of the firmware installed in the client terminal 200 so that the old version firmware installed in the client terminal 200 is updated to the new version firmware. It is upgraded. Therefore, this partial firmware update can solve bandwidth limitations, cost limitations, and storage capacity constraints due to the wireless nature of FOTA (Firmware Over The Air).

도 2 는 본 발명에 따른 FOTA 시스템에 의해 생성되는 차분 파일 구조도이다. 도면에 도시한 바와 같이, 본 발명에 따른 FOTA 시스템에 의해 생성되는 차분 파일은 헤더(Header)와 바디(Body)로 이루어진다. 상기 헤더(Header)는 식별자 정보(Identifier)와, 파일정보(Info)와, 신버전 펌웨어 크기 정보(size1)와, 구버전 펌웨어 크기 정보(size2)를 포함한다.2 is a differential file structure diagram generated by the FOTA system according to the present invention. As shown in the figure, the difference file generated by the FOTA system according to the present invention consists of a header and a body. The header includes identifier information, file information Info, new version firmware size information size1, and old version firmware size information size2.

상기 식별자 정보(Identifier)는 해당 파일이 펌웨어 부분 업데이트를 위한 파일임을 나타내는 정보이다. 이 식별자 정보(Identifier)는 클라이언트 단말기(200)에 의해 판독되어 해당 파일이 펌웨어 부분 업데이트를 위한 파일임이 인식되고, 클라이언트 단말기(200)에 의해 펌웨어 부분 업데이트를 위한 소프트웨어 모듈이 실행되어 펌웨어를 업데이트 하게 된다.The identifier information is information indicating that the file is a file for firmware partial update. This identifier information is read by the client terminal 200 to recognize that the file is a file for firmware partial update, and a software module for firmware partial update is executed by the client terminal 200 to update the firmware. do.

상기 파일정보(Info)는 파일 특성을 기록하는 정보로, 구버전 펌웨어가 변경되었음을 나타내는 특성값이 저장된다. 예컨대, 구버전 펌웨어가 변경되었음을 나타내는 특성값이 '1'로 정의되었다면, 클라이언트 단말기(200)의 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 이 파일정보(Info)에 기록된 특성값이 '1'일 경우 펌웨어 부분 업데이트를 수행하게 된다.The file information Info is information for recording a file characteristic, and the characteristic value indicating that the old firmware is changed is stored. For example, if the characteristic value indicating that the old version firmware is changed is defined as '1', the software module for updating the firmware portion of the client terminal 200 is firmware when the characteristic value recorded in the file information Info is '1'. Partial update will be performed.

상기 신버전 펌웨어 크기 정보(size1)는 신버전 펌웨어의 크기를 기록한다. 상기 구버전 펌웨어 크기 정보(size2)는 구버전 펌웨어의 크기를 기록한다. 이 신버전 펌웨어 크기 정보(size1) 및 구버전 펌웨어 크기 정보(size2)는 정합성 체크나, 전송에러 체크를 위한 CRC(Cyclic Redundancy Checking) 등에서 이용되는 정보 이다. 상기 정합성 체크나 전송에러 체크에 관련해서는 이 출원 이전에 이미 다양하게 공지되어 시행되는 통상의 기술이며, 본 발명의 요지를 벗어나는 부분이므로, 이에 대한 구체적인 설명은 생략하기로 한다.The new version firmware size information size1 records the size of the new version firmware. The old firmware size information size2 records the size of the old firmware. The new version firmware size information size1 and the old version firmware size information size2 are information used in a consistency check, a cyclic redundancy check (CRC) for transmission error check, and the like. Regarding the consistency check or the transmission error check, it is a conventional technique that is already known and implemented variously before this application, and since it is a part that deviates from the gist of the present invention, a detailed description thereof will be omitted.

상기 바디(Body)는 적어도 하나의 단위 데이터를 포함하는 단위 데이터 집합으로, 상기 단위 데이터의 갯수에 따라 그 크기가 가변되는 가변 구조를 가진다. 상기 단위 데이터는 구버전 펌웨어와 신버전 펌웨어를 바이너리 단위로 비교하여 변경 또는 추가 또는 삭제된 부분으로 추출된 부분에 기록된 데이터 즉, 실제로 데이터의 변경 또는 추가 또는 삭제가 발생한 데이터 및 이 데이터에 대한 정보가 저장되는 부분이다.The body is a unit data set including at least one unit data, and has a variable structure whose size varies according to the number of unit data. The unit data includes data recorded in a part extracted as a part that is changed, added, or deleted by comparing the old version firmware and the new version firmware in binary units, that is, data in which the data has actually been changed, added, or deleted, and information about the data. This is the part that is saved.

상기 바디(Body)는 데이터 성격정보(kind)와, 구간정보와, 구간 데이터 정보를 포함하여 이루어진다. 상기 데이터 성격정보(kind)는 구간 데이터 성격을 기록한다. 여기서 구간 데이터란 구버전 펌웨어의 데이터 변경 또는 추가 또는 삭제가 발생한 구간의 데이터를 의미한다. 한편, 상기 구간 데이터 성격정보는 구버전 펌웨어의 해당 구간 내용이 변경되었음을 나타내는 제 1 성격값과, 구버전 펌웨어에는 없는 추가 또는 삭제된 내용이 있음을 나타내는 제 2 성격값과, 차분 파일의 내용에 따라 구버전 펌웨어의 주소 위치가 변경되었음을 나타내는 제 3 성격값 중 어느 하나일 수 있다.The body includes data personality information, section information, and section data information. The data kind information records section data characteristics. In this case, the section data refers to data of a section where data change, addition, or deletion of the old version firmware occurs. Meanwhile, the section data personality information may include a first personality value indicating that the contents of the corresponding section of the old version firmware have been changed, a second personality value indicating that there is added or deleted content not present in the old version firmware, and an old version according to the content of the difference file. It may be any one of the third personality values indicating that the address location of the firmware has been changed.

예컨대, 상기 제 1 성격값으로 '1', 상기 제 2 성격값으로 '2', 상기 제 3 성격값으로 '3'과 같이 정의될 수 있다. 클라이언트 단말기(200)의 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 데이터 성격정보(kind)에 기록된 값을 판독하여 그 값이 제 1 성격값일 경우에는, 구버전 펌웨어에 변경된 구간의 데이터를 기록하여 부분 업데이트를 수행하고, 제 2 성격값일 경우에는 구버전 펌웨어에 추가 또는 삭제된 내용을 추가 또는 삭제하고, 제 3 성격값일 경우에는 구버전 펌웨어의 주소 위치를 변경하는 처리를 수행한다.For example, it may be defined as '1' as the first personality value, '2' as the second personality value, and '3' as the third personality value. The software module for updating the firmware part of the client terminal 200 reads the value recorded in the data personality information, and if the value is the first personality value, records the changed section in the old version firmware to perform the partial update. If the second personality value is added, the content added or deleted in the old firmware is added or deleted, and if the third personality value is used, the process of changing the address location of the old firmware is performed.

상기 구간정보는 상기 구간 데이터 성격에 따른 구간 길이 및 구버전 펌웨어의 위치정보를 기록한다. 즉, 이 구간정보는 구버전 펌웨어의 변경 또는 추가 또는 삭제된 구간의 길이 및 파일 주소(Address) 위치가 기록되는 부분이다. The section information records section length and location information of the old version firmware according to the section data characteristics. That is, the section information is a portion in which the length and the file address position of the section of the changed, added, or deleted version of the old firmware are recorded.

상기 구간 데이터 정보는 상기 구간정보의 구간 길이 만큼 기록되는 데이터 정보 즉, 구버전 펌웨어의 데이터 변경 또는 추가 또는 삭제가 발생한 구간의 실제 데이터를 포함한다. 이 때, 상기 구간 데이터 정보가 상기 구간 데이터 성격정보가 제 3 성격값일 경우에는 상기 단위 데이터에 포함되지 않는다. 즉, 이 구간 데이터 정보는 상기 구간 데이터 성격정보가 제 1 성격값 또는 제 2 성격값일 경우, 클라이언트 단말기(200)의 펌웨어 부분 업데이트를 위한 소프트웨어 모듈이 구버전 펌웨어를 신버전 펌웨어로 부분 업데이트시, 구버전 펌웨어의 데이터 변경 또는 추가 또는 삭제가 발생한 구간에 기록되는 실제 데이터가 기록되는 부분이다.The section data information includes data information recorded as long as the section length of the section information, that is, actual data of a section where data change, addition, or deletion of the old version firmware occurs. In this case, the section data information is not included in the unit data when the section data personality information is a third personality value. That is, the interval data information is the old version firmware when the software module for firmware partial update of the client terminal 200 partially updates the old version firmware to the new version firmware when the section data personality information is the first personality value or the second personality value. The actual data recorded in the section where the data change, addition or deletion occurs is recorded.

도 3 을 참조하여 본 발명에 따른 FOTA 시스템의 부분 업데이트 절차를 알아본다. 도 3 은 본 발명에 따른 FOTA 시스템의 부분 업데이트 절차를 도시한 흐름도이다. 먼저, 단계 S110 에서 FOTA 시스템(100)의 파일 생성부(110)에 의해 구버전 펌웨어(Firmware)와 신버전 펌웨어가 바이너리(Binary) 단위로 비교되어, 상기한 헤더(Header)와 바디(Body)를 포함하는 부분 업데이트를 위한 차분 파일이 생성된 다.A partial update procedure of the FOTA system according to the present invention will be described with reference to FIG. 3. 3 is a flowchart illustrating a partial update procedure of the FOTA system according to the present invention. First, in step S110, the old version firmware and the new version firmware are compared in binary units by the file generation unit 110 of the FOTA system 100, and includes the above-mentioned header and body. A differential file is created for the partial update.

그 다음, 단계 S120 에서 상기 단계 S110 에서 생성된 차분 파일은 FOTA 시스템(100)의 업데이트 수행부(120)에 의해 적어도 하나의 클라이언트 단말기(200)로 전송된다. 그러면, 단계 S130 에서 클라이언트 단말기(200)는 수신한 차분 파일의 헤더(Header)의 식별자 정보(Identifier)로부터 해당 파일이 펌웨어 부분 업데이트를 위한 차분 파일임을 검출하고, 펌웨어 부분 업데이트를 위한 소프트웨어 모듈(도면 도시 생략)을 실행한다.Next, in step S120, the difference file generated in step S110 is transmitted to the at least one client terminal 200 by the update performing unit 120 of the FOTA system 100. Then, in operation S130, the client terminal 200 detects that the corresponding file is a differential file for firmware partial update from the identifier information of the header of the differential file received, and generates a software module for updating the firmware partial (Fig. (Not shown).

상기 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 단계 S140 에서 헤더(Header)의 신버전 펌웨어 크기 정보(size1)와, 구버전 펌웨어 크기 정보(size2)를 이용해 전송 에러를 검사하고, 이상 없을 경우 헤더(Header)의 파일정보(Info)를 판독하여, 이 파일정보(Info)에 기록된 특성값이 구버전 펌웨어가 변경되었음을 나타내는 값일 경우 차분 파일의 바디(Body)를 분석하여 펌웨어 부분 업데이트를 수행한다.The software module for the firmware partial update checks for transmission errors using the new version firmware size information size1 and the old version firmware size information size2 of the header in step S140, and if there is no error, the file of the header file. When the information Info is read and the characteristic value recorded in the file information Info is a value indicating that the old version firmware has been changed, the body of the difference file is analyzed to perform the firmware partial update.

먼저, 상기 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 단계 S150 에서 바디(Body)에 포함되는 단위 데이터를 순차적으로 분석하여 각 단위 데이터의 데이터 성격정보를 판독한다. 이 때, 상기 데이터 성격정보에 기록된 값이 제 1 성격값일 경우에는 구버전 펌웨어의 해당 구간 내용이 변경되었음을 나타낸다. 한편, 상기 데이터 성격정보에 기록된 값이 제 2 성격값일 경우에는 구버전 펌웨어에는 없는 추가 또는 삭제된 내용이 있음을 나타낸다. 한편, 상기 데이터 성격정보에 기록된 값이 제 3 성격값일 경우에는 차분 파일의 내용에 따라 구버전 펌웨어의 주소 위치가 변경되었음을 나타낸다.First, the software module for updating the firmware part sequentially analyzes unit data included in a body and reads data personality information of each unit data in step S150. At this time, when the value recorded in the data personality information is the first personality value, it indicates that the content of the corresponding section of the old version firmware has been changed. On the other hand, when the value recorded in the data personality information is the second personality value, it indicates that there is added or deleted content which is not present in the old firmware. On the other hand, if the value recorded in the data personality information is the third personality value, it indicates that the address location of the old version firmware is changed according to the content of the difference file.

만일, 상기 데이터 성격정보에 기록된 값이 제 1 성격값이라면 상기 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 단계 S160a 에서 해당 단위 데이터의 구간정보로부터 구간 길이 및 구버전 펌웨어의 파일 주소 위치를 판독하여, 해당 단위 데이터의 구간 데이터 정보에 기록된 데이터를 상기 구버전 펌웨어의 파일 주소 위치로부터 상기 구간 길이 만큼 기록하여 구버전 펌웨어의 변경된 부분을 변경한다.If the value recorded in the data personality information is the first personality value, the software module for the firmware partial update reads the section length and the file address location of the old version firmware from the section information of the corresponding unit data in step S160a, and the corresponding unit. The data recorded in the section data information of the data is recorded by the section length from the file address position of the old version firmware to change the changed portion of the old version firmware.

만일, 상기 데이터 성격정보에 기록된 값이 제 2 성격값이라면 상기 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 단계 S160b 에서 해당 단위 데이터의 구간정보로부터 구간 길이 및 구버전 펌웨어의 파일 주소 위치를 판독하여, 해당 단위 데이터의 구간 데이터 정보에 기록된 데이터를 상기 구버전 펌웨어의 파일 주소 위치로부터 상기 구간 길이 만큼 기록하여 구버전 펌웨어에서 추가 또는 삭제된 부분을 기록하여 변경한다. 이 때, 데이터가 추가 또는 삭제되는 경우에는 구버전 펌웨어와 신버전 펌웨어의 전체 크기가 달라지므로, 구버전 펌웨어의 상기 파일 주소 위치 이후의 데이터를 메모리상으로 읽어들이고, 추가 또는 삭제된 부분을 기록한 위치 이후에 상기 메모리에 읽어들인 데이터 중에서 추가 또는 삭제된 부분 이외의 데이터를 기록한다.If the value recorded in the data personality information is the second personality value, the software module for the firmware partial update reads the section length and the file address location of the old version firmware from the section information of the corresponding unit data in step S160b, and the corresponding unit. The data recorded in the section data information of the data is recorded by the length of the section from the file address position of the old version firmware, and the part added or deleted in the old version firmware is recorded and changed. In this case, when data is added or deleted, since the total size of the old firmware and the new firmware is different, the data after the file address location of the old firmware is read into the memory, and after the location where the added or deleted part is recorded. Data other than the added or deleted portion of the data read into the memory is recorded.

만일, 상기 데이터 성격정보에 기록된 값이 제 3 성격값이라면 상기 펌웨어 부분 업데이트를 위한 소프트웨어 모듈은 단계 S160c 에서 구버전 펌웨어의 주소 위치를 해당 단위 데이터의 구간정보에 기록된 구버전 펌웨어의 파일 주소 위치로 이동시킨 후, 다음 단위 데이터에 대한 처리를 수행한다. 클라이언트 단말기(200)에 설치되는 펌웨어 부분 업데이트를 위한 소프트웨어 모듈이 위와 같은 처리를 상기 바디(Body)에 포함되는 단위 데이터에 대해 순차적으로 수행하면 구버전 펌웨어의 변경 또는 추가 또는 삭제된 부분에 대한 부분 업데이트가 이루어지게 된다. 따라서, 본 발명은 가변 구조의 차분 파일을 통해 보다 효율적으로 펌웨어 부분 업데이트가 가능해지므로, 상기에서 제시한 본 발명의 목적을 달성할 수 있게 된다.If the value recorded in the data personality information is a third personality value, the software module for updating the firmware partial information may include the address location of the old version firmware as the file address location of the old version firmware recorded in the section information of the corresponding unit data in step S160c. After moving, processing for the next unit data is performed. If the software module for firmware partial update installed in the client terminal 200 performs the above processing on the unit data included in the body sequentially, the partial update of the changed or added or deleted part of the old firmware is performed. Will be made. Accordingly, the present invention enables the firmware partial update to be performed more efficiently through the difference file of the variable structure, thereby achieving the above object of the present invention.

이상에서 설명한 바와 같은 FOTA 시스템은 구버전 펌웨어(Firmware)와 신버전 펌웨어를 비교하여 해당 펌웨어의 변경 또는 추가 또는 삭제된 부분을 추출하고, 이로부터 부분 업데이트를 위한 차분 파일을 생성하여 이를 적어도 하나의 클라이언트 단말기로 전송함으로써 클라이언트 단말기에 설치된 펌웨어에 대한 부분 업데이트를 수행함에 있어서, 가변 구조의 차분 파일을 통해 보다 효율적으로 펌웨어 부분 업데이트가 가능하도록 한 유용한 효과를 가진다.As described above, the FOTA system compares an old version firmware with a new version firmware, extracts the changed, added, or deleted portions of the firmware, and generates a differential file for partial update from the at least one client terminal. In performing the partial update on the firmware installed in the client terminal by transmitting to the network, the partial update of the firmware can be performed more efficiently through the difference file of the variable structure.

본 발명은 첨부된 도면에 의해 참조되는 바람직한 실시예를 중심으로 기술되었지만, 이러한 기재로부터 후술하는 특허청구범위에 의해 포괄되는 범위 내에서 본 발명의 범주를 벗어남이 없이 다양한 변형이 가능하다는 것은 명백하다.While the invention has been described with reference to the preferred embodiments, which are referred to by the accompanying drawings, it is apparent that various modifications are possible without departing from the scope of the invention within the scope covered by the following claims from this description. .

Claims (5)

구버전 펌웨어(Firmware)와 신버전 펌웨어를 바이너리(Binary) 단위로 비교하여 해당 펌웨어의 변경 또는 추가 또는 삭제된 부분을 추출하고, 이로부터 부분 업데이트를 위한 차분 파일을 생성하는 파일 생성부와; 상기 파일 생성부에 의해 생성된 차분 파일을 적어도 하나의 클라이언트 단말기로 전송하여, 해당 클라이언트 단말기에 설치된 해당 펌웨어에 대한 부분 업데이트를 수행하도록 처리하는 업데이트 수행부를; 포함하는 FOTA(Firmware Over The Air) 시스템에 있어서,A file generation unit for comparing the old firmware and the new firmware with a binary unit to extract a changed, added or deleted portion of the firmware, and generate a differential file for partial update therefrom; An update execution unit which transmits the difference file generated by the file generation unit to at least one client terminal and performs a partial update on the firmware installed in the client terminal; Including a FOTA (Firmware Over The Air) system, 상기 차분 파일이:The difference file is: 파일 식별을 위한 식별자 정보와, 파일 특성을 기록한 파일정보와, 신버전 펌웨어 크기 정보와, 구버전 펌웨어 크기 정보를 포함하는 헤더(Header)와;A header including identifier information for file identification, file information recording file characteristics, new version firmware size information, and old version firmware size information; 구간 데이터 성격을 기록한 데이터 성격정보와, 상기 구간 데이터 성격에 따른 구간 길이 및 구버전 펌웨어의 위치정보를 기록한 구간정보와, 상기 구간정보의 구간 길이 만큼 기록되는 데이터 정보를 기록한 구간 데이터 정보로 이루어지는 단위 데이터를 적어도 하나 포함하는 가변 구조의 바디(Body)를;Unit data consisting of data personality information recording section data personality, section information recording section length and location information of the old version firmware according to the section data characteristics, and section data information recording data information recorded as section length of the section information. A body having a variable structure including at least one; 포함하여 이루어지는 것을 특징으로 하는 FOTA 시스템.FOTA system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 구간 데이터 성격정보가:The interval data personality information is: 구버전 펌웨어의 해당 구간 내용이 변경되었음을 나타내는 제 1 성격값과, 구버전 펌웨어에는 없는 추가 또는 삭제된 내용이 있음을 나타내는 제 2 성격값과, 차분 파일의 내용에 따라 구버전 펌웨어의 주소 위치가 변경되었음을 나타내는 제 3 성격값 중 어느 하나인 것을 특징으로 하는 FOTA 시스템.A first personality value indicating that the contents of the corresponding section of the old version firmware have been changed, a second personality value indicating that there is an added or deleted content which is not present in the old version firmware, and an address location of the old version firmware according to the contents of the difference file FOTA system, characterized in that any one of the third personality value. 제 2 항에 있어서,The method of claim 2, 상기 구간 데이터 정보가:The interval data information is: 상기 구간 데이터 성격정보가 제 3 성격값일 경우에는 상기 단위 데이터에 포함되지 않는 것을 특징으로 하는 FOTA 시스템.And when the interval data personality information is a third personality value, the unit data is not included in the unit data. 제 3 항에 있어서,The method of claim 3, wherein 상기 파일정보에 기록되는 파일 특성이:The file characteristics recorded in the file information are: 구버전 펌웨어가 변경되었음을 나타내는 특성값인 것을 특징으로 하는 FOTA 시스템.FOTA system, characterized in that the characteristic value indicating that the old firmware has changed. 제 1 항 내지 제 4 항 중의 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 신버전 펌웨어 크기 정보와, 구버전 펌웨어 크기 정보는:Newer firmware size information and older firmware size information are: 정합성 체크 또는 전송 에러 체크에 이용되는 정보인 것을 특징으로 하는 FOTA 시스템.FOTA system, characterized in that the information used for the consistency check or transmission error check.
KR1020070024173A 2007-03-12 2007-03-12 Firmware over the air system KR20080083512A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070024173A KR20080083512A (en) 2007-03-12 2007-03-12 Firmware over the air system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070024173A KR20080083512A (en) 2007-03-12 2007-03-12 Firmware over the air system

Publications (1)

Publication Number Publication Date
KR20080083512A true KR20080083512A (en) 2008-09-18

Family

ID=40024169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070024173A KR20080083512A (en) 2007-03-12 2007-03-12 Firmware over the air system

Country Status (1)

Country Link
KR (1) KR20080083512A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010052647A1 (en) * 2008-11-10 2010-05-14 Nokia Corporation Method and apparatus for updating firmware
KR101541112B1 (en) * 2013-07-04 2015-07-31 주식회사 미르코퍼레이션 FOTA system and the method
US20160378990A1 (en) * 2015-06-24 2016-12-29 Lenovo (Singapore) Pte, Ltd. Validating firmware on a computing device
KR20210064994A (en) * 2019-11-26 2021-06-03 현대오트론 주식회사 Method for updating vehicular control unit
CN113721968A (en) * 2021-08-31 2021-11-30 杭州海康威视数字技术股份有限公司 Firmware upgrading method and device
KR20220086230A (en) * 2020-12-16 2022-06-23 현대오토에버 주식회사 Difference update method for vehicullr control unit and difference update roll back method
US11650811B2 (en) 2019-11-26 2023-05-16 Hyundai Autoever Corp. Method of updating control unit for vehicle

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010052647A1 (en) * 2008-11-10 2010-05-14 Nokia Corporation Method and apparatus for updating firmware
US8789035B2 (en) 2008-11-10 2014-07-22 Nokia Corporation Method and apparatus for updating firmware
KR101541112B1 (en) * 2013-07-04 2015-07-31 주식회사 미르코퍼레이션 FOTA system and the method
US20160378990A1 (en) * 2015-06-24 2016-12-29 Lenovo (Singapore) Pte, Ltd. Validating firmware on a computing device
US10372914B2 (en) * 2015-06-24 2019-08-06 Lenovo (Singapore) Pte. Ltd. Validating firmware on a computing device
KR20210064994A (en) * 2019-11-26 2021-06-03 현대오트론 주식회사 Method for updating vehicular control unit
US11650811B2 (en) 2019-11-26 2023-05-16 Hyundai Autoever Corp. Method of updating control unit for vehicle
KR20220086230A (en) * 2020-12-16 2022-06-23 현대오토에버 주식회사 Difference update method for vehicullr control unit and difference update roll back method
CN113721968A (en) * 2021-08-31 2021-11-30 杭州海康威视数字技术股份有限公司 Firmware upgrading method and device
CN113721968B (en) * 2021-08-31 2024-04-02 杭州海康威视数字技术股份有限公司 Firmware upgrading method and device

Similar Documents

Publication Publication Date Title
US7873956B2 (en) Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
CN104052818B (en) The version upgrading method and device of a kind of mobile terminal
CN104346167B (en) The method and device of channel bag is applied in generation
JP6033832B2 (en) Apparatus and method for managing firmware verification on a wireless device
KR20080083512A (en) Firmware over the air system
US7401065B2 (en) System for downloading contents, and client terminal for downloading contents from contents server
CN103942058B (en) A kind of EMBEDDED AVIONICS method for upgrading software and system
US20070294685A1 (en) Program upgrade system and method for ota-capable portable device
CN106612192A (en) An equipment upgrading method, apparatus and system
CN106909404A (en) Oftware updating method and system
CN105468393B (en) Module release upgrade method and terminal installation
CN109908585B (en) File processing method and system, computing device and storage medium
CN107122212A (en) Firmware encrypting method
CN107797818A (en) Application program updating method and device
CN112822199B (en) OTA (over the air) upgrading method and system based on protocol conversion
CN111897846A (en) Cache data verification method, device, equipment and storage medium
CN103761095B (en) Method for generating universal upgrade file head data information
CN109462661B (en) Data synchronization method and device, computer equipment and storage medium
CN117391099A (en) Data downloading and checking method and system for smart card and storage medium
CN112286565A (en) Embedded system differential upgrading method based on storage container
CN113225397A (en) Firmware upgrading method and device for embedded equipment, terminal and storage medium
CN107122668A (en) Firmware encrypting method
CN107783778B (en) Increment upgrading method based on characteristic value table look-up method
CN113590161B (en) Memory-controllable NB-IOT module differential upgrading method and system
CN101464876A (en) Data updating method for electronic dictionary machine

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration
NORF Unpaid initial registration fee