Control device, firmware update method, and firmware update program

The control device and method enhance firmware update speed in small-scale microcontrollers by using a dual-channel approach with modification area information to identify and transfer only changed firmware areas, addressing inefficiencies in existing update methods and reducing system downtime.

WO2026150699A1PCT designated stage Publication Date: 2026-07-16PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
Filing Date
2025-12-02
Publication Date
2026-07-16

AI Technical Summary

Technical Problem

Existing firmware update methods for small-scale microcontrollers are inefficient, particularly due to slow transmission speeds of the second communication channel, which limits the update speed in systems like power storage systems and solar power generation systems.

Method used

A control device and method that utilizes a first communication channel for receiving firmware from a distribution server and a second communication channel with slower speed for transmitting updates, where the firmware includes modification area information, allowing pinpoint identification and transfer of only changed areas, reducing data transfer and update time.

Benefits of technology

Significantly improves firmware update speed in small-scale microcontrollers by minimizing data transfer over slower channels, ensuring efficient updates in systems where parallel updates are not possible, thereby reducing overall system downtime.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025041938_16072026_PF_FP_ABST
    Figure JP2025041938_16072026_PF_FP_ABST
Patent Text Reader

Abstract

A control unit 21 of a control device 20 acquires version information of firmware currently used by a microcontroller 14, references change area information added to the newest version of firmware on the basis of the version information of the firmware currently used by the microcontroller, identifies areas in which there is a change between the newest version of firmware and the firmware currently used by the microcontroller 14, and transmits, to the microcontroller 14 via a second communication channel 50 having a slower transmission speed than a first communication channel 40, update data for the areas in which there is a change in the newest version of firmware.
Need to check novelty before this filing date? Find Prior Art

Description

Control Device, Firmware Update Method, and Firmware Update Program

[0001] The present disclosure relates to a control device, a firmware update method, and a firmware update program for updating the firmware of a microcontroller.

[0002] In recent years, the demand for data centers has been expanding due to the spread of generative AI. In a data center, ensuring power supply is important, and a power storage system using a storage battery is installed to ensure power supply for the time until an emergency generator starts up during a power outage. A DC / DC converter is used to charge and discharge the storage battery, and the DC / DC converter is controlled by a microcontroller. The microcontroller is equipped with a firmware update function, and functions are added and software defects are improved through firmware updates.

[0003] Patent Document 1 discloses a method of defining generation versions assigned to each firmware for firmware composed of a plurality of modules, comparing the generation versions of the firmware to be updated and the firmware before the update, and performing an update only on the module with a lower generation version. This method only slightly improves the update speed in the case of firmware updates in a system composed of small-scale microcontrollers because it is a differential comparison on a module-by-module basis.

[0004] Japanese Patent Application Laid-Open No. 2019-204152

[0005] The present disclosure has been made in view of such circumstances, and an object thereof is to provide a technique for significantly improving the firmware update speed implemented in a small-scale microcontroller.

[0006] To solve the above problems, a control device according to one aspect of the present disclosure includes: a first communication unit that receives firmware for a microcontroller from a distribution server via a first communication channel; a storage unit that stores the firmware received from the distribution server; a second communication unit that transmits the firmware to the microcontroller via a second communication channel having a slower transmission speed than the first communication channel; and a control unit that manages firmware updates. The latest version of the firmware received from the distribution server has modification area information attached to it that describes whether or not there have been changes from previous versions in units of the access size to the memory used by the microcontroller. The control unit obtains version information of the firmware currently used by the microcontroller, and based on the version information of the firmware currently used by the microcontroller, refers to the modification area information to identify areas that have been changed between the latest version of the firmware stored in the storage unit and the firmware currently used by the microcontroller, and transmits update data for the modified areas of the latest version of the firmware to the microcontroller via the second communication channel.

[0007] Furthermore, any combination of the above components, as well as any conversion of the expressions of this disclosure between devices, systems, methods, computer programs, etc., are also valid forms of this disclosure.

