OTA upgrading method, system and equipment of controller and storage medium

By using header file information to separate and parallel process upgrade data packets in real time during OTA upgrades of vehicle computers, the problem of low overall installation efficiency in existing technologies is solved, the synchronous download and installation of upgrade data packets is achieved, and the upgrade efficiency is improved.

CN120670003APending Publication Date: 2025-09-19HUIZHOU DESAY SV AUTOMOTIVE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510551160.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-29
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

In the prior art, the OTA upgrade method for vehicle computers has the problem of low overall installation efficiency, especially since the software can only be decompressed and upgraded after the download is complete, and it is impossible to perform installation while downloading.

Method used

By downloading continuous data streams, using header file information to separate multiple upgrade data packets in real time, and using multi-threaded tasks to parallelly process upgrade operations, the download and installation of upgrade data packets can be carried out simultaneously.

Benefits of technology

Improves upgrade efficiency, achieves simultaneous download and installation of upgrade data packages, fully utilizes the multi-core capabilities of modern processors, and shortens overall upgrade time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120670003A_ABST
    Figure CN120670003A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to the technical field of chips, and discloses an OTA upgrading method, system and device of a controller and a storage medium, the method comprises the steps that a continuous data stream is downloaded, and the data stream comprises a plurality of upgrading data packets arranged in sequence and at least one piece of header file information describing each upgrading data packet; reading header file information in the data stream, and sequentially separating upgrading data packets from the data stream according to the header file information; and establishing a multi-thread task to upgrade the upgrade object corresponding to the currently separated upgrade data packet until all the upgrade data packets of the data stream are separated. By means of the technical scheme, the problems that in the prior art, when the control chip is upgraded, decompression and upgrading can be started only after the whole upgrade package is downloaded, installation cannot be executed while downloading is conducted, and the overall installation efficiency is low are solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of chip technology, and specifically to an OTA upgrade method, system, device, and storage medium for a controller. Background Art

[0002] With the continuous development of computer communication technology and semiconductor technology, various existing electronic devices are becoming more and more complex. These electronic devices often integrate multiple chips, and generally require firmware upgrades to fix problems and add new functions. In related technologies, over-the-air technology (OTA) is usually used to upgrade firmware. OTA is a method of transmitting and upgrading firmware through an air wireless network, that is, OTA is a remote upgrade method. Specifically, using OTA to remotely upgrade the chip on the device can refer to downloading the upgraded firmware from the server through the communication module and transmitting the upgraded firmware to the chip to complete the chip upgrade process.

[0003] In the existing technology, the OTA upgrade method for the on-board computer (Electronic Control Unit, abbreviated as ECU) is mainly divided into two methods. Method 1: For ECUs without a file system, the OTA server transmits the upgrade package directly to the ECU without compression. The ECU flashes one frame for each frame transmitted. Method 2: For ECUs with a file system, when creating the OTA package, all files are packaged and compressed into a single package, such as a zip file. The OTA server needs to pass the entire compressed package to the ECU before the ECU can start decompressing and installing it.

[0004] Currently, ECUs usually contain multiple control chips, such as MCUs and SoCs. If the download is not compressed, the download package will be extremely large, and multiple chips in the ECU cannot be installed in parallel. If a compressed package is used for download, the entire upgrade package must be downloaded before decompression and upgrading can begin. Installation cannot be performed while downloading, resulting in low overall installation efficiency. Summary of the Invention

[0005] In view of the above problems, an embodiment of the present invention provides an OTA upgrade method, system, device and storage medium for a controller, which is used to solve the problem in the prior art that when upgrading the control chip, the entire upgrade package needs to be downloaded before decompression and upgrading can begin, and installation cannot be performed while downloading, resulting in low overall installation efficiency.

[0006] According to one aspect of an embodiment of the present invention, a method for OTA upgrading of a controller is provided, the method comprising: Downloading a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each of the upgrade data packets; Reading header file information in the data stream, and separating upgrade data packets from the data stream in sequence according to the header file information; A multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated.

[0007] In an optional manner, each of the data packets corresponds to a header file information; the header file information is arranged before the corresponding upgrade data packet.

