Software starting method of wireless BMS, storage medium and wireless BMS

By generating random numbers and calculating software verification values ​​for comparison, the problem of easy tampering or damage during software upgrades in wireless BMS systems is solved, ensuring the stability and security of the system.

CN121166221APending Publication Date: 2025-12-19SUNGIANT AUTOMOTIVE ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511223506.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-28
Publication Date
2025-12-19

AI Technical Summary

Technical Problem

In existing wireless BMS systems, the upgrade program is susceptible to malicious tampering or accidental damage during software data transmission and storage, leading to functional abnormalities or security risks during system startup or upgrade processes.

Method used

By generating random numbers, calculating software verification values, and comparing them, the integrity and correctness of the software upgrade are ensured, and the wireless BMS is either rejected or allowed to proceed to the next step.

Benefits of technology

It effectively prevents software from being tampered with or damaged during transmission and storage, ensuring the security of system startup and upgrade processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121166221A_ABST
    Figure CN121166221A_ABST
Patent Text Reader

Abstract

The invention discloses a software starting method for a wireless BMS (Battery Management System), which comprises the following steps: receiving an upgrading request, and generating a random number; after upgrading is completed, a first software check value is calculated and stored based on the random number and program data of the upgrading software; the program data of the upgrade software comprises an initial address and a size of the upgrade software; when it is detected that the wireless BMS is powered on, the random number is extracted and combined with program data of current software, a second software check value is calculated, the program data of the current software comprises the initial address and size of the current software, and the current software is software obtained after upgrading according to the upgrading software; and comparing the second software verification value with the first software verification value, and rejecting or allowing the wireless NMS to enter the next process according to a comparison result. The problem that in the software data transmission and storage process of an existing wireless BMS system, due to the fact that an upgrading program is maliciously tampered or accidentally damaged, function abnormity or potential safety hazards occur when the system starts software or executes the software upgrading process is solved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of power batteries, and in particular relates to a software starting method of a wireless BMS, a storage medium and the wireless BMS. BACKGROUND

[0002] The existing technology is the rise of wireless BMS (Wireless Battery Management System) technology, which brings revolutionary changes to the field of electric vehicle battery management. Wireless BMS realizes information intercommunication between battery modules through wireless communication technology, saves a large number of wire harnesses and connectors, significantly reduces the weight of the battery system, improves the cruising range of electric vehicles, and reduces the manufacturing cost.

[0003] With the wide application and development of wireless battery management system, its safety and reliability have become crucial factors. In the master-slave node communication and software upgrading process of the wireless BMS, ensuring the integrity and authenticity of the upgrade program is the key to guarantee the stable operation of the system. The existing wireless BMS system downloads the upgrade package through online OTA or host computer transmission when upgrading, sends the upgrade package to the master node and the slave node of the wireless BMS system, and the master node and the slave node complete their own software upgrading according to the corresponding upgrade package. After the whole system upgrading is completed, the master node and the slave node are powered on when starting the wireless BMS system, and run the upgraded software.

[0004] In the starting and upgrading process of the wireless BMS system, the existing scheme directly starts the software or executes the software upgrading process. However, in the software data transmission and storage process, the upgrade program may be maliciously tampered with or accidentally damaged, which will directly lead to functional abnormalities or security risks when starting the software or executing the software upgrading process. SUMMARY

[0005] The present application provides a software starting method of a wireless BMS, which aims to solve the problem that the existing wireless BMS system directly starts the software or executes the software upgrading process, and in the software data transmission and storage process, the upgrade program may be maliciously tampered with or accidentally damaged, which will directly lead to functional abnormalities or security risks when starting the software or executing the software upgrading process.

[0006] To achieve the above-mentioned purpose, the software starting method of the wireless BMS provided by the present application comprises:

[0007] receiving an upgrade request and generating a random number;

[0008] After the upgrading is completed, a first software check value is calculated based on the random number and program data of the upgrading software and is stored; the program data of the upgrading software includes a starting address and a size of the upgrading software;

