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 PDF

Info

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
Application number
KR1020180108063A
Other languages
Korean (ko)
Inventor
정형기
허봉준
안진희
정석균
Original Assignee
(주)위즈네트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)위즈네트 filed Critical (주)위즈네트
Priority to KR1020180108063A priority Critical patent/KR101947528B1/en
Application granted granted Critical
Publication of KR101947528B1 publication Critical patent/KR101947528B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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

The present invention relates to a firmware update method according to dynamic recognition of an update environment, a device capable of updating firmware, and a firmware update system. The firmware update method comprises the following steps: attempting to recognize a first update device connected to a first network; attempting to recognize a second update device connected to a second network; determining an update device to update firmware based on whether the first update device and the second update device are recognized or not and firmware version information received from each update device; and updating the firmware through the corresponding network of the determined update device.

Description

업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템{FIRMWARE UPDATE METHOD, DEVICE ABLE TO UPDATE FIRMWARE AND FIRMWARE UPDATE SYSTEM ACCORDING TO DYNAMIC RECOGNITION OF UPDATE ENVIRONMENT}TECHNICAL FIELD [0001] The present invention relates to a firmware update method, a device update method, and a firmware update method,

본 발명은 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템에 관한 것으로서, 구체적으로는 액세스 가능한 여러 네트워크 유형의 업데이트 장치를 자동 인식하고 자동 인식된 여러 네트워크 유형의 업데이트 장치 중에서 우선순위에 따라 선택된 업데이트 장치를 통해 내장된 펌웨어를 갱신할 수 있도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템에 관한 것이다. 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.

10-1757417호(B1), 2017년07월12일10-1757417 (B1), July 12, 2017

본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 액세스 가능한 여러 네트워크 유형의 업데이트 장치를 자동으로 인식하고 자동 인식된 여러 네트워크 유형의 업데이트 장치를 통해 내장된 펌웨어를 갱신할 수 있도록 하는, 업데이트 환경의 동적 인식에 따른 펌웨어 업데이트 방법, 펌웨어 업데이트 가능한 디바이스 및 펌웨어 업데이트 시스템을 제공하는 데 그 목적이 있다. 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 updateable devices 100, one or more update devices 200, 300, 400, one or more gateways 500, 600, and various types of networks 700 .

도 1을 통해 펌웨어 업데이트 시스템의 구성을 살펴보면, 하나 이상의 펌웨어 업데이트 가능한 디바이스(100)는 연결 가능한 다양한 유형의 네트워크(700)를 통해 내장된 비휘발성 메모리(131)의 펌웨어를 업데이트할 수 있는 기기이다. 1, one or more firmware updateable devices 100 are devices capable of updating the firmware of the built-in nonvolatile memory 131 through various types of network 700 that can be connected .

디바이스(100)는 다양한 통신 인터페이스를 구비하여 시리얼, 이더넷, 와이파이, 블루투스, 지그비 등의 통신 네트워크와 나아가 인터넷 네트워크에 액세스할 수 있다. 특히, 디바이스(100)는 각종 유형의 통신 네트워크(700)를 통해 업데이트 장치(200, 300, 400)에 연결되어 업데이트 가능한 네트워크 환경을 동적으로 인식하여 내장된 펌웨어를 최적화된 네트워크를 통해 갱신할 수 있다. The device 100 may have a variety of communication interfaces to access a communication network such as serial, Ethernet, Wi-Fi, Bluetooth, Zigbee, etc., as well as an Internet network. In particular, the device 100 may be connected to the update devices 200, 300, 400 through various types of communication networks 700 to dynamically recognize the updateable network environment and update the embedded firmware over the optimized network have.

디바이스(100)는 휴대형이거나 거치형 기기일 수 있고 예를 들어, 휴대폰, 스마트폰, 네트워크에 접속 가능한 기기나 IoT 디바이스 등 일 수 있다. 또는, 디바이스(100)는 온/오프라인 상에서 개발 진행되고 있는 프로토타입의 기기이거나 프로토타입의 내장형 개발 보드 등일 수 있다. The device 100 may be a portable or stationary device, for example, a mobile phone, a smart phone, a device connectable to a network, an IoT device, or the like. Alternatively, the device 100 may be a device of a prototype being developed on / off-line, a built-in development board of a prototype, or the like.

디바이스(100)에 대해서는 도 2 이하에서 상세히 살펴보도록 한다. The device 100 will be described in detail below with reference to FIG.

