KR102192857B1 - Method and apparatus for providing firmware through over the air - Google Patents

Method and apparatus for providing firmware through over the air Download PDF

Info

Publication number
KR102192857B1
KR102192857B1 KR1020190152447A KR20190152447A KR102192857B1 KR 102192857 B1 KR102192857 B1 KR 102192857B1 KR 1020190152447 A KR1020190152447 A KR 1020190152447A KR 20190152447 A KR20190152447 A KR 20190152447A KR 102192857 B1 KR102192857 B1 KR 102192857B1
Authority
KR
South Korea
Prior art keywords
firmware
electronic device
message
target firmware
server
Prior art date
Application number
KR1020190152447A
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 KR1020190152447A priority Critical patent/KR102192857B1/en
Application granted granted Critical
Publication of KR102192857B1 publication Critical patent/KR102192857B1/en

Links

Images

Classifications

    • H04M1/72525
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)

Abstract

To update a firmware, provided is a device which asks whether or not the target firmware exists to a server, transmits a message requesting download of the target firmware including a cell identifier (ID) set for an electronic device to the server, and receives the target firmware through the server when the number of other electronic devices having the cell ID which is downloading the target firmware is less than that of a preset number for the cell ID.

Description

OTA를 통한 펌웨어 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING FIRMWARE THROUGH OVER THE AIR}Method and device for providing firmware through OTA{METHOD AND APPARATUS FOR PROVIDING FIRMWARE THROUGH OVER THE AIR}

아래의 실시예들은 펌웨어를 제공하기 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 OTA(Over the Air)를 통해 전자 장치에 펌웨어를 제공하는 방법 장치에 관한 것이다.The following embodiments relate to a method and apparatus for providing firmware, and more particularly, to a method apparatus for providing firmware to an electronic device through OTA (Over the Air).

종래에는 휴대용 기기의 펌웨어를 업그레이드하기 위해 제조사에서 운영하는 서비스센터를 사용자가 방문하여 A/S를 받는 수밖에 없었다. 그러나 최근에는 이동통신의 발달과 더불어 OTA(over the air)에 관한 표준이 제정됨으로써 직접 서비스센터를 방문하지 않고도 휴대용 기기의 펌웨어를 무선망을 통해 업그레이드할 수 있는 방법이 제공되고 있다.Conventionally, in order to upgrade the firmware of a portable device, a user had to visit a service center operated by a manufacturer and receive A/S. However, in recent years, with the development of mobile communication, standards for over the air (OTA) have been established, providing a method for upgrading the firmware of portable devices through a wireless network without directly visiting a service center.

선행기술문헌인 대한민국 공개특허공보 제10-2004-0036771(발명의 명칭 : OTA를 이용한 바이너리 데이타 업그레이드 방법)에 따르면 이동통신 단말기를 사용하는 사용자가 바이너리 데이타를 업그레이드 받고자 할 때, 이동통신 단말기에서 통화시간 이외의 대기시간 동안 기지국으로부터 바이너리 데이타를 리얼타임으로 전송받아 저장하고 있다가 필요시 사용자에 의해 업그레이드가 이루어지도록 함으로써 사용자가 직접 고객 서비스 센터를 방문하지 않아도 OTA를 통해 무선 에어데이타를 업그레이드할 수 있도록 한 발명에 관한 것이다.According to the prior art document, Korean Patent Publication No. 10-2004-0036771 (title of the invention: binary data upgrade method using OTA), when a user using a mobile communication terminal wants to upgrade binary data, a call is made on the mobile communication terminal. Binary data is transmitted and stored in real time from the base station during the waiting time outside the time, and upgrades are performed by the user when necessary, so that the wireless air data can be upgraded through OTA without the user directly visiting the customer service center. It relates to the invention that has been made.

일 실시예는 OTA를 통해 펌웨어를 수신하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for receiving firmware through an OTA.

일 실시예는 OTA를 통해 펌웨어를 중계하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for relaying firmware through OTA.

일 측면에 따른, 전자 장치에 의해 수행되는, 펌웨어 갱신 방법은, 서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계, 상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계, 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계, 및 상기 타겟 펌웨어에 기초하여 상기 전자 장치의 기본 펌웨어를 갱신하는 단계를 포함한다.According to an aspect, a firmware update method performed by an electronic device includes inquiring whether or not a target firmware exists, and when the target firmware exists, a resource address associated with the target firmware is received from the server. And transmitting a message requesting download of the target firmware to the server based on the resource address-the message includes a cell ID set for the electronic device -, the target firmware When the number of other electronic devices having the cell identifier being downloaded is less than a preset number for the cell identifier, receiving the target firmware through the server, and a basic firmware of the electronic device based on the target firmware And updating.

상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는, OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계를 포함한다.Receiving the target firmware through the server includes receiving the target firmware over the air (OTA).

상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고, 상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함할 수 있다.The message is generated based on the oneM2M message standard, and the message may further include the cell identifier in the header of the message.

상기 메시지는 상기 메시지의 헤더에 네트워크 베어러(network bearer)를 더 포함할 수 있다.The message may further include a network bearer in the header of the message.

상기 타겟 펌웨어는 상기 기본 펌웨어에 비해 새로운 버전일 수 있다.The target firmware may be a newer version than the basic firmware.

상기 펌웨어 갱신 방법은, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계를 더 포함할 수 있다.The firmware update method may further include receiving a transmission rejection message from the server when the number of other electronic devices having the cell identifier downloading the target firmware is greater than or equal to a preset number for the cell identifier. .

다른 일 측면에 따른, 전자 장치는, 펌웨어를 갱신하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계, 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계, 및 상기 타겟 펌웨어에 기초하여 상기 전자 장치의 기본 펌웨어를 갱신하는 단계를 수행한다.According to another aspect, an electronic device includes a memory in which a program for updating firmware is recorded, and a processor that executes the program, and the program includes the target firmware and the target firmware from the server when the target firmware is present. Receiving an associated resource address, transmitting a message requesting download of the target firmware to the server based on the resource address-The message includes a cell ID set for the electronic device- If the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier, receiving the target firmware through the server, and the electronic device based on the target firmware Perform the steps of updating the basic firmware of the device.

상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는, OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계를 포함한다.Receiving the target firmware through the server includes receiving the target firmware over the air (OTA).

상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고, 상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함할 수 있다.The message is generated based on the oneM2M message standard, and the message may further include the cell identifier in the header of the message.

또 다른 일 측면에 따른, 서버에 의해 수행되는, 타겟 펌웨어 제공 방법은, 전자 장치로부터 상기 타겟 펌웨어의 존재 문의를 수신하는 단계, 상기 타겟 펌웨어가 존재하는 경우, 상기 전자 장치로 상기 타겟 펌웨어와 연관된 자원 주소를 전송하는 단계, 상기 전자 장치로부터 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 수신하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정하는 단계, 및 상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계를 포함한다.According to another aspect, a method for providing a target firmware, performed by a server, includes receiving an inquiry about the existence of the target firmware from an electronic device, and if the target firmware exists, the electronic device is associated with the target firmware. Transmitting a resource address, receiving a message requesting download of the target firmware based on the resource address from the electronic device-The message includes a cell ID set for the electronic device- , Determining whether the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier, and the number of the other electronic devices is a preset number for the cell identifier If less than, transmitting the target firmware to the electronic device.

