Software upgrading method, upgrading system, server and vehicle
Patent Information
- Application Number
- CN202611219605.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-12
- Publication Date
- 2026-10-27
AI Technical Summary
[0003]然而,由于ECU数量的急剧增加和单个ECU软件规模的扩大,整车升级变得困难
[0026]与相关技术相比,在本实施例中提供的软件升级方法、升级系统、服务器和车辆,服务器接收车辆对应的升级包,将升级包分为多个数据切片进行存储,并生成每个数据切片对应的元数据,以实现升级包数据的精细化管理,便于后续数据切片的灵活下载。进一步的,服务器从车辆获取车辆当前的车端软件信息,根据车端软件信息和每个数据切片对应的元数据,确定本次升级对应的多个目标数据切片,其中,多个目标数据切片与车辆中的车载ECU相关联。将每个目标数据切片对应的元数据构成的元数据集合发送至车辆,从而基于多ECU升级包数据的切片化存储,执行分片式下载策略,精准实现升级数据的按需筛选与传输。随后,车辆根据元数据集合,从服务器下载多个目标数据切片,利用多个目标数据切片对车载ECU进行软件升级,进而完成多车载ECU的协同软件升级,有效提升升级流程的整体执行效率,保障多ECU升级操作的稳定性与可靠性。
Smart Images

