System and method for over-the-air delivery of vehicle software updates at a vehicle service center

By generating vehicle software plans and using wireless communication links to automatically update vehicle software, the problem of low efficiency in existing technologies is solved, achieving automation and cost reduction in vehicle software updates.

CN123047981APending Publication Date: 2026-11-06FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610486780.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-29
Filing Date
2026-04-14
Publication Date
2026-11-06

AI Technical Summary

Technical Problem

Existing vehicle software update methods are inefficient, require a lot of manual intervention, and result in longer service times and increased costs.

Method used

By generating vehicle software plans, the vehicle software is automatically updated using wireless communication links, including intermediate versions between the installed version and the desired version, supporting package transfer in service mode, and switching to non-service mode after the update is completed.

Benefits of technology

It automates and streamlines vehicle software updates, simplifies the operation for technicians, and reduces service time and labor costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123047981A_ABST
    Figure CN123047981A_ABST
Patent Text Reader

Abstract

This disclosure provides a "System and Method for Updating Vehicle Software Using Air Delivery in a Vehicle Service Center". A system includes a processor and a non-transitory computer-readable medium including programming instructions. When executed by the processor, the programming instructions cause the processor to generate a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version. The vehicle software plan may include any intermediate software version between the installed version and the desired version. When executed by the processor, the programming instructions further cause the processor, in response to the vehicle software plan being accepted, to perform a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode, to transmit one or more software packages to the vehicle system via a wireless communication link, and to update the vehicle system from the service mode to a non-service mode in response to the vehicle software being updated to the desired version.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to systems and / or methods for updating software programs in vehicles. Background Technology

[0002] Modern vehicles increasingly rely on software to control and manage various electronic systems and components, including but not limited to powertrain controls, braking systems, infotainment systems, advanced driver assistance systems (ADAS), and telematics functions. Therefore, vehicles may include numerous software-controlled modules, each potentially requiring regular software updates to maintain functionality, adjust performance, or address security vulnerabilities.

[0003] Software updates for vehicle systems can be performed at authorized service centers or repair facilities. In such setups, a technician connects a computing device (such as a diagnostic scanning tool or service computer) to the vehicle via a wired interface (e.g., an on-board diagnostic (OBD) port). The computing device is then used to transmit the software update to the vehicle's control modules. Summary of the Invention

[0004] In some aspects, this disclosure relates to a system including a processor and a non-transitory computer-readable medium comprising programming instructions. When executed by the processor, the programming instructions cause the processor to generate a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version. The vehicle software plan may include any intermediate software versions between the installed version and the desired version. When executed by the processor, the programming instructions further cause the processor, in response to the vehicle software plan being accepted, to perform a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode, to transmit one or more software packages to the vehicle system via a wireless communication link, and to update the vehicle system from the service mode to a non-service mode in response to the vehicle software being updated to the desired version.

[0005] In another aspect, this disclosure relates to a non-transitory computer-readable medium comprising instructions for updating vehicle software in a vehicle system, the instructions performing operations when executed by one or more processors, the operations including: generating a vehicle software plan to update vehicle software for the vehicle system from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; in response to the vehicle software plan being accepted, performing a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode to transmit one or more software packages to the vehicle system via a wireless communication link; and updating the vehicle system from the service mode to a non-service mode in response to the vehicle software being updated to the desired version.

[0006] In another aspect, this disclosure relates to a method comprising: generating a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; in response to the vehicle software plan being accepted, performing a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode to transmit one or more software packages to the vehicle system via a wireless communication link; and in response to the vehicle software being updated to the desired version, updating the vehicle system from the service mode to a non-service mode. Attached Figure Description

[0007] Figure 1 A vehicle service system and a vehicle support system for over-the-air software updates of a vehicle, according to the present disclosure, are shown.

[0008] Figure 2 This is a flowchart of an example software update control for a vehicle service system according to this disclosure.

[0009] Figure 3 This is a flowchart of an example software update for a vehicle support system according to this disclosure. Detailed Implementation

[0010] Detailed embodiments of the invention are disclosed herein as needed; however, it should be understood that the disclosed embodiments are merely examples of the invention that can be embodied in various forms and alternative forms. The drawings are not necessarily drawn to scale; some features may be enlarged or minimized to show details of specific components. Therefore, the specific structural and functional details disclosed herein are not to be construed as limiting, but only as representative bases for teaching those skilled in the art to employ the invention in various ways.

[0011] Existing methods for performing software updates exhibit certain inefficiencies. For example, without prior knowledge of how many versions are needed, software updates are typically delivered to vehicle modules one at a time, requiring each released version of the software to be updated until the desired version is reached. Each software version update may require technicians to download and install the software, power on and off the vehicle, and verify the software. This manual and sequential update process can lead to increased service time and labor costs.

