Compatibility module to support a vehicle system upgrade

A compatibility module addresses incompatibilities in automotive systems, enabling efficient and cost-effective upgrades by identifying and resolving component mismatches, thus reducing the need for complete system redesigns.

DE102017102970B4Active Publication Date: 2025-11-20TOYOTA JIDOSHA KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102017102970
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2016-02-18
Filing Date
2017-02-15
Publication Date
2025-11-20
Estimated Expiration
2037-02-15

AI Technical Summary

Technical Problem

Current automotive systems face inefficiencies and high costs due to incompatibilities and design complexity during hardware and software upgrades, necessitating complete system redesigns.

Method used

Implementing a compatibility module between hardware and software components to identify and bridge incompatibilities, allowing incremental upgrades without replacing all components.

Benefits of technology

Facilitates cost-effective and flexible upgrades by maintaining compatibility, reducing the need for system-wide changes and minimizing downtime.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

System (200) for eliminating an incompatibility between a sensor system (170, 172) and a machine control unit system (174, 176), wherein the system comprises: a sensor system (170, 172) that is coupled to a machine control unit system (174, 176) in a communication-capable manner; wherein the sensor system (170, 172) comprises a first compatibility module (199A, 199B) which is communicatively coupled to a sensor (101, 102) and a sensor module (110, 111), wherein the sensor system (170, 172) comprises hardware configured to measure a feature of a physical environment, and the sensor module (110, 111) comprises instructions which, in response to being executed by a processor of the motor vehicle (123), cause the sensor (101, 102) to record sensor data measured by the sensor (101, 102) which describe a measurement of the physical environment, and provide the sensor data to the machine control unit system (174, 176); wherein the machine control unit system (174, 176) comprises a second compatibility module (199C, 199D) which is communicatively coupled to a machine control unit (105, 106) and a machine control unit module (210, 212, 214), wherein the machine control unit (105, 106) comprises hardware configured to control the power of the motor vehicle (123), and the machine control unit module (210, 212, 214) comprises instructions which, in response to being executed by the processor, cause the machine control unit (105, 106) to determine whether the power of the motor vehicle (123) is to be modified in response to the sensor data; wherein the first compatibility module (199A, 199B) comprises a first data structure that stores a first set of sensor performance parameters that control a first operation of the sensor (101, 102) and the sensor module (110, 111), such that modifying a sensor performance parameter included in the first set modifies the first operation of one or more of the sensor (101, 102) and the sensor module (110, 111); wherein the second compatibility module (199C, 199D) comprises a second data structure that stores a second set of machine control unit performance parameters that control a second operation of the machine control unit (105, 106) and the machine control unit module (210, 212, 214), such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control units (105, 106) and the machine control unit module (210, 212, 214); and wherein one or more of the first compatibility module (199A, 199B) and the second compatibility module (199C, 199D) further comprise a supervisor module (208) comprising instructions which, when executed by the processor, cause the processor to perform steps comprising: Detecting an update to one or more of the sensor (101, 102), sensor module (110, 111), machine control unit (105, 106) and machine control unit module (210, 212, 214); Identifying an incompatibility created by the update between the sensor system (170, 172) and the machine control unit system (174, 176); Determining one or more modifications for one or more of the first set included in the first compatibility module (199A, 199B) and the second set included in the second compatibility module (199C, 199D), wherein the modifications are configured to eliminate the incompatibility; and Modifying one or more of the first set included in the first compatibility module (199A, 199B) and the second set included in the second compatibility module (199C, 199D), wherein the modification eliminates the incompatibility.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] This patent description relates to a compatibility module for supporting a vehicle system upgrade. For example, the compatibility module can eliminate an incompatibility or inconsistency between an adaptive sensor system and an adaptive machine control unit system resulting from an upgrade to one of these systems.

[0002] Regular software and hardware upgrades in automotive systems are becoming increasingly necessary. Examples can be found in various contexts: components may exhibit potential safety risks; higher-precision systems may be required; and new security technologies may be expected to be integrated. Vehicle manufacturers are struggling to keep pace with the challenge of upgrading their automotive systems.

[0003] Currently, upgrading components in automotive systems can lead to dramatic design changes or even a complete system redesign, as multiple components may be affected by the upgrade. This approach results in increased costs and longer time to market. SUMMARY

[0004] An automobile or motor vehicle comprises many components. Each component can include a compatibility module. The compatibility module can implement system upgrades while maintaining compatibility between upgraded and non-upgraded components.

[0005] The compatibility module can be located between the hardware and the software running on it.

[0006] The compatibility module can identify an upgraded component and categorize any incompatibility resulting from the upgraded component.

[0007] The compatibility module can select and apply a compatibility function to bridge the gap between upgraded and non-upgraded components. These compatibility functions are designed to ensure that these components work together seamlessly. The compatibility functions can be configured to manage changes to execution time, period, encryption algorithm, interface, and so on. The compatibility function selected by the compatibility module can correspond to the category of incompatibility. For example, a period adjustment function might be appropriate for an incompatibility between the periods of two components.

[0008] For example, consider a simple automotive system comprising a sensor and a machine control unit (MCU) that manages or controls the sensor. Assume that the system is upgraded by replacing the sensor with a new one, and that the new sensor operates at a faster period (or rate) than the previous sensor. The MCU was configured to operate with the previous sensor, which operated at the slower period. The MCU may include a compatibility module that identifies the incompatibility and modifies the MCU's operation to operate at the faster period, thereby correcting the incompatibility. The compatibility module itself stores the period parameter that controls the MCU's period.The compatibility module modifies itself to store the period parameter, resulting in a faster period and the elimination of the incompatibility between the sensor and the machine control unit that manages or controls the sensor. Without the compatibility module, the machine control unit would have to be replaced with a new one compatible with the new sensor, leading to increased costs and implementation time for the upgrade.

[0009] Accordingly, integrating a compatibility module into the upgradeable elements of an automotive system is a cost-effective and flexible solution to the problem of regular hardware and software upgrades. This approach is cost-effective, for example, because it can avoid system-level changes caused by a small number of component upgrades. This approach is also flexible, for example, because it allows upgrades to be performed incrementally, meaning it does not require all critical components to be upgraded at the same time.

[0010] Exemplary implementation examples will now be described.

[0011] A system of one or more processors can be configured to perform certain operations or processes / actions / activities because it has software, firmware, hardware, or a combination thereof installed on the system that, during operation, causes the system to perform the operations / actions / activities. One or more computer programs can be configured to perform certain operations or processes / actions / activities because they contain instructions which, when executed by a data processing device, cause the device to perform the operations / actions / activities.

[0012] A general aspect includes a system for eliminating incompatibility between a sensor system and a machine control unit. The system comprises an automobile or motor vehicle with a sensor system that is communicatively coupled to a machine control unit system. The sensor system includes a first compatibility module that is communicatively coupled to a sensor and a sensor module. The sensor comprises hardware configured to measure a feature of a physical environment, and the sensor module comprises instructions that, in response to being executed by a processor of the automobile or motor vehicle, cause the sensor to record sensor data describing a measurement of the physical environment and provide the sensor data to the machine control unit system. The machine control system includes a second compatibility module.which is coupled to a machine control unit and a machine control unit module in a communication-capable manner. The machine control unit comprises hardware configured to regulate the performance of the automobile or motor vehicle, and the machine control unit module comprises instructions which, in response to being executed by the processor, cause the machine control unit to determine whether the performance of the automobile or motor vehicle should be modified in response to the sensor data. The first compatibility module comprises a first data structure that stores a first set of sensor performance parameters that control the initial operation of the sensor and the sensor module, such that modifying a sensor performance parameter included in the first set modifies the initial operation of one or more of the sensor and the sensor module. The second compatibility module comprises a second data structure,which stores a second set of machine control unit performance parameters that control a second operation of the machine control unit and machine control unit module, such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control units and machine control unit modules. One or more of the first compatibility module and the second compatibility module further comprise a supervisor module that includes instructions which, when executed by the processor, cause the processor to perform steps comprising: (1) detecting an update to one or more of the sensor, the sensor module,the machine control unit and the machine control unit module; (2) identifying an incompatibility between the sensor system and the machine control unit system created by the update; (3) determining one or more modifications for one or more of the first set included in the first compatibility module and the second set included in the second compatibility module, wherein the modifications are configured to eliminate the incompatibility; and (4) modifying one or more of the first set included in the first compatibility module and the second set included in the second compatibility module, wherein the modification eliminates the incompatibility. Further embodiments of this aspect include appropriate computer systems, devices, and computer programs recorded on one or more computer storage devices.each of these is configured to carry out the operations / actions / activities of the procedures.

[0013] Implementations can include one or more of the following properties / types. The system in which the incompatibility is a scheduling incompatibility between the sensor system and the machine control unit, and the specific modifications involve adjusting a scheduling parameter for one or more of the sensor, sensor module, machine control unit, and machine control unit module to eliminate the incompatibility. The system in which the incompatibility is a period incompatibility between the sensor system and the machine control unit, and the specific modifications involve adjusting a period parameter for one or more of the sensor, sensor module, machine control unit, and machine control unit module to eliminate the incompatibility.The system in which the incompatibility is a specification incompatibility between the sensor system and the machine control unit, and the specific modifications involve adapting a previous specification for one or more of the sensor and the machine control unit to eliminate the incompatibility. The system in which the update involves uninstalling the sensor and replacing it with a new sensor. The system in which the update involves uninstalling the sensor module and replacing it with a new sensor module. The system in which the update involves uninstalling the machine control unit and replacing it with a new machine control unit. The system in which the update involves uninstalling the machine control unit module and replacing it with a new machine control unit module.The system in which the processor is an element of the machine control unit.

