Battery pack and method of updating firmware of battery pack
By implementing encrypted communication and data comparison methods in the battery pack, the battery pack failure and illegal firmware update problems caused by malicious attacks are solved, ensuring the stable operation and security of the battery pack.
Patent Information
- Application Number
- CN202380060803.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-24
- Filing Date
- 2023-08-28
- Publication Date
- 2025-04-01
AI Technical Summary
Existing battery management systems can cause failures in the face of malicious attacks, such as fire or explosion, and are difficult to effectively prevent illegal firmware updates.
By implementing a communication unit and controller in the battery pack, the battery data can be encrypted and sent to the server, and data comparison is performed when firmware updates are performed to ensure that the updated firmware is legal and secure.
It effectively prevents failures caused by malicious attacks, ensures the stable operation of the battery pack, and prevents the potential risks brought by illegal firmware updates.
Smart Images

Figure CN119744384A_ABST
Abstract
Description
Technical Field
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of Korean Patent Application No. 10-2022-0108710 filed in the Korean Intellectual Property Office on August 29, 2022, and Korean Patent Application No. 10-2023-0111386 filed in the Korean Intellectual Property Office on August 24, 2023, the entire contents of which are incorporated herein by reference. Technical Field
[0004] Embodiments disclosed herein relate to a battery pack including a battery storing power, and a method of updating firmware of the battery pack. Background Art
[0005] In recent years, research and development of secondary batteries have been actively carried out. Secondary batteries as rechargeable / dischargeable batteries can include all traditional nickel (Ni) / cadmium (Cd) batteries, nickel / metal hydride (MH) batteries, etc., and recently lithium-ion batteries. Compared with the energy density of traditional Ni / Cd batteries, Ni / MH batteries, etc., lithium-ion batteries have higher energy density. In addition, lithium-ion batteries can be made small and light, so that lithium-ion batteries have been used as power sources for mobile devices, and recently, their scope of use has been expanded to power sources for electric vehicles, thereby attracting attention as the next generation of energy storage media.
[0006] A device using a battery as a power source may have a battery for storing electricity and a battery management system (BMS) for controlling the operation of the battery installed thereon. The BMS may be implemented in a combination of software and hardware, and the hardware may operate together with software for driving and controlling the hardware. In particular, since the software may directly control the operation of the BMS, when the software is arbitrarily modified by a malicious attacker, serious accidents such as fire / explosion may occur due to abnormal operation of the BMS. Summary of the invention
[0007] Technical issues
[0008] Embodiments disclosed herein are directed to providing a battery pack capable of preventing malfunction due to malicious attacks, and a method of updating firmware of the battery pack.
[0009] Technical problems of the embodiments disclosed herein are not limited to the above-mentioned technical problems, and other unmentioned technical problems will be clearly understood by ordinary technicians in the art through the following description.
[0010] Technical Solution
[0011] A method for updating the firmware of a battery pack according to an embodiment of the present disclosure includes the following steps: sending battery data indicating the status of a battery cell included in the battery pack to a server; receiving an update mode entry request for a firmware update from the server; receiving encrypted battery data from the server, the encrypted battery data being data obtained by encrypting the battery data; decrypting the encrypted battery data; comparing the decrypted battery data with the battery data stored in the battery pack; and when the decrypted battery data is the same as the battery data stored in the battery pack, updating the firmware stored in the battery pack by using the firmware received from the server.
[0012] A method for updating the firmware of a battery pack through a server according to an embodiment of the present disclosure includes the following steps: receiving battery data indicating the status of battery cells included in the battery pack from the battery pack; when a firmware update of the battery pack is required, sending an update mode entry request for the firmware update to the battery pack; encrypting the battery data and sending the encrypted battery data to the battery pack; and sending firmware corresponding to the battery pack to the battery pack to update the firmware stored in the battery pack.
[0013] A battery pack according to an embodiment of the present disclosure includes at least one battery module and a battery pack battery management system (BMS) configured to control the at least one battery module, wherein the battery pack BMS includes: a communication unit configured to send battery data indicating the status of battery cells included in the battery pack to a server, and receive an update mode entry request for firmware update and encrypted battery data as data obtained by encrypting the battery data from the server; and a controller configured to compare the decrypted battery data generated by decrypting the encrypted battery data with the battery data stored in the battery pack BMS, and when the decrypted battery data is the same as the battery data stored in the battery pack BMS, update the firmware stored in the battery pack BMS by using the firmware received from the server.
[0014] Beneficial Effects
[0015] With the battery pack and the method of updating firmware of the battery pack according to the embodiments disclosed herein, stable operation of the battery pack can be ensured by preventing illegal updates due to malicious attackers.
[0016] Furthermore, various effects directly or indirectly confirmed from the present disclosure can be provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1is a block diagram of a battery pack and a server according to an embodiment disclosed herein.
[0018] Figure 2 It is shown in detail Figure 1 The block diagram of the battery pack BMS is shown.
[0019] Figure 3 is a flowchart illustrating a process of updating a BMS image according to one embodiment of the present disclosure.
[0020] Figure 4 is schematically shown in the example for updating Figure 3 A view of the information used in the BMS process.
[0021] Figure 5 is a flowchart illustrating a process of updating a BMS image according to another embodiment of the present disclosure.
[0022] Figure 6 is schematically shown in the example for updating Figure 5 A view of the information used in the BMS process.
[0023] Figure 7 is a block diagram illustrating a hardware configuration of a computing system for executing an operating method of a battery management system according to an embodiment disclosed herein. DETAILED DESCRIPTION
[0024] Hereinafter, the embodiments disclosed in this document will be described in detail with reference to the exemplary drawings. When adding reference numerals to the components of each drawing, it should be noted that even if the same components are represented in different drawings, these components are given the same reference numerals. In addition, when describing the embodiments disclosed in this document, when it is determined that the detailed description of the related known configuration or function interferes with the understanding of the embodiments disclosed in this document, its detailed description will be omitted.
[0025] In order to describe the components of the embodiments disclosed herein, terms such as first, second, A, B, (a), (B), etc. may be used. These terms are only used to distinguish one component from another component, and do not limit the components to the nature, order, sequence, etc. of the components. The terms used herein, including technical terms and scientific terms, have the same meanings as those generally understood by those skilled in the art, unless these terms are defined differently. Generally, terms defined in general dictionaries should be interpreted as having the same meanings as the contextual meanings of the relevant technology, and should not be interpreted as having ideal or exaggerated meanings unless they are clearly defined in this application.
[0026] Figure 1 is a block diagram of a battery pack and a server according to an embodiment disclosed herein. Figure 2 It is shown in detail Figure 1 The block diagram of the battery pack BMS is shown.
[0027] Reference Figure 1 and Figure 2 , a battery system according to an embodiment disclosed herein may include a battery pack 100 and a cloud server 400 .
[0028] The battery pack 100 may be mounted on another device (e.g., an electric scooter, an electric vehicle, etc.) to provide power required for driving the device. The battery pack 100 may include a battery pack battery management system (BMS) 200, a first battery module 310, a second battery module 320, a third battery module 330, and a fourth battery module 340. Figure 1 2 , the battery pack 100 is shown to include four battery modules 310 to 340 , but this is merely an example, and any number (eg, 2, 10, etc.) of battery modules may be included in the battery pack 100 .
[0029] The battery pack BMS 200 may control the overall operation of the battery pack 100 and communicate with the server 400. Figure 2 , the battery pack BMS 200 may include a controller 210 , a communication unit 220 , a main memory 230 , a safety memory 240 , and an input / output terminal 250 .
[0030] The controller 210 may control the overall operation of the battery pack BMS 200. According to an embodiment, the controller 210 may control the communication unit 220 to communicate with each of the first to fourth battery modules 310 to 340 and / or the server 400. According to an embodiment, the controller 210 may store data received from the outside and / or data processed or generated by the controller 210 in the main memory 230 and / or the secure memory 240, or read data stored in the main memory 230 and / or the secure memory 240. The controller 210 may be electrically connected to a specific device (e.g., Figure 6 update device) to control the battery pack BMS200 to perform operations required by specific devices.
[0031] In addition, the controller 210 may process the state data (e.g., voltage, current, resistance, temperature, etc. of the battery cell) received from each of the first to fourth battery modules 310 to 340 to generate processed state data (e.g., state of charge (SoC), state of health (SoH), etc.). Herein, the received state data and / or the processed state data may be stored in the main memory 230 as battery data about the corresponding battery modules of the first to fourth battery modules 310 to 340 under the control of the controller 210. That is, the battery data may be information indicating the state of the corresponding battery module (or the corresponding battery cell).
[0032] The controller 210 may control components included in the battery pack 100 based on a BMS image stored in the main memory 230. According to an embodiment, the BMS image may be firmware for driving the battery pack 100. For example, the BMS image may have a form of binary data without limiting the scope of the present disclosure.
[0033] In addition, the controller 210 may process a request received from the server 400, for example, decrypt the encrypted battery data received from the server 400, and perform authentication on the server 400 by using the decoded battery data. Detailed operations related to this will be described later with reference to Figure 3 and Figure 4 Give a description.
[0034] The controller 210 may analyze the data received from a specific device (eg, Figure 6 The clock signal received by the update device) is used to perform verification on a specific device. The detailed operation related to this will be referred to later. Figure 5 and Figure 6 Give a description.
[0035] The communication unit 220 may establish a wired communication channel and / or a wireless communication channel between the battery pack BMS200 and the server 400 and / or between the battery pack BMS200 and the battery module (at least one of the battery modules 310 to 340), and transmit or receive data to or from the server 400 and / or the battery module (at least one of the battery modules 310 to 340) through the established communication channel. For example, the communication unit 220 may transmit and receive data to and from another device based on at least one radio access technology (RAT).
[0036] The main memory 230 may store instructions required to operate the battery pack 100 and / or information about the battery modules 310 to 340. According to an embodiment, the main memory 230 may store a BMS image. According to an embodiment, the main memory 230 may store battery data of each of the battery modules 310 to 340. In this article, the main memory 230 may include an allocation area for storing battery data of each of the battery modules 310 to 340, and the main memory 230 may sequentially store the battery data received and generated for the corresponding battery module in the corresponding allocation area. When the received battery data exceeds the storage capacity of the corresponding allocation area, the main memory 230 may delete the first stored battery data among the battery data stored in the corresponding allocation area, and store the currently received battery data. That is, the main memory 230 may store the latest battery data corresponding to the storage capacity of the corresponding allocation area.
[0037] The secure memory 240 may store a key. Herein, the key may be an encryption / decryption key for authenticating the server 400, and may be a symmetric key previously shared between the server 400 and the battery pack 100. That is, the key stored in the secure memory 240 and the key stored in the server 400 may be identical to each other. According to an embodiment, the key previously shared between the server 400 and the battery pack 100 may be updated according to a specific time period (e.g., 1 day) or a specific condition (e.g., when updating the BMS image).
[0038] In the present disclosure, description will be made assuming that encryption / decryption of battery data is performed according to a symmetric key algorithm, but the scope of the present disclosure is not limited thereto, and encryption / decryption of battery data may be performed according to an asymmetric key algorithm.
[0039] Each of the main memory 230 and the secure memory 240 may be implemented with a nonvolatile memory, a volatile memory, or a combination thereof.
[0040] The input / output terminal 250 may be a separately provided terminal for communicating with a specific device (eg, Figure 6 According to an embodiment, the input / output terminal 250 may be a Joint Test Action Group (JTAG) connector that supports a scheme for sending and receiving data in a serial communication manner for digital input / output. The controller 210 may update the BMS image due to data received through the input / output terminal 250.
[0041] Will refer to later Figure 5 and Figure 6 A process of updating the BMS image through the input / output terminal 250 will be described.
[0042] Return to reference Figure 1 , the first battery module 310 to the fourth battery module 340 may have the same or corresponding structures and operations, respectively. Although the following description is mainly made for the first battery module 310, this description may also be applied to the second battery module 320 to the fourth battery module 340.
[0043] The first battery module 310 may include a first module BMS 315 for controlling the overall operation of the first battery module 310. Figure 1 Although not shown in the figure, the first battery module 310 may include at least one battery cell for storing (charging) power and transmitting (discharging) power. According to an embodiment, the first battery module 310 may include at least one sensor capable of acquiring information related to the state of at least one battery cell. For example, at least one sensor may acquire information related to the voltage, current, resistance and / or temperature of the battery cell and send the information to the first module BMS 315.
[0044] The first module BMS 315 may generate state data including information obtained from at least one sensor and / or information generated by processing the obtained information. The state data may be data related to states of the battery cells of the first battery module 310 .
[0045] The first module BMS 315 may communicate with the battery pack BMS 200 to transmit and receive data. According to an embodiment, the first module BMS 315 may transmit state data of the first battery module 310 to the battery pack BMS 200, receive a request from the battery pack BMS 200, and perform an operation corresponding to the request.
[0046] The server 400 may provide a service for managing at least one battery pack (e.g., 100). To this end, the server 400 may send and receive data by communicating with the battery pack 100. For example, the server 400 may be a cloud server, but the scope of the present disclosure is not limited thereto. According to an embodiment, the server 400 may store battery data received from the battery pack 100, and maintain or change the control setting value of the battery pack 100 based on the result of analyzing the stored battery data. Changes in the control setting value may be reflected in the BMS image of the battery pack 100, and when a new BMS image is generated and stored, the server 400 may send an update mode entry request for updating the BMS image to the battery pack 100. According to an embodiment, the BMS image update may be performed not only by the result of analyzing the battery data, but also by various reasons (e.g., a design error of the battery pack 100, a change in the battery operation strategy, etc.).
[0047] Will refer to later Figure 3 and Figure 4 To describe the process of updating the BMS image by sending an update mode entry request.
[0048] Figure 3 is a flowchart illustrating a process of updating a BMS image according to one embodiment of the present disclosure. Figure 4 is schematically shown for updating Figure 3 A view of the information used in the BMS process.
[0049] Reference Figure 3 and Figure 4 According to one embodiment of the present disclosure, the process of updating the BMS image (ie, firmware) may be initiated and advanced by the server 400 .
[0050] The battery pack BMS200 may receive status data from each of the battery modules 310 to 340 and generate battery data based on the status data. In operation S110, the battery pack BMS200 may store the battery data in the main memory 230 and send the battery data to the server 400. The server 400 may match the received battery data with the identification information (e.g., identifier (ID)) of the battery pack BMS200 and store it. The operation of sending and receiving battery data between the battery modules 310 to 340, the battery pack BMS200 and the server 400 may be performed according to a predetermined algorithm (e.g., a specific time period or a specific condition).
[0051] In operation S120 , the server 120 may determine whether to register (ie, update) a new BMS image of the battery pack BMS 200 .
[0052] When the new BMS image of the battery pack BMS 200 is not registered ('NO' in operation S120 ), operation S110 may be performed again.
[0053] When a new BMS image of the battery pack BMS200 is registered ("Yes" in operation S120), in operation S130, the server 400 may identify the version information of the BMS image currently stored in the battery pack BMS200, and in operation S140, determine whether the BMS image needs to be updated by comparing the version information of the BMS image currently stored in the battery pack 100 with the version information of the new BMS image. Herein, the version information may be information of a certain version of the BMS image, and the server 400 may match the version information of the BMS image with the identification (e.g., ID) of the battery pack BMS200, and store it when the BMS image update of the battery pack BMS200 is completed.
[0054] When the version information of the BMS image stored in the battery pack BMS 200 is the same as the version information of the new BMS image and thus the BMS image update is not required (“NO” in operation S140 ), operation S110 may be performed again.
[0055] When the version information of the BMS image stored in the battery pack BMS 200 is different from the version information of the new BMS image and thus a BMS image update is required ("Yes" in operation S140), in operation S150, the server 400 may transmit an update mode entry request to the battery pack BMS 200. The update mode entry request may be a message requesting the battery pack BMS 200 to perform a BMS image update after a device on which the battery pack BMS 200 is mounted stops operating (e.g., an electric scooter is turned off).
[0056] The battery pack BMS 200 that has received the update mode entry request may transmit a response to the update mode entry request to the server 400 .
[0057] In operation S160, the server 400 may extract battery data corresponding to the verification rule from battery data corresponding to the battery pack BMS200 stored in the server 400, and encrypt the extracted battery data by using a secret key. Herein, the verification rule may refer to a rule for determining an encryption target among battery data corresponding to the battery pack BMS200 received in sequence (i.e., a rule for selecting which battery data to encrypt).
[0058] According to one embodiment, the verification rule may be shared in advance between the battery pack BMS 200 and the server 400 , and the last (or most recently) transmitted and received battery data may be extracted, for example, from among the battery data corresponding to the battery pack BMS 200 .
[0059] According to one embodiment, the verification rules may be shared through the response to the update mode entry request. That is, the response to the update mode entry request may include information about the verification rules. For example, the battery pack BMS200 may include a randomly determined number (e.g., 60) among a plurality of numbers (e.g., 1 to 100) as information about the verification rules in the response to the update mode entry request, and send the response to the server 400. The server 400 may receive a response to the update mode entry request, and based on the information about the verification rules, extract the most recent 60th transmitted and received battery data from the battery data corresponding to the battery pack BMS200 and encrypt it. In this case, the battery pack BMS200 may compare the decrypted battery data with the most recent 60th transmitted and received battery data among the previously stored battery data in a subsequent comparison operation.
[0060] According to another embodiment, the verification rules may be shared through an update mode entry request. That is, the update mode entry request may include information about the verification rules. For example, the server 400 may include a randomly determined number (e.g., 60) among a plurality of numbers (e.g., 1 to 100) as information about the verification rules in the update mode entry request, and send the update mode entry request to the battery pack BMS200. The server 400 may extract the most recent 60th transmitted and received battery data from the battery data corresponding to the battery pack BMS200 according to the verification rules and encrypt it. The battery pack BMS200 may receive the update mode entry request, and extract the most recent 60th transmitted and received battery data from the previously stored battery data according to the information about the verification rules, and compare the decrypted battery data with the most recent 60th transmitted and received battery data among the previously stored battery data in a subsequent comparison operation.
[0061] According to another embodiment, the verification rule may be included in a secret key previously shared between the server 400 and the battery pack 100. That is, the secret key may include information about the verification rule. The information about the verification rule may include time information and data information.
[0062] In this article, the time information may include a time offset indicating the amount of time before the current time. In addition, the data information may include a data identification item indicating specific data (e.g., voltage, current, resistance, temperature, SoC, SoH, etc. of the battery cell) among the data included in the battery data.
[0063] The server 400 can extract and encrypt data corresponding to a data identification item (e.g., at least one of the voltage, current, and temperature of the battery cell) from the battery data corresponding to the battery pack BMS200, which is sent and received at a time offset earlier than the current time, according to the information about the verification rule included in the secret key. The battery pack BMS200 can extract data corresponding to a data identification item (e.g., any one of the voltage, current, and temperature of the battery cell) from the battery data previously stored, which is sent and received at a time offset earlier than the current time, according to the information about the verification rule included in the previously shared secret key, and compare the decrypted battery data with the battery data extracted from the previously stored battery data according to the verification rule in a subsequent comparison operation. In this article, the battery data used for comparison can correspond to a portion of the battery data.
[0064] In operation S160 , the server 400 may extract battery data corresponding to the verification rule from among battery data corresponding to the battery pack BMS 200 stored in the server 400 , and encrypt the extracted battery data using a key.
[0065] In operation S170, the server 400 may transmit the encrypted battery data to the battery pack BMS 200, and in operation S180, the battery pack BMS 200 may decrypt the encrypted battery data by using the key stored in the secure memory 240. For example, the encryption / decryption scheme using the key may be an Advanced Encryption Standard (AES) encryption algorithm, but the scope of the present disclosure is not limited thereto.
[0066] In operation S190, the battery pack BMS 200 may compare the battery data decrypted after receiving from the server 400 with the battery data extracted from the main memory 230 according to the verification rule to determine whether the two are identical to each other. For example, when the verification rule is to extract the last (or most recently) transmitted and received battery data from the battery data corresponding to the battery pack BMS 200, the battery pack BMS 200 may extract the last transmitted battery data from the battery data stored in the main memory 230 to compare with the battery data decrypted after receiving from the server 400.
[0067] When the battery data decrypted after being received from the server 400 is different from the battery data extracted from the main memory 230 according to the verification rule ('No' in operation S190 ), operation S110 may be performed again.
[0068] When the battery data decrypted after being received from the server 400 is identical to the battery data extracted from the main memory 230 according to the verification rule (“No” in operation S190 ), a subsequent BMS image update operation may be performed.
[0069] This is to prevent serious accidents such as ignition / explosion, etc., caused by malicious attackers invading the communication line between the battery pack BMS200 and the server 400 to simulate updating the server 400 and the battery pack BMS200 with incorrect BMS images. In the present disclosure, the battery pack BMS200 can pre-verify whether the server 400 is a legitimate server 400 with all valid keys, valid verification rules, and valid battery data, and only allow the verified server 400 to perform the BMS image update operation, thereby preventing the BMS image update operation from being performed due to hackers invading the communication line between the battery pack BMS200 and the server 400.
[0070] After operation S190 , the battery pack BMS 200 may determine whether the device on which the battery pack 100 is mounted is turned off based on a signal received from the device in operation S200 .
[0071] The battery pack BMS200 may wait for receiving a signal indicating shutdown ("No" in operation S200), and when receiving a signal indicating shutdown ("Yes" in operation S200), the battery pack BMS200 may enter an update mode in operation S210, and perform a BMS image update in operation S220. According to an embodiment, the battery pack BMS200 may receive a new BMS image for the battery pack BMS200, and store the new BMS image instead of the BMS image previously stored in the main memory 230, thereby performing a BMS image update.
[0072] The BMS image may include a BMS image stored in the battery pack BMS 200 (ie, a pack BMS image) and / or a BMS image stored in each of the module BMSs 315 to 345 (ie, a module BMS image).
[0073] When the new BMS image includes only the battery pack BMS image (ie, when module BMS update is not required ('NO' in operation S230 )), the BMS image update process may be terminated.
[0074] When the module BMS image is included in the new BMS image (ie, module BMS update is required (YES in operation S230 )), the battery pack BMS 200 may transmit the module BMS image to the corresponding module BMS in operation S240 to control the module BMS to perform module BMS image update.
[0075] like Figure 4 As shown, the battery pack BMS100 and the server 400 can store keys, battery data, and verification rules that are shared and stored through different timings and different paths, and when the server 400 has all the keys, battery data, and verification rules stored in the battery pack BMS200, the battery pack BMS200 can verify the server 400 as a valid server 400, so that the BMS image of the server 400 can be updated in the battery pack BMS200.
[0076] Figure 5 is a flowchart illustrating a process of updating a BMS image according to another embodiment of the present disclosure. Figure 6 is schematically shown in the example for updating Figure 5 A view of the information used in the BMS process.
[0077] Reference Figure 5 and Figure 6According to another embodiment of the present disclosure, a process of updating a BMS image (ie, firmware) may be initiated and advanced by an updating apparatus 500. The updating apparatus 500 may perform an update of a BMS image for the battery pack BMS 200.
[0078] As reference Figure 2 As described, the battery pack BMS200 may include an input / output terminal 250 for electrically connecting and / or communicating with the updating device 500, and the input / output terminal 250 according to an embodiment may be installed inside the battery pack 100 without being exposed to the outside, and may be exposed to the outside after the battery pack 100 is disassembled in operation S310.
[0079] like Figure 6 As shown, in operation S320, the input / output terminal 250 exposed to the outside and the updating device 500 may be connected by a cable 510. Herein, the cable 510 may be a flat cable, but the scope of the present disclosure is not limited thereto.
[0080] In operation S330, the updating device 500 may generate a clock signal based on the previously stored clock mode, and transmit the clock signal to the battery pack BMS 200 through the cable 510. Herein, the clock mode may be a mode for determining the waveform of the clock signal, and may be determined by changing the amplitude, period, frequency, duty cycle, or a combination thereof of the clock signal. For example, when the input / output terminal 250 is a JTAG connector, the clock signal may be received through a clock pin of the JTAG connector.
[0081] The battery pack BMS 200 may analyze the clock signal received through the cable 510 to extract the clock mode of the received clock signal. According to an embodiment, the battery pack BMS 200 may detect the amplitude, period, frequency, duty cycle, or a combination thereof of the received clock signal, and determine the clock mode of the received clock signal based on the detection result. To this end, the battery pack BMS 200 may further include a timer, a voltmeter, an analog-to-digital converter, and the like.
[0082] In operation S340, the battery pack BMS 200 may compare the previously shared and stored clock mode with the clock mode of the received clock signal to determine whether they are identical to each other. In this article, when the previously shared and stored clock mode is identical to the clock mode of the received clock signal, this may mean a concept including a case where they are similar within a specific range, taking into account the influence of other noises (e.g., noise corresponding to the state of the cable 510), and a case where they are physically identical.
[0083] When the previously stored clock pattern is not identical to the clock pattern of the received clock signal ('NO' in operation S340 ), the BMS image update process may be terminated.
[0084] When the previously stored clock mode is the same as the clock mode of the received clock signal ("Yes" in operation S340), the battery pack BMS 200 may enter the system management mode in operation S350. Herein, the system management mode may refer to a mode for executing an operation to verify (e.g., debug) whether an instruction required for the operation of the battery pack 100 is normal, and a mode for a BMS image update operation.
[0085] The battery pack BMS 200 may enter the system management mode, and in operation S360, perform a BMS image update operation and debugging under the control of the update device 500. The BMS image update operation is basically the same as that of the reference Figure 3 The described operations of updating the BMS images of the battery pack BMS 200 and the module BMSs 315 to 345 are the same, and thus will not be redundantly described.
[0086] According to the present disclosure, it is possible to prevent serious accidents such as ignition / explosion due to malicious attackers invading the input / output terminal 250 of the battery pack BMS 200 to imitate updating the device 500 and the battery pack BMS 200 with an incorrect BMS image. The battery pack BMS 200 can verify in advance whether the update device 500 is a valid update device 500 that can generate and send a clock signal according to a valid clock mode, and allow the verified update device 500 to perform the BMS image update operation, thereby preventing the BMS image update operation from being performed through the input / output terminal 250 of the battery pack BMS 200 due to hacker intrusion.
[0087] As in Figure 6 It can be seen that the battery pack BMS200 and the update device 500 can respectively store previously shared and stored clock modes, and only when the update device 500 generates and sends a clock signal based on the same clock mode as the clock mode stored in the battery pack BMS200, the battery pack BMS200 verifies the update device 500 as a valid update device 500, so that the BMS image of the update device 500 can be updated in the battery pack BMS200.
[0088] Figure 7 is a block diagram illustrating a hardware configuration of a computing system for executing an operating method of a battery management system according to an embodiment disclosed herein.
[0089] Reference Figure 7, the computing system 1000 according to the embodiments disclosed herein may include an MCU 1010 , a memory 1020 , an input / output I / F 1030 , and a communication I / F 1040 .
[0090] According to an embodiment, the computing system 1000 may be a system for performing the above-described operations of the battery pack BMS 200 , the module BMSs 315 to 345 , or the server 400 (hereinafter referred to as “corresponding device”).
[0091] The MCU 1020 may be a processor that executes various programs stored in the memory 1020 .
[0092] For example, the MCU 1020 may be a processor for processing data and / or signals required for the battery pack BMS 200 to manage and control the battery pack 100 .
[0093] The memory 1020 may store various programs and / or data required for managing and controlling the corresponding device. The memory 1020 may be provided in a plurality as required.
[0094] The memory 1020 may be a volatile memory or a nonvolatile memory. For the memory 1020 as a volatile memory, a random access memory (RAM), a dynamic RAM (DRAM), a static RAM (SRAM), etc. may be used. For the memory 1020 as a nonvolatile memory, a read-only memory (ROM), a programmable ROM (PROM), an electrically variable ROM (EAROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a flash memory, etc. may be used. The examples of the above-mentioned memory 1020 are merely examples and are not limited thereto.
[0095] The input / output I / F 1030 may provide an interface for transmitting and receiving data by connecting an input device (not shown) such as a keyboard, a mouse, a touch screen, and an output device such as a display (not shown) to the MCU 1010 .
[0096] The communication I / F 1040 , which is a component capable of transmitting and receiving various data to and from an external component including a server, may be various devices capable of supporting wired or wireless communication.
[0097] Therefore, the computer program according to the embodiment disclosed herein can be recorded in the memory 1020 and executed and processed by the MCU 1010, thereby being implemented as an execution Figures 1 to 6 Modules with the functionality shown in .
[0098] The above description merely illustrates the technical idea of the present disclosure, and various modifications and changes may be made by a person skilled in the art to which the embodiments disclosed herein belong without departing from the basic features of the embodiments of the present disclosure.
[0099] Therefore, the embodiments disclosed herein are intended to describe rather than limit the technical spirit of the embodiments disclosed herein, and the scope of the technical spirit of the present disclosure is not limited by these embodiments disclosed herein. The protection scope of the technical spirit disclosed herein should be interpreted by the attached claims, and all technical spirits within the same scope should be understood to be included in the scope of the present disclosure.
Claims
1. A method for updating firmware of a battery pack, the method comprising the following steps: transmitting battery data indicating states of battery cells included in the battery pack to a server; receiving an update mode entry request for firmware update from the server; receiving encrypted battery data from the server, the encrypted battery data being data obtained by encrypting the battery data; decrypting the encrypted battery data; comparing the decrypted battery data with the battery data stored in the battery pack; as well as When the decrypted battery data is identical to the battery data stored in the battery pack, firmware stored in the battery pack is updated by using firmware received from the server.
2. The method according to claim 1, wherein: The step of encrypting the battery data is performed using a key stored in the server, and The step of decrypting the encrypted battery data is performed using a secret key stored in the battery pack.
3. The method according to claim 1, wherein: The battery data is the most recent battery data last transmitted from the battery pack.
4. The method according to claim 1, further comprising the steps of: After receiving the update mode entry request, a response to the update mode entry request is sent to the server.
5. The method according to claim 4, wherein: The response to the update mode entry request includes information on a verification rule, the verification rule being a rule for determining an encryption target.
6. The method according to claim 5, wherein: In the step of comparing the decrypted battery data with the battery data stored in the battery pack, each of the decrypted battery data and the battery data stored in the battery pack is battery data determined according to the verification rule.
7. The method according to claim 1, wherein: After a device having the battery pack mounted thereon is turned off, updating of the firmware stored in the battery pack is performed.
8. A method for updating firmware of a battery pack by a server, the method comprising the following steps: receiving, from the battery pack, battery data indicating a status of a battery cell included in the battery pack; When the battery pack needs to be updated with firmware, sending an update mode entry request for the firmware update to the battery pack; encrypting the battery data and sending the encrypted battery data to the battery pack; as well as Firmware corresponding to the battery pack is transmitted to the battery pack to update the firmware stored in the battery pack.
9. The method according to claim 8, wherein: The battery data is the most recent battery data last received by the server.
10. The method according to claim 8, further comprising the steps of: After sending the update mode entry request, receiving a response to the update mode entry request from the battery pack.
11. The method according to claim 10, wherein: The response to the update mode entry request includes information on a verification rule, the verification rule being a rule for determining an encryption target.
12. The method according to claim 11, wherein: The encrypted battery data is battery data determined according to the verification rule.
13. A battery pack, comprising: at least one battery module; as well as a battery pack battery management system (BMS), the battery pack BMS being configured to control the at least one battery module, Wherein, the battery pack BMS includes: a communication unit configured to transmit battery data indicating states of battery cells included in the battery pack to a server, and receive an update mode entry request for firmware update and encrypted battery data which is data obtained by encrypting the battery data from the server; and A controller is configured to compare decrypted battery data generated by decrypting the encrypted battery data with battery data stored in the battery pack BMS, and when the decrypted battery data is identical to the battery data stored in the battery pack BMS, update the firmware stored in the battery pack BMS by using the firmware received from the server.
14. The battery pack according to claim 13, wherein: The encryption of the battery data is performed using a key stored in the server, and The decryption of the encrypted battery data is performed using a key stored in a secure memory of the battery pack BMS.
15. The battery pack according to claim 13, wherein: The battery data is the latest battery data last transmitted by the communication unit.
Citation Information
Patent Citations
Systems and methods for data transfer for computational storage devices
KR1020220108710A
Method and apparatus for adding aroma and flavor components to agricultural and livestock products or marine products using high voltage pulse electric field and pressure difference
KR1020230111386A