[0008] According to this disclosure, the firmware update speed implemented in small microcontrollers can be significantly improved.

[0009] This is a diagram illustrating an example configuration of an energy storage system. This diagram shows in detail the configuration of the microcontroller and control device in Figure 1. This diagram schematically shows the difference between the firmware update in the comparative example and the firmware update in the embodiment. This diagram shows an image of the firmware source code created by the distribution server. This diagram illustrates the procedure for updating the firmware of a microcontroller according to the embodiment using a specific example. This diagram illustrates the procedure for updating the firmware of a microcontroller (with version verification) according to the embodiment using a specific example. This is a flowchart illustrating the procedure for updating the firmware of a microcontroller according to the embodiment.

[0010] Figure 1 is a diagram illustrating an example configuration of the energy storage system 1. The energy storage system 1 is used as a backup power supply system for a data center. Load 3 is a collective term for the numerous servers and storage devices installed in the data center. Load 3 is connected to the DC bus 2. In this embodiment, a 48V DC bus 2 is assumed. The DC bus 2 is connected to an AC / DC converter 5 connected to the commercial power grid 4, an emergency generator 6, and the energy storage system 1.

[0011] The AC / DC converter 5 converts the AC power supplied from the commercial power grid 4 into DC power while stepping it down, and outputs it to the DC bus 2. For example, it converts the 200-240V AC voltage supplied from the commercial power grid 4 into 48V DC power.

[0012] The emergency generator 6 is a generator that supplies power to the load 3 in the event of a power outage in the commercial power grid 4, and can be a diesel generator or a gas turbine generator, for example. It takes several tens of seconds to several minutes from the time a power outage in the commercial power grid 4 is detected until the emergency generator 6 starts up. The energy storage system 1 can continue to supply backup power to the load 3 during that time.

[0013] The energy storage system 1 includes a plurality of energy storage devices 10a-10c connected in parallel to the DC bus 2. Figure 1 shows an example of three parallel connections, but the number of parallel connections is arbitrary and may be two or more. Each energy storage device 10 is, for example, a BBU (Battery Backup Unit).

[0014] The energy storage device 10 comprises a battery 11, a DC / DC converter 12 for discharging, a DC / DC converter 13 for charging, and a microcontroller 14. The DC / DC converter 12 for discharging and the DC / DC converter 13 for charging are connected between the battery 11 and the DC bus 2.

[0015] The storage battery 11 is composed of a battery pack containing multiple cells E1-En connected in series. The cells can be lithium-ion battery cells, nickel-metal hydride battery cells, lead-acid battery cells, etc. Hereinafter, this specification assumes the use of lithium-ion battery cells (nominal voltage: 3.6-3.7V). In addition, multiple cells may be connected in parallel in the series stage of each cell to increase capacity.

[0016] The discharge DC / DC converter 12 may be configured by connecting multiple DC / DC converters in parallel. In this case, the number of parallel connections is determined according to the output power required by each energy storage device 10 during a power outage. Alternatively, a single discharge DC / DC converter with high current withstand capability may be used. The charging DC / DC converter 13 does not need to have high current withstand capability, as it only needs to charge the battery 11 at a low rate from the commercial power grid 4.

[0017] Switching-type DC / DC converters are used for the discharge DC / DC converter 12 and the charge DC / DC converter 13. They may be isolated or non-isolated. The microcontroller 14 controls the discharge DC / DC converter 12 and the charge DC / DC converter 13.

[0018] Each microcontroller 14a-14c of the multiple energy storage devices 10a-10c is connected to the control device 20 via a second communication channel 50. In this embodiment, it is assumed that a general-purpose information terminal (e.g., a PC) is used as the control device 20. However, the control device 20 may be a dedicated controller for the energy storage system 1.