[0008] In an optional manner, the arrangement order of the plurality of upgrade data packages is determined by the installation duration of the upgrade data packages, and the priority of the arrangement order is positively correlated with the installation duration.

[0009] In an optional manner, the upgrade data packet includes a first data packet arranged in front and a second data packet arranged in the back, and the installation time of the first data packet is longer than that of the second data packet.

[0010] In an optional manner, the header file information includes upgrade duration information corresponding to the installation duration of the upgrade data package.

[0011] In an optional manner, the upgrade duration information responds to one or more of the data size, data type, upgrade object and estimated duration data of the upgrade data packet.

[0012] In an optional manner, the header file information includes data type information and data size information corresponding to the upgrade data packet.

[0013] In an optional manner, the reading of the header file information in the data stream and separating the upgrade data packet from the data stream according to the header file information includes the following sub-steps: Read the data stream and identify header file information in the data stream; Determine the data size of the upgrade data packet corresponding to the header file information according to the header file information; Calculate the download volume of the data stream starting from the header file information; when the download volume of the data stream is the same as the data size of the upgrade data packet; separate the data stream downloaded in the current stage to form an independent upgrade data packet.

[0014] In an optional manner, the step of establishing a multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data package includes the following sub-steps: Create a new multi-threaded task; Parsing the currently separated upgrade data packet to determine the upgrade object; Perform upgrade operations on the upgrade object according to the parsed upgrade data packet; Determine whether the upgrade operation is completed, and if the upgrade operation is completed, close the multi-threaded task.

[0015] The upgrade object is a chip and / or SOC.

[0016] In an optional manner, the establishing of the multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated further includes: Check whether the upgrade operation of all the upgrade objects is completed; If the upgrade operation is completed for all the upgrade objects, an upgrade flag is reported; otherwise, a flag indicating that the upgrade operation is not completed is reported.

[0017] According to a second aspect of an embodiment of the present invention, there is provided a controller system, comprising: At least one functional chip module, configured to perform a preset function; and An upgrade module is used to execute the steps of the above-mentioned controller OTA upgrade method to perform an OTA upgrade operation on at least one of the functional chip modules.

[0018] In an optional manner, the upgrade module includes: Communication module, used to download continuous data stream; a parsing module, configured to read header information in the data stream and separate the upgrade data packet from the data stream according to the header information; and The execution module is used to establish a multi-thread task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated.

[0019] According to a third aspect of an embodiment of the present invention, an OTA upgrade device is provided, including: A processor, a memory, a communication interface, and a communication bus, wherein the processor, the memory, and the communication interface communicate with each other via the communication bus; The memory is used to store at least one executable instruction, and the executable instruction enables the processor to implement the steps in the above-mentioned controller OTA upgrade method to perform OTA upgrade operations on a preset upgrade object when executed.

[0020] According to a fourth aspect of an embodiment of the present invention, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, wherein when the device where the computer-readable storage medium is located executes the computer program, the OTA upgrade method of the controller as described above is implemented.

[0021] The present invention downloads a continuous data stream, which includes multiple upgrade data packets arranged in sequence and at least one header file information describing each upgrade data packet. During the process of downloading the data stream, the multiple upgrade data packets are separated in real time by reading the header file information. Once an upgrade data packet is successfully separated and downloaded, the system immediately starts a new thread to process the upgrade operation of the upgrade data packet, and continues to separate another upgrade data packet. In this way, the download and installation of the upgrade data packets are carried out simultaneously, thereby improving the upgrade efficiency.