[0012] This disclosure relates to systems and / or methods for updating vehicle software by simulating and automating vehicle software updates to schedule a sequence of software downloads for updating the vehicle software. For example, the system may generate a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version. The vehicle software plan may include any intermediate software versions between the installed version and the desired version. In response to the vehicle software plan being accepted, while the vehicle system is in service mode, the system further performs a vehicle software update according to the vehicle software plan to transmit one or more software packages to the vehicle system via a wireless communication link. Once the vehicle software is updated to the desired version, the vehicle system is updated from service mode to non-service mode. The systems / methods of this disclosure automate and streamline the update process by, for example, scheduling software update sequences, simplifying the work of technicians, and providing real-time monitoring and cancelability.

[0013] refer to Figure 1 The vehicle system 100 provided for vehicle 102 includes multiple subsystems configured to perform a series of vehicle functions. The subsystems may include, but are not limited to, systems related to vehicle propulsion, environmental or climate control (e.g., heating and cooling functions), battery management for electric vehicles, and infotainment or entertainment functions. Each subsystem may include one or more hardware components (e.g., electric motor, internal combustion engine, braking mechanism, battery pack, audio output device, sensors, etc.) and may additionally include a computing device having one or more software components that can be executed by one or more processors. The software components (e.g., vehicle software) are configured to control or facilitate the operation of the corresponding subsystem, such as, for example, controlling motor speed, managing passenger compartment temperature, or controlling the charging and discharging cycles of the vehicle battery system.

[0014] Vehicle software associated with vehicle subsystems can be updated post-manufacturing to, for example, modify or enhance the functionality of the respective subsystems. As detailed herein, software updates can be performed at a vehicle service center (e.g., a dealership and / or service station) having a vehicle service system 104 that communicates with a vehicle support system 106 storing one or more versions of the vehicle software. Although vehicle service system 104 and vehicle support system 106 are described as being located at different locations with different servers, systems 104 and 106 can be provided at the same location and can be implemented using one or more common servers.

[0015] In the accompanying drawing, arrow 108 shows a wireless communication link between different systems and / or components.

[0016] In some aspects, vehicle system 100 includes a communication system 110 that operates as a central communication hub between external systems (e.g., vehicle service system 104 and vehicle support system 106) and modules within vehicle system 100, and even between modules within vehicle system 100. For example, communication system 110 receives software updates from vehicle support system 106 and distributes the software updates to intended modules of vehicle system 100. Among other components, communication system 110 may also include a gateway controller configured to establish communication between various modules of vehicle system 100; and a telematics control unit (TCU) configured to establish wireless and wired communication with external devices (e.g., vehicle service system 104 and vehicle support system 106).

[0017] In a non-limiting example, other modules of vehicle system 100 may include: a drive control module 112A for controlling the propulsion of vehicle 102; a climate control module 112B for controlling the temperature of the passenger compartment; and an infotainment module 112C for controlling the infotainment system of vehicle 102. Modules 112A, 112B, and 112C may be collectively referred to as vehicle module 112. Among other components, system 110 and vehicle module 112 may include hardware devices such as a processor and memory storing software programs executable by the processor.

[0018] The vehicle service system 104 at the vehicle service center is configured to perform diagnostics on vehicle 102, including determining whether the vehicle software installed in vehicle 102 should be updated. In some implementations, the vehicle service system 104 includes a server 120 defining a communication module 122 and a vehicle inspection module 124. The server 120 may also include a data storage area storing records of various vehicles that have been serviced at the service center. Technicians at the vehicle service center can access the information and diagnostic tools of the vehicle service system 104 via a computing device 126 (e.g., a tablet, laptop, smartphone, and / or other suitable computing device), which communicates with the server 120 via, for example, a dedicated software application and / or a web-based interface installed on the computing device 126.

[0019] Communication module 122 is configured to exchange information with various external systems using various communication methods, such as, but not limited to, wired and wireless communication (e.g., Wi-Fi, cellular networks, and / or Bluetooth). For example, communication module 122 is configured to communicate with vehicle support system 106 to exchange information related to, for example, the vehicle 102 being serviced. Communication module 122 can also exchange information with computing device 126 to communicate with vehicle 102. That is, computing device 126 may include communication circuitry / interfaces for establishing wired / wireless communication with vehicle 102. Therefore, communication module 122 may include means for establishing communication with external systems / devices using various communication protocols, such as modems, routers, antennas, and / or microprocessors.