[0019] The control device 20 is connected to the distribution server 30 via the first communication channel 40. The distribution server 30 is a server that distributes firmware for the microcontroller 14 in the energy storage device 10, and also functions as a build machine for firmware source code. The first communication channel 40 is formed by a combination of the internet (which may be a dedicated line) and a LAN, and TCP (Transmission Control Protocol) / IP (Internet Protocol) and Ethernet (registered trademark) are used as communication protocols.

[0020] The second communication channel 50 is a serial communication standard communication channel with a slower transmission speed than the first communication channel 40, and in this embodiment, it is assumed that CAN (Controller Area Network) will be used. RS-485 or Modbus may be used instead of CAN. The maximum transmission speed of CAN Classic is 1 Mbps, the maximum transmission speed of CAN FD (Flexible Data-rate) is 5 Mbps, and the maximum transmission speed of RS-485 is 10 Mbps.

[0021] In contrast, Ethernet standards such as 100BASE-TX (maximum transmission speed: 100 Mbps) and 1000BASE-T (maximum transmission speed: 1 Gbps) are the mainstream. When CAN Classic is used for the second communication channel 50, the transmission speed of the second communication channel 50 becomes significantly slower than the transmission speed of the first communication channel 40. Few small microcontrollers 14 support Ethernet, and those that do are expensive. Therefore, CAN or RS-485 are often used as communication interfaces for small microcontrollers 14 used in energy storage systems 1 and the like.

[0022] Figure 2 is a diagram showing in detail the configuration of the microcontroller 14 and control device 20 shown in Figure 1. The microcontroller 14 includes a processing unit 141, a flash memory 142, and a communication unit 143. The processing unit 141 is composed of a CPU and executes a firmware program to perform predetermined processing. The flash memory 142 is a NAND or NOR type non-volatile memory and stores the firmware program and data. The communication unit 143 is a communication module for performing serial communication using a second communication channel 50.

[0023] The control device 20 includes a control unit 21, a storage unit 22, a first communication unit 23, and a second communication unit 24. The functions of the control unit 21 can be realized through the cooperation of hardware resources and software resources, or solely through hardware resources. Hardware resources that can be used include a CPU, ROM, RAM, GPU (Graphics Processing Unit), NPU (Neural Network Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), and other LSIs. Software resources that can be used include operating systems and applications.

[0024] The storage unit 22 includes a non-volatile recording medium such as an HDD or SSD, and stores various programs and data. The first communication unit 23 is a communication module for performing packet communication using the first communication channel 40. Specifically, the first communication unit 23 is connected to a router device (not shown) via a LAN, and is connected to the Internet via the router device. The second communication unit 24 is a communication module for performing serial communication using the second communication channel 50.

[0025] In this embodiment, the first communication unit 23 receives firmware for the microcontroller 14 from the distribution server 30 via the first communication channel 40. The firmware received from the distribution server 30 is stored in the storage unit 22. The second communication unit 24 transmits the firmware stored in the storage unit 22 to the microcontroller 14 via the second communication channel 50 at a predetermined timing.

[0026] When updating the firmware of the microcontroller 14 via communication, the transmission speed of the second communication channel 50 becomes a bottleneck in the firmware update. When performing a firmware update of the microcontroller 14, the entire firmware is usually written to the flash memory 142, but often only a small portion actually needs updating.

[0027] Therefore, in this embodiment, by comparing the old version of the firmware with the latest version of the firmware in page units, which is the minimum access size of the NAND flash memory, the pages that have changed between versions are identified, and only the data of the changed pages is communicated with pinpoint accuracy, thereby reducing the amount of data transferred to the second communication channel 50, which is a bottleneck.

[0028] If the storage unit 22 of the control device 20 were to continuously store all possible versions of the firmware written to the microcontroller 14, it would strain the capacity of the storage unit 22. To address this, in this embodiment, instead of the control device 20 storing the differences between firmware versions, the distribution server 30 calculates the differences between firmware versions and includes the difference information in the firmware. This allows firmware updates to be performed with only a single binary file at the firmware distribution stage.