[0014] A general aspect comprises a method for eliminating an incompatibility between a sensor system and a machine control system incorporated in an automobile or motor vehicle, wherein the sensor system comprises a first compatibility module coupled communicatively with a sensor and a sensor module, and the machine control system comprises a second compatibility module coupled communicatively with a machine control unit and a machine control unit module, wherein the method comprises: detecting an update to one or more of the sensor, the sensor module, the machine control unit, and the machine control unit module; identifying an incompatibility between the sensor system and the machine control system created by the update; determining, by means of a processor,of one or more modifications for one or more of a first set stored in a first data structure of the first compatibility module and a second set stored in a second data structure of the second compatibility module, wherein the modifications are configured to eliminate the incompatibility, and the first set comprises one or more sensor performance parameters that control a first operation of the sensor and the sensor module, such that modifying a sensor performance parameter included in the first set modifies the first operation of one or more of the sensor and the sensor module, and the second set comprises one or more machine control unit performance parameters that control a second operation of the machine control unit and the machine control unit module,such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control units and machine control unit modules; and modifying one or more of the first set included in the first compatibility module and the second set included in the second compatibility module, wherein the modification eliminates the incompatibility. Further embodiments of this aspect include appropriate computer systems, devices, and computer programs recorded on one or more computer storage devices, each of which is configured to perform the operations / actions / activities of the procedures.

[0015] Implementations can include one or more of the following properties / types. The method in which the incompatibility is a timing incompatibility between the sensor system and the machine control unit, and the specific modifications involve adjusting a timing parameter for one or more of the sensor, sensor module, machine control unit, and machine control unit module to eliminate the incompatibility. The method in which the incompatibility is a period incompatibility between the sensor system and the machine control unit, and the specific modifications involve adjusting a period parameter for one or more of the sensor, sensor module, machine control unit, and machine control unit module to eliminate the incompatibility.The method in which the incompatibility is a specification incompatibility between the sensor system and the machine control unit, and the specific modifications involve adapting a previous specification for one or more of the sensor and the machine control unit to eliminate the incompatibility. The method in which the update involves uninstalling the sensor and replacing it with a new sensor. The method in which the update involves uninstalling the sensor module and replacing it with a new sensor module. The method in which the update involves uninstalling the machine control unit and replacing it with a new machine control unit. The method in which the update involves uninstalling the machine control unit module and replacing it with a new machine control unit module.The method in which the processor is an element of the machine control unit. The method in which the automobile or motor vehicle is an autonomous vehicle. Implementations of the described techniques can include hardware, a method or process, or computer software on a medium accessible to a computer.

[0016] A general aspect includes a non-temporary memory of computer code which, when executed by a processor, causes the processor to perform steps including: detecting an update to one or more from a sensor system and a machine control system, wherein the sensor system comprises a first compatibility module coupled communicatively to a sensor and a sensor module, and the machine control system comprises a second compatibility module coupled communicatively to a machine control unit and a machine control unit module; identifying an incompatibility between the sensor system and the machine control system created by the update; determining, by a processor,of one or more modifications for one or more of a first set stored in a first data structure of the first compatibility module and a second set stored in a second data structure of the second compatibility module, wherein the modifications are configured to eliminate the incompatibility, and the first set comprises one or more sensor performance parameters that control a first operation of the sensor and the sensor module, such that modifying a sensor performance parameter included in the first set modifies the first operation of one or more of the sensor and the sensor module, and the second set comprises one or more machine control unit performance parameters that control a second operation of the machine control unit and the machine control unit module,such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control units and machine control unit modules; and modifying one or more of the first set included in the first compatibility module and the second set included in the second compatibility module, wherein the modification eliminates the incompatibility. Further embodiments of this aspect include appropriate computer systems, devices, and computer programs recorded on one or more computer storage devices, each of which is configured to perform the operations / actions / activities of the procedures.

[0017] Another aspect involves a vehicle system comprising a multitude of devices that are interconnected and capable of communication. These devices include a hardware element and a software element running on the hardware element. At least one of the devices also includes a compatibility module running on the hardware element. The compatibility module comprises: a translation module for translating the format of data exchanged with another device; a detection module for detecting an update to one or more of the hardware elements and the software element of the one or more devices; an identification module for identifying an incompatibility resulting from the detected update; and a determination module for controlling the translation module to resolve the incompatibility.

[0018] The translation module can translate the form of data received from another device and processed by the host device (the device containing the translation module). In this case, the translation module can only be provided to devices that receive data from another device and process the received data. Alternatively, the translation module can translate the form of data sent to another device. In this case, the translation module can only be provided to devices that send data to another device.

[0019] The incompatibility could be a scheduling incompatibility between devices, and the translation module could be configured to modify a scheduling parameter to resolve the incompatibility. The incompatibility could be a period incompatibility between devices, and the translation module could be configured to perform rate conversion on the data. The incompatibility could be a specification incompatibility, and the translation module could be configured to modify the data specification.

[0020] The hardware and software elements of the devices can store a characteristic property that describes their configuration or performance / capability. A characteristic property can include an execution time, an execution period, and a software specification. The compatibility module is configured to be able to receive and read the characteristic properties of the devices in the system. The compatibility module can detect a device update and any incompatibility resulting from the update.

[0021] The various devices can include a sensor component and an ECU component. The ECU component can be configured to perform a process based on data received from the sensor component. In this case, the compatibility module is only provided to, or related to, the ECU component, and the translation module can be configured to translate the data received from the sensor component. Of course, the ECU component can also be configured to perform the process based on data sent by another ECU component. Furthermore, the compatibility module can be provided to a sensor component and translate the data received from an ECU component. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The revelation is illustrated in an exemplary and non-restrictive way in the figures of the accompanying drawings, in which the same reference symbols are used to refer to similar elements. Fig. 1A is a block diagram illustrating a system according to the state of the art. Fig. Figure 1B is a block diagram illustrating an operating environment for an adaptive environmental sensing system. Fig. 1C is a block diagram illustrating an operating environment for implementing an adaptive system. Fig. 2A is a block diagram illustrating an exemplary system for implementing a set of adaptive systems in an automobile. Fig. Figure 2B is a block diagram illustrating an exemplary implementation of an adaptive system in an automobile. Fig. 2C is a representation that illustrates an exemplary architecture of a compatibility module (a layer). Fig. 3A and Fig. Figure 3B is a block diagram illustrating an exemplary flowchart for a procedure to upgrade a component of an adaptive system. Fig. Figure 4A is a block diagram illustrating an exemplary implementation of a system in which a set of adaptive systems is upgraded. Fig. 4B is a table that lists upgrades for the system components according to Fig. 4A describes. Fig. 4C is a table that describes modifications for a compatibility module that will correct a set of incompatibilities resulting from the requirements specified in the Fig. 4A and Fig. The upgrades described in section 4B result. DETAILED DESCRIPTION

[0023] Future automotive systems may require cost-effective and flexible upgrades to hardware and software components. This is because the replacement cycle for a car is typically long, while technology is advancing at an accelerating pace. For example, hackers can find software or hardware vulnerabilities in a short period, making an immediate upgrade necessary for security reasons, rather than waiting to buy a new car. In another example, a much higher-resolution sensor may become available at a significantly lower price, making people more inclined to replace their old sensor rather than purchase a new vehicle. However, upgrading components in current automotive systems is inefficient and sometimes even necessitates a complete system redesign.This is due to (1) an incompatibility or incompatibility between the upgraded components and the rest of the automotive system and (2) the increasing design complexity of automotive systems, i.e., the upgraded components are likely to be more complex than the previous components they replace.

[0024] Incompatibility or incompatibility between automotive or motor vehicle components can be classified into two categories. The first category is a change in timing or timing control properties, such as a change in execution time or a change in period.

[0025] A change in execution time can result from both software and hardware upgrades. For example, a software upgrade might add new features to the software that modify the execution time of the hardware driven by the software; or a hardware upgrade might involve replacing an existing machine control unit (“ECU”) with a faster ECU.

[0026] A change in the sampling period can result from both software and hardware upgrades. For example, a software upgrade for a sensor can increase the sampling period for the software-driven sensor, thus increasing the sampling rate for the sensor; or a hardware upgrade can involve installing a new sensor that is more accurate because it has a shorter sampling period, and this can lead to a higher sampling rate.

[0027] Changes to a timing or timing control property can lead to catastrophic timing or timing control errors if they are not handled carefully.

[0028] The second category is a software-related specification change. For example, the specification for a piece of software might be upgraded, modifying an encryption algorithm or changing a message format. Such changes can lead to incompatibility between automotive components. This incompatibility can result from an inconsistency between the upgraded component and the original component. For example, the software for a sensor might be upgraded so that the sensor uses more bits when recording sensor data, causing other components to be unable to read the sensor data.