[0009] When the wireless BMS is powered on, the random number is extracted and combined with program data of a current software to calculate a second software check value, the program data of the current software includes a starting address and a size of the current software, the current software being software obtained after upgrading according to the upgrading software;

[0010] The second software check value is compared with the first software check value, and the wireless BMS is rejected or allowed to enter a next flow according to a comparison result.

[0011] In some embodiments, the comparing the second software check value with the first software check value and rejecting or allowing the wireless BMS to enter a next flow according to a comparison result includes:

[0012] When the second software check value is consistent with the first software check value, the wireless BMS is allowed to start, and when the second software check value is not consistent with the first software check value, the wireless BMS is rejected to start.

[0013] In some embodiments, when the wireless BMS is powered on, the random number is extracted and combined with program data of a current software to calculate a second software check value includes:

[0014] The starting address and the size of the current software are acquired when the wireless BMS is powered on;

[0015] The second software check value is obtained by re-computing based on the random number, the starting address and the size of the current software.

[0016] In some embodiments, the calculating a first software check value based on the random number and program data of the upgrading software and storing includes:

[0017] An upgrading request sent by an upper computer is received, the upgrading request including a software location of upgrading software;

[0018] The upgrading software is found according to the upgrading request, and a starting address and a size of the upgrading software are acquired.

[0019] In some embodiments, the calculating a first software check value based on the random number and program data of the upgrading software and storing includes:

[0020] The random number is combined with the program data of the upgrading software in a preset order to obtain first to-be-calculated data;

[0021] The first software check value is calculated by using the C-MAC algorithm on the first to-be-calculated data.

[0022] In some embodiments, the generating the random number comprises:

[0023] In the program data of the upgraded software, a random data frame is determined;

[0024] According to the random data frame, the random number is generated.

[0025] In some embodiments, the calculating the second software check value comprises:

[0026] The random number and the program data of the current software are combined in a preset order to obtain second to-be-calculated data;

[0027] The second software check value is calculated by using the C-MAC algorithm on the second to-be-calculated data.

[0028] In some embodiments, the calculating the first software check value based on the random number and the program data of the upgraded software and storing further comprise:

[0029] The first software check value is stored in a first storage area in the OTP register, and the random data is stored in a second storage area in the OTP register.

[0030] The application further provides a storage medium, which stores a computer program, the computer program comprising program instructions, the program instructions enabling a processor to execute the software starting method of the wireless BMS when executed by the processor.

[0031] The application further provides a wireless BMS, which is configured to implement the software starting method of the wireless BMS.

[0032] The technical scheme of the software starting method of the wireless BMS provided by the present application comprises the following steps: receiving an upgrade request and generating a random number; after the upgrade is completed, a first software check value is calculated based on the random number and the program data of the upgraded software and is stored; the program data of the upgraded software comprises a starting address and a size of the upgraded software; when the wireless BMS is powered on, the random number is extracted and combined with the program data of the current software to calculate a second software check value, the program data of the current software comprises a starting address and a size of the current software, and the current software is the software obtained after the upgrade of the upgraded software; the second software check value is compared with the first software check value, and the wireless BMS is rejected or allowed to enter the next process according to the comparison result. The problem that the existing wireless BMS system directly starts software or executes software upgrade process, and the upgrade program may be maliciously tampered with or accidentally damaged in the software data transmission and storage process, which will directly lead to functional abnormalities or security risks of the system when starting software or executing software upgrade process, is solved. BRIEF DESCRIPTION OF DRAWINGS

[0033] Figure 1 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0034] Figure 2 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0035] Figure 3 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0036] Figure 4 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0037] Figure 5 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0038] Figure 6 The flowchart of the software starting method of the wireless BMS provided by the embodiment of the present application is shown in the figure.

[0039] Figure 7 The structure diagram of the wireless BMS provided by the embodiment of the present application is shown in the figure. DETAILED DESCRIPTION

[0040] The technical scheme in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor fall within the scope of protection of the present application.