[0029] The differential information embedded in the binary file includes change area information for the past N (where N is a natural number) updates. The change area information is page-by-page change history information, and the control device 20 checks how many generations ago the firmware currently used by the microcontroller 14 (hereinafter referred to as the microcontroller firmware) is, and updates the pages that have changed from the previous version.

[0030] Figure 3 schematically illustrates the difference between a firmware update according to the comparative example and a firmware update according to the embodiment. In the firmware update according to the embodiment, only the pages that have been changed from the previous version of the firmware are rewritten, so the amount of data transferred from the control device 20 to the microcontroller 14 can be significantly reduced.

[0031] Figure 4 shows an image of the firmware source code created by the distribution server 30. The latest version of the firmware includes change area information that describes whether there have been changes from previous versions, in units of access size to the flash memory 142 used by the microcontroller 14. In this embodiment, the change area information is defined in a change area management table that describes whether there have been changes from N (where N is a natural number) versions ago, in units of pages of the flash memory 142 used by the microcontroller 14. The change area management table shown in Figure 4 describes whether there have been changes in units of pages up to four generations ago. "1" is defined as a change, and "0" is defined as no change. The change area management table is added to the bottom of the firmware source code.

[0032] Figure 5 is a diagram illustrating the procedure for updating the firmware of the microcontroller 14 according to an embodiment, using a specific example. The control unit 21 of the control device 20 receives version information of the microcontroller's firmware from the microcontroller 14 via the second communication channel 50. If the control device 20 stores the microcontroller's firmware version information as version management information in the storage unit 22, the control unit 21 obtains the microcontroller's firmware version information from the storage unit 22.

[0033] The control unit 21 refers to the change area information attached to the latest version of the firmware stored in the storage unit 22, based on the version information of the microcontroller's firmware. The control unit 21 identifies the pages that have been changed between the latest version of the firmware and the microcontroller's firmware.

[0034] In the example shown in Figure 5, the microcontroller firmware is two generations old, and the control unit 21 calculates the logical OR of the change area management table from the update two generations ago and the change area management table from the update one generation ago. In the example shown in Figure 5, at least 1 page, 2 pages, and (N-1) pages are pages that have been changed.

[0035] The control unit 21 transmits only the update data for pages with changes from the latest version of the firmware to the microcontroller 14 via the second communication channel 50. The processing unit 141 of the microcontroller 14 partially updates the firmware of the pages with changes based on the update data for the pages with changes received from the control device 20.

[0036] As mentioned above, if you update with firmware update data that does not match the version, errors may occur or the device may become unstable.

[0037] Figure 6 is a diagram illustrating a specific example of the firmware update procedure (with version verification) for the microcontroller 14 according to an embodiment. The control unit 21 of the control device 20 receives from the microcontroller 14 via the second communication channel 50 the firmware size and the CRC (Cyclic Redundancy Check) calculated from the firmware, along with the version information of the microcontroller's firmware. If the control device 20 stores the firmware size and CRC along with the microcontroller's firmware version information as version management information in the storage unit 22, the control unit 21 obtains the microcontroller's firmware size and CRC from the storage unit 22.

[0038] The latest version of the firmware created by the distribution server 30 includes the size and CRC of each version of the firmware up to N (where N is a natural number). In the example shown in Figure 6, the size and CRC of each version of the firmware are added to the change area management table for each generation.

[0039] The control unit 21 compares the size and CRC of the microcontroller's firmware with the size and CRC of the firmware corresponding to the version of the microcontroller's firmware that is attached to the latest firmware. If the two match, the control unit 21 sends only the update data for the pages that have been changed as described above to the microcontroller 14. If the two do not match, it sends the entire latest version of the firmware to the microcontroller 14.

[0040] Note that CRC is just one example of an error detection code; parity bits, Hamming codes, checksums, etc., may be used instead of CRC.

