Vehicle-mounted software upgrading method, upper computer, vehicle, storage medium and program product

By building a hierarchical grouping architecture and serial parallel scheduling queues to optimize ECU upgrade timing, the problem of low efficiency in vehicle software upgrades is solved, achieving more efficient vehicle software updates.

CN120670004APending Publication Date: 2025-09-19BYD CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510578053.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-06
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

In the existing technology, the efficiency of vehicle ECU software upgrade is low, and it takes several hours to upgrade the entire vehicle ECU software, resulting in high time costs.

Method used

By grouping ECUs according to their category information, domain controller number information, and communication network segment information, a hierarchical grouping architecture is constructed. Serial and parallel scheduling queues are combined to control the upgrade process and optimize the upgrade sequence to avoid conflicts.

Benefits of technology

It improves the efficiency of vehicle software upgrades, shortens the upgrade cycle, and improves the efficiency and reliability of vehicle software updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120670004A_ABST
    Figure CN120670004A_ABST
Patent Text Reader

Abstract

The invention relates to a vehicle-mounted software upgrading method, an upper computer, a vehicle, a storage medium and a program product, and relates to the technical field of software upgrading. The vehicle-mounted software upgrading method comprises the following steps: firstly, grouping control units to be upgraded according to category information of the control units to be upgraded, serial number information of domain controllers to which the control units belong and communication network segment information to obtain a hierarchical grouping architecture; and then, according to the hierarchical grouping architecture, each control unit to be upgraded is controlled to be upgraded. Firstly, grouping is carried out by integrating category information of each control unit to be upgraded, subordinate domain controller number information and communication network segment information, a hierarchical grouping architecture is constructed, and the attribute difference of different control units to be upgraded and the position relation of the control units to be upgraded in a whole vehicle system can be fully considered. And then, the upgrading process is controlled based on the hierarchical grouping architecture, and the upgrading time sequence of each control unit to be upgraded is planned, so that the condition of conflicts in the upgrading process is avoided, and the whole vehicle software updating efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of software upgrade, and in particular to a vehicle-mounted software upgrade method, a host computer, a vehicle, a storage medium, and a program product. Background Art

[0002] With the rapid development of smart cars, software updates for onboard electronic control units (ECUs) are crucial for enhancing vehicle intelligence, improving functionality, and optimizing performance. The number of ECUs in a vehicle continues to increase, ranging from a dozen to hundreds. Throughout R&D, production, and after-sales, ECU function upgrades and performance optimizations rely on application updates. This demand for software updates is not only crucial for the continued advancement of automotive technology but also a key factor in meeting the market's ever-increasing demands for smart car functionality and user experience.

[0003] Currently, vehicle software upgrades primarily involve over-the-air (OTA) upgrades and local upgrades. However, most solutions rely on sequential upgrades of individual ECUs. Even when parallel upgrades are possible within specific communication network segments, such as the CAN (Controller Area Network) segment, the number of ECUs that can be upgraded simultaneously is limited. Consequently, upgrading the entire vehicle's ECU software often takes several hours, resulting in significant time and cost. Therefore, improving the efficiency of vehicle software upgrades has become a pressing technical challenge. Summary of the Invention

[0004] An embodiment of the present application provides a vehicle-mounted software upgrade method, which improves the upgrade efficiency of the entire vehicle software to at least partially solve the above-mentioned technical problems.

[0005] To achieve the above objectives, according to a first aspect of the present application, a method for upgrading vehicle software is provided, comprising:

[0006] Grouping the control units to be upgraded according to their category information, domain controller number information, and communication network segment information to obtain a hierarchical grouping architecture;

[0007] According to the hierarchical grouping architecture, each of the control units to be upgraded is controlled to be upgraded.

[0008] Optionally, grouping the control units to be upgraded according to their category information, the numbering information of their domain controllers, and the communication network segment information to obtain a hierarchical grouping architecture includes:

[0009] generating an upgrade code for each of the control units to be upgraded according to the category information, the number information, and the communication network segment information;

[0010] The control units to be upgraded are grouped according to the upgrade codes to obtain the hierarchical grouping architecture.

[0011] Optionally, the upgrade code includes a first subcode, a second subcode, a third subcode and a fourth subcode;