[0020] The vehicle inspection module 124 is configured to perform one or more diagnostics on the vehicle 102, such as, but not limited to, checking whether the vehicle system 100 has flagged one or more diagnostic fault codes, performing emissions tests, and / or performing battery discharge-charge tests. The vehicle inspection module 124 also uses the software update control 128 to determine whether a new version of the vehicle software installed in the vehicle system 100 is available.

[0021] More specifically, when the computing device 126 communicates with the vehicle 102, the software update control 128 obtains a unique vehicle identifier associated with the vehicle 102 (e.g., vehicle identification number), and in some implementations, obtains information related to the vehicle software installed in the vehicle 102 (e.g., the name, version, and / or installation date of the vehicle software). The software update control 128 is configured to place the vehicle 102 into a service mode, during which selected controls are deactivated (e.g., selected controls include no propulsion, engine shutdown, and / or the battery pack is not discharging or charging), and may only receive over-the-air communications specifically transmitted during the service mode (e.g., communications are limited to only with the vehicle service system 104 and the vehicle support system 106). In a non-limiting example, the software update control 128 places the vehicle 102 into a service mode by transmitting a message via the computing device 126 instructing the vehicle system 100 to enter the service mode. The vehicle 102's communication system 110 distributes the service mode request message to the vehicle module 112. In some respects, vehicle 102 can exit service mode upon receiving instructions from vehicle inspection module 124 and / or when vehicle 102 is turned on.

[0022] While vehicle 102 is in service mode, software update control 128 is configured to request vehicle support system 106 to provide a vehicle software plan for vehicle 102, based at least on a unique vehicle identifier. If one or more vehicle software updates to a newer version are required, vehicle support system 106 generates a vehicle software plan and provides it to vehicle service system 104 for approval. That is, upon receipt, software update control 128 displays a message on computing device 126 to a technician detailing the software plan (including an estimated installation time) and requests approval or cancellation of the software update. If approved, software update control 128 notifies vehicle support system 106, which initiates an over-the-air software update for vehicle system 100. Software update control 128 continues to notify technicians of any updates from vehicle support system 106, including completion of the software update and / or questions regarding the update. In some variations, software update control 128 may automatically approve the vehicle software plan in response to the vehicle software plan meeting one or more factors (e.g., the software update time is equal to or less than a selected time period or a selected time period has elapsed since the date associated with the desired version). In some respects, the software update control 128 is configured to allow the technician to make selections among software updates for vehicle module 112. For example, an update for a selected module 112 can be selected, while an update for an unselected module 112 can be postponed.

[0023] In some aspects, vehicle support system 104 is configured to perform over-the-air software updates to vehicle 102 based on a vehicle software plan designed for vehicle 102. Vehicle support system 104 may be provided as a remote server configured to communicate with external devices / systems (e.g., vehicle system 100 and vehicle service system 104). In some embodiments, vehicle support system 106 may be operated, maintained, or otherwise supported by the original equipment manufacturer (OEM) of vehicle 102. Vehicle support system 104 may include communication module 130, vehicle recording module 132, software update simulation module 134, and software package module 136.

[0024] The communication module 130 is configured to exchange information with various external systems using one or more communication technologies (such as, but not limited to, wired and wireless communication (e.g., Wi-Fi, cellular networks, and / or Bluetooth)). Therefore, the communication module 130 may include means for establishing communication with external systems / devices using various communication protocols, such as, but not limited to, modems, routers, antennas, and / or microprocessors.

[0025] Vehicle record module 132 is configured to manage and store vehicle information associated with vehicles (e.g., vehicle 102) registered with vehicle support system 106. In a non-limiting example, vehicle information may include vehicle brand and model; part numbers of the vehicle's hardware / software components; diagnostic history; service history; and / or information related to vehicle software installed in the vehicle (e.g., program name, currently installed version, and / or last update date). Using a unique vehicle identifier as a means of associating the corresponding vehicle record with vehicle 102, vehicle information can be stored as a vehicle record data storage area 138.

[0026] The software update simulation module 134 is configured to generate a vehicle software plan to update the vehicle software from the version currently installed in vehicle 102 (e.g., the installed version) to a desired version, which may be the latest version. In some implementations, the desired version can be identified in the vehicle record when a software version release for the vehicle software is issued, set by the OEM, or when the latest version of the vehicle software is reached. In some implementations, the software update simulation module 134 retrieves the vehicle record for vehicle 102 from the record data storage area 138 based on a unique vehicle identifier and determines whether the vehicle software in vehicle system 100 should be updated based on the installed version and the desired version. In some aspects, the vehicle software update simulation module 134 examines each piece of vehicle software in vehicle system 100 to determine which piece of vehicle software needs to be updated.