[0022] The above description is only an overview of the technical solutions of the embodiments of the present invention. In order to more clearly understand the technical means of the embodiments of the present invention, they can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the embodiments of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are specifically listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] The accompanying drawings are only used to illustrate the embodiments and are not to be considered as limiting the present invention. In addition, the same reference symbols are used to represent the same components throughout the drawings. In the drawings: Figure 1 A schematic diagram showing a flow chart of a first embodiment of an OTA upgrade method for a controller provided by the present invention is shown; Figure 2 It shows a structural diagram of the data flow provided by the present invention; Figure 3 A schematic diagram showing the process of performing an upgrade operation on an upgrade object using an upgrade data package provided by the present invention; Figure 4 A schematic diagram showing the structure of header file information and upgrade data packets provided by the present invention is shown; Figure 5 A schematic flow chart of the sub-steps of step 120 of the first embodiment of the OTA upgrade method for a controller provided by the present invention is shown; Figure 6 A schematic flow chart of the sub-steps of step 130 of the first embodiment of the OTA upgrade method for a controller provided by the present invention is shown; Figure 7 A schematic structural diagram of an embodiment of a control system provided by the present invention is shown; Figure 8 The figure shows an implementation flow chart of the OTA upgrade method of the controller provided by the present invention. DETAILED DESCRIPTION

[0024] The exemplary embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present invention are shown in the drawings, it should be understood that the present invention can be implemented in various forms and should not be limited to the embodiments set forth herein.

[0025] Example 1: Figure 1 FIG1 shows a flow chart of a first embodiment of an OTA upgrade method for a controller of the present invention, which is executed by the controller. Figure 1 As shown, the method includes the following steps: Step 110: Download a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each upgrade data packet.

[0026] The above-mentioned data stream can be continuous data or a large file package. During the download process, the data is downloaded in a preset data order. The package format can be uncompressed. During the download process, parsing and data separation can be performed using a preset protocol. This transmission in the form of a continuous data stream can not only improve transmission efficiency, but also avoid the problem of waiting for the entire large compressed package to be downloaded. The downloaded continuous data stream includes multiple upgrade data packets and at least one header file information corresponding to the multiple upgrade data packets. The header file information describes the data information within the multiple upgrade data packets. During the data stream download process, the system reads the header file information downloaded in real time. Through the header file information, it can be obtained how many bytes in the data stream belong to the same upgrade data packet. For example, through the header file information, it can be determined how many bytes in the data stream belong to the first upgrade data packet and how many bytes belong to the second upgrade data packet.

[0027] The data stream may originate from a data source such as a server or a data storage terminal, and may be downloaded from the server or data storage terminal via a wired or wireless method.

[0028] Step 120: Read the header file information in the data stream, and separate the upgrade data packets from the data stream in sequence according to the header file information.

[0029] The process involves reading header information from a data stream and sequentially separating multiple upgrade data packets from the data stream, so that each upgrade data packet corresponds to a different upgrade object. For example, from a downloaded data stream, data information belonging to the same upgrade data packet is obtained using header information, and this data information corresponds to a single upgrade object.

[0030] It should be noted that based on the parsed header information, the system can accurately separate the individual update packets from the data stream. This process is dynamic, meaning that as the data stream continues to download, the system can begin separating and processing received packets without having to wait for the entire data stream to download.

[0031] Step 130: Establish a multi-thread task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are completely separated.

[0032] The separated update packets perform the upgrade operation on the corresponding update objects until all update packets in the data stream are separated. This means that multiple update packets perform the upgrade operation on multiple update objects one by one. For example, after the first update packet is separated from the data stream and downloaded, a multi-threaded task is started to install the update packet, performing the upgrade operation on the update object, while simultaneously downloading the second update packet.

[0033] As you can see, once an update package has been successfully separated and downloaded, the system immediately starts a new thread to handle the update operation for that package. This multi-threaded approach allows multiple update operations to proceed in parallel, fully utilizing the multi-core capabilities of modern processors and improving update efficiency.

[0034] The above method downloads a continuous data stream, which includes multiple upgrade data packets arranged in sequence and at least one header file information describing each upgrade data packet. During the process of downloading the data stream, the multiple upgrade data packets are separated in real time by reading the header file information. Once an upgrade data packet is successfully separated and downloaded, the system immediately starts a new thread to process the upgrade operation of the upgrade data packet, and continues to separate another upgrade data packet. In this way, the download and installation of the upgrade data packets are carried out simultaneously, thereby improving the upgrade efficiency.

[0035] In some embodiments, each data packet number corresponds to a header file information; the header file information is arranged before the corresponding upgrade data packet. Figure 2 As shown, for example, the downloaded data stream contains three upgrade data packets, including upgrade data packet 1, upgrade data packet 2, and upgrade data packet 3. The arrangement order is: header file information 1, upgrade data packet 1, header file information 2, upgrade data packet 2, header file information 3, and upgrade data packet 3.