[0041] It should be noted that all directional indications, such as upper, lower, left, right, front, back, under, over, upper, lower, left, right, front, back, etc., are intended to facilitate the description of the relative position and movement of the components with respect to each other under a certain posture (as shown in the drawings), and if the posture changes, the directional indications will also change accordingly.

[0042] It should also be noted that when an element is referred to as being "fixed" or "disposed" on another element, it can be directly on another element or there can be a middle element. When an element is referred to as being "connected" to another element, it can be directly connected to another element or there can be a middle element.

[0043] In addition, the description of "first", "second" and the like in the present application is only for the purpose of description, and cannot be understood as indicating or implying the relative importance of the technical features indicated or the number of technical features indicated. Therefore, the features defined as "first", "second" can be explicitly or implicitly included at least one of the features. In addition, the technical solutions of each embodiment can be combined with each other, but it must be based on the realization of the person skilled in the art, when the combination of technical solutions appears contradictory or unachievable, it should be considered that the combination of technical solutions does not exist, nor within the scope of protection required by the present application.

[0044] In some embodiments, the present application provides a software starting method of wireless BMS, applied to wireless BMS, wireless BMS includes master node and a plurality of slave nodes in wireless communication with the master node, the master node also communicates with the host computer, the software starting method of wireless battery management system includes the following steps:

[0045] Step S110, receiving upgrade request, generating random number.

[0046] Step S120, after the upgrade is completed, the first software check value is calculated based on the random number and the program data of the upgraded software and stored.

[0047] Step S130, when the wireless BMS is powered on, the random number is extracted and combined with the program data of the current software to calculate the second software check value.

[0048] Step S140, comparing the second software check value with the first software check value, and according to the comparison result, rejecting or allowing the wireless BMS to enter the next flow.

[0049] In this embodiment, refer to Figure 1 and Figure 7The software starting method of the wireless BMS is applied to the wireless BMS, the wireless BMS comprises a master node and a plurality of slave nodes in wireless communication with the master node, the master node also communicates with an upper computer, and the wireless BMS is configured to implement the software starting method of the wireless BMS in the embodiment of the application.

[0050] It can be understood that, after receiving the upgrade application, a random number is generated, and after the upgrade is completed, a first software check value can be calculated according to the random number and program data of the upgrade software and stored. The upgrade can be to improve the program by modifying or adding new functions, can be released in the form of a patch, and the user updates the patch to upgrade the software version, enhance the function or optimize. The random number can be a random number generated when the upgrade application is received, each number in the sequence is randomly generated and cannot be predicted, and the random number can be a frame random number. The upgrade software can be used to update the version of the software, including new features or fixes. The program data of the upgrade software can be used to replace the files and data of the old version program during the software upgrade process, and the upgrade software program data includes the starting address and size of the upgrade software. The size of the upgrade software can be the data size of the upgrade software itself, such as MB or KB. The first software check value can be a software check value calculated from the random number generated when the upgrade application is received and the program data of the upgrade software, which is used to verify the integrity and correctness of the software upgrade.

[0051] When it is detected that the wireless BMS is powered on, the random number is extracted and combined with the program data of the current software to calculate a second software check value.

[0052] It can be understood that the program of the current software includes the starting address and size of the current software, and the current software is obtained after upgrading according to the upgrade software. The second software check value can be a software check value calculated by combining the random number with the program data of the current software, which is used to verify the integrity and correctness of the software.

[0053] For example, when it is detected that the wireless BMS is powered on, the random number R is combined with the program data of the current software to obtain a string S, a hash function can be used to calculate the hash value H of the string S, and the hash value H is used as the second software check value.

[0054] After obtaining the first software check value and the second software check value, the second software check value can be compared with the first software check value, when the second software check value is consistent with the first software check value, the wireless BMS is allowed to enter the next flow, and when the second software check value is inconsistent with the first software check value, the wireless BMS is refused to enter the next flow. The comparison can be a processing process of comparing whether the software check values of the master node and the slave node are consistent.

