WO2019208870A1 - 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템 - Google Patents

무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템 Download PDF

Info

Publication number
WO2019208870A1
WO2019208870A1 PCT/KR2018/006266 KR2018006266W WO2019208870A1 WO 2019208870 A1 WO2019208870 A1 WO 2019208870A1 KR 2018006266 W KR2018006266 W KR 2018006266W WO 2019208870 A1 WO2019208870 A1 WO 2019208870A1
Authority
WO
WIPO (PCT)
Prior art keywords
wireless
application
wireless device
external device
code
Prior art date
Application number
PCT/KR2018/006266
Other languages
English (en)
French (fr)
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 ㈜에이투유정보통신
Publication of WO2019208870A1 publication Critical patent/WO2019208870A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Definitions

  • the present invention relates to a wireless device and a wireless system for updating a program through a wireless network, and more particularly, to a wireless device and a wireless system for updating a program through a wireless network that can efficiently update a program of a wireless device that is accessible to the wireless network. It is about.
  • Wireless devices utilizing a wireless network are widely used.
  • wireless devices such as various sensors connected to the IoT wireless network may transmit and receive various data through the IoT.
  • Wireless devices connected to the Internet of Things may be various types of devices. Each wireless device is assigned with one or more specific functions and performs the designated functions through stored programs. One wireless device can operate as a repeater in a wireless network. Another wireless device may act as a gateway in a wireless network and another wireless device may perform certain functions (eg, external environment monitoring, external device control, etc.).
  • Wireless devices have built-in programs to perform their designated functions, which need to be updated. Since the wireless devices are scattered in various locations, when a worker moves to the site and updates directly, the time and cost increase.
  • each wireless device Since the wireless devices are connected to the wireless network, they may assume an update through the IOT wireless network. In this case, it is necessary to update an individual program for each wireless device.
  • a wireless network such as a WiSUN (Wireless Smart Utility Network) wireless communication technology
  • each wireless device forms a network topology so that the wireless devices corresponding to the intermediate nodes may not only have their own programs but also subordinate nodes. The program needs to be temporarily stored, which causes a large amount of memory.
  • a wireless device When a wireless device is updated through a personal computer or a wireless access point (AP), and when 100 packets need to be transmitted for a program update, the personal computer or the wireless AP may communicate with one wireless device. It transmits one packet, receives a response (ACK) for the packet, and transmits a total of 100 packets to complete the update for the corresponding wireless device.
  • ACK response
  • a personal computer or a wireless AP may transmit a total of 100 packets with another wireless device, and may complete an update for the other wireless device by receiving a response packet.
  • the conventional wireless device update method has a sequential and time-consuming problem.
  • the present invention has been made in view of the above-described problem, and provides a wireless device and a wireless system for updating a program through a wireless network that can update a program of a wireless device connected through a wireless network in a time-efficient manner. Its purpose is to.
  • the present invention is to update the program over the wireless network to perform the function of each type specified through a single program irrespective of the type of the wireless device and to simplify the update of the wireless devices with an update for a single program.
  • the purpose is to provide a wireless device and a wireless system.
  • the present invention also provides a wireless device and a wireless device for updating a program through a wireless network capable of updating a program by using a memory in which a single program is recorded and transmitting the updated program to a subsequent wireless device, without requiring additional memory capacity.
  • the purpose is to provide a system.
  • a wireless device for updating a program via a wireless network includes a wireless communication unit for transmitting and receiving a communication packet through a wireless network, a storage unit for storing application program codes, and a controller for executing the loaded program code. And a control unit for updating the negative application program code to an application program code extracted from the received communication packet, wherein the control unit corresponds to an index of a broadcasting communication packet received from a first external device connected through a wireless network and is designated in a storage area. Replace the chunk of the application code stored in the application code data in the broadcasting communication packet.
  • control unit may generate a communication packet of the index list including one or more indexes which are not recognized in the broadcasting communication packet received from the first external device among all indexes corresponding to the application program code through the wireless communication unit. 1 Send to an external device.
  • the storage unit further includes an update program code recorded in the allocated first memory area, and the controller which loads and executes the application program code requests the application program update from the first external device through the wireless communication unit.
  • the application program code recorded in the second memory area of the storage unit is updated by loading and executing the update program code.
  • the control unit for executing the update program code transmits the application update request to the second external device and the third external device connected via the wireless network after the completion of the update of the application code and the second memory of the storage unit A plurality of broadcasting communication packets composed of the application program code updated in the area are transmitted through the wireless communication unit.
  • the storage unit further stores the application program type data
  • the control unit for executing the update program code loads the updated application program code after the completion of the update of the application program code, and within the single application program code. Executes the program code corresponding to the specified function according to the application program type data.
  • the wireless network is a network according to the WiSUN wireless communication technology.
  • the control unit receives a communication packet from the first external device including the application code data corresponding to the index of the index list through the wireless communication unit, the application code chunk corresponding to the index and stored in the designated area of the storage unit Is replaced with the application code data of the communication packet to complete the update of the application code.
  • a wireless system for updating a program via a wireless network includes the wireless device described above.
  • the wireless device further comprises a first external device connected to the wireless device via WiSUN wireless communication, wherein the first external device transmits an application update request to a plurality of wireless devices including the wireless device. Transmits a plurality of broadcasting communication packets through WiSUN wireless communication, which can be transmitted through the wireless device and configure application code of the wireless device, and the first external device transmits a single response packet from the wireless device to the plurality of broadcasting communication packets. Upon reception, the communication packet including the application code data corresponding to the index list of the response packet is retransmitted to the wireless device through WiSUN wireless communication.
  • the wireless system may further include a second external device and a third external device connected to the wireless device via WiSUN wireless communication.
  • the wireless device may be configured to update an application program according to wireless communication with the first external device.
  • the application update request can be sent to the second external device and the third external device via WiSUN wireless communication, and the application code of the second external device and the third external device can be configured,
  • a plurality of generated broadcasting communication packets are transmitted through WiSUN wireless communication, and after completion of application transmission of the second external device and the third external device, the wireless device stores the updated application code in the application code storage area of the storage unit. In addition, it is executed according to the configured application program type.
  • the wireless device and the wireless system for updating the program through the wireless network according to the present invention as described above has the effect of efficiently updating the program of the wireless device connected through the wireless network through the wireless network.
  • a wireless device and a wireless system for updating a program through a wireless network according to the present invention as described above perform a specified type of function through a single program regardless of the type of the wireless device, and update to a single program There is an effect to simplify the update of the wireless devices.
  • the wireless device and the wireless system for updating a program through the wireless network according to the present invention as described above using a memory recorded with a single program to update the program and transmit the updated program to the subsequent wireless device of the additional memory capacity Program update is possible without the need.
  • FIG. 1 is a diagram illustrating an exemplary wireless system in accordance with the present invention.
  • FIG. 2 is a diagram illustrating an example network topology configured in a wireless network.
  • FIG. 3 illustrates an exemplary block diagram of a wireless device.
  • FIG. 4 is a diagram illustrating an exemplary allocation area layout of a storage unit.
  • FIG. 5 illustrates an exemplary series of control flows for updating application code utilizing a network topology.
  • control unit 107 control unit
  • FIG. 1 is a diagram illustrating an exemplary wireless system in accordance with the present invention.
  • the wireless system of FIG. 1 preferably represents a wireless system capable of updating a program via the wireless network 400.
  • a wireless system includes a control server 300, a gateway 200, one or more (plural) wireless devices 100, and a wireless network 400.
  • the wireless system of FIG. 1 may be installed in any building, apartment complex, or the like.
  • the control server 300 is a device capable of controlling one or more wireless devices 100.
  • the control server 300 may output control data for controlling the designated wireless device 100 or all the wireless devices 100, and may receive a response or various status data from the wireless device 100.
  • control server 300 may output an update request of application program codes stored in all the wireless devices 100 as control data.
  • This control data may include application code to be updated (updated) or the control data that is subsequently passed may include this application code.
  • control server 300 may receive various status data from all (each) the wireless device (100).
  • the control server 300 receives state data such as power consumption, air conditioner control state, and gas consumption from various types of wireless devices 100 and controls or charges the wireless device 100 according to the received state data. And the like.
  • the control server 300 may transmit and receive various data to the wireless device 100 through the gateway 200.
  • the gateway 200 is a device capable of converting communication packets between the wireless network 400, the control server 300, and the gateway 200 network and then transmitting them to both networks.
  • the gateway 200 receives a communication packet including control data for controlling any wireless device 100 or all wireless devices 100 connected to the wireless network 400 from the control server 300.
  • the gateway 200 generates and outputs a communication packet targeting any wireless device 100 or all wireless devices 100 on the wireless network 400 according to the control data on the payload of the received communication packet.
  • the gateway 200 receives control data indicating a request for updating an application program code stored and performed in the wireless device 100 from the control server 300 as a communication packet. According to the received control data, the gateway 200 updates the application program codes of all the wireless devices 100 connected to the wireless network 400 with the same application program code of the update request.
  • the gateway 200 receives a communication packet including state data from the wireless device 100 connected to the wireless network 400.
  • the gateway 200 includes the received state data and constructs communication packets for the control server 300 and the gateway 200 network and transmits them to the control server 300.
  • the wireless device 100 is a device that performs a designated function and is connected to the wireless network 400 to transmit and receive various data.
  • the wireless device 100 may be a device connected to an electric meter, a gas meter, etc. to measure (recognize) power consumption or gas consumption and transmit the measured consumption to a remote control server 300.
  • the wireless device 100 may be a small device for controlling a remote air conditioner. Any wireless device 100 may perform a repeater function of transmitting and receiving data on the wireless network 400 in the middle.
  • the plurality of wireless devices 100 form a network topology and are connected to the gateway 200 and the control server 300 through the wireless network 400 to transmit and receive various data.
  • the wireless devices 100 on the wireless network 400 preferably embed a single application program code regardless of the function or type of each wireless device 100.
  • the same application code can be updated and preferably the same application code is updated via a network topology.
  • the application program code may be simply updated regardless of the type of each wireless device 100. As will be described later, application code can be updated efficiently with a small memory capacity.
  • the wireless network 400 is a network for transmitting and receiving data between the wireless devices 100 or the gateway 200 using a wireless communication technology.
  • the wireless network 400 is a network to which the known Internet of Things (IOT) communication technology is applied, for example, a wireless smart utility network (WISUN) wireless communication technology, a narrowband IOT (NB-IOT) wireless communication technology, and a long range (LoRa).
  • IOT Internet of Things
  • WISUN wireless smart utility network
  • NB-IOT narrowband IOT
  • LiRa long range
  • the network may be a wireless communication technology.
  • the WiSUN wireless communication technology, the NB-IOT wireless communication technology, and / or the LoRa wireless communication technology may transmit and receive various data according to a designated bit rate at low power using a carrier frequency of 900 MHz band (for example, 920 MHz).
  • the wireless network 400 is preferably a network according to the WiSUN wireless communication technology, and the gateway 200 or the wireless device 100 may transmit and receive control data such as an application code update request or the response through the WiSUN wireless communication. have.
  • a network (not shown) for transmitting and receiving data between the control server 300 and the gateway 200 may be, for example, a local area wireless network (for example, WiFi) or a local area network (for example, a LAN), or a combination thereof. It may be a network configured (eg, an intranet built in a building, etc.).
  • FIG. 2 is a diagram illustrating an example network topology configured in a wireless network 400.
  • the network topology of FIG. 2 is, for example, a communication connection between the wireless device 100 (and the gateway 200) for transmitting and receiving various data (control data) on the wireless network 400 to which the WiSUN wireless communication technology is applied.
  • the structure is preferably shown.
  • one device is set up on the network topology as the root node.
  • This device may be one of the wireless devices 100.
  • the device may be a gateway 200.
  • At least two nodes are connected to the root node as child nodes.
  • the root node is configured to send data (eg, payload) of the received communication packet to the child node. For example, the root node determines a subsequent child node according to the destination address of the received communication packet (this destination address may be included in the header of the communication packet or in the payload) and transmits the communication packet to the selected child node. .
  • the root node If the received communication packet is a broadcasting communication packet, the root node transmits the received communication packet to all child nodes.
  • An intermediate node is a node having a parent node and a child node.
  • the intermediate node may be the wireless device 100 and the intermediate node transmits the communication packet to the child node which it processes or selects according to the destination address of the communication packet.
  • the intermediate node transmits the received communication packet to all child nodes.
  • Leaf nodes are nodes that do not have child nodes on the network topology.
  • the leaf node may be the wireless device 100.
  • the leaf node may extract the payload from the communication packet when the received communication packet is the destination, and perform processing according to the control data of the designated payload.
  • the root node, the intermediate node and the leaf node all represent node types to be performed on the network according to their position on the network topology, and the wireless device 100 corresponding to each node can also perform the designated application function. It is configured to.
  • the wireless device 100 of any node may perform electricity consumption measurement, gas consumption measurement, air conditioner control, and the like.
  • the measured consumption or control response data is transmitted to the control server 300 through the parent node of the network topology.
  • the application program code according to the present invention consists of a single code regardless of the node type and / or application function type applied to each wireless device 100.
  • This application code is preferably delivered (propagated) through broadcasting over a network topology and the wireless device 100 on the network topology is updated with the transmission and reception of communication packets and response packets.
  • the headers of the communication packets transmitted between the nodes may be changed as necessary.
  • a source address and a destination address of a communication packet may be set to an address of a current node and an address of a lower node representing a link between nodes.
  • FIG. 2 illustrates an example of the topology in the form of a tree
  • FIG. 3 is a diagram illustrating an exemplary block diagram of a wireless device 100.
  • the wireless device 100 includes a wireless communication unit 101, a storage unit 103, an external interface unit 105, and a control unit 107. According to a design variant, the wireless device 100 may omit some blocks of FIG. 3 or may further include other blocks not shown in FIG. 3.
  • the wireless device 100 of FIG. 3 is configured to be connected to the wireless network 400 to perform various designated functions, and the wireless device 100 may transmit and receive various communication packets with a parent node or a child node according to a set network topology. .
  • the wireless communication unit 101 transmits and receives a communication packet through the wireless network 400.
  • the wireless communication unit 101 may include a wireless antenna, a matching circuit connected to the wireless antenna, and a communication chipset to recognize or transmit a wireless communication packet according to a designated wireless communication technology.
  • the radio communication unit 101 transmits and receives radio communication packets by synchronizing radio signals according to a designated communication standard corresponding to a specific radio communication technology. For example, the wireless communication unit 101 may transmit and receive a communication packet according to the WiSUN wireless communication technology.
  • the wireless communication unit 101 may receive a communication packet in which a specific wireless device 100 is designated as a receiver, or a broadcasting communication packet in which all wireless devices 100 are designated as a receiver, and transmit the received communication packet to the controller 107.
  • Broadcasting communication packets are either recognized in the header of the communication packet (e.g., not assigned to the destination address, but set to an address (such as 0xFF) to set the broadcast packet) or to flag data in a promised format on the payload of the communication packet. Can be set. In the latter case, the address of the lower node in the network topology may be set as the destination address of the packet header.
  • the broadcasting communication packet is transmitted through the gateway 200 or the like when control of all the wireless devices 100 is required.
  • the gateway 200 may include a series of code data of the application program code to be updated in the payload of the broadcasting communication packet and transmit it to all the wireless devices 100.
  • the storage unit 103 stores data and programs including various memories.
  • the storage unit 103 stores various programs and data, including nonvolatile memory such as NAND flash or NOR flash.
  • the storage unit 103 may further include a volatile memory such as a DRAM.
  • the storage unit 103 performs general communication functions of the wireless device 100 to store (stores) various programs and data, and updates (updates) application code and application code for performing a designated application function.
  • the setting data including the updated program code and the application program type data indicating the type of the application program is included (stored) in at least the nonvolatile memory of the storage unit 103.
  • 4 is a diagram illustrating an exemplary allocation area layout of the storage unit 103. 4 illustrates an example layout of programs and data stored in a nonvolatile memory included in the storage 103.
  • the nonvolatile memory of the storage unit 103 includes (stores) the update program code in an allocated (designated) memory area (from address A to before address B) of one of the entire memory areas of the nonvolatile memory.
  • Nonvolatile memory also contains (stores) application code in other allocated memory regions (from address B to before address C).
  • the nonvolatile memory also stores setting data in another allocated memory area (from address C).
  • the setting data includes various data to be used in the execution of the application program code and the update program code.
  • the configuration data includes at least data of an application program type and a node type of the wireless device 100.
  • the application program type indicates a type of application function allocated to the wireless device 100.
  • the application type may indicate, for example, a management target type external to the wireless device 100 such as a gas meter type, an electric meter type, a water meter type, and an air conditioner control type.
  • the application program code is configured to jump to the corresponding program code to perform a corresponding function.
  • the node type represents the node type of the wireless device 100 when the wireless device 100 is configured in the network topology.
  • the node type may represent, for example, a root node, an intermediate node, a leaf node, or the like.
  • the configuration data may further include parent node data and one or more child node data together with the node type.
  • Parent node data is data representing a parent node connected to the wireless device 100 according to a network topology.
  • the parent node data includes an address of a parent node (for example, an address on a data link layer) and further includes a communication channel connected to the parent node. It may further include information (for example, communication channel number or assigned frequency).
  • the child node data is data representing a child node connected to the wireless device 100 according to a network topology.
  • the child node data may further include information on a communication channel connected to the child node, including an address of the child node.
  • the application program code and the update program code can identify the parent node and the child node on the network topology and transmit and receive various data, information, and responses to the corresponding node according to the network topology.
  • the application program code consists of a single program code regardless of the application program type.
  • Application program code is configured to handle various types of functions by branching according to the application program type of configuration data while utilizing major internal functions and the like. Having such a configuration eliminates the need to configure individual application programs according to the application type, and does not need to greatly increase the size of application code by sharing similar internal functions.
  • each wireless device 100 constituting the network topology can update the same application code, thereby simplifying the update of the application code.
  • the update program code may be called by the application program code.
  • the update program code may be embedded in a boot program used when the wireless device 100 boots. After the update of the update program is completed, the wireless device 100 may be rebooted to execute the updated application program code.
  • the external interface 105 interfaces with other devices external to the wireless device 100.
  • the external interface unit 105 includes means for interfacing with gas, electricity, and water meters to receive total consumption or consumption events from the gas, electricity, water meters, and the like.
  • the external interface unit 105 may receive a meter consumption event generation according to an event signal received through a single signal line, or may receive a total consumption amount according to data received through a UART.
  • the external interface unit 105 may be provided with a transmission means (for example, an infrared diode for transmitting a remote control signal) for controlling the air conditioner, TV, monitor, and the like remotely to control the remote external device.
  • a transmission means for example, an infrared diode for transmitting a remote control signal
  • the external interface unit 105 may control the device to be controlled or monitored, monitor the device, or receive data from the device under the control of the controller 107.
  • the controller 107 controls the wireless device 100.
  • the controller 107 includes one or more execution units capable of executing command codes of a program, and monitors external devices or monitors data using the command codes and setting data of the programs stored in the storage 103. Can be received.
  • the controller 107 may transmit and receive various communication packets through a network topology of the wireless network 400.
  • the controller 107 may represent a CPU, an MPU, a MICOM, or the like, or may be referred to as a CPU, an MPU, a MICOM, or the like.
  • the controller 107 controls the wireless device 100 by executing the loaded program code.
  • control unit 107 that executes the application code assigned to the designated area of the storage unit 103 is selected from the application code according to the application program type of the setting data Perform
  • the control unit 107 may receive various data or transmit various control data from the control or monitoring target through the external interface unit 105.
  • the control unit 107 configures a communication packet including the data according to the reception of various data (for example, status data such as an event occurrence or total consumption) and the other external wireless device 100 (for example, a parent node). It may be transmitted to the control server 300 through the wireless device 100 corresponding to the.
  • the control unit 107 which executes the application code, receives the communication packet through the wireless communication unit 101 and uses the node type of the configuration data, the parent node data, and the child node data to receive the communication packet.
  • the wireless device 100 may retransmit.
  • the control unit 107 which executes the application program code, extracts the payload of the received communication packet to determine whether the control data included in the payload indicates an application program update request.
  • the application update request can be recognized by each control unit 107 according to the promised format of the payload, and the application program update request is received via a communication packet from the wireless device 100 of the parent node.
  • the control unit 107 In response to the application program update request, the control unit 107, which was executing the application program code, performs the update program code to prepare for the update of the application program code. In the update preparation process, the controller 107 determines the total size of the update program code, the number of broadcasting communication packets for receiving all of the update program code, and the like.
  • the controller 107 may dynamically receive the total size of the update program code, the number of broadcasting communication packets for receiving all of the update program code, or the like, from the wireless device 100 of the parent node, or fix it in advance without dynamic reception.
  • the size of the memory area allocated to the application code e.g. 10M Byte
  • the chunk size e.g. 10K Byte
  • the number of communication packets for example, 1000 to which all the application code will be transmitted may also be predetermined.
  • the control unit 107 which performs the update program code updates the application program code allocated to the designated memory area of the storage unit 103 with the update application program code extracted from the communication packet received through the wireless communication unit 101. .
  • the control unit 107 receives the broadcasting communication packet through the wireless communication unit 101.
  • the broadcasting communication packet is received from an external wireless device 100 or a gateway 200 (hereinafter referred to as a 'first external device') connected through the wireless network 400.
  • the first external device 100 or 200 may be, for example, a parent node of the wireless device 100.
  • the first external device 100 or 200 may generate and output a broadcasting communication packet (for example, a communication packet in which a destination address of a header is set to “0xFF”, etc.) for all the child nodes.
  • the first external device 100 or 200 may sequentially generate and output a series of broadcasting communication packets according to the chunk size to be included in the payload.
  • the controller 107 filters (removes) the broadcasting communication packet. . Accordingly, each wireless device 100 can update the application program code by using the broadcasting packet from the parent node.
  • the broadcast communication packet received from the parent node may include an index to indicate which chunk of application program code. For example, when an application code is composed of 1000 chunks, the first external device 100 or 200 includes an index according to a corresponding position of the application program code in a header or payload of a broadcasting communication packet.
  • the control unit 107 which performs the update program code extracts the index from the broadcasting communication packet and broadcasts the application code chunk at the location corresponding to the index in the memory area allocated for the application code to the storage unit 103. Replace with application code data extracted from the packet. In this way, the control unit 107 corresponds to the index extracted from the broadcasting communication packet and replaces the chunk of the application program code with the application code data of the broadcasting communication packet in the designated area of the storage 103.
  • the control unit 107 which performs the update following the update request receives the application code data to be updated corresponding to all the indexes through the broadcasting communication packet.
  • the control unit 107 updates the application program code of the memory area immediately recorded in the storage unit 103 according to the index recognized at the time of reception.
  • the memory area in which the update program code is stored (hereinafter referred to as 'first memory region') and the memory area in which the application code is stored (hereinafter referred to as 'second memory region') are different from each other, and preferably Its position is fixed.
  • the controller 107 executing the update program code may receive a broadcasting communication packet indicating completion of distribution and may determine an unreceived index.
  • the controller 107 constructs an index list including one or more unreceived indexes, generates a communication packet including the index list in the payload, and transmits the generated communication packet to the first external device 100 or 200 through the wireless communication unit 101. .
  • the controller 107 may subsequently receive the corresponding communication packet corresponding to the index to update the unupdated application program code.
  • the controller 107 transmits a communication packet including a signal strength (RSSI) and / or link quality indicator (LQI) information measured for the received broadcasting communication packet through the wireless communication unit 101 to the first external device ( 100,200).
  • the measurement of the signal strength is made through the wireless communication unit 101 and the control unit 107 can receive it.
  • the LQI information may include information such as, for example, a communication error rate, and the signal strength and / or the LQI information may be transmitted together in a communication packet including an index list or included in a separate communication packet.
  • the controller 107 uses the child node data of the setting data to transmit the wireless device 100 corresponding to the child node (hereinafter referred to as 'second external device', 'third external device'). And a communication packet including an application update request. Thereafter, the controller 107 may transmit the series of application program chunks stored in the second memory area to the second external device 100 or the third external device 100.
  • the control unit 107 that receives the index list from the second external device 100 or the third external device 100 extracts the application program code chunk corresponding to the index of the index list from the second memory area and is extracted.
  • a communication packet including the chunk and the index data in the payload may be generated and transmitted to the second external device 100 or the third external device 100.
  • the controller 107 receives not only the index list but also the signal strength (RSSI) and / or LQI information from the second external device 100 or the third external device 100 through a communication packet.
  • the controller 107 may first complete the update targeting one external device of the two external devices 100 according to the received signal strength and / or LQI information.
  • the controller 107 may be used.
  • the unreceived application code chunks are sequentially transmitted to the second external device 100 through a response packet (ACK response) using the index list of the second external device 100.
  • the controller 107 After the completion of the transmission of the unreceived code chunk to the second external device 100, the controller 107 sequentially processes the unreceived application code chunk through the response packet (ACK response) using the index list of the third external device 100. To the third external device 100.
  • the update process may be performed in a different order according to the communication state of the connected child nodes, thereby quickly completing the program update performed in parallel for each node layer.
  • the control unit 107 which performs the update program code performs the updated application code through a reboot process to perform a function designated according to the updated program. Can be done.
  • the wireless device 100 can update a program using the same storage space originally allocated for storing an application program without having a separate storage space for program update.
  • the wireless device 100 also uses the data of the same storage space of the already updated program code to update the program for the child node does not require a separate memory, regardless of the type of each wireless device 100, the same program Updating the code may simplify program updates over the wireless network 400.
  • FIG. 5 illustrates an exemplary series of control flows for updating application code utilizing a network topology.
  • the control flow of FIG. 5 shows a control flow made by one wireless device 100 in a network topology.
  • the control flow of FIG. 5 is preferably implemented as the controller 107 of the wireless device 100 of the intermediate node loads and executes the program of the storage 103.
  • control unit 107 of the wireless device 100 starts to operate according to a power source or an external input to perform application program code (S101).
  • the control unit 107 of the wireless device 100 performs a function specified according to the application program code of the second memory area and the application program type of the setting data.
  • the first external device (100,200) that is the parent node or gateway 200 of the wireless device 100 is connected to the wireless device 100 via WiSUN wireless communication.
  • the first external devices 100 and 200 may transmit a plurality of wireless devices 100 (for example, wireless corresponding to child nodes) connected to the first external devices 100 and 200 according to an application update request through the control server 300 or the like.
  • Device 100 to transmit a program update request (e.g., a broadcasting communication packet or one-to-one communication packets) via WiSUN wireless communication.
  • the control unit 107 of the wireless device 100 may receive a communication packet indicating a program update request through the wireless communication unit 101 (S103), and further authenticate the update request according to a promised algorithm or the like.
  • the control unit 107 of the wireless device 100 (S105) loads the update program code allocated to and recorded in the first memory area (S105) and subsequently executes the application program code of the second memory area. Update (see S107 to S113).
  • the control unit 107 of the wireless device 100 for example, 10M Byte
  • the chunk size for example, 10K
  • the total number of broadcasting communication packets (for example, 1000) is determined in advance.
  • the total number of broadcasting communication packets determined may be included in a communication packet indicating a program update request, and may be received or automatically determined by the control unit 107 of the wireless device 100.
  • the control unit 107 of the wireless device 100 may store the memory area stored according to the index included in the broadcasting communication packet dynamically according to the reception of the broadcasting communication packet.
  • the control unit 107 of the wireless device 100 generates a new index list (for example, including all numbers from 0 to 999) including the determined total number of indices.
  • control unit 107 of the wireless device 100 initializes the signal strength information and the LQI information stored in the setting data of the storage unit 103 and the like.
  • control unit 107 of the wireless device 100 receives the broadcasting communication packet (from the first external device 100,200) and extracts application code data of an index and payload from the received broadcasting communication packet. do.
  • the control unit 107 of the wireless device 100 replaces the corresponding application code chunk (for example, 10K bytes) of the second memory area with the extracted application code data (S107).
  • the first external devices 100 and 200 sequentially transmit a plurality of broadcasting communication packets corresponding to the entire application code through WiSUN wireless communication, and the control unit 107 of the wireless device 100 receives them. do.
  • control unit 107 of the wireless device 100 may extract the source address of the received broadcasting communication packet and filter the broadcasting communication packet. For example, if the source address of the received broadcasting communication packet is not a parent node (parent node data of configuration data), the wireless device 100 (control unit 107 of the wireless device 100) removes or receives the received broadcasting communication packet. Omit the processing.
  • the control unit 107 of the wireless device 100 (or the control unit 107) of the broadcast communication packet remaining after filtering, where the type of the broadcast communication packet is included in the header of the communication packet or in the payload, where the index is Extract in the header of the communication packet or in the payload) and extract the application code data from the payload.
  • the control unit 107 of the wireless device 100 identifies the application code chunk address area corresponding to the extracted index (for example, "application code start address + chunk size * index” to "application code start). Address + (chunk size * index + 1) ”) and record the extracted application code data in the identified chunk area to replace the existing application code chunk.
  • the wireless device 100 deletes the extracted index from the index list.
  • control unit 107 of the wireless device 100 measures the signal strength of the received broadcasting communication packet and updates the signal strength information and the LQI information of the storage unit 103.
  • the signal strength information of the storage 103 may be an average signal strength of each broadcasting communication packet received, and the LQI information is calculated through a known calculation method according to whether or not to receive the broadcasting communication packets.
  • the control unit 107 of the wireless device 100 receives each broadcasting communication packet sequentially transmitted from the first external device 100 and 200 and uses a corresponding code chunk by using application code data and an index of the received packet. Can be substituted for Accordingly, the wireless device 100 may reduce the memory capacity provided by replacing the update code updated in the area of the existing application program code without allocating and using a separate memory area for updating.
  • the first external device 100 or 200 As the first external device 100 or 200 completes the transmission of all broadcasting communication packets corresponding to the application program code, the first external device 100 or 200 configures and transmits a communication packet indicating completion of the application program distribution.
  • the control unit 107 of the wireless device 100 receives this through the wireless communication unit 101 (S109).
  • the communication packet indicating the completion of distribution may be a broadcasting communication packet or a dedicated communication packet requesting an ACK one-to-one.
  • the control unit 107 of the wireless device 100 constructs an index list indicating an unrecognized (received) index in the plurality of broadcasting communication packets, and the index list and the signal strength. And / or transmits a communication packet including LQI information and indicating a response to completion of distribution to the first external device 100 or 200 through the wireless communication unit 101 (S111).
  • the signal strength and / or LQI information may be included in another communication packet and transmitted to the first external device 100 or 200.
  • the control unit 107 of the wireless device 100 (the first control device 107) sends a response packet including the index list and the signal strength and / or LQI information from which the index extracted by the reception of the broadcasting communication packet is deleted. (100,200) to transmit via WiSUN wireless communication. In this manner, the control unit 107 of the wireless device 100 transmits a single response packet indicating whether the plurality of broadcasting communication packets have been received to the first external device 100, 200.
  • the first external device receives the index list and the signal strength and / or LQI information from all child nodes (wireless device 100), and not received to each wireless device in sequence according to the signal strength and / or LQI information
  • the generated application code data receives the index list and the signal strength and / or LQI information from all child nodes (wireless device 100), and not received to each wireless device in sequence according to the signal strength and / or LQI information
  • the generated application code data The generated application code data.
  • the first external device 100 or 200 may order the transmission order with each wireless device 100 to be high or good between the signal strength and / or LQI information of each wireless device 100 and have the highest signal strength. Or sequentially transmits unreceived application code data to the wireless device 100 having good LQI information.
  • the first external device 100 or 200 extracts an index list of response packets from the wireless device 100 having the highest rank, constructs a communication packet including application code data corresponding to the index of the index list, and performs wireless communication of WiSUN wireless communication. Retransmission to the wireless device 100 through the network 400.
  • the highest ranking specific wireless device 100 receives a series of communication packets corresponding to the index list through the wireless communication unit 101 and extracts the index and application code data from the received communication packets, The unupdated application code chunk of the second memory area of the storage unit 103 is replaced with the extracted application code data (S113).
  • the control unit 107 of the wireless device 100 receives each communication packet through one-to-one wireless communication and extracts an index and application code data of the received communication packet.
  • the control unit 107 of the wireless device 100 determines the chunk memory area of the second memory area corresponding to the extracted index and records the extracted application code data in the determined chunk memory area.
  • the control unit 107 of the wireless device 100 transmits a response packet (ACK packet) for this communication packet to the first external device 100, 200 through the wireless communication unit 101.
  • the controller 107 of the wireless device 100 may delete the index extracted from the index list.
  • the wireless control device 100 determines that the update of its application code is completed. Can be.
  • the first external device 100 or 200 may sequentially transmit the unreceived application code data to the wireless device 100 having a subsequent rank through the same process.
  • all of the wireless devices 100 connected to the first external device 100,200 may update the application code faster while reducing the influence of the update according to the distance or signal strength from the first external device 100,200. It is possible.
  • the control unit 107 of the wireless device 100 (the control unit 107 of the wireless device 100) is connected to the second external device 100 and the third external device 100 which are child nodes connected through WiSUN wireless communication.
  • Application code can be updated.
  • the update of the application code of the child node can be performed after the code update of the wireless device 100 (control unit 107 of the wireless device 100), for example, after setting the child node program update progress after the completion of its code update. This can be done by recording the configuration data and checking the configuration data after reboot.
  • control unit 107 of the wireless device 100 (the control unit 107) that performs the update program code of the first memory area transmits a communication packet (broadcasting or one-to-one communication packet) indicating an application program update request.
  • the method transmits to the child node including the second external device 100 and the third external device 100 connected through the wireless network 400 using a technology or the like (S115).
  • the second external device 100 and the third external device 100 having the same application code also perform an update program code of the first memory area in the application code of the second memory area to prepare for an update and perform a series of updates. Perform the process.
  • the control unit 107 of the wireless device 100 generates a plurality of broadcasting communication packets configured from the application code transmitted and updated to the second external device 100 and the third external device 100.
  • the control unit 107 of the wireless device 100 transmits a plurality of broadcasting communication packets through the wireless network 400 using WiSUN wireless communication technology (S117).
  • control unit 107 of the wireless device 100 divides the application code of the second memory area of the storage unit 103 into chunk sizes and includes a series of divided application code data and corresponding indexes. Generates a broadcast communication packet of and sequentially transmits to the wireless network 400 through the wireless communication unit 101.
  • the wireless device 100 (control unit 107 of) having completed transmission of all generated broadcasting communication packets constructs a communication packet indicating completion of application distribution so that the second external device 100 and the third external device 100 In order to transmit via a wireless network 400 such as WiSUN wireless communication (S119).
  • a wireless network 400 such as WiSUN wireless communication (S119).
  • the control unit 107 of the wireless device 100 transmits a communication packet including an index list and signal strength and / or LQI information indicating an unreceived index from each of the second external device 100 and the third external device 100. Receive.
  • the control unit 107 of the wireless device 100 determines the transmission order for the second external device 100 and the third external device 100 according to the received signal strength and / or LQI information.
  • the control unit 107 of the wireless device 100 sequentially transmits a communication packet including application code data corresponding to the index of the index list according to the determined transmission order, respectively, to each of the second external device 100 and the third external device. Transfer to step 100 (S121).
  • control unit 107 of the wireless device 100 determines the signal strength and / or LQI of the two wireless devices 100 in order of transmission from the second external device 100 and the third external device 100.
  • the application code data is first sequentially transmitted to the external device 100 having the highest signal strength or the LQI information having the highest signal strength.
  • the communication packet including the application code data corresponding to the unreceived index is transmitted through one-to-one wireless communication, and the control unit 107 of the wireless device 100 (or the control unit 107) can confirm whether the reception is received.
  • the control unit 107 of the wireless device 100 After sequential transmission of the application code of all the connected child nodes and further completion of the update, the control unit 107 of the wireless device 100 stores the updated application code in the second memory area of the storage unit 103. This application code is executed by loading (S123).
  • control unit 107 of the wireless device 100 sets the program update completion of the child node to the setting data after completing the transmission of the application code of the second memory area to the child node, and then the update program code. Reboot accordingly.
  • the control unit 107 of the wireless device 100 performs the application program code according to the program sequence according to the reboot.
  • the control unit 107 of the wireless device 100 that executes the application program code performs the corresponding updated program code according to the application program type data stored in the storage unit 103.
  • application program codes of the plurality of wireless devices 100 may be integrated and managed as a single code.
  • the wireless device 100 on the network topology operates as a single code, it is possible to simplify the updating of the application program code.
  • an intermediate node on a network topology can reduce its memory requirements required as an intermediate node by updating its application code and then passing its application code to the child node to be updated.