[0029] Fig. Figure 1A is a block diagram illustrating an exemplary automobile or motor vehicle 133 according to the prior art. The components of the automobile 133 shown form an environment sensing system comprising one or more of the following conventional elements: a first sensor 191; a first ECU 195; a second sensor 192; a second ECU 196; a third ECU 197. The first sensor 191 can be coupled to communicate with the first ECU 195 and the second ECU 196. The second sensor 192 can be coupled to communicate with the second ECU 196 and the third ECU 197. The first sensor 191 can include sensor software 160. The sensor software 160 can include code and routines configured to enable the first sensor 191 to provide its functionality. The second ECU 196 can include ECU software 164.The ECU software 164 may include code and routines configured to enable the ECU to provide its functionality when operating with the first sensor 191 and the second sensor 192.

[0030] Let us assume that a user wishes to upgrade the first sensor 191 for improved obstacle detection, and therefore replaces the first sensor 191 with a (not shown) higher-resolution sensor with a shorter period. Let us further assume that this modification also requires updating the ECU software 164 to include a new obstacle detection algorithm, so that the second ECU 196 is compatible with the new sensor. Since the first sensor 191 and the ECU software 164 are communicatively linked to other components, such as the second sensor 192 and the first ECU 195, these other components may also need to be upgraded to accommodate this sensor upgrade.For example, if the new sensor has a shorter period, the first ECU 195 will receive more sensor data from it than before. Therefore, some adjustments will be necessary for the first ECU 195 or the software (not shown) running on it. The same issue will arise for the second sensor 192, as it is connected to the second ECU 196, which has upgraded software to accommodate the new sensor. Furthermore, if the second sensor 192 makes changes to address the incompatibility issue, the third ECU 197 may become incompatible with it, requiring an update as well. Ultimately, all components in the adaptive environment detection system 100 will need to be modified.Therefore, a minor change to / in components of the environmental sensing system can lead to larger changes across the entire environmental sensing system.

[0031] Fig. Figure 1B is a block diagram illustrating a system 100 for implementing an adaptive environment sensing system 100 (hereinafter referred to as "the system 100"). The adaptive environment sensing system 100 can be a component of an automobile or motor vehicle 123.

[0032] Fig. Figure 1B shows an exemplary use case of a set of automotive components 101, 102, 105, 106, 107, configured to each include a compatibility module 199, thereby enabling the system 100 to be adaptive, as described in more detail below. In the Fig. In the exemplary use case shown in 1B, the first sensor 101 and the obstacle module 184 of the second ECU 106 can be replaced by new components as part of an upgrade or refurbishment. Each component 102, 105, 106, 107 of system 100 (including the new sensor that replaces the first sensor 101) comprises its own compatibility module 199. The compatibility module 199 can identify the presence of an incompatibility between the automotive components 102, 111, 105, 182, 106, 107, 186 of system 100 (including the new sensor and its first sensor module, as well as the new obstacle module) and take measures to eliminate the incompatibility without the need to replace any additional components other than the first sensor 101 and the obstacle module 184. The compatibility module 199 is described in more detail below.

[0033] System 100 can include one or more of the following automotive components: a first sensor 101; a second sensor 102; a first ECU 105; a second ECU 106; a third ECU 107. Each of these components is configured to include a compatibility module 199A, 199B, 199C, 199D, or 199E and to operate according to the functionality of the compatibility module 199A, 199B, 199C, 199D, or 199E. Accordingly, the first sensor 101 cannot be a conventional sensor, as it is modified to include a first compatibility module 199A and to operate according to the functionality of the first compatibility module 199A. Likewise, the second sensor 102, the first ECU 105, the second ECU 106, and the third ECU 107 cannot be conventional automotive components.Motor vehicle components that are each designed and configured to include a compatibility module 199B, 199C, 199D, 199E, and to operate in accordance with the functionality of the compatibility module 199B, 199C, 199D, 199E.

[0034] The first sensor 101 can be paired for communication with the first ECU 105 and the second ECU 106. The second sensor 102 can be paired for communication with the second ECU 106 and the third ECU 107.

[0035] The first sensor 101 can include a first compatibility module 199A, which is coupled to the first sensor 101 and a first sensor module 110 in a communication-capable manner.

[0036] The first sensor 101 can include hardware configured to measure a feature or attribute of a physical environment. For example, the first sensor is a camera that captures an image of the physical environment near the automobile or motor vehicle 123.

[0037] The first sensor module 110 can include code and routines that, in response to being executed by a processor of the automobile or motor vehicle, cause the first sensor 101 to record sensor data measured by the first sensor 101, which describe a measurement of the physical environment, and to provide the sensor data to the first ECU 105 or the second ECU 106. The processor can be an element of the first sensor 101, the first ECU 105, the second ECU 106, or any onboard vehicle computer included in the automobile or motor vehicle 123.

[0038] The second sensor 102 can include a second compatibility module 199B, which is coupled to the second sensor 102 and a second sensor module 111 in a communication-capable manner.

[0039] The second sensor 102 and the second sensor module 111 include functionality that is similar to that of the first sensor 101 and the first sensor module 110, and therefore these descriptions are not repeated here.

[0040] The second sensor 102 can be a sensor or a combination of sensors configured to provide sensor data from which obstacles on a roadway can be detected or the shape or profile of a roadway can be determined. For example, the second sensor 102 can be a LiDAR camera or any other automotive sensor that provides the sensor data necessary for the second ECU 106 or the third ECU 107 to perform its functions.

[0041] The first ECU 105 can include a third compatibility module 199C, which is coupled to the first ECU 105 and a localization module 182 for communication purposes.

[0042] The first ECU 105 can be a processor-based computer device configured to control or manage the performance or operation of the automobile or motor vehicle 123 at least partially based on the sensor data it receives.

[0043] For example, the first ECU 105 can include hardware and communication couplings necessary to control a set of actuators on a machine of the automobile or motor vehicle 123 to ensure optimal or substantially optimal machine performance. The first ECU 105 can receive sensor data from one or more sensors (such as the first sensor 101), interpret the sensor data using one or more multidimensional performance maps or lookup tables, and then adjust the machine actuators accordingly to achieve optimal or substantially optimal machine performance.

[0044] The first ECU 105 can interact with one or more other ECUs to control the performance of the engine of the automobile or motor vehicle 123. For example, the first ECU 105 can interact with the second ECU 106 and the third ECU 107 to control the performance of the engine of the automobile or motor vehicle 123.

[0045] In some embodiments, the automobile or motor vehicle 123 can comprise a plurality of machines controlled by one or more of the ECUs 105, 106, 107.

[0046] The first ECU 105 may include a machine control module (not shown). The machine control module may contain instructions that, in response to being executed by a processor, cause the first ECU 105 to determine whether to modify the performance of the automobile or motor vehicle in response to the sensor data. The processor may be a component of the first ECU 105. The first ECU 105 may also include non-temporary memory.

[0047] As it is in Fig. As shown in Figure 1B, the first ECU 105 includes a localization module 182. The localization module 182 can include code and routines that, in response to being executed by a processor, cause the processor to provide a localization or location determination of the sensor data received from the first sensor 101. For example, the sensor data can be analyzed to determine which parts of the sensor data are relevant to the current location of the automobile or motor vehicle 123.

[0048] The second ECU 106 can include a fourth compatibility module 199D, which is coupled to the second ECU 106 and an obstacle module 184 for communication purposes. The third ECU 107 can include a fifth compatibility module 199E, which is coupled to the third ECU 107 and a road profile module 186 for communication purposes. The second ECU 106 and the third ECU 107 have functionality similar to the first ECU 105, and therefore these descriptions are not repeated here.

[0049] The obstacle module 184 can include code and routines which, in response to being executed by a processor, cause the second ECU 106 to analyze sensor data received from the first sensor 101 and the second sensor 102 and to identify one or more obstacles in the physical environment of the automobile or motor vehicle 123.

[0050] The road profile module 186 can include code and routines which, in response to being executed by a processor, cause the third ECU 107 to analyze sensor data received from the second sensor 102 and to identify the shape or profile of a road in the physical environment of the automobile or motor vehicle 123.

[0051] According to Fig. 1B Assume that the first sensor 101 and the obstacle module 184 may need to be updated. For example, the first sensor 101 may need to be replaced by new hardware (i.e., a different sensor), and the obstacle module 184 may need to be replaced by new code and new routines (or a modification to the existing code and routines, i.e., a patch). As it is stated with reference to Fig. As explained in section 1A, such an update can typically lead to numerous incompatibilities between the elements of the system. Eliminating all of these incompatibilities present in System 100 may require replacing every element of System 100. According to Fig. However, 1B includes each element of System 100 a compatibility module 199A, 199B, 199C, 199D, 199E (which are referred to individually or collectively as "Compatibility Module 199"), and therefore this may not be necessary.

[0052] In some embodiments, the compatibility module 199 can be configured so that the compatibility module 199 itself can be modified to eliminate any incompatibilities present in the system 100, instead of requiring the replacement of additional components to eliminate all incompatibilities present in the system.

[0053] In some embodiments, the compatibility module 199 can comprise a combination of hardware (e.g., a non-temporary data structure) as well as code and routines (e.g., a supervisor module, as well as other modules according to some embodiments).