[0027] To generate a vehicle software plan, the software update simulation module 134 simulates a vehicle software update for each piece of vehicle software to be updated. Specifically, for a given vehicle module 112 of the vehicle system 100, the software update simulation module 134 sequentially and iteratively retrieves software files for the vehicle software from the software data storage area 140, starting with the version immediately following the installed version, then the next released version, and so on until the desired version. The software data storage area 140 is configured as a software library storing a plurality of software files for different vehicle software used by the vehicle module 112, wherein the selected vehicle software is associated with a plurality of software files as different versions of the vehicle software.

[0028] For each piece of vehicle software to be updated in vehicle system 100, a sequential search is performed, wherein the vehicle software plan may include any intermediate software versions between the installed version and the desired version, along with the desired version. Therefore, the vehicle software plan provides vehicle system 100 with a simulated sequence of how the vehicle software will be progressively changed. In some aspects, the vehicle software plan identifies the vehicle module 112 to be updated, the part numbers associated with the vehicle software that may change due to the software update, and the configuration updates that may be applied.

[0029] The software update simulation module 134 is also configured to determine the software update time for the vehicle software plan, where the software update time is an estimate of how long the vehicle software update will take. In a non-limiting example, metadata of the updated artifact (e.g., software files) is used to estimate the software update time, the metadata including data on burning time in the vehicle system 100. Estimates of the artifact size and download speed range are used to estimate the possible download duration / time. The sum of the burning time and download time is then provided to the technician as a total estimate.

[0030] Once defined, the software update simulation module 134 is configured to transmit a software update message to the vehicle service system, including information indicating the vehicle software schedule. In a non-limiting example, the software update message provides details of the vehicle software schedule, including the software update time, the download size of the software file, and the vehicle module 112 to be updated.

[0031] In some aspects, the software update process can be cancelled at any time, for example, by having a technician request cancellation via an interface associated with the software update process, or by having vehicle 102 exit service mode (which can be directly detected by vehicle support system 106 and / or notified by vehicle service system 104). Additionally, the software update message also requests approval of the vehicle software plan (e.g., activating the software update) or cancellation of the vehicle software plan (e.g., deactivating the software update). In a non-limiting example, a technician can approve or cancel a software update defined by the vehicle software plan via computing device 126.

[0032] The software package module 136 is configured to initiate a software update for one or more vehicle software modules in response to acceptance of a vehicle software plan. In a non-limiting example, for each vehicle module 112 to be updated, the software package module 136 obtains a first software file of a first version provided in the vehicle software plan and transmits all first software files as a software package to the vehicle system 100 via wireless communication. Depending on the vehicle software plan, different versions of software files are provided one at a time (e.g., iteratively and sequentially).

[0033] Once received, vehicle system 100 distributes the software files to the corresponding vehicle modules 112. That is, the software package includes information identifying which vehicle modules 112 will receive the software files provided in the package. Once the download is complete, vehicle system 100 notifies vehicle support system 104 to receive the next software file for vehicle modules 112 according to the vehicle software schedule. Therefore, vehicle system 100 incrementally updates the vehicle software until the desired version is obtained.

[0034] During the update, vehicle system 100 can transmit its status to vehicle support system 106, which can further notify vehicle service system 104, including a computing device 126 managed by technicians. Once the vehicle software is updated, vehicle support system 106 requests vehicle service system 104 to remove vehicle 102 from service mode and place it into a normal operating mode that allows operation of all vehicle controls. If a problem occurs during the update, the vehicle software update can be paused, and vehicle service system 104 can investigate the problem.

[0035] refer to Figure 2 The above description describes an example software update control routine 200 executed by the vehicle service system 104. Routine 200 is executed for vehicles 102 serviced at the vehicle service center.

[0036] At operation 202, vehicle service system 104 puts vehicle 102 into service mode to deactivate selected controls. In a non-limiting example, vehicle service system 104 transmits a message or command requesting control in service mode to vehicle system 100 via a wireless communication link.

[0037] At operation 204, vehicle service system 104 requests vehicle support system 106 to generate a vehicle software plan for vehicle 102. In a non-limiting example, the request may include, for example, a unique vehicle identifier, the brand / model of vehicle 102, and / or the part number associated with module 112, and other information. A technician may transmit the request by operating computing device 126 associated with vehicle support system 104.

[0038] At operation 206, vehicle servicing system 104 is configured to determine whether a software update message has been received from vehicle support system 106. In a non-limiting example, vehicle servicing system 104 may wait for a selected period of time before canceling the request and notifying a technician to request the vehicle software schedule again or perform other actions (e.g., checking communication connectivity) before receiving the software update message.