[0055] It can be understood that the second software check value is compared with the first software check value, when the second software check value is consistent with the first software check value, the wireless BMS is allowed to enter the next flow; when the second software check value is inconsistent with the first software check value, the wireless BMS is refused to enter the next flow.

[0056] For example, the second software check value is "abcd1234", the first software check value is "abcd1234", the second software check value is compared with the first software check value, it is determined that the second software check value is consistent with the first software check value, the wireless BMS is allowed to enter the next flow; when the second software check value is "abcd1234", the first software check value is "efgh5678", the second software check value is compared with the first software check value, it is determined that the second software check value is inconsistent with the first software check value, the wireless BMS is refused to enter the next flow.

[0057] It can be understood that the first check value is calculated by the random number and the program data of the upgrade software, when the wireless BMS is powered on, the second check value is calculated by the random number and the program data of the current software, and the first check value is compared with the second check value, when the first check value is consistent with the second check value, it is determined that the upgrade program is not tampered in the transmission and storage process, the wireless BMS is allowed to enter the next flow, and the safety start of the wireless BMS can be ensured; when the first check value is inconsistent with the second check value, it is determined that the data of the upgrade program has been tampered or damaged in the transmission and storage process, the wireless BMS is refused to start, so that the stability of the wireless BMS is ensured.

[0058] The software start method of the wireless BMS of the embodiment is implemented, the upgrade request is received, the random number is generated; after the upgrade is completed, the first software check value is calculated based on the random number and the program data of the upgrade software and is stored; the program data of the upgrade software includes the starting address and the size of the upgrade software; when the wireless BMS is powered on, the random number is extracted and combined with the program data of the current software to calculate the second software check value, the program data of the current software includes the starting address and the size of the current software, and the current software is the software obtained after the upgrade software is upgraded; the second software check value is compared with the first software check value, and the wireless BMS is refused or allowed to enter the next flow according to the comparison result. The problems that the existing wireless BMS system directly starts software or executes software upgrade flow, and the upgrade program may be maliciously tampered or accidentally damaged in the software data transmission and storage process, which directly leads to function abnormity or security risk of the system when starting software or executing software upgrade flow are solved.

[0059] In some embodiments, the aforementioned comparing the second software check value with the first software check value and rejecting or allowing the wireless BMS to enter the next procedure according to the comparison result includes: when the second software check value is consistent with the first software check value, allowing the wireless BMS to start; and when the second software check value is inconsistent with the first software check value, rejecting the wireless BMS to start.

[0060] In the present embodiment, in the execution step S140, when the second software check value is consistent with the first software check value, the wireless BMS can be allowed to start; and when the second software check value is inconsistent with the first software check value, the wireless BMS can be rejected to start.

[0061] It can be understood that the second software check value can be a software check value calculated by extracting a random number and combining the current program data when the wireless BMS is powered on. The first software check value can be a software check value calculated according to the random number and the program data of the upgraded software after the upgrade is completed.

[0062] After obtaining the first software check value and the second software check value, the first software check value can be compared with the first software check value, the wireless BMS can be allowed to start when the second software check value is consistent with the first software check value; and the wireless BMS can be rejected to start when the second software check value is inconsistent with the first software check value.

[0063] It can be understood that if the second software check value is inconsistent with the first software check value, the wireless BMS can be rejected to start, and it can be determined that the program data in the upgrade program has been tampered with or damaged in the transmission and storage process.

[0064] In some embodiments, the aforementioned extracting a random number and combining the program data of the current software to calculate the second software check value when the wireless BMS is powered on includes:

[0065] Step S1301: obtaining the starting address and size of the current software when the wireless BMS is powered on.

[0066] Step S1302: re-computing to obtain the second software check value according to the random number, the starting address and size of the current software.

[0067] In the present embodiment, referring to Figure 2 In the execution step S130, the starting address and size of the current software can be obtained when the wireless BMS is powered on, and the second software check value can be re-computed according to the random number, the starting address and size of the current software.