[0054] In some embodiments, the compatibility module 199 includes a non-temporary data structure that stores a set of performance parameters controlling the operation of the hardware (e.g., the first sensor 101) and the associated code and routines (e.g., a first sensor module 110). The parameters and their storage in the data structure can be configured such that modifying a performance parameter included in the set modifies either the operation of the hardware or the code and routines. The non-temporary data structure can include the memory 227, which is described below with reference to Fig. 2B is described.

[0055] In some embodiments, the compatibility module 199 includes a supervisor module or monitoring / control module (see, for example, element 208 of Fig. 2B). The supervisor module, or monitoring / control module, may include code and routines which, when executed by the processor, cause the processor to perform one or more of the following: detect an update to or with respect to one or more of the elements of System 100 that results in a timing or timing control property change; identify or detect an incompatibility created by the update; determine one or more modifications to one or more of the performance parameters, the modifications being configured to eliminate the incompatibility; and modify the compatibility module so that its data structure stores one or more new performance parameters configured to eliminate the incompatibility.

[0056] Detecting an update to or relating to one or more of the elements of System 100 can include identifying or recognizing the presence of a new element in System 100. For example, if a new sensor is installed in System 100 to replace the first sensor 101, the third compatibility module 199C can call the first sensor 101 and receive a response for the new sensor, thus enabling the third compatibility module 199C to identify or recognize the presence of the new sensor installed in System 100.

[0057] In some embodiments, the compatibility module 199 can store an identification data structure that includes a list of each element of the system 100 and a unique identifier for each element in the system 100. When a new element is added, the identification data structure can be updated accordingly. This identification data structure can also be used to identify the presence of new elements in the system 100. Furthermore, this identification data structure can list or record one or more of the performance parameters for each element of the system 100. Finally, this identification data structure can describe a change in a performance parameter when an element of the system 100 is replaced by a new element. Fig. 4B and Fig. 4C may include a table that represents an example of the identification data structure or part of such a data structure.

[0058] Identifying or detecting an incompatibility created by the update can involve analyzing output signals from a new element added to System 100 and determining that the output signals represent a change in timing or timing characteristics, or a software-related specification change, that results in an incompatibility between the new element and one or more of the other elements of System 100. For example, the new sensor is a higher-resolution sensor with a shorter period (i.e., a higher or faster period rate) than the period of the first sensor 101 it replaced. This will result in more sensor data being received by the first ECU 105, creating an incompatibility between the first ECU 105 and the new sensor. The third compatibility module 199C can identify or detect this incompatibility.

[0059] For example, the third compatibility module 199C can query the first compatibility module 199A to identify the period parameter for the new sensor and recognize that the period parameter is incompatible with the current period parameter for the first ECU 105. As explained below, the third compatibility module 199C can then update the period parameter for the first ECU 105 so that it is compatible with the new sensor.

[0060] Determining one or more modifications to one or more performance parameters may involve calculating one or more new performance parameters configured to eliminate the identified incompatibility. Each of the compatibility modules 199 can perform this step for each of its associated hardware components in response to the identification of an incompatibility. These modifications can then be applied to the performance parameters stored in the data structures.

[0061] In some embodiments involving the identification of a software-related specification change, determining one or more modifications for one or more of the performance parameters may involve calculating one or more new performance parameters configured to eliminate the identified incompatibility. Each of the compatibility modules 199 can perform this step for each of its associated hardware components in response to the identification of an incompatibility.

[0062] In some embodiments, the supervisor module may include code and routines which, when executed by the processor, cause the processor to perform one or more of the following steps: detecting an update to or relating to one or more of the elements of the system 100 that results in a software-related specification change; identifying or detecting an incompatibility created by the update; and modifying the compatibility module so that the hardware (e.g., the first sensor 101 or the first ECU 105) operates using an earlier version of the software that causes the hardware to provide its functionality (e.g., the first sensor module 110 or the localization module 182).

[0063] The compatibility module 199 is described below with reference to Fig. 2A, Fig. 2B, Fig. 2C, Fig. 3A, Fig. 3B, Fig. 4A, Fig. 4B and Fig. 4C is described in more detail.

[0064] The first sensor 101 or the second sensor 102 may include one or more of the following: a camera; a LiDAR sensor; a laser altimeter; a navigation sensor (e.g., a Global Positioning System (GPS) sensor); an infrared detector; a motion detector; a thermostat; a sound detector; a carbon monoxide sensor; a carbon dioxide sensor; an oxygen sensor; an air mass sensor; a machine coolant temperature sensor; a throttle position sensor; a crankshaft position sensor; an automotive or...Automotive engine sensor; a valve timing sensor; an air-fuel ratio gauge; a blind spot instrument; a curb sensing device; a fault detector; a Hall effect sensor; a manifold absolute pressure sensor; a parking sensor; a radar gun; a speedometer; a speed sensor; a tire pressure monitoring sensor; a torque sensor; a transmission fluid temperature sensor; a turbine speed sensor (TSS); a variable reluctance sensor; a vehicle speed sensor (VSS); a water sensor; a wheel speed sensor; and any other type of automotive or motor vehicle sensor.

[0065] Now referring to Fig. Figure 1C shows a block diagram illustrating an example of an operating environment 122 for implementing an adaptive system 140.

[0066] The operating environment 122 can include an automobile or motor vehicle 123 and a server 150. In some implementations, these instances of the operating environment 122 can be communicatively coupled via a network 108 using a wired connection or a wireless connection (e.g., millimeter wave communication, Dedicated Short Range Communication (DSRC), Wireless Fidelity (Wi-Fi), cellular mobile communication (e.g., 3G, 4G, LTE, etc.), Bluetooth®, etc.) between devices and the network 108 or between devices and other devices.

[0067] The Network 108 can be of a conventional type, wired or wireless, and can encompass numerous different configurations, including a star topology, a token ring topology, or others. Furthermore, the Network 108 can comprise a local area network (LAN), a wide area network (WAN) (e.g., the internet), or other interconnected data paths over which multiple devices can communicate. In some implementations, the Network 108 can be a peer-to-peer network. The Network 108 can also be coupled with or comprise portions of a telecommunications network for transmitting data using a variety of different communication protocols.In some implementations, the Network 108 includes Bluetooth® communication networks or a cellular mobile communication network for sending and receiving data, including via Short Message Service (SMS), Multimedia Message Service (MMS), Hypertext Transfer Protocol (HTTP), Direct Data Connection, WAP, email, etc. The Network 108 may also include functionality or hardware to support cellular mobile communications between instances of the System 100.

[0068] The automobile or motor vehicle 123 was described above with reference to Fig. Section 1B is described, and therefore this description is not repeated here.

[0069] The automobile or motor vehicle 123 can include an adaptive system 140. An adaptive system 140 can include a component of the automobile or motor vehicle 123 that is configured to include the compatibility module 199 and to operate according to the functionality of the compatibility module 199. For example, the adaptive system 140 can include a sensor or an ECU that is configured to include the compatibility module 199 and to operate according to the functionality of the compatibility module 199. The first sensor 101, the second sensor 102, the first ECU 105, the second ECU 106, and the third ECU 107 are examples of adaptive systems 140.

[0070] The adaptive system 140 comprises a software component 130, a compatibility module 199 and a hardware component 132.

[0071] Hardware component 132 comprises the hardware that provides the hardware functionality of the adaptive system 140. For example, according to Fig. 1B the first sensor 101 camera hardware included, which provides the hardware functionality of the first sensor 101.

[0072] Software component 130 comprises the code and routines that provide the software functionality of the adaptive system 140. For example, according to Fig. 1B the first sensor module 110 comprised code and routines that provide the software functionality of the first sensor 101.

[0073] In some embodiments, the software component 130 comprises any software related to the hardware component 132. For example, the software component 130 may be a security algorithm or a message / data transfer protocol related to the hardware component 132. For example, the software component 130 may be a security algorithm that prevents an ECU or sensor from being hacked. In another example, the software component 130 may be a message / data transfer protocol that controls how messages are transferred between components. Other examples are possible.

[0074] The compatibility module 199 was described above with reference to Fig. Section 1B is described, and therefore this description is not repeated here.

[0075] In some embodiments, the architecture of the adaptive system 140 can be configured such that the compatibility module 199 represents a layer between the software component 130 and the hardware component 132.

[0076] Upgrade component 139 comprises a new component to be installed in adaptive system 140. Upgrade component 139 can be a hardware component (e.g., a new sensor) or a software component (e.g., a new sensor module). Upgrade component 139 can replace software component 130 or hardware component 132.

[0077] The Server 150 may include a computing device comprising memory and a processor, for example a server, a laptop computer, a desktop computer, a tablet computer, a mobile telephone, a PDA, a mobile email device, a portable gaming device, a portable music player, a television with one or more processors embedded in or coupled to it, or any other electronic device capable of accessing the Network 108.

[0078] The Server 150 can include a hardware server. The Server 150 can include memory to store server software and a processor to run the server software.

[0079] Server 150 can store update data 142. The update data 142 can be a new software component or a patch for an existing software component 130, which is to be installed in the adaptive system 140. In this way, the update data 142 can represent a type of upgrade component 139.