펌웨어 업데이트 시스템 내에 구성되는 네트워크(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 device 100 and are at least available for firmware updates.

한 유형의 네트워크(이하 '제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 updatable device 100, and may be, for example, a network capable of serial communication. The first network 701 allows firmware to be updated through serial communication such as UART, SPI, SDIO, and the like. The first network 701 may be a serial communication (e. G., In System Programming) for debugging used in product development.

다른 유형의 네트워크(이하 '제2 네트워크'라 함)는 로컬 에어리어 네트워크이다. 제2 네트워크(703)는 일정한 공간이나 영역 내에서 여러 기기나 장치 사이에서 유선이나 무선으로 데이터 통신이 가능토록 하고 예를 들어 이더넷 통신 네트워크이거나 와이파이 통신 네트워크 등일 수 있다. Another type of network (hereinafter referred to as a " second network ") is a local area network. The second network 703 may be an Ethernet communication network, a Wi-Fi communication network, or the like, which enables data communication between a plurality of devices or devices within a certain space or area.

또 다른 유형의 네트워크(이하 '제3 네트워크'라 함)는 광대역 네트워크이다. 제3 네트워크(705)는 넓은 영역(예를 들어, 국가나 전 세계 등) 내에서 여러 기기나 장치 사이에서 유선, 무선과 그 조합을 통해 데이터 통신이 가능토록 한다. 제3 네트워크(705)는 예를 들어 인터넷 네트워크(망)이거나 이동통신사업자에 의해서 제공되는 이동통신망일 수 있다. 이동통신망은 인터넷망에 포함될 수도 있다. Another type of network (hereinafter referred to as a " third network ") is a broadband network. The third network 705 allows data communication between wired, wireless, and combinations thereof among various devices or devices within a wide area (e.g., a country or the world). The third network 705 may be, for example, an Internet network (network) or a mobile communication network provided by a mobile communication provider. The mobile communication network may be included in the Internet network.

또 다른 유형의 네트워크(이하 '제4 네트워크'라 함)는 퍼스널 에어리어 네트워크이다. 제4 네트워크(707)는 개인 공간 영역 내에서 기기나 장치상에서 데이터 통신을 가능토록 한다. 제4 네트워크(707)는 예를 들어 블루투스 통신 네트워크, 지그비 통신 네트워크 등일 수 있다.Another type of network (hereinafter referred to as a " fourth network ") is a personal area network. The fourth network 707 enables data communication on the device or device within the personal space area. The fourth network 707 may be, for example, a Bluetooth communication network, a Zigbee communication network, or the like.

업데이트 장치(200, 300, 400)는 디바이스(100)에 내장되어 있는 펌웨어를 갱신할 수 있는 장치이다. 각각의 업데이트 장치는 임의의 네트워크에 각각 연결되어 디바이스(100)의 펌웨어를 갱신할 수 있다. The update devices 200, 300, and 400 are devices capable of updating the firmware stored in the device 100. [ Each of the update devices can be connected to any of the networks to update the firmware of the device 100.

예를 들어, 하나의 업데이트 장치(이하 '제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 device 100 via the first network 701 and accordingly update the firmware of the device 100. The first update device 200 may be a personal computer having a serial communication (first network 701), a notebook PC, a tablet PC, or a verification device capable of debugging when developing a product.

다른 하나의 업데이트 장치(이하 '제2 업데이트 장치'라 함)는 제2 네트워크(703)를 통해 디바이스(100)에 연결되고 그에 따라 디바이스(100)의 펌웨어를 업데이트할 수 있다. 제2 업데이트 장치(300)는 이더넷 통신이나 와이파이 통신 등이 가능한 개인용 PC, 노트북, 태블릿 PC나 개발을 위해 활용되는 로컬 서버나 디바이스 매니저 등일 수 있다. (Hereinafter referred to as a second update device) is connected to the device 100 via the second network 703 and can update the firmware of the device 100 accordingly. The second update device 300 may be a personal computer, a notebook PC, a tablet PC, or a local server or a device manager used for development, which can perform Ethernet communication or Wi-Fi communication.

또 다른 하나의 업데이트 장치(이하 '제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 device 100 through the third network 705 and can update the firmware of the device 100 accordingly. The third update device 400 may be a personal computer, a notebook computer, a management server, or the like capable of Internet communication. The third update device 400 may be a cloud server recognized as a single server by the device 100 on the Internet.

펌웨어 업데이트가 가능한 디바이스(100)는 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및/또는 제3 업데이트 장치(400)와 각각의 네트워크(701, 703, 705, 707 등)를 통해 연결되어 특정 하나의 업데이트 장치로부터 수신되는 펌웨어를 이용하여 내장된 펌웨어를 갱신할 수 있다.The device 100 capable of firmware update is connected to the first update device 200, the second update device 300 and / or the third update device 400 via the respective networks 701, 703, 705, 707, It is possible to update the built-in firmware by using the firmware which is connected and received from a specific update device.

게이트웨이(500,600)는 서로 다른 네트워크를 연결하기 위한 장치이다. 하나의 게이트웨이(500)(이하 '제1 게이트웨이'라 함)는 제2 네트워크(703)와 제3 네트워크(705)를 연결하여 이더넷이나 와이파이로부터의 통신 패킷을 인터넷망의 통신 패킷으로 변환하여 출력하고 인터넷망의 통신 패킷을 이더넷이나 와이파이 통신 패킷으로 변환한다. The gateways 500 and 600 are devices for connecting different networks. One gateway 500 (hereinafter, referred to as a 'first gateway') connects the second network 703 and the third network 705 to convert communication packets from the Ethernet or Wi-Fi into communication packets in the Internet network, And converts a communication packet of the Internet network into an Ethernet or a Wi-Fi communication packet.

다른 하나의 게이트웨이(600)(이하 '제2 게이트웨이'라 함)는 제4 네트워크(707)와 제3 네트워크(705)를 연결하여 블루투스나 지그비 등으로부터의 통신 패킷을 인터넷망의 통신 패킷으로 변환하여 출력하고 인터넷망의 통신 패킷을 블루투스나 지그비의 통신 패킷으로 변환한다.Another gateway 600 (hereinafter referred to as a 'second gateway') connects the fourth network 707 and the third network 705 to convert communication packets from Bluetooth or ZigBee into communication packets of the Internet network And converts the communication packet of the Internet network into a communication packet of Bluetooth or ZigBee.

여기서, 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)는 네트워크(700)를 통해 서로 동기화될 수 있다. 예를 들어, 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)는 네트워크(700)에 연결됨에 따라 최신 펌웨어 버전에 대응하는 펌웨어를 다른 업데이트 장치로부터 수신하고 이를 펌웨어 버전 정보와 함께 저장한다. 네트워크(700)에 연결되지 못하거나 동기화되지 못한 업데이트 장치는 다른 업데이트 장치와는 다른 펌웨어 버전의 펌웨어를 저장할 수 있다. Here, the first update device 200, the second update device 300, and the third update device 400 may be synchronized with each other via the network 700. For example, the first update device 200, the second update device 300, and the third update device 400 may be connected to the network 700 to receive firmware corresponding to the latest firmware version from another update device And stores it together with the firmware version information. An update device not connected to the network 700 or not synchronized with the network 700 may store firmware versions different from those of the other update devices.

도 2는 내장된 펌웨어의 업데이트를 수행할 수 있는 디바이스(100)의 예시적인 구성을 나타내는 블록도이다. 2 is a block diagram illustrating an exemplary configuration of a device 100 capable of performing an update of embedded firmware.

도 2에 따르면 펌웨어 업데이트 가능한 디바이스(100)는 통신부(110), 저장부(130), 입력부(150), 출력부(170) 및 제어부(190)를 포함한다. 설계 예에 따라 도 2에 도시되어 있는 일부 블록은 생략될 수 있고 도시되지 않은 다른 블록이 디바이스(100) 내에 더 포함될 수도 있다. Referring to FIG. 2, a device 100 capable of updating firmware includes a communication unit 110, a storage unit 130, an input unit 150, an output unit 170, and a control unit 190. Depending on the design example, some of the blocks shown in FIG. 2 may be omitted and other blocks not shown may be further included in the device 100.

도 2를 통해 디바이스(100)의 구성을 살펴보면, 통신부(110)는 네트워크(700)를 통해 데이터 통신을 수행한다. 통신부(110)는 바람직하게는 제1 네트워크(701), 제2 네트워크(703) 및 제3 네트워크(705)를 통해 데이터 통신을 가능토록 구성되어 연결되는 기기나 장치 등과 각종 데이터를 송수신할 수 있다. Referring to FIG. 2, the communication unit 110 performs data communication through the network 700. The communication unit 110 may transmit and receive various data to and from a device or a device connected to the first network 701, the second network 703, and the third network 705, .

통신부(110)는, 제1 네트워크(701)를 통해 데이터 송수신이 가능한 제1 통신 인터페이스(111), 제2 네트워크(703)와 나아가 제3 네트워크(705)를 통해 데이터 송수신이 가능한 제2 통신 인터페이스(113) 및 제4 네트워크(707)와 나아가 제3 네트워크(705)를 통해 데이터 송수신이 가능한 제3 통신 인터페이스(115)를 구비한다. The communication unit 110 includes a first communication interface 111 capable of transmitting and receiving data through the first network 701, a second communication interface 110 capable of transmitting and receiving data through the second network 703, And a third communication interface 115 capable of transmitting and receiving data through the third network 703 and the fourth network 707 and further through the third network 705.

제1 통신 인터페이스(111)는 UART, SPI, SDIO, ISP 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 시리얼 통신을 통해 제1 업데이트 장치(200)와 시리얼 신호를 송수신할 수 있다. 제1 통신 인터페이스(111)는 수신된 시리얼 신호의 데이터를 제어부(190)로 전송하고 제어부(190)로부터 수신되는 데이터를 시리얼 신호로 제1 업데이트 장치(200)로 전송할 수 있다. The first communication interface 111 may include circuitry or logic for a UART, SPI, SDIO, ISP, etc. (e.g., a communication chipset, a communication chipset or a function thereof may be embedded in the controller 190, And can transmit / receive a serial signal to / from the first updater 200 through serial communication. The first communication interface 111 may transmit data of the received serial signal to the controller 190 and may transmit the data received from the controller 190 to the first updater 200 as a serial signal.

제2 통신 인터페이스(113)는 이더넷 통신 및/또는 와이파이 통신 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 이더넷, 와이파이 통신 네트워크를 통해 제2 업데이트 장치(300)나 다른 장치들과 데이터를 송수신할 수 있다. The second communication interface 113 may be a circuit or logic for Ethernet communication and / or Wi-Fi communication, etc. (e.g., a communication chipset, a communication chipset or a function thereof may be embedded in the controller 190 according to a design example) And can transmit and receive data to and from the second update device 300 and other devices through an Ethernet and a Wi-Fi communication network.

또한, 제2 통신 인터페이스(113)는 제2 네트워크(703)를 경유(제1 게이트웨이(500)를 이용하여)하여 제3 네트워크(705)에 연결되어 제3 업데이트 장치(400)나 다른 장치들과 데이터를 송수신할 수 있다. The second communication interface 113 is connected to the third network 705 via the second network 703 (using the first gateway 500) and is connected to the third update device 400 or other devices And data can be transmitted and received.

제3 통신 인터페이스(115)는 블루투스 및/또는 지그비 통신 등을 위한 회로나 로직 등(예를 들어, 통신 칩셋, 설계 예에 따라 통신 칩셋이나 그 기능은 제어부(190)에 내장될 수도 있음)을 구비하여 블루투스나 지그비 통신 네트워크를 통해 퍼스널 에어리어 네트워크상의 기기와 데이터를 송수신할 수 있다. 또한, 제3 통신 인터페이스(115)는 제2 게이트웨이(600)를 경유하여 제3 네트워크(705)(인터넷)에 연결된 제3 업데이트 장치(400)나 다른 장치들과 데이터를 송수신할 수 있다. The third communication interface 115 may be a circuit or logic for Bluetooth and / or ZigBee communication, etc. (e.g., a communication chipset, a communication chipset or a function thereof may be embedded in the controller 190 according to a design example) And can exchange data with devices on the personal area network through the Bluetooth or Zigbee communication network. The third communication interface 115 may transmit and receive data to and from the third update device 400 or other devices connected to the third network 705 (Internet) via the second gateway 600.

이와 같이, 디바이스(100)는 다양한 유형의 통신 인터페이스를 구비하여 다양한 네트워크(700)를 통해 다른 기기나 장치와 연결될 수 있고 여러 유형의 네트워크(700)에 연결되어 있는 다양한 기기나 장치를 이용하여 내장된 펌웨어를 동적으로 업데이트할 수 있다. As such, the device 100 may include various types of communication interfaces and may be connected to other devices or devices through various networks 700, and may be embedded in various devices or devices connected to various types of networks 700 The firmware can be updated dynamically.

저장부(130)는 비휘발성 메모리(131)와 나아가 휘발성 메모리(133)를 포함하여 각종 데이터와 프로그램을 저장한다. 저장부(130)는 적어도 펌웨어( 프로그램)를 저장하는 하나 이상의 비휘발성 메모리(131)를 포함한다. The storage unit 130 stores various data and programs including the nonvolatile memory 131 and the volatile memory 133. [ The storage unit 130 includes one or more nonvolatile memories 131 for storing at least firmware (programs).

비휘발성 메모리(131)는 펌웨어와 저장된 펌웨어의 버전 정보를 저장한다. 비휘발성 메모리(131)에 저장되는 펌웨어는 디바이스(100)의 부팅시에 로딩되어 디바이스(100)를 제어할 수 있다. 비휘발성 메모리(131)는 업데이트될 펌웨어를 임시 저장하는 영역을 더 포함할 수 있다. The nonvolatile memory 131 stores version information of the firmware and the stored firmware. The firmware stored in the nonvolatile memory 131 may be loaded at the boot time of the device 100 to control the device 100. [ The nonvolatile memory 131 may further include an area for temporarily storing firmware to be updated.

비휘발성 메모리(131)의 특정 메모리 영역은 미리 펌웨어 영역으로 특정될 수 있고 제어부(190)가 이를 인식할 수 있다. 또한, 비휘발성 메모리(131)의 특정 메모리 영역은 갱신될 펌웨어가 임시 저장되는 임시 업데이트 영역으로 특정될 수 있고 제어부(190)가 이를 인식하거나 설정할 수 있다.The specific memory area of the nonvolatile memory 131 may be specified as a firmware area in advance and may be recognized by the controller 190. In addition, the specific memory area of the non-volatile memory 131 may be specified as a temporary update area in which firmware to be updated is temporarily stored, and the controller 190 may recognize or set it.

펌웨어는 디바이스(100)에서 사용되는 프로그램 일체(전체)를 나타내거나 업데이트 가능한 프로그램의 부분을 나타낼 수 있다. 설계 예에 따라 펌웨어 내에 업데이트 제어 오브젝트(프로그램)가 내장되거나 업데이트 제어 오브젝트(프로그램)가 업데이트 가능한 펌웨어 부분과는 별도로 구성된다. The firmware may represent the entire program used in the device 100 or may represent a part of the updatable program. An update control object (program) is embedded in the firmware according to the design example, or the update control object (program) is configured separately from the updateable firmware part.

저장부(130)의 비휘발성 메모리(131)는 우선순위 결정 테이블을 더 저장한다. 우선순위 결정 테이블은 펌웨어 업데이트 가능한 네트워크(또는 해당 네트워크에 연결된 업데이트 장치)별로 각 네트워크의 특성에 따라 산출된 우선순위도 점수를 저장한다. The non-volatile memory 131 of the storage unit 130 further stores a priority table. The priority determination table stores the priority degree score calculated according to the characteristics of each network for each firmware updateable network (or an update device connected to the network).

디바이스(100)는 단일 비휘발성 메모리(131)에 부팅시에 구동되는 펌웨어 영역과 임시 업데이트 영역을 모두 포함하도록 구성되거나 두 개의 비휘발성 메모리(131) 중 하나의 비휘발성 메모리(131)에 펌웨어를 저장하고 다른 하나의 비휘발성 메모리(131)에 업데이트되는 펌웨어를 저장하도록 구성될 수 있다. 구동(시작)시에 이용되는 펌웨어는 버전 정보와 함께 비휘발성 메모리(131)에 저장된다. The device 100 may be configured to include both a firmware area and a temporary update area that are driven at boot time in a single nonvolatile memory 131 or may be configured to include firmware in one of two nonvolatile memories 131 And store the updated firmware in the other non-volatile memory 131. [ The firmware used at the start (driving) is stored in the non-volatile memory 131 together with the version information.

휘발성 메모리(133)에는 임시 데이터나 프로그램 등을 저장할 수 있다. 예를 들어 휘발성 메모리(133)는 각종 임시 데이터나 프로그램 등의 일부 등을 저장할 수 있다. The volatile memory 133 can store temporary data, programs, and the like. For example, the volatile memory 133 may store various temporary data, a part such as a program, and the like.

입력부(150)는 디바이스(100)의 사용자 입력을 수신한다. 입력부(150)는 구비된 터치 패널, 터치 패드, 버튼, 마우스, 전자펜, 설정핀, 스위치 등의 입력을 수신하고 수신된 입력을 제어부(190)로 전달할 수 있다. 입력부(150)를 통해 사용자는 디바이스(100)의 제어에 필요한 다양한 입력을 제공할 수 있다. The input unit 150 receives a user input of the device 100. The input unit 150 may receive input of a touch panel, a touch pad, a button, a mouse, an electronic pen, a setting pin, a switch, and the like, and may transmit the received input to the controller 190. Through the input unit 150, the user can provide various inputs necessary for controlling the device 100. [

예를 들어, 사용자는 입력부(150)를 통해 업데이트 장치간의 우선순위를 미리 결정하거나 고정할 수 있다. 그에 따라, 제어부(190)는 미리 설정된 우선순위에 따라 다른 업데이트 장치보다 우선하여 해당 업데이트 장치에 연결되어 펌웨어를 업데이트할 수 있다. 또는, 사용자는 입력부(150)를 통해 업데이트 장치 간의 우선순위를 동적으로 계산하도록 설정할 수 있다. For example, the user can preset or fix the priority among update devices through the input unit 150. [ Accordingly, the controller 190 can update the firmware by being connected to the update device in preference to other update devices according to the preset priority. Alternatively, the user can set to dynamically calculate the priority among update devices via the input unit 150. [

출력부(170)는 LCD, LED 등의 디스플레이, 발광 다이오드, 스피커, 부저 등을 구비하여 각종 데이터를 출력한다. 출력부(170)는 제어부(190)로부터 수신되는 오디오 데이터나 비디오 데이터를 대응하는 오디오 신호나 비디오 신호 등으로 변환하여 스피커, 부저, 디스플레이 및/또는 발광 다이오드로 출력한다. The output unit 170 includes a display such as an LCD and an LED, a light emitting diode, a speaker, a buzzer, and the like, and outputs various data. The output unit 170 converts the audio data or video data received from the control unit 190 into a corresponding audio signal or video signal and outputs the audio signal or the video signal to a speaker, a buzzer, a display, and / or a light emitting diode.

제어부(190)는 디바이스(100)를 제어한다. 제어부(190)는 하나 이상의 실행 유닛(Execution Unit)을 포함하여 저장부(130)에 저장되어 있는 펌웨어 등을 실행 유닛에 로딩하여 프로그램에 따라 디바이스(100)를 제어한다. 제어부(190)는 CPU, MPU, 마이컴, 중앙 처리 장치 등을 나타내거나 이를 포함한다. The control unit 190 controls the device 100. The control unit 190 includes at least one execution unit and loads firmware or the like stored in the storage unit 130 into the execution unit and controls the device 100 according to the program. The control unit 190 represents or includes a CPU, an MPU, a microcomputer, a central processing unit, and the like.

제어부(190)는 펌웨어를 로딩하여 펌웨어에 따라 정의된 기능을 입력부(150)와 출력부(170)와 연동하여 수행할 수 있다. 또한, 제어부(190)는 펌웨어를 로딩하여 수행(특히, 업데이트 제어 오브젝트)함에 따라 업데이트 가능한 여러 업데이트 장치를 인식하고 각각의 업데이트 장치의 최신 펌웨어 버전을 확인에 따라 특정 업데이트 장치의 펌웨어로 비휘발성 메모리(131)에 내장되어 있는 펌웨어 영역을 갱신할 수 있다. The control unit 190 may load the firmware and perform the function defined according to the firmware in conjunction with the input unit 150 and the output unit 170. [ In addition, the controller 190 recognizes various update devices that can be updated according to the loading of the firmware (in particular, the update control object) by loading the firmware, and the firmware of the specific update device is recognized as the firmware of the non- It is possible to update the firmware area built in the flash memory 131.

펌웨어를 로딩하여 수행하는 제어부(190)는 업데이트 장치의 인식과 필요시 갱신 후에 지정된 기능을 수행할 수 있다. The controller 190, which loads and executes the firmware, can perform the function designated by the updating device and after updating if necessary.

펌웨어 업데이트와 관련하여 제어부(190)에서 이루어지는 주요 제어는 도 3 및 도 4를 통해 좀 더 상세히 살펴보도록 한다. The main control performed by the control unit 190 with respect to the firmware update will be described in more detail with reference to FIG. 3 and FIG.

도 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 device 100, and preferably by the control unit 190 loading and executing the program (update control program) of the storage unit 130. FIG. The update control program may be part of the firmware or may be separate. The update control program may be a boot program that is executed at boot time.

먼저, 디바이스(100)에 전원이 인가되거나 입력부(150)를 통해 입력되는 업데이트 갱신 입력에 따라 제어부(190)가 업데이트 제어 프로그램을 로딩하여 시작(S100)한다. First, the control unit 190 loads an update control program and starts (S100) according to an update update input that the device 100 is powered on or input through the input unit 150. [

업데이트 제어 프로그램이 구동됨에 따라, 제어부(190)는 통신부(110)의 제1 통신 인터페이스(111)를 통해 제1 네트워크(701)에 연결된 제1 업데이트 장치(200)의 인식을 시도(S101)한다. The control unit 190 attempts to recognize the first update device 200 connected to the first network 701 through the first communication interface 111 of the communication unit 110 in step S101 .

예를 들어, 제어부(190)는 제1 통신 인터페이스(111)의 시리얼 통신을 통해 제1 업데이트 장치(200)로 약속된 포맷의 시리얼 커맨드(예를 들어, 연결 요청 커맨드)를 전송하고 시리얼 커맨드에 대한 그 응답을 제1 통신 인터페이스(111)의 시리얼 통신을 통해 수신한다. For example, the control unit 190 transmits a serial command (for example, a connection request command) of the format promised to the first update apparatus 200 through the serial communication of the first communication interface 111, Through the serial communication of the first communication interface 111.

제1 업데이트 장치(200)로부터 수신되는 응답 데이터는 제1 업데이트 장치(200)가 보유하고 있는 최신 펌웨어 버전 정보를 포함한다. The response data received from the first update device 200 includes the latest firmware version information held by the first update device 200.

이와 같이, 제어부(190)는 제1 네트워크(701)에 연결된 제1 업데이트 장치(200)를 인식하기 위해 약속된 포맷의 연결 요청 커맨드를 제1 업데이트 장치(200)로 전송하고 그 응답을 수신함에 따라 제1 업데이트 장치(200)를 인식한다. In this manner, the control unit 190 transmits a connection request command of a predetermined format to the first update apparatus 200 in order to recognize the first update apparatus 200 connected to the first network 701, and receives the response And recognizes the first update device 200 accordingly.

인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the control unit 190 does not receive the response in the previous recognition attempt, the control unit 190 may attempt recognition until a specified number of times (for example, five times).

제어부(190)는 인식 시도와 연결에 따라 우선순위 결정 테이블의 제1 업데이트 장치(200)에 대응하는 엔트리를 갱신한다. The control unit 190 updates the entry corresponding to the first update device 200 of the priority determination table in accordance with the recognition attempt and connection.

여기서, 도 4를 통해 우선순위 결정 테이블을 살펴보면, 우선순위 결정 테이블은 저장부(130)의 비휘발성 메모리(131)에 저장된다. Referring to FIG. 4, the priority determination table is stored in the non-volatile memory 131 of the storage unit 130.

우선순위 결정 테이블은 업데이트 장치별 각 항목의 가중치, 연결 상태, 산출된 우선순위도 점수, 보유한 펌웨어 버전 정보 등을 저장한다. 우선순위도 점수 산출에 이용되는 항목은 전송 속도, 신뢰성, 보안성, 안정성, 가용성, 연결 지연도, 에러율 등이 있을 수 있고 각각의 항목은 가중치 점수로 표현될 수 있다. 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 device 100. [ The reliability may be a score given according to whether the data integrity of the communication protocol used between the updating device and the device 100 is maintained and whether a retransmission mechanism is mounted. The security may be a score given according to the distance between the update device and the device 100. [ The stability may be a score given according to the wired or wireless type of the network. The transmission rate, reliability, security, and stability scores may be fixed in advance and the score may be a weighted score that is weighted up / down based on score 1.

가용성, 연결 지연도 및 에러율은 연결 시도나 연결에 따라 지속적으로 갱신될 수 있는데, 가용성 점수는 인식 시도 횟수(연결 요청의 횟수)로 산출되는 점수값이다. 연결 지연도는 연결 요청에서 그 응답 사이의 지연시간에 따라 산출되는 점수값이다. 에러율은 업데이트 장치와 펌웨어 등의 데이터의 교환시에 재전송, 타임아웃, 기타 에러 발생에 따라 산출되는 점수값이다. 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 first update device 200 and one third update device 300, Entry. One of the third update device entries is an entry used in connecting to the third update device 400 via the second network 703 (Ethernet or Wi-Fi etc.) and the other entry is used in the fourth network 707 (Bluetooth or the like) connected to the third update device 400. The third update device 400 is an entry used when the second update device 400 is connected to the third update device 400 via Bluetooth.

다시, 도 3의 제어 흐름을 살펴보면, 제1 업데이트 장치 인식 시도 과정(S101)에서 제어부(190)는 우선순위 결정 테이블의 제1 업데이트 장치 엔트리를 갱신한다. 예를 들어, 제어부(190)는 제1 업데이트 장치 엔트리의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. Referring again to FIG. 3, the controller 190 updates the first update device entry of the priority table in the first update device recognition attempt procedure (S101). For example, the control unit 190 changes the held firmware version information of the first update device entry to the latest firmware version information included in the response. Also, the control unit 190 updates the availability of the entry, the connection delay and the error rate score.

예를 들어, 제어부(190)는 인식 시도 횟수에 따라 점수 1을 기준으로 하는 현재 가용성 점수를 산출하고 엔트리에 저장되어 있는 가용성 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 가용성 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 인식 시도가 반영된 가용성 점수를 산출하고 이를 엔트리에 저장한다. For example, the control unit 190 calculates a current availability score based on the score 1 based on the number of recognition attempts, and calculates an expected value of the availability score stored in the entry (an average value calculation formula or a currently calculated availability score A high weighted calculation formula) is calculated based on the current recognition attempt and stored in the entry.

또한, 제어부(190)는 연결 요청(연결 요청 커맨드)으로부터 이 연결 요청에 대한 응답까지의 지연 시간을 반영한 현재 연결 지연도 점수를 산출한다. 제어부(190)는 엔트리의 연결 지연도 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 연결 지연도 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 연결 지연 시간이 반영된 연결 지연도 점수를 산출하고 이를 엔트리에 저장한다. Also, the controller 190 calculates a current connection delay score reflecting the delay time from the connection request (connection request command) to the response to the connection request. The control unit 190 calculates a connection delay score reflecting the current connection delay time according to a predetermined calculation formula (an average value calculation formula or a calculation formula that places a higher weight on the current calculated connection delay score) with the connection delay score of the entry And stores it in the entry.

또한, 제어부(190)는 제1 업데이트 장치(200)로부터 수신되는 데이터에 대한 에러를 검출(S101에서나 S111에서)하여 현재 에러율 점수를 산출한다. 제어부(190)는 엔트리의 에러율 점수와의 약속된 계산식(평균값 산출식이나 현재 산출된 에러율 점수에 더 높은 가중치를 두는 계산식)에 따라 현재의 에러율이 반영된 에러율 점수를 산출하고 이를 엔트리에 저장한다. In addition, the control unit 190 detects an error with respect to data received from the first updating device 200 (at S101 or S111) to calculate a current error rate score. The control unit 190 calculates an error rate score reflecting the current error rate according to a predetermined calculation formula (an average value calculation formula or a formula for placing a higher weight on the currently calculated error rate score) with the error rate score of the entry and stores it in the entry.

제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제1 업데이트 장치(200)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. 예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. As the score of each item is updated, the control unit 190 calculates the score of the priority degree of the first updating device 200 based on the score of each item, and outputs the score of the calculated priority degree to the corresponding entry of the priority table . For example, the control unit 190 may calculate the priority degree score as an average value of the sum of the weighted scores of the respective items.

제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 데이터(점수)이다. 제1 업데이트 장치(200)에 대응하는 엔트리의 우선순위도 점수의 산출은 제1 업데이트 장치(200)의 인식 과정(S101)에서 이루어지거나 그 이후에 이루어질 수 있다. The control unit 190 calculates a priority degree to which the scores are reflected according to the availability weight, the connection delay weight and the error rate weight according to the corresponding network (further, the transmission speed, reliability, security, stability score). The usability weight, the connection delay weight, and the error rate weight are data (points) updated according to a connection attempt or data transmission / reception in the corresponding network. The calculation of the priority and score of the entry corresponding to the first update device 200 may be performed in the recognition process (S101) of the first update device 200 or thereafter.

제어부(190)는 제1 업데이트 장치(200)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The controller 190 sets the connection state of the corresponding entry of the priority determination table as connection or unconnected according to whether the first updating device 200 recognizes the connection.

또한, 제어부(190)는 제2 네트워크(703)에 연결된 제2 업데이트 장치(300)의 인식을 시도(S103)한다. Also, the control unit 190 attempts to recognize the second update device 300 connected to the second network 703 (S103).

예를 들어, 제어부(190)는 저장부(130)에 저장되어 있는 제2 업데이트 장치(300)(예를 들어, 로컬 서버나 디바이스 매니저 등)의 로컬 IP 주소 등을 이용하여 제2 업데이트 장치(300)를 검색(연결 요청)하기 위한 브로드캐스팅 메시지를 생성하여 제2 통신 인터페이스(113)를 통해 이더넷이나 와이파이 통신 네트워크로 전송한다. 브로드캐스팅 패킷은 UDP 브로드캐스팅 패킷이거나 ICMP 브로드캐스팅 패킷(예를 들어 PING 패킷)일 수 있다. 제2 업데이트 장치(300)는 제2 네트워크(703)에 직접 연결되어 있는 장치이다.For example, the controller 190 may control the second update device (e.g., the first update device 300) using the local IP address of the second update device 300 (e.g., a local server or a device manager) 300) through the second communication interface 113 to the Ethernet or Wi-Fi communication network. The broadcasting packet may be a UDP broadcasting packet or an ICMP broadcasting packet (for example, a PING packet). The second update device 300 is a device directly connected to the second network 703.

제어부(190)는 브로드캐스팅 패킷에 대한 응답 패킷을 제2 통신 인터페이스(113)를 수신하여 제2 업데이트 장치(300)를 인식한다. 응답 패킷은 제2 업데이트 장치(300)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The control unit 190 receives the response packet for the broadcasting packet and recognizes the second update device 300 by receiving the second communication interface 113. [ The response packet may include the latest firmware version information stored in the second update device 300.

인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the control unit 190 does not receive the response in the previous recognition attempt, the control unit 190 may attempt recognition until a specified number of times (for example, five times).

제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제2 업데이트 장치(300)에 대응하는 엔트리를 갱신한다. The control unit 190 updates the entry corresponding to the second update device 300 of the priority determination table in accordance with the recognition attempt.

제2 업데이트 장치 인식 시도 과정(S103)에서 제어부(190)는 우선순위 결정 테이블의 제2 업데이트 장치 엔트리를 갱신한다. 예를 들어, 제어부(190)는 제2 업데이트 장치 엔트리의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. In the second updating device recognition attempting process (S103), the control unit 190 updates the second updating device entry of the priority table. For example, the control unit 190 changes the held firmware version information of the second update device entry to the latest firmware version information included in the response. Also, the control unit 190 updates the availability of the entry, the connection delay and the error rate score.

이미, 제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 first updating device 200, the contents thereof are omitted here.

제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제2 업데이트 장치(300)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. 예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. As the score of each item is updated, the control unit 190 calculates the priority score of the second update device 300 based on the score of each item, and outputs the calculated score of priority to the corresponding entry of the priority table . For example, the control unit 190 may calculate the priority degree score as an average value of the sum of the weighted scores of the respective items.

제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제2 업데이트 장치(300)에 대응하는 엔트리의 우선순위도 점수의 산출은 제2 업데이트 장치(300)의 인식 과정(S103)에서 이루어지거나 그 이후에 이루어질 수 있다. The control unit 190 calculates a priority degree to which the scores are reflected according to the availability weight, the connection delay weight and the error rate weight according to the corresponding network (further, the transmission speed, reliability, security, stability score). The usability weight, connection delay weight, and error rate weight are updated according to the connection attempt or data transmission / reception in the corresponding network. The priority degree and the score of the entry corresponding to the second update device 300 may be calculated in the recognition process (S103) of the second update device 300 or thereafter.

제어부(190)는 제2 업데이트 장치(300)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The controller 190 sets the connection state of the corresponding entry in the priority determination table as connection or non-connection according to whether the second update apparatus 300 recognizes the connection.

또한, 제어부(190)는 제3 네트워크(705)에 연결된 제3 업데이트 장치(400)의 인식을 시도(S105)한다. 제어부(190)는 두 종류의 네트워크(제2 네트워크(703) 및 제4 네트워크(707))의 게이트웨이(500, 600)를 통해 인터넷의 제3 업데이트 장치(400)를 인식할 수 있다. The control unit 190 also attempts to recognize the third update apparatus 400 connected to the third network 705 (S105). The control unit 190 can recognize the third update device 400 of the Internet through the gateways 500 and 600 of the two kinds of networks (the second network 703 and the fourth network 707).

제2 네트워크(703)의 제1 게이트웨이(500)를 통해 제3 업데이트 장치(400)를 인식하기 위해, 제어부(190)는 제2 통신 인터페이스(113)를 통해 제3 업데이트 장치(400)와의 연결을 시도한다. 예를 들어, 제어부(190)는 제2 통신 인터페이스(113)를 통해 제3 업데이트 장치(400)와 핸드쉐이킹으로 인증서(Certificate)를 검증하고 세션키를 생성하여 보안 통신 채널을 구성하고 데이터 통신을 위한 MQTT(Message Queuing Telemetry Transport) 연결한다.The control unit 190 controls the connection with the third update device 400 through the second communication interface 113 to recognize the third update device 400 through the first gateway 500 of the second network 703. [ . For example, the control unit 190 verifies the certificate by handshaking with the third update device 400 through the second communication interface 113, generates a session key to configure a secure communication channel, To the MQTT (Message Queuing Telemetry Transport).

제어부(190)는 제2 통신 인터페이스(113)를 통해 MQTT Keep-alive 패킷(연결 요청)을 제3 업데이트 장치(400)로 전송하고 그 응답을 수신하여 제3 업데이트 장치(400)를 인식 시도할 수 있다. 응답 패킷은 제3 업데이트 장치(400)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The control unit 190 transmits an MQTT Keep-alive packet (connection request) to the third update device 400 through the second communication interface 113 and receives the response to attempt to recognize the third update device 400 . The response packet may include the latest firmware version information stored in the third update device 400.

인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the control unit 190 does not receive the response in the previous recognition attempt, the control unit 190 may attempt recognition until a specified number of times (for example, five times).

제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제3 업데이트 장치(400)(제2 네트워크(703) 경유)에 대응하는 엔트리를 갱신한다. The control unit 190 updates the entry corresponding to the third update apparatus 400 (via the second network 703) of the priority determination table in accordance with the recognition attempt.

제3 업데이트 장치 인식 시도 과정(S105)에서 제어부(190)는 우선순위 결정 테이블의 제3 업데이트 장치 엔트리(제2 네트워크(703) 경유)를 갱신한다. 예를 들어, 제어부(190)는 제3 업데이트 장치 엔트리(제2 네트워크(703) 경유)의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. The control unit 190 updates the third update device entry (via the second network 703) of the priority determination table in the third update device recognition attempting process (S105). For example, the control unit 190 changes the held firmware version information of the third update device entry (via the second network 703) to the latest firmware version information included in the response. Also, the control unit 190 updates the availability of the entry, the connection delay and the error rate score.

이미, 제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 first updating device 200, the contents thereof are omitted here.

제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제3 업데이트 장치(400)(제2 네트워크(703) 경유)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. As the score of each item is updated, the control unit 190 calculates the priority degree score of the third update apparatus 400 (via the second network 703) based on the score of each item, The score is stored in the corresponding entry in the priority table.

예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. 제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제3 업데이트 장치(400)(제2 네트워크(703) 경유)에 대응하는 엔트리의 우선순위도 점수의 산출은 제3 업데이트 장치(400)의 인식 과정(S105)에서 이루어지거나 그 이후에 이루어질 수 있다. For example, the control unit 190 may calculate the priority degree score as an average value of the sum of the weighted scores of the respective items. The control unit 190 calculates a priority degree to which the scores are reflected according to the availability weight, the connection delay weight and the error rate weight according to the corresponding network (further, the transmission speed, reliability, security, stability score). The usability weight, connection delay weight, and error rate weight are updated according to the connection attempt or data transmission / reception in the corresponding network. The calculation of the priority degree and the score of the entry corresponding to the third update device 400 (via the second network 703) may be performed in the recognition process (S105) of the third update device 400 or thereafter .

제어부(190)는 제3 업데이트 장치(400)(제2 네트워크(703) 경유)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The control unit 190 sets the connection status of the corresponding entry in the priority determination table as connection or unconnected depending on whether the third update apparatus 400 (via the second network 703) is recognized.

제4 네트워크(707)의 제2 게이트웨이(600)를 통해 제3 업데이트 장치(400)를 인식하기 위해, 제어부(190)는 제3 통신 인터페이스(115)를 통해 제4 네트워크(707)에 연결된 제2 게이트웨이(600)를 검색하기 위한 브로드캐스팅 패킷(예를 들어, UDP 브로드캐스팅 패킷)을 전송하고 제2 게이트웨이(600)로부터 그 응답을 수신한다. 이후, 제어부(190)는 제2 게이트웨이(600)와 제4 네트워크(707)를 통한 데이터 송수신이 가능한 통신 채널을 설정하고 제3 업데이트 장치(400)와 연결되기 위한 통신 채널의 설정을 시도한다. The control unit 190 controls the third update unit 400 via the third communication interface 115 to recognize the third update unit 400 through the second gateway 600 of the fourth network 707. In order to recognize the third update unit 400 through the second gateway 600 of the fourth network 707, (E.g., a UDP broadcasting packet) for retrieving the second gateway 600, and receives the response from the second gateway 600. [ The control unit 190 then sets a communication channel capable of transmitting and receiving data through the second gateway 600 and the fourth network 707 and tries to establish a communication channel to be connected to the third update apparatus 400.

제어부(190)는 제4 네트워크(707)를 통해 제3 업데이트 장치(400)로부터 TCP에 기반한 통신 채널 연결 요청에 대한 응답을 수신하여 그 응답에 따라 제4 네트워크(707)를 경유하여 제3 업데이트 장치(400)의 인식을 시도할 수 있다. 응답 패킷은 제3 업데이트 장치(400)에 저장되어 있는 최신 펌웨어 버전 정보를 포함할 수 있다. The control unit 190 receives a response to the TCP-based communication channel connection request from the third update apparatus 400 via the fourth network 707 and transmits the third update message via the fourth network 707, The device 400 may attempt to recognize it. The response packet may include the latest firmware version information stored in the third update device 400.

인식 시도는 다수 회에 걸쳐서 시도될 수 있다. 예를 들어, 제어부(190)는 이전의 인식 시도에서 그 응답을 수신하지 못한 경우 지정된 횟수(예를 들어, 5회 등)까지 인식을 시도할 수 있다. Recognition attempts may be attempted multiple times. For example, if the control unit 190 does not receive the response in the previous recognition attempt, the control unit 190 may attempt recognition until a specified number of times (for example, five times).

제어부(190)는 인식 시도에 따라 우선순위 결정 테이블의 제3 업데이트 장치(400)(제4 네트워크(707) 경유)에 대응하는 엔트리를 갱신한다. The control unit 190 updates the entry corresponding to the third update apparatus 400 (via the fourth network 707) of the priority determination table in accordance with the recognition attempt.

제3 업데이트 장치 인식 시도 과정(S105)에서 제어부(190)는 우선순위 결정 테이블의 제3 업데이트 장치 엔트리(제4 네트워크(707) 경유)를 갱신한다. 예를 들어, 제어부(190)는 제3 업데이트 장치 엔트리(제4 네트워크(707) 경유)의 보유 펌웨어 버전 정보를 응답에 포함되는 최신 펌웨어 버전 정보로 변경한다. 또한, 제어부(190)는 엔트리의 가용성, 연결 지연도 및 에러율 점수를 갱신한다. In the third update device recognition attempting process (S105), the control unit 190 updates the third update device entry (via the fourth network 707) of the priority determination table. For example, the control unit 190 changes the held firmware version information of the third update device entry (via the fourth network 707) to the latest firmware version information included in the response. Also, the control unit 190 updates the availability of the entry, the connection delay and the error rate score.

이미, 제1 업데이트 장치(200)의 엔트리와 관련하여 가용성, 연결 지연도 및 에러율 점수 등의 산출 방식을 살펴보았으며 여기서는 그 내용을 생략한다. The calculation method of the availability, the connection delay and the error rate score with respect to the entry of the first updating device 200 has already been described, and the contents thereof are omitted here.

제어부(190)는 각각의 항목의 점수가 갱신됨에 따라 제3 업데이트 장치(400)(제4 네트워크(707) 경유)의 우선순위도 점수를 각 항목의 점수에 기초하여 산출하고 산출된 우선순위도 점수를 우선순위 결정 테이블의 대응 엔트리에 저장한다. As the score of each item is updated, the control unit 190 calculates the priority degree score of the third update apparatus 400 (via the fourth network 707) based on the score of each item, The score is stored in the corresponding entry in the priority table.

예를 들어, 제어부(190)는 각 항목의 가중치 점수의 합산에 대한 평균치로 우선순위도 점수를 산출할 수 있다. 제어부(190)는 대응 네트워크에 따른 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치(나아가, 전송 속도, 신뢰성, 보안성, 안정성 점수)에 따라 그 점수들이 반영된 우선순위도를 산출한다. 가용성 가중치, 연결 지연도 가중치 및 에러율 가중치는 대응하는 네트워크에서의 연결 시도나 데이터 송수신에 따라 갱신되는 점수이다. 제3 업데이트 장치(400)(제4 네트워크(707) 경유)에 대응하는 엔트리의 우선순위도 점수의 산출은 제3 업데이트 장치(400)의 인식 과정(S105)에서 이루어지거나 그 이후에 이루어질 수 있다. For example, the control unit 190 may calculate the priority degree score as an average value of the sum of the weighted scores of the respective items. The control unit 190 calculates a priority degree to which the scores are reflected according to the availability weight, the connection delay weight and the error rate weight according to the corresponding network (further, the transmission speed, reliability, security, stability score). The usability weight, connection delay weight, and error rate weight are updated according to the connection attempt or data transmission / reception in the corresponding network. The calculation of the priority degree and the score of the entry corresponding to the third update device 400 (via the fourth network 707) may be performed in the recognition process (S105) of the third update device 400 or thereafter .

제어부(190)는 제3 업데이트 장치(400)(제4 네트워크(707) 경유)의 인식 여부에 따라 우선순위 결정 테이블의 대응 엔트리의 연결 상태를 연결 또는 미연결로 설정한다. The control unit 190 sets the connection status of the corresponding entry in the priority determination table as connection or unconnected depending on whether the third update apparatus 400 (via the fourth network 707) is recognized.

여기서, 제1 업데이트 장치(200)의 인식 시도(S101), 제2 업데이트 장치(300)의 인식 시도(S103) 및 제3 업데이트 장치(400)의 인식 시도(S105)는 서로 독립적으로 수행될 수 있고 지정된 선후 관계는 없을 수 있다. 예를 들어, 제2 업데이트 장치(300)의 인식 과정이 제1 업데이트 장치(200)의 인식 과정보다 선행하거나 제3 업데이트 장치(400)의 인식 과정 이후에 발생할 수도 있다. Here, the recognition attempt (S101) of the first update device 200, the recognition attempt (S103) of the second update device 300, and the recognition attempt (S105) of the third update device 400 may be performed independently of each other And there may not be a specified precedence relation. For example, the recognition process of the second update device 300 may precede the recognition process of the first update device 200 or may occur after the recognition process of the third update device 400.

이후, 제어부(190)는 저장부(130)의 비휘발성 메모리(131)에 현재 저장되어 있는 펌웨어 버전 정보가 최선 펌웨어 버전인 지를 판단(S107)한다. 예를 들어, 제어부(190)는 비휘발성 메모리(131)에 갱신된 우선순위 결정 테이블의 각 엔트리의 보유 펌웨어 버전과 현재의 펌웨어 버전 정보를 비교하여 현재 펌웨어 버전이 최신 버전인지를 확인할 수 있다.Thereafter, the controller 190 determines whether the firmware version information currently stored in the nonvolatile memory 131 of the storage unit 130 is the optimal firmware version (S107). For example, the control unit 190 can check whether the current firmware version is the latest version by comparing the firmware version information of each entry of the updated priority determination table with the current firmware version information in the nonvolatile memory 131.

만일, 비휘발성 메모리(131)의 현재 펌웨어의 버전이 엔트리의 각 업데이트 장치의 펌웨어 버전과 동일하거나 높은 경우에 제어부(190)는 펌웨어 업데이트를 진행하지 않고 종료하거나 펌웨어 업데이트 과정 후 실행되는 지정된 기능을 수행(S200)한다. If the version of the current firmware of the non-volatile memory 131 is equal to or higher than the firmware version of each update device of the entry, the controller 190 ends the firmware update without performing the firmware update, (S200).

만일, 최신 버전이 아닌 경우, 제어부(190)는 저장부(130)의 비휘발성 메모리(131)의 펌웨어를 갱신할 업데이트 장치를 결정(S109)한다. 제어부(190)는 제1 업데이트 장치(200)의 인식 여부, 제2 업데이트 장치(300)의 인식 여부, 나아가 제3 업데이트 장치(400)의 인식 여부와 각각의 업데이트 장치로부터 수신된 펌웨어 버전 정보에 기초하여 저장부(130)의 펌웨어를 갱신할 업데이트 장치를 결정한다. If it is not the latest version, the controller 190 determines an update device to update the firmware of the non-volatile memory 131 of the storage unit 130 (S109). The control unit 190 determines whether or not the first update device 200 is recognized, whether the second update device 300 is recognized, whether the third update device 400 is recognized, and the firmware version information received from each update device And determines an update device to update the firmware of the storage unit 130 based on the updated firmware.

구체적으로, 제어부(190)는 업데이트 장치의 결정(S109)에서 또는 이전의 인식 과정에서 우선순위 결정 테이블에 각 업데이트 장치의 연결 상태(인식 여부)를 설정하고 우선순위도를 산출한다. Specifically, the control unit 190 sets the connection state (whether or not it recognizes) of each updating device in the priority determination table in the determination of the updating device (S109) or in the previous recognition process, and calculates the priority degree.

제어부(190)는 현재의 비휘발성 메모리(131)의 펌웨어보다 더(가장) 높은 버전(최신 버전)을 가지는 업데이트 장치들(예를 들어 제1 업데이트 장치(200), 제2 업데이트 장치(300) 및 제3 업데이트 장치(400)) 중 인식에 따라 연결 상태이면서 가장 높은 우선순위도 점수를 가지는 업데이트 장치를 펌웨어를 갱신할 업데이트 장치로 결정한다. The control unit 190 controls the update devices (for example, the first update device 200 and the second update device 300) having a (highest) version (latest version) higher than the firmware of the current nonvolatile memory 131, And the third update device 400), the update device having the highest priority and the connected state is determined as an update device to update the firmware.

제3 업데이트 장치(400)로 결정된 경우에는 중간 연결 네트워크 유형(제2 네트워크(703), 제4 네트워크(707))이 또한 우선순위도에 따라 결정될 수 있다. The intermediate connection network type (second network 703, fourth network 707) may also be determined according to the priority degree when it is determined to be the third update device 400. [

산출된 우선순위도의 비교에 따른 업데이트 장치의 결정 대신에, 제어부(190)는 입력부(150) 등을 통해 미리 설정된 우선순위에 따라 업데이트 장치를 결정할 수도 있다. 이 경우에는 가장 높은 펌웨어 버전을 가지면서 고정된 우선순위가 높은 업데이트 장치가 갱신할 업데이트 장치로 결정될 수 있다. The control unit 190 may determine the update device according to a preset priority through the input unit 150 or the like instead of determining the update device according to the comparison of the calculated degree of priority. In this case, the update apparatus having the highest firmware version and a fixed priority can be determined as an update apparatus to be updated.

갱신할 업데이트 장치가 결정됨에 따라, 제어부(190)는 결정된 업데이트 장치에 대응하는 네트워크를 통해 펌웨어를 업데이트(S111)한다. As the update device to be updated is determined, the controller 190 updates the firmware through the network corresponding to the determined update device (S111).

제어부(190)는 결정된 업데이트 장치의 대응 네트워크를 통해 펌웨어 데이터와 이 펌웨어 데이터에 대하여 계산된 해쉬 코드를 대응하는 통신 인터페이스를 통해 수신하고 수신된 펌웨어 데이터를 저장부(130)의 비휘발성 메모리(131)의 임시 업데이트 영역에 임시 저장한다. The control unit 190 receives the firmware data and the hash code calculated for the firmware data through the corresponding network of the determined updating device through the corresponding communication interface and stores the received firmware data in the nonvolatile memory 131 ) In the temporary update area of the storage device.

대응하는 네트워크로부터 모든 펌웨어 데이터와 해쉬 코드를 수신한 경우에, 제어부(190)는 임시 저장된 펌웨어 데이터를 대상으로 해쉬 코드를 산출하고 산출된 해쉬 코드와 수신된 해쉬 코드가 동일한 경우에 수신되어 임시로 저장된 펌웨어 데이터를 비휘발성 메모리(131)의 펌웨어 영역에 기록하여 펌웨어를 갱신한다. When all the firmware data and the hash code are received from the corresponding network, the controller 190 calculates a hash code for the temporarily stored firmware data, and when the calculated hash code is equal to the received hash code, And stores the stored firmware data in the firmware area of the nonvolatile memory 131 to update the firmware.

결정된 업데이트 장치와 대응하는 네트워크에 따라, 이용되는 통신 프로토콜과 펌웨어 소싱 방식을 서로 다를 수 있다. 예를 들어, 클라우드 서버와 같은 제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 third update device 400, such as a cloud server, may transmit firmware to the device 100 according to a request and response based on a hypertext transfer protocol (HTTP) communication protocol. The cloud server can transmit the firmware information or the firmware to the device 100 in association with other storage servers according to the firmware information, the download request, and the like.

펌웨어가 갱신 완료됨에 따라, 디바이스(100)는 재부팅되어 갱신된 펌웨어로 구동되어 지정된 기능을 수행할 수 있다.As the firmware is updated, the device 100 can be rebooted and run with the updated firmware to perform the designated function.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.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 업데이트 장치와의 시리얼 통신에 따라 가용성 점수와 연결 지연도 점수를 산출하고 상기 디바이스에 저장되는 우선순위 결정 테이블의 상기 제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.
제1항에 있어서,
광대역 네트워크에 연결된 제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.
제3항에 있어서,
상기 우선순위도는 대응하는 네트워크의 가용성 점수, 연결 지연도 점수 및 에러율 점수에 따라 산출되고,
가용성 점수, 연결 지연도 점수 및 에러율 점수는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신되는,
펌웨어 업데이트 방법.
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.
제2항에 있어서,
상기 디바이스는 개발용 프로토타입 기기이거나 내장형 개발 보드이고,
상기 제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.
제5항에 있어서,
결정된 업데이트 장치를 통해 펌웨어를 업데이트하는 단계는 업데이트 장치로부터 펌웨어와 해쉬 코드를 수신하고 수신된 펌웨어를 메모리에 임시 저장하고 임시 저장됨 펌웨어 데이터에 대해 해쉬 코드를 산출하며 산출된 해쉬 코드와 수신된 해쉬 코드가 동일한 경우 임시 저장된 펌웨어 데이터를 비휘발성 메모리의 펌웨어 영역에 기록하는,
펌웨어 업데이트 방법.
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.
제7항에 있어서,
펌웨어를 갱신할 업데이트 장치의 결정을 위해, 상기 제어부는 제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.
제8항에 있어서,
상기 우선순위도는 대응하는 네트워크의 가용성 점수, 연결 지연도 점수 및 에러율 점수에 따라 산출되고,
가용성 점수, 연결 지연도 점수 및 에러율 점수는 대응하는 네트워크에 연결 시도 또는 데이터 송수신에 따라 갱신되는,
디바이스.
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.
제7항에 있어서,
상기 제어부는, 제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.
KR1020180108063A 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 KR101947528B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101873561B1 (en) * 2011-12-21 2018-07-03 주식회사 케이티 Device and Method for device information negotiation

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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