Abstract

본 발명은, 무선 네트워크를 통해 통신 패킷을 송수신하는 무선 통신부, 응용 프로그램 코드를 저장하는 저장부 및 로딩된 프로그램 코드를 수행하는 제어부로서, 저장부의 응용 프로그램 코드를 수신된 통신 패킷으로부터 추출되는 응용 프로그램 코드로 갱신하는 제어부를 포함하고, 제어부는 무선 네트워크를 통해 연결된 제1 외부 기기로부터 수신되는 브로드캐스팅 통신 패킷의 인덱스에 대응하고 저장부의 지정된 영역에 저장된 응용 프로그램 코드의 청크를 브로드캐스팅 통신 패킷의 응용 코드 데이터로 대체하는, 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템에 관한 것이다.

Description

무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템
본 발명은 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템에 관한 것으로서, 구체적으로는 무선 네트워크에 액세스 가능한 무선기기의 프로그램을 효율적으로 업데이트 가능한 무선 네트워크를 통해 프로그램을 업데이트 하는 무선기기 및 무선시스템에 관한 것이다.
무선 네트워크를 활용하는 무선기기가 널리 활용되고 있다. 예를 들어, 사물 인터넷 무선 네트워크에 연결된 각종 센서 등의 무선기기들은 사물 인터넷을 통해 각종 데이터를 송수신할 수 있다.
사물 인터넷에 연결되는 무선기기들은 다양한 유형의 기기들일 수 있다. 각각의 무선기기들은 특정 하나 이상의 기능이 할당되고 해당 지정된 기능을 저장되어 있는 프로그램을 통해 수행한다. 한 무선기기는 무선 네트워크에서 중계기(repeater)로서 동작할 수 있다. 다른 무선기기는 무선 네트워크에서 게이트웨이로서 동작할 수 있고 또 다른 무선기기는 특정 기능(예를 들어 외부 환경 감시, 외부 기기 제어 등)을 수행할 수 있다.
무선기기들은 지정된 기능을 수행하기 위해 프로그램을 내장하는 데, 이 프로그램은 업데이트될 필요가 존재한다. 무선기기가 각종 위치에 산재하기에 현장에 작업자가 이동하여 직접 업데이트를 하는 경우에 그 시간과 비용이 상승하는 문제가 발생한다.
무선 네트워크에 연결되기에 무선기기들은 IOT 무선 네트워크를 통한 업데이트를 가정할 수 있다. 이 경우에 각각의 무선기기별로 개별적인 프로그램의 업데이트가 필요하다. 특히, WiSUN(Wireless Smart Utility Network) 무선통신 기술과 같은 무선 네트워크를 활용하는 경우에, 각각의 무선기기들은 네트워크 토폴로지(topology)를 구성하여 중간 노드에 대응하는 무선기기들은 자신의 프로그램뿐 아니라 하위 노드의 프로그램을 임시 저장하여야 해 많은 메모리 용량이 필요한 문제가 발생한다.
또한, 무선 네트워크상의 모든 무선기기들의 프로그램이 업데이트될 필요가 존재할 경우 모든 무선기기들을 대상으로 한 업데이트시 많은 시간이 소요되게 된다.
개인용 컴퓨터나 무선 AP(Access Point) 등을 통해 무선기기를 업데이트하는 경우로서 프로그램 업데이트를 위해 100개의 패킷이 전송될 필요가 존재하는 경우에, 개인용 컴퓨터나 무선 AP 등은 하나의 무선기기와 통신 채널로 연결되어 하나의 패킷을 전송하고 그 패킷에 대한 응답(ACK)을 수신하면서 총 100개의 패킷을 전송하여 해당 무선기기에 대한 업데이트를 완료시킨다. 또한, 개인용 컴퓨터나 무선 AP 등은 다른 무선기기와 총 100개의 패킷을 전송하고 응답 패킷의 수신을 통해 다른 무선기기에 대한 업데이트를 완료시킬 수 있다.
예를 들어, 개인용 컴퓨터나 무선 AP에 연결된 무선기기가 5개이고 각 무선기기에 대한 업데이트에 1분이 소요되는 경우 5개의 무선기기를 업데이트하기 위해 총 5분의 시간이 소요된다. 예에서 알 수 있는 바와 같이, 기존 방식의 무선기기 업데이트 방식은 순차적이고 많은 시간을 요하는 문제점이 발생한다.
이와 같이 무선기기의 프로그램의 업데이트에 있어서 야기되는 각종 문제점을 해소할 수 있는 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템이 필요하다.
본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 무선 네트워크를 통해 연결된 무선기기의 프로그램을 무선 네트워크를 통해 시간 효율적으로 업데이트 가능한 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템을 제공하는 데 그 목적이 있다.
또한, 본 발명은 무선기기의 유형에 상관없이 단일 프로그램을 통해 지정된 각 유형의 기능을 수행하고 단일 프로그램을 대상으로 한 업데이트로 무선기기들의 업데이트를 단순화시킬 수 있도록 하는 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템을 제공하는 데 그 목적이 있다.
또한, 본 발명은 단일 프로그램이 기록된 메모리를 활용하여 프로그램을 업데이트하고 후속 무선기기로 업데이트된 프로그램을 전송하여 추가적인 메모리 용량의 필요없이 프로그램 업데이트가 가능한 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템을 제공하는 데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기는 무선 네트워크를 통해 통신 패킷을 송수신하는 무선 통신부, 응용 프로그램 코드를 저장하는 저장부 및 로딩된 프로그램 코드를 수행하는 제어부로서, 저장부의 응용 프로그램 코드를 수신된 통신 패킷으로부터 추출되는 응용 프로그램 코드로 갱신하는 제어부를 포함하고, 제어부는 무선 네트워크를 통해 연결된 제1 외부 기기로부터 수신되는 브로드캐스팅 통신 패킷의 인덱스에 대응하고 저장부의 지정된 영역에 저장된 응용 프로그램 코드의 청크를 브로드캐스팅 통신 패킷의 응용 코드 데이터로 대체한다.
상기한 무선기기에 있어서, 제어부는 응용 프로그램 코드에 대응하는 전체 인덱스 중 제1 외부기기로부터 수신된 브로드캐스팅 통신 패킷에서 인식되지 못한 인덱스를 하나 이상 포함하는 인덱스 리스트의 통신 패킷을 무선 통신부를 통해 제1 외부 기기로 송출한다.
상기한 무선기기에 있어서, 저장부는 할당된 제1 메모리 영역에 기록된 업데이트 프로그램 코드를 더 포함하고, 응용 프로그램 코드를 로딩하여 수행하는 제어부는 무선 통신부를 통한 제1 외부 기기로부터의 응용 프로그램 업데이트 요청에 따라 업데이트 프로그램 코드를 로딩 및 수행하여 저장부의 제2 메모리 영역에 기록된 응용 프로그램 코드를 갱신한다.
상기한 무선기기에 있어서, 업데이트 프로그램 코드를 수행하는 제어부는 응용 프로그램 코드의 갱신 완료 이후에 무선 네트워크를 통해 연결된 제2 외부 기기 및 제3 외부 기기로 응용 프로그램 업데이트 요청을 전송하고 저장부의 제2 메모리 영역에 갱신된 응용 프로그램 코드로부터 구성되는 복수의 브로드캐스팅 통신 패킷을 무선 통신부를 통해 송출한다.
상기한 무선기기에 있어서, 저장부는 응용 프로그램 타입 데이터를 더 저장하고, 업데이트 프로그램 코드를 수행하는 제어부는, 응용 프로그램 코드의 갱신 완료 이후에 갱신된 응용 프로그램 코드를 로딩하여, 단일의 응용 프로그램 코드 내에서 응용 프로그램 타입 데이터에 따른 지정된 기능에 대응하는 프로그램 코드를 수행한다.
상기한 무선기기에 있어서, 무선 네트워크는 WiSUN 무선통신 기술에 따른 네트워크이다.
상기한 무선기기에 있어서, 제어부는 무선 통신부를 통해 인덱스 리스트의 인덱스에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 제1 외부 기기로부터 수신하고 인덱스에 대응하고 저장부의 지정된 영역에 저장된 응용 프로그램 코드 청크를 통신 패킷의 응용 코드 데이터로 대체하여 응용 프로그램 코드의 갱신을 완료한다.
본 발명의 일 양상에 따른 무선 네트워크를 통해 프로그램을 업데이트하는 무선시스템은 상기한 무선기기를 포함한다.
상기한 무선시스템에 있어서, 무선기기에 WiSUN 무선통신을 통해 연결되는 제1 외부 기기를 더 포함하고, 제1 외부 기기는 무선기기를 포함하는 복수의 무선기기로 응용 프로그램 업데이트 요청을 WiSUN 무선통신을 통해 전송하고 무선기기의 응용 프로그램 코드를 구성할 수 있는 복수의 브로드캐스팅 통신 패킷을 WiSUN 무선통신을 통해 전송하며, 제1 외부 기기는 복수의 브로드캐스팅 통신 패킷에 대한 단일의 응답 패킷을 무선기기로부터 수신함에 따라 응답 패킷의 인덱스 리스트에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 WiSUN 무선통신을 통해 무선기기로 재전송한다.
상기한 무선시스템에 있어서, 무선기기에 WiSUN 무선통신을 통해 연결되는 제2 외부 기기 및 제3 외부 기기를 더 포함하고, 무선기기는, 제1 외부 기기와의 무선통신에 따라 응용 프로그램 업데이트 완료 이후에, 제2 외부 기기 및 제3 외부 기기로 응용 프로그램 업데이트 요청을 WiSUN 무선통신을 통해 전송하고 제2 외부 기기 및 제3 외부 기기의 응용 프로그램 코드를 구성할 수 있고 무선기기에 갱신된 응용 프로그램으로부터 생성되는 복수의 브로드캐스팅 통신 패킷을 WiSUN 무선통신을 통해 전송하며, 제2 외부 기기 및 제3 외부 기기의 응용 프로그램 전송 완료 이후에, 무선기기는 갱신된 응용 프로그램 코드를 저장부의 응용 프로그램 코드 저장 영역 외에 설정된 응용 프로그램 타입에 따라 수행한다.
상기와 같은 본 발명에 따른 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템은 무선 네트워크를 통해 연결된 무선기기의 프로그램을 무선 네트워크를 통해 시간 효율적으로 업데이트 가능한 효과가 있다.
또한, 상기와 같은 본 발명에 따른 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템은 무선기기의 유형에 상관없이 단일 프로그램을 통해 지정된 각 유형의 기능을 수행하고 단일 프로그램을 대상으로 한 업데이트로 무선기기들의 업데이트를 단순화시킬 수 있도록 하는 효과가 있다.
또한, 상기와 같은 본 발명에 따른 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템은 단일 프로그램이 기록된 메모리를 활용하여 프로그램을 업데이트하고 후속 무선기기로 업데이트된 프로그램을 전송하여 추가적인 메모리 용량의 필요없이 프로그램 업데이트가 가능한 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 예시적인 무선시스템을 도시한 도면이다.
도 2는 무선 네트워크에 구성되는 예시적인 네트워크 토폴로지를 도시한 도면이다.
도 3은 무선기기의 예시적인 블록도를 도시한 도면이다.
도 4는 저장부의 예시적인 할당 영역 레이아웃을 도시한 도면이다.
도 5는 네트워크 토폴로지를 활용하여 응용 프로그램 코드를 갱신하는 예시적인 일련의 제어 흐름을 도시한 도면이다.
<부호의 설명>
100 : 무선기기
101 : 무선 통신부
103 : 저장부
105 : 외부 인터페이스부
107 : 제어부
200 : 게이트웨이
300 : 제어 서버
400 : 무선 네트워크
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 예시적인 무선시스템을 도시한 도면이다.
도 1의 무선시스템은 바람직하게는 무선 네트워크(400)를 통해 프로그램을 업데이트 가능한 무선시스템을 나타낸다.
도 1에 따르면 무선 시스템은 제어 서버(300), 게이트웨이(200), 하나 이상의(복수의) 무선기기(100) 및 무선 네트워크(400)를 포함한다. 도 1의 무선 시스템은 임의의 빌딩이나, 아파트 단지 등에 설치될 수 있다.
도 1을 통해 무선시스템을 간단히 살펴보면, 제어 서버(300)는 하나 이상의 무선기기(100)를 제어할 수 있는 장치이다. 제어 서버(300)는 지정된 무선기기(100)나 모든 무선기기(100)를 제어하기 위한 제어 데이터를 출력할 수 있고 무선기기(100)로부터 응답이나 각종 상태 데이터 등을 수신할 수 있다.
예를 들어, 제어 서버(300)는 모든 무선기기(100)에 저장되어 있는 응용 프로그램 코드의 업데이트 요청을 제어 데이터로 출력할 수 있다. 이 제어 데이터는 업데이트(갱신)될 응용 프로그램 코드를 포함하거나 후속하여 전달되는 제어 데이터가 이 응용 프로그램 코드를 포함할 수 있다.
또한(또는), 제어 서버(300)는 모든(각각의) 무선기기(100)로부터 각종 상태 데이터를 수신할 수 있다. 예를 들어, 제어 서버(300)는 각종 유형의 무선기기(100)로부터 소비 전력량, 에어컨 제어 상태, 가스 소비량 등의 상태 데이터를 수신하고 수신된 상태 데이터에 따라 무선기기(100)를 제어하거나 과금 등을 처리할 수 있다.
제어 서버(300)는 게이트웨이(200)를 통해 무선기기(100)로 각종 데이터를 송신하고 수신할 수 있다.
게이트웨이(200)는 무선 네트워크(400)와 제어 서버(300) 및 게이트웨이(200) 네트워크 사이의 통신 패킷을 변환하여 양 네트워크로 전송할 수 있는 장치이다. 게이트웨이(200)는 제어 서버(300)로부터 무선 네트워크(400)에 연결된 임의의 무선기기(100)나 모든 무선기기(100)를 제어하기 위한 제어 데이터를 포함하는 통신 패킷을 수신한다. 게이트웨이(200)는 수신된 통신 패킷의 페이로드 상의 제어 데이터에 따라 무선 네트워크(400) 상의 임의의 무선기기(100) 또는 모든 무선기기(100)를 대상으로 하는 통신 패킷을 생성하여 출력한다.
예를 들어, 게이트웨이(200)는 무선기기(100)에 저장되어 수행되는 응용 프로그램 코드의 업데이트 요청을 나타내는 제어 데이터를 통신 패킷으로 제어 서버(300)로부터 수신한다. 수신된 제어 데이터에 따라, 게이트웨이(200)는 무선 네트워크(400)에 연결된 모든 무선기기(100)의 응용 프로그램 코드를 업데이트 요청의 동일한 응용 프로그램 코드로 갱신한다.
또한, 게이트웨이(200)는 무선 네트워크(400)에 연결된 무선기기(100)로부터 상태 데이터를 포함하는 통신 패킷을 수신한다. 게이트웨이(200)는 수신된 상태 데이터를 포함하고 제어 서버(300) 및 게이트웨이(200) 네트워크를 위한 통신 패킷을 구성하여 제어 서버(300)로 전송한다.
무선기기(100)는 지정된 기능을 수행하고 무선 네트워크(400)에 연결되어 각종 데이터를 송수신할 수 있는 기기이다. 예를 들어, 무선기기(100)는 전기 계량기, 가스 계량기 등에 연결되어 전력 소비량이나 가스 소비량을 계측(인식)하고 계측된 소비량을 원격의 제어 서버(300)로 전송하는 기기일 수 있다. 또는 무선기기(100)는 원격의 에어컨을 제어하기 위한 소형 기기일 수 있다. 임의의 무선기기(100)는 무선 네트워크(400) 상의 데이터를 중간에서 송수신하는 리피터(Repeater) 기능을 수행할 수도 있다.
복수의 무선기기(100)들은 네트워크 토폴로지를 구성하여 무선 네트워크(400)를 통해 게이트웨이(200)와 제어 서버(300)에 연결되어 각종 데이터를 송수신할 수 있도록 구성된다. 무선 네트워크(400)상의 무선기기(100)들은 각 무선기기(100)의 기능이나 유형에 상관없이 단일 응용 프로그램 코드를 바람직하게 내장한다.
동일한 응용 프로그램 코드는 업데이트될 수 있고 바람직하게는 네트워크 토폴로지를 통해서 동일한 응용 프로그램 코드가 업데이트된다. 동일 프로그램 코드를 구성함에 따라 각 무선기기(100)의 유형에 상관없이 간단하게 응용 프로그램 코드가 업데이트될 수 있다. 이하에서 살펴볼 바와 같이 작은 메모리 용량으로 시간 효율적으로 응용 프로그램 코드의 업데이트가 가능하다.
무선 네트워크(400)는 무선통신 기술을 이용하여 무선기기(100)들이나 게이트웨이(200) 사이의 데이터를 송수신하기 위한 네트워크이다. 무선 네트워크(400)는 알려져 있는 IOT(Internet of Things) 통신기술을 적용한 네트워크로서 예를 들어 WiSUN(Wireless Smart Utility Network) 무선통신 기술, NB-IOT(NarrowBand IOT) 무선통신 기술, LoRa(Long Range) 무선통신 기술을 적용한 네트워크일 수 있다.
WiSUN 무선통신 기술, NB-IOT 무선통신 기술 및/또는 LoRa 무선통신 기술은 900MHz 대역(예를 들어 920MHz)의 캐리어 주파수를 이용하여 저전력으로 각종 데이터를 지정된 비트레이트에 따라 송수신할 수 있다.
무선 네트워크(400)는 바람직하게는 WiSUN 무선통신 기술에 따른 네트워크이고 게이트웨이(200)나 무선기기(100)들은 WiSUN 무선통신을 통해 응용 프로그램 코드 업데이트 요청이나 그 응답과 같은 제어 데이터 등을 송수신할 수 있다.
제어 서버(300) 및 게이트웨이(200) 사이의 데이터를 송수신하는 네트워크(도면 부호 미도시)는 예를 들어 근거리 무선 네트워크(예를 들어 WiFi)이거나 근거리 유선 네트워크(예를 들어 랜) 또는 그 조합으로 구성되는 네트워크(예를 들어, 빌딩 내에 구축되는 인트라넷 등)일 수 있다.
무선기기(100)와 본 발명에 따라 응용 프로그램 업데이트에 관련된 주요한 내용은 도 2 이하에서 상세히 살펴보도록 한다.
도 2는 무선 네트워크(400)에 구성되는 예시적인 네트워크 토폴로지를 도시한 도면이다.
도 2의 네트워크 토폴로지(topology)는 예를 들어 WiSUN 무선통신 기술이 적용된 무선 네트워크(400) 상에서 각종 데이터(제어 데이터)를 송수신하기 위한 무선기기(100)(와 게이트웨이(200)) 사이의 통신 연결 구조를 바람직하게 나타낸다.
도 2의 예에서 알 수 있는 바와 같이, 하나의 기기는 루트 노드로 네트워크 토폴로지 상에 설정된다. 이 기기는 무선기기(100)들 중 하나의 무선기기(100)일 수 있다. 또는 이 기기는 게이트웨이(200)일 수 있다.
루트 노드에는 적어도 두 개 이상의 노드가 자식 노드로 연결된다. 루트 노드는 수신된 통신 패킷의 데이터(예를 들어 페이로드)를 자식 노드로 전송하도록 구성된다. 예를 들어, 루트 노드는 수신된 통신 패킷의 목적지 주소(이 목적지 주소는 통신 패킷의 헤더에 포함되거나 페이로드 내에 포함될 수 있음)에 따라 후속 자식 노드를 결정하여 선택된 자식 노드로 통신 패킷을 전송한다.
수신된 통신 패킷이 브로드캐스팅(broadcasting) 통신 패킷인 경우에 루트 노드는 수신된 통신 패킷을 모든 자식 노드로 전송한다.
중간 노드(intermediate node)는 부모 노드(parent node)와 자식 노드(child node)를 가지는 노드이다. 중간 노드는 무선기기(100)일 수 있고 중간 노드는 통신 패킷의 목적지 주소에 따라 자신이 처리하거나 선택된 자식 노드로 통신 패킷을 전송한다.
수신된 통신 패킷이 브로드캐스팅(broadcasting) 통신 패킷인 경우에 중간 노드는 수신된 통신 패킷을 모든 자식 노드로 전송한다.
리프 노드는 네트워크 토폴로지 상에 자식 노드를 가지지 않는 노드이다. 리프 노드는 무선기기(100)일 수 있다.
리프 노드는 수신된 통신 패킷이 자신을 목적지로 하는 경우 해당 통신 패킷에서 페이로드를 추출하여 지정된 페이로드의 제어 데이터에 따라 처리를 수행할 수 있다.
본 발명에 따른, 루트 노드, 중간 노드 및 리프 노드는 모두 네트워크 토폴로지 상의 위치에 따라 네트워크 상에서 수행되어야 하는 노드 유형을 나타내고 각각의 노드에 대응하는 무선기기(100)는 또한 지정된 응용 기능을 수행할 수 있도록 구성된다.
예를 들어, 임의의 노드의 무선기기(100)는 전기 소비량 측정, 가스 소비량 측정, 에어컨 제어 등을 수행할 수 있다. 측정된 소비량이나 제어 응답 데이터 등은 네트워크 토폴로지의 부모 노드를 통해 제어 서버(300)로 전송된다.
본 발명에 따른 응용 프로그램 코드는 각 무선기기(100)에 적용된 노드 유형 및/또는 응용기능 유형에 상관없이 단일 코드로 구성된다. 이 응용 프로그램 코드는 바람직하게는 네트워크 토폴로지를 통한 브로드캐스팅을 통해 전달(전파)되고 네트워크 토폴로지상의 무선기기(100)가 통신 패킷과 응답 패킷의 송수신으로 갱신된다.
각 노드간 전송되는 통신 패킷들은 필요에 따라 헤더 등이 변경될 수 있다. 예를 들어 통신 패킷의 소스 주소와 목적지 주소가 노드간 링크를 표현하는 현재 노드의 주소와 하위 노드의 주소로 설정될 수 있다.
도 2의 네트워크 토폴로지는 트리 형태의 토롤로지 예를 도시하였으나 그 외 다양한 형태의 토폴로지를 가지고 해당 토폴로지 내에서 본 발명에 따른 응용 프로그램 코드의 갱신이 가능하다.
노드 간 통신 패킷의 송수신으로 순차적인 응용 프로그램 코드의 갱신 과정은 도 5를 통해 상세히 살펴보도록 한다.
도 3은 무선기기(100)의 예시적인 블록도를 도시한 도면이다.
도 3에 따르면, 무선기기(100)는 무선 통신부(101), 저장부(103), 외부 인터페이스부(105) 및 제어부(107)를 포함한다. 설계 변형에 따라 무선기기(100)는 도 3의 일부 블록을 생략할 수 있거나 도 3에 도시되지 않은 다른 블록을 더 포함할 수도 있다.
도 3의 무선기기(100)는 무선 네트워크(400)에 연결되어 각종 지정된 기능을 수행하도록 구성되고 무선기기(100)는 설정된 네트워크 토폴로지에 따라 부모 노드나 자식 노드와 각종 통신 패킷을 송수신할 수 있다.
도 3을 통해 무선기기(100)를 살펴보면, 무선 통신부(101)는 무선 네트워크(400)를 통해 통신 패킷을 송수신한다. 무선 통신부(101)는 무선 안테나, 무선 안테나에 연결된 매칭 회로 및 통신 칩셋을 구비하여 지정된 무선통신 기술에 따른 무선통신 패킷을 인식하거나 송출할 수 있다. 무선 통신부(101)는 특정 무선통신 기술에 대응하는 지정된 통신표준에 따라 무선신호를 동기화하여 무선의 통신 패킷을 송수신한다. 예를 들어, 무선 통신부(101)는 WiSUN 무선통신 기술에 따른 통신 패킷을 송수신할 수 있다.
무선 통신부(101)는 특정 무선기기(100)를 수신자로 지정한 통신 패킷이나 모든 무선기기(100)를 수신자로 지정한 브로드캐스팅(broadcasting) 통신 패킷을 수신하고 이를 제어부(107)로 전달 가능하다. 브로드캐스팅 통신 패킷은 통신 패킷의 헤더에서 인식(예를 들어 목적지 주소로 할당되지 않고 브로드캐스팅 패킷임을 설정하기 위한 주소(0xFF 등)로 설정)되거나 통신 패킷의 페이로드상의 약속된 포맷의 플래그 데이터에 설정될 수 있다. 후자의 경우에는 통신 패킷은 네트워크 토폴로지 상의 하위 노드의 주소가 패킷 헤더의 목적지 주소로 설정될 수 있다.
브로드캐스팅 통신 패킷은 모든 무선기기(100)를 대상으로 한 제어를 필요한 경우에 게이트웨이(200) 등을 통해 전송된다. 예를 들어, 게이트웨이(200)는 갱신될 응용 프로그램 코드의 일련의 코드 데이터를 브로드캐스팅 통신 패킷의 페이로드에 포함시켜 모든 무선기기(100)로 전송할 수 있다.
저장부(103)는 각종 메모리를 포함하여 데이터와 프로그램을 저장한다. 저장부(103)는 낸드 플래쉬나 노어 플래쉬 등과 같은 비휘발성 메모리를 포함하여 각종 프로그램과 데이터를 저장한다. 저장부(103)는 디램 등과 같은 휘발성 메모리를 더 포함할 수도 있다.
저장부(103)는 각종 프로그램과 데이터를 포함(저장)하는 데 무선기기(100)의 일반 통신 기능을 수행하고 지정된 응용 기능을 수행하기 위한 응용 프로그램 코드와 이 응용 프로그램 코드를 업데이트(갱신)하기 위한 업데이트 프로그램 코드 및 응용 프로그램의 유형을 나타내는 응용 프로그램 타입 데이터를 포함하는 설정 데이터를 적어도 저장부(103)의 비휘발성 메모리에 포함(저장)한다.
도 4는 저장부(103)의 예시적인 할당 영역 레이아웃을 도시한 도면이다. 도 4는 저장부(103)에 포함되는 비휘발성 메모리에 저장되는 프로그램과 데이터의 레이아웃 예를 도시하고 있다.
저장부(103)의 비휘발성 메모리는 비휘발성 메모리의 전체 메모리 영역 중 하나의 할당된(지정된) 메모리 영역(주소 A에서 주소 B 이전까지)에 업데이트 프로그램 코드를 포함(저장)한다. 또한 비휘발성 메모리는 다른 할당된 메모리 영역(주소 B에서 주소 C 이전까지)에 응용 프로그램 코드를 포함(저장)한다. 또한, 비휘발성 메모리는 또 다른 할당된 메모리 영역(주소 C부터)에 설정 데이터를 저장한다.
설정 데이터는 응용 프로그램 코드와 업데이트 프로그램 코드의 수행시에 이용될 각종 데이터를 포함한다. 예를 들어, 설정 데이터는 적어도 무선기기(100)의 응용 프로그램 타입과 노드 타입의 데이터를 포함한다.
응용 프로그램 타입은 무선기기(100)에 할당되어 있는 응용 기능의 유형을 나타낸다. 응용 프로그램 타입은 예를 들어 가스 계량기 타입, 전기 계량기 타입, 수도 계량기 타입, 에어컨 제어 타입 등 무선기기(100) 외부의 관리 대상 타입을 나타낼 수 있다. 응용 프로그램 타입에 따라 응용 프로그램 코드는 대응하는 프로그램 코드로 점프하여 대응하는 기능을 수행할 수 있도록 구성된다.
노드 타입은 무선기기(100)가 네트워크 토폴로지 내에 구성될 때, 무선기기(100)의 노드 유형을 나타낸다. 노드 타입은 예를 들어 루트 노드, 중간 노드, 및 리프 노드 등을 나타낼 수 있다.
설정 데이터는 노드 타입과 함께 부모 노드 데이터 및 하나 이상의 자식 노드 데이터를 더 포함할 수 있다. 부모 노드 데이터는 네트워크 토폴로지에 따라 무선기기(100)에 연결된 부모 노드를 나타내는 데이터로서 예를 들어 부모 노드의 주소(예를 들어 데이터링크 레이어상의 주소)를 포함하고 나아가 부모 노드와 연결된 통신 채널에 대한 정보(예를 들어 통신채널번호나 할당 주파수 등)를 더 포함할 수 있다. 자식 노드 데이터는 네트워크 토폴로지에 따라 무선기기(100)에 연결된 자식 노드를 나타내는 데이터로서 예를 들어 자식 노드의 주소를 포함하고 나아가 자식 노드와 연결된 통신채널에 대한 정보를 더 포함할 수 있다.
노드 타입과 노드 데이터에 따라 응용 프로그램 코드와 업데이트 프로그램 코드는 네트워크 토폴로지 상의 부모 노드와 자식 노드를 식별하고 해당 노드로 각종 데이터, 정보, 응답 등을 네트워크 토폴로지에 따라 송수신할 수 있다.
도 4에서 알 수 있는 바와 같이, 응용 프로그램 코드는 그 응용 프로그램 타입에 상관없이 단일한 프로그램 코드로 구성된다. 응용 프로그램 코드는 주요한 내부 기능(function) 등을 같이 활용하면서 설정 데이터의 응용 프로그램 타입에 따라 분기하여 각종 유형의 기능을 처리할 수 있도록 구성된다. 이러한 구성을 가짐으로써 응용 프로그램 타입에 따라 개별적인 응용 프로그램을 구성할 필요가 없고 서로 유사한 내부 기능을 공유하여 응용 프로그램 코드의 사이즈를 크게 늘릴 필요가 없게 한다. 또한, 단일 응용 프로그램 코드를 가짐으로써 네트워크 토폴로지를 구성하는 각각의 무선기기(100)는 동일한 응용 프로그램 코드의 갱신이 가능하여 응용 프로그램 코드의 갱신을 단순화시킬 수 있다.
업데이트 프로그램 코드는 응용 프로그램 코드에 의해서 호출될 수 있다. 업데이트 프로그램 코드는 무선기기(100)의 부팅시에 이용되는 부팅 프로그램 내에 내장될 수 있다. 업데이트 프로그램의 업데이트 완료후에 무선기기(100)는 재부팅되어 이후 갱신된 응용 프로그램 코드가 수행될 수 있다.
업데이트 프로그램 코드에서 이루어지는 구체적인 내용은 이하 제어부(107)의 설명과 도 5를 통해서 좀 더 상세히 살펴보도록 한다.
외부 인터페이스부(105)는 무선기기(100) 외부의 다른 기기와 인터페이스한다. 외부 인터페이스부(105)는 가스, 전기, 수도 계량기와 인터페이스하기 위한 수단을 구비하여 가스, 전기, 수도 계량기 등으로부터 소비 총량이나 소비 이벤트를 수신할 수 있다. 예를 들어, 외부 인터페이스부(105)는 단일 신호 라인을 통해 수신된 이벤트 신호에 따라 계량기 소비 이벤트 발생을 수신하거나 UART 등을 통해 수신된 데이터에 따라 소비 총량 등을 수신할 수 있다.
또는, 외부 인터페이스부(105)는 에어컨, TV, 모니터 등을 원격에서 제어하기 위한 송출 수단(예를 들어 리모콘 신호를 송출하는 적외선 다이오드)을 구비하여 원격의 외부 기기를 제어할 수 있다.
외부 인터페이스부(105)는 제어부(107)의 제어에 따라 제어 대상이나 모니터링 대상인 기기를 제어하거나 기기를 모니터링하거나 기기로부터 데이터를 수신할 수 있다.
제어부(107)는 무선기기(100)를 제어한다. 제어부(107)는 프로그램의 명령어 코드를 수행할 수 있는 하나 이상의 실행 유닛(Execution Unit)을 포함하여 저장부(103)에 저장된 프로그램의 명령어 코드와 설정 데이터를 이용하여 외부의 기기를 모니터링하거나 데이터를 수신할 수 있다. 또한, 제어부(107)는 무선 네트워크(400)의 네트워크 토폴로지를 통해 각종 통신 패킷을 송수신할 수 있다. 제어부(107)는 CPU, MPU, MICOM 등을 나타내거나 CPU, MPU, MICOM 등으로 지칭될 수 있다.
제어부(107)는 로딩된 프로그램 코드를 수행하여 무선기기(100)를 제어한다.
제어부(107)에서 이루어지는 주요 제어를 간단히 살펴보면, 저장부(103)의 지정된 영역에 할당되어 있는 응용 프로그램 코드를 수행하는 제어부(107)는 설정 데이터의 응용 프로그램 타입에 따라 응용 프로그램 코드에서 선택된 프로그램 코드를 수행한다.
응용 프로그램 코드의 수행에 따라 제어부(107)는 외부 인터페이스부(105)를 통해 제어나 모니터링 대상으로부터 각종 데이터를 수신하거나 각종 제어 데이터를 송출할 수 있다. 제어부(107)는 각종 데이터(예를 들어 이벤트 발생이나 총 소비량 등과 같은 상태 데이터 등)의 수신에 따라 데이터를 포함하는 통신 패킷을 구성하여 이를 다른 외부 무선기기(100)(예를 들어, 부모 노드에 대응하는 무선기기(100))를 통해 제어 서버(300)로 전송할 수 있다.
응용 프로그램 코드를 수행하는 제어부(107)는 무선 통신부(101)를 통해 통신 패킷을 수신하고 수신된 통신 패킷을 설정 데이터의 노드 타입과 부모 노드 데이터 및 자식 노드 데이터를 이용하여 자식 노드나 부모 노드의 무선기기(100)로 재전송할 수 있다.
응용 프로그램 코드를 수행하는 제어부(107)는 수신된 통신 패킷의 페이로드를 추출하여 페이로드에 포함된 제어 데이터가 응용 프로그램 업데이트 요청을 나타내는 지를 결정한다. 응용 프로그램 업데이트 요청은 페이로드의 약속된 포맷에 따라 각 제어부(107)가 인식 가능하고 응용 프로그램 업데이트 요청은 부모 노드의 무선기기(100)로부터 통신 패킷을 통해 수신된다.
응용 프로그램 업데이트 요청에 따라, 응용 프로그램 코드를 수행하던 제어부(107)는 업데이트 프로그램 코드를 수행하여 응용 프로그램 코드의 업데이트를 준비한다. 업데이트 준비 과정에서 제어부(107)는 업데이트 프로그램 코드의 전체 크기, 업데이트 프로그램 코드를 모두 받기 위한 브로드캐스팅 통신 패킷의 개수 등을 결정한다.
제어부(107)는 업데이트 프로그램 코드의 전체 크기, 업데이트 프로그램 코드를 모두 받기 위한 브로드캐스팅 통신 패킷의 개수 등을 부모 노드의 무선기기(100)로부터 동적으로 수신하거나 동적 수신 없이 미리 고정할 수 있다. 예를 들어, 응용 프로그램 코드에 할당된 메모리 영역의 크기(예를 들어 10M Byte)가 고정되고 브로드캐스팅 통신 패킷의 페이로드에 포함될 응용 프로그램 코드의 청크(chunk) 크기(예를 들어 10K Byte)가 미리 고정될 수 있다. 통신 패킷의 페이로드에 포함될 청크의 크기가 결정되면 모든 응용 프로그램 코드를 전송할 통신 패킷의 개수(예를 들어 1000개) 또한 미리 결정될 수 있다.
업데이트 프로그램 코드를 수행하는 제어부(107)는 무선 통신부(101)를 통해 수신되는 통신 패킷으로부터 추출되는 갱신용 응용 프로그램 코드로 저장부(103)의 지정된 메모리 영역에 할당되어 있는 응용 프로그램 코드를 갱신한다.
갱신 과정에서 제어부(107)는 브로드캐스팅 통신 패킷을 무선 통신부(101)를 통해 수신한다. 이 브로드캐스팅 통신 패킷은 무선 네트워크(400)를 통해 연결된 외부의 무선기기(100)나 게이트웨이(200)(이하 '제1 외부 기기'라 지칭함)로부터 수신된다. 제1 외부 기기(100,200)는 예를 들어 본 무선기기(100)의 부모 노드일 수 있다. 제1 외부 기기(100,200)는 모든 자식 노드를 수신자를 지정하는 브로드캐스팅 통신 패킷(예를 들어 헤더의 목적지 주소를 "0xFF" 등으로 설정된 통신 패킷)을 생성하여 출력할 수 있다. 제1 외부 기기(100,200)는 페이로드에 포함될 청크 크기에 따른 일련의 브로드캐스팅 통신 패킷을 생성하여 순차적으로 출력할 수 있다.
수신된 브로드캐스팅 통신 패킷 헤더의 소스 주소를 이용하여 수신된 브로드캐스팅 통신 패킷이 부모 노드(제1 외부 기기(100,200))가 아닌 경우, 제어부(107)는 브로드캐스팅 통신 패킷을 필터링(제거)한다. 이에 따라, 각각의 무선기기(100)는 부모 노드로부터의 브로드캐스팅 패킷을 이용하여 응용 프로그램 코드를 갱신 가능하다.
부모 노드로부터 수신된 브로드캐스팅 통신 패킷은 응용 프로그램 코드 중 어떠한 청크인 지를 나타내기 위한 인덱스를 포함할 수 있다. 예를 들어, 1000개의 청크로 응용 프로그램 코드가 구성되는 경우 제1 외부 기기(100,200)는 응용 프로그램 코드의 대응 위치에 따른 인덱스를 브로드캐스팅 통신 패킷의 헤더나 페이로드에 포함한다.
업데이트 프로그램 코드를 수행하는 제어부(107)는 브로드캐스팅 통신 패킷에서 인덱스를 추출하고 저장부(103)에 응용 프로그램 코드를 위해 할당된 메모리 영역에서 인덱스에 대응하는 위치의 응용 프로그램 코드 청크를 브로드캐스팅 통신 패킷에서 추출되는 응용 프로그램 코드 데이터로 대체한다. 이와 같이, 제어부(107)는 브로드캐스팅 통신 패킷에서 추출된 인덱스에 대응하고 저장부(103)의 지정된 영역에 응용 프로그램 코드의 청크를 브로드캐스팅 통신 패킷의 응용 코드 데이터로 대체한다.
업데이트 요청에 후속하여 업데이트를 수행하는 제어부(107)는 모든 인덱스에 대응하는 갱신될 응용 코드 데이터를 브로드캐스팅 통신 패킷을 통해 수신한다. 제어부(107)는 수신시 인식되는 인덱스에 따라 바로 저장부(103)에 기록된 메모리 영역의 응용 프로그램 코드를 대체 갱신한다.
업데이트 프로그램 코드가 저장된 메모리 영역(이하 '제1 메모리 영역'이라고 지칭할 수도 있음)과 응용 프로그램 코드가 저장된 메모리 영역(이하 '제2 메모리 영역'이라고 지칭할 수도 있음)은 서로 다르고 바람직하게는 미리 그 위치가 고정된다.
업데이트 프로그램 코드를 수행하는 제어부(107)는 배포 완료를 나타내는 브로드캐스팅 통신 패킷을 수신할 수 있고 미 수신된 인덱스를 결정할 수 있다. 제어부(107)는 미 수신된 인덱스를 하나 이상 포함하는 인덱스 리스트를 구성하고 이 인덱스 리스트를 페이로드에 포함하는 통신 패킷을 생성하여 무선 통신부(101)를 통해 제1 외부 기기(100,200)로 전송한다. 제어부(107)는 후속하여 인덱스에 대응하는 해당 통신 패킷을 수신하여 미 갱신된 응용 프로그램 코드를 갱신할 수 있다.
또한, 제어부(107)는 수신된 브로드캐스팅 통신 패킷에 대하여 측정된 신호세기(RSSI) 및/또는 LQI(Link Quality Indicator) 정보를 포함하는 통신 패킷을 무선 통신부(101)를 통해 제1 외부 기기(100,200)로 전송한다. 신호세기의 측정은 무선 통신부(101)를 통해 이루어지고 제어부(107)는 이를 수신할 수 있다. LQI 정보는 예를 들어 통신 에러율 등의 정보를 포함할 수 있고 신호세기 및/또는 LQI 정보는 인덱스 리스트를 포함하는 통신 패킷에 같이 전송되거나 별도의 통신 패킷에 포함되어 전송될 수 있다.
자신의 응용 프로그램 코드의 갱신이 완료됨에 따라, 제어부(107)는 설정 데이터의 자식 노드 데이터를 이용하여 자식 노드에 대응하는 무선기기(100)(이하 '제2 외부 기기', '제3 외부 기기' 등으로 지칭함)로 응용 프로그램 업데이트 요청을 포함하는 통신 패킷을 전송한다. 이후 제어부(107)는 제2 메모리 영역에 저장되어 있는 일련의 응용 프로그램 코드 청크를 제2 외부 기기(100)나 제3 외부 기기(100)로 전송할 수 있다.
제2 외부 기기(100)나 제3 외부 기기(100)로부터 인덱스 리스트를 수신한 제어부(107)는 인덱스 리스트의 인덱스에 대응하는 응용 프로그램 코드 청크를 제2 메모리 영역에서 추출하여 추출된 응용 프로그램 코드 청크와 인덱스 데이터를 페이로드에 포함하는 통신 패킷을 생성하여 제2 외부 기기(100)나 제3 외부 기기(100)로 전송 가능하다.
제어부(107)는 인덱스 리스트뿐 아니라 신호세기(RSSI) 및/또는 LQI 정보를 제2 외부 기기(100)나 제3 외부 기기(100)로부터 통신 패킷을 통해 수신한다. 제어부(107)는 수신된 신호세기 및/또는 LQI 정보에 따라 두 외부 기기(100) 중 하나의 외부 기기를 대상으로 먼저 업데이트를 완료시킬 수 있다.
예를 들어, 제2 외부 기기(100)의 신호세기 및/또는 LQI 정보가 제3 외부 기기(100)의 신호세기 및/또는 LQI 정보보다 높거나 양호(우수)한 경우에 제어부(107)는 제2 외부 기기(100)의 인덱스 리스트를 이용하여 미수신된 응용 프로그램 코드 청크를 응답 패킷(ACK 응답)을 통해 순차적으로 제2 외부 기기(100)로 전송한다.
제2 외부 기기(100)에 대한 미수신 코드 청크 전송 완료 이후에 제어부(107)는 제3 외부 기기(100)의 인덱스 리스트를 이용하여 미수신된 응용 프로그램 코드 청크를 응답 패킷(ACK 응답)을 통해 순차적으로 제3 외부 기기(100)로 전송한다.
이와 같이, 연결된 자식 노드의 통신 상태에 따라 업데이트 과정을 다른 순서로 진행함으로써 노드 계층별 병렬로 수행되는 프로그램 업데이트를 빨리 완료시킬 수 있다.
무선 네트워크(400)를 통해 자식 노드의 응용 프로그램 코드의 갱신이 완료됨에 따라 업데이트 프로그램 코드를 수행하는 제어부(107)는 재부팅 과정을 통해 갱신된 응용 프로그램 코드를 수행하여 갱신된 프로그램에 따라 지정된 기능을 수행할 수 있다.
이상에서 살펴본 바와 같이, 본 발명에 따른 무선기기(100)는 프로그램 업데이트를 위한 별도의 저장 공간을 구비하지 않고 원래 응용 프로그램 저장을 위해 할당된 동일한 저장 공간을 이용하여 프로그램 업데이트 가능하다. 또한, 무선기기(100)는 자식 노드에 대한 프로그램 업데이트도 이미 갱신된 프로그램 코드의 동일 저장 공간의 데이터를 이용하여 이루어져 별도의 메모리를 요구하지 않고 각 무선기기(100)의 타입에 상관없이 동일한 프로그램 코드의 업데이트를 통해 무선 네트워크(400)를 통한 프로그램 업데이트를 단순화시킬 수 있다.
도 5는 네트워크 토폴로지를 활용하여 응용 프로그램 코드를 갱신하는 예시적인 일련의 제어 흐름을 도시한 도면이다.
도 5의 제어 흐름은 네트워크 토폴로지 상에서 하나의 무선기기(100)에 의해서 이루어지는 제어 흐름을 나타낸다. 도 5의 제어 흐름은 바람직하게는 중간 노드의 무선기기(100)의 제어부(107)가 저장부(103)의 프로그램을 로딩 및 수행에 따라 구현된다.
먼저, 무선기기(100)(의 제어부(107))는 전원 등이나 외부 입력에 따라 구동 시작하여 응용 프로그램 코드를 수행(S101)한다. 제2 메모리 영역의 응용 프로그램 코드와 설정 데이터의 응용 프로그램 타입에 따라 지정된 기능을 무선기기(100)(의 제어부(107))가 수행한다.
한편, 무선기기(100)의 부모 노드이거나 게이트웨이(200)인 제1 외부 기기(100,200)는 WiSUN 무선통신을 통해 본 무선기기(100)에 연결된다. 제1 외부 기기(100,200)는 제어 서버(300) 등을 통한 응용 프로그램 업데이트 요청에 따라 제1 외부 기기(100,200)에 연결된 복수의 무선기기(100)(예를 들어, 자식 노드들에 대응하는 무선기기(100)들)로 프로그램 업데이트 요청(예를 들어 브로드캐스팅 통신 패킷이거나 1대1의 통신 패킷들)을 WiSUN 무선통신을 통해 전송한다.
무선기기(100)(의 제어부(107))는 프로그램 업데이트 요청을 나타내는 통신 패킷을 무선 통신부(101)를 통해 수신(S103)하고 업데이트 요청을 약속된 알고리즘 등에 따라 더 인증할 수 있다.
프로그램 업데이트 요청을 수신한 무선기기(100)(의 제어부(107))는 제1 메모리 영역에 할당되어 기록되어 있는 업데이트 프로그램 코드를 로딩(S105)하고 이후 수행하여 제2 메모리 영역의 응용 프로그램 코드를 갱신(S107 내지 S113 참조)한다.
갱신 과정을 구체적으로 살펴보면, 무선기기(100)(의 제어부(107))는 응용 프로그램 코드의 크기(예를 들어, 10M Byte)와 브로드캐스팅 통신 패킷 내에서 전송될 청크 크기(예를 들어, 10K Byte)에 따라 전체 브로드캐스팅 통신 패킷의 개수(예를 들어 1000개)를 미리 결정한다. 결정되는 전체 브로드캐스팅 통신 패킷의 개수는 프로그램 업데이트 요청을 나타내는 통신 패킷에 포함되어 수신되거나 무선기기(100)(의 제어부(107))에 의해 자동으로 결정될 수 있다.
결정된 개수에 따라 브로드캐스팅 통신 패킷에 포함된 인덱스에 따라 저장되는 메모리 영역을 무선기기(100)(의 제어부(107))가 브로드캐스팅 통신 패킷의 수신에 따라 동적으로 결정할 수 있다. 또한 무선기기(100)(의 제어부(107))는 결정된 총 개수만큼의 인덱스를 포함하는 인덱스 리스트를 신규 생성(예를 들어 0에서 999 까지의 숫자를 모두 포함하는)한다.
또한, 무선기기(100)(의 제어부(107))는 저장부(103)의 설정 데이터 등에 저장되는 신호세기 정보와 LQI 정보를 초기화한다.
이후, 무선기기(100)(의 제어부(107))는 (제1 외부 기기(100,200)로부터의) 브로드캐스팅 통신 패킷을 수신하고 수신된 브로드캐스팅 통신 패킷에서 인덱스 및 페이로드의 응용 코드 데이터를 추출한다. 무선기기(100)(의 제어부(107))는 추출된 응용 코드 데이터로 제2 메모리 영역의 대응하는 응용 프로그램 코드 청크(예를 들어 10K Byte)를 대체(S107)한다.
예를 들어, 제1 외부 기기(100,200)는 WiSUN 무선통신을 통해 응용 프로그램 코드 전체에 대응하는 복수의 브로드캐스팅 통신 패킷을 순차적으로 전송하고 무선기기(100)(의 제어부(107))는 이를 수신한다.
먼저, 무선기기(100)(의 제어부(107))는 수신된 브로드캐스팅 통신 패킷의 소스 주소를 추출하여 브로드캐스팅 통신 패킷을 필터링할 수 있다. 예를 들어, 무선기기(100)(의 제어부(107))는 수신된 브로드캐스팅 통신 패킷의 소스 주소가 부모 노드(설정 데이터의 부모 노드 데이터)가 아닌 경우 수신된 브로드캐스팅 통신 패킷을 제거하거 이후 처리를 생략한다.
무선기기(100)(의 제어부(107))는 필터링 후 남아 있는 브로드캐스팅 통신 패킷(여기서, 브로드캐스팅 통신 패킷의 타입은 통신 패킷의 헤더에 포함되거나 페이로드에 포함됨)에서 인덱스(여기서, 인덱스는 통신 패킷의 헤더에 포함되거나 페이로드에 포함됨)를 추출하고 페이로드에서 응용 코드 데이터를 추출한다.
무선기기(100)(의 제어부(107))는 추출된 인덱스에 대응하는 응용 프로그램 코드 청크 주소 영역을 식별(예를 들어, "응용 프로그램 코드 시작주소 + 청크 사이즈 * 인덱스" ~ "응용 프로그램 코드 시작주소 + (청크 사이즈 * 인덱스+1)")하고 식별된 청크 영역에 추출된 응용 코드 데이터를 기록하여 기존 응용 프로그램 코드 청크를 대체한다.
인덱스가 추출되고 응용 프로그램 코드 청크를 대체함에 따라, 무선기기(100)(의 제어부(107))는 인덱스 리스트에서 추출된 인덱스를 삭제한다.
또한, 무선기기(100)(의 제어부(107))는 수신된 브로드캐스팅 통신 패킷에 대한 신호세기를 측정하고 저장부(103)의 신호세기 정보와 LQI 정보를 갱신한다. 저장부(103)의 신호세기 정보는 수신된 각 브로드캐스팅 통신 패킷에 대한 신호세기 평균치일 수 있고 LQI 정보는 브로드캐스팅 통신 패킷들의 수신 여부나 에러 등에 따라 알려진 계산 방식을 통해 산출된다.
무선기기(100)(의 제어부(107))는 제1 외부 기기(100,200)로부터 순차적으로 송출된 각각의 브로드캐스팅 통신 패킷을 수신하고 수신된 패킷의 응용 코드 데이터와 인덱스를 이용하여 대응하는 코드 청크를 대체할 수 있다. 그에 따라, 무선기기(100)는 업데이트를 위한 별도의 메모리 영역의 할당과 이용 없이 기존 응용 프로그램 코드의 영역에 갱신되는 갱신 코드를 대체하여 구비되는 메모리 용량을 줄일 수 있다.
제1 외부 기기(100,200)는 응용 프로그램 코드에 대응하는 모든 브로드캐스팅 통신 패킷을 전송 완료함에 따라 응용 프로그램 배포 완료를 나타내는 통신 패킷을 구성하여 이를 전송한다. 무선기기(100)(의 제어부(107))는 무선 통신부(101)를 통해 이를 수신(S109)한다. 배포 완료를 나타내는 통신 패킷은 브로드캐스팅 통신 패킷이거나 1 대 1로 응답(ACK)을 요구하는 전용 통신 패킷일 수 있다.
배포 완료를 나타내는 통신 패킷을 수신한 무선기기(100)(의 제어부(107))는 복수의 브로드캐스팅 통신 패킷에서 미 인식된(수신된) 인덱스를 나타내는 인덱스 리스트를 구성하고 이 인덱스 리스트와 신호세기 및/또는 LQI 정보를 포함하며 배포 완료에 대한 응답을 나타내는 통신 패킷을 무선 통신부(101)를 통해 제1 외부 기기(100,200)로 전송(S111)한다. 신호세기 및/또는 LQI 정보는 다른 통신 패킷에 포함되어 제1 외부 기기(100, 200)로 전송될 수도 있다.
예를 들어, 무선기기(100)(의 제어부(107))는 브로드캐스팅 통신 패킷의 수신으로 추출된 인덱스가 삭제된 인덱스 리스트와 신호세기 및/또는 LQI 정보를 포함하는 응답 패킷을 제1 외부 기기(100,200)로 WiSUN 무선통신을 통해 전송한다. 이와 같이, 무선기기(100)(의 제어부(107))는 복수의 브로드캐스팅 통신 패킷에 대한 수신 여부를 나타내는 단일의 응답 패킷을 제1 외부 기기(100,200)로 송출한다.
제1 외부 기기(100,200)는 모든 자식 노드(무선기기(100))들로부터 인덱스 리스트와 신호세기 및/또는 LQI 정보를 수신하고 신호세기 및/또는 LQI 정보에 따라 순차적으로 각각의 무선기기로 미수신된 응용 코드 데이터를 전송한다.
예를 들어, 제1 외부 기기(100,200)는 각각의 무선기기(100)와의 전송 순서를 각각의 무선기기(100)의 신호세기 및/또는 LQI 정보 사이의 높음이나 양호 정도로 순서화하고 가장 높은 신호세기를 가지거나 LQI 정보가 양호한 무선기기(100)로 먼저 미수신된 응용 코드 데이터를 순차적으로 전송한다.
제1 외부 기기(100,200)는 가장 순위가 높은 무선기기(100)로부터의 응답 패킷의 인덱스 리스트를 추출하고 인덱스 리스트의 인덱스에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 구성하여 WiSUN 무선통신의 무선 네트워크(400)를 통해 무선기기(100)로 재전송한다.
가장 순위가 높은 특정 무선기기(100)(의 제어부(107))는 무선 통신부(101)를 통해 인덱스 리스트에 대응하는 일련의 통신 패킷을 수신하고 수신된 통신 패킷에서 인덱스 및 응용 코드 데이터를 추출하고 저장부(103)의 제2 메모리 영역의 미 갱신된 응용 프로그램 코드 청크를 추출된 응용 코드 데이터로 대체(S113)한다.
예를 들어, 무선기기(100)(의 제어부(107))는 각 통신 패킷을 1 대 1 무선통신을 통해 수신하고 수신된 통신 패킷의 인덱스 및 응용 코드 데이터를 추출한다. 무선기기(100)(의 제어부(107))는 추출된 인덱스에 대응하는 제2 메모리 영역의 청크 메모리 영역을 결정하고 결정된 청크 메모리 영역에 추출된 응용 코드 데이터를 기록한다. 무선기기(100)(의 제어부(107))는 이 통신 패킷에 대한 응답 패킷(ACK 패킷)을 제1 외부 기기(100,200)로 무선 통신부(101)를 통해 전송한다. 또한, 무선기기(100)(의 제어부(107))는 인덱스 리스트에서 추출된 인덱스를 삭제할 수 있다.
모든 미 수신된 인덱스가 무선기기(100)(의 제어부(107))에 구성된 인덱스 리스트에서 삭제됨에 따라, 무선기기(100)(의 제어부(107))는 자신의 응용 프로그램 코드의 갱신 완료를 결정할 수 있다.
또한, 제1 외부 기기(100,200)는 후속 순위의 무선기기(100)를 대상으로 미수신된 응용 코드 데이터를 순차적으로 동일한 과정을 통해 전송 가능하다.
이러한 업데이트 방식을 통해서, 제1 외부 기기(100,200)에 연결된 모든 무선기기(100)들은 제1 외부 기기(100,200)와의 거리나 신호세기에 따른 업데이트 영향을 줄이면서 보다더 빠른 응용 프로그램 코드의 갱신이 가능하다.
자신의 응용 프로그램 코드의 갱신이 완료됨에 따라, 무선기기(100)(의 제어부(107))는 WiSUN 무선통신을 통해 연결된 자식 노드인 제2 외부 기기(100) 및 제3 외부 기기(100)에 대한 응용 프로그램 코드를 갱신할 수 있다. 자식 노드의 응용 프로그램 코드의 갱신은 무선기기(100)(의 제어부(107))가 자신의 코드 갱신 이후에 수행될 수 있고 예를 들어, 자신의 코드 갱신 완료 후 자식 노드 프로그램 갱신 진행을 셋팅하는 설정 데이터의 기록과 재 부팅후 이 설정 데이터의 확인에 따라 이루어질 수 있다.
구체적으로, 제1 메모리 영역의 업데이트 프로그램 코드를 수행하는 무선기기(100)(의 제어부(107))는 응용 프로그램 업데이트 요청을 나타내는 통신 패킷(브로드캐스팅 또는 1 대 1의 통신 패킷)을 WiSUN 무선통신 기술 등을 이용하여 무선 네트워크(400)를 통해 연결된 제2 외부 기기(100) 및 제3 외부 기기(100)를 포함하는 자식 노드로 전송(S115)한다.
동일한 응용 프로그램 코드를 구비한 제2 외부 기기(100) 및 제3 외부 기기(100)도 제2 메모리 영역의 응용 프로그램 코드에서 제1 메모리 영역의 업데이트 프로그램 코드를 수행하여 업데이트를 준비하고 일련의 업데이트 과정을 수행한다.
무선기기(100)(의 제어부(107))는 제2 외부 기기(100) 및 제3 외부 기기(100)로 전송되고 갱신된 응용 프로그램 코드로부터 구성되는 복수의 브로드캐스팅 통신 패킷을 생성한다. 무선기기(100)(의 제어부(107))는 복수의 브로드캐스팅 통신 패킷을 WiSUN 무선통신 기술 등을 이용한 무선 네트워크(400)를 통해 전송(S117)한다.
예를 들어, 무선기기(100)(의 제어부(107))는 저장부(103)의 제2 메모리 영역의 응용 프로그램 코드를 청크 크기로 분할하고 분할된 응용 코드 데이터 및 대응하는 인덱스를 포함하는 일련의 브로드캐스팅 통신 패킷을 생성하여 순차적으로 무선 통신부(101)를 통해 무선 네트워크(400)로 송출한다.
생성된 모든 브로드캐스팅 통신 패킷을 전송완료한 무선기기(100)(의 제어부(107))는 응용 프로그램 배포 완료를 나타내는 통신 패킷을 구성하여 제2 외부 기기(100) 및 제3 외부 기기(100)로 WiSUN 무선통신 등의 무선 네트워크(400)를 통해 전송(S119)한다.
무선기기(100)(의 제어부(107))는 제2 외부 기기(100) 및 제3 외부 기기(100) 각각으로부터 미수신 인덱스를 나타내는 인덱스 리스트와 신호세기 및/또는 LQI 정보를 포함하는 통신 패킷을 수신한다. 무선기기(100)(의 제어부(107))는 수신된 신호세기 및/또는 LQI 정보에 따라 제2 외부 기기(100) 및 제3 외부 기기(100)에 대한 전송 순서를 결정한다. 무선기기(100)(의 제어부(107))는 결정된 전송 순서에 따라 순차적으로 인덱스 리스트의 인덱스에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 각각의 제2 외부 기기(100) 및 제3 외부 기기(100)로 전송(S121)한다.
예를 들어, 무선기기(100)(의 제어부(107))는 제2 외부 기기(100) 및 제3 외부 기기(100)에서의 전송 순서를 두 무선기기(100)의 신호세기 및/또는 LQI 정보 사이의 높음이나 양호 정도로 순서화하고 가장 높은 신호세기를 가지거나 LQI 정보가 양호한 외부 기기(100)로 먼저 미수신된 응용 코드 데이터를 순차적으로 전송한다.
이와 같이, 연결된 자식 노드의 통신 상태에 따라 업데이트 과정을 다른 순서로 진행함으로써 노드 계층별 병렬로 수행되는 프로그램 업데이트를 빠르게 완료할 수 있고 무선 자원을 효율적으로 사용할 수 있다.
미수신 인덱스에 대응하는 응용 코드 데이터를 포함하는 통신 패킷은 1 대 1 무선 통신을 통해 전송되고 그 수신 여부를 무선기기(100)(의 제어부(107))가 확인할 수 있다.
연결된 모든 자식 노드의 응용 프로그램 코드의 순차적인 전송과 나아가 업데이트의 완료 이후에, 무선기기(100)(의 제어부(107))는 저장부(103)의 제2 메모리 영역에 갱신된 응용 프로그램 코드를 로딩하여 이 응용 프로그램 코드를 수행(S123)한다.
예를 들어, 무선기기(100)(의 제어부(107))는 자식 노드로 제2 메모리 영역의 응용 프로그램 코드를 전송 완료한 후에 설정 데이터에 자식 노드의 프로그램 갱신 완료를 설정하고 이후 업데이트 프로그램 코드에 따라 재부팅한다. 무선기기(100)(의 제어부(107))는 재부팅에 따른 프로그램 시퀀스에 따라 응용 프로그램 코드를 수행한다.
응용 프로그램 코드를 수행하는 무선기기(100)(의 제어부(107))는 저장부(103)에 저장된 응용 프로그램 타입 데이터에 따라 대응하는 갱신된 프로그램 코드를 수행한다.
이와 같은 제어 흐름을 통해, 다수의 무선기기(100)의 응용 프로그램 코드를 단일 코드로 통합 관리할 수 있다. 또한, 네트워크 토폴로지 상의 무선기기(100)가 단일 코드로 동작함에 따라 응용 프로그램 코드의 갱신을 단순화시킬 수 있다.
또한, 응용 프로그램 코드 자체의 메모리 영역을 갱신 영역으로 활용함으로써 필요한 메모리 요구 사양을 줄일 수 있다. 특히, 네트워크 토폴로지 상의 중간 노드는 자신의 응용 프로그램 코드를 갱신한 후에 자신의 응용 프로그램 코드를 자식 노드에 갱신될 응용 프로그램 코드로 전달하여 중간 노드로서 요구되는 메모리 요구 사양을 최대한 줄일 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.