[0041] Incidentally, simply, the control unit 21 may compare only the size of the firmware for use with the microcontroller and the size of the firmware corresponding to the version of the firmware for use with the microcontroller added to the latest firmware. When both match, the control unit 21 transmits only the update data of the page with changes to the microcontroller 14, and when both do not match, the control unit 21 transmits the entire latest version of the firmware to the microcontroller 14.

[0042] Incidentally, simply, the control unit 21 may compare only the error detection code of the firmware for use with the microcontroller and the error detection code corresponding to the version of the firmware for use with the microcontroller added to the latest firmware. When both match, the control unit 21 transmits only the update data of the page with changes to the microcontroller 14, and when both do not match, the control unit 21 transmits the entire latest version of the firmware to the microcontroller 14.

[0043] FIG. 7 is a flowchart showing the procedure for firmware update of the microcontroller 14 according to the embodiment. The first communication unit 23 of the control device 20 receives the firmware for the microcontroller 14 from the distribution server 30 via the first communication path 40 and passes it to the control unit 21 (S10). The control unit 21 stores the latest version of the firmware received by the first communication unit 23 in the storage unit 22 (S11).

[0044] The control unit 21 inquires the microcontroller 14 about the version information of the firmware for use with the microcontroller, and receives the version information, size, and CRC of the firmware for use with the microcontroller from the microcontroller 14 (S12). The control unit 21 specifies the size and CRC of the firmware corresponding to the version of the firmware for use with the microcontroller added to the latest firmware (S13).

[0045] The control unit 21 verifies whether the size and CRC of the microcontroller usage firmware match the size and CRC of the firmware corresponding to the version of the microcontroller usage firmware added to the latest firmware (S14). If they match (Y in S14), the control unit 21 refers to the change area information added to the latest firmware and identifies the area where changes exist from the version of the microcontroller usage firmware to the latest version (S15). The control unit 21 transmits the update data for the area with changes to the microcontroller 14 (S16). In step S14, if the size and CRC of the firmware do not match (N in S14), the control unit 21 transmits the entire firmware of the latest version to the microcontroller 14 (S17).

[0046] As described above, according to this embodiment, the firmware update speed implemented in a small-scale microcontroller can be significantly improved. For example, when CAN Classic is used for the second communication path 50, it sometimes takes 4 to 5 minutes to transfer the entire firmware data from the control device 20 to the microcontroller 14. In this embodiment, by transferring only the update data for the pages with changes, the data transfer time from the control device 20 to the microcontroller 14 can be significantly shortened.

[0047] In a power storage system 1 where many small power storage devices 10 such as the backup power supply system of the data center described above are used, and in a system where parallel updates are not possible to prevent the entire system from stopping, shortening the update time of one power storage device 10 greatly contributes to shortening the update time of the entire system.

[0048] The above is the description of the present disclosure based on the embodiments. The embodiments are examples, and it is understood by those skilled in the art that various modifications are possible for each component and the combination of each processing process, and such modifications are also within the scope of the present disclosure.

[0049] In the embodiment described above, an example was explained in which the firmware change history is managed in page units (e.g., 2kB), which is the minimum access size unit for NAND flash memory. In this regard, for systems with large firmware sizes, a certain improvement in update speed can be obtained even if the firmware change history is managed in block units (e.g., 128kB to 512kB).

[0050] The above-described embodiment assumes a firmware update for a microcontroller 14 mounted on a power storage device 10. In this regard, the firmware update method according to this disclosure can also be applied to firmware updates for microcontrollers 14 mounted on power conditioners in solar power generation systems. In solar power generation systems, the control device connected to an external network and the power conditioner are often connected via an RS-485 serial communication line, and the firmware update method according to this disclosure is effective in such cases.

[0051] The embodiments may be specified by the following items.