상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계는, OTA(over the air)로 상기 타겟 펌웨어를 전송하는 단계를 포함할 수 있다.Transmitting the target firmware to the electronic device may include transmitting the target firmware over the air (OTA).

상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고, 상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함할 수 있다.The message is generated based on the oneM2M message standard, and the message may further include the cell identifier in the header of the message.

상기 펌웨어 제공 방법은, 상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 전자 장치로 전송하는 단계를 더 포함할 수 있다.The firmware providing method may further include transmitting a transmission rejection message to the electronic device when the number of the other electronic devices is equal to or greater than a preset number for the cell identifier.

또 다른 일 측면에 따른, 서버는, 펌웨어를 전송하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 전자 장치로부터 상기 타겟 펌웨어의 존재 문의를 수신하는 단계, 상기 타겟 펌웨어가 존재하는 경우, 상기 전자 장치로 상기 타겟 펌웨어와 연관된 자원 주소를 전송하는 단계, 상기 전자 장치로부터 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 수신하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정하는 단계, 및 상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계를 수행한다.According to another aspect, the server includes a memory in which a program for transmitting firmware is recorded, and a processor that executes the program, wherein the program includes receiving an inquiry about the existence of the target firmware from an electronic device, the When the target firmware is present, transmitting a resource address associated with the target firmware to the electronic device, receiving a message requesting download of the target firmware from the electronic device based on the resource address-The message is Including a cell ID set for the electronic device-determining whether the number of other electronic devices having the cell ID for downloading the target firmware is less than a preset number for the cell ID, And when the number of the other electronic devices is less than a preset number for the cell identifier, transmitting the target firmware to the electronic device.

또 다른 일 측면에 따른, 펌웨어 중계 장치에 의해 수행되는, 펌웨어 중계 방법은, 전자 장치로부터 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 수신하는 단계, 상기 전자 장치의 펌웨어의 버전을 수신하는 단계, 상기 펌웨어의 버전에 기초하여 서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계, 상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계, 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 셀 식별자를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계, 및 상기 타겟 펌웨어를 상기 전자 장치로 제공하는 단계를 포함한다.According to another aspect, a firmware relay method performed by a firmware relay device includes: receiving a cell ID set for the electronic device from an electronic device, receiving a version of the firmware of the electronic device Inquiring whether or not the target firmware exists based on the version of the firmware, if the target firmware exists, receiving a resource address associated with the target firmware from the server, based on the resource address And transmitting a message requesting download of the target firmware to the server-the message includes the cell identifier -, the number of other electronic devices having the cell identifier downloading the target firmware is determined by the cell identifier If the number is less than a preset number, receiving the target firmware through the server, and providing the target firmware to the electronic device.

상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는, OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계를 포함할 수 있다.Receiving the target firmware through the server may include receiving the target firmware over the air (OTA).

상기 메시지는 LWM2M(Lightweight M2M) 메시지 규격에 기초하여 생성될 수 있다.The message may be generated based on a Lightweight M2M (LWM2M) message standard.

상기 메시지는 네트워크 베어러(network bearer)를 더 포함할 수 있다.The message may further include a network bearer.

펌웨어 중계 방법은, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계를 더 포함할 수 있다.The firmware relaying method may further include receiving a transmission rejection message from the server when the number of other electronic devices having the cell identifier downloading the target firmware is equal to or greater than a preset number for the cell identifier.

또 다른 일 측면에 따른, 펌웨어 중계 장치는, 펌웨어를 중계하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 전자 장치로부터 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 수신하는 단계, 상기 전자 장치의 펌웨어의 버전을 수신하는 단계, 상기 펌웨어의 버전에 기초하여 서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계, 상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계, 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 셀 식별자를 포함함 -, 상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계, 및 상기 타겟 펌웨어를 상기 전자 장치로 제공하는 단계를 수행한다.According to another aspect, a firmware relay device includes a memory in which a program relaying firmware is recorded, and a processor that executes the program, wherein the program includes a cell identifier set for the electronic device from the electronic device. ID) receiving, receiving a version of the firmware of the electronic device, inquiring whether or not a target firmware exists based on the version of the firmware, and if the target firmware exists, from the server Receiving a resource address associated with the target firmware, transmitting a message requesting download of the target firmware to the server based on the resource address-the message includes the cell identifier -, the target firmware When the number of other electronic devices having the cell identifier being downloaded is less than a preset number for the cell identifier, receiving the target firmware through the server, and providing the target firmware to the electronic device do.

OTA를 통해 제한적으로 전자 장치가 펌웨어를 수신함으로써 저속 네트워크 셀의 네트워크 부하를 감소시킬 수 있다.It is possible to reduce the network load of the low-speed network cell by restricting the electronic device to receive the firmware through the OTA.

도 1은 일 예에 따른 사물인터넷을 통한 펌웨어 갱신 시스템을 도시한다.
도 2는 일 실시예에 따른 펌웨어를 갱신하는 전자 장치의 구성도이다.
도 3은 일 실시예에 따른 펌웨어를 제공하는 서버의 구성도이다.
도 4는 일 실시예에 따른 전자 장치로 펌웨어를 제공하는 방법의 신호 흐름도이다.
도 5는 일 실시예에 따른 펌웨어를 중계하는 장치의 구성도이다.
도 6은 일 실시예에 따른 중계를 통해 전자 장치로 펌웨어를 제공하는 방법의 신호 흐름도이다.
1 shows a firmware update system through the Internet of Things according to an example.
2 is a block diagram of an electronic device for updating firmware according to an exemplary embodiment.
3 is a configuration diagram of a server providing firmware according to an embodiment.
4 is a signal flow diagram of a method of providing firmware to an electronic device according to an exemplary embodiment.
5 is a configuration diagram of an apparatus for relaying firmware according to an embodiment.
6 is a signal flow diagram of a method of providing firmware to an electronic device through relay, according to an exemplary embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. The same reference numerals in each drawing indicate the same members.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various changes may be made to the embodiments described below. The embodiments described below are not intended to be limited to the embodiments, and should be understood to include all changes, equivalents, and substitutes thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to describe specific embodiments, and are not intended to limit the embodiments. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

도 1은 일 예에 따른 사물인터넷을 통한 펌웨어 갱신 시스템을 도시한다.1 shows a firmware update system through the Internet of Things according to an example.