[0012] Generating an upgrade code for each control unit to be upgraded according to the category information, the number information, and the communication network segment information includes:

[0013] Obtaining the first subcode of the control unit to be upgraded according to the category information;

[0014] Obtaining the second sub-code of the control unit to be upgraded according to the numbering information;

[0015] Obtaining the third subcode of the control unit to be upgraded according to the second subcode and the communication network segment information;

[0016] The fourth subcode of the control unit to be upgraded is obtained according to the second subcode and the third subcode.

[0017] Optionally, obtaining the third subcode of the control unit to be upgraded according to the second subcode and the communication network segment information includes:

[0018] For each of the control units to be upgraded that have the same second sub-code, the control units to be upgraded that have the same communication network segment information are assigned the same third sub-code, and the control units to be upgraded that have different communication network segment information are assigned different third sub-codes to distinguish the different communication network segment information of the control units to be upgraded under the same domain controller.

[0019] Optionally, obtaining the fourth subcode of the control unit to be upgraded according to the second subcode and the third subcode includes:

[0020] The control units to be upgraded having the same second subcode and the same third subcode are sorted to obtain a sorting sequence number, and the fourth subcode of the control unit to be upgraded is obtained according to the sorting sequence number.

[0021] Optionally, the hierarchical grouping architecture includes first-level grouping, second-level grouping, and third-level grouping;

[0022] Each of the first-level groups includes at least one second-level group, each of the second-level groups includes at least one third-level group, and the third-level group includes at least one control unit to be upgraded.

[0023] Optionally, grouping the control units to be upgraded according to the upgrade codes to obtain the hierarchical grouping architecture includes:

[0024] Dividing each of the control units to be upgraded into one or more of the first-level groups according to the first sub-code;

[0025] For each of the first-level groups, dividing the control units to be upgraded in the first-level group into one or more second-level groups according to the second sub-code;

[0026] For each secondary group, the control units to be upgraded in the secondary group are divided into one or more tertiary groups according to the third sub-code.

[0027] Optionally, controlling each of the control units to be upgraded to perform an upgrade according to the hierarchical grouping architecture includes:

[0028] Sorting each of the first-level groups according to a preset order to obtain a plurality of serial scheduling queues;

[0029] For each of the serial scheduling queues, a parallel scheduling queue is generated according to each of the secondary groups under the primary group; wherein each of the serial scheduling queues corresponds to one of the parallel scheduling queues;

[0030] According to the serial scheduling queue and the parallel scheduling queue, each of the control units to be upgraded is controlled to be upgraded.

[0031] Optionally, generating a parallel scheduling queue according to each of the second-level groups under the first-level group includes:

[0032] Each time, selecting an upgrade code of the control unit to be upgraded from different secondary groups under the primary group as a first target code, and adding the first target code to a target queue, until there is only one target second group in the primary group, and the target second group is the second group including the first control unit to be upgraded that is not added to the target queue;

[0033] For the target second group, each time selecting an upgrade code of the first control unit to be upgraded from different third-level groups under the target second group as a second target code, and adding the second target code to the target queue until there is only one target third group in the target second group, and the target third group is a third group that includes the second control unit to be upgraded that is not added to the target queue;

[0034] The upgrade code of the second control unit to be upgraded in the target third group is used as the third target code, a thread mark is set for the third target code, and the third target code with the thread mark set is added to the target queue to obtain the parallel scheduling queue.

[0035] Optionally, setting a thread mark for the third target code includes:

[0036] setting the thread flag according to the third sub-code in the third target code;

[0037] The thread mark is used to represent the number of first parallel threads supported by the corresponding communication network segment information.

[0038] Optionally, controlling each of the control units to be upgraded to perform an upgrade according to the serial scheduling queue and the parallel scheduling queue includes:

[0039] Execute each serial scheduling queue in sequence. During the execution of each serial scheduling queue, control each control unit to be upgraded is controlled to be upgraded in parallel according to the parallel scheduling queue corresponding to the serial scheduling queue.

[0040] Optionally, controlling each of the control units to be upgraded to perform a parallel upgrade according to the parallel scheduling queue corresponding to the serial scheduling queue includes:

[0041] Selecting one of the upgrade codes from the parallel scheduling queue;