[0068] It can be understood that the current software is obtained after the software is upgraded according to the upgrade software. The starting address can be a location where the program starts to execute, and can be a specific memory address. The size of the upgrade software can be a data size of the upgrade software itself, and also represents a storage space occupied by the upgrade software. Specifically, it can be a number of bytes occupied by program data. The second check value can be obtained by combining the starting address, size and random number of the current software, and is used to detect whether the software is tampered with or damaged.

[0069] For example, the program data of the current software is a file, the starting address of the current software is 0x1000, and the size is 1024 bytes. When the wireless BMS is powered on, a random number can be extracted, and the random number, the starting address and the size are input into a hash function for operation to calculate the second software check value.

[0070] In some embodiments, the foregoing calculating the first software check value based on the random number and the program data of the upgrade software and storing include:

[0071] Step S1201, receiving the upgrade request sent by the host computer.

[0072] Step S1202, finding the upgrade software according to the upgrade request, and obtaining the starting address and size of the upgrade software.

[0073] In this embodiment, referring to Figure 3 In step S120, the upgrade request sent by the host computer can be received, and the upgrade software can be found according to the upgrade request, so as to obtain the starting address and size of the upgrade software.

[0074] It can be understood that the upgrade request includes the software location of the upgrade software. The upgrade software can be software that needs to be upgraded, and specifically can be software that needs to be updated, repaired or improved.

[0075] Specifically, when the upgrade request sent by the host computer is received, the upgrade software in the upgrade request can be obtained, and the starting address and size information of the upgrade software can be read.

[0076] For example, there is a software that needs to be upgraded in the wireless BMS, and the upgrade software is located in the storage device. When the upgrade request sent by the host computer is received, the wireless BMS can find the upgrade software according to the upgrade request, and obtain the starting address and size of the upgrade software.

[0077] In some embodiments, the foregoing calculating the first software check value based on the random number and the program data of the upgrade software and storing include:

[0078] Step S1203, combining the random number and the program data of the upgrade software in a predetermined order to obtain first to-be-calculated data.

[0079] Step S1204, calculating the first to-be-calculated data by the C-MAC algorithm to obtain the first software verification value.

[0080] In the embodiment, the random number is generated when the software upgrade application is received, and the random number is a number that is randomly generated and cannot be predicted in a sequence. Figure 4 In step S120, the random number and the program data of the upgraded software are combined in a preset order to obtain the first to-be-calculated data, and the first to-be-calculated data is calculated by the C-MAC algorithm to obtain the first software verification value.

[0081] It can be understood that the random number can be a random number generated when the software upgrade application is received, and each number in the sequence can be a number that is randomly generated and cannot be predicted. The random number can be a frame random number. The program data of the upgraded software can be files and data used to replace the old version program in the software upgrade process, and the program data of the upgraded software includes the starting address and size of the upgraded software. The preset order is an order set by the system for combining data, such as placing the random number first and then placing the program data. The combination can be a process of combining the random number and the current program data in the preset order to form the first to-be-calculated data. The first to-be-calculated data can be data obtained by combining the random number and the software program data in the preset order.

[0082] The C-MAC algorithm is an authentication and integrity protection method based on the AES encryption algorithm. An authentication code can be generated by performing an XOR operation on a message and a key and then performing AES encryption. The authentication code can be used to verify the integrity and source of the message. The C-MAC algorithm can be a message authentication code implemented by using a symmetric key block encryption algorithm (such as AES, DES, and 3DES). The C-MAC algorithm can generate a MAC value by encrypting a message block and combining a sub-key to ensure the integrity and authenticity of the message.

[0083] The first software verification value can be a software verification value obtained by calculating the first to-be-calculated data by the C-MAC algorithm, and can be used to verify the integrity and correctness of the software upgrade.

[0084] For example, when the random number is 0xAB, the current program data is ABCD, and the preset order is to place the random number first and then place the program data. The random number 0xAB and the current program data ABCD are combined in the preset order, and the combined data is 0xABABCD. The combined data 0xABABCD is used as the first to-be-calculated data. Then, the C-MAC algorithm is used to calculate the first to-be-calculated data 0xABABCD to obtain the first software verification value.

