Software update system and method of controlling the same
By generating multi-level differential data and determining the optimal combination, the problem of optimizing the update data size in multiple vehicle controller updates was solved, achieving more efficient software updates.
Patent Information
- Application Number
- CN202011604165.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-05-14
- Filing Date
- 2020-12-30
- Publication Date
- 2025-12-30
- Estimated Expiration
- 2040-12-30
AI Technical Summary
Existing differential update methods struggle to optimize the size of update data when multiple vehicle controllers are being updated, especially failing to effectively utilize the software similarity between controllers.
By acquiring differential data between the original and updated images of multiple controllers, multi-level differential data is generated, and the optimal combination is determined using a differential combination strategy to generate minimal update data.
When multiple controllers are updating simultaneously, the size of the updated data is optimized, reducing data transmission time and cost, and improving update efficiency.
Smart Images

Figure CN113672274B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a software update system based on differential updating and a control method for the system, wherein the software update system is used to reduce the size of the update data. Background Technology
[0002] Recently, with the increasing number of functions installed in vehicles, more and more controllers have been installed, and their software is frequently updated due to functional improvements. Conventional update methods involve sending the software (e.g., the entire controller firmware) to the vehicle via diagnostic communication; however, with the gradual introduction of over-the-air (OTA) methods, attempts are being made to reduce the size of update data due to telecommunications costs.
[0003] Differential update methods can be used as part of this approach. Differential update methods involve extracting the differences (i.e., the difference between the existing software image and the updated software image) and applying these differences to the existing software image to perform an update. Therefore, in differential update methods, the difference is reduced because it decreases the difference between the existing and updated software images, thus significantly reducing the size of the update data.
[0004] However, when the general differential update method is applied to vehicles, only the software changes of a single controller are considered. Therefore, when updating the software of multiple controllers in vehicles that have recently been equipped with multiple controllers, it is difficult to optimize the size of the update data.
[0005] Specifically, typical differential update methods are primarily based on differences in software versions (i.e., temporal differences). However, recently updated vehicle controllers share many architectural elements (e.g., cooperative control for individual functions), and therefore also exhibit software similarity (i.e., spatial similarity). For example, following recent trends, software with the same open-source or identical solutions is increasingly used for similar functions. Therefore, when updating communication functions between controllers, the communication-related parts of the software of the multiple controllers involved in the communication can be applied in the same or similar manner.
[0006] Therefore, it is necessary to also consider the similarity of the updated controller software to optimize the size of the update data, and the method is applicable to updating the entire controller at the vehicle level rather than at the individual controller level. Summary of the Invention
[0007] The purpose of this invention is to provide a software update system and a method for controlling the system, wherein the system is used to perform software updates more efficiently based on a differential update method. Specifically, this invention provides a software update system and its control method, wherein the system is used to optimize the size of update data when multiple controllers are updating simultaneously.
[0008] The technical problems solved by the exemplary embodiments are not limited to the above-mentioned technical problems, and other technical problems not described herein will become apparent to those skilled in the art based on the following description.
[0009] To achieve these objectives and other advantages and in accordance with the purposes of the invention, as embodied and summarized herein, a method for updating software may include: obtaining differential data between the original image and the updated image of each of a plurality of update target controllers included in a vehicle, by an update server; obtaining at least one level of lower-level differential data between the differential data of each of the plurality of update target controllers; generating a plurality of differential combinations for all the plurality of update target controllers; determining the optimal combination of the plurality of differential combinations; and generating update data based on the optimal combination.
[0010] In another aspect of the invention, the method for updating software may include: receiving update data and a combination method for updating the software of a plurality of update target controllers from an update server in a vehicle comprising a plurality of controllers; obtaining differential data corresponding to the difference between the original image and the updated image for each of the plurality of update target controllers by applying the combination method to at least one differential data and a plurality of lower-level differential data included in the update data; and performing an update using the differential data of each of the plurality of update target controllers.
[0011] In another aspect of the invention, the update server may include: a differential calculator configured to acquire differential data between the original image and the updated image of each of a plurality of update target controllers included in the vehicle, and acquire at least one level of lower-level differential data between the differential data of each of the plurality of update target controllers; and a differential combination strategy determiner configured to generate a plurality of differential combinations for all the plurality of update target controllers, determine the optimal combination among the plurality of differential combinations, and generate update data based on the optimal combination.
[0012] In another aspect of the invention, a vehicle may include a gateway and a plurality of controllers connected to the gateway, wherein the gateway is configured to receive update data and a combination method for updating the software of a plurality of update target controllers among the plurality of controllers from an update server, and to obtain differential data corresponding to the difference between the original image and the updated image of each of the plurality of update target controllers by applying the combination method to at least one differential data and a plurality of lower-level differential data included in the update data. Attached Figure Description
[0013] The accompanying drawings are included to provide a further understanding of the invention, and are incorporated into and constitute a part of this invention. These drawings illustrate exemplary embodiments of the invention and, together with the specification, serve to explain the principles of the invention. In the drawings:
[0014] Figure 1 This is a schematic diagram illustrating an example configuration of a software update system applicable to an exemplary embodiment of the present invention;
[0015] Figure 2A This is a schematic diagram used to explain the concept of generating updated data according to an exemplary embodiment of the present invention. Figure 2B It is a schematic diagram used to explain the concept of the update process using updated data;
[0016] Figure 3 This is a flowchart illustrating an example of a software update process according to an exemplary embodiment of the present invention;
[0017] Figure 4 This is a flowchart illustrating an example of a process for preparing updated data according to an exemplary embodiment of the present invention;
[0018] Figure 5 This is a flowchart illustrating an example of an update process according to an exemplary embodiment of the present invention. Detailed Implementation
[0019] It should be understood that the term "vehicle" or "of a vehicle" or other similar terms used herein include general motor vehicles, such as passenger cars including sport utility vehicles (SUVs), buses, trucks, and various commercial vehicles, boats including various vessels and ships, and aircraft, etc., and include hybrid vehicles, electric vehicles, internal combustion engine vehicles, plug-in hybrid electric vehicles, hydrogen-powered vehicles, and other alternative fuel vehicles (e.g., fuels derived from non-fossil energy sources).
[0020] While the exemplary embodiments are described as using multiple units to perform the exemplary processes, it should be understood that the exemplary processes may also be performed by one or more modules. Furthermore, it should be understood that the term "controller / control unit" refers to a hardware device including a memory and a processor, and is specifically programmed to perform the processes described herein. The memory is configured to store modules, and the processor is specifically configured to execute the modules to perform one or more processes described further below.
[0021] Furthermore, the control logic of the present invention can be implemented as a non-volatile computer-readable medium on a computer-readable medium, which contains executable program instructions that are executed by a processor, controller / control unit, etc. Examples of computer-readable media include, but are not limited to, ROM, RAM, optical disc (CD)-ROM, magnetic tape, floppy disk, flash drive, smart card, and optical data storage device. The computer-readable recording medium can also be distributed across a network-connected computer system, such that the computer-readable medium is stored and executed in a distributed manner, for example, via a telematics server or a controller area network (CAN).
[0022] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms “a,” “an,” and “described” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that when the terms “comprising” and / or “including” are used in this specification, they indicate the presence of the stated feature, value, step, operation, element, and / or component, but do not exclude the presence or inclusion of one or more other features, values, steps, operations, elements, components, and / or groups thereof. As used herein, the term “and / or” includes any and all combinations of one or more of the associated enumerations.
[0023] Unless otherwise stated or obvious from the context, the term "approximately" as used herein is understood to mean within the normal tolerances in the field, such as within 2 standard deviations of the mean. "Approximately" can be understood as within 10%, 9%, 8%, 7%, 6%, 5%, 4%, 3%, 2%, 1%, 0.5%, 0.1%, 0.05%, or 0.01% of the specified value. Unless the context clearly indicates otherwise, all numerical values provided herein are modified by the term "approximately".
[0024] Exemplary embodiments of the invention have been described in detail with reference to the accompanying drawings, enabling those skilled in the art to readily implement them. However, the invention can be implemented in different ways and is not limited to these exemplary embodiments. For clarity of description, parts irrelevant to the description have been omitted from the drawings, and similar reference numerals denote similar elements throughout the specification. The same reference numerals refer to the same parts throughout the drawings and specification.
[0025] According to an exemplary embodiment of the present invention, when the software of multiple controllers is updated, update data with an optimal size can be generated by: generating differential data for each controller that is the target of the update, generating at least one level of lower-level differential data in the differential data, and comparing the combination between the differential data and the lower-level differential data.
[0026] Figure 1 This is a schematic diagram illustrating an example configuration of a software update system applicable to an exemplary embodiment of the present invention. (Reference) Figure 1 The software update system may include an update server 100 and a vehicle 200. The update server 100 is configured to prepare and provide update data, and the vehicle 200 is configured to receive update data from the update server 100 and update the software.
[0027] The update server 100 may include a differential calculator 110, a differential combination strategy determiner 120, a storage unit 130, and a communicator 140. The vehicle 200 may include a gateway 210 and multiple vehicle controllers 220, 230, and 240 connected to the gateway 210. First, the components of the update server 100 will be described.
[0028] The differential calculator 110 can be configured to generate at least two levels of differential data when the software of multiple update target devices (hereinafter, for convenience, assumed to be "controllers") needs to be updated together in a single update. Specifically, the differential calculator 110 can be configured to generate differential data for each piece of software installed in multiple controllers by comparing the original image corresponding to a previous version of the software with the updated image corresponding to the most recent version of the software (i.e., the updated software). The differential data between the original image and the updated image for the same controller can be referred to as primary differential.
[0029] The difference calculator 110 can be configured to generate lower-level difference data (i.e., second-level differences) by comparing primary differences of different controllers. When the number of controllers targeted for software updates in a corresponding round is three, tertiary differences, serving as differences between second-level differences, can also be generated. In other words, when the number of controllers targeted for software updates is N (here, N is a natural number greater than or equal to 2), the difference calculator 110 according to the exemplary embodiment can be configured to generate the minimum second-level differences, and can be configured to generate the maximum N-level differences as needed.
[0030] The differential combination strategy determiner 120 can be configured to generate differential combinations as update targets for all controllers based on the differential data generated by the differential calculator 110 and its subordinate differential data, and the differential combination strategy determiner 120 can be configured to determine the total size of each differential combination. The differential combination strategy determiner 120 can be configured to generate update data by comparing the total sizes of the various differential combinations and selecting the optimal differential combination (e.g., the one with the smallest total size), and can derive information about how they are combined.
[0031] Storage unit 130 can be configured to store source data, intermediate data, and final data required or generated during the operation of differential calculator 110 and differential combination strategy determiner 120. For example, source data may include the original image and updated image of each controller as a software update target. Intermediate data may include differential data and lower-level differential data of each controller, the total size of each differential combination, and the combination method of each differential combination.
[0032] The final data may include updated data of optimal size and information about its combination, but the invention is not limited thereto. The communicator 140 may be configured to wirelessly communicate with the gateway 210 of the vehicle 200, and the communicator 140 may be configured to send updated data corresponding to the vehicle 200 and information about the combination method in response to receiving an update request from the vehicle 200.
[0033] In the following description, each component of vehicle 200 will be described. Gateway 210 can be configured to communicate with components inside and outside the vehicle, thereby being configured to obtain update data from update server 100, reassemble the data at a level that the controllers can update, and then be configured to send the reassembled data to each vehicle controller 220, 230, and 240. Therefore, gateway 210 may include an external communicator 211, a storage unit 212, a differential reassembly unit 213, and an internal communicator 214. External communicator 211 is configured to communicate with at least update server 100; storage unit 212 is configured to store update data obtained from update server 100; differential reassembly unit 213 is configured to generate differential data or update images for each controller based on the update data; and internal communicator 214 is configured to communicate with components inside the vehicle (e.g., vehicle controllers 220, 230, and 240).
[0034] Vehicle controllers 220, 230, and 240 may have similar configurations, and will therefore be described with reference to vehicle controller 1 220. Internal communicator 221 may be configured to communicate with gateway 210 or with other controllers 230 and 240 in the corresponding vehicle network, and update unit 222 may be configured to perform software updates on the corresponding controller 220 based on differential data or update images provided by gateway 210, depending on whether differential updates are supported.
[0035] The internal communicator 214 of gateway 210 and the internal communicators 221, 231, and 241 of the corresponding vehicle controllers 220, 230, and 240 can be configured to communicate according to the same vehicle communication protocol. For example, the vehicle communication protocol may include CAN, CAN-FD, LIN, or Ethernet, but the invention is not limited thereto.
[0036] Figure 2A This is a schematic diagram used to explain the concept of generating updated data according to an exemplary embodiment of the present invention. Figure 2B This is a schematic diagram used to explain the concept of the update process using updated data. First, refer to... Figure 2A It can be assumed that update server 100 performs software updates on two controllers (controller 1 and 2).
[0037] In the differential calculator 110 of the update server 100, the primary differential a of controller 1 can be generated by comparing the original image A of controller 1 with the updated image A′ (i.e., A′-A), and the primary differential b of controller 2 can be generated by comparing the original image B of controller 2 with the updated image B′ (i.e., B′-B). Specifically, when the primary differential a of controller 1 includes a portion 10 corresponding only to controller 1 and a portion 20 corresponding to both controller 1 and controller 2, and the primary differential b of controller 2 includes a portion 30 corresponding only to controller 2 and a portion 20 corresponding to both controller 1 and controller 2, the common portion 20 is unnecessarily redundant if each of the primary differentials a+b is included in the updated data.
[0038] Therefore, according to this exemplary embodiment, the size of the update data can be optimized by obtaining the secondary differential a′b′ via a comparison between the primary differentials (i.e., ab), and configuring the update data to include the primary differential a and the secondary differential a′b′ of controller 1. Specifically, the receiving side (i.e., the vehicle) of the update data needs to recover the primary differential b to update the differential; therefore, a combination of recovering the primary differential b based on the update data (i.e., a + a′b′ = b) can be provided to the receiving side together.
[0039] like Figure 2A As shown, when the generated updated data and combination method are sent to vehicle 200, vehicle 200 can be configured to obtain, for example... Figure 2B The updated image shown. (Reference) Figure 2B First, the primary differential a of controller 1 is initially included in the update data. Therefore, when the primary differential a is applied to the original image A of controller 1, the updated image A′ of controller 1 can be obtained immediately. Conversely, the primary differential b of controller 2 is not included in the update data. Therefore, the primary differential of controller 2 can be obtained by combining the primary differential a and the secondary differential a′b′ of controller 1 according to the combination method (i.e., a + a′b′ = b). The updated image B′ can be obtained by combining the primary differential b of controller 2 with the original image B of controller 2 again.
[0040] Specifically, when individual controllers provide differential update functionality, the vehicle's gateway can be configured to recover differential data for each controller based solely on the updated data, and send the recovered differential data to each controller. The controller can then be configured to update the differential data. Conversely, when individual controllers do not provide differential update functionality, the gateway can be configured to generate an updated image by obtaining the original image from each controller, applying the differential data to the obtained original image, and then providing the corresponding updated image to the individual controller.
[0041] The update process described so far according to this exemplary embodiment is summarized in Figure 3 In the flowchart. Figure 3 This is a flowchart illustrating an example of a software update process according to an exemplary embodiment of the present invention. (Reference) Figure 3 The update server 100 can be configured based on the above references. Figure 2A The method described is used to prepare updated data (S310).
[0042] When a vehicle generates and sends a request to the update server to update data (S320), the update server can be configured to send the vehicle prepared update data and a combination thereof (S330). Specifically, the request for update data can be made in response to a notification sent to the vehicle first when the update server is fully prepared for the update data (S320), or the request for update data can be made by periodically checking whether the vehicle has prepared update data (S320).
[0043] The vehicle's gateway can be configured to acquire or recover differential data for each controller using updated data and combination methods (S340), and individual update target controllers can be configured to update the controller based on differential data (S350). When there are two update target controllers, it can be done as follows: Figure 2B The recovery operation S340 is shown. When the number of target controllers to be updated is three, if a, a′b′, and b′c′ are received as update data, then the differential data a of controller 1 is already included in the update data, so it is not necessary to perform separate calculations for recovery. The differential data b of controller 2 can be obtained according to a + a′b′ = b, and the differential data c of controller 3 can be obtained according to b + b′c′ = c.
[0044] Needless to say, when a standalone controller does not support updates based on differential data, the gateway can be configured to generate an updated image by applying the original image to the differential data, and then configured to provide the updated image to the standalone controller. This will be referenced below. Figure 4 A more detailed description Figure 3 Data preparation operation S310.
[0045] Figure 4 This is a flowchart illustrating an example of a process for preparing updated data according to an exemplary embodiment of the present invention. (Reference) Figure 4 When a target controller that needs to be updated is selected, the update server 100 can be configured to repeatedly perform the following process: search for differential combinations to send update data of the minimum size for the entire vehicle, and calculate the total size of the data for each combination.
[0046] Specifically, the differential calculator 110 can be configured to extract differential data (i.e., primary differential) of individual controllers that are software update targets (S311). As described above, this process can be performed using the difference between the updated image and the original image of an individual controller. For example, when the original image of controller 1 220 is A and the updated image is A′, differential data a of controller 1 220 can be obtained based on A′-A. This process can be performed for each of all update target controllers.
[0047] Subsequently, the difference calculator 110 can be configured to generate at least one level of lower-level difference data corresponding to the difference data for all combinations of the generated difference data (i.e., primary differences) (S313). For example, the primary differences of controllers 1 220, 2 230, and 3 240 are a, b, and c, respectively. The secondary differences can be the difference a'b' between a and b, the difference b'c' between b and c, and the difference a'c' between a and c, and can be calculated based on a'b' = ab, a'c' = ac, and b'c' = bc, respectively. Needless to say, if necessary, third-, fourth-, or higher-level lower-level differences can also be obtained.
[0048] When acquiring differential data and lower-level differential data, the differential combination strategy determiner 120 can be configured to generate differential combinations for all updated target controllers (S315) and determine the size of each differential combination (S317). Specifically, a differential combination can refer to any combination of all differential data (e.g., a, b, and c) that generates a single controller. Therefore, the differential combination strategy determiner 120 can be configured to generate updated data based on the differential combination with the smallest size (S319).
[0049] In the following text, reference will be made to Figure 5 A more detailed description Figure 3 The controller update process S350. Figure 5 This is a flowchart illustrating an example of an update process according to an exemplary embodiment of the present invention.
[0050] refer to Figure 5 Gateway 210 can be configured to determine whether each target controller supports differential updates (S351). Specifically, in this process, whether each controller connected to the corresponding gateway 210 supports differential updates can be determined by referring to a pre-written table, and depending on the vehicle configuration, operations S352 or S354 can be performed directly according to preset logic without the determination process described in this procedure. If differential updates are supported ("Yes" in S351), the gateway can be configured to send differential data corresponding to each controller that supports differential updates (S352), and the individual controller receiving the differential data can be configured to perform updates based on the differential updates (S353).
[0051] When a controller does not support differential updates (S351 "No"), the gateway can be configured to obtain the original image from each corresponding controller (S354). The gateway can be configured to generate an updated image by applying the corresponding differential data to each obtained original image (S355), and then can be configured to send the updated image to the corresponding controller (S356). Therefore, individual controllers can be configured to perform software updates using the updated image (S357). As described above, since the gateway considers whether each controller supports differential updates, it is advantageous that the update method does not need to be changed for individual controllers.
[0052] In the update system and control method according to the above exemplary embodiments, software updates of the vehicle controller are assumed; however, the invention is not limited thereto and can be applied to any device performing software updates. The gateway 210 of the vehicle according to the exemplary embodiments can be replaced by a controller in another vehicle (e.g., a telematics unit or AVN system), which is connected to an internal vehicle network and can wirelessly connect to an external update server 100.
[0053] According to an exemplary embodiment of the present invention, a case is described in which updated data is extracted by acquiring differential data (i.e., primary differential) between the updated image and the original image of the controller, and then acquiring secondary differential data (i.e., secondary differential). However, the method according to the present invention can be modified to acquire the differential between controllers (i.e., primary differential between updated images), and then acquire the secondary differential of the original image.
[0054] According to an exemplary embodiment of the invention, the gateway restores differential data; however, according to another exemplary embodiment, a separate controller can be configured to restore differential data. Furthermore, according to an exemplary embodiment of the invention, the method for selecting the optimal differential combination is assumed to be a method for minimizing the size of the updated data; however, according to another exemplary embodiment, differential combinations can also be applied, the number of which varies depending on the vehicle and server situation (e.g., the number of target controllers being updated or the computing and storage capabilities of the server).
[0055] According to the foregoing exemplary embodiments of the present invention, the size of the data to be sent to the vehicle when the vehicle's controller software is updated can be minimized. In other words, when there is similarity between the software of the controllers, the size of the data sent can be minimized by generating additional differential data in the software between the controllers. The differential data can be recovered using the vehicle gateway, and an updated image can be generated by applying the differential data to the original image. Therefore, the exemplary embodiments of the present invention can also be applied to situations where the controller does not support the differential update method.
[0056] Additionally, data transfer rates can be minimized, thus reducing the time and data costs of receiving update data from the update server, and also reducing the time spent transmitting data over the vehicle's internal network during updates. Furthermore, by updating the controller software on a vehicle-by-vehicle basis simultaneously, rather than updating the software on a controller-by-controller basis sequentially, the time spent updating the entire vehicle can be reduced.
[0057] The software update system according to at least one exemplary embodiment of the present invention configured as described above can update software more efficiently based on a differential update method. Specifically, according to the present invention, differential data is extracted at two or more levels, thus optimizing the size of the update data when multiple controllers are updated simultaneously.
[0058] Those skilled in the art will understand that the effects achievable using this invention are not limited to those specifically described above, and other advantages of this invention will become clearer from the detailed description.
[0059] The aforementioned invention can also be implemented as computer-readable code stored on a non-volatile computer-readable recording medium. A non-volatile computer-readable recording medium is any data storage device capable of storing data that can subsequently be read by a computer. Examples of non-volatile computer-readable recording media include: hard disk drives (HDDs), solid-state drives (SSDs), silicon disk drives (SDDs), read-only memory (ROM), random access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, etc.
[0060] It will be apparent to those skilled in the art that various modifications and alterations can be made to the invention without departing from its spirit or scope. Therefore, this invention is intended to cover all modifications and variations thereof provided, which are within the scope of the appended claims and their equivalents.
Claims
1. A method of updating software, comprising: obtaining, by an update server, difference data between an original image and an update image for each of a plurality of update target controllers included in a vehicle; obtaining at least one level of sub-difference data between the difference data for each of the plurality of update target controllers; generating a plurality of difference combinations of the plurality of update target controllers; determining an optimal combination of the plurality of difference combinations; generating update data according to the optimal combination, wherein the plurality of difference combinations include different combinations of all the difference data and all the sub-difference data, the optimal combination is a difference combination with a minimum amount of data. 2.The method of claim 1, further comprising transmitting the generated update data to the vehicle.
3. The method of claim 2, wherein, transmitting the generated update data to the vehicle includes transmitting a combination manner of recovering the difference data for each of the plurality of update target controllers based on the update data to the vehicle.
4. The method of claim 2, wherein, transmitting the generated update data to the vehicle in response to receiving an update request from the vehicle.
5. The method of claim 1, wherein, determining the optimal combination of the plurality of difference combinations based on at least one of a total size of data for each of the plurality of difference combinations, a computing capability of the update server, and a number of the update target controllers. 6.A method of updating software, comprising: receiving, from an update server in a vehicle including a plurality of controllers, update data and a combination manner for updating software of a plurality of update target controllers, the combination manner including different combinations of all difference data and all sub-difference data, and an optimal combination being a difference combination with a minimum amount of data; obtaining at least one level of sub-difference data between the difference data for each of the plurality of update target controllers by applying the combination manner to the update data; updating with the difference data for each of the plurality of update target controllers and the sub-difference data included in the update data, wherein the update data includes the difference data and all the sub-difference data, the difference data included in the update data is data between an original image and an update image for each of the plurality of update target controllers.
7. The method of claim 6, wherein, updating includes transmitting, by a gateway, difference data corresponding to at least one of the plurality of update target controllers that supports a difference update.
8. The method of claim 6, wherein, updating includes: obtaining, by the gateway, an original image from each of at least one of the plurality of update target controllers that does not support a difference update; obtaining, by the gateway, an update image by applying the difference data to each obtained original image; transmitting the obtained update image to each of the at least one of the update target controllers that does not support the difference update. 9.A non-transitory computer-readable recording medium having recorded thereon a program for executing the method of claim 1. 10.An update server, comprising: a difference calculator configured to obtain difference data between an original image and an update image for each of a plurality of update target controllers included in a vehicle, and to obtain at least one level of sub-difference data between the difference data for each of the plurality of update target controllers; and a difference calculator configured to obtain difference data between an original image and an update image for each of a plurality of update target controllers included in a vehicle, and to obtain at least one level of sub-difference data between the difference data for each of the plurality of update target controllers; and a differential combination strategy determiner configured to generate a plurality of differential combinations of a plurality of update target controllers, determine an optimal combination of the plurality of differential combinations, generate update data according to the optimal combination, wherein the plurality of differential combinations include different combinations of all differential data and all sub-differential data, the optimal combination is a differential combination with a minimum amount of data.
11. The update server of claim 10, wherein, the plurality of differential combinations include a combination of obtaining differential data of each of the plurality of update target controllers together.
12. The update server of claim 10, further comprising a communicator configured to transmit the generated update data to the vehicle.
13. The update server of claim 12, wherein, the communicator is configured to transmit the combination manner of recovering the differential data of each of the plurality of update target controllers based on the update data to the vehicle.
14. The update server of claim 12, wherein, the communicator is configured to transmit the update data in response to receiving an update request from the vehicle.
15. The update server of claim 10, wherein, the differential combination strategy determiner is configured to determine the optimal combination considering at least one of a total size of data of each of the plurality of differential combinations, a computing capability of the update server, and a number of the update target controllers.
16. A vehicle comprising: a gateway; and a plurality of controllers connected to the gateway, wherein the gateway is configured to receive update data and a combination manner of updating software of a plurality of update target controllers of the plurality of controllers from an update server, and obtain at least one level of sub-differential data between differential data of each of the plurality of update target controllers by applying the combination manner to the update data, the combination manner including different combinations of all differential data and all sub-differential data, and an optimal combination being a differential combination with a minimum amount of data, wherein the update data includes the differential data and all sub-differential data, the differential data included in the update data is data between an original image and an update image of each of the plurality of update target controllers.
17. The vehicle of claim 16, wherein: the gateway is configured to transmit differential data corresponding to at least one update target controller of the plurality of update target controllers that supports differential update; the at least one update target controller that supports differential update updates software by a differential update method using the transmitted differential data.
18. The vehicle of claim 16, wherein, the gateway is configured to obtain an original image from each of at least one update target controller of the plurality of update target controllers that does not support differential update, obtain an update image by applying the differential data to each obtained original image, and transmit the obtained update image to each of the at least one update target controller that does not support differential update.
Citation Information
Patent Citations
Device and method for upgrading car software according to intelligent equipment
CN106886424A
Data processing method and device, electronic equipment and readable storage medium
CN110457290A