[0039] If a software update message is received, at operation 208, the vehicle servicing system 104 determines whether to perform the software update. In a non-limiting example, the software update message is displayed to a technician, the message having accept and cancel buttons, allowing the technician to view the vehicle software schedule and support information (such as the software update time). In another example, the vehicle servicing system 104 may be configured to automatically accept the vehicle software schedule in response to the vehicle software schedule meeting one or more factors (e.g., the software update time is equal to or less than a selected time period or a selected time period has elapsed since the date associated with the desired version).

[0040] If the vehicle software plan is rejected / cancelled, at operation 210, the vehicle service system 104 notifies the vehicle support system 106.

[0041] If the vehicle software plan is accepted, the vehicle service system 104 requests a software update from the vehicle support system 106 at operation 212 by transmitting a message to the vehicle support system 106.

[0042] At operation 214, vehicle service system 104 determines whether the software update is complete based on notifications from at least one of vehicle system 100 and / or vehicle support system 106. If complete, routine 200 terminates.

[0043] Figure 3 This is a flowchart of an example software update routine 300 for a vehicle support system 106 according to this disclosure. In some aspects, the software update routine 300 begins when a vehicle software plan is requested from a vehicle support system 104. It should be understood that the vehicle support system 106 can be configured to support multiple vehicle support systems 104, and therefore the routine 300 can be executed relative to each of the supported vehicle support systems 104.

[0044] At operation 302, vehicle support system 106 obtains the installed version of the vehicle software provided in vehicle module 112. In a non-limiting example, the installed version may be provided along with a vehicle software scheduling request and / or in the vehicle record associated with vehicle 102. In some aspects, installed versions of all vehicle software adopted by vehicle system 100 and managed by vehicle service system 106 are obtained. Alternatively, vehicle software associated with one or more selected vehicle modules 112 is evaluated.

[0045] At operation 304, vehicle support system 106 is configured to generate a vehicle software plan to update the vehicle software from the installed version to a desired version. In a non-limiting example, for each piece of vehicle software, vehicle support system 106 requests software files for a version issued after the installed version and simulates the download of the requested software files.

[0046] At operation 306, vehicle support system 106 determines whether all versions have been retrieved. In a non-limiting example, vehicle support system 106 compares the most recently retrieved version with the expected version. If they are the same, vehicle support system 106 determines that all versions have been received.

[0047] If an additional version is available, vehicle support system 106 returns to operation 304 to retrieve the next software file for the next version. In some respects, the version of the vehicle software for some modules 112 may be complete, while others may not. In this case, vehicle support system 106 continues to retrieve the incompletely retrieved software files for the vehicle software.

[0048] If all versions are received, at operation 308, vehicle support system 106 generates a vehicle software plan based on the iterative and simulation process. In a non-limiting example, to generate the vehicle software plan, vehicle support system 106 determines which vehicle modules 112 are updated, identifies the part numbers of the vehicle software used for the update, and provides a download sequence for the retrieved vehicle software for vehicle modules 112. Vehicle support system 106 can also estimate the software update time for updating the vehicle software in vehicle modules 112.

[0049] At operation 310, vehicle support system 106 creates a software update message and transmits it to vehicle service system 104. The software update message includes information indicative of a vehicle software schedule. In some aspects, the software update message includes the software update time.

[0050] At operation 312, vehicle support system 106 determines whether the vehicle software plan is accepted or rejected based on messages from vehicle service system 104.

[0051] If rejected, at operation 314, vehicle support system 106 cancels the software update. For example, vehicle support system 106 deletes the vehicle software plan.

[0052] If approved, at operation 316, vehicle support system 106 transmits a software update package, including software files for updating the vehicle software adopted by vehicle module 112, to vehicle system 100. Here, vehicle support system 106 communicates directly with vehicle system 100 for over-the-air software updates.

[0053] At operation 318, vehicle support system 106 determines whether the software file was successfully downloaded. For example, when the provided software file is installed in vehicle system 100, vehicle support system 106 may receive a notification from vehicle system 100 and / or from vehicle service system 104.

[0054] If the software files have not been downloaded, the vehicle support system 106 waits. On the other hand, if the software files have been downloaded, the vehicle support system 106 determines whether the software update is complete. That is, the vehicle support system 106 determines whether each of the software files provided in the vehicle software plan has been transmitted and downloaded.

[0055] At operation 320, if the software update is not completed, the vehicle support system 106 packages and transmits the next software file based on the vehicle software plan. Therefore, the vehicle support system 106 provides software files for updating the vehicle software sequentially and iteratively.

