Abstract: The present disclosure relates to a system (100) for updating firmware in embedded devices. The system (100) includes a master device (110) comprising a first firmware module (101), a logical bridge interface (110), one or more physical interfaces (112) and a first control unit (114), a first device (104) is in communication with the master device (102) and comprises a second firmware module (116) and a second control unit (118),and a second device (106) comprises a third firmware module (120) and a third control unit (122), the second device (106) is in second communication with the master device (102). The first control unit (114) is in communication with the second and the third control unit (118, 122). The first control unit (114) comprises one or more processors coupled to a first memory storing instructions executable by the one or more first processors configured to update firmware in embedded devices.
Description:TECHNICAL FIELD
[0001] The present disclosure relates generally to the technical field of communication systems. In particular, it pertains to a system and method for updating firmware in embedded devices.
BACKGROUND
[0002] Simultaneous configuration update is a major issue in redundant bare-metal-based embedded systems. The dual-redundant bare-metal (non-operating system) based embedded systems include a dual embedded slave platform, connected to a master device over dedicated Ethernet. In most of the cases, the same configuration is required for all the systems/devices which are redundant. In that case, the same configuration data needs to be sent to each slave device separately in a sequential manner. However, this takes more to reflect the new configuration on the slave device side.
[0003] Patent Document CN102761558A entitled, “Ethernet communication system and communication-based on Xilinx Field Programmable Gate Arrays (FPGA) and treck” discloses an Ethernet Communication System to optimize the LwlP (Light Weight Internet Protocol). An Ethernet communication system based on FPGA and treck protocol stack of which the model number is XC5VFX130T model of the Xilinx Company is established by using the SOPC (System on Programmable Chip) Technology. The TCP (Transmission Control Protocol)/IP (Internet Protocol) five layers of models are realized by the system. When the TCP connection between the FPGA and a computer is established by the Berkeley Socket API (Application Program Interface) function in a server-client mode, the communication method based on the system comprises two communication methods that when the FPGA is used as the client, the computer is used as a server and when FPGA is used as the server, the computer is used as the client.
[0004] Patent Document CN109743410A entitled, “The system and method that no operating system embedded device and PC realize Ethernet communication” discloses a system and method of Ethernet communication of no operating system embedded device and personal computer (PC). The method for devising a kind of no operating system embedded device and PC realization Ethernet communication. This method establishes an Ethernet data link layer connection first with ARP protocol, then by sending or receiving the data realization no more than the IP/UDP format of Ethernet minimum frame length (MTU) and the data interaction between personal computers.
[0005] Other Patent Document CN111198704A entitled, “FPGA remote upgrading system based on TCP protocol”, discloses a Transmission Control Protocol (TCP) based Field Programmable Gate Array (FPGA) remote upgrading system, which comprises a client application program, a client-side module and a server-side module, wherein the client application program is used for sending an FPGA configuration file to a server-side raspberry group 3B + upper computer module. The server-side Raspberry Pi 3B+ upper computer module is used for receiving the FPGA configuration file and forwarding the FPGA configuration file to the server-side FPGA; the server-side FPGA embedded soft core Micro Blaze module is used for receiving the FPGA configuration file and writing the FPGA configuration file into the server-side flash module; the server side Flash storage module is used for storing the FPGA configuration program; the server-side FPGA reconfiguration module is used for sending an FPGA reconfiguration instruction.
[0006] However, the aforementioned documents do not disclose simultaneous configuration updates for dual redundant embedded systems which are connected to the master system via a dedicated Ethernet.
[0007] Therefore, there is a need in the art to provide a system for simultaneous configuration updates for dual redundant bare-metal-based embedded devices.
OBJECTS OF THE PRESENT DISCLOSURE
[0008] An object of the present disclosure relates, in general, to an Ethernet-based communication system, and more specifically, relates to a system and method for updating firmware in embedded devices.
[0009] Another object of the present disclosure is to provide a system that provides a master device which communicates with a plurality of devices using a single logical IP address.
[0010] Another object of the present disclosure is to provide a system that provides failsafe redundancy configuration.
[0011] Another object of the present disclosure is to provide a system that provides a single multicast IP packet to communicate with all other slave devices.
[0012] Another object of the present disclosure enable the system to function even when there are single or multiple device failures.
[0013] Another object of the present disclosure enable the system to function even when the slave device and the redundant device require the same configuration data.
[0014] Yet another object of the present disclosure provides a system that enables slave devices to be configured independently.
SUMMARY
[0015] The present disclosure relates, in general, to an Ethernet-based communication system, and more specifically, relates to a system and method for updating firmware in embedded devices. The present disclosure relates to a system for updating firmware in embedded devices. The system includes a master device comprising a first firmware module, a logical bridge interface, one or more physical interfaces and a first control unit; a first device comprises a second firmware module and a second control unit, and the first device is in communication with the master device; a second device comprises a third firmware module and a third control unit, the second device is in second communication with the master device; and a first control unit in communication with the second control unit and the third control unit.
[0016] In an embodiment, the first control unit comprises one or more first processors coupled to a first memory storing instructions executable by the one or more first processors. The one or more processors are configured to initialise, communication with the second control unit and the third control unit using the first control unit. The one or more processors are further configured to map, the physical interfaces of the master device with an Ethernet interface configured with the first device and the second device using a logical bridge interface. Furthermore, the one or more processors are configured to determine whether to accept or reject the received User Datagram Protocol (UDP) packet based on the unique identifier values by the second control unit and the third control unit. The accepted inputs on the UDP packet in an image format are received using the second control unit and the third control unit. The firmware in image format are thereafter verified for checksum error using the second control unit and the third control unit and stored for further boot upon being free of checksum error using the second memory and the third memory.
[0017] In an embodiment, the master device is configured with multicast communication, wherein the multicast communication is configured to be a UDP transport protocol.
[0018] In an embodiment, the one or more UDP packets comprises one or more payload data, wherein the one or more payload data comprises one or more unique identifier values, one or more bridge IP address, and one or more port numbers.
[0019] In an embodiment, the system comprises a first Ethernet interface configured to establish communication between the master device and the first device.
[0020] In an embodiment, the system comprises a second Ethernet interface configured to establish communication between the master device and the second device.
[0021] In an embodiment, the master device is configured to operate using the operating system (OS) and wherein the first device and the second device are configured to operate using a Non-OS platform.
[0022] In an embodiment, the logical bridge interface includes the one or more bridge IP address, one or more port numbers, wherein the logical bridge interface is configured to transmit and receive the one or more UDP messages using the physical interfaces.
[0023] In another embodiment, the method for updating firmware embedded devices, comprising: initialising, using the first control unit, communication with the second control unit and the third control unit; mapping, using a logical bridge interface, physical interfaces of the master device with an Ethernet interface configured with the first device and the second device; transmitting, using the first control unit, one or more User Datagram Protocol (UDP) packets to the first and the second devices; determining, by the second control unit and the third control unit, to accept or reject the received User Datagram Protocol (UDP) packet based on the unique identifier values; receiving, using the second control unit and the third control unit, the accepted inputs on the UDP packet in an image format; verifying, using the second control unit and third control unit, the firmware in image format for checksum error; and storing, using the second memory and the third memory, the verified firmware in image format for further boot upon being free of checksum error.
[0024] Various objects, features, aspects, and advantages of the inventive subject matter will become more apparent from the following detailed description of preferred embodiments, along with the accompanying drawing figures in which like numerals represent like components.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The following drawings form part of the present specification and are included to further illustrate aspects of the present disclosure. The disclosure may be better understood by reference to the drawings in combination with the detailed description of the specific embodiments presented herein.
[0026] FIG. 1A illustrates an exemplary representation of a system for updating firmware in an embedded system, in accordance with an embodiment of the present invention.
[0027] FIG. 1B illustrates an exemplary representation of sub-components of a system for updating firmware in an embedded system, in accordance with an embodiment of the present invention.
[0028] FIG. 2 illustrates a flow diagram depicting the proposed method for updating firmware in an embedded system.
DETAILED DESCRIPTION
[0029] The following is a detailed description of embodiments of the disclosure depicted in the accompanying drawings. The embodiments are in such detail as to clearly communicate the disclosure. If the specification states a component or feature “may”, “can”, “could”, or “might” be included or have a characteristic, that particular component or feature is not required to be included or have the characteristic.
[0030] As used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
[0031] As used in the description herein and throughout the claims that follow the term “Internet Protocol (IP) address” is a unique numerical identifier for every device or network that connects to the Internet. Typically assigned by an internet service provider (ISP), an IP address is an online device address used for communicating across the internet.
[0032] The term “UDP” refers to User Datagram Protocol, which is a communication protocol used across the internet for especially time-sensitive transmissions. It speeds up communications by not formally establishing a connection before data is transferred. The UDP uses Internet protocol (IP) to get a datagram from one computer device to another. It works by gathering data in a UDP packet and adding its own header information to the packet. This data consists of the source and destination ports on which to communicate, the packet length (in bytes) and a checksum.
[0033] As used in the description herein “Firmware” refers to a form of microcode or program embedded into hardware devices to help them operate effectively. Firmware is software that provides basic machine instructions that allow the hardware to function and communicate with other software running on a device.
[0034] The term “bare metal-based” used herein in the description and the claims that follow refers to applications that can interface directly to the system hardware and run without an operating system (OS).
[0035] The present disclosure relates to a system for updating firmware in an embedded device. The system includes a master device comprises a first firmware module, a logical bridge interface, one or more physical interfaces and a first control unit; a first device comprises a second firmware module and a second control unit, the first device is in communication with the master device; a second device comprises a third firmware module and a third control unit, the second device is in second communication with the master device; and the first control unit in communication with the second control unit and the third control unit. The present disclosure relates, in general, to a communication system and more specifically, relates to a system for updating firmware in embedded devices. The simultaneous configuration update is a major issue in redundant bare-metal (Non-OS) based embedded systems. Most of the time, the same configuration data is required for all the systems which are redundant. This issue calls for the system for simultaneously updating firmware in dual redundant based embedded devices.
[0036] The present disclosure includes a master device comprising a first firmware module, a logical bridge interface, one or more physical interfaces and a first control unit; a first device comprises a second firmware module and a second control unit, the first device is in communication with the master device; and a second device comprises a third firmware module and a third control unit, the second device is in second communication with the master device, wherein the first control unit in communication with the second control unit and the third control unit, the first control unit comprises one or more first processors coupled to a first memory storing instructions executable by the one or more first processors is configured to: initialise, communication with the second control unit and the third control unit using the first control unit; map, physical interfaces of the master device with an Ethernet interface configured with the first device and the second device using a logical bridge interface; transmit, one or more User Datagram Protocol (UDP) packets to the first and the second devices using the first control unit; determine, to accept or reject the received User Datagram Protocol (UDP) packet based on the unique identifier values by the second control unit and the third control unit; receive, the accepted inputs on the UDP packet in an image format using the second control unit and the third control unit; verify, the firmware in image format for checksum error using the second control unit and the third control unit; and store, the verified firmware in image format for further boot upon being free of checksum error using the second memory and the third memory. The present disclosure can be described in enabling detail in the following examples, which may represent more than one embodiment of the present disclosure.
[0037] FIG. 1A illustrates an exemplary representation of a system for simultaneously updating firmware in embedded devices, in accordance with an embodiment of the present disclosure.
[0038] Referring to FIG. 1A, the proposed system 100 includes a master system 102 loaded with a Linux operating system, wherein the master system 102 may include a master device 102. Further, the system further includes bare-metal based one or more slave systems 104, 106, wherein one or more slave systems include a first device 104 and a second device 106. Each of the one or more slave systems (104, 106) is having a unique identifier value. The master system 102 communicates with the one or more slave systems (104, 106) using a logical bridge interface 110. The master system 102 includes one or more physical interfaces 112 and a firmware module 108. The system is further configured with a first Ethernet interface 124 and a second Ethernet interface 126, wherein the first Ethernet interface 124 is configured to establish communication between the master system 102 and the first slave system 104, and the second Ethernet interface 126 is configured to establish communication between the master system 102 and the second slave system 106. One or more firmware modules are configured in the system 102 to enable operations of the one or more slave systems 104, 106 connected to the master system 102, wherein the one or more firmware modules include a first firmware module configured in the master device; a second and a third firmware modules configured in the respective first 104 and second device 106.
[0039] FIG. 1B illustrates an exemplary representation of sub-components of a system for updating firmware in an embedded system, in accordance with an embodiment of the present invention.
[0040] Referring to FIG. 1B, the system 100 includes a master device 102 includes a first firmware module 108, a logical bridge interface 110, one or more physical interfaces 112 and a first control unit 114; a first device 104 includes a second firmware module 116 and a second control unit 118, the first device 104 is in communication with the master device 102; and a second device 106 includes a third firmware module 120 and a third control unit 122, wherein the second device 106 is in second communication with the master device 102; and the first control unit 114 in communication with the second control unit 118 and the third control unit 122.
[0041] In an embodiment, the system 100 includes a first Ethernet interface124 configured to establish communication between the master device 102 and the first device 104; and a second Ethernet interface 126 configured to establish communication between the master device 102 and the second device 106.
[0042] In an embodiment, the first control unit 114 of the proposed system includes one or more first processors coupled to a first memory. The one or more first processor(s) can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and/or any devices that manipulate data based on operational instructions. Among other capabilities, the one or more processor(s) may be configured to fetch and execute computer-readable instructions stored in a first memory of the first control unit 114 within the master device102. The memory can store one or more computer-readable instructions or routines, which may be fetched and executed to update firmware in embedded devices. The memory can include any non-transitory storage device including, for example, volatile memory such as RAM, or non-volatile memory such as EPROM, flash memory, and the like.
[0043] In an embodiment, the one or more first processor(s) is configured to initialise communication with the second control unit 118 and the third control unit 122 using the first control unit 114. The one or more first processor (s) are further configured to map physical interfaces of the master device 102 with an Ethernet interface configured with the first device 104 and the second device 106 using the logical bridge interface 110. Further, one or more processor(s) is configured to transmit one or more UDP packets to the first 104 and the second devices 106 and to determine whether to accept or reject the received UDP packet based on the unique identifier values by the second control unit 118 and the third control unit 122. Furthermore, the one or more processor(s) is configured to receive the accepted inputs on the UDP packet in an image format using the second control unit 118 and the third control unit 122, and verify the firmware in image format for checksum error using the second control unit 118 and the third control unit 122, which is thereafter stored in image format for further boot upon being free from checksum error using the second memory and the third memory.
[0044] In an embodiment, the master device 102 is configured to operate using operating system (OS) and wherein the first device 104 and the second device 106 are configured to operate using a Non-OS platform.
[0045] In another embodiment, the operating system for the master device 102 can be selected from but not limited to Apple mac OS, Microsoft Windows, Google's Android OS, Linux Operating System, and Apple iOS.
[0046] In another embodiment, the first device 104 and second device 106 are configured with unique identifier values. The unique identifier values are stored in a second and a third memory.
[0047] In an embodiment, the master device102 is configured with multicast communication, wherein the multicast communication is configured to be a UDP (User Datagram Protocol) transport protocol.
[0048] In an embodiment, the master device 102 creates a logical bridge interface 110 and maps the one or more physical interfaces 112 with Ethernet interfaces configured with the first device 104 and the second device106.
[0049] In an embodiment, the system 100 includes a first Ethernet interface 124 configured to establish communication between the master device 102 and the first device 104.
[0050] In an embodiment, the system 100 further includes a second Ethernet interface 126 configured to establish communication between the master device 102 and the second device 106.
[0051] In an embodiment, the logical bridge interface 110 includes the one or more bridge IP address, one or more port numbers, for sending and receiving the one or more UDP messages between one or more physical interfaces 112 and the first 124 and second Ethernet interfaces 126.
[0052] In an embodiment, the master device (102) is communicating with the first 104 and the second device 106 through the one or more User Datagram Protocol (UDP) packets, wherein the one or more UDP packets contains one or more payload data that includes one or more unique identifier values of connected devices 104, 106, one or more bridge IP address, and one or more port numbers. The UDP packets are sent to the devices through the master device 102 irrespective of number of devices connected to the master device.
[0053] In an embodiment, based on the unique identifier values, the second118 and the third control unit122 decide whether to accept or reject the received UDP packets.
[0054] In an embodiment, the second control unit118 and the third control unit 122 collect the UDP payload data and make a firmware image. After checksum verification of the firmware image, the final firmware image is stored in Quad Serial Peripheral Interface (QSPI) based on a second and a third memory for further boot.
[0055] FIG. 2 illustrates an exemplary flow diagram of method 200 for simultaneously updating firmware in embedded devices, in accordance with an embodiment of the present invention.
[0056] At block 202, method 200 includes initialising, using the first control unit 114, communication with the second control unit 118 and the third control unit 122.
[0057] At block 204, method 200 can include mapping, using the logical bridge interface 110, physical interfaces of the master device 102 with an Ethernet interface 124, 126 configured with the first device 104 and the second device 106.
[0058] At block 206, method 200 can include transmitting, using the first control unit 114, one or more User Datagram Protocol (UDP) packets to the first 104 and the second devices 106.
[0059] At block 208, method 200 can further include determining, by the second control unit 118 and the third control unit 122, to accept or reject the received User Datagram Protocol (UDP) packet based on the unique identifier values.
[0060] At block 210, method 200 can include receiving, using the second control unit 118 and the third control unit 122, the accepted inputs on the UDP packet in an image format.At block 212, method 200 can also include verifying, using the second control unit 118 and third control unit 122, the firmware in image format for checksum error.
[0061] At block 214, method 200 can include storing, using the second memory and the third memory, the verified firmware in image format for further boot upon being free of checksum error.
[0062] It will be apparent to those skilled in the art that the system 100 of the disclosure may be provided using some or all of the mentioned features and components without departing from the scope of the present disclosure. While various embodiments of the present disclosure have been illustrated and described herein, it will be clear that the disclosure is not limited to these embodiments only. Numerous modifications, changes, variations, substitutions, and equivalents will be apparent to those skilled in the art, without departing from the scope of the disclosure, as described in the claims.
ADVANTAGES OF THE PRESENT DISCLOSURE
[0063] The present disclosure provides a system for simultaneously updating firmware in embedded devices.
[0064] The present disclosure provides a system that provides fail-safe redundancy configuration.
[0065] The present disclosure provides a system that provides a master device which communicates with the plurality of devices using a single logical IP address.
[0066] The present disclosure provides a system that even when there are single or multiple device failures.
[0067] The present disclosure enables the system to function even when the first device and the redundant device require the same configuration data.
[0068] The present disclosure provides a system that enables the plurality of devices to be configured independently.
, Claims:1. A system (100) for updating firmware in embedded devices, the system (100) comprising:
i. a master device (102) comprising a first firmware module (108), a logical bridge interface (110), one or more physical interfaces (112) and a first control unit (114);
ii. a first device (104) comprises a second firmware module (116) and a second control unit (118), thefirst device (104) is in communication with the master device (102); and
iii. a second device (106) comprises a third firmware module (120) and a third control unit (122), the second device (106) is in second communication with the master device (102);
wherein,
the first control unit (114) in communication with the second control unit (118) and the third control unit (122), wherein the first control unit (114) comprises one or more first processors coupled to a first memory storing instructions executable by the one or more first processors is configured to:
initialise, communication with the second control unit (118) and the third control unit (122) using the first control unit (114);
map, the one or more physical interfaces (112) of the master device (102) with an Ethernet interface (124, 126) configured with the first device (104) and the second device (106) using a logical bridge interface (110);
transmit, one or more User Datagram Protocol (UDP) packets to the first device (104) and the second devices (106) using the first control unit (114);
determine, to accept or reject the received User Datagram Protocol (UDP) packets based on unique identifier values by the second control unit (118) and the third control unit (122);
receive, the accepted inputs on the UDP packets in an image format using the second control unit (118) and the third control unit (122);
verify, the firmware in image format for checksum error using the second control unit (118) and the third control unit (122); and
store, the verified firmware in image format for further boot upon being free of checksum error using a second memory and a third memory.
2. The system (100) as claimed in claim 1, wherein the master device (102) is configured with multicast communication, wherein the multicast communication is configured to be a UDP transport protocol.
3. The system (100) as claimed in claim 1, wherein the one or more UDP packets comprises one or more payload data, wherein the one or more payload data comprises one or more unique identifier values, one or more bridge IP address, and one or more port numbers.
4. The system (100) as claimed in claim 1, wherein the system (100) comprises a first Ethernet interface (124) configured to establish communication between the master device (102) and the first device (104).
5. The system (100) as claimed in claim 1, wherein the system (100) comprises a second Ethernet interface (126) configured to establish communication between the master device (102) and the second device (106).
6. The system (100) as claimed in claim 1, wherein the master device (102) is configured to operate using operating system (OS) and wherein the first device (104) and the second device (106) are configured to operate using a Non-OS platform, wherein the Non-OS platform is bare-metal based platform.
7. The system (100) as claimed in claim 1, wherein the logical bridge interface (110) comprises the one or more bridge IP address, one or more port numbers, wherein the logical bridge interface (110) is configured to transmit and receive one or more UDP messages using the one or more physical interfaces (112).
8. The system (100) as claimed in claim 1, wherein the master device (102) is configured to transmit the one or more UDP packets to one or more third devices.
9. A method (200) for updating firmware in embedded devices, comprising:
i. initialising (202), using the first control unit (104), communication with the second control unit and the third control unit;
ii. mapping (204), using the logical bridge interface (110), physical interfaces of the master device with an Ethernet interface configured with the first device and the second device;
iii. transmitting (206), using the first control unit (114), one or more User Datagram Protocol (UDP) packets to the first and the second devices;
iv. determining (208), by the second control unit (118) and the third control unit (122), to accept or reject the received User Datagram Protocol (UDP) packet based on the unique identifier values;
v. receiving (210), using the second control unit (118) and the third control unit (122), the accepted inputs on the UDP packet in an image format;
vi. verifying (212), using the second control unit (118) and third control unit (122), the firmware in image format for checksum error; and
vii. storing (214), using the second memory and the third memory, the verified firmware in image format for further boot upon being free of checksum error.
| # | Name | Date |
|---|---|---|
| 1 | 202341081593-STATEMENT OF UNDERTAKING (FORM 3) [30-11-2023(online)].pdf | 2023-11-30 |
| 2 | 202341081593-POWER OF AUTHORITY [30-11-2023(online)].pdf | 2023-11-30 |
| 3 | 202341081593-FORM 1 [30-11-2023(online)].pdf | 2023-11-30 |
| 4 | 202341081593-DRAWINGS [30-11-2023(online)].pdf | 2023-11-30 |
| 5 | 202341081593-DECLARATION OF INVENTORSHIP (FORM 5) [30-11-2023(online)].pdf | 2023-11-30 |
| 6 | 202341081593-COMPLETE SPECIFICATION [30-11-2023(online)].pdf | 2023-11-30 |
| 7 | 202341081593-Proof of Right [27-04-2024(online)].pdf | 2024-04-27 |
| 8 | 202341081593-RELEVANT DOCUMENTS [04-10-2024(online)].pdf | 2024-10-04 |
| 9 | 202341081593-POA [04-10-2024(online)].pdf | 2024-10-04 |
| 10 | 202341081593-FORM 13 [04-10-2024(online)].pdf | 2024-10-04 |
| 11 | 202341081593-Response to office action [01-11-2024(online)].pdf | 2024-11-01 |