KR102192857B1 - Method and apparatus for providing firmware through over the air - Google Patents
Method and apparatus for providing firmware through over the air Download PDFInfo
- 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
Links
Images
Classifications
-
- H04M1/72525—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems 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
Description
아래의 실시예들은 펌웨어를 제공하기 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 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
예를 들어, 전자 장치(120)의 새로운 기능 또는 보안 등을 위해 전자 장치(120)를 제어하는 펌웨어가 갱신될 수 있다. 갱신된 펌웨어는 새로운 버전 또는 최신 버전일 수 있다. 전자 장치(120)에 최신 펌웨어가 적용되기 위해서는, 서버(110)가 최신 펌웨어를 전자 장치(120)에 제공해야 한다. For example, firmware for controlling the
서버(110)는 무선 연결으로 전자 장치들(120 및 130)에게 펌웨어를 제공할 수 있다. 전자 장치들(120 및 130)이 상이한 경우, 상이한 펌웨어가 각각 제공될 수 있다. OTA(Over the Air)를 통한 무선 연결이 예시되었으나, OTA가 아닌 네트워크를 통한 무선 연결도 가능하다.The
전자 장치들(120 및 130)은 사물인터넷(Internet of thing: IoT)을 지원하는 장치들일 수 있다. 예를 들어, 전자 장치들(120 및 130)은 홈 네트워크를 통해 연결될 수 있고, 홈 네트워크는 허브 장치에 의해 관리될 수 있다. 서버(110)는 개별적인 연결 또는 홈 네트워크를 통해 최신 펌웨어를 전자 장치들(120 및 130)에 제공할 수 있다.The
아래에서 도 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
통신부(210)는 프로세서(220) 및 메모리(230)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The
통신부(210)는 전자 장치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 전자 장치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The
프로세서(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
프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 갱신할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The
일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to an aspect, the
메모리(230)는 전자 장치(200)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 전자 장치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The
통신부(210), 프로세서(220) 및 메모리(230)에 대해, 아래에서 도 4 및 6을 참조하여 상세히 설명된다.The
도 3은 일 실시예에 따른 펌웨어를 제공하는 서버의 구성도이다.3 is a configuration diagram of a server providing firmware according to an embodiment.
펌웨어를 제공하는 서버(300)는 통신부(310), 프로세서(320) 및 메모리(330)를 포함한다. 예를 들어, 서버(300)는 도 1을 참조하여 전술된 서버(110)일 수 있다.The
통신부(310)는 프로세서(320) 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(310)는 서버(300) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(310)는 서버(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 프로세서(320) 및 메모리(330)에 데이터를 전송할 수 있다.The
프로세서(320)는 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. 프로세서(320)는 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(320)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(330)는 통신부(310)가 수신한 데이터 및 프로세서(320)가 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 갱신할 수 있도록 코딩되어 프로세서(320)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The
일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the
메모리(330)는 서버(300)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 서버(300)를 동작 시키는 명령어 세트는 프로세서(320)에 의해 실행된다.The
통신부(310), 프로세서(320) 및 메모리(330)에 대해, 아래에서 도 4 및 6을 참조하여 상세히 설명된다.The
도 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
단계(410)에서, 서버(300)는 서버(300)의 데이터베이스(DB)(340)에 펌웨어 정보를 등록한다. DB(340)는 서버(300)의 메모리(330)일 수 있다.In
단계(415)에서, 전자 장치(200)는 최신 펌웨어가 존재하는지 여부를 서버(300)에 문의한다. 예를 들어, 전자 장치(200)는 미리 설정된 주기로 문의할 수 있다. 전자 장치(200)는 문의와 함께 전자 장치(200)에 설치된 펌웨어에 대한 정보를 서버(300)로 전송할 수 있다. 예를 들어, 펌웨어에 대한 정보는 펌웨어의 버전 정보일 수 있다. 최신 펌웨어는 전자 장치(200)가 다운로드하고자 하는 타겟 펌웨어일 수 있다.In
단계(420)에서, 서버(300)는 DB(340)에 등록된 최신 펌웨어를 조회하고, 전자 장치(200)에 설치된 펌웨어가 최신 버전인지 여부를 결정한다.In
단계(425)에서, 서버(300)는 최신 펌웨어가 존재하는 경우, 최신 펌웨어와 연관된 자원 주소를 전자 장치(200)로 전송한다. 자원 주소는 URL(uniform resource locator)일 수 있다.In
단계(430)에서, 서버(300)는 최신 펌웨어의 다운로드를 요청하는 메시지를 전자 장치(200)로부터 수신한다. 다운로드 요청은 자원 주소에 기초할 수 있다.In
메시지는 전자 장치(200)에 대해 설정된 셀 식별자(cell ID)를 포함할 수 있다. 추가적으로, 메시지는 네트워크 베어러(network bearer)를 더 포함할 수 있다. 셀 식별자는 전자 장치(200)의 식별자 또는 전자 장치(200)가 포함된 영역의 식별자일 수 있다. 예를 들어, 셀 식별자는 홈 네트워크의 식별자일 수 있고, 홈 네트워크 내에는 복수의 전자 장치들이 포함될 수 있다.The message may include a cell ID set for the
셀 식별자는 데이터 전송을 위한 특정한 영역의 리소스들이 펌웨어 다운로드에만 사용되지 않도록 제한을 부여하기 위한 것일 수 있다. 예를 들어, 펌웨어 다운로드에만 리소스들이 이용되어, 중요한 데이터가 전송되지 않는 상황을 방지하기 위해 셀 식별자가 이용될 수 있다. 즉, 대역폭이 낮은 무선 네트워크 환경에서 다수의 전자 장치들에 대한 펌웨어 전송으로 인한 네트워크 과부하를 방지하고, 상기의 전송에 의해 전자 장치의 데이터 송수신이 방해되는 것을 방지할 수 있다. 셀 식별자를 이용한 펌웨어 전송의 제한에 대해 아래에서 보다 상세히 설명된다.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
단계(440)에서, 서버(300)는 최신 펌웨어를 다운로드 중인 셀 식별자를 갖는 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정한다. 셀 식별자를 갖는 해당 셀에서 펌웨어 전송이 진행되어도 데이터 송수신에 문제가 없는 개수가 미리 설정될 수 있다. 상기의 개수는 해당 셀의 데이터 전송 능력에 기초하여 설정될 수 있다. 즉, 다운로드 진행 중인 개수가 미리 설정된 개수 미만인지 여부가 결정될 수 있다.In
단계(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
단계(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
단계(455)에서, 전자 장치(200)는 펌웨어를 갱신한다. 갱신된 펌웨어는 최신 버전일 수 있다.In
도 4를 참조하여 전자 장치(200)에 펌웨어를 직접 제공하는 방법이 설명되었으나, 아래에서는 전자 장치(200)에 펌웨어를 중계하여 제공하는 방법이 설명된다.A method of directly providing firmware to the
도 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
통신부(510)는 프로세서(520) 및 메모리(530)와 연결되어 데이터를 송수신한다. 통신부(510)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(510)는 중계 장치(500) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(510)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(510)는 중계 장치(500)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(510)는 인터페이스일 수 있다. 통신부(510)는 외부의 장치로부터 데이터를 수신하여, 프로세서(520) 및 메모리(530)에 데이터를 전송할 수 있다.The
프로세서(520)는 통신부(510)가 수신한 데이터 및 메모리(530)에 저장된 데이터를 처리한다. 프로세서(520)는 메모리(예를 들어, 메모리(530))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 펌웨어) 및 프로세서(520)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(530)는 통신부(510)가 수신한 데이터 및 프로세서(520)가 처리한 데이터를 저장한다. 예를 들어, 메모리(530)는 프로그램(또는 어플리케이션, 펌웨어)을 저장할 수 있다. 저장되는 프로그램은 펌웨어를 중계할 수 있도록 코딩되어 프로세서(520)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The
일 측면에 따르면, 메모리(530)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, the
메모리(530)는 중계 장치(500)를 동작 시키는 명령어 세트(예를 들어, 펌웨어)를 저장한다. 중계 장치(500)를 동작 시키는 명령어 세트는 프로세서(520)에 의해 실행된다.The
통신부(510), 프로세서(520) 및 메모리(530)에 대해, 아래에서 도 6을 참조하여 상세히 설명된다.The
도 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
단계(610)에서, 중계 장치(500)는 전자 장치(200)의 펌웨어의 버전을 수신한다. 예를 들어, 전자 장치(200)의 펌웨어의 버전이 독출될 수 있다.In
단계(615)에서, 중계 장치(500)는 최신 펌웨어가 존재하는지 여부를 서버(300)에 문의한다. 예를 들어, 중계 장치(500)는 미리 설정된 주기로 문의할 수 있다. 중계 장치(500)는 문의와 함께 전자 장치(200)에 설치된 펌웨어에 대한 정보를 서버(300)로 전송할 수 있다. 예를 들어, 펌웨어에 대한 정보는 펌웨어의 버전 정보일 수 있다. 최신 펌웨어는 전자 장치(200)가 다운로드하고자 하는 타겟 펌웨어일 수 있다.In
단계(620)에서, 서버(300)는 최신 펌웨어가 존재하는 경우, 최신 펌웨어와 연관된 자원 주소를 중계 장치(500)로 전송한다.In
단계(625)에서, 중계 장치(500)는 최신 펌웨어의 다운로드를 요청하는 메시지를 서버(300)로 전송한다. 다운로드 요청은 자원 주소에 기초할 수 있다. 도 4를 참조하여 전술된 실시예와는 상이하게, 전자 장치(200)의 다운로드 요청이 없는 경우에도 중계 장치(500)는 최신 펌웨어의 다운로드를 서버(300)로 요청할 수 있다.In
메시지는 전자 장치(200)의 셀 식별자를 포함할 수 있다. 추가적으로, 메시지는 네트워크 베어러를 더 포함할 수 있다.The message may include the cell identifier of the
일 측면에 따르면, 메시지는 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
단계(635)에서, 서버(300)는 최신 펌웨어를 다운로드 중인 셀 식별자를 갖는 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 미만인지 여부를 결정한다. 예를 들어, 다른 전자 장치들의 개수는 다른 전자 장치들을 위한 펌웨어들의 개수일 수 있다. 즉, 펌웨어들이 모두 중계 서버(500)로 전송되는 경우, 펌웨어들의 개수가 다른 전자 장치들의 개수로 취급될 수 있다.In
셀 식별자를 갖는 해당 셀에서 펌웨어 전송이 진행되어도 데이터 송수신에 문제가 없는 개수가 미리 설정될 수 있다. 상기의 개수는 해당 셀의 데이터 전송 능력에 기초하여 설정될 수 있다. 즉, 다운로드 진행 중인 개수가 미리 설정된 개수 미만인지 여부가 결정될 수 있다.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
단계(645)에서, 서버(300)는 펌웨어 전송이 진행 중인 다른 전자 장치들의 개수가 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 중계 장치(500)로 전송한다.In
단계(650)에서, 중계 장치(500)는 최신 펌웨어를 저장한다.In
단계(655)에서, 중계 장치(500)는 최신 펌웨어를 전자 장치(200)로 전송한다. 예를 들어, 중계 장치(500)는 전자 장치(200)의 요청이 있는 경우 최신 펌웨어를 중계 장치(500)로 전송할 수 있다. 다른 예로, 중계 장치(500)는 미리 설정된 시각에 최신 펌웨어를 중계 장치(500)로 전송할 수 있다.In
단계(660)에서, 전자 장치(200)는 펌웨어를 갱신한다. 갱신된 펌웨어는 최신 버전일 수 있다.In
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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.
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
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.
상기 메시지는 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.
상기 메시지는 상기 메시지의 헤더에 네트워크 베어러(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.
상기 타겟 펌웨어는 상기 기본 펌웨어에 비해 새로운 버전인,
펌웨어 갱신 방법.
The method of claim 1,
The target firmware is a new version compared to the basic firmware,
How to update the firmware.
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계
를 더 포함하는,
펌웨어 갱신 방법.
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.
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.
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
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.
상기 메시지는 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.
상기 전자 장치로 상기 타겟 펌웨어를 전송하는 단계는,
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.
상기 메시지는 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.
상기 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 전자 장치로 전송하는 단계
를 더 포함하는,
펌웨어 제공 방법.
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.
상기 서버를 통해 상기 타겟 펌웨어를 수신하는 단계는,
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.
상기 메시지는 LWM2M(Lightweight M2M) 메시지 규격에 기초하여 생성되는,
펌웨어 중계 방법.
The method of claim 16,
The message is generated based on the LWM2M (Lightweight M2M) message standard,
How to relay firmware.
상기 메시지는 네트워크 베어러(network bearer)를 더 포함하는,
펌웨어 중계 방법.
The method of claim 18,
The message further includes a network bearer,
How to relay firmware.
상기 타겟 펌웨어를 다운로드 중인 상기 셀 식별자를 갖는 다른 전자 장치들의 개수가 상기 셀 식별자에 대해 미리 설정된 개수 이상인 경우, 전송 거절 메시지를 상기 서버로부터 수신하는 단계
를 더 포함하는,
펌웨어 중계 방법.
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.
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.
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)
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)
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 |
-
2019
- 2019-11-25 KR KR1020190152447A patent/KR102192857B1/en active IP Right Grant
Patent Citations (5)
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)
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 |