[0080] Server 150 can provide the update data 142 to the adaptive system 140 via network 108.

[0081] In some implementations, the Compatibility Module 199 may be implemented using hardware, including a Field-Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC). In other implementations, the Configuration Module 199 may be implemented using a combination of hardware and software. The Configuration Module 199 may be stored in a combination of devices (e.g., servers or other devices) or in one of the devices.

[0082] Now referring to Fig. Figure 2A shows a block diagram illustrating an exemplary System 200 for implementing a set of adaptive systems.

[0083] System 200 comprises: a first adaptive sensor system 170; a second adaptive sensor system 172; a first adaptive ECU system 174; and a second adaptive ECU system 176. The elements of System 200 are coupled to each other via a bus 120 to enable communication.

[0084] The system includes a Processor 225. The Processor 225 comprises an arithmetic logic unit, a microprocessor, a general-purpose / multi-purpose control unit, or another processor array to perform calculations. In some implementations, the Processor 225 can provide electronic display signals to a display device. The Processor 225 processes data signals and can include various computing architectures, including a Complex Instruction Set Computer (CISC) architecture, a Reduced Instruction Set Computer (RISC) architecture, or an architecture implementing a combination of instruction sets. The Processor 225 can include a graphics processing unit. Although Fig. 2A may contain a single 225 processor, but it may also contain multiple 225 processors. Additional processors, operating systems, sensors, displays, and physical configurations are also possible.

[0085] In some embodiments, the processor 225 can be an element of a processor-based computing device. The processor-based computing device can include a laptop, a tablet computer, a personal computer, a set-top box, a hardware server, an ECU, an on-board vehicle computer, etc.

[0086] The first adaptive sensor system 170 may comprise one or more of the following: the first sensor module 110; the first compatibility module 199A; and the first sensor 101. These elements of the first adaptive sensor system 170 were described above with reference to Fig. 1B and Fig. 1C described, and therefore these descriptions are not repeated here. The first sensor 101 is coupled to the bus 120 and is capable of communication. The first compatibility module 199A is coupled to the processor 225 and is capable of communication. The first adaptive sensor system 170 can be configured to record sensor data describing the physical environment and to provide the sensor data to an ECU.

[0087] The second adaptive sensor system 172 may comprise one or more of the following: the second sensor module 111; the second compatibility module 199B; and the second sensor 102. These elements of the second adaptive sensor system 172 were described above with reference to Fig. 1B and Fig. 1C is described, and therefore these descriptions are not repeated here. The second sensor 102 is coupled to bus 120 and is capable of communication. The second compatibility module 199B is coupled to processor 225 and is capable of communication. The second adaptive sensor system 172 can be configured to record sensor data describing the physical environment and to provide the sensor data to an ECU.

[0088] The first adaptive ECU system 174 can comprise one or more of the following: a first ECU module 210; a second ECU module 212; a third compatibility module 199C; and the first ECU 105. The third compatibility module 199C and the first ECU 105 were described above with reference to Fig. 1B and Fig. 1C described, and therefore these descriptions are not repeated here.

[0089] The first ECU module 210 can include instructions which, in response to being executed by the processor 225, cause the first ECU 105 to determine whether to modify the performance of the automobile or motor vehicle 123 in response to sensor data received from one or more of the first sensor 101 or the second sensor 102.

[0090] The first ECU module 210 can comprise one or more of the localization module 182, the obstacle module or the road profile module 186, which are described above with reference to Fig. are described in 1B.

[0091] The second ECU module 212 may include code and routines configured to provide functionality similar to the first ECU module 210, and therefore this description is not repeated here.

[0092] The first ECU 105 is connected to bus 120 and capable of communication. The third compatibility module 199C is connected to processor 225 and capable of communication.

[0093] The second adaptive ECU system 176 may comprise one or more of the following: the third ECU module 214; the fourth compatibility module 199D; and the second ECU 106. These elements of the second adaptive ECU system 176 were described above with reference to Fig. 1B, Fig. 1C and Fig. 2A is described, and therefore these descriptions are not repeated here. The second ECU 106 is coupled to bus 120 and is capable of communication. The fourth compatibility module 199D is coupled to processor 225 and is capable of communication.

[0094] Each Compatibility Module 199 can be positioned between a hardware component and a software component for each device in the System 200. For example, the architecture of the first adaptive sensor system 170 is configured such that the first Compatibility Module 199A represents a layer between the first sensor module 110 and the first sensor 101. When a set of components is upgraded, one or more of the devices may become incompatible with each other due to a timing-related incompatibility or a software-related specification change. The Compatibility Modules 199 for the affected devices can be updated instead of replacing each component of the System 200.Although it is preferred that each device in the System 200 includes a compatibility module, some devices need not include a compatibility module if the devices are not undergoing an update.

[0095] In some embodiments, the compatibility module 199 may include a designated port accessible to the processor 225. The processor 225 can execute the compatibility module 199 through the port to eliminate one or more incompatibilities in the system 200.

[0096] The component upgrade support provided by Compatibility Module 199 offers numerous advantages. For example, an upgrade can be implemented while preserving the design architecture of System 200. In other words, the design architecture of System 200 remains unchanged compared to the original design when comparing before and after an update, since in some implementation examples only the affected Compatibility Module 199 needs to be updated to eliminate all incompatibilities in the system.

[0097] Now referring to Fig. Figure 2B shows a block diagram illustrating an exemplary embodiment of an adaptive system 140 of an automobile or motor vehicle 123. In some implementations, the adaptive system 140 may include an electronic device that is programmed or configured to perform one or more blocks of the method 300 described below with reference to Fig. 3A and Fig. 3B. In some implementations, the adaptive system 140 may include a special / special-purpose computing device configured to provide some or all of the functionality described above with reference to the adaptive system 140 or below with reference to the method 300 described below with reference to Fig. 3A and Fig. 3B is described.

[0098] The adaptive system 140 can comprise one or more of the following elements: a compatibility module 199; the processor 225; a memory 227; a communication unit 245; a software component 130; a hardware component 132; and an upgrade component 139. The components of the adaptive system 140 are coupled for communication via a bus 220. In some embodiments, the components of the adaptive system 140 are located locally on the same hardware, so that the bus 220 is not required for communication between the components of the adaptive system 140. In some embodiments, communication structures or methods can be implemented apart from the bus 220.

[0099] The processor 225 is connected to the bus 220 via a signal line 234. The communication unit 245 is connected to the bus 220 via a signal line 238. The software component 130 is connected to the bus 220 via a signal line 239. The hardware component 132 is connected to the bus 220 via a signal line 240. The upgrade component 139 is connected to the bus 220 via a signal line 242. The memory 227 is connected to the bus 220 via a signal line 236.

[0100] The processor 225, the software component 130, the hardware component 132 and the upgrade component 139 were described above with reference to Fig. 1B, Fig. 1C and Fig. 2A described, and therefore these descriptions are not repeated here.

[0101] Memory 227 is a physical storage medium that stores instructions or data accessible and executable by Processor 225. The instructions or data may include code for performing the techniques or methods described herein. Memory 227 may include a Dynamic Random Access Memory (DRAM) device, a Static Random Access Memory (SRAM) device, flash memory, or other storage device. In some implementations, Memory 227 also includes non-volatile memory or a similar permanent storage device and media, comprising a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or other mass storage device for storing information on a more permanent basis.

[0102] Memory 227 can contain update data 142. Update data 142 was described above with reference to Fig. 1C is described, and therefore this description is not repeated here.

[0103] In some embodiments, memory 227 can store one or more earlier versions of software component 130. The earlier versions of software component 130 can be reinstalled by the compatibility module 199 to eliminate incompatibility caused by a software-related specification change.

[0104] In some embodiments, the memory 227 stores one or more of the following: a communication module 202; an identification module 204; a categorization module 206; a supervisor module 208; performance parameter data 280.

[0105] The Communication Unit 245 may include hardware that sends and receives data to and from the Network 108. In some implementations, the Communication Unit 245 includes a port for a direct physical connection to the Network 108 or to another communication channel. For example, the Communication Unit 245 includes a USB, SD, CAT-5, or similar port for wired communication with the Network 108. In some implementations, the Communication Unit 245 includes a wireless transceiver for exchanging data with the Network 108 or other communication channels using one or more wireless communication methods, including IEEE 802.11, IEEE 802.16, Bluetooth®, or another suitable wireless communication method.

[0106] In some implementations, the Communication Unit 245 includes a cellular communication transceiver for sending and receiving data over a cellular communication network, including via Short Message Service (SMS), Multimedia Message Service (MMS), Hypertext Transfer Protocol (HTTP), Direct Data Connection, WAP, email, or another suitable type of electronic communication. In some implementations, the Communication Unit 245 includes a wired port and a wireless transceiver. The Communication Unit 245 also provides other conventional connections to the Network 108 for distributing files or media objects using standardized network protocols, including TCP / IP, HTTP, HTTPS, and SMTP, etc.

[0107] In some implementations, the adaptive system 140 includes one or more of the following: the communication module 202; the identification module 204; the categorization module 206; the supervisor module 208; and the performance parameter data 280.