[0042] If the selected upgrade code does not have the thread flag set, controlling the corresponding control unit to be upgraded to perform parallel upgrade according to the preset second parallel thread number;

[0043] If the selected upgrade code sets the thread mark, after all threads are idle, the corresponding control units to be upgraded are controlled to perform parallel upgrades according to the number of the first parallel threads represented by the thread mark.

[0044] According to a second aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above method are implemented.

[0045] According to a third aspect of the present application, a host computer is provided, comprising a memory and a processor; the memory stores a computer program, and the processor is used to run the computer program in the memory to execute the steps of the above method.

[0046] According to a fourth aspect of the present application, a vehicle is provided, comprising the host computer as described above.

[0047] According to a fifth aspect of the present application, a computer program product is provided, comprising a computer program or instructions, which implement the steps of the above-mentioned method when executed by a processor.

[0048] In summary, the vehicle software upgrade method of the present embodiment first groups the control units to be upgraded, their category information, domain controller number information, and communication network segment information into groups and constructs a hierarchical grouping architecture. This fully accounts for the differences in properties of the different control units to be upgraded and their positional relationships within the vehicle system. Then, based on the hierarchical grouping architecture, the upgrade process is controlled, and the upgrade sequence for each control unit to be upgraded is planned based on their interdependencies, thus avoiding conflicts during the upgrade process. This improves the efficiency of vehicle software updates and shortens the upgrade cycle.

[0049] Other features and advantages of the present application will be described in detail in the subsequent detailed description. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] To more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for describing the embodiments. Obviously, the drawings described below are only some embodiments of the present application. Those skilled in the art can also derive other drawings based on these drawings without inventive effort.

[0051] In order to more completely understand the present application and its beneficial effects, the following description will be given in conjunction with the accompanying drawings, wherein the same drawing numbers represent the same parts in the following description.

[0052] Figure 1 is a flow chart of a vehicle software upgrade method provided in an exemplary embodiment of the present disclosure;

[0053] Figure 2 is a schematic diagram of the architecture of an in-vehicle software upgrade provided in an exemplary embodiment of the present disclosure;

[0054] Figure 3 is a flow chart of a method for generating a hierarchical grouping architecture provided in an exemplary embodiment of the present disclosure;

[0055] Figure 4is a flow chart of a method for generating an upgrade code provided in an exemplary embodiment of the present disclosure;

[0056] Figure 5 is a schematic diagram of an upgrade code storage provided in an exemplary embodiment of the present disclosure;

[0057] Figure 6 It is a flow chart of a method for generating a parallel scheduling queue provided in an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION

[0058] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the embodiments described are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present application.

[0059] According to the first aspect of this application, referring to Figure 1 The present disclosure provides a vehicle software upgrade method, including steps S110 to S120, which are described in detail below.

[0060] Step S110: Grouping the control units to be upgraded according to their category information, the number information of their domain controllers, and the communication network segment information to obtain a hierarchical grouping architecture.

[0061] Among them, the category information is the type of control unit to be upgraded, which may include a regional controller, a low-voltage module, a high-voltage module, a communication module, and a central domain controller. The numbering signal of the domain controller to which the control unit to be upgraded belongs is used to distinguish the number of the central domain controller or the regional controller to which the control unit to be upgraded belongs. When the control unit to be upgraded is a regional controller or a central domain controller, there is no domain controller to which it belongs. At this time, the numbering information may be a preset fixed value, such as zero. The network segment information may include a CAN (Controller Area Network) segment, a CAN FD (Controller Area Network Flexible Data-rate) segment, or a LIN (Local Interconnect Network) segment. The CAN segment is a serial communication protocol widely used in automotive and other fields, which can realize reliable and efficient communication segments between multiple nodes. The CAN FD segment improves the data transmission rate and effective data length based on the CAN segment. The LIN segment is a low-cost serial communication network, mainly used for cost-sensitive distributed electronic systems in automobiles.