[0036] In this embodiment, by configuring independent header information for each update packet, the boundaries of each update packet can be accurately identified and located, facilitating subsequent separation operations. Placing the header information before the corresponding update packet enables the system to pre-read the header information and obtain key information about the update packet, preparing for subsequent separation and processing. This allows for efficient identification, location, and separation of multiple update packets within a data stream.

[0037] It should be noted that this arrangement can be implemented in a variety of ways. For example, the header information can be placed immediately before its corresponding upgrade data packet. In other embodiments, all header information can be placed at the beginning of the data stream and arranged in the order of the upgrade data packets. Preferably, the header information is placed immediately before its corresponding upgrade data packet to facilitate subsequent expansion of the data stream.

[0038] In some embodiments, the arrangement order of the multiple upgrade data packages is determined by the installation time of the upgrade data packages, and the priority of the arrangement order is positively correlated with the installation time.

[0039] In this embodiment, the installation duration of an upgrade data packet determines its placement within multiple upgrade data packets, and the priority of placement is positively correlated with the installation duration. For example, data packets with longer installation durations are placed first, allowing longer-running upgrade tasks to begin first, thereby improving parallel processing efficiency. This sorting method maximizes parallel processing capabilities, reduces overall upgrade time, and improves OTA upgrade efficiency.

[0040] In some embodiments, the upgrade data package includes a first data package arranged in front and a second data package arranged in the back, and the installation time of the first data package is longer than that of the second data package.

[0041] In this embodiment, the data packet with a longer installation time, i.e., the first data packet, is placed in front, and the data packet with a shorter installation time, i.e., the second data packet, is placed in the back. This sorting method helps to solve the impact of differences in the installation time of upgrade data packets on the OTA upgrade efficiency.

[0042] It should be noted that the above-mentioned first data packet and second data packet do not limit the number of data packets in the data stream. They can be understood as at least two upgrade data packets contained in the data stream, which can be arranged according to the above-mentioned rules, thereby effectively shortening the upgrade time.

[0043] As you can see, because upgrade packages that require longer installation times are queued at the front, multithreaded tasks can begin processing these complex upgrade packages earlier, while upgrade packages that require shorter installation times can be processed quickly later. This combination not only optimizes parallel processing efficiency but also improves overall resource utilization.

[0044] Please refer to Figure 3 , Figure 3 An example of an implementation process of an upgrade operation is given. The data stream contains multiple upgrade data packets, which upgrade different upgrade objects respectively. The download and installation are performed simultaneously through multi-threaded tasks. Specifically, during the download process, upgrade data packet 1, upgrade data packet 2, upgrade data packet 3, and upgrade data packet 4 are downloaded in sequence. Among them, the installation time of upgrade data packet 1 is relatively long. After the download of upgrade data packet 1 is completed, the controller establishes a new multi-threaded task 1 to perform an upgrade operation on upgrade data packet 1, and continues to download upgrade data packet 2 at the same time; after the download of upgrade data packet 2 is completed, the controller establishes a new multi-threaded task 2 to perform an upgrade operation on upgrade data packet 2, and continues to download upgrade data packet 3 at the same time; after the download of upgrade data packet 3 is completed, the controller establishes a new multi-threaded task 3 to perform an upgrade operation on upgrade data packet 3, and continues to download upgrade data packet 4 at the same time, until the upgrade operation is completed for all upgrade data packets.

[0045] This arrangement significantly improves upgrade efficiency. For example, if 1. System Upgrade Package 1 (estimated installation time: 10 minutes), 2. System Upgrade Package 2 (estimated installation time: 5 minutes), 3. System Upgrade Package 3 (estimated installation time: 3 minutes), and 4. System Upgrade Package 4 (estimated installation time: 2 minutes) are being installed simultaneously, the other three System Upgrade Packages 3 (a total of 10 minutes) can be processed in parallel. Assuming the system can handle all three tasks simultaneously, even including download time, the entire upgrade process can be completed in just over 10 minutes, rather than the 20 minutes required for a sequential installation plus the additional download time.