[0108] The communication module 202 is connected to bus 220 via signal line 222. The identification module 204 is connected to bus 220 via signal line 224. The categorization module 206 is connected to bus 220 via signal line 226. The supervisor module 208 is connected to bus 220 via signal line 228. The performance parameter data 280 is connected to bus 220 via signal line 229.

[0109] The communication module 202 may include code and routines configured to handle communications between one or more of the following elements: the compatibility module 199; the processor 225; the software component 130; the hardware component 132; the upgrade component 139; and the compatibility module 199 of other adaptive systems 140. In some implementations, the communication module 202 may include a set of instructions executable by the processor 225 to provide the functionality described below for handling communications between the elements listed above. In some implementations, the communication module 202 may be stored in the memory 227 of the adaptive system 140 and may be accessible and executable by the processor 225.

[0110] The communication module 202 sends and receives data to and from the network 108 via the communication unit 245. For example, the communication module 202 receives the update data 142 from the network 108 via the communication unit 245.

[0111] In some embodiments, the communication module 202 receives data from components of the adaptive system 140 and stores the data in the memory 227.

[0112] In some embodiments, the communication module 202 modifies the performance parameter data 280 stored in the memory 227.

[0113] The identification module 204 may include code and routines configured to identify or detect an incompatibility created by removing a component of the software component 130 or the hardware component 132 and installing the upgrade component 139.

[0114] The categorization module 206 can include code and routines configured to classify the incompatibility as a timing or timing control property change or a software-related specification change.

[0115] Supervisor module 208 can include code and routines configured to modify compatibility module 199 to resolve the incompatibility. For example, supervisor module 208 performs the detection, identification / recognition, determination, and modification steps described above to resolve the incompatibility in system 200. Supervisor module 208 can include functionality to determine whether the compatibility issues have actually been resolved and to handle error cases where the issues have not. If a compatibility issue persists, supervisor module 208 can issue a warning to the user for further investigation.

[0116] If the categorization is a time- or time-control-property-related change, the Supervisor Module 208 can determine one or more modifications for one or more of the performance parameters stored in the Performance Parameter Data 280. The modifications can be configured to eliminate the incompatibility. The Supervisor Module 208 can modify the Performance Parameter Data 280 to store the modifications intended to eliminate the incompatibility.

[0117] Changes related to time or timing control properties can include two types: a period change and an execution time change.

[0118] To change the period, the supervisor module 208 can modify a parameter included in the performance parameter data 280 to resolve incompatibilities between components. For example, suppose a sensor is replaced by a new sensor with a longer period. In this example, the affected component could be an ECU, and the supervisor module 208, included in the compatibility module 199 by the ECU, can calculate the increase in period for the new sensor relative to the previous sensor and modify the period parameter for the ECU by an amount configured to eliminate the incompatibility.For example, the period for the ECU can be increased by the same amount or substantially the same amount as the increase in the period for the new sensor relative to the previous sensor, or by a minimal amount necessary to make the ECU compatible with the new sensor.

[0119] To modify an execution time, the supervisor module 208 can modify a parameter included in the performance parameter data 280 to resolve incompatibilities between components. For example, suppose an ECU module is replaced by a new ECU module with an increased execution time, creating an incompatibility with a sensor managed by the ECU associated with the replacement module. The identification module 204 of the compatibility module 199, which is included in the sensor, can identify the incompatibility. The performance parameter data 280 for the compatibility module 199 included in the sensor can include a scheduling rule or policy.

[0120] In some implementation examples, the scheduling rule or policy may include, for example, one or more scheduling parameters that specify when a process starts, and one or more execution time parameters that specify how long each process will run after it starts.

[0121] The supervisor module 208 of the compatibility module 199, which is included in the sensor, can calculate the amount of the execution time increase for the new ECU module relative to the previous ECU module and modify an execution time parameter included in the scheduling rule or policy for the sensor by an amount configured to eliminate the incompatibility. For example, the execution time can be increased by the same amount, or substantially the same amount, as the increase in execution time for the new ECU module relative to the previous ECU module, or by a minimum amount necessary to make the sensor compatible with the new ECU module.

[0122] The Supervisor module 208 can also rearrange or delete one or more scheduling parameters to eliminate incompatibilities.

[0123] The performance parameter data 280 can include one or more period parameters for one or more of the software component 130, the hardware component 132, or the upgrade component 139. The period parameter defines an execution period (activation period) of the software component 130, the hardware component 132, or the upgrade component 139.

[0124] The performance parameter data 280 can include one or more scheduling rules or policies for one or more of the software component 130, the hardware component 132, or the upgrade component 139. The scheduling rule or policy includes one or more scheduling parameters for one or more of the software component 130, the hardware component 132, or the upgrade component 139. The scheduling parameter describes when and / or how often these components should execute the process.

[0125] The performance parameter data 280 can include one or more execution time parameters for one or more of the software component 130, the hardware component 132, or the upgrade component 139. The execution parameter describes how long it takes to complete the process of the software component 130, the hardware component 132, or the upgrade component 139.

[0126] Memory 227 can contain a variety of versions of software component 130, and the performance parameter data 280 can contain data that configure which version of software component 130 controls the performance of hardware component 132 when executed by processor 225. Memory 227 can also store different encryption algorithms, encryption keys, message / data transfer protocols, etc.

[0127] Fig. Figure 2C shows the architecture of an example compatibility module 199. Compatibility module 199 can be referred to as a compatibility layer. Compatibility layer 199 lies between the hardware 132 and the software 130. Multiple software components can be assigned to the same hardware for execution. Therefore, there are many sublayers within compatibility layer 199, and each sublayer serves a specific software component.

[0128] The first step of Compatibility Module 199 is to identify and categorize compatibility problems with other components. This step is performed by Identification Module 204 and Categorization Module 206. Although only three incompatibility factors—namely, execution time change, period change, and software-related specification change—are included in Fig. While 3C is explicitly shown, other factors can be handled in the same way. Based on the category of incompatibility problems, the compatibility layer can choose different solutions accordingly. For example, compatibility module 199 selects the corresponding component of translation module 250 and modifies the performance parameter 280 for that component. Translation module 250 then operates according to the performance parameter 280 and eliminates the incompatibility.

[0129] The execution time, execution period, and software specifications of the components are stored as characteristic properties within the components. More generally, a characteristic property describes the requirements and performance of a component. The Compatibility Module 199 can be accessed with respect to the characteristic properties of the components in the system. The Compatibility Module 199 obtains the characteristic property for the host device and any other device that exchanges data with the host device, and then detects an incompatibility between these devices.

[0130] The main idea of ​​compatibility processing is to translate incompatible factors into a form that the relevant components can handle. Translation module 250 provides the translation function. Translation module 250 includes a scheduling adjustment component 251, a period / rate translation component 252, a specification translation component 253, and other translation components 254.

[0131] The period / rate translation component 252 handles an incompatibility due to a period change. If the period of software component 130 has been reduced, the original components will communicate with this modified software at an original rate that is lower. In this case, a slow-to-fast rate conversion block is required, and the compatibility module 199 modifies the performance parameter 280 for the rate conversion block so that the software component uses the latest and correct information from other components. If the communication originates from a component with a period that is updated at the same time, the conversion block is not required. In this case, the compatibility module 199 sets a performance parameter 280 for the rate conversion block so that the block retains its original form.The performance parameter 280 for the rate change block is determined based on the amount of time by which the period was increased or decreased.

[0132] Specification translation component 253 handles incompatibility due to a specification change in a manner similar to that described above. For a message from components using a new specification, compatibility module 199 uses the new specification. For a message from components using the old specification, compatibility module 199 either uses the new specification or translates the new specification to the old specification. The performance parameter 280 for component 253 is modified accordingly to resolve the specification incompatibility.

[0133] The scheduling adjustment components 251 address an incompatibility caused by a change in execution time. If the execution time of software component 130 has been increased or decreased, the old scheduling rule or policy may lead to unexpected results. The schedule should be adjusted according to the amount of time increased or decreased. The scheduling adjustment block sets the parameters based on the amount by which the execution time was increased or decreased. Performance parameter 280 is modified accordingly, thus resolving the scheduling incompatibility.

[0134] The above-described process for modifying the performance parameter is / will be enabled or activated during the upgrade process, and the parameters can be set by the external computer such as the Server 150.

[0135] Supervisor module 208 determines whether the compatibility issues have actually been resolved. If any unusual behavior is detected by Supervisor module 208, compatibility module 199 assumes that compatibility issues persist and issues a warning to the user for detailed investigation.

[0136] Fig. 3A and Fig. Figure 3B is a block diagram illustrating an exemplary flowchart for a procedure 300 for upgrading a component of an adaptive system 140.

[0137] Step 304 identifies the components affected by the upgraded components. An affected component can be a hardware component or a software component that exhibits an incompatibility with another component as a result of the upgrade.

[0138] A determination 305 is made to determine whether the incompatibility is an execution-time incompatibility. If the incompatibility is an execution-time incompatibility, procedure 300 proceeds to step 306. In step 306, one or more of a scheduling parameter or an execution-time parameter may be adjusted. Procedure 300 then proceeds to step 312.

[0139] If no execution time incompatibility is determined in step 305, procedure 300 proceeds to step 307.