[0062] Combine Figure 2 , Figure 2 It is a schematic diagram of each control unit to be upgraded. There can be multiple regional controllers. The central domain controller is connected to several regional controllers and several first control units to be upgraded respectively. Then the domain controller to which the first control unit to be upgraded belongs is the central domain controller. Each regional controller is also connected to several second control units to be upgraded. Then the domain controller to which the second control unit to be upgraded belongs is the regional controller connected thereto. As an example, DoIP (Diagnostics over Internet Protocol, diagnosis based on Internet Protocol) communication can be adopted between the central domain controller and each regional controller. DoIP communication is a technology that allows vehicle diagnostic equipment to communicate with each controller in the vehicle through an IP network to realize functions such as fault diagnosis. The communication methods of CAN segment, CAN FD segment and LIN segment are adopted between the regional controller domain and each control unit to be upgraded, and between the central domain controller and each control unit to be upgraded.

[0063] Step S120: Control each control unit to be upgraded to perform an upgrade according to the hierarchical grouping structure.

[0064] In the above-described embodiment, by first grouping the control units to be upgraded based on their category information, domain controller number information, and communication network segment information, and constructing a hierarchical grouping architecture, the differences in attributes of the different control units to be upgraded and their positional relationships within the vehicle system are fully accounted for. Then, by controlling the upgrade process based on the hierarchical grouping architecture, the upgrade sequence for each unit to be upgraded is planned based on their interdependencies, thus avoiding conflicts during the upgrade process. This improves the efficiency of vehicle software updates and shortens the upgrade cycle.

[0065] Reference Figure 3 In some embodiments, step S110 may include steps S111 and S112, which are described in detail below.

[0066] Step S111: Generate an upgrade code for each control unit to be upgraded based on the category information, number information and communication network segment information.

[0067] Step S112: grouping the control units to be upgraded according to the upgrade codes to obtain a hierarchical grouping structure.

[0068] Among them, the upgrade code can reflect the category information of each control unit to be upgraded, the number information of the domain controller to which it belongs, and the network segment information, so that when sorting and grouping, the control units to be upgraded can be divided into groups with a hierarchical structure according to the category information, the number information of the domain controller to which it belongs, and the network segment information.

[0069] In some embodiments, the upgrade code includes a first sub-code, a second sub-code, a third sub-code, and a fourth sub-code.

[0070] Reference Figure 4 Step S111 may include steps S1111 to S1114, which are described in detail below.

[0071] Step S1111: Obtain the first subcode of the control unit to be upgraded according to the category information.

[0072] As an example, the first subcode may be in the form of a number, with different numbers representing different categories of information. For example, when the first subcode is 1, the category information identified is a regional controller, when the first subcode is 2, the category information identified is a low-voltage module, when the first subcode is 3, the category information identified is a high-voltage module, when the first subcode is 4, the category information identified is a DoIP communication module, and when the first subcode is 5, the category information identified is a central domain controller.

[0073] As an example, if the first subcodes of the control units to be upgraded are the same, it means that the types of the control units to be upgraded are the same.

[0074] Step S1112: Obtain the second subcode of the control unit to be upgraded according to the numbering information.

[0075] For example, the second subcode can be in the form of a number, with different numbers representing different controllers. For example, a second subcode of 0 indicates that the controller is the central domain controller, a second subcode of 1 indicates that the controller is the first regional controller, a second subcode of 2 indicates that the controller is the second regional controller, and so on.

[0076] For example, if the second subcodes of the control units to be upgraded are the same, it means that the control units to be upgraded belong to the same domain controller. If the first subcode and the second subcode are both the same, it means that the corresponding control units to be upgraded are of the same type and are mounted under the same domain controller.

[0077] Step S1113: Obtain the third subcode of the control unit to be upgraded according to the second subcode and the communication network segment information.

[0078] The third subcode is used to identify different communication network segments under the same domain controller. If the first and second subcodes are the same but the third subcode is different, it means that the corresponding control units to be upgraded are of the same type and are mounted under the same domain controller, but support different communication network segments.

[0079] In some embodiments, in step S1113, for each control unit to be upgraded with the same second sub-code, the control unit to be upgraded with the same communication network segment information can be assigned the same third sub-code, and the control unit to be upgraded with different communication network segment information can be assigned different third sub-codes to distinguish different communication network segment information of the control unit to be upgraded under the same domain controller.