[0046] In some embodiments, the header file information includes upgrade duration information corresponding to the installation duration of the upgrade data package.

[0047] In this embodiment, by including the installation duration information for each upgrade data package in the header file information, the system can determine the estimated installation time for each upgrade data package before the upgrade begins. Using this information, the system can rationally arrange the processing order of each upgrade data package, for example, prioritizing packages with longer installation times. This improves overall upgrade efficiency, reduces idle time during the upgrade process, and makes the entire upgrade process more compact and efficient.

[0048] In some embodiments, the upgrade duration information is responsive to one or more of the data size, data type, upgrade object, and estimated duration data of the upgrade data packet.

[0049] In this embodiment, the upgrade duration of an upgrade data packet is determined based on one or more of the following: data size, data type, upgrade target, and estimated duration data. Specifically, the upgrade duration information can be determined based on one or more factors. By considering one or more of these factors, the system can more accurately estimate the time required for the upgrade. The advantage of this method lies in its flexibility and adaptability. Depending on the actual situation, the most relevant factors can be selected to estimate the upgrade time, thereby improving the accuracy of the sequential arrangement of multiple upgrade data packets.

[0050] For example, for an upgrade data package, the system will comprehensively consider its data size (such as 50MB) and data type (such as firmware upgrade). Based on this information, the system can estimate a more accurate upgrade duration (such as 15 minutes). This upgrade duration allows the system to better plan the arrangement order.

[0051] In some embodiments, the header file information includes data type information and data size information corresponding to the upgrade data packet.

[0052] In this embodiment, if Figure 4 As shown, the data type information represents the type of the upgrade data packet, and the data size information represents the size of the upgrade data packet. The system can obtain the data type and data size of the upgrade data packet through the header file information. In this way, the key data features can be obtained before the upgrade, thereby determining the arrangement order of multiple upgrade data packets.

[0053] Please combine Figure 5 , Figure 5 A flow chart of the sub-steps in step 120 of the OTA upgrade method for the controller of the present invention is shown.

[0054] In step 120, the header information in the data stream is read, and the upgrade data packet is separated from the data stream according to the header information, including the following sub-steps: Step 121: Read the data stream and identify the header file information in the data stream.

[0055] The starting position of each upgrade data packet is accurately located by identifying the header information in the data stream. The header information represents the key information of the upgrade data packet, such as the file size and file type of the upgrade data packet.

[0056] Step 122: Determine the data size of the upgrade data packet corresponding to the header file information according to the header file information.

[0057] The data size of the upgrade data packet corresponding to the identified header information is determined based on the identified header information. This step can be implemented in a variety of ways. For example, the header information may directly include a field for the data packet size, or the size may be calculated using a predefined algorithm based on other information in the header file. Accurately obtaining the data packet size determines the amount of data to be downloaded and separated.

[0058] Step 123: Calculate the download volume of the data stream starting from the header file information; when the download volume of the data stream is the same as the data size of the upgrade data packet; separate the data stream downloaded in the current stage to form an independent upgrade data packet.

[0059] Calculating the download volume of the data stream starting from the header file information can be achieved by monitoring the download progress of the data stream in real time. For example, a counter can be used to record the number of bytes downloaded, or the size change of the data stream buffer can be used to track the download progress. When the calculated download volume of the data stream is the same as the data size of the previously determined upgrade data packet, the data stream downloaded in the current stage is separated to form independent upgrade data packets. This step ensures that the separated data packets are complete, without data loss or redundant data.

[0060] In this embodiment, the header information in the data stream is identified, the data size of the upgrade data packet corresponding to the header information is obtained, the download volume of the data stream starting from the header information is calculated, and the download volume is compared with the data size of the upgrade data packet. If the download volume and the data size of the upgrade data packet are the same, the downloaded data stream is separated into independent upgrade data packets, thereby achieving the separation of the upgrade data packets. This method avoids the problem of having to download the entire data stream before parsing, thereby improving data processing efficiency.