[0056] If the vehicle software update is complete, at operation 322, the vehicle support system 106 transmits a notification indicating that the vehicle software update is complete to the vehicle service system 104. In some aspects, the vehicle support system 106 may also update the vehicle record associated with the vehicle 102 to remember the software update of the vehicle system 100.

[0057] In some respects, vehicle system 100 routinely updates vehicle support system 106 with information about ongoing software updates (e.g., providing status after each vehicle software download is completed). If an error occurs during an update, vehicle support system 106 may notify vehicle service system 104 and await further instructions from system 104.

[0058] Routine 200 and 300 are merely examples of the vehicle service system 104 and vehicle support system 106 of this disclosure. Routine 200 and 300 may be varied in various suitable ways based on this disclosure. For example, routine 200 and / or 300 may be canceled at any time by a technician via a cancellation command provided by computing device 126 or interrupted by vehicle system 100.

[0059] Unless otherwise expressly indicated herein, all numerical values ​​indicating mechanical / thermal properties, percentage of composition, dimensions and / or tolerances or other characteristics should be understood as being modified by the words “about” or “approximately” when describing the scope of this disclosure. Such modification is desired for a variety of reasons, including: industrial practice; material, manufacturing and assembly tolerances; and testing capabilities.

[0060] In this application, components (e.g., communication system 110, vehicle module 112, communication module 122, vehicle inspection module 124 with software update control 128, communication module 130, vehicle recording module 132, software update simulation module 134, and software package module 136) may be a part of, or include, the following: application-specific integrated circuit (ASIC); digital, analog, or mixed analog / digital discrete circuits; digital, analog, or mixed analog / digital integrated circuits; combined logic circuits; field-programmable gate arrays (FPGAs); processor circuits (shared, dedicated, or grouped) that execute code; memory circuits (shared, dedicated, or grouped) that store code executed by the processor circuits; other suitable hardware components that provide the described functionality; or combinations of some or all of the above, such as in a system-on-a-chip.

[0061] The term memory device is a subset of the term computer-readable medium. As used herein, the term computer-readable medium does not cover transient electrical or electromagnetic signals propagated through a medium (such as on a carrier wave); therefore, the term computer-readable medium can be considered tangible and non-transient. Non-limiting examples of non-transient tangible computer-readable media include non-volatile memory circuits (such as flash memory circuits, erasable programmable read-only memory circuits, or mask read-only circuits), volatile memory circuits (such as static random access memory circuits or dynamic random access memory circuits), magnetic storage media (such as analog magnetic tape or digital magnetic tape or hard disk drives), and optical storage media (such as Universal Serial Bus (USB) drives, optical discs (CDs), digital versatile discs (DVDs), or Blu-ray discs).

[0062] The devices and methods described in this application (e.g., routines 200 and 300, communication system 110, vehicle module 112, communication module 122, vehicle inspection module 124 with software update control 128, communication module 130, vehicle recording module 132, software update simulation module 134, and software package module 136) can be implemented partially or entirely by a dedicated computer created by configuring a general-purpose computer (e.g., a computing device) to perform one or more specific functions embodied in the computer program. Function blocks, flowchart components, and other elements described above serve as software specifications that can be translated into computer programs by the routine work of a technician or programmer.

[0063] The description in this disclosure is merely exemplary in nature, and therefore, variations without departing from the spirit and scope of this disclosure are intended to be made within its scope. Such variations should not be considered as departing from the spirit and scope of this disclosure.

[0064] According to the present invention, a system is provided, the system comprising: a processor; and a non-transitory computer-readable medium including programming instructions, which, when executed by the processor, cause the processor to: generate a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; in response to the vehicle software plan being accepted, while the vehicle system is in a service mode, perform a vehicle software update according to the vehicle software plan to transmit one or more software packages to the vehicle system via a wireless communication link; and in response to the vehicle software being updated to the desired version, update the vehicle system from the service mode to a non-service mode.

[0065] According to an embodiment, the present invention is further characterized by a software data storage area, which stores multiple versions of the vehicle software as software files for the vehicle software.

[0066] According to an embodiment, in order to generate the vehicle software plan, the programming instructions, when executed by the processor, will cause the processor to: iteratively and sequentially retrieve one or more relevant software files from the software data storage area, starting with the software file having a version immediately following the installed version and ending with the software file having the desired version; for each retrieval, simulate a software update using the software file; and identify one or more vehicle computing modules in the vehicle system that are updated in response to retrieving and simulating all the software files for the vehicle software, the vehicle software plan including information related to the software files used to update the vehicle software from the installed version to the desired version for the vehicle computing modules and the download order of the software files.