[0080] As an example, the second sub-code of the first control unit to be upgraded, the second control unit to be upgraded, and the second sub-code of the second control unit to be upgraded are all 3, the communication network segment information of the first control unit to be upgraded and the second control unit to be upgraded is the CAN network segment, and the communication network segment information of the third control unit to be upgraded is the LIN network segment, then the third sub-code of the first control unit to be upgraded and the second control unit to be upgraded are the same, for example, the third sub-code can be marked as 1; and the third sub-code of the third control unit to be upgraded is different from the third sub-code of the first control unit to be upgraded, for example, the third sub-code can be marked as 2.

[0081] Step S1114: Obtain a fourth subcode of the control unit to be upgraded according to the second subcode and the third subcode.

[0082] The fourth subcode is used to identify different control units to be upgraded under the same domain controller and the same communication network segment. If the first, second, and third subcodes of two control units to be upgraded are the same, but the fourth subcodes are different, then the two control units to be upgraded are of the same type, mounted under the same domain controller, and support the same communication network segment. In this case, the fourth subcode is used to distinguish between the two control units to be upgraded.

[0083] Reference Figure 5 , wherein the first subcode, the second subcode, the third subcode, and the fourth subcode have a pre-set storage area. For example, the first subcode, the second subcode, the third subcode, and the fourth subcode occupy two bytes in total. The upper four bits of the first byte byte1 can be used to store the first subcode, the lower four bits of the first byte byte1 can be used to store the second subcode, the upper four bits of the second byte byte2 can be used to store the third subcode, and the lower four bits of the fourth byte byte4 can be used to store the fourth subcode. In this way, the upgrade code can be stored by occupying two bytes.

[0084] In some embodiments, in step S1114, the control units to be upgraded that have the same second and third subcodes are sorted to obtain a sorting sequence number, and the fourth subcode of the control unit to be upgraded is obtained based on the sorting sequence number. In this way, the sorting sequence number can be used to distinguish control units to be upgraded that are mounted on the same domain controller and support the same communication network segment.

[0085] In some embodiments, the hierarchical grouping architecture includes primary grouping, secondary grouping, and tertiary grouping.

[0086] Each first-level group includes at least one second-level group, each second-level group includes at least one third-level group, and the third-level group includes at least one control unit to be upgraded.

[0087] In some embodiments, step S112 may include steps S1121 to S1123, which are described in detail below.

[0088] Step S1121: Divide each control unit to be upgraded into one or more first-level groups according to the first sub-code.

[0089] As an example, each control unit to be upgraded with the same first sub-code is divided into a first-level group. For example, each control unit to be upgraded with a first sub-code of 1 can be regarded as the first first-level group, and each control unit to be upgraded with a first sub-code of 2 can be regarded as the second first-level group, and so on.

[0090] Step S1122: For each first-level group, the control units to be upgraded in the first-level group are divided into one or more second-level groups according to the second sub-code.

[0091] For example, if the first subcode corresponding to a first-level group is 2, then the type of the control units to be upgraded in the first-level group is a low-voltage module, and the low-voltage modules are distributed under various regional controllers. In this way, the control units to be upgraded in the first-level group mounted on the same regional controller are divided into a second-level group. In this way, the control units to be upgraded in the first-level group can be divided into one or more second-level groups. Similarly, within each first-level group, second-level groups are divided according to the second subcode.

[0092] Step S1123: for each secondary group, the control units to be upgraded in the secondary group are divided into one or more tertiary groups according to the third sub-code.

[0093] As an example, the third subcode is used to identify the communication network segment of each control unit to be upgraded. Control units to be upgraded with the same third subcode in the same second-level group are grouped into a third-level group. Similarly, each control unit to be upgraded within a second-level group can be grouped into one or more third-level groups. Similarly, each second-level group can be grouped into third-level groups based on the second subcode.

[0094] Reference Figure 6 In some embodiments, step S120 may include steps S121 to S123, which are described in detail below.

[0095] Step S121: sorting the first-level groups according to a preset order to obtain a number of serial scheduling queues.

[0096] Step S122: For each serial scheduling queue, generate a parallel scheduling queue according to each secondary group under the primary group.

[0097] Among them, each serial scheduling queue corresponds to a parallel scheduling queue.

[0098] Step S123: Control each control unit to be upgraded to perform the upgrade according to the serial scheduling queue and the parallel scheduling queue.