[0061] Please combine Figure 6 , Figure 6 A flow chart of the sub-steps in step 130 of the OTA upgrade method for the controller of the present invention is shown.

[0062] In step 130, a multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data package, including the following sub-steps: Step 131: Create a new multi-threaded task; Step 132: Parse the currently separated upgrade data packet to determine the upgrade object; Step 133: performing an upgrade operation on the upgrade object according to the parsed upgrade data packet; Step 134: Determine whether the upgrade operation is completed. If the upgrade operation is completed, close the multi-threaded task.

[0063] The upgrade object is a chip and / or SOC.

[0064] In this embodiment, by establishing a multi-threaded task to parse and upgrade the currently separated upgrade data packets, multiple upgrade objects can be upgraded in parallel during the controller OTA upgrade process, thereby improving overall upgrade efficiency. The upgrade objects are upgraded based on the parsed upgrade data packets, ensuring the accuracy of the upgrade operation. The upgrade operation is then determined to be complete. If so, the corresponding thread task is closed, achieving efficient resource utilization.

[0065] For example, a thread is established to parse the first data packet and perform an upgrade operation on the first upgrade object, while continuing to download the second data packet. After the download is completed, another thread is created to parse the second data packet and perform an upgrade operation on the second upgrade object. After all upgrade objects have been upgraded, it is determined whether the upgrade operation is completed. If completed, the corresponding thread task is closed.

[0066] In some embodiments, establishing a multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are completely separated further includes: Check whether the upgrade operation of all upgrade objects is completed; If the upgrade operation is completed for all upgrade objects, the upgrade flag is reported; otherwise, the flag indicating that the upgrade operation is not completed is reported.

[0067] For example, after each upgrade object is upgraded, the corresponding flag is set to the completed state, or the completion counter is incremented by 1. When the flags of all upgrade objects are in the completed state, or the completion counter is equal to the total number of upgrade objects, it can be determined that all upgrade operations are completed.

[0068] Example 2: like Figure 7 As shown, Figure 7 The schematic diagram of the control system of the present invention is a control system, comprising at least one functional chip module 10 and an upgrade module 20.

[0069] Among them, the function chip module 10 is used to execute preset functions; the upgrade module 20 is used to execute the steps of the above-mentioned controller OTA upgrade method to perform OTA upgrade operations on at least one function chip module 10.

[0070] In some embodiments, the functional chip module 10 may be used to perform assisted driving functions, assisted parking functions, cabin control functions, etc.

[0071] The upgrade module 20 is specifically configured to perform the following method steps: Downloading a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each upgrade data packet; Read the header file information in the data stream, and separate the upgrade data packets from the data stream in sequence according to the header file information; A multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are completely separated.

[0072] In some embodiments, the upgrade module 20 includes: a communication module 21 , a parsing module 22 and an execution module 23 .

[0073] Among them, the communication module 21 is used to download a continuous data stream, where the data stream can come from a remote OTA server; the parsing module 22 is used to read the header file information in the data stream and separate the upgrade data packet from the data stream according to the header file information; the execution module 23 is used to establish a multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are separated.

[0074] It should be noted that the upgrade module 20 can be dedicated to upgrading the functional chip module or can also be used to upgrade the functional chip module. For example, the upgrade module can be the main control chip of the driving domain controller, which is also used to implement the intelligent assisted driving function when not performing the OTA upgrade operation of this application.

[0075] The above system downloads a continuous data stream, which includes multiple upgrade data packets arranged in sequence and at least one header file information describing each upgrade data packet. During the process of downloading the data stream, the system reads the header file information to achieve real-time separation of multiple upgrade data packets. Once an upgrade data packet is successfully separated and downloaded, the system immediately starts a new thread to process the upgrade operation of the upgrade data packet, and continues to separate another upgrade data packet. In this way, the download and installation of the upgrade data packet are carried out simultaneously, thereby improving the upgrade efficiency.

[0076] Example 3: Figure 8 The schematic diagram of the structure of an embodiment of the OTA upgrade device of the present invention is shown. The specific embodiment of the present invention does not limit the specific implementation of the OTA upgrade device.