[0067] According to an embodiment, when the programming instructions are executed by the processor, the processor will cause the processor to estimate the software update time based on the vehicle software plan, the software update time providing an estimated time to update the vehicle software to the desired version.

[0068] According to an embodiment, when the programming instructions are executed by the processor, the processor causes the processor to: transmit a software update message including information indicating the vehicle software plan, the software update message including an identifier of one or more vehicle computing modules for receiving the software update; and receive at least one of acceptance of the vehicle software plan or deactivation of the vehicle software plan.

[0069] According to an embodiment, when the programming instructions are executed by the processor, the processor will cause the processor to cancel the vehicle software update in response to receiving a notification that the vehicle system is in the non-service mode.

[0070] According to an embodiment, when the programming instructions are executed by the processor, the processor will cause the vehicle system to be set to the service mode to deactivate selected control features of the vehicle system before the vehicle system receives the vehicle software plan.

[0071] According to an embodiment, the vehicle software includes multiple vehicle software for multiple vehicle control modules of the vehicle system, and the vehicle software is designed to define how each of the multiple vehicle control modules of the vehicle system will update the installed version to the desired version.

[0072] According to the present invention, a non-transitory computer-readable medium is provided having instructions for updating vehicle software in a vehicle system, the instructions performing operations when executed by one or more processors, the operations including: generating a vehicle software plan to update vehicle software for the vehicle system from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; in response to the vehicle software plan being accepted, performing a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode to transmit one or more software packages to the vehicle system via a wireless communication link; and updating the vehicle system from the service mode to a non-service mode in response to the vehicle software being updated to the desired version.

[0073] According to an embodiment, in order to generate the vehicle software plan, the instructions, when executed by the one or more processors, perform the following operations: iteratively and sequentially retrieving one or more relevant software files from a software data storage area, starting with the software file having a version immediately following the installed version and ending with the software file having the desired version, wherein the software data storage area stores multiple versions of the vehicle software as software files for the vehicle software; simulating a software update using the software file for each retrieval; and identifying one or more vehicle computing modules in the vehicle system that are updated in response to retrieving and simulating all the software files for the vehicle software, the vehicle software plan including information related to the software files used to update the vehicle software from the installed version to the desired version for the vehicle computing modules and the download order of the software files.

[0074] According to an embodiment, the invention is further characterized by instructions that, when executed by the one or more processors, perform operations including estimating a software update time based on the vehicle software schedule, the software update time providing an estimated time to update the vehicle software to the desired version.

[0075] According to an embodiment, the invention is further characterized by instructions that, when executed by the one or more processors, perform operations including: transmitting a software update message including information indicating the vehicle software plan, the software update message including an identifier of one or more vehicle computing modules for receiving the software update; and receiving at least one of acceptance of the vehicle software plan or deactivation of the vehicle software plan.

[0076] According to an embodiment, the invention is further characterized by instructions that, when executed by the one or more processors, perform operations including: canceling the vehicle software update in response to receiving a notification that the vehicle system is in the non-service mode.

[0077] According to an embodiment, the invention is further characterized by instructions that, when executed by the one or more processors, perform operations including: setting the vehicle system to the service mode to deactivate selected control features of the vehicle system before the vehicle system receives the vehicle software plan.

[0078] According to an embodiment, the vehicle software includes multiple vehicle software for multiple vehicle control modules of the vehicle system, and the vehicle software is designed to define how each of the multiple vehicle control modules of the vehicle system will update the installed version to the desired version.

[0079] According to the present invention, a method includes: generating a vehicle software plan to update vehicle software for a vehicle system from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; in response to the vehicle software plan being accepted, performing a vehicle software update according to the vehicle software plan while the vehicle system is in a service mode to transmit one or more software packages to the vehicle system via a wireless communication link; and in response to the vehicle software being updated to the desired version, updating the vehicle system from the service mode to a non-service mode.

[0080] In one aspect of the invention, the method includes, in order to generate the vehicle software plan: iteratively and sequentially retrieving one or more relevant software files from a software data storage area, starting with the software file having a version immediately following the installed version and ending with the software file having the desired version, wherein the software data storage area stores multiple versions of the vehicle software as software files for the vehicle software; for each retrieval, simulating a software update using the software files; and identifying one or more vehicle computing modules in the vehicle system that are updated in response to retrieving and simulating all the software files for the vehicle software, the vehicle software plan including information related to the software files for updating the vehicle software from the installed version to the desired version for the vehicle computing modules and the download order of the software files.

[0081] In one aspect of the invention, the method includes estimating a software update time based on the vehicle software schedule, the software update time providing an estimated time to update the vehicle software to the desired version.