Claims (10)

  1. 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기로서,
    무선 네트워크를 통해 통신 패킷을 송수신하는 무선 통신부;
    응용 프로그램 코드를 저장하는 저장부; 및
    로딩된 프로그램 코드를 수행하는 제어부로서, 상기 저장부의 응용 프로그램 코드를 수신된 통신 패킷으로부터 추출되는 응용 프로그램 코드로 갱신하는 제어부;를 포함하고,
    상기 제어부는 무선 네트워크를 통해 연결된 제1 외부 기기로부터 수신되는 브로드캐스팅 통신 패킷의 인덱스에 대응하고 저장부의 지정된 영역에 저장된 응용 프로그램 코드의 청크를 상기 브로드캐스팅 통신 패킷의 응용 코드 데이터로 대체하는,
    무선기기.
  2. 제1항에 있어서,
    상기 제어부는 상기 응용 프로그램 코드에 대응하는 전체 인덱스 중 상기 제1 외부기기로부터 수신된 브로드캐스팅 통신 패킷에서 인식되지 못한 인덱스를 하나 이상 포함하는 인덱스 리스트의 통신 패킷을 상기 무선 통신부를 통해 상기 제1 외부 기기로 송출하는,
    무선기기.
  3. 제1항에 있어서,
    상기 저장부는 할당된 제1 메모리 영역에 기록된 업데이트 프로그램 코드를 더 포함하고,
    상기 응용 프로그램 코드를 로딩하여 수행하는 상기 제어부는 상기 무선 통신부를 통한 상기 제1 외부 기기로부터의 응용 프로그램 업데이트 요청에 따라 상기 업데이트 프로그램 코드를 로딩 및 수행하여 상기 저장부의 제2 메모리 영역에 기록된 상기 응용 프로그램 코드를 갱신하는,
    무선기기.
  4. 제3항에 있어서,
    상기 업데이트 프로그램 코드를 수행하는 상기 제어부는 응용 프로그램 코드의 갱신 완료 이후에 무선 네트워크를 통해 연결된 제2 외부 기기 및 제3 외부 기기로 응용 프로그램 업데이트 요청을 전송하고 상기 저장부의 제2 메모리 영역에 갱신된 응용 프로그램 코드로부터 구성되는 복수의 브로드캐스팅 통신 패킷을 무선 통신부를 통해 송출하는,
    무선기기.
  5. 제3항에 있어서,
    상기 저장부는 응용 프로그램 타입 데이터를 더 저장하고,
    상기 업데이트 프로그램 코드를 수행하는 상기 제어부는, 상기 응용 프로그램 코드의 갱신 완료 이후에 갱신된 응용 프로그램 코드를 로딩하여, 단일의 상기 응용 프로그램 코드 내에서 상기 응용 프로그램 타입 데이터에 따른 지정된 기능에 대응하는 프로그램 코드를 수행하는,
    무선기기.
  6. 제5항에 있어서,
    상기 무선 네트워크는 WiSUN 무선통신 기술에 따른 네트워크인,
    무선기기.
  7. 제2항에 있어서,
    상기 제어부는 상기 무선 통신부를 통해 상기 인덱스 리스트의 인덱스에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 제1 외부 기기로부터 수신하고 인덱스에 대응하고 저장부의 지정된 영역에 저장된 응용 프로그램 코드 청크를 통신 패킷의 응용 코드 데이터로 대체하여 응용 프로그램 코드의 갱신을 완료하는,
    무선기기.
  8. 무선 네트워크를 통해 프로그램을 업데이트하는 무선시스템으로서,
    제1항에 따른 무선기기;를 포함하는,
    무선시스템.
  9. 제8항에 있어서,
    상기 무선기기에 WiSUN 무선통신을 통해 연결되는 제1 외부 기기;를 더 포함하고,
    상기 제1 외부 기기는 상기 무선기기를 포함하는 복수의 무선기기로 응용 프로그램 업데이트 요청을 WiSUN 무선통신을 통해 전송하고 상기 무선기기의 응용 프로그램 코드를 구성할 수 있는 복수의 브로드캐스팅 통신 패킷을 WiSUN 무선통신을 통해 전송하며,
    상기 제1 외부 기기는 복수의 브로드캐스팅 통신 패킷에 대한 단일의 응답 패킷을 상기 무선기기로부터 수신함에 따라 상기 응답 패킷의 인덱스 리스트에 대응하는 응용 코드 데이터를 포함하는 통신 패킷을 WiSUN 무선통신을 통해 상기 무선기기로 재전송하는,
    무선시스템.
  10. 제9항에 있어서,
    상기 무선기기에 WiSUN 무선통신을 통해 연결되는 제2 외부 기기 및 제3 외부 기기;를 더 포함하고,
    상기 무선기기는, 상기 제1 외부 기기와의 무선통신에 따라 응용 프로그램 업데이트 완료 이후에, 상기 제2 외부 기기 및 상기 제3 외부 기기로 응용 프로그램 업데이트 요청을 WiSUN 무선통신을 통해 전송하고 상기 제2 외부 기기 및 상기 제3 외부 기기의 응용 프로그램 코드를 구성할 수 있고 상기 무선기기에 갱신된 응용 프로그램으로부터 생성되는 복수의 브로드캐스팅 통신 패킷을 WiSUN 무선통신을 통해 전송하며,
    상기 제2 외부 기기 및 상기 제3 외부 기기의 응용 프로그램 전송 완료 이후에, 상기 무선기기는 갱신된 응용 프로그램 코드를 저장부의 응용 프로그램 코드 저장 영역 외에 설정된 응용 프로그램 타입에 따라 수행하는,
    무선시스템.