[0077] like Figure 5 As shown, an OTA upgrade device may include: a processor (processor) 801, a communication interface (Communications Interface) 802, a memory (memory) 803, and a communication bus 804.

[0078] Processor 801, communication interface 802, and memory 803 communicate with each other via communication bus 804. Communication interface 802 is used to communicate with other devices, such as an OTA server or other server network elements. Processor 801 is used to execute program 810, which, when executed, implements the steps of the controller OTA upgrade method described above to perform an OTA upgrade operation on a preset upgrade target.

[0079] Specifically, the program 810 may include program code including computer-executable instructions.

[0080] Specifically, processor 801 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention. The one or more processors included in the OTA upgrade device may be processors of the same type, such as one or more CPUs, or processors of different types, such as one or more CPUs and one or more ASICs.

[0081] The memory 803 is used to store the program 810. The memory 803 may include a high-speed RAM memory, or may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.

[0082] Program 810 may be specifically called by processor 801 to enable the OTA upgrade device to perform the following operations: Downloading a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each upgrade data packet; Read the header file information in the data stream, and separate the upgrade data packets from the data stream in sequence according to the header file information; A multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are completely separated.

[0083] The above data flow is consistent with the data flow in Example 1. For details, please refer to the description in Example 1, which will not be repeated in this embodiment.

[0084] In an optional implementation, the program 810 is called by the processor 801 to enable the OTA upgrade device to execute the specific sub-steps of step 120 and step 130 in Example 1.

[0085] The above device downloads a continuous data stream, which includes multiple upgrade data packets arranged in sequence and at least one header file information describing each upgrade data packet. During the process of downloading the data stream, the multiple upgrade data packets are separated in real time by reading the header file information. Once an upgrade data packet is successfully separated and downloaded, the system immediately starts a new thread to process the upgrade operation of the upgrade data packet, and continues to separate another upgrade data packet. In this way, the download and installation of the upgrade data packet are carried out simultaneously, thereby improving the upgrade efficiency.

[0086] Example 4: An embodiment of the present invention provides a computer-readable storage medium storing at least one executable instruction. When the executable instruction runs on an OTA upgrade device, the OTA upgrade device executes the OTA upgrade method of the controller in any of the above method embodiments.

[0087] The executable instructions can be used to enable the OTA upgrade device to perform the following operations: Downloading a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each upgrade data packet; Read the header file information in the data stream, and separate the upgrade data packets from the data stream in sequence according to the header file information; A multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets in the data stream are completely separated.

[0088] By downloading a continuous data stream, which includes multiple upgrade data packets arranged in sequence and at least one header file information describing each upgrade data packet, the system can realize real-time separation of multiple upgrade data packets by reading the header file information during the data stream download process. Once an upgrade data packet is successfully separated and downloaded, the system immediately starts a new thread to process the upgrade operation of the upgrade data packet, and continues to separate another upgrade data packet. In this way, the download and installation of the upgrade data packet are realized simultaneously, thereby improving the upgrade efficiency.

[0089] The algorithms or displays provided herein are not inherently related to any particular computer, virtual system or other device. In addition, the embodiments of the present invention are not directed to any particular programming language.

[0090] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the present invention may be practiced without these specific details. Similarly, in order to streamline the present invention and aid in understanding one or more of the various inventive aspects, in the above description of exemplary embodiments of the present invention, various features of embodiments of the present invention are sometimes grouped together into a single embodiment, figure, or description thereof. The claims that follow the detailed description are hereby expressly incorporated into that detailed description, with each claim itself serving as a separate embodiment of the present invention.

[0091] Those skilled in the art will appreciate that the modules in the devices of the embodiments can be adaptively changed and installed in one or more devices different from the embodiments. The modules, units, or components in the embodiments can be combined into one module, unit, or component, and furthermore, they can be divided into multiple submodules, subunits, or subcomponents. Except that at least some of such features and / or processes or units are mutually exclusive.

[0092] It should be noted that the above embodiments illustrate rather than limit the invention, and that alternative embodiments may be devised by a person skilled in the art without departing from the scope of the appended claims. In the claims, any reference signs placed between brackets should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The present invention may be implemented by means of hardware comprising several different elements and by means of appropriately programmed computers. In a unit claim enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third etc. does not indicate any order. These words may be interpreted as names. The steps in the above embodiments should not be understood as limiting the order of execution unless otherwise specified.