[0082] In one aspect of the invention, the method includes transmitting a software update message including information indicating the vehicle software plan, the software update message including an identifier of one or more vehicle computing modules for receiving the software update; and receiving either acceptance of the vehicle software plan or deactivation of the vehicle software plan.

[0083] In one aspect of the invention, the method includes setting the vehicle system to the service mode to deactivate selected control features of the vehicle system before the vehicle system receives the vehicle software plan.

Claims

1. A system comprising: processor; as well as A non-transitory computer-readable medium comprising programming instructions that, when executed by the processor, cause the processor to: Generate a vehicle software plan to update vehicle software for vehicle systems from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; In response to the vehicle software plan being accepted, while the vehicle system is in service mode, a vehicle software update is performed according to the vehicle software plan to transmit one or more software packages to the vehicle system via a wireless communication link; as well as In response to the vehicle software being updated to the desired version, the vehicle system is updated from the service mode to the non-service mode.

2. The system of claim 1, further comprising a software data storage area, wherein the software data storage area stores multiple versions of the vehicle software as software files for the vehicle software.

3. The system of claim 2, wherein, in order to generate the vehicle software plan, the programming instructions, when executed by the processor, will cause the processor to: One or more relevant software files are retrieved iteratively and sequentially from the software data storage area, starting with the software file having a version immediately following the installed version and ending with the software file having the desired version; For each retrieval, the software file is used to simulate a software update; as well as The vehicle system identifies one or more vehicle computing modules that are updated in response to retrieving and simulating all the software files used for the vehicle software. The vehicle software plan includes information related to the software files used to update the vehicle software from the installed version to the desired version for the vehicle computing modules and the download order of the software files.

4. The system of claim 1, wherein the programming instructions, when executed by the processor, cause the processor to estimate a software update time based on the vehicle software schedule, the software update time providing an estimated time to update the vehicle software to the desired version.

5. The system of claim 1, wherein the programming instructions, when executed by the processor, cause the processor to: The transmission includes a software update message containing information indicating the vehicle software plan, the software update message including identifiers of one or more vehicle computing modules for receiving the software update; and Receive at least one of acceptance of the vehicle software plan or deactivation of the vehicle software plan.

6. The system of claim 1, wherein the programming instructions, when executed by the processor, cause the processor to cancel the vehicle software update in response to receiving a notification that the vehicle system is in the non-service mode.

7. The system of claim 1, wherein the programming instructions, when executed by the processor, cause the processor to set the vehicle system to the service mode to deactivate selected control features of the vehicle system before the vehicle system receives the vehicle software plan.

8. The system of claim 1, wherein the vehicle software includes multiple vehicle software for multiple vehicle control modules of the vehicle system, and the vehicle software is designed to define updates for each of the multiple vehicle control modules of the vehicle system from the installed version to the desired version.

9. A method comprising: Generate a vehicle software plan to update vehicle software for vehicle systems from an installed version to a desired version, the vehicle software plan including any intermediate software versions between the installed version and the desired version; In response to the vehicle software plan being accepted, while the vehicle system is in service mode, a vehicle software update is performed according to the vehicle software plan to transmit one or more software packages to the vehicle system via a wireless communication link; as well as In response to the vehicle software being updated to the desired version, the vehicle system is updated from the service mode to the non-service mode.

10. The method of claim 9, further comprising, for generating the vehicle software plan: Iteratively and sequentially retrieve one or more relevant software files from the software data storage area, starting with the software file having a version immediately following the installed version and ending with the software file having the desired version; The software data storage area stores multiple versions of the vehicle software as software files used in the vehicle software. For each retrieval, the software file is used to simulate a software update; as well as The vehicle system identifies one or more vehicle computing modules that are updated in response to retrieving and simulating all the software files used for the vehicle software. The vehicle software plan includes information related to the software files used to update the vehicle software from the installed version to the desired version for the vehicle computing modules and the download order of the software files.

11. The method of claim 9, further comprising estimating a software update time based on the vehicle software schedule, the software update time providing an estimated time to update the vehicle software to the desired version.

12. The method of claim 9, further comprising: The transmission includes a software update message containing information indicating the vehicle software plan, the software update message including an identifier of one or more vehicle computing modules for receiving the software update; as well as Receive either acceptance of the vehicle software plan or deactivation of the vehicle software plan.

13. The method of claim 9, further comprising setting the vehicle system to the service mode to deactivate selected control features of the vehicle system before the vehicle system receives the vehicle software plan.

14. The method of claim 9, wherein the vehicle software includes multiple vehicle software for multiple vehicle control modules of the vehicle system, and the vehicle software is designed to define updates for each of the multiple vehicle control modules of the vehicle system from the installed version to the desired version.