[0099] In the above implementation, each first-level group is sorted in a preset order to generate a number of serial scheduling queues, which can ensure that the upgrade work between different first-level groups can be carried out in sequence according to the preset order based on rules or requirements. Then, during the execution of each serial scheduling queue, a parallel scheduling queue is generated according to each second-level group under the first-level group, and each serial scheduling queue corresponds to a parallel scheduling queue, so that in each serial stage, the control units to be upgraded contained in each second-level group can process the upgrade tasks in parallel. Through the scheduling method that combines serial and parallel, on the one hand, the upgrades between different first-level groups will not interfere with each other through the serial scheduling queue; on the other hand, the control units of multiple second-level groups can be upgraded at the same time through the parallel scheduling queue, which can improve the upgrade efficiency.

[0100] In some embodiments, step S122 may include steps S1221 to S1223, which are described in detail below.

[0101] Step S1221: Each time, an upgrade code of a control unit to be upgraded is selected from different secondary groups under the first-level group as the first target code, and the first target code is added to the target queue until there is only one target second group in the first-level group, and the target second group is the second group that includes the first control unit to be upgraded that is not added to the target queue.

[0102] As an example, for a certain first-level group, the first-level group includes two second-level groups. The first second-level group is the group belonging to the first domain controller, and the second second-level group is the group belonging to the second domain controller. First, an upgrade code of a control unit to be upgraded is selected from the first second-level group, and at the same time, an upgrade code of a control unit to be upgraded is selected from the second second-level group. The two selected upgrade codes are added to the target queue as the first target codes. Since the number of control units to be upgraded contained in each second-level group is different, the above process is continued until only one second-level group remains under the first-level group. The second-level group is then used as the target second group, which contains the first control unit to be upgraded that is not added to the target queue.

[0103] Step S1222: For the target second group, each time select an upgrade code of the first control unit to be upgraded from different three-level groups under the target second group as the second target code, and add the second target code to the target queue until there is only one target third group in the target second group, and the target third group is the third group that includes the second control unit to be upgraded that is not added to the target queue.

[0104] As an example, for a certain secondary group, the secondary group includes two third-level groups. The first third-level group is a group belonging to the CAN communication segment, which includes the engine control unit and the fuel injection control unit. The second secondary group is a group belonging to the LIN communication segment. First, an upgrade code of a control unit to be upgraded is selected from the first three-level group, and at the same time, an upgrade code of a control unit to be upgraded is selected from the second three-level group. The two selected upgrade codes are added to the target queue as the second target codes. Since the number of control units to be upgraded contained in each three-level group is different, the above process is continued until only one three-level group is left under the secondary group. The secondary group is then used as the target third group, which contains the second control unit to be upgraded that has not been added to the target queue.

[0105] Step S1223: taking the upgrade code of the second control unit to be upgraded in the target third group as the third target code, setting a thread mark for the third target code, and adding the third target code with the set thread mark to the target queue to obtain a parallel scheduling queue.

[0106] In some embodiments, the thread flag may be set according to a third sub-code in a third target code.

[0107] Because different communication network segments have different carrying capacities, thread tags are used to indicate the number of first parallel threads supported by the corresponding communication network segment information, thereby enabling the full utilization of the carrying capacity of each communication network segment. For example, a CAN communication network segment can generally support three first parallel threads, while a LIN communication network segment can only support one first parallel thread. Thus, the third sub-code can be used to obtain information about each communication network segment in order to set the appropriate thread tag.

[0108] In some embodiments, in step S123, each serial scheduling queue may be executed in sequence. During the execution of each serial scheduling queue, each control unit to be upgraded may be controlled to be upgraded in parallel according to the parallel scheduling queue corresponding to the serial scheduling queue.

[0109] In some embodiments, controlling each control unit to be upgraded to be upgraded in parallel according to the parallel scheduling queue corresponding to the serial scheduling queue may include steps S1231 to S1233, which are described in detail below.

[0110] Step S1231: Select an upgrade code from the parallel scheduling queue.

[0111] As an example, the process of selecting an upgrade code from the parallel scheduling queue is the "out-queue" process, so that the control unit to be upgraded corresponding to the upgrade code is ready to be upgraded.

[0112] Step S1232: If the selected upgrade code does not have a thread mark set, the corresponding control unit to be upgraded is controlled to perform parallel upgrade according to the preset second parallel thread number.