Claims

1. A controller OTA upgrade method, characterized in that: include: Downloading a continuous data stream, wherein the data stream includes a plurality of sequentially arranged upgrade data packets and at least one header file information describing each of the upgrade data packets; Reading header file information in the data stream, and separating upgrade data packets from the data stream in sequence according to the header file information; A multi-threaded task is established to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated.

2. The OTA upgrade method of the controller according to claim 1, characterized in that: Each of the data packets corresponds to a header file information; the header file information is arranged before the corresponding upgrade data packet.

3. The OTA upgrade method of the controller according to claim 2, characterized in that: The arrangement order of the plurality of upgrade data packages is determined by the installation time of the upgrade data packages, and the priority of the arrangement order is positively correlated with the installation time.

4. The OTA upgrade method of the controller according to claim 3, characterized in that: The upgrade data package includes a first data package arranged in front and a second data package arranged in the back, and the installation time length of the first data package is longer than that of the second data package.

5. The OTA upgrade method of the controller according to claim 1, characterized in that: The header file information includes upgrade duration information corresponding to the installation duration of the upgrade data package.

6. The OTA upgrade method of the controller according to claim 5, characterized in that: The upgrade duration information is in response to one or more of the data size, data type, upgrade object and estimated duration data of the upgrade data packet.

7. The OTA upgrade method of the controller according to claim 1 or 6, characterized in that: The header file information includes data type information and data size information corresponding to the upgrade data packet.

8. The OTA upgrade method of the controller according to claim 1, characterized in that: The step of reading the header file information in the data stream and separating the upgrade data packet from the data stream according to the header file information includes the following sub-steps: Read the data stream and identify header file information in the data stream; Determine the data size of the upgrade data packet corresponding to the header file information according to the header file information; Calculate the download volume of the data stream starting from the header file information; when the download volume of the data stream is the same as the data size of the upgrade data packet; separate the data stream downloaded in the current stage to form an independent upgrade data packet.

9. The OTA upgrade method of the controller according to claim 1, characterized in that: The step of establishing a multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet includes the following sub-steps: Create a new multi-threaded task; Parsing the currently separated upgrade data packet to determine the upgrade object; Perform upgrade operations on the upgrade object according to the parsed upgrade data packet; Determine whether the upgrade operation is completed, and if the upgrade operation is completed, close the multi-threaded task. The upgrade object is a chip and / or SOC.

10. The OTA upgrade method of the controller according to claim 9, characterized in that: The step of establishing a multi-threaded task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated further includes: Check whether the upgrade operation of all the upgrade objects is completed; If the upgrade operation is completed for all the upgrade objects, an upgrade flag is reported; otherwise, a flag indicating that the upgrade operation is not completed is reported.

11. A controller system, characterized in that: include: At least one functional chip module, used to perform preset functions; and An upgrade module, which is used to execute the steps of the OTA upgrade method of the controller according to any one of claims 1 to 10, so as to perform an OTA upgrade operation on at least one of the functional chip modules.

12. The controller system according to claim 11, wherein: The upgrade module includes: Communication module, used to download continuous data stream; a parsing module, configured to read header information in the data stream and separate the upgrade data packet from the data stream according to the header information; and The execution module is used to establish a multi-thread task to perform an upgrade operation on the upgrade object corresponding to the currently separated upgrade data packet until all upgrade data packets of the data stream are completely separated.

13. An OTA upgrade device, characterized in that: include: A processor, a memory, a communication interface, and a communication bus, wherein the processor, the memory, and the communication interface communicate with each other via the communication bus; The memory is used to store at least one executable instruction, and the executable instruction enables the processor to implement the steps in the OTA upgrade method of the controller according to any one of claims 1 to 10 to perform OTA upgrade operations on a preset upgrade object when executed.

14. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein when the device where the computer-readable storage medium is located executes the computer program, the OTA upgrade method of the controller according to any one of claims 1 to 10 is implemented.