일 측면에 따른, 펌웨어 갱신 시스템은 펌웨어를 제공하는 서버(110) 및 펌웨어를 사용하는 하나 이상의 전자 장치들(120 및 130)을 포함할 수 있다. 펌웨어의 용어는 펌웨어 뿐만 아니라 소프트웨어, 프로그램, 운영체제, 및 앱 등을 포함할 수 있으며, 특정한 실시예로 한정되지 않는다. 이하에서, 간결한 설명을 위해 용어 "펌웨어"가 기재되지만, 용어 "펌웨어"는 펌웨어 그 자체만을 나타내지 않는다.According to an aspect, the firmware update system may include a server 110 providing firmware and one or more electronic devices 120 and 130 using the firmware. The term of firmware may include not only firmware but also software, programs, operating systems, and apps, and is not limited to specific embodiments. In the following, the term "firmware" is described for concise description, but the term "firmware" does not represent only the firmware itself.

예를 들어, 전자 장치(120)의 새로운 기능 또는 보안 등을 위해 전자 장치(120)를 제어하는 펌웨어가 갱신될 수 있다. 갱신된 펌웨어는 새로운 버전 또는 최신 버전일 수 있다. 전자 장치(120)에 최신 펌웨어가 적용되기 위해서는, 서버(110)가 최신 펌웨어를 전자 장치(120)에 제공해야 한다. For example, firmware for controlling the electronic device 120 may be updated for new functions or security of the electronic device 120. The updated firmware may be a new version or a newer version. In order to apply the latest firmware to the electronic device 120, the server 110 must provide the latest firmware to the electronic device 120.

서버(110)는 무선 연결으로 전자 장치들(120 및 130)에게 펌웨어를 제공할 수 있다. 전자 장치들(120 및 130)이 상이한 경우, 상이한 펌웨어가 각각 제공될 수 있다. OTA(Over the Air)를 통한 무선 연결이 예시되었으나, OTA가 아닌 네트워크를 통한 무선 연결도 가능하다.The server 110 may provide firmware to the electronic devices 120 and 130 through a wireless connection. When the electronic devices 120 and 130 are different, different firmware may be provided, respectively. A wireless connection through OTA (Over the Air) has been illustrated, but a wireless connection through a network other than OTA is also possible.

전자 장치들(120 및 130)은 사물인터넷(Internet of thing: IoT)을 지원하는 장치들일 수 있다. 예를 들어, 전자 장치들(120 및 130)은 홈 네트워크를 통해 연결될 수 있고, 홈 네트워크는 허브 장치에 의해 관리될 수 있다. 서버(110)는 개별적인 연결 또는 홈 네트워크를 통해 최신 펌웨어를 전자 장치들(120 및 130)에 제공할 수 있다.The electronic devices 120 and 130 may be devices supporting the Internet of Things (IoT). For example, the electronic devices 120 and 130 may be connected through a home network, and the home network may be managed by a hub device. The server 110 may provide the latest firmware to the electronic devices 120 and 130 through an individual connection or a home network.

아래에서 도 2 내지 6을 참조하여 펌웨어를 전자 장치로 제공하는 방법이 상세히 설명된다.Hereinafter, a method of providing firmware to an electronic device will be described in detail with reference to FIGS. 2 to 6.

도 2는 일 실시예에 따른 펌웨어를 갱신하는 전자 장치의 구성도이다.2 is a block diagram of an electronic device for updating firmware according to an exemplary embodiment.