[0052] [Item 1] The system includes: a first communication unit (23) that receives firmware for a microcontroller (14) from a distribution server (30) via a first communication channel (40); a storage unit (22) that stores the firmware received from the distribution server (30); a second communication unit (24) that transmits the firmware to the microcontroller (14) via a second communication channel (50) which has a slower transmission speed than the first communication channel (40); and a control unit (21) that manages firmware updates. The latest version of the firmware received from the distribution server (30) has change area information added to it that describes whether there have been changes from previous versions in units of access size to the memory (142) used by the microcontroller (14); and the control unit (21) obtains the version information of the firmware currently used by the microcontroller (14). A control device (20) characterized in that, based on the version information of the firmware currently used by the microcontroller (14), it refers to the modified area information to identify areas that have been changed between the latest version of the firmware stored in the storage unit (22) and the firmware currently used by the microcontroller (14), and transmits update data for the modified areas of the latest version of the firmware to the microcontroller (14) via the second communication channel (50). This significantly improves the update speed of the firmware implemented in the microcontroller (14). [Item 2] The control device (20) according to Item 1, characterized in that the modified area information is defined in a table that describes whether or not there have been changes from N (N is a natural number) versions ago, on a page-by-page basis of the flash memory (142) used by the microcontroller (14). This minimizes the amount of data transferred from the control device (20) to the microcontroller (14) by identifying the areas to which update data is to be transmitted on a page-by-page basis of the flash memory (142).[Item 3] The latest version of the firmware received from the distribution server (30) has at least one of the size or error detection code of each version of the firmware up to N (where N is a natural number) versions attached to it, and the control unit (21) obtains at least one of the size or error detection code of the firmware currently used by the microcontroller (14), compares at least one of the size or error detection code of the firmware currently used by the microcontroller (14) with at least one of the size or error detection code of the firmware attached to the latest version of the firmware that corresponds to the version of the firmware currently used by the microcontroller (14), and if at least one of the two does not match, transmits the entire latest version of the firmware to the microcontroller (14), characterized in that the control device (20) according to Item 1. This prevents errors and unstable operation caused by version mismatch updates. [Item 4] The control device (20) according to Item 1, characterized in that the microcontroller (14) is a microcontroller (14) that controls a DC / DC converter (12 / 13) for charging and discharging a storage battery. According to this, the firmware update speed implemented in the microcontroller (14) that controls the DC / DC converter (12 / 13) can be significantly improved.[Item 5] A firmware update method comprising: receiving firmware for a microcontroller (14) from a distribution server (30) via a first communication channel (40); storing the firmware received from the distribution server (30); the latest version of the firmware received from the distribution server (30) is accompanied by change area information that describes whether or not there have been changes from previous versions in units of access size to the memory (142) used by the microcontroller (14); and further comprising: obtaining version information of the firmware currently used by the microcontroller (14); referring to the change area information based on the version information of the firmware currently used by the microcontroller (14) to identify areas that have been changed between the latest version of the firmware and the firmware currently used by the microcontroller (14); and transmitting update data for the changed areas of the latest version of the firmware to the microcontroller (14) via a second communication channel (50) which has a slower transmission speed than the first communication channel (40). According to this, the update speed of the firmware implemented in the microcontroller (14) can be significantly improved.[Item 6] A firmware update program characterized by causing a computer to perform the following steps: receiving firmware for a microcontroller (14) from a distribution server (30) via a first communication channel (40); storing the firmware received from the distribution server (30); the latest version of the firmware received from the distribution server (30) has modified area information added to it that describes whether or not there are changes from previous versions in units of access size to the memory (142) used by the microcontroller (14); and further causing a computer to perform the following steps: obtaining version information of the firmware currently used by the microcontroller (14); identifying areas that have been changed between the latest version of the firmware and the firmware currently used by the microcontroller (14) by referring to the modified area information based on the version information of the firmware currently used by the microcontroller (14); and transmitting update data for the modified areas of the latest version of the firmware to the microcontroller (14) via a second communication channel (50) which has a slower transmission speed than the first communication channel (40). According to this, the update speed of the firmware implemented in the microcontroller (14) can be significantly improved.

