KR101947528B1 - Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment - Google Patents
Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment Download PDFInfo
- Publication number
- KR101947528B1 KR101947528B1 KR1020180108063A KR20180108063A KR101947528B1 KR 101947528 B1 KR101947528 B1 KR 101947528B1 KR 1020180108063 A KR1020180108063 A KR 1020180108063A KR 20180108063 A KR20180108063 A KR 20180108063A KR 101947528 B1 KR101947528 B1 KR 101947528B1
- Authority
- KR
- South Korea
- Prior art keywords
- update
- firmware
- score
- network
- updating
- Prior art date
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템에 관한 것으로서, 구체적으로는 액세스 가능한 여러 네트워크 유형의 업데이트 장치를 자동 인식하고 자동 인식된 여러 네트워크 유형의 업데이트 장치 중에서 우선순위에 따라 선택된 업데이트 장치를 통해 내장된 펌웨어를 갱신할 수 있도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템에 관한 것이다. The present invention relates to a firmware update method, a device capable of updating a firmware, and a firmware update system according to dynamic recognition of an update environment. More specifically, the present invention relates to an apparatus and method for automatically recognizing, A firmware updateable device and a firmware update system according to the dynamic recognition of an update environment, which enables update of built-in firmware through an update device selected in accordance with a priority order.
네트워크 기술의 발전에 따라 디바이스는 다양한 네트워크에 연결될 수 있다. 예를 들어, 디바이스는 유선랜, 무선랜과 같은 로컬 에어리어 네트워크, 블루투스, 지그비 등의 퍼스널 에어리어 네트워크 등에 연결될 수 있고 나아가 인터넷망 등의 광대역 네트워크에 연결될 수 있다. As network technology advances, devices can be connected to various networks. For example, the device may be connected to a wired LAN, a local area network such as a wireless LAN, a personal area network such as Bluetooth, ZigBee, and the like, and further to a broadband network such as the Internet network.
각각 유형의 네트워크를 통해 디바이스는 개인용 디바이스와 통신을 하거나 로컬 에어리어 내의 다른 장치와 통신을 하거나 광대역 네트워크를 통해 서버 등과 통신 가능하다. 이와 같이 디바이스는 다수의 네트워크 인터페이스를 가지고 다수의 네트워크 인터페이스를 통해 다른 기기와 통신 가능하다. Through each type of network, a device can communicate with a personal device, with other devices in the local area, or with a server, etc., over a broadband network. Thus, the device has a plurality of network interfaces and is capable of communicating with other devices through a plurality of network interfaces.
디바이스는 프로그램 등에 의해 할당되거나 정의된 기능을 수행할 수 있다. 디바이스는 내부에 펌웨어(firmware)를 구비하여 펌웨어를 구동하여 정의된 기능을 수행한다. 디바이스 내부에 정의된 펌웨어는 일반적으로 업데이트(갱신) 가능하다. A device can perform functions assigned or defined by a program or the like. The device has firmware therein to drive the firmware to perform a defined function. Firmware defined within the device is generally updatable.
디바이스의 펌웨어는 광대역 네트워크를 통해 원격 서버와 연동하여 업데이트되고 지정된 네트워크 방식에 연결 가능한 원격 서버를 통해 업데이트 가능하다. The firmware of the device is updatable via a remote server that is updated in conjunction with a remote server over a broadband network and is connectable to a designated networking scheme.
다양한 네트워크에 연결 가능함에 따라 디바이스는 다양한 방식으로 펌웨어가 업데이트될 필요가 존재한다. 예를 들어, 디바이스는 직접 연결되어 있는 퍼스널 컴퓨터를 통해 펌웨어가 업데이트될 수 있고 이더넷이나 와이파이 등에 연결되어 있는 로컬 에어리어 네트워크 내의 디바이스 관리 장치를 통해 펌웨어가 업데이트 가능하다. 나아가 디바이스는 광대역 네트워크에 연결되는 서버(클라우드 서버)를 통해 업데이트 가능하다. As the devices can be connected to various networks, the devices need to be updated in various ways. For example, the device can be updated in firmware via a directly connected personal computer, and can be updated through a device management device in a local area network connected to Ethernet, Wi-Fi, or the like. Further, the device can be updated via a server (cloud server) connected to the broadband network.
이와 같이 디바이스는 다양한 방식의 네트워크를 통해 연결되는 장치로부터 펌웨어 업데이트가 될 필요가 존재한다. Thus, there is a need for devices to be firmware updates from devices that are connected through various networks.
또한, 디바이스는 다양한 방식의 네트워크를 통해 여러 장치에 연결되는 경우에 여러 업데이트 장치 중에서 펌웨어를 업데이트할 장치를 결정할 필요가 존재한다. In addition, there is a need to determine which device to update firmware among the multiple update devices when the device is connected to multiple devices over various networks.
이러한 필요성을 충족할 수 있는 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템이 필요하다.There is a need for a firmware update method, a device capable of updating firmware, and a firmware update system in accordance with dynamic recognition of an update environment capable of meeting such a need.
본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 액세스 가능한 여러 네트워크 유형의 업데이트 장치를 자동으로 인식하고 자동 인식된 여러 네트워크 유형의 업데이트 장치를 통해 내장된 펌웨어를 갱신할 수 있도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템을 제공하는 데 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made in order to solve the above-mentioned problems, and it is an object of the present invention to provide a method and apparatus for automatically updating an update device of various network types, A method of updating a firmware according to dynamic recognition of environment, a device capable of updating firmware, and a firmware updating system.
또한, 본 발명은 다수 네트워크 유형의 업데이트 장치 중에서 각각의 네트워크의 특성에 따라 동적으로 부여된 우선순위도에 따라 업데이트 장치를 결정하고 결정된 업데이트 장치를 통해 펌웨어 업데이트가 가능하도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템을 제공하는 데 그 목적이 있다. The present invention also relates to a method for determining the update device according to the degree of priority given dynamically according to the characteristics of each network among update devices of a plurality of network types and enabling the update of the firmware through the determined update device, A firmware update method according to the present invention, a device capable of firmware update, and a firmware update system.
또한, 본 발명은 다수의 업데이트 장치에 산재된 갱신 펌웨어를 이용하여 다양한 통신 방식에 따라 디바이스에 내장된 펌웨어를 업데이트하면서 내장된 펌웨어의 통일적인 관리가 가능하도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템을 제공하는 데 그 목적이 있다. According to another aspect of the present invention, there is provided a method of updating a firmware in a device, the firmware being embedded in the device, An update method, a firmware updatable device, and a firmware update system.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, unless further departing from the spirit and scope of the invention as defined by the appended claims. It will be possible.
본 발명의 일 양상에 따라 펌웨어 업데이트 가능한 디바이스에 의해 수행되는 펌웨어 업데이트 방법은 제1 네트워크에 연결된 제1 업데이트 장치를 인식 시도하는 단계, 제2 네트워크에 연결된 제2 업데이트 장치를 인식 시도하는 단계, 제1 업데이트 장치 및 제2 업데이트 장치의 인식 여부와 각각의 업데이트 장치로부터 수신된 펌웨어 버전 정보에 기초하여 펌웨어를 갱신할 업데이트 장치를 결정하는 단계 및 결정된 업데이트 장치의 대응하는 네트워크를 통해 펌웨어를 업데이트하는 단계를 포함한다. According to one aspect of the present invention, a firmware update method performed by a device capable of firmware update includes the steps of: attempting to recognize a first update device connected to a first network; attempting to recognize a second update device connected to a second network; 1 determining whether the update device and the second update device recognize the firmware and updating the firmware based on the firmware version information received from each update device, and updating the firmware through the corresponding network of the determined update device .
상기한 펌웨어 업데이트 방법에 있어서, 제1 네트워크는 시리얼 통신 네트워크이고, 제2 네트워크는 이더넷 또는 와이파이 통신 네트워크이다.In the above firmware update method, the first network is a serial communication network, and the second network is an Ethernet or a Wi-Fi communication network.
상기한 펌웨어 업데이트 방법에 있어서, 제3 네트워크에 연결된 제3 업데이트 장치를 인식 시도하는 단계를 더 포함하고, 업데이트 장치의 결정 단계는, 제1 업데이트 장치 내지 제3 업데이트 장치가 인식됨에 따라, 제1 업데이트 장치에 대응하는 제1 우선순위도, 제2 업데이트 장치에 대응하는 제2 우선순위도 및 제3 업데이트 장치에 대응하는 제3 우선순위도를 산출하고 제1 우선순위도, 제2 우선순위도 및 제3 우선순위도 중 가장 높은 우선순위도를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정한다. The firmware update method may further include a step of attempting to recognize a third update device connected to the third network, and the step of determining the update device may further include a step of determining, as the first update device to the third update device, The first priority degree corresponding to the update device, the second priority degree corresponding to the second update device, and the third priority degree corresponding to the third update device are calculated, and the first priority degree, the second priority degree, And an update device having the highest priority degree among the third priority degrees as an update device to update the firmware.
상기한 펌웨어 업데이트 방법에 있어서, 우선순위도는 대응하는 네트워크의 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치에 따라 산출되고, 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신된다.In the above firmware update method, the priority degree is calculated according to the usability weight, the connection delay weight, and the error rate weight of the corresponding network, and the usable weight, the connection delay weight and the error rate weight are calculated based on the connection attempt or data It is updated according to transmission and reception.
상기한 펌웨어 업데이트 방법에 있어서, 제1 네트워크에 연결된 제1 업데이트 장치를 인식 시도하는 단계는 제1 업데이트 장치로 시리얼 통신을 통해 연결 요청 커맨드를 전송하고 제1 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답의 수신에 따라 업데이트 가능한 제1 업데이트 장치를 인식하며, 제2 네트워크에 연결된 제2 업데이트 장치를 인식 시도하는 단계는 이더넷 또는 와이파이 통신을 통해 제2 업데이트 장치를 검색하기 위한 브로드캐스팅 패킷을 전송하고 제2 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답 패킷의 수신에 따라 업데이트 가능한 제2 업데이트 장치를 인식한다.In the above-described firmware update method, the step of attempting to recognize the first update device connected to the first network may include transmitting the connection request command through the serial communication to the first update device, and transmitting the latest firmware version information Recognizing an updateable first update device upon receipt of a response including the first update device, and attempting to recognize a second update device connected to the second network includes receiving a broadcast packet for searching the second update device through Ethernet or WiFi communication, And recognizes the updatable second update device upon receipt of the response packet including the latest firmware version information stored in the second update device.
상기한 펌웨어 업데이트 방법에 있어서, 결정된 업데이트 장치의 대응하는 네트워크를 통해 펌웨어를 업데이트하는 단계는 업데이트 장치로부터 펌웨어와 해쉬 코드를 수신하고 수신된 펌웨어를 메모리에 임시 저장하고 임시 저장됨 펌웨어 데이터에 대해 해쉬 코드를 산출하며 산출된 해쉬 코드와 수신된 해쉬 코드가 동일한 경우 임시 저장된 펌웨어 데이터를 비휘발성 메모리의 펌웨어 영역에 기록한다.In the above firmware update method, updating the firmware through the corresponding network of the determined update device may include receiving the firmware and the hash code from the update device, temporarily storing the received firmware in the memory, And if the calculated hash code is equal to the received hash code, then the temporarily stored firmware data is recorded in the firmware area of the nonvolatile memory.
본 발명의 일 양상에 따른 펌웨어 업데이트가 가능한 디바이스는 제1 네트워크, 제2 네트워크 및 제3 네트워크를 통해 데이터 통신이 가능한 통신부, 디바이스의 펌웨어를 저장하는 비휘발성 메모리를 포함하는 저장부 및 통신부를 통해 제1 네트워크에 연결된 제1 업데이트 장치와 제2 네트워크에 연결된 제2 업데이트 장치와 제3 네트워크에 연결된 제3 업데이트 장치의 인식을 각각 시도하고 제1 업데이트 장치, 제2 업데이트 장치 및 제3 업데이트 장치의 인식 여부와 각 업데이트 장치로부터 수신된 펌웨어 버전 정보에 기초하여 펌웨어를 갱신할 업데이트 장치를 결정하고 통신부의 결정된 업데이트 장치에 대응하는 통신 인터페이스를 통해 저장부의 펌웨어를 업데이트하는 제어부를 포함한다.A device capable of firmware update according to an aspect of the present invention includes a communication unit capable of data communication through a first network, a second network, and a third network, a storage unit including a nonvolatile memory storing firmware of the device, The first updating device connected to the first network, the second updating device connected to the second network, and the third updating device connected to the third network respectively try to recognize the first updating device, the second updating device and the third updating device And a control unit for determining an update device to update the firmware based on whether or not it is recognized and the firmware version information received from each update device and updating the firmware of the storage unit through a communication interface corresponding to the determined update device of the communication unit.
상기한 펌웨어 업데이트 가능한 디바이스에 있어서, 펌웨어를 갱신할 업데이트 장치의 결정을 위해, 제어부는 제1 업데이트 장치 내지 제3 업데이트 장치가 대응하는 네트워크를 통해 각각 인식됨에 따라, 제1 업데이트 장치에 대응하는 제1 우선순위도, 제2 업데이트 장치에 대응하는 제2 우선순위도 및 제3 업데이트 장치에 대응하는 제3 우선순위도를 산출하고 제1 우선순위도, 제2 우선순위도 및 제3 우선순위도 중 가장 높은 우선순위도를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정한다. In the above-described device capable of updating the firmware, in order to determine the update device to update the firmware, the control unit determines that the first update device to the third update device A first priority degree, a second priority degree corresponding to the second updating device, and a third priority degree corresponding to the third updating device, and calculates a first priority degree, a second priority degree and a third priority degree The update device having the highest priority level is determined as an update device to update the firmware.
상기한 펌웨어 업데이트 가능한 디바이스에 있어서, 우선순위도는 대응하는 네트워크의 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치에 따라 산출되고, 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신된다.In the above-described device capable of updating the firmware, the priority degree is calculated according to the availability weight, the connection delay weight, and the error rate weight of the corresponding network, and the usable weight, connection delay weight, And is updated in accordance with data transmission / reception.
상기한 펌웨어 업데이트 가능한 디바이스에 있어서, 제1 네트워크는 시리얼 통신 네트워크이고, 제2 네트워크는 이더넷 또는 와이파이 통신 네트워크이며, 제1 네트워크에 연결된 제1 업데이트 장치를 인식하기 위해, 제어부는 제1 업데이트 장치로 시리얼 통신을 통해 연결 요청 커맨드를 전송하고 제1 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답의 수신에 따라 업데이트 가능한 제1 업데이트 장치를 인식하며, 제2 네트워크에 연결된 제2 업데이트 장치를 인식하기 위해, 제어부는 이더넷 또는 와이파이 통신을 통해 상기 제2 업데이트 장치를 검색하기 위한 브로드캐스팅 패킷을 전송하고 제2 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답 패킷의 수신에 따라 업데이트 가능한 제2 업데이트 장치를 인식한다. Wherein the first network is a serial communication network and the second network is an Ethernet or a Wi-Fi communication network, and in order to recognize a first update device connected to the first network, Recognizes the updatable first update apparatus upon receiving a response including the latest firmware version information stored in the first update apparatus, recognizes the first update apparatus updatable by the second update apparatus connected to the second network, The control unit transmits a broadcasting packet for searching for the second updating device through Ethernet or Wi-Fi communication, and updates the receiving packet according to the reception of the response packet including the latest firmware version information stored in the second updating device The second update device And expression.
본 발명의 일 양상에 따른 펌웨어 업데이트 시스템은 상기한 펌웨어 업데이트가 가능한 디바이스, 디바이스에 제1 네트워크를 통해 연결 가능한 제1 업데이트 장치, 디바이스에 제2 네트워크를 통해 연결 가능한 제2 업데이트 장치 및 디바이스에 제3 네트워크를 통해 연결 가능한 제3 업데이트 장치를 포함하고, 디바이스는 제1 업데이트 장치, 제2 업데이트 장치 또는 제3 업데이트 장치와의 네트워크 연결에 따라 하나의 업데이트 장치로부터 펌웨어를 수신하여 내장된 펌웨어를 갱신한다.A firmware update system according to an aspect of the present invention includes a device capable of updating the firmware, a first update device connectable to the device through a first network, a second update device connectable to the device via a second network, 3 network, wherein the device receives the firmware from one update device in accordance with the network connection with the first update device, the second update device, or the third update device, and updates the built-in firmware do.
상기와 같은 본 발명에 따른 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템은 액세스 가능한 여러 네트워크 유형의 업데이트 장치를 자동으로 인식하고 자동 인식된 여러 네트워크 유형의 업데이트 장치를 통해 내장된 펌웨어를 갱신할 수 있도록 하는 효과가 있다.The firmware update method, the device capable of updating the firmware and the firmware update system according to the dynamic recognition of the update environment according to the present invention as described above automatically recognize the update devices of various network types that can be accessed, So that the built-in firmware can be updated.
또한, 상기와 같은 본 발명에 따른 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템은 다수 네트워크 유형의 업데이트 장치 중에서 각각의 네트워크의 특성에 따라 동적으로 부여된 우선순위도에 따라 업데이트 장치를 결정하고 결정된 업데이트 장치를 통해 펌웨어 업데이트가 가능하도록 하는 효과가 있다.In addition, the firmware update method, the device-updateable device and the firmware update system according to the dynamic recognition of the update environment according to the present invention as described above may be applied to a plurality of network- It is possible to determine an update device in accordance with the determined update device and make firmware update possible through the determined update device.
또한, 상기와 같은 본 발명에 따른 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템은 다수의 업데이트 장치에 산재된 갱신 펌웨어를 이용하여 다양한 통신 방식에 따라 디바이스에 내장된 펌웨어를 업데이트하면서 내장된 펌웨어의 통일적인 관리가 가능하도록 하는 효과가 있다. In addition, the firmware update method, the device capable of updating the firmware, and the firmware update system according to the dynamic recognition of the update environment according to the present invention, as described above, It is possible to perform unified management of the built-in firmware while updating the firmware.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects obtained by the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description will be.
도 1은 본 발명에 따른 예시적인 펌웨어 업데이트 시스템을 도시한 도면이다.
도 2는 내장된 펌웨어의 업데이트를 수행할 수 있는 디바이스의 예시적인 구성을 나타내는 블록도이다.
도 3은 펌웨어 업데이트 가능한 여러 네트워크 유형의 업데이트 장치들 중에서 하나의 업데이트 장치를 동적으로 선택하여 펌웨어를 갱신하는 제어 흐름을 도시한 도면이다.
도 4는 펌웨어 업데이터를 수행하는 디바이스에 저장되는 우선순위 결정 테이블을 도시한 도면이다.1 is a diagram illustrating an exemplary firmware update system in accordance with the present invention.
2 is a block diagram illustrating an exemplary configuration of a device capable of performing an update of embedded firmware.
3 is a view showing a control flow for dynamically selecting one update device among the update devices of various network types capable of firmware update to update the firmware.
4 is a diagram showing a priority determination table stored in a device executing a firmware updater.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, in which: It can be easily carried out. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명에 따른 예시적인 펌웨어 업데이트 시스템을 도시한 도면이다.1 is a diagram illustrating an exemplary firmware update system in accordance with the present invention.
도 1에 따르면, 펌웨어 업데이트 시스템은 하나 이상의 펌웨어 업데이트 가능한 디바이스(100), 하나 이상의 업데이트 장치(200, 300, 400), 하나 이상의 게이트웨이(500, 600)와 다양한 유형의 네트워크(700)를 포함한다. 1, a firmware update system includes one or more firmware
도 1을 통해 펌웨어 업데이트 시스템의 구성을 살펴보면, 하나 이상의 펌웨어 업데이트 가능한 디바이스(100)는 연결 가능한 다양한 유형의 네트워크(700)를 통해 내장된 비휘발성 메모리(131)의 펌웨어를 업데이트할 수 있는 기기이다. 1, one or more firmware
디바이스(100)는 다양한 통신 인터페이스를 구비하여 시리얼, 이더넷, 와이파이, 블루투스, 지그비 등의 통신 네트워크와 나아가 인터넷 네트워크에 액세스할 수 있다. 특히, 디바이스(100)는 각종 유형의 통신 네트워크(700)를 통해 업데이트 장치(200, 300, 400)에 연결되어 업데이트 가능한 네트워크 환경을 동적으로 인식하여 내장된 펌웨어를 최적화된 네트워크를 통해 갱신할 수 있다. The
디바이스(100)는 휴대형이거나 거치형 기기일 수 있고 예를 들어, 휴대폰, 스마트폰, 네트워크에 접속 가능한 기기나 IoT 디바이스 등 일 수 있다. 또는, 디바이스(100)는 온/오프라인 상에서 개발 진행되고 있는 프로토타입의 기기이거나 프로토타입의 내장형 개발 보드 등일 수 있다. The
디바이스(100)에 대해서는 도 2 이하에서 상세히 살펴보도록 한다. The
펌웨어 업데이트 시스템 내에 구성되는 네트워크(700)는 다양한 유형의 네트워크를 포함할 수 있고 다양한 유형의 네트워크(700)는 디바이스(100)에 의해서 액세스될 수 있고 적어도 펌웨어 업데이트를 위해 이용 가능한 네트워크이다. The network 700 configured in the firmware update system may include various types of networks and the various types of networks 700 are networks that can be accessed by the
한 유형의 네트워크(이하 '제1 네트워크'라 함)는 펌웨어 업데이트 가능한 디바이스(100)에 1대1로 직접 연결되는 통신 네트워크로서 예를 들어 시리얼 통신이 가능한 네트워크일 수 있다. 제1 네트워크(701)는 UART, SPI, SDIO 등의 시리얼 통신을 통해 펌웨어를 업데이트를 가능토록 한다. 제1 네트워크(701)는 제품 개발에서 이용되는 디버깅용 시리얼 통신(예를 들어, ISP(In System Programming))일 수도 있다. One type of network (hereinafter, referred to as a 'first network') is a one to one directly connected to the firmware
다른 유형의 네트워크(이하 '제2 네트워크'라 함)는 로컬 에어리어 네트워크이다. 제2 네트워크(703)는 일정한 공간이나 영역 내에서 여러 기기나 장치 사이에서 유선이나 무선으로 데이터 통신이 가능토록 하고 예를 들어 이더넷 통신 네트워크이거나 와이파이 통신 네트워크 등일 수 있다. Another type of network (hereinafter referred to as a " second network ") is a local area network. The
또 다른 유형의 네트워크(이하 '제3 네트워크'라 함)는 광대역 네트워크이다. 제3 네트워크(705)는 넓은 영역(예를 들어, 국가나 전 세계 등) 내에서 여러 기기나 장치 사이에서 유선, 무선과 그 조합을 통해 데이터 통신이 가능토록 한다. 제3 네트워크(705)는 예를 들어 인터넷 네트워크(망)이거나 이동통신사업자에 의해서 제공되는 이동통신망일 수 있다. 이동통신망은 인터넷망에 포함될 수도 있다. Another type of network (hereinafter referred to as a " third network ") is a broadband network. The
또 다른 유형의 네트워크(이하 '제4 네트워크'라 함)는 퍼스널 에어리어 네트워크이다. 제4 네트워크(707)는 개인 공간 영역 내에서 기기나 장치상에서 데이터 통신을 가능토록 한다. 제4 네트워크(707)는 예를 들어 블루투스 통신 네트워크, 지그비 통신 네트워크 등일 수 있다.Another type of network (hereinafter referred to as a " fourth network ") is a personal area network. The
업데이트 장치(200, 300, 400)는 디바이스(100)에 내장되어 있는 펌웨어를 갱신할 수 있는 장치이다. 각각의 업데이트 장치는 임의의 네트워크에 각각 연결되어 디바이스(100)의 펌웨어를 갱신할 수 있다. The
예를 들어, 하나의 업데이트 장치(이하 '제1 업데이트 장치'라 함)는 제1 네트워크(701)를 통해 디바이스(100)에 연결되고 그에 따라 디바이스(100)의 펌웨어를 업데이트할 수 있다. 제1 업데이트 장치(200)는 시리얼 통신(제1 네트워크(701)) 등을 구비한 개인용 PC, 노트북, 태블릿 PC나 제품 개발시 디버깅 등이 가능한 검증(개발) 장비 등일 수 있다. For example, one update device (hereinafter, referred to as a 'first update device') may be connected to the
다른 하나의 업데이트 장치(이하 '제2 업데이트 장치'라 함)는 제2 네트워크(703)를 통해 디바이스(100)에 연결되고 그에 따라 디바이스(100)의 펌웨어를 업데이트할 수 있다. 제2 업데이트 장치(300)는 이더넷 통신이나 와이파이 통신 등이 가능한 개인용 PC, 노트북, 태블릿 PC나 개발을 위해 활용되는 로컬 서버나 디바이스 매니저 등일 수 있다. (Hereinafter referred to as a second update device) is connected to the
또 다른 하나의 업데이트 장치(이하 '제3 업데이트 장치'라 함)는 제3 네트워크(705)를 통해 디바이스(100)에 연결되고 그에 따라 디바이스(100)의 펌웨어를 업데이트할 수 있다. 제3 업데이트 장치(400)는 인터넷 통신이 가능한 개인용 PC, 노트북, 관리 서버 등일 수 있다. 제3 업데이트 장치(400)는 인터넷상에서 디바이스(100)에 의해 단일 서버로 인식되는 클라우드(cloud) 서버일 수도 있다. Another update device (hereinafter referred to as a 'third update device') is connected to the
펌웨어 업데이트가 가능한 디바이스(100)는 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및/또는 제3 업데이트 장치(400)와 각각의 네트워크(701, 703, 705, 707 등)를 통해 연결되어 특정 하나의 업데이트 장치로부터 수신되는 펌웨어를 이용하여 내장된 펌웨어를 갱신할 수 있다.The
게이트웨이(500,600)는 서로 다른 네트워크를 연결하기 위한 장치이다. 하나의 게이트웨이(500)(이하 '제1 게이트웨이'라 함)는 제2 네트워크(703)와 제3 네트워크(705)를 연결하여 이더넷이나 와이파이로부터의 통신 패킷을 인터넷망의 통신 패킷으로 변환하여 출력하고 인터넷망의 통신 패킷을 이더넷이나 와이파이 통신 패킷으로 변환한다. The
다른 하나의 게이트웨이(600)(이하 '제2 게이트웨이'라 함)는 제4 네트워크(707)와 제3 네트워크(705)를 연결하여 블루투스나 지그비 등으로부터의 통신 패킷을 인터넷망의 통신 패킷으로 변환하여 출력하고 인터넷망의 통신 패킷을 블루투스나 지그비의 통신 패킷으로 변환한다.Another gateway 600 (hereinafter referred to as a 'second gateway') connects the
여기서, 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)는 네트워크(700)를 통해 서로 동기화될 수 있다. 예를 들어, 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)는 네트워크(700)에 연결됨에 따라 최신 펌웨어 버전에 대응하는 펌웨어를 다른 업데이트 장치로부터 수신하고 이를 펌웨어 버전 정보와 함께 저장한다. 네트워크(700)에 연결되지 못하거나 동기화되지 못한 업데이트 장치는 다른 업데이트 장치와는 다른 펌웨어 버전의 펌웨어를 저장할 수 있다. Here, the
도 2는 내장된 펌웨어의 업데이트를 수행할 수 있는 디바이스(100)의 예시적인 구성을 나타내는 블록도이다. 2 is a block diagram illustrating an exemplary configuration of a
도 2에 따르면 펌웨어 업데이트 가능한 디바이스(100)는 통신부(110), 저장부(130), 입력부(150), 출력부(170) 및 제어부(190)를 포함한다. 설계 예에 따라 도 2에 도시되어 있는 일부 블록은 생략될 수 있고 도시되지 않은 다른 블록이 디바이스(100) 내에 더 포함될 수도 있다. Referring to FIG. 2, a
도 2를 통해 디바이스(100)의 구성을 살펴보면, 통신부(110)는 네트워크(700)를 통해 데이터 통신을 수행한다. 통신부(110)는 바람직하게는 제1 네트워크(701), 제2 네트워크(703) 및 제3 네트워크(705)를 통해 데이터 통신을 가능토록 구성되어 연결되는 기기나 장치 등과 각종 데이터를 송수신할 수 있다. Referring to FIG. 2, the
통신부(110)는, 제1 네트워크(701)를 통해 데이터 송수신이 가능한 제1 통신 인터페이스(111), 제2 네트워크(703)와 나아가 제3 네트워크(705)를 통해 데이터 송수신이 가능한 제2 통신 인터페이스(113) 및 제4 네트워크(707)와 나아가 제3 네트워크(705)를 통해 데이터 송수신이 가능한 제3 통신 인터페이스(115)를 구비한다. The
제1 통신 인터페이스(111)는 UART, SPI, SDIO, ISP 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 시리얼 통신을 통해 제1 업데이트 장치(200)와 시리얼 신호를 송수신할 수 있다. 제1 통신 인터페이스(111)는 수신된 시리얼 신호의 데이터를 제어부(190)로 전송하고 제어부(190)로부터 수신되는 데이터를 시리얼 신호로 제1 업데이트 장치(200)로 전송할 수 있다. The
제2 통신 인터페이스(113)는 이더넷 통신 및/또는 와이파이 통신 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 이더넷, 와이파이 통신 네트워크를 통해 제2 업데이트 장치(300)나 다른 장치들과 데이터를 송수신할 수 있다. The
또한, 제2 통신 인터페이스(113)는 제2 네트워크(703)를 경유(제1 게이트웨이(500)를 이용하여)하여 제3 네트워크(705)에 연결되어 제3 업데이트 장치(400)나 다른 장치들과 데이터를 송수신할 수 있다. The
제3 통신 인터페이스(115)는 블루투스 및/또는 지그비 통신 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 블루투스나 지그비 통신 네트워크를 통해 퍼스널 에어리어 네트워크상의 기기와 데이터를 송수신할 수 있다. 또한, 제3 통신 인터페이스(115)는 제2 게이트웨이(600)를 경유하여 제3 네트워크(705)(인터넷)에 연결된 제3 업데이트 장치(400)나 다른 장치들과 데이터를 송수신할 수 있다. The
이와 같이, 디바이스(100)는 다양한 유형의 통신 인터페이스를 구비하여 다양한 네트워크(700)를 통해 다른 기기나 장치와 연결될 수 있고 여러 유형의 네트워크(700)에 연결되어 있는 다양한 기기나 장치를 이용하여 내장된 펌웨어를 동적으로 업데이트할 수 있다. As such, the
저장부(130)는 비휘발성 메모리(131)와 나아가 휘발성 메모리(133)를 포함하여 각종 데이터와 프로그램을 저장한다. 저장부(130)는 적어도 펌웨어( 프로그램)를 저장하는 하나 이상의 비휘발성 메모리(131)를 포함한다. The
비휘발성 메모리(131)는 펌웨어와 저장된 펌웨어의 버전 정보를 저장한다. 비휘발성 메모리(131)에 저장되는 펌웨어는 디바이스(100)의 부팅시에 로딩되어 디바이스(100)를 제어할 수 있다. 비휘발성 메모리(131)는 업데이트될 펌웨어를 임시 저장하는 영역을 더 포함할 수 있다. The
비휘발성 메모리(131)의 특정 메모리 영역은 미리 펌웨어 영역으로 특정될 수 있고 제어부(190)가 이를 인식할 수 있다. 또한, 비휘발성 메모리(131)의 특정 메모리 영역은 갱신될 펌웨어가 임시 저장되는 임시 업데이트 영역으로 특정될 수 있고 제어부(190)가 이를 인식하거나 설정할 수 있다.The specific memory area of the
펌웨어는 디바이스(100)에서 사용되는 프로그램 일체(전체)를 나타내거나 업데이트 가능한 프로그램의 부분을 나타낼 수 있다. 설계 예에 따라 펌웨어 내에 업데이트 제어 오브젝트(프로그램)가 내장되거나 업데이트 제어 오브젝트(프로그램)가 업데이트 가능한 펌웨어 부분과는 별도로 구성된다. The firmware may represent the entire program used in the
저장부(130)의 비휘발성 메모리(131)는 우선순위 결정 테이블을 더 저장한다. 우선순위 결정 테이블은 펌웨어 업데이트 가능한 네트워크(또는 해당 네트워크에 연결된 업데이트 장치)별로 각 네트워크의 특성에 따라 산출된 우선순위도 점수를 저장한다. The
디바이스(100)는 단일 비휘발성 메모리(131)에 부팅시에 구동되는 펌웨어 영역과 임시 업데이트 영역을 모두 포함하도록 구성되거나 두 개의 비휘발성 메모리(131) 중 하나의 비휘발성 메모리(131)에 펌웨어를 저장하고 다른 하나의 비휘발성 메모리(131)에 업데이트되는 펌웨어를 저장하도록 구성될 수 있다. 구동(시작)시에 이용되는 펌웨어는 버전 정보와 함께 비휘발성 메모리(131)에 저장된다. The
휘발성 메모리(133)에는 임시 데이터나 프로그램 등을 저장할 수 있다. 예를 들어 휘발성 메모리(133)는 각종 임시 데이터나 프로그램 등의 일부 등을 저장할 수 있다. The
입력부(150)는 디바이스(100)의 사용자 입력을 수신한다. 입력부(150)는 구비된 터치 패널, 터치 패드, 버튼, 마우스, 전자펜, 설정핀, 스위치 등의 입력을 수신하고 수신된 입력을 제어부(190)로 전달할 수 있다. 입력부(150)를 통해 사용자는 디바이스(100)의 제어에 필요한 다양한 입력을 제공할 수 있다. The
예를 들어, 사용자는 입력부(150)를 통해 업데이트 장치간의 우선순위를 미리 결정하거나 고정할 수 있다. 그에 따라, 제어부(190)는 미리 설정된 우선순위에 따라 다른 업데이트 장치보다 우선하여 해당 업데이트 장치에 연결되어 펌웨어를 업데이트할 수 있다. 또는, 사용자는 입력부(150)를 통해 업데이트 장치 간의 우선순위를 동적으로 계산하도록 설정할 수 있다. For example, the user can preset or fix the priority among update devices through the
출력부(170)는 LCD, LED 등의 디스플레이, 발광 다이오드, 스피커, 부저 등을 구비하여 각종 데이터를 출력한다. 출력부(170)는 제어부(190)로부터 수신되는 오디오 데이터나 비디오 데이터를 대응하는 오디오 신호나 비디오 신호 등으로 변환하여 스피커, 부저, 디스플레이 및/또는 발광 다이오드로 출력한다. The
제어부(190)는 디바이스(100)를 제어한다. 제어부(190)는 하나 이상의 실행 유닛(Execution Unit)을 포함하여 저장부(130)에 저장되어 있는 펌웨어 등을 실행 유닛에 로딩하여 프로그램에 따라 디바이스(100)를 제어한다. 제어부(190)는 CPU, MPU, 마이컴, 중앙 처리 장치 등을 나타내거나 이를 포함한다. The
제어부(190)는 펌웨어를 로딩하여 펌웨어에 따라 정의된 기능을 입력부(150)와 출력부(170)와 연동하여 수행할 수 있다. 또한, 제어부(190)는 펌웨어를 로딩하여 수행(특히, 업데이트 제어 오브젝트)함에 따라 업데이트 가능한 여러 업데이트 장치를 인식하고 각각의 업데이트 장치의 최신 펌웨어 버전을 확인에 따라 특정 업데이트 장치의 펌웨어로 비휘발성 메모리(131)에 내장되어 있는 펌웨어 영역을 갱신할 수 있다. The
펌웨어를 로딩하여 수행하는 제어부(190)는 업데이트 장치의 인식과 필요시 갱신 후에 지정된 기능을 수행할 수 있다. The
펌웨어 업데이트와 관련하여 제어부(190)에서 이루어지는 주요 제어는 도 3 및 도 4를 통해 좀 더 상세히 살펴보도록 한다. The main control performed by the
도 3은 펌웨어 업데이트 가능한 여러 네트워크 유형의 업데이트 장치들 중에서 하나의 업데이트 장치를 동적으로 선택하여 펌웨어를 갱신하는 제어 흐름을 도시한 도면이다. 3 is a view showing a control flow for dynamically selecting one update device among the update devices of various network types capable of firmware update to update the firmware.
도 3의 제어 흐름은 디바이스(100)에 의해 수행되고 바람직하게는 제어부(190)가 저장부(130)의 프로그램(업데이트 제어 프로그램)을 로딩하여 수행함으로써 이루어진다. 업데이트 제어 프로그램은 펌웨어의 일부이거나 별도일 수 있다. 업데이트 제어 프로그램은 부팅시에 구동되는 부팅 프로그램일 수도 있다. The control flow of FIG. 3 is performed by the
먼저, 디바이스(100)에 전원이 인가되거나 입력부(150)를 통해 입력되는 업데이트 갱신 입력에 따라 제어부(190)가 업데이트 제어 프로그램을 로딩하여 시작(S100)한다. First, the
업데이트 제어 프로그램이 구동됨에 따라, 제어부(190)는 통신부(110)의 제1 통신 인터페이스(111)를 통해 제1 네트워크(701)에 연결된 제1 업데이트 장치(200)의 인식을 시도(S101)한다. The
예를 들어, 제어부(190)는 제1 통신 인터페이스(111)의 시리얼 통신을 통해 제1 업데이트 장치(200)로 약속된 포맷의 시리얼 커맨드(예를 들어, 연결 요청 커맨드)를 전송하고 시리얼 커맨드에 대한 그 응답을 제1 통신 인터페이스(111)의 시리얼 통신을 통해 수신한다. For example, the
제1 업데이트 장치(200)로부터 수신되는 응답 데이터는 제1 업데이트 장치(200)가 보유하고 있는 최신 펌웨어 버전 정보를 포함한다. The response data received from the
이와 같이, 제어부(190)는 제1 네트워크(701)에 연결된 제1 업데이트 장치(200)를 인식하기 위해 약속된 포맷의 연결 요청 커맨드를 제1 업데이트 장치(200)로 전송하고 그 응답을 수신함에 따라 제1 업데이트 장치(200)를 인식한다. In this manner, the
인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the
제어부(190)는 인식 시도와 연결에 따라 우선순위 결정 테이블의 제1 업데이트 장치(200)에 대응하는 엔트리를 갱신한다. The
여기서, 도 4를 통해 우선순위 결정 테이블을 살펴보면, 우선순위 결정 테이블은 저장부(130)의 비휘발성 메모리(131)에 저장된다. Referring to FIG. 4, the priority determination table is stored in the
우선순위 결정 테이블은 업데이트 장치별 각 항목의 가중치, 연결 상태, 산출된 우선순위도 점수, 보유한 펌웨어 버전 정보 등을 저장한다. 우선순위도 점수 산출에 이용되는 항목은 전송 속도, 신뢰성, 보안성, 안정성, 가용성, 연결 지연도, 에러율 등이 있을 수 있고 각각의 항목은 가중치 점수로 표현될 수 있다. The priority determination table stores the weight of each item, the connection status, the score of the calculated priority degree, the firmware version information, and the like of each item according to the update device. Items to be used for calculating the priority degree score may include transmission speed, reliability, security, stability, availability, connection delay, error rate, etc., and each item can be expressed by a weight score.
전송 속도는 업데이트 장치와 디바이스(100) 사이에서 연결되는 네트워크의 전송 속도에 따라 부여되는 점수일 수 있다. 신뢰성은 업데이트 장치와 디바이스(100) 사이에서 이용되는 통신 프로토콜의 데이터 무결성 유지 및 재전송 메커니즘 탑재 여부에 따라 부여되는 점수일 수 있다. 보안성은 업데이트 장치와 디바이스(100) 사이의 거리에 따라 부여되는 점수일 수 있다. 안정성은 네트워크의 유선 또는 무선 타입에 따라 부여되는 점수일 수 있다. 전송 속도, 신뢰성, 보안성, 안정성 점수는 미리 고정될 수 있고 그 점수는 점수 1을 기준으로 상하 비율로 가중되는 가중치 점수일 수 있다. The transmission rate may be a score given according to the transmission speed of the network connected between the updating device and the
가용성, 연결 지연도 및 에러율은 연결 시도나 연결에 따라 지속적으로 갱신될 수 있는데, 가용성 점수는 인식 시도 횟수(연결 요청의 횟수)로 산출되는 점수값이다. 연결 지연도는 연결 요청에서 그 응답 사이의 지연시간에 따라 산출되는 점수값이다. 에러율은 업데이트 장치와 펌웨어 등의 데이터의 교환시에 재전송, 타임아웃, 기타 에러 발생에 따라 산출되는 점수값이다. The availability, connection delay and error rate can be continuously updated according to the connection attempt or connection. The availability score is a score calculated by the number of recognition attempts (the number of connection requests). The connection delay is a score calculated according to the delay time between the responses in the connection request. The error rate is a score calculated according to retransmission, timeout, and other errors when exchanging data between the update device and firmware.
가용성, 연결 지연도 및 에러율 점수도 점수 1을 기준으로 상하 비율로 가중되는 가중치 점수이고 지속적으로 업데이트된다. The availability, connection delay and error rate scores are also weighted scores that are weighted up and down based on score 1 and are continually updated.
도 4의 예에서 알 수 있는 바와 같이, 우선순위 결정 테이블은 하나의 제1 업데이트 장치(200)의 엔트리와 하나의 제2 업데이트 장치(300)의 엔트리를 가지고 두 개의 제3 업데이트 장치(400) 엔트리를 가진다. 둘 중 하나의 제3 업데이트 장치 엔트리는 제2 네트워크(703)(이더넷이나 와이파이 등)를 경유하여 제3 업데이트 장치(400)에 연결시에 이용되는 엔트리이고 다른 하나의 엔트리는 제4 네트워크(707)(블루투스 등)를 경유하여 제3 업데이트 장치(400)에 연결시에 이용되는 엔트리이다. As can be seen in the example of FIG. 4, the prioritization table includes two entries of the
다시, 도 3의 제어 흐름을 살펴보면, 제1 업데이트 장치 인식 시도 과정(S101)에서 제어부(190)는 우선순위 결정 테이블의 제1 업데이트 장치 엔트리를 갱신한다. 예를 들어, 제어부(190)는 제1 업데이트 장치 엔트리의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. Referring again to FIG. 3, the
예를 들어, 제어부(190)는 인식 시도 횟수에 따라 점수 1을 기준으로 하는 현재 가용성 점수를 산출하고 엔트리에 저장되어 있는 가용성 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 가용성 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 인식 시도가 반영된 가용성 점수를 산출하고 이를 엔트리에 저장한다. For example, the
또한, 제어부(190)는 연결 요청(연결 요청 커맨드)으로부터 이 연결 요청에 대한 응답까지의 지연 시간을 반영한 현재 연결 지연도 점수를 산출한다. 제어부(190)는 엔트리의 연결 지연도 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 연결 지연도 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 연결 지연 시간이 반영된 연결 지연도 점수를 산출하고 이를 엔트리에 저장한다. Also, the
또한, 제어부(190)는 제1 업데이트 장치(200)로부터 수신되는 데이터에 대한 에러를 검출(S101에서나 S111에서)하여 현재 에러율 점수를 산출한다. 제어부(190)는 엔트리의 에러율 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 에러율 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 에러율이 반영된 에러율 점수를 산출하고 이를 엔트리에 저장한다. In addition, the
제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제1 업데이트 장치(200)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. 예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. As the score of each item is updated, the
제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 데이터(점수)이다. 제1 업데이트 장치(200)에 대응하는 엔트리의 우선순위도 점수의 산출은 제1 업데이트 장치(200)의 인식 과정(S101)에서 이루어지거나 그 이후에 이루어질 수 있다. The
제어부(190)는 제1 업데이트 장치(200)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The
또한, 제어부(190)는 제2 네트워크(703)에 연결된 제2 업데이트 장치(300)의 인식을 시도(S103)한다. Also, the
예를 들어, 제어부(190)는 저장부(130)에 저장되어 있는 제2 업데이트 장치(300)(예를 들어, 로컬 서버나 디바이스 매니저 등)의 로컬 IP 주소 등을 이용하여 제2 업데이트 장치(300)를 검색(연결 요청)하기 위한 브로드캐스팅 메시지를 생성하여 제2 통신 인터페이스(113)를 통해 이더넷이나 와이파이 통신 네트워크로 전송한다. 브로드캐스팅 패킷은 UDP 브로드캐스팅 패킷이거나 ICMP 브로드캐스팅 패킷(예를 들어 PING 패킷)일 수 있다. 제2 업데이트 장치(300)는 제2 네트워크(703)에 직접 연결되어 있는 장치이다.For example, the
제어부(190)는 브로드캐스팅 패킷에 대한 응답 패킷을 제2 통신 인터페이스(113)를 수신하여 제2 업데이트 장치(300)를 인식한다. 응답 패킷은 제2 업데이트 장치(300)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The
인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the
제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제2 업데이트 장치(300)에 대응하는 엔트리를 갱신한다. The
제2 업데이트 장치 인식 시도 과정(S103)에서 제어부(190)는 우선순위 결정 테이블의 제2 업데이트 장치 엔트리를 갱신한다. 예를 들어, 제어부(190)는 제2 업데이트 장치 엔트리의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. In the second updating device recognition attempting process (S103), the
이미, 제1 업데이트 장치(200)의 엔트리와 관련하여 가용성, 연결 지연도 및 에러율 점수 등의 산출 방식을 살펴보았으므로 여기서는 그 내용을 생략한다. Since the calculation method of the availability, the connection delay and the error rate score has already been described with respect to the entry of the
제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제2 업데이트 장치(300)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. 예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. As the score of each item is updated, the
제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제2 업데이트 장치(300)에 대응하는 엔트리의 우선순위도 점수의 산출은 제2 업데이트 장치(300)의 인식 과정(S103)에서 이루어지거나 그 이후에 이루어질 수 있다. The
제어부(190)는 제2 업데이트 장치(300)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The
또한, 제어부(190)는 제3 네트워크(705)에 연결된 제3 업데이트 장치(400)의 인식을 시도(S105)한다. 제어부(190)는 두 종류의 네트워크(제2 네트워크(703) 및 제4 네트워크(707))의 게이트웨이(500, 600)를 통해 인터넷의 제3 업데이트 장치(400)를 인식할 수 있다. The
제2 네트워크(703)의 제1 게이트웨이(500)를 통해 제3 업데이트 장치(400)를 인식하기 위해, 제어부(190)는 제2 통신 인터페이스(113)를 통해 제3 업데이트 장치(400)와의 연결을 시도한다. 예를 들어, 제어부(190)는 제2 통신 인터페이스(113)를 통해 제3 업데이트 장치(400)와 핸드쉐이킹으로 인증서(Certificate)를 검증하고 세션키를 생성하여 보안 통신 채널을 구성하고 데이터 통신을 위한 MQTT(Message Queuing Telemetry Transport) 연결한다.The
제어부(190)는 제2 통신 인터페이스(113)를 통해 MQTT Keep-alive 패킷(연결 요청)을 제3 업데이트 장치(400)로 전송하고 그 응답을 수신하여 제3 업데이트 장치(400)를 인식 시도할 수 있다. 응답 패킷은 제3 업데이트 장치(400)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The
인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the
제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제3 업데이트 장치(400)(제2 네트워크(703) 경유)에 대응하는 엔트리를 갱신한다. The
제3 업데이트 장치 인식 시도 과정(S105)에서 제어부(190)는 우선순위 결정 테이블의 제3 업데이트 장치 엔트리(제2 네트워크(703) 경유)를 갱신한다. 예를 들어, 제어부(190)는 제3 업데이트 장치 엔트리(제2 네트워크(703) 경유)의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. The
이미, 제1 업데이트 장치(200)의 엔트리와 관련하여 가용성, 연결 지연도 및 에러율 점수 등의 산출 방식을 살펴보았으므로 여기서는 그 내용을 생략한다. Since the calculation method of the availability, the connection delay and the error rate score has already been described with respect to the entry of the
제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제3 업데이트 장치(400)(제2 네트워크(703) 경유)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. As the score of each item is updated, the
예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. 제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제3 업데이트 장치(400)(제2 네트워크(703) 경유)에 대응하는 엔트리의 우선순위도 점수의 산출은 제3 업데이트 장치(400)의 인식 과정(S105)에서 이루어지거나 그 이후에 이루어질 수 있다. For example, the
제어부(190)는 제3 업데이트 장치(400)(제2 네트워크(703) 경유)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The
제4 네트워크(707)의 제2 게이트웨이(600)를 통해 제3 업데이트 장치(400)를 인식하기 위해, 제어부(190)는 제3 통신 인터페이스(115)를 통해 제4 네트워크(707)에 연결된 제2 게이트웨이(600)를 검색하기 위한 브로드캐스팅 패킷(예를 들어, UDP 브로드캐스팅 패킷)을 전송하고 제2 게이트웨이(600)로부터 그 응답을 수신한다. 이후, 제어부(190)는 제2 게이트웨이(600)와 제4 네트워크(707)를 통한 데이터 송수신이 가능한 통신 채널을 설정하고 제3 업데이트 장치(400)와 연결되기 위한 통신 채널의 설정을 시도한다. The
제어부(190)는 제4 네트워크(707)를 통해 제3 업데이트 장치(400)로부터 TCP에 기반한 통신 채널 연결 요청에 대한 응답을 수신하여 그 응답에 따라 제4 네트워크(707)를 경유하여 제3 업데이트 장치(400)의 인식을 시도할 수 있다. 응답 패킷은 제3 업데이트 장치(400)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The
인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the
제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제3 업데이트 장치(400)(제4 네트워크(707) 경유)에 대응하는 엔트리를 갱신한다. The
제3 업데이트 장치 인식 시도 과정(S105)에서 제어부(190)는 우선순위 결정 테이블의 제3 업데이트 장치 엔트리(제4 네트워크(707) 경유)를 갱신한다. 예를 들어, 제어부(190)는 제3 업데이트 장치 엔트리(제4 네트워크(707) 경유)의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. In the third update device recognition attempting process (S105), the
이미, 제1 업데이트 장치(200)의 엔트리와 관련하여 가용성, 연결 지연도 및 에러율 점수 등의 산출 방식을 살펴보았으며 여기서는 그 내용을 생략한다. The calculation method of the availability, the connection delay and the error rate score with respect to the entry of the
제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제3 업데이트 장치(400)(제4 네트워크(707) 경유)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. As the score of each item is updated, the
예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. 제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제3 업데이트 장치(400)(제4 네트워크(707) 경유)에 대응하는 엔트리의 우선순위도 점수의 산출은 제3 업데이트 장치(400)의 인식 과정(S105)에서 이루어지거나 그 이후에 이루어질 수 있다. For example, the
제어부(190)는 제3 업데이트 장치(400)(제4 네트워크(707) 경유)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The
여기서, 제1 업데이트 장치(200)의 인식 시도(S101), 제2 업데이트 장치(300)의 인식 시도(S103) 및 제3 업데이트 장치(400)의 인식 시도(S105)는 서로 독립적으로 수행될 수 있고 지정된 선후 관계는 없을 수 있다. 예를 들어, 제2 업데이트 장치(300)의 인식 과정이 제1 업데이트 장치(200)의 인식 과정보다 선행하거나 제3 업데이트 장치(400)의 인식 과정 이후에 발생할 수도 있다. Here, the recognition attempt (S101) of the
이후, 제어부(190)는 저장부(130)의 비휘발성 메모리(131)에 현재 저장되어 있는 펌웨어 버전 정보가 최선 펌웨어 버전인 지를 판단(S107)한다. 예를 들어, 제어부(190)는 비휘발성 메모리(131)에 갱신된 우선순위 결정 테이블의 각 엔트리의 보유 펌웨어 버전과 현재의 펌웨어 버전 정보를 비교하여 현재 펌웨어 버전이 최신 버전인지를 확인할 수 있다.Thereafter, the
만일, 비휘발성 메모리(131)의 현재 펌웨어의 버전이 엔트리의 각 업데이트 장치의 펌웨어 버전과 동일하거나 높은 경우에 제어부(190)는 펌웨어 업데이트를 진행하지 않고 종료하거나 펌웨어 업데이트 과정 후 실행되는 지정된 기능을 수행(S200)한다. If the version of the current firmware of the
만일, 최신 버전이 아닌 경우, 제어부(190)는 저장부(130)의 비휘발성 메모리(131)의 펌웨어를 갱신할 업데이트 장치를 결정(S109)한다. 제어부(190)는 제1 업데이트 장치(200)의 인식 여부, 제2 업데이트 장치(300)의 인식 여부, 나아가 제3 업데이트 장치(400)의 인식 여부와 각각의 업데이트 장치로부터 수신된 펌웨어 버전 정보에 기초하여 저장부(130)의 펌웨어를 갱신할 업데이트 장치를 결정한다. If it is not the latest version, the
구체적으로, 제어부(190)는 업데이트 장치의 결정(S109)에서 또는 이전의 인식 과정에서 우선순위 결정 테이블에 각 업데이트 장치의 연결 상태(인식 여부)를 설정하고 우선순위도를 산출한다. Specifically, the
제어부(190)는 현재의 비휘발성 메모리(131)의 펌웨어보다 더(가장) 높은 버전(최신 버전)을 가지는 업데이트 장치들(예를 들어 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)) 중 인식에 따라 연결 상태이면서 가장 높은 우선순위도 점수를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정한다. The
제3 업데이트 장치(400)로 결정된 경우에는 중간 연결 네트워크 유형(제2 네트워크(703), 제4 네트워크(707))이 또한 우선순위도에 따라 결정될 수 있다. The intermediate connection network type (
산출된 우선순위도의 비교에 따른 업데이트 장치의 결정 대신에, 제어부(190)는 입력부(150) 등을 통해 미리 설정된 우선순위에 따라 업데이트 장치를 결정할 수도 있다. 이 경우에는 가장 높은 펌웨어 버전을 가지면서 고정된 우선순위가 높은 업데이트 장치가 갱신할 업데이트 장치로 결정될 수 있다. The
갱신할 업데이트 장치가 결정됨에 따라, 제어부(190)는 결정된 업데이트 장치에 대응하는 네트워크를 통해 펌웨어를 업데이트(S111)한다. As the update device to be updated is determined, the
제어부(190)는 결정된 업데이트 장치의 대응 네트워크를 통해 펌웨어 데이터와 이 펌웨어 데이터에 대하여 계산된 해쉬 코드를 대응하는 통신 인터페이스를 통해 수신하고 수신된 펌웨어 데이터를 저장부(130)의 비휘발성 메모리(131)의 임시 업데이트 영역에 임시 저장한다. The
대응하는 네트워크로부터 모든 펌웨어 데이터와 해쉬 코드를 수신한 경우에, 제어부(190)는 임시 저장된 펌웨어 데이터를 대상으로 해쉬 코드를 산출하고 산출된 해쉬 코드와 수신된 해쉬 코드가 동일한 경우에 수신되어 임시로 저장된 펌웨어 데이터를 비휘발성 메모리(131)의 펌웨어 영역에 기록하여 펌웨어를 갱신한다. When all the firmware data and the hash code are received from the corresponding network, the
결정된 업데이트 장치와 대응하는 네트워크에 따라, 이용되는 통신 프로토콜과 펌웨어 소싱 방식을 서로 다를 수 있다. 예를 들어, 클라우드 서버와 같은 제3 업데이트 장치(400)는 HTTP(hypertext transfer protocol) 통신 프로토콜 기반의 요청과 응답에 따라 펌웨어를 디바이스(100)로 전송할 수 있다. 클라우드 서버는 펌웨어 정보나 다운로드 요청 등에 따라 다른 스토리지 서버와 연계하여 해당 펌웨어 정보나 펌웨어를 디바이스(100)로 전송할 수 있다. Depending on the network associated with the determined update device, the communication protocol used and the firmware sourcing method may be different. For example, the
펌웨어가 갱신 완료됨에 따라, 디바이스(100)는 재부팅되어 갱신된 펌웨어로 구동되어 지정된 기능을 수행할 수 있다.As the firmware is updated, the
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. The present invention is not limited to the drawings.
100 : 디바이스
110 : 통신부
111 : 제1 통신 인터페이스 113 : 제2 통신 인터페이스
115 : 제3 통신 인터페이스
130 : 저장부
131 : 비휘발성 메모리 133 : 휘발성 메모리
150 : 입력부 170 : 출력부
190 : 제어부
200 : 제1 업데이트 장치 300 : 제2 업데이트 장치
400 : 제3 업데이트 장치 500 : 제1 게이트웨이
600 : 제2 게이트웨이
700 : 네트워크
701 : 제1 네트워크 703 : 제2 네트워크
705 : 제3 네트워크 707 : 제4 네트워크100: device
110:
111: first communication interface 113: second communication interface
115: Third communication interface
130:
131: nonvolatile memory 133: volatile memory
150: input unit 170: output unit
190:
200: first update device 300: second update device
400: third update device 500: first gateway
600: second gateway
700: Network
701: first network 703: second network
705: third network 707: fourth network
Claims (11)
시리얼 통신에 연결된 제1 업데이트 장치를 상기 시리얼 통신을 통해 인식 시도하는 단계;
로컬 에어리어 네트워크에 연결된 제2 업데이트 장치를 상기 로컬 에어리어 네트워크를 통해 인식 시도하는 단계;
제1 업데이트 장치 및 제2 업데이트 장치의 인식 여부와 각각의 업데이트 장치로부터 수신되고 각각의 업데이트 장치가 저장하고 있는 펌웨어의 펌웨어 버전 정보에 기초하여 상기 디바이스의 펌웨어를 갱신할 업데이트 장치를 결정하는 단계; 및
결정된 업데이트 장치를 통해 펌웨어를 업데이트하는 단계;를 포함하며,
상기 시리얼 통신에 연결된 제1 업데이트 장치를 인식 시도하는 단계는 상기 제1 업데이트 장치로 시리얼 통신을 통해 연결 요청 커맨드를 전송하고 제1 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답의 수신에 따라 업데이트 가능한 제1 업데이트 장치를 인식하며,
상기 로컬 에어리어 네트워크에 연결된 제2 업데이트 장치를 인식 시도하는 단계는 상기 로컬 에어리어 네트워크를 통해 상기 제2 업데이트 장치를 검색하기 위한 브로드캐스팅 패킷을 전송하고 제2 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답 패킷의 수신에 따라 업데이트 가능한 제2 업데이트 장치를 인식하는,
펌웨어 업데이트 방법.A firmware update method for updating firmware of a non-volatile memory built in a device by the device,
Attempting to recognize a first update device connected to the serial communication through the serial communication;
Attempting to recognize a second update device connected to the local area network through the local area network;
Determining an update device to update the firmware of the device based on whether the first update device and the second update device are recognized and the firmware version information of the firmware received from each update device and stored in each update device; And
And updating the firmware through the determined update device,
The attempting to recognize the first update device connected to the serial communication may include transmitting a connection request command through the serial communication to the first update device and receiving a response including the latest firmware version information stored in the first update device Recognizes an updatable first update device,
Wherein the attempting to recognize a second update device connected to the local area network comprises transmitting a broadcasting packet for searching the second update device through the local area network and transmitting the latest firmware version information stored in the second update device Recognizing an updateable second update device upon receipt of an included response packet,
How to update the firmware.
상기 시리얼 통신에 연결된 제1 업데이트 장치를 인식 시도하는 단계는 상기 제1 업데이트 장치와의 시리얼 통신에 따라 가용성 점수와 연결 지연도 점수를 산출하고 상기 디바이스에 저장되는 우선순위 결정 테이블의 상기 제1 업데이트 장치에 대응하는 엔트리에 산출된 가용성 점수와 연결 지연도 점수를 저장하고,
상기 로컬 에어리어 네트워크에 연결된 제2 업데이트 장치를 인식 시도하는 단계는 상기 제2 업데이트 장치와의 로컬 에어리어 네트워크에 따른 통신에 따라 가용성 점수와 연결 지연도 점수를 산출하고 상기 우선순위 결정 테이블의 상기 제2 업데이트 장치에 대응하는 엔트리에 산출된 가용성 점수와 연결 지연도 점수를 저장하고,
상기 디바이스의 펌웨어를 갱신할 업데이트 장치를 결정하는 단계는 우선순위 결정 테이블의 상기 제1 업데이트 장치에 대응하는 엔트리의 가용성 점수 및 연결 지연도 점수와 상기 우선순위 결정 테이블의 상기 제2 업데이트 장치에 대응하는 엔트리의 가용성 점수 및 연결 지연도 점수를 더 기초하여 업데이트 장치를 결정하는,
펌웨어 업데이트 방법.The method according to claim 1,
Wherein the step of attempting recognition of the first update device connected to the serial communication comprises calculating a score of availability score and connection delay score in accordance with serial communication with the first update device, Stores the availability score and connection delay score calculated in the entry corresponding to the device,
Wherein the step of attempting recognition of a second update device connected to the local area network comprises the steps of calculating an availability score and a connection delay score according to communication with the second update device in accordance with the local area network, Stores the availability score and connection delay score calculated in the entry corresponding to the updating device,
Wherein the step of determining an update device to update the firmware of the device includes the step of determining the availability score and the connection delay score of the entry corresponding to the first update device of the priority determination table and the correspondence with the second update device of the priority determination table Determining an update device based on the availability score and the connection delay score of the entry,
How to update the firmware.
광대역 네트워크에 연결된 제3 업데이트 장치를 인식 시도하는 단계;를 더 포함하고,
상기 업데이트 장치의 결정 단계는, 제1 업데이트 장치 내지 제3 업데이트 장치가 인식됨에 따라, 제1 업데이트 장치에 대응하는 제1 우선순위도, 제2 업데이트 장치에 대응하는 제2 우선순위도 및 제3 업데이트 장치에 대응하는 제3 우선순위도를 산출하고 제1 우선순위도, 제2 우선순위도 및 제3 우선순위도 중 가장 높은 우선순위도를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정하는,
펌웨어 업데이트 방법.The method according to claim 1,
And attempting to recognize a third update device connected to the broadband network,
The determining step of the updating device determines whether or not the first updating device corresponds to the first updating device, the second updating device corresponds to the third updating device, and the third updating device corresponds to the third updating device, A third priority degree corresponding to the update device is calculated and an update device having the highest priority among the first priority degree, the second priority degree and the third priority degree is determined as an update device to update the firmware ,
How to update the firmware.
상기 우선순위도는 대응하는 네트워크의 가용성 점수, 연결 지연도 점수 및 에러율 점수에 따라 산출되고,
가용성 점수, 연결 지연도 점수 및 에러율 점수는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신되는,
펌웨어 업데이트 방법.The method of claim 3,
The priority degree is calculated according to the availability score, connection delay score and error rate score of the corresponding network,
The availability score, the connection delay score and the error rate score are updated according to the connection attempt to the corresponding network or the data transmission / reception,
How to update the firmware.
상기 디바이스는 개발용 프로토타입 기기이거나 내장형 개발 보드이고,
상기 제1 업데이트 장치의 가용성 점수는 제1 업데이트 장치에 대한 인식 시도 횟수에 기초하여 산출되고 상기 제1 업데이트 장치의 연결 지연도 점수는 시리얼 통신을 통해 제1 업데이트 장치로 출력되는 연결 요청 커맨드로부터 수신된 응답까지의 지연 시간에 기초하여 산출되는,
펌웨어 업데이트 방법.3. The method of claim 2,
The device may be a prototype device for development or an embedded development board,
Wherein the availability score of the first updating device is calculated based on the number of recognition attempts for the first updating device and the connection delay score of the first updating device is calculated from the connection request command received from the connection request command output to the first updating device via serial communication Lt; RTI ID = 0.0 > response,
How to update the firmware.
결정된 업데이트 장치를 통해 펌웨어를 업데이트하는 단계는 업데이트 장치로부터 펌웨어와 해쉬 코드를 수신하고 수신된 펌웨어를 메모리에 임시 저장하고 임시 저장됨 펌웨어 데이터에 대해 해쉬 코드를 산출하며 산출된 해쉬 코드와 수신된 해쉬 코드가 동일한 경우 임시 저장된 펌웨어 데이터를 비휘발성 메모리의 펌웨어 영역에 기록하는,
펌웨어 업데이트 방법.6. The method of claim 5,
Updating the firmware through the determined updating device includes receiving the firmware and the hash code from the updating device, temporarily storing the received firmware in the memory, calculating the hash code for the temporarily stored firmware data, and comparing the calculated hash code and the received hash If the codes are the same, temporarily store the firmware data in the firmware area of the nonvolatile memory,
How to update the firmware.
시리얼 통신, 로컬 에어리어 네트워크 및 광대역 네트워크를 통해 데이터 통신이 가능한 통신부;
상기 디바이스의 펌웨어를 저장하는 비휘발성 메모리를 포함하는 저장부; 및
상기 통신부를 통해 상기 시리얼 통신에 연결된 제1 업데이트 장치와 상기 로컬 에어리어 네트워크에 연결된 제2 업데이트 장치와 상기 광대역 네트워크에 연결된 제3 업데이트 장치의 인식을 각각 시도하고 제1 업데이트 장치, 제2 업데이트 장치 및 제3 업데이트 장치의 인식 여부와 각 업데이트 장치로부터 수신되고 각 업데이트 장치가 저장하고 있는 펌웨어의 펌웨어 버전 정보에 기초하여 펌웨어를 갱신할 업데이트 장치를 결정하고 결정된 업데이트 장치를 통해 상기 저장부의 펌웨어를 업데이트하는 제어부;를 포함하고,
상기 제어부는, 상기 제1 업데이트 장치로 시리얼 통신을 통해 연결 요청 커맨드를 전송하고 제1 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답의 수신에 따라 업데이트 가능한 제1 업데이트 장치를 인식하고, 상기 로컬 에어리어 네트워크를 통해 상기 제2 업데이트 장치를 검색하기 위한 브로드캐스팅 패킷을 전송하고 제2 업데이트 장치에 저장되어 있는 최신 펌웨어 버전 정보를 포함하는 응답 패킷의 수신에 따라 업데이트 가능한 제2 업데이트 장치를 인식하는,
디바이스.As a device capable of firmware update,
A communication unit capable of data communication through a serial communication, a local area network, and a broadband network;
A storage unit including a nonvolatile memory for storing firmware of the device; And
A second update device connected to the local area network, and a third update device connected to the broadband network, respectively, through the communication section, Determines an update device to update the firmware on the basis of whether or not the third update device is recognized and the firmware version information of the firmware received from each update device and stored in each update device and updates the firmware of the storage device through the determined update device And a control unit,
Wherein the control unit transmits a connection request command through the serial communication to the first update device and recognizes the first update device that can be updated according to the reception of the response including the latest firmware version information stored in the first update device, Transmits a broadcasting packet for searching for the second updating device through the local area network, and recognizes the updatable second updating device upon receipt of a response packet including latest firmware version information stored in the second updating device doing,
device.
펌웨어를 갱신할 업데이트 장치의 결정을 위해, 상기 제어부는 제1 업데이트 장치 내지 제3 업데이트 장치가 각각 인식됨에 따라, 제1 업데이트 장치에 대응하는 제1 우선순위도, 제2 업데이트 장치에 대응하는 제2 우선순위도 및 제3 업데이트 장치에 대응하는 제3 우선순위도를 산출하고 제1 우선순위도, 제2 우선순위도 및 제3 우선순위도 중 가장 높은 우선순위도를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정하는,
디바이스.8. The method of claim 7,
In order to determine an update apparatus to update the firmware, the control unit may be configured to update the first update apparatus corresponding to the first update apparatus, the first update apparatus corresponding to the second update apparatus, The second priority degree, the third priority degree corresponding to the third update device, and updates the firmware having the highest priority among the first priority degree, the second priority degree and the third priority degree to the firmware Determining which update device to update,
device.
상기 우선순위도는 대응하는 네트워크의 가용성 점수, 연결 지연도 점수 및 에러율 점수에 따라 산출되고,
가용성 점수, 연결 지연도 점수 및 에러율 점수는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신되는,
디바이스.9. The method of claim 8,
The priority degree is calculated according to the availability score, connection delay score and error rate score of the corresponding network,
The availability score, the connection delay score and the error rate score are updated according to the connection attempt to the corresponding network or the data transmission / reception,
device.
상기 제어부는, 제1 업데이트 장치의 인식 시도 동안에 상기 제1 업데이트 장치와의 시리얼 통신에 따라 가용성 점수와 연결 지연도 점수를 산출하고 상기 저장부에 저장되는 우선순위 결정 테이블의 상기 제1 업데이트 장치에 대응하는 엔트리에 산출된 가용성 점수와 연결 지연도 점수를 저장하고, 제2 업데이트 장치의 인식 시도 동안에 상기 제2 업데이트 장치와의 로컬 에어리어 네트워크에 따른 통신에 따라 가용성 점수와 연결 지연도 점수를 산출하고 상기 우선순위 결정 테이블의 상기 제2 업데이트 장치에 대응하는 엔트리에 산출된 가용성 점수와 연결 지연도 점수를 저장하며, 우선순위 결정 테이블의 상기 제1 업데이트 장치에 대응하는 엔트리의 가용성 점수 및 연결 지연도 점수와 상기 우선순위 결정 테이블의 상기 제2 업데이트 장치에 대응하는 엔트리의 가용성 점수 및 연결 지연도 점수를 더 기초하여 펌웨어를 갱신할 업데이트 장치를 결정하는,
디바이스.8. The method of claim 7,
The control unit calculates the number of usable points and the degree of connection delay according to serial communication with the first updater during the recognition attempt of the first updater and outputs the score to the first updater of the priority table stored in the storage unit Stores the availability score and connection delay score calculated in the corresponding entry and calculates the availability score and the connection delay score according to the communication according to the local area network with the second updating device during the recognition attempt of the second updating device And stores the availability score and the connection delay score calculated in the entry corresponding to the second updating device in the priority table, and stores the availability score and the connection delay value of the entry corresponding to the first updating device in the priority table Score and a score for the second updating device of the priority table Availability and connection points of the entry delay even further based on a score that determines the update unit to update the firmware, that
device.
제7항의 펌웨어 업데이트가 가능한 디바이스;
상기 디바이스에 시리얼 통신을 통해 연결 가능한 제1 업데이트 장치;
상기 디바이스에 로컬 에어리어 네트워크를 통해 연결 가능한 제2 업데이트 장치; 및
상기 디바이스에 광대역 네트워크를 통해 연결 가능한 제3 업데이트 장치;를 포함하고,
상기 디바이스는 상기 제1 업데이트 장치, 상기 제2 업데이트 장치 또는 상기 제3 업데이트 장치와의 통신 연결에 따라 하나의 업데이트 장치로부터 펌웨어를 수신하여 내장된 펌웨어를 갱신하는,
펌웨어 업데이트 시스템.As a firmware update system,
A device capable of updating the firmware of claim 7;
A first update device connectable to the device through a serial communication;
A second update device connectable to the device through a local area network; And
And a third update device connectable to the device via a broadband network,
Wherein the device receives firmware from one update device in accordance with a communication connection with the first update device, the second update device, or the third update device and updates the built-
Firmware update system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180108063A KR101947528B1 (en) | 2018-09-11 | 2018-09-11 | Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180108063A KR101947528B1 (en) | 2018-09-11 | 2018-09-11 | Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101947528B1 true KR101947528B1 (en) | 2019-02-13 |
Family
ID=65366783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180108063A KR101947528B1 (en) | 2018-09-11 | 2018-09-11 | Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101947528B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080040B1 (en) | 2020-05-20 | 2021-08-03 | Hewlett Packard Enterprise Development Lp | Firmware upgrade for access points |
CN114461239A (en) * | 2021-06-30 | 2022-05-10 | 荣耀终端有限公司 | Software upgrading system and software upgrading method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101873561B1 (en) * | 2011-12-21 | 2018-07-03 | 주식회사 케이티 | Device and Method for device information negotiation |
-
2018
- 2018-09-11 KR KR1020180108063A patent/KR101947528B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101873561B1 (en) * | 2011-12-21 | 2018-07-03 | 주식회사 케이티 | Device and Method for device information negotiation |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080040B1 (en) | 2020-05-20 | 2021-08-03 | Hewlett Packard Enterprise Development Lp | Firmware upgrade for access points |
CN114461239A (en) * | 2021-06-30 | 2022-05-10 | 荣耀终端有限公司 | Software upgrading system and software upgrading method |
CN114461239B (en) * | 2021-06-30 | 2023-11-24 | 荣耀终端有限公司 | Software upgrading system and software upgrading method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11381462B2 (en) | Programmable distributed management system of interconnected things and applications | |
US10476918B2 (en) | Locale profile for a fabric network | |
US7814478B2 (en) | Methods and apparatus for use in updating application programs in memory of a network device | |
US7539488B2 (en) | Over-the-air download (OAD) methods and apparatus for use in facilitating application programming in wireless network devices of ad hoc wireless communication networks | |
EP1635256B1 (en) | Communication system and method for upgrade of user terminal software and user terminal upgraded by same | |
US7287062B2 (en) | Home network system and method for operating the same | |
US8162757B2 (en) | Multiplayer platform for mobile applications | |
US8190658B2 (en) | Intelligent computing device agent system for automatic recognition of multi user computing environment and information sharing setup | |
JP6312842B2 (en) | System, method, and program for supporting data communication in heterogeneous environment | |
US20170237704A1 (en) | Addressing communication method and electronic device based on media access control address | |
KR20080004476A (en) | Method and apparatus for provisioning a device | |
KR101947528B1 (en) | Firmware update method, device able to update firmware and firmware update system according to dynamic recognition of update environment | |
US20230353555A1 (en) | Iot device and method for onboarding iot device to server | |
WO2012094853A1 (en) | Method, device and system for installing terminal software | |
RU2618943C2 (en) | Method, device and system for distribution of applications | |
US10489055B2 (en) | Z-wave controller shift in thermostats | |
KR20090076712A (en) | Firmware upgrade system | |
KR20060024714A (en) | System and method for software automatic up-grade of mobile connection access point | |
KR20040109977A (en) | succeeding method of data in mobile | |
WO2017016279A1 (en) | Terminal configuration management method and apparatus | |
Schoonwinkel | Practical measurements of wi-fi direct in content sharing, social gaming android applications | |
KR101676432B1 (en) | Discovery and Access System of Internet of Things board and Application Server under wireless WiFi Environment and method at the same | |
US20220264297A1 (en) | Electronic device and method for determining provisioning device of edge computing network | |
CN114401298B (en) | Data transmission method, router, device, system and storage medium | |
KR20220115346A (en) | Electronic device and method for determing provisioning device of edge computing network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |