METHOD AND APPARATUS FOR CONTROLLING ELECTRONIC DEVICE OF VEHICLE
20170371640 · 2017-12-28
Assignee
Inventors
Cpc classification
H04L67/34
ELECTRICITY
B60R16/02
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method for controlling software needed to drive an in-vehicle electronic device includes receiving a data package including a plurality of partial data needed to update software of a vehicle and applying either a parallel update procedure or a sequential update procedure according to whether first partial data to be updated through a central processing unit (CPU) is contained in the data package.
Claims
1. A method for controlling software related to operating an in-vehicle electronic device, comprising: receiving a data package including a plurality of partial data for updating software stored on a vehicle; determining whether the data package includes first partial data, wherein the first partial data is configured to update a central processing unit (CPU); and applying one of a parallel update procedure or a sequential update procedure according to whether the first partial data is determined to be included in the data package.
2. The method according to claim 1, wherein: when the sequential update procedure is applied to update the first partial data, the parallel update procedure is applied to update a plurality of second partial data other than the first partial data included in the data package.
3. The method according to claim 1, wherein applying one of the parallel update procedure or the sequential update procedure includes: calculating an update time for a plurality of second partial data included in the data package; assigning a plurality of update times for the second partial data into a plurality of groups, wherein a sum of update times within each group does not exceed a maximum summed update time; classifying the second partial data to identify the respective group the second partial data is assigned into; and parallel-updating the second partial data classified according to the respective assigned groups.
4. The method according to claim 3, wherein calculating the update time includes: searching for an update speed corresponding to a system element to which the second partial data will be applied; and calculating the update time based on the update speed and a size of the second partial data.
5. The method according to claim 4, wherein the update speed is a predetermined value for determining whether the system element is an on-board device or for determining whether the system element interacts with another device through an external connection terminal, such that the determined results are applied to the system element.
6. The method according to claim 3, wherein assigning the plurality of update times for the second partial data into the plurality of groups comprises: assigning a first group having a maximum update time from among the plurality of update times set to a maximum value; arranging a first set of update times from among the plurality of update times into a new group, where the first set of update times includes a first update time and a second update time each shorter than the maximum value; and adding a third update time to the new group when the sum of the first update time and the second update time is shorter than the maximum value, and moving the third update time to another new group when the sum of update times of the new group exceeds the maximum value.
7. The method according to claim 3, further comprising: recognizing a category of partial data contained in the data package; and calculating an update time of the partial data according to the category of the partial data.
8. The method according to claim 7, wherein: the partial data is one of differential data or image data, and the update time is established according to the category of the partial data.
9. The method according to claim 1, wherein the first partial data includes both update information corresponding to the central processing unit (CPU) and also update information corresponding to at least one more of an external amplifier, a monitor, or a keyboard.
10. An apparatus for controlling software needed to drive at least one electronic device in a vehicle including a processing system that comprises at least one data processor and at least one computer-readable memory storing a computer program, wherein the processing system is configured to cause the apparatus to: receive a data package including a plurality of partial data for updating software stored on a vehicle; determine whether the data package includes first partial data, wherein the first partial data is configured to update a central processing unit (CPU); and apply one of a parallel update procedure or a sequential update procedure according to whether the first partial data is determined to be included in the data package.
11. The apparatus according to claim 10, wherein the processing system applying the parallel update procedure or the sequential update procedure is configured to cause the apparatus to: calculate an update time for a plurality of second partial data; assign a plurality of update times for the second partial data into a plurality of groups, wherein a sum of update times within each group does not exceed a maximum update time; classify the second partial data to identify the respective group the second partial data is assigned into; and parallel-update the second partial data classified according to the respective assigned groups.
12. An apparatus for controlling software needed to drive an in-vehicle electronic device, comprising: a data receiver configured to receive a data package including a plurality of partial data for updating software stored on a vehicle; and a controller configured to: determine whether the data package includes first partial data, wherein the first partial data is configured to update a central processing unit (CPU); and apply one of a parallel update procedure or a sequential update procedure according to whether the first partial data is determined to be included in the data package.
13. The apparatus according to claim 12, wherein: when the sequential update procedure is applied to update the first partial data, the parallel update procedure is applied to update a plurality of second partial data other than the first partial data included in the data package.
14. The method according to claim 12, wherein the controller is further configured to: calculate an update time for a plurality of second partial data included in the data package; assign a plurality of update times for the second partial data into a plurality of groups, wherein a sum of update times within each group does not exceed a maximum summed update time; classify the second partial data to identify the respective group the second partial data is assigned into; and parallel-update the second partial data classified according to the respective assigned groups.
15. The apparatus according to claim 14, wherein the controller is configured to calculate the update time to: search for an update speed corresponding to a system element to which the second partial data will be applied; and calculate the update time based on the update speed and a size of the second partial data.
16. The apparatus according to claim 15, wherein the update speed is a predetermined value for determining whether the system element is an on-board device or for determining whether the system element interacts with another device through an external connection terminal, such that the determined results are applied to the system element.
17. The apparatus according to claim 14, wherein the controller is configured to assign the plurality of update times for the second partial data into the plurality of groups to: assign a first group having a maximum update time from among the plurality of update times set to a maximum value; arrange a first set of update times from among the plurality of update times into a new group, where the first set of update times includes a first update time and a second update time each shorter than the maximum value; and add a third update time to the new group when the sum of the first update time and the second update time is shorter than the maximum value, and move the third update time to another new group when the sum of update times of the new group exceeds the maximum value.
18. The apparatus according to claim 14, wherein the controller is further configured to: recognize a category of partial data contained in the data package; and calculate an update time of the partial data according to the category of the partial data.
19. The apparatus according to claim 18, wherein: the partial data is one of differential data or image data, and the update time is established according to the category of the partial data.
20. The apparatus according to claim 12, wherein the first partial data includes both update information corresponding to the central processing unit (CPU) and also update information corresponding to at least one more of an external amplifier, a monitor, or a keyboard.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0031] The accompanying drawings, which are included to provide a further understanding of the features and are incorporated in and constitute a part of this application, illustrate form(s) of the disclosed features and together with the description serve to explain the principle of the disclosed features. In the drawings:
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
DETAILED DESCRIPTION
[0041] Hereinafter, an apparatus and method according to forms of the disclosed features will be described with reference to the accompanying drawings. In the following description, a suffix “module” or “unit” contained in terms of constituent elements to be described will be selected or used together in consideration only of the convenience of writing the following specification, and the suffixes “module” and “unit” do not necessarily have different meanings or roles. The “modules” and “units” described herein may be representative of a combination of software, hardware, and circuitry components for implementing the related processes attributed to the “modules” and “units” described herein.
[0042] In the following description, assuming that a certain object is formed above (over) or below (beneath) the respective constituent elements, this means that two constituent elements are brought into direct contact with each other, one or more constituent elements are disposed and formed between two constituent elements. In addition, assuming that a certain object is formed over or below the respective constituent elements, this means that the object may also be arranged in upward or downward direction on the basis of the position of one constituent element.
[0043]
[0044] Referring to
[0045] Referring to
[0046]
[0047] Referring to
[0048] A method for controlling update of the in-vehicle electronic devices may determine whether update of software received through wired/wireless networks is available in each update target (i.e., each electronic device). In recent times, to satisfy the demand (or needs) of users or drivers, the in-vehicle electronic devices have become more diversified, and the number of in-vehicle electronic devices is rapidly increasing. It is difficult for the parallel update procedure to be applied to the in-vehicle electronic devices to be updated through the microprocessor (e.g., Micom) during the update process of the plurality of electronic devices, such that the in-vehicle electronic devices can be sequentially updated through the microprocessor. For example, first partial data may include update information regarding a CPU, an external amplifier, a monitor, and a keyboard.
[0049] In contrast, the parallel update procedure may be applied to the electronic device which need not be updated through the microprocessor, such that the remaining regions other than a specific region having a maximum update time can be simultaneously updated.
[0050] In addition, the respective update regions may have different update consumption times. For example, software for driving the in-vehicle AVN system, system software, software of each module, microprocessor firmware, and software of external devices (e.g., external amplifiers, monitors, keyboards, etc.) may be updated. In this case, different regions may be simultaneously or sequentially updated on the basis of the maximum update consumption time, such that the update time needed for the entire system can be effectively reduced.
[0051] Reduction of the update time can minimize battery power consumption of the vehicle, such that more various and higher-quality update services can be provided. For example, a processing time needed to update mass storage information (e.g., map data used by the in-vehicle navigation device) can be greatly reduced during the night time in which the vehicle is not used. In more detail, mass storage information such as map data may be classified into a road region, a search/PIO region, a background region, etc., and the classified regions can be simultaneously updated according to performances of the CPU configured to drive the in-vehicle computing device or the navigation system. Specifically, assuming that software for driving the in-vehicle electronic devices can be executed over the wireless network and the vehicle is a single Internet of Things (IoT) function, the software for driving the in-vehicle electronic devices can be frequently updated. Reduction of the update consumption time may be requested to effectively provide many more services to the vehicle users or drivers.
[0052] Meanwhile, reduction of the update consumption time can be applied not only to the vehicle AVN terminal to which the software update function can be applied over the wired/wireless networks, but also to all kinds of mobile IT devices such as a smartphone.
[0053]
[0054] Referring to
[0055] During the parallel update procedure, the remaining second partial data segments other than specific second partial data having a maximum update time may be classified into the plurality of groups. For example, after the respective update times of several second partial data segments are calculated, it is assumed that the update time is 1 minute, 3 minutes, 5 minutes, 7 minutes, or 10 minutes. The longest update time among the above-mentioned update times is 10 minutes, and the remaining update times are summed up, and the sum of the remaining update times is shorter than 10 minutes, one group may be constructed. The sum of update times of three second partial data segments corresponding to 1 minute, 3 minutes, and 5 minutes is a total of 9 minutes shorter than 10 minutes, such that one group can be constructed. Thereafter, the second partial data corresponding to 7 minutes may be discriminated as a separate group. That is, the second partial data is classified into a first group in which the update time of 10 minutes is consumed, a second group comprised of three second partial data segments in which an update time of 1 minute, an update time of 3 minutes, and an update time of 5 minutes are consumed, and a third group in which the update time of 7 minutes is consumed, such that the respective groups can be updated in a parallel manner. If the first to third groups are updated in a parallel manner, a time consumed to perform all update processing may be 10 minutes. Compared with a total time (26 minutes) consumed to sequentially perform all update processing, a time consumed for parallel update can be greatly reduced to 10 minutes.
[0056]
[0057] It is assumed that several in-vehicle electronic devices are updated. For example, if it is expected that a microprocessor, an external amplifier, a monitor, a keyboard, a modem, etc. is updated, and if the sequential update procedure is applied as shown in
[0058] In contrast, if the parallel update procedure is performed as shown in
[0059]
[0060] Referring to
[0061] The update speed may be changed according to the in-vehicle electronic device or the system element is an on-board device or interacts with other devices via an external connection terminal. Typically, the on-board electronic device may have a higher update speed than the other electronic device interacting with other devices through the external connection terminal.
[0062] For example, the update speed of each in-vehicle electronic device can be measured through testing, and the measured update speed may be pre-stored in a storage unit. Thereafter, if update information of the corresponding electronic device is received, the in-vehicle electronic device may determine the update speed by searching for a predetermined value stored in the storage unit.
[0063] If the update speed is determined, the update time may be calculated in consideration of the size of updated data. For example, the update time may be obtained by dividing the size of data by the update speed.
[0064]
[0065] Referring to
[0066] For example, it is assumed that update of the first to fifth data is needed, the update consumption time of the first data is 10 minutes, the update consumption time of the second data is 8 minutes, the update consumption time of the third data is 5 minutes, the update consumption time of the fourth data is 4 minutes, and the update consumption time of the fifth data is 2 minutes. From among the update times of the first to fifth data, the update time (10 minutes) of the first data may be the longest maximum time. Thereafter, assuming that the update time (5 minutes) of the third data is added to the update time (8 minutes) of the second data, a total update time is 13 minutes, such that the total update time of 13 minutes may be longer than 10 minutes. In this case, the second data and the third data are distinguished from each other, such that the second data may be determined to be one group. Thereafter, assuming that the update time (4 minutes) of the fourth data is added to the update time (5 minutes) of third data, a total update time is 9 minutes shorter than the maximum value corresponding to 10 minutes. In this case, the third data and the fourth data may be the other group. Thereafter, if the fifth data may be another group. If the first to data segments are completely grouped, the step 24 for controlling the sum of times of the respective groups not to exceed the longest update time from among the update times may be completed.
[0067]
[0068] Referring to
[0069] The method for calculating the update time for each data according to data types may be carried out when the data package including partial data for upgrade is received. In addition, after it is determined whether partial data is updated through the parallel update procedure or the sequential update procedure, a time changeable according to the data types may also be used to correctly calculate the update time.
[0070]
[0071] As shown in
[0072] The update consumption time for each update target region constructing the AVN system can be calculated using the following equation.
[0073] In this case, IO_inp/output speed may be an experimental value indicating a per-second update size for each region, and IO_mmcom may be an experimental value of the multimedia communication transfer rate. Meanwhile, one or more kinds of communication methods may be mixed in multimedia communication. For example, IO_can, IO_lan, IO_flexray, IO_most, etc. may be used according to communication methods, and the respective communication transfer rates may be different from one another.
[0074]
[0075] Referring to
[0076] The apparatus 60 for controlling the software needed to drive the in-vehicle electronic device may include a data receiver 62 configured to receive a data package including several partial data segments for updating the vehicle software; and a controller 64 for applying the parallel update procedure or the sequential update procedure according to whether or not the first partial data to be updated through the CPU is contained in the data package. In addition, the apparatus 60 for controlling the software needed to drive the in-vehicle electronic device may further include a storage unit 66 capable of storing the per-element update speed contained in the in-vehicle electronic device 70.
[0077] The first partial data may be updated according to the sequential update procedure, and several second partial data segments other than the first partial data may be updated according to the parallel update procedure.
[0078] The controller 64 may calculate the update time for each second partial data, may classify a plurality of update times into a plurality of groups so as to calculate the sum of times, and may control the sum of times of the respective groups not to exceed the longest time from among the update times. In addition, the controller 64 may classify the second partial data corresponding to the update time contained in each group according to the respective groups, and may parallel-update the second partial data for each group.
[0079] In order to calculate the update time, the controller 64 may search for the update speed corresponding to the system element to which the second partial data will be applied, and the update time can be calculated on the basis of the update speed and the size of the second partial data.
[0080] The update speed may be a predetermined value for determining whether the system element contained in the in-vehicle electronic device 70 is an on-board device or for determining whether the system element interacts with another device through an external connection terminal, such that the determined results correspond to the system element.
[0081] In order to control the sum of times of the respective groups not to exceed the longest time from among the update times, the controller 64 may determine the longest time having a maximum value from among the plural update times to be a first group. The controller 64 may perform a first step for arranging one of the update times, each of which is shorter than the maximum value, to a new group instead of the first group, and arranging the other one to the new group. Thereafter, assuming that the sum of one time and the other time within the new group is shorter than the maximum value, the controller 64 may further add a still another time. Assuming that the sum of times of new groups exceeds a maximum value, the controller 64 performs a second step for moving the other one to the other new group. The controller 64 may repeatedly perform the first step and the second step in a manner that update times of several partial data segments are grouped.
[0082] Meanwhile, the controller 64 may recognize the type of partial data contained in the data package, and may calculate the update time of the partial data according to the type of partial data. For example, the partial data may be differential data or image data, and the update time may be established according to the type of partial data.
[0083] As described above, the apparatus for controlling update software needed to drive the in-vehicle electronic device may select software received over a wired or wireless network on the basis of a maximum update consumption time, and synthetically performs a simultaneous or sequential update procedure in other regions, such that the entire system software update time can be greatly reduced as compared to the conventional sequential update procedure.
[0084] As is apparent from the above description, the form of the present features selects software received over a wired or wireless network on the basis of a maximum update consumption time, and performs simultaneous or sequential update for other regions of vehicles, resulting in reduction of the entire update time of system software.
[0085] In addition, the audio video navigation (AVN) device contained in vehicles cannot use the corresponding function during software update. If software update time is reduced, the restarting time of the device is also shortened, such that user convenience and battery lifespan of the vehicle can be increased.
[0086] In addition, the present features can implement expansion and application of software update technology through distributed processing during application of a background update function, resulting in reduction of overhead of the in-vehicle central processing unit (CPU).
[0087] The method according to the forms may be manufactured as a program that can be executed by a computer and may be stored in recording media readable by the computer. Examples of the recording media readable by the computer may include a read only memory (ROM), a random access memory (RAM), a compact disc read only memory (CD-ROM), a magnetic tape, a floppy disk, and an optical data storage device. In addition, the recording media readable by the computer may also be realized in the form of a carrier wave (for example, transmission through the Internet).
[0088] The recording media readable by the computer may be distributed to computer systems connected to each other through a network such that a code readable by the computer is stored or executed in a distribution mode. In addition, a functional program, code, and code segments for embodying the above method may be easily reasoned by programmers in the art to which the disclosure pertains.
[0089] It will be apparent to those skilled in the art that various modifications and variations can be made in the present features without departing from the spirit or scope of the features. Therefore, the above-mentioned detailed description must be considered only for illustrative purposes instead of restrictive purposes. The scope of the present features must be decided by a rational analysis of the claims, and all modifications within equivalent ranges of the present features are within the scope of the present features.