펌웨어를 갱신하는 전자 장치(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함한다. 예를 들어, 전자 장치(200)는 도 1을 참조하여 전술된 전자 장치들(120 및 130) 또는 전자 장치들(120 및 130) 각각에 개별적으로 포함된 전자 장치일 수 있다.The electronic device 200 for updating firmware includes a communication unit 210, a processor 220, and a memory 230. For example, the electronic device 200 may be an electronic device individually included in each of the electronic devices 120 and 130 described above with reference to FIG. 1 or the electronic devices 120 and 130.

통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit 210 is connected to the processor 220 and the memory 230 to transmit and receive data. The communication unit 210 may be connected to other external devices to transmit and receive data. Hereinafter, the expression "transmitting/receiving A" may indicate transmitting/receiving "information or data representing A".

통신부(210)는 전자 장치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 전자 장치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The communication unit 210 may be implemented as a circuit network in the electronic device 200. For example, the communication unit 210 may include an internal bus and an external bus. As another example, the communication unit 210 may be an element connecting the electronic device 200 and an external device. The communication unit 210 may be an interface. The communication unit 210 may receive data from an external device and transmit the data to the processor 220 and the memory 230.

프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The processor 220 processes data received by the communication unit 210 and data stored in the memory 230. The “processor” may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program. For example, a data processing device implemented in hardware is a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.The processor 220 executes computer-readable code (eg, firmware) stored in a memory (eg, memory 230) and instructions induced by the processor 220.

메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 갱신할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 230 stores data received by the communication unit 210 and data processed by the processor 220. For example, the memory 230 may store a program (or application, firmware). The stored program may be a set of syntaxes that are coded to update the firmware and executed by the processor 220.

일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to an aspect, the memory 230 may include one or more volatile memories, nonvolatile memories and random access memories (RAM), flash memories, hard disk drives, and optical disk drives.

메모리(230)는 전자 장치(200)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 전자 장치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The memory 230 stores an instruction set (eg, firmware) for operating the electronic device 200. An instruction set for operating the electronic device 200 is executed by the processor 220.

통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 4 및 6을 참조하여 상세히 설명된다.The communication unit 210, the processor 220, and the memory 230 will be described in detail with reference to FIGS. 4 and 6 below.

도 3은 일 실시예에 따른 펌웨어를 제공하는 서버의 구성도이다.3 is a configuration diagram of a server providing firmware according to an embodiment.

펌웨어를 제공하는 서버(300)는 통신부(310), 프로세서(320) 및 메모리(330)를 포함한다. 예를 들어, 서버(300)는 도 1을 참조하여 전술된 서버(110)일 수 있다.The server 300 providing firmware includes a communication unit 310, a processor 320 and a memory 330. For example, the server 300 may be the server 110 described above with reference to FIG. 1.

통신부(310)는 프로세서(320) 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 310 is connected to the processor 320 and the memory 330 to transmit and receive data. The communication unit 310 may be connected to other external devices to transmit and receive data.

통신부(310)는 서버(300) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(310)는 서버(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 프로세서(320) 및 메모리(330)에 데이터를 전송할 수 있다.The communication unit 310 may be implemented as a network in the server 300. For example, the communication unit 310 may include an internal bus and an external bus. As another example, the communication unit 310 may be an element that connects the server 300 and an external device. The communication unit 310 may be an interface. The communication unit 310 may receive data from an external device and transmit the data to the processor 320 and the memory 330.

프로세서(320)는 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. 프로세서(320)는 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(320)에 의해 유발된 인스트럭션들을 실행한다.The processor 320 processes data received by the communication unit 310 and data stored in the memory 330. The processor 320 executes computer-readable code (eg, firmware) stored in a memory (eg, memory 330) and instructions induced by the processor 320.

메모리(330)는 통신부(310)가 수신한 데이터 및 프로세서(320)가 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 갱신할 수 있도록 코딩되어 프로세서(320)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The memory 330 stores data received by the communication unit 310 and data processed by the processor 320. For example, the memory 330 may store a program (or application, firmware). The stored program may be a set of syntaxes that are coded to update the firmware and executed by the processor 320.

일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the memory 330 may include one or more volatile memory, nonvolatile memory and RAM, flash memory, hard disk drive, and optical disk drive.

메모리(330)는 서버(300)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 서버(300)를 동작 시키는 명령어 세트는 프로세서(320)에 의해 실행된다.The memory 330 stores an instruction set (eg, firmware) for operating the server 300. The instruction set for operating the server 300 is executed by the processor 320.

통신부(310), 프로세서(320) 및 메모리(330)에 대해, 아래에서 도 4 및 6을 참조하여 상세히 설명된다.The communication unit 310, the processor 320, and the memory 330 will be described in detail with reference to FIGS. 4 and 6 below.

도 4는 일 실시예에 따른 전자 장치로 펌웨어를 제공하는 방법의 신호 흐름도이다.4 is a signal flow diagram of a method of providing firmware to an electronic device according to an exemplary embodiment.

단계(405)에서, 서버(300)는 펌웨어가 갱신 또는 최신 펌웨어가 생성된 경우 어드민 페이지(400)로부터 최신 펌웨어를 등록한다.In step 405, the server 300 registers the latest firmware from the admin page 400 when the firmware is updated or the latest firmware is generated.

단계(410)에서, 서버(300)는 서버(300)의 데이터베이스(DB)(340)에 펌웨어 정보를 등록한다. DB(340)는 서버(300)의 메모리(330)일 수 있다.In step 410, the server 300 registers firmware information in the database (DB) 340 of the server 300. The DB 340 may be the memory 330 of the server 300.

단계(415)에서, 전자 장치(200)는 최신 펌웨어가 존재하는지 여부를 서버(300)에 문의한다. 예를 들어, 전자 장치(200)는 미리 설정된 주기로 문의할 수 있다. 전자 장치(200)는 문의와 함께 전자 장치(200)에 설치된 펌웨어에 대한 정보를 서버(300)로 전송할 수 있다. 예를 들어, 펌웨어에 대한 정보는 펌웨어의 버전 정보일 수 있다. 최신 펌웨어는 전자 장치(200)가 다운로드하고자 하는 타겟 펌웨어일 수 있다.In step 415, the electronic device 200 inquires with the server 300 whether or not the latest firmware exists. For example, the electronic device 200 may make an inquiry at a preset cycle. The electronic device 200 may transmit information on the firmware installed in the electronic device 200 to the server 300 together with an inquiry. For example, the information on the firmware may be version information of the firmware. The latest firmware may be a target firmware that the electronic device 200 wants to download.

단계(420)에서, 서버(300)는 DB(340)에 등록된 최신 펌웨어를 조회하고, 전자 장치(200)에 설치된 펌웨어가 최신 버전인지 여부를 결정한다.In step 420, the server 300 searches for the latest firmware registered in the DB 340 and determines whether the firmware installed in the electronic device 200 is the latest version.

단계(425)에서, 서버(300)는 최신 펌웨어가 존재하는 경우, 최신 펌웨어와 연관된 자원 주소를 전자 장치(200)로 전송한다. 자원 주소는 URL(uniform resource locator)일 수 있다.In step 425, when the latest firmware exists, the server 300 transmits a resource address associated with the latest firmware to the electronic device 200. The resource address may be a URL (uniform resource locator).

단계(430)에서, 서버(300)는 최신 펌웨어의 다운로드를 요청하는 메시지를 전자 장치(200)로부터 수신한다. 다운로드 요청은 자원 주소에 기초할 수 있다.In step 430, the server 300 receives a message requesting download of the latest firmware from the electronic device 200. The download request may be based on the resource address.

메시지는 전자 장치(200)에 대해 설정된 셀 식별자(cell ID)를 포함할 수 있다. 추가적으로, 메시지는 네트워크 베어러(network bearer)를 더 포함할 수 있다. 셀 식별자는 전자 장치(200)의 식별자 또는 전자 장치(200)가 포함된 영역의 식별자일 수 있다. 예를 들어, 셀 식별자는 홈 네트워크의 식별자일 수 있고, 홈 네트워크 내에는 복수의 전자 장치들이 포함될 수 있다.The message may include a cell ID set for the electronic device 200. Additionally, the message may further include a network bearer. The cell identifier may be an identifier of the electronic device 200 or an identifier of a region in which the electronic device 200 is included. For example, the cell identifier may be an identifier of a home network, and a plurality of electronic devices may be included in the home network.

셀 식별자는 데이터 전송을 위한 특정한 영역의 리소스들이 펌웨어 다운로드에만 사용되지 않도록 제한을 부여하기 위한 것일 수 있다. 예를 들어, 펌웨어 다운로드에만 리소스들이 이용되어, 중요한 데이터가 전송되지 않는 상황을 방지하기 위해 셀 식별자가 이용될 수 있다. 즉, 대역폭이 낮은 무선 네트워크 환경에서 다수의 전자 장치들에 대한 펌웨어 전송으로 인한 네트워크 과부하를 방지하고, 상기의 전송에 의해 전자 장치의 데이터 송수신이 방해되는 것을 방지할 수 있다. 셀 식별자를 이용한 펌웨어 전송의 제한에 대해 아래에서 보다 상세히 설명된다.The cell identifier may be used to impose restrictions so that resources of a specific area for data transmission are not used only for firmware download. For example, resources are used only for firmware download, and a cell identifier may be used to prevent a situation in which important data is not transmitted. That is, in a wireless network environment with a low bandwidth, network overload due to firmware transmission to a plurality of electronic devices may be prevented, and data transmission and reception of electronic devices may be prevented from being disturbed by the transmission. The limitation of firmware transmission using the cell identifier will be described in more detail below.

일 측면에 따르면, 메시지는 oneM2M 메시지 규격에 기초하여 생성될 수 있다. 메시지가 oneM2M 메시지 규격에 기초하여 생성되는 경우, 셀 식별자 및 네트워크 베어러를 위한 필드가 따로 정의되지 않을 수 있다. 셀 식별자 및 네트워크 베어러가 메시지의 헤더에 포함되도록 메시지가 생성될 수 있다.According to one aspect, the message may be generated based on the oneM2M message standard. When a message is generated based on the oneM2M message standard, fields for a cell identifier and a network bearer may not be separately defined. The message may be generated so that the cell identifier and the network bearer are included in the header of the message.

단계(435)에서, 서버(300)는 셀 식별자에 기초하여 해당 셀 식별자에 대한 현황을 조회할 수 있다. 예를 들어, 서버(300)는 셀 식별자를 갖는 하나 이상의 전자 장치들로부터 펌웨어 전송 요청을 수신한 경우, DB(340)에 셀 식별자에 대한 카운트를 증가시킬 수 있다. 다운로드가 완료된 경우 카운트는 감소된다. 서버(300)는 셀 식별자에 대한 현재의 현황을 조회할 수 있다.In step 435, the server 300 may query the current status of the cell identifier based on the cell identifier. For example, when receiving a firmware transmission request from one or more electronic devices having a cell identifier, the server 300 may increase the count of the cell identifier to the DB 340. When the download is complete, the count is decremented. The server 300 may inquire the current status of the cell identifier.

단계(440)에서, 서버(300)는 최신 펌웨어를 다운로드 중인 셀 식별자를 갖는 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정한다. 셀 식별자를 갖는 해당 셀에서 펌웨어 전송이 진행되어도 데이터 송수신에 문제가 없는 개수가 미리 설정될 수 있다. 상기의 개수는 해당 셀의 데이터 전송 능력에 기초하여 설정될 수 있다. 즉, 다운로드 진행 중인 개수가 미리 설정된 개수 미만인지 여부가 결정될 수 있다.In step 440, the server 300 determines whether the number of other electronic devices having a cell identifier downloading the latest firmware is less than a preset number for the cell identifier. Even if firmware transmission is performed in a corresponding cell having a cell identifier, a number without problems in data transmission/reception may be preset. The above number may be set based on the data transmission capability of the corresponding cell. That is, it may be determined whether the number of downloads in progress is less than a preset number.

단계(445)에서, 서버(300)는 펌웨어 전송이 진행 중인 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 전자 장치(200)로 최신 펌웨어를 전송한다. 예를 들어, 서버(300)는 OTA로 최신 펌웨어를 전송할 수 있다.In step 445, when the number of other electronic devices on which firmware transmission is in progress is less than a preset number for the cell identifier, the server 300 transmits the latest firmware to the electronic device 200. For example, the server 300 may transmit the latest firmware via OTA.

단계(450)에서, 서버(300)는 펌웨어 전송이 진행 중인 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 전자 장치(200)로 전송한다.In step 450, when the number of other electronic devices on which firmware transmission is in progress is equal to or greater than a preset number for the cell identifier, the server 300 transmits a transmission rejection message to the electronic device 200.

단계(455)에서, 전자 장치(200)는 펌웨어를 갱신한다. 갱신된 펌웨어는 최신 버전일 수 있다.In step 455, the electronic device 200 updates the firmware. The updated firmware may be the latest version.

도 4를 참조하여 전자 장치(200)에 펌웨어를 직접 제공하는 방법이 설명되었으나, 아래에서는 전자 장치(200)에 펌웨어를 중계하여 제공하는 방법이 설명된다.A method of directly providing firmware to the electronic device 200 has been described with reference to FIG. 4, but a method of relaying and providing the firmware to the electronic device 200 is described below.

도 5는 일 실시예에 따른 펌웨어를 중계하는 장치의 구성도이다.5 is a configuration diagram of an apparatus for relaying firmware according to an embodiment.

펌웨어를 중계하는 중계 장치(500)는 통신부(510), 프로세서(520), 및 메모리(530)를 포함한다. 예를 들어, 중계 장치(500)는 도 1을 참조하여 전술된 허브 장치일 수 있다. 중계 장치(500)는 도 2 내지 4를 참조하여 전술된 전자 장치(200) 및 서버(300) 사이에 위치할 수 있다.The relay device 500 that relays the firmware includes a communication unit 510, a processor 520, and a memory 530. For example, the relay device 500 may be the hub device described above with reference to FIG. 1. The relay device 500 may be located between the electronic device 200 and the server 300 described above with reference to FIGS. 2 to 4.

통신부(510)는 프로세서(520) 및 메모리(530)와 연결되어 데이터를 송수신한다. 통신부(510)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 510 is connected to the processor 520 and the memory 530 to transmit and receive data. The communication unit 510 may be connected to other external devices to transmit and receive data.

통신부(510)는 중계 장치(500) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(510)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(510)는 중계 장치(500)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(510)는 인터페이스일 수 있다. 통신부(510)는 외부의 장치로부터 데이터를 수신하여, 프로세서(520) 및 메모리(530)에 데이터를 전송할 수 있다.The communication unit 510 may be implemented as a network in the relay device 500. For example, the communication unit 510 may include an internal bus and an external bus. As another example, the communication unit 510 may be an element connecting the relay device 500 and an external device. The communication unit 510 may be an interface. The communication unit 510 may receive data from an external device and transmit the data to the processor 520 and the memory 530.

프로세서(520)는 통신부(510)가 수신한 데이터 및 메모리(530)에 저장된 데이터를 처리한다. 프로세서(520)는 메모리(예를 들어, 메모리(530))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(520)에 의해 유발된 인스트럭션들을 실행한다.The processor 520 processes data received by the communication unit 510 and data stored in the memory 530. The processor 520 executes computer-readable code (eg, firmware) stored in a memory (eg, memory 530) and instructions induced by the processor 520.

메모리(530)는 통신부(510)가 수신한 데이터 및 프로세서(520)가 처리한 데이터를 저장한다. 예를 들어, 메모리(530)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 중계할 수 있도록 코딩되어 프로세서(520)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The memory 530 stores data received by the communication unit 510 and data processed by the processor 520. For example, the memory 530 may store a program (or application, firmware). The stored program may be a set of syntaxes that are coded to relay the firmware and executed by the processor 520.

일 측면에 따르면, 메모리(530)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the memory 530 may include one or more volatile memory, nonvolatile memory and RAM, flash memory, hard disk drive, and optical disk drive.

메모리(530)는 중계 장치(500)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 중계 장치(500)를 동작 시키는 명령어 세트는 프로세서(520)에 의해 실행된다.The memory 530 stores an instruction set (eg, firmware) for operating the relay device 500. An instruction set for operating the relay device 500 is executed by the processor 520.

통신부(510), 프로세서(520) 및 메모리(530)에 대해, 아래에서 도 6을 참조하여 상세히 설명된다.The communication unit 510, the processor 520, and the memory 530 will be described in detail below with reference to FIG. 6.

도 6은 일 실시예에 따른 중계를 통해 전자 장치로 펌웨어를 제공하는 방법의 신호 흐름도이다.6 is a signal flow diagram of a method of providing firmware to an electronic device through relay, according to an exemplary embodiment.

단계(605)에서, 중계 장치(500)는 전자 장치(200)의 셀 식별자를 수신한다. 예를 들어, 전자 장치(200)의 셀 식별자가 독출될 수 있다.In step 605, the relay device 500 receives the cell identifier of the electronic device 200. For example, the cell identifier of the electronic device 200 may be read.

단계(610)에서, 중계 장치(500)는 전자 장치(200)의 펌웨어의 버전을 수신한다. 예를 들어, 전자 장치(200)의 펌웨어의 버전이 독출될 수 있다.In step 610, the relay device 500 receives a version of the firmware of the electronic device 200. For example, the version of the firmware of the electronic device 200 may be read.

단계(615)에서, 중계 장치(500)는 최신 펌웨어가 존재하는지 여부를 서버(300)에 문의한다. 예를 들어, 중계 장치(500)는 미리 설정된 주기로 문의할 수 있다. 중계 장치(500)는 문의와 함께 전자 장치(200)에 설치된 펌웨어에 대한 정보를 서버(300)로 전송할 수 있다. 예를 들어, 펌웨어에 대한 정보는 펌웨어의 버전 정보일 수 있다. 최신 펌웨어는 전자 장치(200)가 다운로드하고자 하는 타겟 펌웨어일 수 있다.In step 615, the relay device 500 inquires with the server 300 whether or not the latest firmware exists. For example, the relay device 500 may inquire at a preset period. The relay device 500 may transmit information on the firmware installed in the electronic device 200 to the server 300 together with an inquiry. For example, the information on the firmware may be version information of the firmware. The latest firmware may be a target firmware that the electronic device 200 wants to download.

단계(620)에서, 서버(300)는 최신 펌웨어가 존재하는 경우, 최신 펌웨어와 연관된 자원 주소를 중계 장치(500)로 전송한다.In step 620, when the latest firmware exists, the server 300 transmits a resource address associated with the latest firmware to the relay device 500.

단계(625)에서, 중계 장치(500)는 최신 펌웨어의 다운로드를 요청하는 메시지를 서버(300)로 전송한다. 다운로드 요청은 자원 주소에 기초할 수 있다. 도 4를 참조하여 전술된 실시예와는 상이하게, 전자 장치(200)의 다운로드 요청이 없는 경우에도 중계 장치(500)는 최신 펌웨어의 다운로드를 서버(300)로 요청할 수 있다.In step 625, the relay device 500 transmits a message requesting download of the latest firmware to the server 300. The download request may be based on the resource address. Unlike the embodiment described above with reference to FIG. 4, even when there is no download request from the electronic device 200, the relay device 500 may request the server 300 to download the latest firmware.

메시지는 전자 장치(200)의 셀 식별자를 포함할 수 있다. 추가적으로, 메시지는 네트워크 베어러를 더 포함할 수 있다.The message may include the cell identifier of the electronic device 200. Additionally, the message may further include a network bearer.

일 측면에 따르면, 메시지는 LwM2M(Lightweight M2M) 메시지 규격에 기초하여 생성될 수 있다. 메시지가 LwM2M 메시지 규격에 기초하여 생성되는 경우, 셀 식별자 및 네트워크 베어러를 위한 필드가 정의되어 있을 수 있다.According to an aspect, a message may be generated based on a Lightweight M2M (LwM2M) message standard. When the message is generated based on the LwM2M message standard, fields for a cell identifier and a network bearer may be defined.

단계(630)에서, 서버(300)는 셀 식별자에 기초하여 해당 셀 식별자에 대한 현황을 조회할 수 있다. 중계 장치(500)를 통한 펌웨어 다운로드가 진행 중인 경우 셀 식별자에 대한 카운트가 증가될 수 있다. 다운로드가 완료된 경우 카운트는 감소된다. 서버(300)는 셀 식별자에 대한 현재의 현황을 조회할 수 있다.In step 630, the server 300 may query the current status of the cell identifier based on the cell identifier. When firmware download through the relay device 500 is in progress, the count for the cell identifier may be increased. When the download is complete, the count is decremented. The server 300 may inquire the current status of the cell identifier.

단계(635)에서, 서버(300)는 최신 펌웨어를 다운로드 중인 셀 식별자를 갖는 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정한다. 예를 들어, 다른 전자 장치들의 개수는 다른 전자 장치들을 위한 펌웨어들의 개수일 수 있다. 즉, 펌웨어들이 모두 중계 서버(500)로 전송되는 경우, 펌웨어들의 개수가 다른 전자 장치들의 개수로 취급될 수 있다.In step 635, the server 300 determines whether the number of other electronic devices having a cell identifier for downloading the latest firmware is less than a preset number for the cell identifier. For example, the number of different electronic devices may be the number of firmwares for different electronic devices. That is, when all firmwares are transmitted to the relay server 500, the number of firmwares may be treated as the number of different electronic devices.

셀 식별자를 갖는 해당 셀에서 펌웨어 전송이 진행되어도 데이터 송수신에 문제가 없는 개수가 미리 설정될 수 있다. 상기의 개수는 해당 셀의 데이터 전송 능력에 기초하여 설정될 수 있다. 즉, 다운로드 진행 중인 개수가 미리 설정된 개수 미만인지 여부가 결정될 수 있다.Even if firmware transmission is performed in a corresponding cell having a cell identifier, a number without problems in data transmission/reception may be preset. The above number may be set based on the data transmission capability of the corresponding cell. That is, it may be determined whether the number of downloads in progress is less than a preset number.

단계(640)에서, 서버(300)는 펌웨어 전송이 진행 중인 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 중계 장치(500)로 최신 펌웨어를 전송한다. 예를 들어, 서버(300)는 OTA로 최신 펌웨어를 전송할 수 있다.In step 640, the server 300 transmits the latest firmware to the relay device 500 when the number of other electronic devices undergoing firmware transmission is less than a preset number for the cell identifier. For example, the server 300 may transmit the latest firmware via OTA.

단계(645)에서, 서버(300)는 펌웨어 전송이 진행 중인 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 중계 장치(500)로 전송한다.In step 645, the server 300 transmits a transmission rejection message to the relay device 500 when the number of other electronic devices on which firmware transmission is in progress is equal to or greater than a preset number for the cell identifier.

단계(650)에서, 중계 장치(500)는 최신 펌웨어를 저장한다.In step 650, the relay device 500 stores the latest firmware.

단계(655)에서, 중계 장치(500)는 최신 펌웨어를 전자 장치(200)로 전송한다. 예를 들어, 중계 장치(500)는 전자 장치(200)의 요청이 있는 경우 최신 펌웨어를 중계 장치(500)로 전송할 수 있다. 다른 예로, 중계 장치(500)는 미리 설정된 시각에 최신 펌웨어를 중계 장치(500)로 전송할 수 있다.In step 655, the relay device 500 transmits the latest firmware to the electronic device 200. For example, when there is a request from the electronic device 200, the relay device 500 may transmit the latest firmware to the relay device 500. As another example, the relay device 500 may transmit the latest firmware to the relay device 500 at a preset time.

단계(660)에서, 전자 장치(200)는 펌웨어를 갱신한다. 갱신된 펌웨어는 최신 버전일 수 있다.In step 660, the electronic device 200 updates the firmware. The updated firmware may be the latest version.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It can be implemented using one or more general purpose computers or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

 이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited embodiments and drawings, various modifications and variations are possible from the above description by those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

200: 전자 장치
300: 서버
500: 중계 장치
200: electronic device
300: server
500: relay device

Claims (22)

전자 장치에 의해 수행되는, 펌웨어 갱신 방법은,
서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계;
상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계; 및
상기 타겟 펌웨어에 기초하여 상기 전자 장치의 기본 펌웨어를 갱신하는 단계
를 포함하는,
펌웨어 갱신 방법.
The firmware update method performed by the electronic device,
Inquiring whether the target firmware exists or not to the server;
If the target firmware exists, receiving a resource address associated with the target firmware from the server;
Transmitting a message for requesting download of the target firmware to the server based on the resource address, the message including a cell ID set for the electronic device;
Receiving the target firmware through the server when the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
Updating the basic firmware of the electronic device based on the target firmware
Containing,
How to update the firmware.
제1항에 있어서,
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계
를 포함하는,
펌웨어 갱신 방법.
The method of claim 1,
Receiving the target firmware through the server,
Receiving the target firmware over the air (OTA)
Containing,
How to update the firmware.
제1항에 있어서,
상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고,
상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함하는,
펌웨어 갱신 방법.
The method of claim 1,
The message is generated based on the oneM2M message standard,
The message further includes the cell identifier in the header of the message,
How to update the firmware.
제3항에 있어서,
상기 메시지는 상기 메시지의 헤더에 네트워크 베어러(network bearer)를 더 포함하는,
펌웨어 갱신 방법.
The method of claim 3,
The message further includes a network bearer in the header of the message,
How to update the firmware.
제1항에 있어서,
상기 타겟 펌웨어는 상기 기본 펌웨어에 비해 새로운 버전인,
펌웨어 갱신 방법.
The method of claim 1,
The target firmware is a new version compared to the basic firmware,
How to update the firmware.
제1항에 있어서,
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계
를 더 포함하는,
펌웨어 갱신 방법.
The method of claim 1,
Receiving a transmission rejection message from the server when the number of other electronic devices having the cell identifier downloading the target firmware is greater than or equal to a preset number for the cell identifier
Further comprising,
How to update the firmware.
제1항 내지 제6항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium containing a program for performing the method of any one of claims 1 to 6.
전자 장치는,
펌웨어를 갱신하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계;
상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계; 및
상기 타겟 펌웨어에 기초하여 상기 전자 장치의 기본 펌웨어를 갱신하는 단계
를 수행하는,
전자 장치.
Electronic devices,
A memory in which a program for updating firmware is recorded; And
Processor that executes the above program
Including,
The above program,
Inquiring whether the target firmware exists or not to the server;
If the target firmware exists, receiving a resource address associated with the target firmware from the server;
Transmitting a message for requesting download of the target firmware to the server based on the resource address, the message including a cell ID set for the electronic device;
Receiving the target firmware through the server when the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
Updating the basic firmware of the electronic device based on the target firmware
To do,
Electronic device.
제8항에 있어서,
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계
를 포함하는,
전자 장치.
The method of claim 8,
Receiving the target firmware through the server,
Receiving the target firmware over the air (OTA)
Containing,
Electronic device.
제8항에 있어서,
상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고,
상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함하는,
전자 장치.
The method of claim 8,
The message is generated based on the oneM2M message standard,
The message further includes the cell identifier in the header of the message,
Electronic device.
서버에 의해 수행되는, 타겟 펌웨어 제공 방법은,
전자 장치로부터 상기 타겟 펌웨어의 존재 문의를 수신하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 전자 장치로 상기 타겟 펌웨어와 연관된 자원 주소를 전송하는 단계;
상기 전자 장치로부터 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 수신하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정하는 단계; 및
상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계
를 포함하는,
펌웨어 제공 방법.
The target firmware provision method performed by the server,
Receiving a presence inquiry of the target firmware from an electronic device;
If the target firmware exists, transmitting a resource address associated with the target firmware to the electronic device;
Receiving a message requesting download of the target firmware from the electronic device based on the resource address, the message including a cell ID set for the electronic device;
Determining whether the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
When the number of the other electronic devices is less than a preset number for the cell identifier, transmitting the target firmware to the electronic device
Containing,
How to provide firmware.
제11항에 있어서,
상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계는,
OTA(over the air)로 상기 타겟 펌웨어를 전송하는 단계
를 포함하는,
펌웨어 제공 방법.
The method of claim 11,
Transmitting the target firmware to the electronic device,
Transmitting the target firmware over the air (OTA)
Containing,
How to provide firmware.
제11항에 있어서,
상기 메시지는 oneM2M 메시지 규격에 기초하여 생성되고,
상기 메시지는 상기 메시지의 헤더에 상기 셀 식별자를 더 포함하는,
펌웨어 제공 방법.
The method of claim 11,
The message is generated based on the oneM2M message standard,
The message further includes the cell identifier in the header of the message,
How to provide firmware.
제11항에 있어서.
상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 전자 장치로 전송하는 단계
를 더 포함하는,
펌웨어 제공 방법.
The method of claim 11.
When the number of other electronic devices is greater than or equal to a preset number for the cell identifier, transmitting a transmission rejection message to the electronic device
Further comprising,
How to provide firmware.
서버는,
펌웨어를 전송하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
전자 장치로부터 타겟 펌웨어의 존재 문의를 수신하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 전자 장치로 상기 타겟 펌웨어와 연관된 자원 주소를 전송하는 단계;
상기 전자 장치로부터 상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 수신하는 단계 - 상기 메시지는 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정하는 단계; 및
상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계
를 수행하는,
서버.
The server,
A memory in which a program for transmitting firmware is recorded; And
Processor that executes the above program
Including,
The above program,
Receiving a presence inquiry of the target firmware from the electronic device;
If the target firmware exists, transmitting a resource address associated with the target firmware to the electronic device;
Receiving a message requesting download of the target firmware from the electronic device based on the resource address, the message including a cell ID set for the electronic device;
Determining whether the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
When the number of the other electronic devices is less than a preset number for the cell identifier, transmitting the target firmware to the electronic device
To do,
server.
펌웨어 중계 장치에 의해 수행되는, 펌웨어 중계 방법은,
전자 장치로부터 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 수신하는 단계;
상기 전자 장치의 펌웨어의 버전을 수신하는 단계;
상기 펌웨어의 버전에 기초하여 서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계;
상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 셀 식별자를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계; 및
상기 타겟 펌웨어를 상기 전자 장치로 제공하는 단계
를 포함하는,
펌웨어 중계 방법.
The firmware relay method, performed by the firmware relay device,
Receiving a cell ID set for the electronic device from the electronic device;
Receiving a version of the firmware of the electronic device;
Inquiring whether a target firmware exists or not to a server based on the version of the firmware;
If the target firmware exists, receiving a resource address associated with the target firmware from the server;
Transmitting a message requesting download of the target firmware to the server based on the resource address, the message including the cell identifier;
Receiving the target firmware through the server when the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
Providing the target firmware to the electronic device
Containing,
How to relay firmware.
제16항에 있어서,
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
OTA(over the air)로 상기 타겟 펌웨어를 수신하는 단계
를 포함하는,
펌웨어 중계 방법.
The method of claim 16,
Receiving the target firmware through the server,
Receiving the target firmware over the air (OTA)
Containing,
How to relay firmware.
제16항에 있어서,
상기 메시지는 LWM2M(Lightweight M2M) 메시지 규격에 기초하여 생성되는,
펌웨어 중계 방법.
The method of claim 16,
The message is generated based on the LWM2M (Lightweight M2M) message standard,
How to relay firmware.
제18항에 있어서,
상기 메시지는 네트워크 베어러(network bearer)를 더 포함하는,
펌웨어 중계 방법.
The method of claim 18,
The message further includes a network bearer,
How to relay firmware.
제16항에 있어서,
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계
를 더 포함하는,
펌웨어 중계 방법.
The method of claim 16,
Receiving a transmission rejection message from the server when the number of other electronic devices having the cell identifier downloading the target firmware is greater than or equal to a preset number for the cell identifier
Further comprising,
How to relay firmware.
제16항 내지 제20항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium containing a program for performing the method of any one of claims 16 to 20.
펌웨어 중계 장치는,
펌웨어를 중계하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
전자 장치로부터 상기 전자 장치에 대해 설정된 셀 식별자(cell ID)를 수신하는 단계;
상기 전자 장치의 펌웨어의 버전을 수신하는 단계;
상기 펌웨어의 버전에 기초하여 서버로 타겟 펌웨어가 존재하는지 여부를 문의하는 단계;
상기 타겟 펌웨어가 존재하는 경우, 상기 서버로부터 상기 타겟 펌웨어와 연관된 자원 주소를 수신하는 단계;
상기 자원 주소에 기초하여 상기 타겟 펌웨어의 다운로드를 요청하는 메시지를 상기 서버로 전송하는 단계 - 상기 메시지는 상기 셀 식별자를 포함함 -;
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 미만인 경우, 상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계; 및
상기 타겟 펌웨어를 상기 전자 장치로 제공하는 단계
를 수행하는,
펌웨어 중계 장치.
The firmware relay device,
A memory in which a program relaying firmware is recorded; And
Processor that executes the above program
Including,
The above program,
Receiving a cell ID set for the electronic device from the electronic device;
Receiving a version of the firmware of the electronic device;
Inquiring whether a target firmware exists or not to a server based on the version of the firmware;
If the target firmware exists, receiving a resource address associated with the target firmware from the server;
Transmitting a message requesting download of the target firmware to the server based on the resource address, the message including the cell identifier;
Receiving the target firmware through the server when the number of other electronic devices having the cell identifier downloading the target firmware is less than a preset number for the cell identifier; And
Providing the target firmware to the electronic device
To do,
Firmware relay device.
KR1020190152447A 2019-11-25 2019-11-25 Method and apparatus for providing firmware through over the air KR102192857B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190152447A KR102192857B1 (en) 2019-11-25 2019-11-25 Method and apparatus for providing firmware through over the air

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190152447A KR102192857B1 (en) 2019-11-25 2019-11-25 Method and apparatus for providing firmware through over the air

Publications (1)

Publication Number Publication Date
KR102192857B1 true KR102192857B1 (en) 2020-12-18

Family

ID=74041592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190152447A KR102192857B1 (en) 2019-11-25 2019-11-25 Method and apparatus for providing firmware through over the air

Country Status (1)

Country Link
KR (1) KR102192857B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667266A (en) * 2021-01-22 2021-04-16 百度在线网络技术(北京)有限公司 Firmware upgrading method, device, equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122225A (en) * 2005-03-31 2007-12-28 콸콤 인코포레이티드 A mobile device interface for input devices using existing mobile device connectors
KR20100081317A (en) * 2007-09-12 2010-07-14 디바이스피델리티, 인크. Updating mobile devices with additional elements
KR20170015968A (en) * 2014-06-03 2017-02-10 삼성전자주식회사 High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices
KR20170087831A (en) * 2016-01-21 2017-07-31 삼성전자주식회사 Method for controlling sim card and sd card and electronic device implementing the same
KR20200017175A (en) * 2018-08-08 2020-02-18 삼성전자주식회사 Electronic device, external electronic device and method for managing embedded subscriber identity module of the external electronic device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122225A (en) * 2005-03-31 2007-12-28 콸콤 인코포레이티드 A mobile device interface for input devices using existing mobile device connectors
KR20100081317A (en) * 2007-09-12 2010-07-14 디바이스피델리티, 인크. Updating mobile devices with additional elements
KR20170015968A (en) * 2014-06-03 2017-02-10 삼성전자주식회사 High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices
KR20170087831A (en) * 2016-01-21 2017-07-31 삼성전자주식회사 Method for controlling sim card and sd card and electronic device implementing the same
KR20200017175A (en) * 2018-08-08 2020-02-18 삼성전자주식회사 Electronic device, external electronic device and method for managing embedded subscriber identity module of the external electronic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667266A (en) * 2021-01-22 2021-04-16 百度在线网络技术(北京)有限公司 Firmware upgrading method, device, equipment and storage medium
CN112667266B (en) * 2021-01-22 2024-02-06 百度在线网络技术(北京)有限公司 Firmware upgrading method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
US9794727B1 (en) Network access tiered based on application launcher installation
JP6638890B2 (en) Dynamic subscriber identification module
US10348804B2 (en) System to automatically process components on a device
US9439025B1 (en) Multi-step mobile device initiation with intermediate partial reset
US9161325B1 (en) Subscriber identity module virtualization
US11310654B1 (en) Electronic subscriber identity module (eSIM) profile delivery and activation system and methods
KR20140100501A (en) Method and apparatus for providing firmware over the air service to user equipments
CN105323269A (en) Method for updating APP in Android system, terminal and storage medium
CN110268731B (en) Techniques for obtaining a network access profile
KR102192857B1 (en) Method and apparatus for providing firmware through over the air
KR101632288B1 (en) Method and apparatus for prefetching device drivers for peripheral devices connected to a smartphone prior to high-level operating system(hlos) boot
US20040188510A1 (en) System for registry-based automatic installation and component handling on a device
US10631177B1 (en) Mobile phone chipset parameter adaptation framework
CN110610080A (en) Application isolation implementation method, mobile terminal, computer equipment and storage medium
CN115080068A (en) Resource file transmission method, device, equipment and storage medium
JP2020009144A (en) Information processor, mobile object, information processing method, and program
CN112860300A (en) Distributed SDK (software development kit) hot update processing method and application server cluster
KR20150080310A (en) Server and method for updating application
US11190523B1 (en) Post-activation installation of custom applications with system privileges
KR20210154394A (en) SYSTEM FOR CONTROLLING IoT DEVICE, USER AUTHENTICATION METHOD, AND FOR REGISTERING IoT DEVICE AND IoT DEVICE INFORMATION INCLUDED IN THE SYSTEM
CN116723501A (en) OTA queue upgrading system, method, terminal and storage medium
KR101966913B1 (en) Terminal and method for application update based on os version of the same
RU2339995C2 (en) System of automatic installation and processing component in registry based devices
KR20210065568A (en) Method and apparatus for receiving information of user terminal
KR20120048912A (en) Update and upgrade method of operating mobile device providing dynamic and static update and upgrade of system software

Legal Events

Date Code Title Description
GRNT Written decision to grant