[0140] In step 307, a determination is made as to whether the incompatibility is a period incompatibility. If the incompatibility is a period incompatibility, procedure 300 proceeds to step 308. In step 308, a period parameter is adjusted. Procedure 300 then proceeds to step 312.

[0141] If no period incompatibility is determined in step 307, procedure 300 proceeds to step 309.

[0142] In step 309, a determination is made as to whether the incompatibility is a specification-related incompatibility. If the incompatibility is a specification-related incompatibility, procedure 300 proceeds to step 310. In step 310, the compatibility module can be updated so that the hardware component operates based on the processor running an earlier version of the software module. Procedure 300 then proceeds to step 312.

[0143] If no specification-related incompatibility is determined in step 309, procedure 300 proceeds to step 311. In step 311, a determination is made that no change will be made to the compatibility module for the affected component.

[0144] Now referring to Fig. In step 312, procedure 3B determines whether modifications to the compatibility module are valid. The modifications are valid if the incompatibilities are resolved. If the modifications are not valid, procedure 300 proceeds to step 313 and a warning is issued to the driver of the automobile or motor vehicle 123. If the modifications are valid, the procedure proceeds to step 314 and monitors the compatibility module for new updates.

[0145] Fig. Figure 4A is a block diagram illustrating an exemplary embodiment of a System 400 in which a set of adaptive systems is upgraded. The elements included in the System 400 were described above with reference to Fig. 2A described, and therefore these descriptions are not repeated here.

[0146] The first compatibility module 199A is connected to the first ECU module 210 via signal line 420, enabling communication. The first compatibility module 199A is connected to the second ECU module 212 via signal line 430, enabling communication. The second compatibility module 199B is connected to the first ECU module 210 via signal line 440, enabling communication. The second compatibility module 199B is connected to the fourth compatibility module 199D via signal line 450, enabling communication.

[0147] Fig. Figure 4A shows an exemplary use case in which the first sensor 101, the first sensor module 110, and the first ECU module 210 are upgraded. The first sensor 101 can be replaced by a new sensor. Fig. Figure 4A shows a use case in which the first sensor module 110 is replaced by a new sensor module, and the first ECU module 210 is replaced by a new ECU module.

[0148] Fig. 4B is a Table 410 that lists upgrades for the components of System 400 according to Fig. Section 4A describes the following: The new sensor 101 has a reduced sampling period compared to the original sensor 101, meaning that more data can be collected per second. Simultaneously, the activation period of the new sensor module 101 and the new ECU module 210 is reduced to process the increased data. The new sensor module 110 and the new ECU module 210 also use a new encryption algorithm to enhance security.

[0149] In this case, since the new sensor 101 and the new sensor module 110 are updated together, the first compatibility module 199A will not identify any incompatibility between these components. Therefore, only the third compatibility module 199C can be updated, as described below with reference to Fig. 4C is described.

[0150] Fig. 4C is a Table 415 that describes modifications to the third compatibility module 199C, which will correct a set of incompatibilities resulting from the according to Fig. 4A and Fig. The upgrades described in section 4B result.

[0151] The new sensor 101 is faster than the original first sensor 101, while the second ECU module 212 remains unchanged. The third compatibility module 199C detects a period incompatibility between the new sensor 101 (or the first sensor system 170) and the second ECU module 212, requiring a "fast-to-slow" conversion block between these components. Specifically, the communication from the updated first sensor 101 to the second ECU module 212 should undergo a "fast-to-slow" conversion. Consequently, the third compatibility module 199C modifies the performance parameters for the second ECU module 212 to perform the conversion, increasing the rate.

[0152] The new ECU module 210 is faster than the original first ECU module 210, and therefore the third compatibility module 199C detects a period incompatibility between the second sensor 102 (or the second sensor system 172) and the updated first ECU module 210, requiring a "slow-to-fast" conversion block between these components. Specifically, the communication from the second sensor 102 to the updated first ECU module 210 should undergo a "slow-to-fast" conversion. As a result, the third compatibility module 199C modifies the performance parameters for the first ECU module 210 to reduce the conversion rate.

[0153] An algorithm mismatch or discrepancy also occurs between the new sensor module 110 and the second ECU module 212, as well as between the second sensor module 111 and the first ECU module 210. The third incompatibility module 199C detects that the communication from the new sensor module 110 to the second ECU module 212 should be translated from the new encryption algorithm to the old encryption algorithm, and that the communication from sensor module 111 to the new first ECU module 210 should be translated from the old encryption algorithm to the new encryption algorithm. Since the new sensor module 110 and the first ECU module 210 both use the new encryption algorithm, the layer of the third compatibility module 199C must use the old encryption algorithm for the second ECU module 212 and a new algorithm for the first ECU module 210.As a result, the third incompatibility module 199C modifies the performance parameters for the first and second ECU modules 210, 212 to translate the encryption algorithm as outlined above.

[0154] In cases where incompatibility problems cannot be resolved by modifying the performance parameters of Compatibility Module 199, Compatibility Module 199 itself can be updated. For example, there may be a case where the Compatibility Module lacks the necessary performance capabilities for the new algorithm or a higher-rate conversion. In such cases, an update of the Compatibility Module is performed to address the incompatibility issues.

[0155] In some embodiments, a machine control unit such as described herein may include functionality for providing machine control, body control, or transmission control. For example, the machine control unit may control the function of the automobile's or motor vehicle's transmission. Likewise, in some embodiments, a reference to a machine control unit such as used herein may include machine control, body control, and transmission control. For example, a machine control unit may include control of the functionality of the automobile's or motor vehicle's transmission.

[0156] The foregoing description includes numerous specific details for explanatory purposes, in order to provide a complete understanding of the patent description. However, it will be obvious to the person skilled in the art that the disclosure can be carried out without these specific details. In some cases, structures and devices are shown in block diagram form to avoid making the description unclear or opaque.

[0157] For example, the implementations described above may be primarily related to user interfaces and specific hardware. However, these implementations can be applied to any type of computing device that receives data and instructions, as well as to any peripheral devices that provide services.

[0158] A reference in the patent description to "some implementations" or "some cases" means that a particular feature, structure, or characteristic described in connection with the implementations or cases may be included in at least one implementation of the description. The occurrences of the phrase "in some implementations" at various points in the patent description do not necessarily all refer to the same implementations.

[0159] Some parts of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations represent the means used by those skilled in data processing to communicate the essence of their work to other specialists in the most effective way. An algorithm is understood here, and generally, as a coherent or closed sequence of steps that leads to a desired result. These steps are those that require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise manipulated or processed.It has sometimes proven practical, in principle for reasons of general use, to refer to these signals as / like bits, values, elements, symbols, characters, expressions, numbers or digits, or the like.

[0160] However, it should be noted that all these and similar expressions must be related to the appropriate physical quantities and are merely practical terms applied to these quantities.Unless specifically stated otherwise, it should be understood, as will be evident from the following discussion, that throughout the description discussions using terms including "processing" or "calculating" or "calculating" or "determining" or "displaying" or the like, refer to the operations / actions / activities and processes of a computer system or similar electronic computing device that manipulate or transform data represented in the registers and memories of the computer system as physical (electronic) quantities into other data represented likewise as physical quantities in the computer system memories or registers or other such information storage, transmission or display devices.