[0053] This disclosure can be used for updating the firmware of a microcontroller.

[0054] 1 Energy storage system, 2 DC bus, 3 Load, 4 Commercial power grid, 5 AC / DC converter, 10 Energy storage device, 11 Battery, 12 DC / DC converter for discharge, 13 DC / DC converter for charge, 14 Microcontroller, 141 Processing unit, 142 Flash memory, 143 Communication unit, 20 Control unit, 21 Control unit, 22 Memory unit, 23 First communication unit, 24 Second communication unit, 30 Distribution server, 40 First communication channel, 50 Second communication channel.

Claims

1. A control device comprising: a first communication unit that receives firmware for a microcontroller from a distribution server via a first communication channel; a storage unit that stores the firmware received from the distribution server; a second communication unit that transmits the firmware to the microcontroller via a second communication channel having a slower transmission speed than the first communication channel; and a control unit that manages firmware updates, wherein the latest version of the firmware received from the distribution server has modification area information added to it that describes whether or not there are changes from previous versions in units of the access size to the memory used by the microcontroller; the control unit acquires version information of the firmware currently used by the microcontroller; based on the version information of the firmware currently used by the microcontroller, it refers to the modification area information to identify areas that have been changed between the latest version of the firmware stored in the storage unit and the firmware currently used by the microcontroller; and it transmits update data for the modified areas of the latest version of the firmware to the microcontroller via the second communication channel.

2. The control device according to claim 1, characterized in that the change area information is defined in a table that describes whether or not changes have been made from N (where N is a natural number) versions prior, on a page-by-page basis in the flash memory used by the microcontroller.

3. The control device according to claim 1, wherein the latest version of the firmware received from the distribution server has at least one of the size or error detection code of each version of the firmware up to N (where N is a natural number) versions attached to it, and the control unit obtains at least one of the size or error detection code of the firmware currently used by the microcontroller, compares at least one of the size or error detection code of the firmware currently used by the microcontroller with at least one of the size or error detection code of the firmware attached to the latest version of the firmware that corresponds to the version of the firmware currently used by the microcontroller, and if at least one of the two does not match, transmits the entire latest version of the firmware to the microcontroller.

4. The control device according to claim 1, characterized in that the microcontroller is a microcontroller for controlling a DC / DC converter for charging and discharging a storage battery.

5. A firmware update method comprising: receiving firmware for a microcontroller from a distribution server via a first communication channel; storing the firmware received from the distribution server, wherein the latest version of the firmware received from the distribution server has modification area information added to it that describes whether or not there have been changes from previous versions in units of the access size to the memory used by the microcontroller, and further comprising: obtaining version information of the firmware currently used by the microcontroller; referring to the modification area information based on the version information of the firmware currently used by the microcontroller to identify areas that have been changed between the latest version of the firmware and the firmware currently used by the microcontroller; and transmitting update data for the modified areas of the latest version of the firmware to the microcontroller via a second communication channel with a slower transmission speed than the first communication channel.

6. A firmware update program characterized by causing a computer to perform the following steps: receiving firmware for a microcontroller from a distribution server via a first communication channel; storing the firmware received from the distribution server; the latest version of the firmware received from the distribution server having change area information attached to it that describes whether or not there are changes from previous versions in units of the access size to the memory used by the microcontroller; and further causing a computer to perform the following steps: obtaining version information of the firmware currently used by the microcontroller; using the version information of the firmware currently used by the microcontroller and referring to the change area information, identifying areas that have been changed between the latest version of the firmware and the firmware currently used by the microcontroller; and transmitting update data for the changed areas of the latest version of the firmware to the microcontroller via a second communication channel with a slower transmission speed than the first communication channel.