[0085] In some embodiments, the foregoing generation of the random number includes:

[0086] Step S1103, in the software program of the upgrade software, a random data frame is determined;

[0087] Step S1104, a random number is generated according to the random data frame.

[0088] In this embodiment, refer to Figure 5 In step S110, a random data frame can be determined in the software program of the upgrade software, and a frame random number can be generated according to the random data frame.

[0089] It can be understood that the software program of the upgrade software can be a program for controlling and coordinating the software updating process, and the software program of the upgrade software contains a series of instructions and algorithms for downloading, installing, configuring and testing new or updated software versions. The random data frame can be raw data for generating frame random data. The random number can be a set of new and unique data generated according to the random data frame, and the random number can be an array of a fixed length containing randomly generated data for encrypting or protecting communication content.

[0090] Specifically, when generating a random number from a random data frame, an exclusive or operation can be used to perform an exclusive or operation on each byte in the random data frame to obtain a new byte sequence as a random number. The exclusive or operation is a logical operation that outputs 1 when the two inputs are different and outputs 0 when the two inputs are the same.

[0091] For example, when the length of the random data frame is 8, a fixed exclusive or key (such as 0xAA) can be used to perform an exclusive or operation on each byte in the random data frame to obtain a new byte sequence as a random number.

[0092] In some embodiments, the aforementioned calculating the second software check value comprises:

[0093] Step S1303, combining the random number and the program data of the current software in a preset order to obtain second calculation data;

[0094] Step S1304, calculating the second calculation data by C-MAC algorithm to obtain the second software check value.

[0095] In this embodiment, refer to Figure 6 In step S130, the random number and the program data of the current software can be combined in a preset order to obtain second calculation data, and the second calculation data can be calculated by C-MAC algorithm to obtain the second software check value.

[0096] It can be understood that the random number can be a random number generated when the upgrade application is received, can be a number that is randomly generated and cannot be predicted in each number in a sequence, and can be a frame random number. The program data of the current software includes a starting address and a size of the current software, and the current software is software obtained after being upgraded according to the upgrade software. The preset order is an order used for combining data and set by the system in advance, for example, an order of placing the random number first and then placing the program data. The combining can be a process of combining the random number and the program data of the current software according to the preset order to form second to-be-calculated data. The second to-be-calculated data can be data obtained by combining the random number and the software program data received from the node according to the preset order.

[0097] The C-MAC algorithm is an authentication and integrity protection method based on the AES encryption algorithm. An authentication code can be generated by performing an XOR operation on a message and a key and then performing AES encryption. The authentication code can be used to verify the integrity and source of the message. The C-MAC algorithm can be a message authentication code implemented by using a symmetric key block encryption algorithm (such as AES, DES, or 3DES). The C-MAC algorithm can generate a MAC value by performing encryption processing on a message block and combining a sub-key, to ensure the integrity and authenticity of the message.

[0098] The second software check value can be a software check value obtained by calculating the second to-be-calculated data by using the C-MAC algorithm, and is a software check value used to verify the integrity and correctness of software upgrade.

[0099] For example, when the random number is 0xAB, the program data of the current software is ABCD, and the preset order is to place the random number first and then place the program data. The random number 0xAB and the program data ABCD of the current software are combined according to the preset order, and the combined data is 0xABABCD. The combined data 0xABABCD is used as second to-be-calculated data. Then, the C-MAC algorithm is used to calculate the second to-be-calculated data 0xABABCD, to obtain a second software check value.

[0100] The second software check value can be a software check value obtained by calculating the second to-be-calculated data by using the C-MAC algorithm.

[0101] For example, the random number is 123456, the program data of the current software is ABCDEF, and the preset order is to place the random number first and then place the program data. The random number 123456 and the program data ABCDEF of the current software can be combined according to the preset order to obtain 1234567ABCDEF, and 1234567ABCDEF is used as second to-be-calculated data. Then, the C-MAC algorithm is used to calculate the second to-be-calculated data 1234567ABCDEF, to obtain a second software check value.