[0161] The present implementations of the teaching may also relate to a device for carrying out the operations described herein. This device may be specially designed for the required purposes, or it may comprise a general-purpose / multi-purpose computer that is selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer-readable storage medium, which includes, but is not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs and magnetic disks, read-only memory (ROMs), random-access memory (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory including USB flash drives with non-volatile memory, or any type of media suitable for storing electronic instructions, each of which is coupled to a computer system bus.

[0162] The teaching can take the form of certain all-hardware implementations, certain all-software implementations, or certain implementations that include both hardware and software elements. In some preferred implementations, the teaching is implemented in software that includes, but is not limited to, firmware, resident software, microcode, etc.

[0163] Furthermore, the teaching can take the form of a computer program product accessible from a computer-usable or computer-readable medium that provides program code for use by or in conjunction with a computer or any instruction execution system. For the purposes of this patent description, a computer-usable or computer-readable medium can be any device capable of containing, storing, communicating, distributing, or transporting the program for use by or in conjunction with the instruction execution system, device, or apparatus.

[0164] A data processing system suitable for storing or executing program code will include at least one processor that is directly or indirectly coupled to memory elements via a system bus. The memory elements may include local memory used during actual program code execution, mass storage, and cache or buffer memory, which provides temporary storage of at least some program code to reduce the frequency with which code needs to be retrieved from mass storage during execution.

[0165] Input / output or I / O devices (including, but not limited to, keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or via intermediate I / O control units.

[0166] Network adapters can also be connected to the system to allow the data processing system to connect to other data processing systems or remote printers or storage devices via intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.

[0167] Finally, the algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general-purpose / multi-purpose systems with programs according to the teachings set forth herein may be used, or it may prove practical to construct a more specialized device to perform the required procedural steps. The necessary structure for diverse systems will become apparent from the description below. Furthermore, the teaching is not described with reference to any particular programming language. It will be acknowledged that various programming languages ​​may be used to implement the teachings of the patent specification as described herein.

[0168] The preceding description of the implementations of the teaching has been presented for illustrative and descriptive purposes. It is not intended to be exhaustive or to limit the teaching to the specific form disclosed. In light of the foregoing teaching, many modifications and variations are possible. It is intended that the scope of disclosure is not limited by this detailed description, but rather by the claims of this application. As will be understood by the person skilled in the art, the teaching can be embodied or implemented in other specific forms without deviating from its fundamental concept or essential characteristics.Likewise, the specific naming and subdivision of the modules, routines, features, attributes, methodologies, and other aspects are not mandatory or essential, and the mechanisms implementing the doctrine and its features may have different names, subdivisions, or formats. Furthermore, as will be apparent to the person skilled in the art, the modules, routines, features, attributes, methodologies, and other aspects of the disclosure may be implemented as software, hardware, firmware, or any combination of these three.Furthermore, wherever a component, of which an example is a module, is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a static or dynamic program / library, as a kernel-loadable module, as a device driver, or in any other manner currently or subsequently known to a person skilled in the art of computer programming. Moreover, the disclosure is in no way limited to implementation in any particular programming language, operating system, or environment. Accordingly, the disclosure is intended to be illustrative, but not limiting, to the scope of the patent description set forth in the following claims.

[0169] The disclosure includes a system and a method for eliminating an incompatibility between a sensor system and a machine control system. The method may include detecting an update to one or more of the sensor systems and the machine control system. The method may include identifying an incompatibility between the sensor system and the machine control system that is created by the update. The method may include determining one or more modifications for one or more of the first compatibility module and the second compatibility module. The modifications may be configured to eliminate the incompatibility. The method may include modifying one or more of the first compatibility module and the second compatibility module such that the incompatibility is eliminated.

Claims

[1] System (200) for eliminating an incompatibility between a sensor system (170, 172) and a machine control system (174, 176), wherein the system comprises: a sensor system (170, 172) that is coupled to a machine control unit system (174, 176) in a communication-capable manner; wherein the sensor system (170, 172) comprises a first compatibility module (199A, 199B) which is communicatively coupled to a sensor (101, 102) and a sensor module (110, 111), wherein the sensor system (170, 172) comprises hardware configured to measure a feature of a physical environment, and the sensor module (110, 111) comprises instructions which, in response to being executed by a processor of the motor vehicle (123), cause the sensor (101, 102) to record sensor data measured by the sensor (101, 102) which describe a measurement of the physical environment, and provide the sensor data to the machine control unit system (174, 176); wherein the machine control unit system (174, 176) comprises a second compatibility module (199C, 199D) which is communicatively coupled to a machine control unit (105, 106) and a machine control unit module (210, 212, 214), wherein the machine control unit (105, 106) comprises hardware configured to control the power of the motor vehicle (123), and the machine control unit module (210, 212, 214) comprises instructions which, in response to being executed by the processor, cause the machine control unit (105, 106) to determine whether the power of the motor vehicle (123) is to be modified in response to the sensor data; wherein the first compatibility module (199A, 199B) comprises a first data structure that stores a first set of sensor performance parameters that control a first operation of the sensor (101, 102) and the sensor module (110, 111), such that modifying a sensor performance parameter included in the first set modifies the first operation of one or more of the sensor (101, 102) and the sensor module (110, 111); wherein the second compatibility module (199C, 199D) comprises a second data structure that stores a second set of machine control unit performance parameters that control a second operation of the machine control unit (105, 106) and the machine control unit module (210, 212, 214), such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control units (105, 106) and the machine control unit module (210, 212, 214); and wherein one or more of the first compatibility module (199A, 199B) and the second compatibility module (199C, 199D) further comprise a supervisor module (208) comprising instructions which, when executed by the processor, cause the processor to perform steps comprising: Detecting an update to one or more of the sensor (101, 102), sensor module (110, 111), machine control unit (105, 106) and machine control unit module (210, 212, 214); Identifying an incompatibility created by the update between the sensor system (170, 172) and the machine control unit system (174, 176); Determining one or more modifications for one or more of the first set included in the first compatibility module (199A, 199B) and the second set included in the second compatibility module (199C, 199D), wherein the modifications are configured to eliminate the incompatibility; and Modifying one or more of the first set included in the first compatibility module (199A, 199B) and the second set included in the second compatibility module (199C, 199D), wherein the modification eliminates the incompatibility. [2] System according to claim 1, wherein the incompatibility is a scheduling incompatibility between the sensor system (170, 172) and the machine control unit (105, 106), and the specific modifications comprise adjusting a scheduling parameter for one or more of the sensor, the sensor module (110, 111), the machine control unit and the machine control unit module (210, 212, 214) to eliminate the incompatibility. [3] System according to claim 1, wherein the incompatibility is a period incompatibility between the sensor system (170, 172) and the machine control unit, and the specific modifications comprise adjusting a period parameter for one or more of the sensor (101, 102), the sensor module (110, 111), the machine control unit and the machine control unit module (210, 212, 214) to eliminate the incompatibility. [4] System according to claim 1, wherein the incompatibility is a specification incompatibility between the sensor system (170, 172) and the machine control unit, and the specific modifications comprise adapting a use of an earlier specification for one or more of the sensor (101, 102) and the machine control unit to eliminate the incompatibility. [5] System according to any one of claims 1 to 4, wherein the update comprises replacing at least one of the sensor (101, 102), the sensor module (110, 111), the machine control unit and the machine control unit module (210, 212, 214) with a new one. [6] System according to any one of claims 1 to 5, wherein the processor is an element of the machine control unit. [7] Method for eliminating an incompatibility between a sensor system (170, 172) and a machine control system (174, 176) included in a motor vehicle (123), wherein the sensor system (170, 172) comprises a first compatibility module (199A, 199B) that is communicatively coupled to a sensor (101, 102) and a sensor module (110, 111), the machine control system (174, 176) comprises a second compatibility module (199C, 199D) that is communicatively coupled to a machine control unit and a machine control module (210, 212, 214), the first compatibility module (199A, 199B) comprises a first data structure that stores a first set of sensor performance parameters that enable a first operation of the sensor and the sensor module (110, 111) control, such that modifying a sensor performance parameter included in the first sentence controls the initial operation of one or more of the sensor (101, 102) and the sensor module (110,111) modified, and the second compatibility module (199C, 199D) comprises a second data structure that stores a second set of machine control unit performance parameters that control a second operation of the machine control unit and machine control unit module (210, 212, 214), such that modifying a machine control unit performance parameter included in the second set modifies the second operation of one or more of the machine control unit and machine control unit module (210, 212, 214), wherein the method comprises:, Detecting an update to one or more of the sensor (101, 102), sensor module (110, 111), machine control unit and machine control unit module (210, 212, 214); Identifying an incompatibility created by the update between the sensor system (170, 172) and the machine control unit system (174, 176); Determine, by a processor, one or more modifications for one or more of a first set contained in a first data structure of the first compatibility module (199A, 199B) and a second set contained in a second data structure of the second compatibility module (199C, 199D), wherein the modifications are configured to eliminate the incompatibility; and Modifying one or more of the first set included in the first compatibility module (199A, 199B) and the second set included in the second compatibility module (199C, 199D), wherein the modification eliminates the incompatibility. [8] Computer program which, when executed by a processor, causes the processor to perform steps of the method according to claim 7. [9] Vehicle system with a multitude of devices that are coupled together in a way that enables communication, wherein the multitude of devices comprise: a hardware element and a software element that runs on the hardware element, wherein at least one of the devices further comprises a compatibility module (199) which is executed on the hardware element, wherein the compatibility module (199) comprises: a translation module (250) for translating the form of data exchanged with another device; a detection module for detecting an update to one or more of the hardware element and the software element of the one or more of the devices; an identification module (204) for identifying an incompatibility due to the detected update; a determination module for controlling the translation module (250) to eliminate the incompatibility. [10] Vehicle system according to claim 9, wherein the translation module (250) is configured to translate data received from another device. [11] Vehicle system according to claim 9 or 10, where the incompatibility is a scheduling incompatibility between devices, and the translation module (250) is configured to modify a scheduling parameter to eliminate the incompatibility, or the incompatibility is a period incompatibility between devices, and the translation module (250) is configured to perform rate conversion on the data, or The incompatibility is a specification incompatibility, and the translation module (250) is configured to modify the specification of the data. [12] Vehicle system according to any one of claims 9 to 11, wherein the multitude of devices comprise a sensor component and an ECU component, where the ECU component is configured to perform a process on data received from the sensor component, the ECU component includes the compatibility module (199), wherein the translation module (250) of the compatibility module (199) is configured to translate the form of data received from the sensor component. [13] Control method of a vehicle system, wherein the vehicle system comprises a plurality of devices that are coupled to each other in a communicative manner, wherein the plurality of devices comprises a hardware element and a software element that is executed on the hardware element, and at least one of the devices further comprises a compatibility module (199) that is executed on the hardware element, wherein the method comprises: Detecting an update to one or more of the hardware elements and the software elements of the one or more of the devices; Identifying an incompatibility based on the detected update; Determining an operation of the compatibility module (199); and Translating the format of data exchanged with another device to eliminate incompatibility. [14] Computer program which, when executed by a processor, causes the processor to perform steps of the method according to claim 13.

Citation Information

Patent Citations

  • Method and system for vehicle software configuration update management

    US20050216902A1