PCT/KR2018/006266 2018-04-26 2018-06-01 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템 WO2019208870A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0048319 2018-04-26
KR1020180048319A KR101960736B1 (ko) 2018-04-26 2018-04-26 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템

Publications (1)

Publication Number Publication Date
WO2019208870A1 true WO2019208870A1 (ko) 2019-10-31

Family

ID=66036894

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/006266 WO2019208870A1 (ko) 2018-04-26 2018-06-01 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템

Country Status (2)

Country Link
KR (1) KR101960736B1 (ko)
WO (1) WO2019208870A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102062338B1 (ko) * 2019-10-10 2020-01-03 김흥중 외부 제어 인증수단을 구비한 홈 IoT 서비스 시스템
KR20230105551A (ko) * 2022-01-04 2023-07-11 엘지전자 주식회사 기능 업그레이드가 가능한 전자 기기, 및 전자 기기의 기능을 업그레이드하는 방법
KR20230105550A (ko) * 2022-01-04 2023-07-11 엘지전자 주식회사 기능 업그레이드가 가능한 전자 기기, 및 전자 기기의 기능을 업그레이드하는 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100862971B1 (ko) * 2007-07-26 2008-10-13 강릉대학교산학협력단 무선 센서 네트워크의 노드들에 대한 펌웨어 업데이트 방법
KR20100072978A (ko) * 2008-12-22 2010-07-01 주식회사 케이티 센서 네트워크에서 센서 노드 소프트웨어의 원격 관리 시스템 및 그 방법
KR101525811B1 (ko) * 2014-03-28 2015-06-09 유틸라이팅(주) 무선 센서 네트워크에서의 펌웨어 업그레이드를 위한 분산처리 시스템 및 그 방법
KR101757417B1 (ko) * 2017-04-19 2017-07-12 주식회사 주빅스 무선통신에서의 통신노드 펌웨어 업데이트 방법
KR20170121911A (ko) * 2016-04-26 2017-11-03 삼성에스디에스 주식회사 P2P를 이용한 IoT 기기의 펌웨어 업데이트 방법 및 그 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879547B1 (ko) 2007-08-29 2009-01-22 (주)케이티에프테크놀로지스 이동통신단말기의 펌웨어 업데이트 방법 및 이를 이용하는이동통신단말기

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100862971B1 (ko) * 2007-07-26 2008-10-13 강릉대학교산학협력단 무선 센서 네트워크의 노드들에 대한 펌웨어 업데이트 방법
KR20100072978A (ko) * 2008-12-22 2010-07-01 주식회사 케이티 센서 네트워크에서 센서 노드 소프트웨어의 원격 관리 시스템 및 그 방법
KR101525811B1 (ko) * 2014-03-28 2015-06-09 유틸라이팅(주) 무선 센서 네트워크에서의 펌웨어 업그레이드를 위한 분산처리 시스템 및 그 방법
KR20170121911A (ko) * 2016-04-26 2017-11-03 삼성에스디에스 주식회사 P2P를 이용한 IoT 기기의 펌웨어 업데이트 방법 및 그 장치
KR101757417B1 (ko) * 2017-04-19 2017-07-12 주식회사 주빅스 무선통신에서의 통신노드 펌웨어 업데이트 방법