[0102] In some embodiments, the aforementioned calculating the first software check value based on the random number and the program data of the upgraded software and storing further comprises: storing the first software check value into a first storage area in the OTP register, and storing the random data into a second storage area in the OTP register.

[0103] In the present embodiment, in the step S110, the first software check value can be stored into a first storage area in the OTP register, and the random data can be stored into a second storage area in the OTP register.

[0104] It can be understood that the OTP register is an electronic component that can be programmed only once, and once programmed, it cannot be modified again. Storing the first software check value and the random data into the OTP register can ensure the unchangeability of the data, thereby enhancing the security of the system. The first storage area can be a storage area in the OTP register for storing the software check value. The second storage area can be a storage area in the OTP register for storing the random data.

[0105] It can be understood that the first software check value and the random data are written into the first storage area and the second storage area of the OTP register respectively. When the first software check value is needed, the first software check value can be read from the first storage area in the OTP register, and when the random data is needed, the random data can be read from the second storage area in the OTP register. Since the OTP register can be programmed only once, it can be ensured that the first software check value and the random data cannot be tampered with or modified, thereby further improving the data security.

[0106] The present application also proposes a wireless BMS, which comprises a master node and a plurality of slave nodes in wireless communication with the master node, the master node also being in communication with a host computer, the wireless BMS being configured to enable the software starting method of the wireless BMS of the embodiments of the present application.

[0107] Referring to Figure 7 , Figure 7 is a structural schematic diagram of the wireless BMS in the hardware running environment involved in the embodiment scheme of the present application.

[0108] The wireless BMS of the embodiments of the present application can be a desktop computer, a notebook, a palm computer, a server and the like computing device. As Figure 7As shown, the wireless BMS can include a processor 1001 (such as a CPU), a network interface 1004, a user interface 1003, a memory 1005, and a communication bus 1002. The communication bus 1002 is used to realize the connection communication between the components. The user interface 1003 can include a display, an input unit such as a keyboard, and can also include a standard wired interface, a wireless interface. The network interface 1004 can optionally include a standard wired interface, a wireless interface (such as a WI-FI interface). The memory 1005 can be a high-speed RAM memory, or a stable memory (non-volatile memory) such as a disk memory. The memory 1005 can also be a storage device independent of the aforementioned processor 1001.

[0109] Those skilled in the art can understand that, Figure 7 The wireless BMS structure shown in the figure does not constitute a limitation on the wireless BMS, and can include more or fewer components than the figure, or combine certain components, or different component arrangements.

[0110] As Figure 7 As shown, the memory 1005 as a computer storage medium can include an operating system, a network communication module, a user interface module, and a computer program.

[0111] In ​ As shown in the wireless BMS, the network interface 1004 is mainly used to connect the background server and communicate data with the background server; the user interface 1003 is mainly used to connect the client (user end) and communicate data with the client; and the processor 1001 can be used to call the computer program stored in the memory 1005, and the computer program is executed by the processor 1001 to realize the steps of the software startup method of the wireless BMS described above.

[0112] Based on the computer program proposed in the foregoing embodiments, the application further proposes a storage medium storing a computer program, which is executed by a controller to realize the software startup method of the wireless BMS described in the foregoing embodiments.

[0113] The wireless BMS and the storage medium of the application can realize the steps of the software startup method of the wireless BMS, and at least have all the beneficial effects brought by the technical solutions of the software startup method embodiments of the wireless BMS, which will not be repeated here.

[0114] In several embodiments provided in the present application, it should be understood that the disclosed methods and devices can be implemented in other manners. For example, the embodiments of the device described above are merely schematic. For example, the division of the modules is merely logical function division. There can be another division manner for the actual implementation. For example, a plurality of modules or components can be combined or integrated into another device, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the modules shown or discussed can be indirect coupling or communication connection through some interfaces, devices or modules, and can be electrical, mechanical or in other forms.