[0113] As an example, the number of the second parallel threads can be greater than the number of the first parallel threads, and the number of the second parallel threads can be set according to the actual data processing capacity. Usually, the control units to be upgraded under different domain controllers do not interfere with each other; or, the control units to be upgraded under different communication network segments under the same domain controller will not interfere with each other. If the selected upgrade code does not set a thread mark, it means that the currently selected upgrade code will not interfere. At this time, the control units to be upgraded corresponding to as many parallel controls as possible according to the second parallel thread number can be upgraded.

[0114] Step S1233: If the selected upgrade code sets a thread mark, after all threads are idle, the corresponding control units to be upgraded are controlled to perform parallel upgrades according to the first number of parallel threads represented by the thread mark.

[0115] For example, if the selected upgrade code sets a thread mark, it means that the corresponding control units to be upgraded belong to the same domain controller and the same communication network segment. At this time, if the upgrade is performed with a larger second number of parallel threads, the maximum carrying capacity of the corresponding communication network segment may be exceeded, resulting in errors in the parallel upgrade. Therefore, if the selected upgrade code sets a thread mark, by resetting the first number of parallel threads, the number of parallel threads allowed is displayed, thereby achieving the parallel upgrade of multiple control units to be upgraded that belong to the same domain controller and the same communication network segment.

[0116] According to a second aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above method are implemented.

[0117] According to a third aspect of the present application, a host computer is provided, comprising a memory and a processor. The memory stores a computer program, and the processor is configured to run the computer program in the memory to execute the steps of the above method.

[0118] According to a fourth aspect of the present application, a vehicle is provided, comprising the host computer as described above.

[0119] The vehicle may be a fuel vehicle, a plug-in hybrid vehicle, a new energy vehicle, etc., and this disclosure does not make any specific limitations on this.

[0120] According to a fifth aspect of the present application, a computer program product is provided, comprising a computer program or instructions, which implement the steps of the above-mentioned method when executed by a processor.

[0121] In the description of this application, the terms "first" and "second" are used for descriptive purposes only and should not be understood to indicate or imply relative importance or implicitly specify the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more features. In the description of this application, "plurality" means two or more, unless otherwise specifically defined.

[0122] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0123] The embodiments, implementation methods and related technical features of the present application can be combined and replaced with each other without conflict.

[0124] The above are merely preferred embodiments of the present application and do not constitute any form of limitation to the present application. However, any simple modifications, equivalent changes, and modifications made to the above embodiments based on the technical essence of the present application without departing from the content of the technical solution of the present application are still within the scope of the technical solution of the present application.

Claims

1. A vehicle software upgrade method, characterized in that: include: Grouping the control units to be upgraded according to their category information, domain controller number information, and communication network segment information to obtain a hierarchical grouping architecture; According to the hierarchical grouping architecture, each of the control units to be upgraded is controlled to be upgraded.

2. The vehicle software upgrade method according to claim 1, characterized in that: The control units to be upgraded are grouped according to their category information, the number information of their domain controllers, and the communication network segment information to obtain a hierarchical grouping architecture, including: generating an upgrade code for each of the control units to be upgraded according to the category information, the number information, and the communication network segment information; The control units to be upgraded are grouped according to the upgrade codes to obtain the hierarchical grouping architecture.

3. The vehicle software upgrade method according to claim 2, characterized in that: The upgrade code includes a first subcode, a second subcode, a third subcode and a fourth subcode; Generating an upgrade code for each control unit to be upgraded according to the category information, the number information, and the communication network segment information includes: Obtaining the first subcode of the control unit to be upgraded according to the category information; Obtaining the second sub-code of the control unit to be upgraded according to the numbering information; Obtaining the third subcode of the control unit to be upgraded according to the second subcode and the communication network segment information; The fourth subcode of the control unit to be upgraded is obtained according to the second subcode and the third subcode.

4. The vehicle software upgrade method according to claim 3, characterized in that: The obtaining, according to the second sub-code and the communication network segment information, the third sub-code of the control unit to be upgraded includes: For each of the control units to be upgraded that have the same second sub-code, the control units to be upgraded that have the same communication network segment information are assigned the same third sub-code, and the control units to be upgraded that have different communication network segment information are assigned different third sub-codes to distinguish the different communication network segment information of the control units to be upgraded under the same domain controller.