Also Published As

Publication number Publication date
KR101960736B1 (ko) 2019-03-21

Similar Documents

Publication Publication Date Title
WO2019208870A1 (ko) 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템
AU2019271627B2 (en) Electronic device for performing network connection based on data transmission of application and method thereof
WO2012030190A2 (ko) 통신 시스템에서 자원 관리 시스템 및 방법
WO2019009531A1 (ko) 무선 배터리 관리 시스템 및 이를 포함하는 배터리팩
WO2017010831A1 (ko) Tvws 및 위성 백홀 기반의 백팩형 이동기지국 시스템 및 방법
WO2012148115A2 (ko) 센서 네트워크를 위한 기간망을 제어하는 장치 및 그 방법
WO2017052303A1 (ko) 무선통신 시스템에서 네트워크 허브 관리 방법 및 장치
WO2013073784A1 (ko) 다중 네트워크 기반 데이터 동시 전송 서비스를 지원하는 장치 및 방법
EP2893743A1 (en) Apparatus and method for providing cooperative communication service between macro base station and small cell base station in mobile communication system
WO2020197090A1 (en) Electronic apparatus and method for controlling thereof
EP3777227A1 (en) Remote controller and control method therefore
WO2020122402A1 (ko) 세컨더리 노드 추가를 지원하는 전자 장치 및 그 방법
WO2014112714A1 (ko) 근거리 무선 통신 접속 장치, 근거리 무선 통신 접속 장치를 발견하기 위한 휴대형 단말기 및 근거리 무선 통신 시스템
WO2021040196A1 (ko) 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법
WO2020180072A1 (ko) 엣지 컴퓨팅 환경에서 어플리케이션 재배치를 제어하기 위한 장치 및 방법
WO2019226032A1 (ko) 재구성 가능한 프레임 구조를 이용하는 분산 안테나 시스템 및 이의 동작 방법
WO2019177433A1 (ko) 디지털 온도 센서의 통신 주소 설정 장치
WO2017115984A1 (ko) 단말간 직접 통신 네트워크에서 분산적으로 스케쥴링하는 장치 및 방법
WO2014112715A1 (ko) 근거리 무선 통신을 통해 무선 패킷을 수신하는 방법, 휴대형 단말기 및 근거리 무선 통신 시스템
WO2014175679A1 (en) Method and apparatus for allocating resources for communication between base stations
WO2013133674A1 (ko) 저전력 유틸리티 모니터링 서비스를 위한 확장 dsme mac
WO2019083097A1 (ko) 기지국장치 및 데이터 패킷 전송 방법
WO2015076640A1 (ko) 호스트 및 클라이언트의 타겟 디바이스에 대한 제어방법 및 장치
WO2023095948A1 (ko) 무선 메시 네트워크에서의 펌웨어 원격 업그레이드 방법 및 장치
WO2019132454A1 (ko) 무선 통신 네트워크에서 네트워크 디바이스의 트래픽 제어 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18916165

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18916165

Country of ref document: EP

Kind code of ref document: A1