Figure CN122985232A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of vehicle technology, and in particular to software upgrade methods, upgrade systems, servers, and vehicles. Background Technology
[0002] With the development of intelligent vehicles, the number of on-board electronic control units (ECUs) continues to grow, widely distributed in areas such as powertrain, chassis control, vehicle comfort, infotainment, and autonomous driving. Each ECU has reliable software upgrade capabilities to support function iteration, performance optimization, security vulnerability patching, and after-sales service.
[0003] However, due to the dramatic increase in the number of ECUs and the expansion of individual ECU software size, upgrading the entire vehicle has become difficult. Existing upgrade methods often require generating and distributing a dedicated upgrade package for each ECU, but this method cannot achieve efficient software upgrades for multiple ECUs.
[0004] There is currently no effective solution to the problem that related technologies cannot achieve efficient software upgrades for multiple ECUs. Summary of the Invention
[0005] This embodiment provides a software upgrade method, upgrade system, server, and vehicle, which can perform slice-based download strategy based on multi-ECU upgrade package data slice management, realize the filtering and on-demand transmission of upgrade data, and thus achieve efficient software upgrade of multiple ECUs.
[0006] In a first aspect, this embodiment provides a software upgrade method, which is applied to a server in an upgrade system; the method includes:
[0007] Receive the upgrade package corresponding to the vehicle, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice;
[0008] The vehicle's current on-board software information is obtained from the vehicle, and multiple target data slices corresponding to this upgrade are determined based on the on-board software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle's on-board ECU.
[0009] A metadata set consisting of the metadata corresponding to each target data slice is sent to the vehicle, so that the vehicle can download the multiple target data slices from the server based on the metadata set, and use the multiple target data slices to upgrade the software of the vehicle ECU.
[0010] Secondly, this embodiment provides a software upgrade method, which is applied to a vehicle in an upgrade system; the method includes:
[0011] Receive a set of metadata sent by the server; wherein the set of metadata consists of the metadata of each target data slice corresponding to this upgrade;
[0012] Multiple target data slices are downloaded from the server based on the metadata set; wherein the multiple target data slices are associated with the on-board ECU in the vehicle;
[0013] The vehicle ECU is upgraded using the multiple target data slices.
[0014] Thirdly, this embodiment provides a software upgrade method, which is applied to an upgrade system; the upgrade system includes a server and a vehicle; the method includes:
[0015] The server receives the upgrade package corresponding to the vehicle, divides the upgrade package into multiple data slices for storage, and generates metadata corresponding to each data slice.
[0016] The server obtains the current vehicle-side software information of the vehicle from the vehicle, and determines multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle;
[0017] The server sends a metadata set consisting of the metadata corresponding to each target data slice to the vehicle;
[0018] The vehicle downloads the plurality of target data slices from the server based on the metadata set, and uses the plurality of target data slices to perform software upgrades on the vehicle ECU.
[0019] Fourthly, this embodiment provides an upgrade system, which includes a server and a vehicle;
[0020] The server is configured to receive the upgrade package corresponding to the vehicle, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice.
[0021] The server is configured to obtain the current vehicle-side software information of the vehicle from the vehicle, and determine multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle;
[0022] The server is configured to send a metadata set consisting of the metadata corresponding to each target data slice to the vehicle;
[0023] The vehicle is configured to download the plurality of target data slices from the server based on the metadata set, and use the plurality of target data slices to perform software upgrades on the vehicle ECU.
[0024] Fifthly, this embodiment provides a server including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the software upgrade method described in the first aspect above.
[0025] In a sixth aspect, this embodiment provides a vehicle including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the software upgrade method described in the first aspect above.
[0026] Compared with related technologies, the software upgrade method, upgrade system, server, and vehicle provided in this embodiment involve the server receiving the upgrade package corresponding to the vehicle, dividing the upgrade package into multiple data slices for storage, and generating metadata corresponding to each data slice to achieve fine-grained management of the upgrade package data, facilitating flexible downloading of subsequent data slices. Furthermore, the server obtains the vehicle's current on-board software information from the vehicle, and determines multiple target data slices corresponding to this upgrade based on the on-board software information and the metadata corresponding to each data slice. These multiple target data slices are associated with the vehicle's on-board ECUs. A metadata set consisting of the metadata corresponding to each target data slice is sent to the vehicle, thereby executing a sliced download strategy based on the sliced storage of the multi-ECU upgrade package data, accurately achieving on-demand filtering and transmission of upgrade data. Subsequently, the vehicle downloads multiple target data slices from the server according to the metadata set, and uses these multiple target data slices to upgrade the on-board ECU software, thus completing the collaborative software upgrade of multiple on-board ECUs, effectively improving the overall execution efficiency of the upgrade process and ensuring the stability and reliability of the multi-ECU upgrade operation.
[0027] Details of one or more embodiments of this application are set forth in the following drawings and description to make other features, objects and advantages of this application more readily apparent. Attached Figure Description
[0028] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0029] Figure 1 This is a flowchart of Embodiment 1 of the software upgrade method provided in this application;
[0030] Figure 2 This is a flowchart of Embodiment 2 of the software upgrade method provided in this application;
[0031] Figure 3 This is a flowchart of Embodiment 3 of the software upgrade method provided in this application;
[0032] Figure 4 This is a flowchart of Embodiment 4 of the software upgrade method provided in this application;
[0033] Figure 5 This is a flowchart of Embodiment 5 of the software upgrade method provided in this application;
[0034] Figure 6 This is a flowchart of Embodiment Six of the software upgrade method provided in this application;
[0035] Figure 7 This is a flowchart of Embodiment Seven of the software upgrade method provided in this application;
[0036] Figure 8 This is a flowchart of Embodiment 8 of the software upgrade method provided in this application;
[0037] Figure 9 This is a flowchart of Embodiment Nine of the software upgrade method provided in this application;
[0038] Figure 10 This is a structural block diagram of an upgrade system provided in this application;
[0039] Figure 11 This is a structural block diagram of another upgrade system provided in this application.
[0040] In the diagram: 10. Server; 11. Upgrade package repository; 12. Metadata service; 20. Vehicle; 21. Upgrade management module; 22. Download execution module; 23. Streaming brush engine. Detailed Implementation
[0041] To better understand the purpose, technical solution, and advantages of this application, the application is described and illustrated below in conjunction with the accompanying drawings and embodiments.
[0042] Unless otherwise defined, the technical or scientific terms used in this application shall have the general meaning understood by one of ordinary skill in the art to which this application pertains. Words such as “a,” “an,” “an,” “the,” “the,” and “these” used in this application do not indicate quantitative limitation and may be singular or plural. The terms “comprising,” “including,” “having,” and any variations thereof used in this application are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or device that comprises a series of steps or modules (units) is not limited to the listed steps or modules (units) but may include steps or modules (units) not listed, or may include other steps or modules (units) inherent to these processes, methods, products, or devices. Words such as “connected,” “linked,” and “coupled” used in this application are not limited to physical or mechanical connections but may include electrical connections, whether direct or indirect. “Multiple” used in this application refers to two or more. “And / or” describes the relationship between related objects, indicating that three relationships may exist; for example, “A and / or B” can represent: A alone, A and B simultaneously, and B alone. Normally, the character " / " indicates that the objects before and after it are in an "or" relationship. The terms "first," "second," "third," etc., used in this application are merely to distinguish similar objects and do not represent a specific order of objects.
[0043] This application provides a software upgrade method, upgrade system, server, and vehicle to achieve efficient software upgrades for multiple ECUs.
[0044] The following are several specific embodiments to illustrate the technical solutions of this application in detail. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0045] Figure 1 This is a flowchart of an embodiment of the software upgrade method provided in this application, which is applied to a server in an upgrade system. Please refer to... Figure 1 The software upgrade method provided in this embodiment may include the following steps:
[0046] Step S101: Receive the upgrade package corresponding to the vehicle, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice.
[0047] For example, in one embodiment, the upgrade package can be classified hierarchically according to multiple preset hierarchical dimensions. These preset hierarchical dimensions include vehicle functional domains, on-board ECU categories within each vehicle functional domain, and storage partitions within each on-board ECU category. The vehicle functional domains include, but are not limited to, the cockpit domain, driving domain, powertrain domain, chassis domain, and body control domain. The on-board ECU categories within each vehicle functional domain are divided based on the core control requirements of that functional domain. For example, the cockpit domain corresponds to the cockpit domain controller and the on-board infotainment ECU, while the driving domain corresponds to the autonomous driving domain controller, millimeter-wave radar ECU, and camera ECU. The storage partitions within each on-board ECU category are set based on the ECU software's operation and data storage requirements, including but not limited to bootloader partitions, application partitions, and configuration data partitions.
[0048] Based on the above hierarchical classification results, index information is generated for each preset hierarchical dimension of the upgrade package. This index information contains the identifiers of each preset hierarchical dimension to form an index structure of vehicle functional domain - vehicle ECU category - storage partition. For example, the index information for upgrade package A is cockpit domain - vehicle infotainment ECU - application partition.
[0049] Optionally, the identifiers for each preset hierarchical dimension can adopt a combination of letters and numbers in the coding format. For example, the cockpit domain is coded as A01, the in-vehicle infotainment ECU is coded as B001, and the application partition is coded as C001, which helps to improve the server's retrieval efficiency and management accuracy of upgrade packages.
[0050] After the upgrade package is classified, it can be segmented according to the preset data block size or according to the feature dimension related to the functional logic (for example, for the in-vehicle infotainment ECU, the navigation map update related data and the sound effect algorithm optimization related data in the upgrade package can be used as independent dimensions). This will result in multiple data slices corresponding to the upgrade package, and a data block identifier will be assigned to each data slice. The data block identifier must include at least the data slice ID to uniquely distinguish the identity of each data slice.
[0051] Understandably, each data slice is an independent upgrade data unit, capable of performing download, verification, storage, and upgrade operations independently. In other words, each data slice corresponds to a smallest independently manageable upgrade unit.
[0052] Subsequently, for each data slice, metadata is generated based on the data block identifier of the data slice, the index information of the corresponding upgrade package at each preset hierarchical dimension, and the key attribute information of the data slice. The key attribute information includes, but is not limited to, the data slice size, the data slice verification information (e.g., hash value, signature information), the version number of the corresponding upgrade package, the compatible vehicle model, and the data slice sequence number, thereby achieving full lifecycle traceability and verifiability of the data slice.
[0053] It should be noted that the upgrade package corresponding to the vehicle can be flexibly configured according to actual upgrade needs. It can be a whole vehicle upgrade package or an upgrade package for multiple different vehicle ECUs. This embodiment does not limit this. For example, the upgrade package corresponding to the vehicle can simultaneously include an upgrade package for the chassis domain braking system ECU, an upgrade package for the body control domain air conditioning control ECU, and an upgrade package for the cockpit domain in-vehicle infotainment ECU. Each upgrade package can be independently categorized, segmented, and have metadata generated.
[0054] Step S102: Obtain the current vehicle-side software information from the vehicle, and determine multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle.
[0055] Specifically, the vehicle-side software information includes the vehicle functional domain to which multiple vehicle ECUs belong, the ECU category, the corresponding storage partition, and the vehicle-side software version information.
[0056] In one embodiment, the server pre-compares the vehicle functional domain, ECU category, and storage partition information of the vehicle ECU in the vehicle software information with the index information in the metadata of each data slice to initially screen out multiple candidate data slices that match the vehicle software information. The server also compares the vehicle software version information of each vehicle ECU in the vehicle software information with the software version information in the metadata of the corresponding candidate data slices to screen out candidate data slices with updated versions. Finally, the candidate data slices with updated versions are determined as the target data slices for this upgrade.
[0057] It should be understood that multiple target data slices are associated with the vehicle ECU through vehicle functional domains, ECU categories, storage partition information, and vehicle software version information, and each vehicle ECU is associated with several target data slices.
[0058] Step S103: Send the metadata set consisting of the metadata corresponding to each target data slice to the vehicle, so that the vehicle can download multiple target data slices from the server according to the metadata set, and use the multiple target data slices to upgrade the on-board ECU software.
[0059] Specifically, the server integrates the metadata corresponding to each target data slice to generate a metadata set, and then distributes the metadata set to the vehicle based on the communication protocol between the server and the vehicle.
[0060] It should be noted that the specific implementation method for vehicles to download target data slices based on metadata sets and perform software upgrades will be described in detail in the vehicle-side software upgrade method described later.
[0061] The software upgrade method provided in this embodiment involves a server receiving an upgrade package corresponding to a vehicle, dividing the upgrade package into multiple data slices for storage, and generating metadata for each data slice to achieve fine-grained management of the upgrade package data, facilitating flexible downloading of subsequent data slices. Further, the server obtains the vehicle's current on-board software information from the vehicle, and based on the on-board software information and the metadata corresponding to each data slice, determines multiple target data slices corresponding to this upgrade. These multiple target data slices are associated with the vehicle's on-board ECUs. A metadata set consisting of the metadata corresponding to each target data slice is sent to the vehicle, thereby executing a sliced download strategy based on the sliced storage of the multi-ECU upgrade package data, accurately achieving on-demand filtering and transmission of upgrade data. Subsequently, the vehicle downloads multiple target data slices from the server according to the metadata set, and uses these multiple target data slices to upgrade the on-board ECU software, thus completing a collaborative software upgrade for multiple on-board ECUs. This effectively improves the overall execution efficiency of the upgrade process and ensures the stability and reliability of the multi-ECU upgrade operation.
[0062] Figure 2 This is a flowchart of Embodiment 2 of the software upgrade method provided in this application. Please refer to... Figure 2 The method provided in this embodiment, based on the above embodiments, determines multiple target data slices corresponding to this upgrade according to the vehicle-side software information and the metadata corresponding to each data slice, and may include the following steps:
[0063] Step S201: Compare the vehicle software version information recorded in the vehicle software information with the software version information in the metadata corresponding to each data slice to identify multiple vehicle ECUs to be upgraded.
[0064] Specifically, the system retrieves the vehicle software version information for each onboard ECU recorded in the vehicle software information. This information includes the current software version number being used by the onboard ECU. Simultaneously, it extracts the software version information from the metadata corresponding to each data slice. This metadata includes the software version number.
[0065] Furthermore, the current software version number of each vehicle ECU is compared with the software version number in the corresponding metadata. If the current software version number of the vehicle ECU is lower than the software version number in the corresponding metadata, it is determined that the vehicle ECU needs an upgrade and is identified as an ECU to be upgraded; if the current software version number of the vehicle ECU is lower than the software version number in the corresponding metadata, it is determined that the vehicle ECU does not need an upgrade. In this way, all vehicle ECUs to be upgraded are identified.
[0066] Step S202: Based on the software dependency relationships recorded in the vehicle-side software information, find multiple target vehicle ECUs that meet the software dependency relationships from multiple vehicle ECUs to be upgraded.
[0067] Specifically, the vehicle-side software information includes software dependencies, which indicate the order and prerequisites for software upgrades of different on-board ECUs. It should be understood that software upgrades for some on-board ECUs require the upgrade of the underlying functional ECUs they depend on. If the dependent on-board ECUs are not upgraded, the upgraded on-board ECU may experience functional malfunctions or fail to operate normally. For example, the software upgrade of the autonomous driving domain controller requires the upgrade of the body control ECU as a prerequisite.
[0068] In this step, the software dependency relationships recorded in the vehicle software information are obtained. Based on the software dependency relationships, each vehicle ECU to be upgraded is checked one by one to determine whether each vehicle ECU to be upgraded meets the software dependency conditions, thereby filtering out multiple target vehicle ECUs to be upgraded that meet the software dependency relationships.
[0069] Step S203: The data slices associated with multiple target vehicle ECUs to be upgraded are identified as target data slices.
[0070] Specifically, the system matches the vehicle functional domain, vehicle ECU category, and storage partition under each target vehicle ECU to be upgraded with the data slices stored on the server to determine the data slices associated with multiple target vehicle ECUs to be upgraded, and then identifies the data slices associated with multiple target vehicle ECUs to be upgraded as target data slices.
[0071] The method provided in this embodiment accurately identifies vehicle ECUs with genuine upgrade needs based on software version number comparison, and verifies the vehicle ECUs to be upgraded according to preset software dependencies. This effectively avoids problems such as post-upgrade malfunctions caused by ignoring the upgrade order and prerequisites between vehicle ECUs, thereby significantly improving the stability and security of vehicle ECU software upgrades. Furthermore, through multi-dimensional matching, it ensures that the target data slices accurately correspond to the target ECUs to be upgraded, clearly defining the operation targets for the efficient advancement of subsequent download, verification, and upgrade processes.
[0072] Figure 3 This is a flowchart of Embodiment 3 of the software upgrade method provided in this application, which is applied to a vehicle in an upgrade system. Please refer to... Figure 3 The software upgrade method provided in this embodiment may include the following steps:
[0073] Step S301: Receive the metadata set sent by the server; wherein the metadata set consists of the metadata of each target data slice corresponding to this upgrade.
[0074] It should be noted that each piece of metadata in the metadata set contains at least the index information of the corresponding target data slice, the data block identifier, the data slice size, verification information (e.g., hash value or signature), the upgrade package version number, and the data slice sequence number. The index information is generated based on multiple preset hierarchical dimensions, forming an index structure of vehicle functional domain - vehicle ECU category - storage partition, used to uniquely identify the upgrade package, target ECU, and its storage partition to which the data slice belongs.
[0075] Step S302: Download multiple target data slices from the server based on the metadata set; wherein, the multiple target data slices are associated with the vehicle's on-board ECU.
[0076] Specifically, when a vehicle receives a metadata set, it parses each metadata element in the metadata set to extract the index information and data block identifier of the target data slice in each metadata element. Then, based on the parsed index information and data block identifier, it downloads the target data slices pointed to by the index information and data block identifier from the server.
[0077] It should be noted that when downloading each target data slice, a download strategy adapted to the real-time vehicle-side network status can be adopted. For example, parallel downloading can be used when the vehicle-side network bandwidth is sufficient, while serial downloading can be used when the vehicle-side network bandwidth is limited.
[0078] It should be understood that multiple target data slices are associated with the vehicle ECU through vehicle functional domains, ECU categories, storage partition information, and vehicle software version information, and each vehicle ECU is associated with several target data slices.
[0079] Step S303: Upgrade the software of the vehicle ECU using multiple target data slices.
[0080] In this step, the vehicle will download multiple target data slices and write them to the corresponding storage partitions of their respective associated vehicle ECUs to complete the software upgrade of the vehicle ECUs.
[0081] The software upgrade method provided in this embodiment involves the vehicle receiving a metadata set from a server, downloading multiple target data slices from the server on demand based on the metadata set, and then using the downloaded target data slices to upgrade the software of the associated vehicle ECUs. In this way, the vehicle does not need to download the complete vehicle upgrade package or the full ECU upgrade package; it only needs to download target data slices that match its own vehicle software information, reducing the amount of data transmitted per upgrade and effectively shortening the download time. Simultaneously, it supports parallel or serial download strategies based on network status, significantly improving the flexibility and robustness of the upgrade process, thereby ensuring the reliability and efficiency of multi-ECU collaborative upgrades.
[0082] Figure 4 This is a flowchart of Embodiment 4 of the software upgrade method provided in this application. Please refer to... Figure 4 The method provided in this embodiment, based on the above embodiments, downloads multiple target data slices from the server according to the metadata set, and may include the following steps:
[0083] Step S401: Based on the current vehicle condition information, determine whether multiple target data slices can be downloaded immediately;
[0084] Specifically, the system obtains current vehicle status information, including vehicle network status, vehicle system load, and vehicle battery level. Vehicle network status includes network signal strength and real-time transmission bandwidth; vehicle system load includes CPU utilization and memory usage; and vehicle battery level can be the remaining state of charge (SOC) value.
[0085] For example, based on network signal strength, memory usage, and remaining battery SOC (State of Charge) value, it is determined whether multiple target data slices can be downloaded immediately. If the network signal strength is greater than or equal to a preset strength threshold, the memory usage is less than or equal to a preset load threshold, and the vehicle battery level is greater than or equal to a preset battery level threshold, then it is determined that multiple target data slices can be downloaded immediately. If any of the following conditions are met, such as network signal strength being less than the preset strength threshold, memory usage being greater than the preset load threshold, or vehicle battery level being less than the preset battery level threshold, then it is determined that multiple target data slices cannot be downloaded immediately.
[0086] Step S402: If yes, determine a download strategy based on the metadata set and vehicle condition information, and download multiple target data slices from the server according to the download strategy; wherein, the download strategy is used to instruct the execution of at least one download task to download multiple target data slices from the server, and each download task is used to download at least one target data slice among the multiple target data slices;
[0087] Specifically, when a data segment is determined to be downloadable immediately, the vehicle extracts the priority identifier and data size of the corresponding target data slice from the metadata set. Simultaneously, it combines this with vehicle condition information to determine the download strategy for each target data slice and downloads multiple target data slices from the server according to the download strategy. This download strategy may include the number of download tasks, the slice combination corresponding to each download task, and the execution order of each download task.
[0088] In one embodiment, for high-priority target data slices, independent download tasks are allocated first to ensure the transmission priority of core slices; for slices with small data and the same priority, they are merged into the same download task to improve transmission efficiency.
[0089] For example, multiple target data slices include data slice A, data slice B, and data slice C. These three data slices are ordered from high to low priority as data slice A, data slice B, and data slice C, and the data sizes of data slice A, data slice B, and data slice C are 200MB, 20MB, and 10MB, respectively. In this case, the vehicle's determined download strategy includes two download tasks: download task 1 is responsible for downloading data slice A, and download task 2 is responsible for downloading data slices B and C, and the execution order is to download task 1 first, followed by download task 2.
[0090] Step S403: If not, after a preset time period, execute the step of determining whether multiple target data slices can be downloaded immediately based on the current vehicle condition information again.
[0091] Specifically, when it is determined that multiple target data slices cannot be downloaded immediately, a delayed download process is initiated, thus entering a waiting state for a preset duration. The preset duration can be dynamically configured based on the vehicle's historical vehicle condition fluctuation patterns, the user's daily driving habits, or the vehicle-to-everything (V2X) service strategy; for example, it can be set to 5 minutes.
[0092] After a preset time, the vehicle re-collects vehicle condition information such as the current vehicle network status, vehicle system load, and vehicle battery level, and then performs the step of determining whether multiple target data slices can be downloaded immediately based on the current vehicle condition information again, until it is determined that they can be downloaded immediately and the download is started, or after the preset maximum number of retries is reached, a prompt message indicating that the download conditions are not met is pushed to the user, waiting for the user to manually trigger the download operation.
[0093] The method provided in this embodiment, through the synergistic effect of multi-dimensional vehicle condition verification, differentiated task planning, and delayed retries, avoids the problem of slice download interruption caused by network fluctuations, insufficient system resources, or insufficient power from the source. This significantly improves the download success rate and transmission efficiency of target data slices, reducing the consumption of invalid computing power and energy on the vehicle side. Simultaneously, utilizing the aforementioned slice download strategy generation mechanism, download tasks can be dynamically configured to adapt to the diverse transmission needs of slices of different sizes and priorities, improving the flexibility of upgrade package data download and thus enhancing the flexibility of software upgrades. This helps shorten the overall cycle of vehicle ECU software upgrades and provides reliable support for efficient vehicle ECU upgrades.
[0094] Figure 5 This is a flowchart of Embodiment 5 of the software upgrade method provided in this application. Please refer to... Figure 5 The method provided in this embodiment, based on the above embodiments, may include the following steps:
[0095] Step S501: Parse each metadata in the metadata set to obtain the verification information in each metadata in the metadata set;
[0096] It should be noted that the metadata corresponding to each data slice includes verification information, which includes a preset category verification value for the data slice corresponding to the metadata. The preset category verification value can be a hash value, a cyclic redundancy check value, etc.
[0097] Specifically, after receiving the metadata set pushed by the server, the vehicle parses each metadata element in the metadata set. During the parsing process, for each metadata element, a preset category verification value for the corresponding target data slice is extracted.
[0098] Step S502: When each target data slice is downloaded, a verification algorithm matching the verification information is executed on the target data slice to obtain the real-time verification value of the target data slice.
[0099] In this step, once the vehicle detects that any target data slice has been downloaded, it triggers an integrity verification process. Specifically, it determines a verification algorithm that matches the preset category verification value of the downloaded target data slice, and performs calculations on the downloaded target data slice using the matching verification algorithm to obtain the real-time verification value of the downloaded target data slice.
[0100] Step S503: Compare the real-time verification value with the preset category verification value in the metadata corresponding to the target data slice, and determine whether the target data slice passes the integrity verification based on the comparison result.
[0101] Specifically, if the real-time verification value matches the preset category verification value, the target data slice is determined to have passed the integrity verification, confirming that the data has not been tampered with, lost, or damaged during transmission; if the real-time verification value does not match the preset category verification value, the target data slice is determined to have failed the integrity verification.
[0102] It should be noted that if the target data slice fails the integrity check, an exception handling mechanism can be triggered. For example, a slice retransmission request can be sent to the server, the erroneous slice data already downloaded locally can be deleted, and after the server re-pushes the target data slice, the download and verification process can be executed again until the verification passes.
[0103] The method provided in this embodiment achieves accurate verification of the target data slice transmission process by constructing an integrity verification mechanism. This mechanism can identify data tampering, loss, or corruption during transmission, effectively preventing erroneous data from entering the vehicle ECU software upgrade process and significantly reducing the risk of ECU upgrade failure due to data anomalies. Therefore, by utilizing the verification process to ensure the smooth progress of the vehicle ECU software upgrade process, it helps to achieve efficient vehicle ECU upgrades and improve the overall vehicle software upgrade efficiency.
[0104] Figure 6 This is a flowchart of Embodiment Six of the software upgrade method provided in this application. Please refer to... Figure 6 The method provided in this embodiment, based on the above embodiments, utilizes multiple target data slices to upgrade the software of the vehicle ECU, and may include the following steps:
[0105] Step S601: Using a streaming write method, multiple target data slices are written to the target storage partition of the vehicle ECU corresponding to the target data slice;
[0106] Specifically, based on the index information and data block identifiers in the parsed metadata, each target data slice is downloaded from the server in segments. After the segments are downloaded, the downloaded target data slices are not stored in the local storage space. Instead, they are written to the target storage partition of the corresponding vehicle ECU using a streaming method through a very small dynamic cache (which can only hold a small number of data blocks, for example, 4 data blocks).
[0107] Step S602: Verify the write result of the written target data slice based on the metadata corresponding to each target data slice.
[0108] Specifically, for a target data slice that has completed streaming write, information such as the preset storage location is obtained from the metadata corresponding to the target data slice. Then, it is verified whether the actual storage location corresponding to the written target data slice is consistent with the preset storage location in the metadata. If the actual storage location is consistent with the preset storage location, the write result of the target data slice is determined to have passed the verification.
[0109] It should be noted that the downloaded target data slices can be pushed to other related ECUs outside the vehicle system. The streaming flashing and verification process is the same as the execution process of the aforementioned vehicle ECU, and will not be described again here.
[0110] The method provided in this embodiment utilizes streaming flashing to upgrade software. It eliminates the need to reserve sufficient contiguous storage space on the vehicle side to store all target data slices; only temporary cache space for individual data blocks is required to advance the upgrade process. This significantly reduces reliance on vehicle-side storage space and effectively overcomes the constraints of limited vehicle-side storage resources. Simultaneously, streaming flashing helps shorten the overall upgrade cycle, thereby enabling efficient upgrades of the vehicle's ECU.
[0111] Figure 7 This is a flowchart of Embodiment Seven of the software upgrade method provided in this application. Please refer to... Figure 7 The method provided in this embodiment, based on the above embodiments, utilizes multiple target data slices to upgrade the software of the vehicle ECU, and may include the following steps:
[0112] Step S701: Store each downloaded target data slice to a preset data storage partition;
[0113] Specifically, the preset data storage partition is a pre-defined dedicated temporary storage partition, independent of the target storage partition of each vehicle ECU. For example, it can be a user data storage partition.
[0114] Step S702: Retrieve each target data slice stored in the preset data storage partition and perform software upgrade on the vehicle ECU associated with the target data slice;
[0115] Specifically, after each target data slice is downloaded to the preset data storage partition, an integrity check is performed on the downloaded target data slices. The integrity check process is described in the preceding embodiments and will not be repeated here.
[0116] Furthermore, each target data slice stored in the preset data storage partition is retrieved, the vehicle ECU associated with each target data slice is determined, and each target data slice is flashed to the vehicle ECU associated with that target data slice to complete the software upgrade.
[0117] Step S703: When it is detected that the vehicle ECU associated with the target data slice has completed the software upgrade, the target data slice that has been upgraded and used in the preset data storage partition is cleared.
[0118] In this step, when the on-board ECU associated with the target data slice completes a software upgrade, the clearing mechanism is immediately triggered. Specifically, based on the identifier of the on-board ECU, the target data slice associated with that on-board ECU within the preset data storage partition is precisely located, and a thorough clearing operation is performed to release the storage space of the preset data storage partition.
[0119] The method provided in this embodiment utilizes a temporary storage and timely clearing mechanism based on a preset data storage partition. This effectively avoids upgrade slices occupying the on-board ECU's own operating storage resources, while independent storage facilitates unified management and precise retrieval of slices. Furthermore, timely clearing of used target data slices after the upgrade quickly releases storage space in the preset storage partition, reserving sufficient resources for subsequent ECU upgrades and the storage of new target data slices. This avoids storage resource waste, ensures smooth operation of vehicle software upgrades, and reduces the impact of redundant data on system performance. Overall, this method optimizes the upgrade process and effectively reduces resource consumption, thereby ensuring efficient and orderly progress of on-board ECU software upgrades.
[0120] Figure 8 This is a flowchart of Embodiment 8 of the software upgrade method provided in this application. This software upgrade method is applied to an upgrade system, which includes a server and a vehicle. Please refer to... Figure 8 The software upgrade method provided in this embodiment may include the following steps:
[0121] Step S801: The server receives the upgrade package corresponding to the vehicle, divides the upgrade package into multiple data slices for storage, and generates metadata corresponding to each data slice.
[0122] In step S802, the server obtains the current vehicle-side software information from the vehicle and determines multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle.
[0123] Step S803: The server sends the metadata set consisting of the metadata corresponding to each target data slice to the vehicle;
[0124] In step S804, the vehicle downloads multiple target data slices from the server based on the metadata set, and uses the multiple target data slices to upgrade the on-board ECU software.
[0125] It should be noted that the specific implementation of each step in this embodiment can be referred to the aforementioned embodiment, and will not be repeated here.
[0126] The present embodiment will now be described and illustrated through preferred embodiments.
[0127] Figure 9 This is a flowchart of Embodiment Nine of the software upgrade method provided in this application. Please refer to... Figure 9 The software upgrade method includes the following steps:
[0128] Step S901: The server receives the upgrade package corresponding to the vehicle, divides the upgrade package into multiple data slices for storage, and generates metadata corresponding to each data slice.
[0129] In step S902, the server obtains the current vehicle-side software information from the vehicle and determines multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle's on-board ECU.
[0130] Step S903: The server sends the metadata set consisting of the metadata corresponding to each target data slice to the vehicle;
[0131] Step S904: Based on the current vehicle condition information, the vehicle determines whether multiple target data slices can be downloaded immediately;
[0132] In step S905, if yes, the vehicle determines a download strategy based on the metadata set and vehicle condition information, and downloads multiple target data slices from the server according to the download strategy; wherein, the download strategy is used to instruct the execution of at least one download task to download multiple target data slices from the server, and each download task is used to download at least one target data slice among the multiple target data slices; if no, the vehicle executes step S904 again after a preset time.
[0133] In step S906, the vehicle uses a streaming write method to write multiple target data slices into the target storage partition of the on-board ECU corresponding to the target data slice.
[0134] In step S907, the vehicle verifies the write result of the written target data slice based on the metadata corresponding to each target data slice.
[0135] It should be noted that the steps shown in the above process or in the flowchart of the accompanying figures can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases the steps shown or described may be executed in a different order than that shown here.
[0136] Figure 10 This is a structural block diagram of an upgrade system provided in this application. Please refer to it. Figure 10 The system includes a server 10 and a vehicle 20; the server 10 can be a cloud server.
[0137] Server 10 is used to receive the upgrade package corresponding to vehicle 20, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice.
[0138] Server 10 is used to obtain the current vehicle-side software information of the vehicle 20, and determine multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle.
[0139] Server 10 is used to send a metadata set consisting of the metadata corresponding to each target data slice to vehicle 20;
[0140] Vehicle 20 is used to download multiple target data slices from the server based on the metadata set, and to use the multiple target data slices to upgrade the software of the vehicle ECU.
[0141] The system in this embodiment is used to implement the above embodiments and preferred embodiments, and will not be repeated for details that have already been described.
[0142] Figure 11 This is a structural block diagram of another upgrade system provided in this application. Please refer to... Figure 9 The system includes a server 10 and a vehicle 20; the server 10 includes an upgrade package repository 11 and a metadata service 12; the vehicle 20 includes an upgrade management module 21, a download execution module 22 and a streaming flashing engine 23.
[0143] Upgrade package repository 11 is used to receive upgrade packages corresponding to vehicle 20, divide the upgrade packages into multiple data slices for storage, and generate metadata corresponding to each data slice.
[0144] Metadata service 12 is used to obtain the current vehicle-side software information from vehicle 20 and the metadata corresponding to each data slice from upgrade package repository 11, and determine multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, multiple target data slices are associated with the vehicle-mounted ECU in the vehicle.
[0145] Metadata service 12 is used to send a metadata set consisting of the metadata corresponding to each target data slice to vehicle 20;
[0146] The upgrade management module 21 is used to receive the metadata set issued by the metadata service 12, generate the download strategy for each target data slice according to the metadata set, and send the download strategy for each target data slice to the download execution module 22.
[0147] Download execution module 22 is used to download multiple target data slices from the server based on a download strategy;
[0148] The streaming flashing engine 23 is used to write multiple target data slices to the target storage partition of the vehicle ECU corresponding to the target data slices using a streaming flashing method.
[0149] The system in this embodiment is used to implement the above embodiments and preferred embodiments, and will not be repeated for details that have already been described.
[0150] This embodiment also provides a server, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in the above-described server-side software upgrade method embodiment.
[0151] This embodiment also provides a vehicle, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in the above-described vehicle-side software upgrade method embodiment.
[0152] It should be understood that the specific embodiments described herein are merely illustrative of the application and not intended to limit it. All other embodiments derived by those skilled in the art based on the embodiments provided in this application without inventive effort are within the scope of protection of this application.
[0153] Obviously, the accompanying drawings are merely some examples or embodiments of this application. Those skilled in the art can apply this application to other similar situations based on these drawings without any creative effort. Furthermore, it is understood that although the work done in this development process may be complex and lengthy, for those skilled in the art, certain design, manufacturing, or production modifications made based on the technical content disclosed in this application are merely conventional technical means and should not be considered as insufficient disclosure of this application.
[0154] The term "embodiment" in this application refers to a specific feature, structure, or characteristic described in connection with an embodiment that may be included in at least one embodiment of this application. The appearance of this phrase in various places in the specification does not necessarily imply the same embodiment, nor does it imply that it is mutually exclusive with or independent of other embodiments. It will be clearly or implicitly understood by those skilled in the art that the embodiments described in this application may be combined with other embodiments without conflict.
[0155] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of patent protection. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the appended claims.
Claims
1. A software upgrade method, characterized in that, The software upgrade method is applied to the server in the upgrade system; the method includes: Receive the upgrade package corresponding to the vehicle, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice; The vehicle's current on-board software information is obtained, and multiple target data slices corresponding to this upgrade are determined based on the on-board software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle's on-board ECU. A metadata set consisting of the metadata corresponding to each target data slice is sent to the vehicle, so that the vehicle can download the multiple target data slices from the server based on the metadata set, and use the multiple target data slices to upgrade the software of the vehicle ECU.
2. The software upgrade method according to claim 1, characterized in that, The step of dividing the upgrade package into multiple data slices for storage and generating metadata corresponding to each data slice includes: The upgrade package is classified hierarchically according to multiple preset hierarchical dimensions, and the index information of the upgrade package in each preset hierarchical dimension is determined based on the classification results; wherein, the multiple preset hierarchical dimensions include vehicle functional domains, vehicle ECU categories under each vehicle functional domain, and storage partitions under each vehicle ECU category. The upgrade package is divided according to a preset data block size to obtain multiple data slices corresponding to the upgrade package, and a data block identifier is assigned to each data slice. For each data slice, metadata corresponding to each data slice is generated based on the data block identifier of the data slice and the index information of the upgrade package corresponding to the data slice in each preset hierarchical dimension.
3. The software upgrade method according to claim 1, characterized in that, The step of determining multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice includes: The vehicle software version information recorded in the vehicle software information is compared with the software version information in the metadata corresponding to each data slice to identify multiple vehicle ECUs to be upgraded. Based on the software dependency relationships recorded in the vehicle-side software information, multiple target vehicle ECUs that meet the software dependency relationships are searched from the multiple vehicle ECUs to be upgraded. The data slices associated with the multiple target on-board ECUs to be upgraded are determined as the target data slices.
4. A software upgrade method, characterized in that, The software upgrade method is applied to vehicles in the upgrade system; the method includes: Receive a set of metadata sent by the server; wherein the set of metadata consists of the metadata of each target data slice corresponding to this upgrade; Multiple target data slices are downloaded from the server based on the metadata set; wherein the multiple target data slices are associated with the on-board ECU in the vehicle; The vehicle ECU is upgraded using the multiple target data slices.
5. The software upgrade method according to claim 4, characterized in that, The vehicle downloads multiple target data slices from the server based on the metadata set, including: Based on the current vehicle condition information, determine whether the multiple target data slices can be downloaded immediately; If so, a download strategy is determined based on the metadata set and the vehicle condition information, and the plurality of target data slices are downloaded from the server according to the download strategy; wherein, the download strategy is used to instruct the execution of at least one download task to download the plurality of target data slices from the server, and each download task is used to download at least one target data slice among the plurality of target data slices; If not, after a preset time period, the step of determining whether the multiple target data slices can be downloaded immediately based on the current vehicle condition information is executed again.
6. The software upgrade method according to claim 4, characterized in that, The metadata for each target data slice also includes verification information; The verification information includes a preset category verification value for the target data slice corresponding to the metadata; The method further includes: Parse each metadata in the metadata set to obtain the verification information in each metadata in the metadata set; When each target data slice is downloaded, a verification algorithm matching the verification information is executed on the target data slice to obtain the real-time verification value of the target data slice; The real-time verification value is compared with the preset category verification value in the metadata corresponding to the target data slice, and the integrity verification of the target data slice is determined based on the comparison result.
7. The software upgrade method according to claim 4, characterized in that, The software upgrade of the vehicle ECU using the multiple target data slices includes: The multiple target data slices are written to the target storage partition of the vehicle ECU corresponding to the target data slice using a streaming write method. Based on the metadata corresponding to each target data slice, the write result of the written target data slice is verified.
8. The software upgrade method according to claim 4, characterized in that, The software upgrade of the vehicle ECU using the multiple target data slices includes: Each downloaded target data slice is stored in a preset data storage partition; Retrieve each target data slice stored in the preset data storage partition and perform a software upgrade on the vehicle ECU associated with the target data slice; When it is detected that the vehicle ECU associated with the target data slice has completed a software upgrade, the target data slice that has been upgraded and used in the preset data storage partition is cleared.
9. A software upgrade method, characterized in that, The software upgrade method is applied to the upgrade system; The upgrade system includes servers and vehicles; The method includes: The server receives the upgrade package corresponding to the vehicle, divides the upgrade package into multiple data slices for storage, and generates metadata corresponding to each data slice. The server obtains the current vehicle-side software information of the vehicle from the vehicle, and determines multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle; The server sends a metadata set consisting of the metadata corresponding to each target data slice to the vehicle; The vehicle downloads the plurality of target data slices from the server based on the metadata set, and uses the plurality of target data slices to perform software upgrades on the vehicle ECU.
10. An upgrade system, characterized in that, The system includes a server and a vehicle; The server is configured to receive the upgrade package corresponding to the vehicle, divide the upgrade package into multiple data slices for storage, and generate metadata corresponding to each data slice. The server is configured to obtain the current vehicle-side software information of the vehicle from the vehicle, and determine multiple target data slices corresponding to this upgrade based on the vehicle-side software information and the metadata corresponding to each data slice; wherein, the multiple target data slices are associated with the vehicle-mounted ECU in the vehicle; The server is configured to send a metadata set consisting of the metadata corresponding to each target data slice to the vehicle; The vehicle is configured to download the plurality of target data slices from the server based on the metadata set, and use the plurality of target data slices to perform software upgrades on the vehicle ECU.
11. A server, comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform the steps of the software upgrade method according to any one of claims 1 to 3.
12. A vehicle comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform the steps of the software upgrade method according to any one of claims 4 to 8.