[0115] The modules described as separated components can or can not be physically separated, and the components shown as modules can or can not be physical modules, i.e., can be located in one place, or can be distributed to a plurality of network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the embodiments.

[0116] In addition, each functional module in each embodiment of the present application can be integrated into a processing module, or each module can be physically present alone, or two or more modules can be integrated into one module. The integrated module can be realized in the form of hardware or in the form of a software functional module.

[0117] The integrated module, if realized in the form of a software functional module and sold or used as an independent product, can be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the present application, essentially or the part that contributes to the prior art, or all or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the embodiments of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and various media that can store program codes.

[0118] The above description is only some or preferred embodiments of the present application, and neither the text nor the drawings can limit the scope of protection of the present application. Any equivalent structural transformation made by using the contents of the present application specification and drawings, or direct / indirect application in other related technical fields is included in the scope of protection of the present application.

Claims

1. A software start-up method of a wireless BMS, characterized by, The method comprises: receiving an upgrade request and generating a random number; calculating a first software check value based on the random number and program data of the upgrade software and storing the first software check value after the upgrade is completed; the program data of the upgrade software comprises a starting address and a size of the upgrade software; when the wireless BMS is powered on, the random number is extracted and combined with program data of a current software to calculate a second software check value, the program data of the current software comprises a starting address and a size of the current software, and the current software is obtained after the upgrade software is upgraded; comparing the second software check value with the first software check value, and according to the comparison result, the wireless BMS is rejected or allowed to enter the next process.

2. The software start-up method of a wireless BMS according to claim 1, wherein, The comparison of the second software check value with the first software check value and the rejection or allowance of the wireless BMS to enter the next process comprises: when the second software check value is consistent with the first software check value, the wireless BMS is allowed to start, and when the second software check value is inconsistent with the first software check value, the wireless BMS is rejected to start.

3. The software start-up method of a wireless BMS according to claim 1 or 2, characterized in that, The extraction of the random number and the calculation of the second software check value based on the program data of the current software when the wireless BMS is powered on comprises: obtaining the starting address and the size of the current software when the wireless BMS is powered on; recomputing the second software check value according to the random number, the starting address and the size of the current software.

4. The software start-up method of a wireless BMS according to claim 1, wherein, The calculation of the first software check value based on the random number and the program data of the upgrade software and the storage of the first software check value comprise: receiving an upgrade request sent by a host computer, the upgrade request comprising a software location of the upgrade software; finding the upgrade software according to the upgrade request, and obtaining the starting address and the size of the upgrade software.

5. The software start-up method of a wireless BMS according to claim 1, wherein, The calculation of the first software check value based on the random number and the program data of the upgrade software and the storage of the first software check value comprise: combining the random number and the program data of the upgrade software in a preset order to obtain first calculation data; calculating the first software check value by using a C-MAC algorithm on the first calculation data.

6. The software booting method of a wireless BMS according to claim 1, wherein, The generation of the random number comprises: determining a random data frame in the program data of the upgrade software; generating the random number according to the random data frame.

7. The software start-up method of a wireless BMS according to claim 6, wherein, The calculation of the second software check value comprises: combining the random number and the program data of the current software in a preset order to obtain second calculation data; calculating the second software check value by using a C-MAC algorithm on the second calculation data.

8. The software start-up method of a wireless BMS according to claim 1, wherein, The calculation of the first software check value based on the random number and the program data of the upgrade software and the storage of the first software check value further comprise: storing the first software check value to a first storage area in an OTP register, and storing the random data to a second storage area in the OTP register.

9. A storage medium, characterized by The storage medium stores a computer program, the computer program comprises program instructions, and the program instructions enable the processor to execute the software start-up method of the wireless BMS in any one of claims 1 to 8 when executed by the processor.

10. A wireless BMS, characterized by, The wireless BMS is configured to enable the software start-up method of the wireless BMS as claimed in any one of claims 1 to 8.