5. The vehicle software upgrade method according to claim 3, characterized in that: The obtaining, according to the second subcode and the third subcode, the fourth subcode of the control unit to be upgraded includes: The control units to be upgraded having the same second subcode and the same third subcode are sorted to obtain a sorting sequence number, and the fourth subcode of the control unit to be upgraded is obtained according to the sorting sequence number.

6. The vehicle software upgrade method according to claim 3, characterized in that: The hierarchical grouping architecture includes primary grouping, secondary grouping, and tertiary grouping; Each of the first-level groups includes at least one second-level group, each of the second-level groups includes at least one third-level group, and the third-level group includes at least one control unit to be upgraded.

7. The vehicle software upgrade method according to claim 6, characterized in that: The step of grouping the control units to be upgraded according to the upgrade codes to obtain the hierarchical grouping architecture includes: Dividing each of the control units to be upgraded into one or more of the first-level groups according to the first sub-code; For each of the first-level groups, dividing the control units to be upgraded in the first-level group into one or more second-level groups according to the second sub-code; For each secondary group, the control units to be upgraded in the secondary group are divided into one or more tertiary groups according to the third sub-code.

8. The vehicle software upgrade method according to claim 6, characterized in that: The step of controlling each of the control units to be upgraded to perform an upgrade according to the hierarchical grouping architecture includes: Sorting each of the first-level groups according to a preset order to obtain a plurality of serial scheduling queues; For each of the serial scheduling queues, a parallel scheduling queue is generated according to each of the secondary groups under the primary group; wherein each of the serial scheduling queues corresponds to one of the parallel scheduling queues; According to the serial scheduling queue and the parallel scheduling queue, each of the control units to be upgraded is controlled to be upgraded.

9. The vehicle software upgrade method according to claim 8, characterized in that: Generating a parallel scheduling queue according to each of the second-level groups under the first-level group includes: Each time, selecting an upgrade code of the control unit to be upgraded from different secondary groups under the primary group as a first target code, and adding the first target code to a target queue, until there is only one target second group in the primary group, and the target second group is the second group including the first control unit to be upgraded that is not added to the target queue; For the target second group, each time selecting an upgrade code of the first control unit to be upgraded from different third-level groups under the target second group as a second target code, and adding the second target code to the target queue until there is only one target third group in the target second group, and the target third group is a third group that includes the second control unit to be upgraded that is not added to the target queue; The upgrade code of the second control unit to be upgraded in the target third group is used as the third target code, a thread mark is set for the third target code, and the third target code with the thread mark set is added to the target queue to obtain the parallel scheduling queue.

10. The vehicle software upgrade method according to claim 9, characterized in that: The step of setting a thread mark for the third target code comprises: setting the thread flag according to the third sub-code in the third target code; The thread mark is used to represent the number of first parallel threads supported by the corresponding communication network segment information.

11. The vehicle software upgrade method according to claim 10, characterized in that: The step of controlling each of the control units to be upgraded to perform an upgrade according to the serial scheduling queue and the parallel scheduling queue includes: Execute each serial scheduling queue in sequence. During the execution of each serial scheduling queue, control each control unit to be upgraded is controlled to be upgraded in parallel according to the parallel scheduling queue corresponding to the serial scheduling queue.

12. The vehicle software upgrade method according to claim 11, characterized in that: The controlling each of the control units to be upgraded to perform a parallel upgrade according to the parallel scheduling queue corresponding to the serial scheduling queue includes: Selecting one of the upgrade codes from the parallel scheduling queue; If the selected upgrade code does not have the thread flag set, controlling the corresponding control unit to be upgraded to perform parallel upgrade according to the preset second parallel thread number; If the selected upgrade code sets the thread mark, after all threads are idle, the corresponding control units to be upgraded are controlled to perform parallel upgrades according to the number of the first parallel threads represented by the thread mark.

13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 12 are implemented.

14. A host computer, characterized in that: The method comprises a memory and a processor; the memory stores a computer program, and the processor is configured to run the computer program in the memory to execute the steps of the method according to any one of claims 1 to 12.

15. A vehicle, characterized in that: Including the host computer as described in claim 14.

16. A computer program product, characterized in that The method comprises a computer program or instructions, which implement the steps of the method according to any one of claims 1 to 12 when executed by a processor.