Vehicle Parameter Infrastructure Security Strategy
A method and apparatus is provided for improving integrity in data representing a plurality of condition states of a variable, comprising the steps of determining which condition states are operationally incompatible with one another, and generating an array of transformed integer values comprising a separate integer value for each condition state. The transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
Latest General Motors Patents:
- On-vehicle ultra-wideband system and method
- Surround view vehicle egress assistance
- Application virtualization in an emulator using an authentication processor
- System and method estimating temperature of a direct current bus bar and direct current connector in a power inverter and providing control based upon the temperature
- Rotor electrical grounding system
The present invention generally relates to control systems found in automobiles and other vehicles, and more particularly relates to methods and systems for ensuring the security of data processed within a vehicle-based control system.
BACKGROUND OF THE INVENTIONModern automobiles and other vehicles may include sophisticated on-board computer systems that monitor the status and performance of various components of the vehicle (for example, the vehicle engine, transmission, gears, brakes, suspension, and/or other components of the vehicle). Many of these computer systems may also adjust or control one or more operating parameters of the vehicle in response to operator instructions, road or weather conditions, operating status of the vehicle, and/or other factors.
Various types of microcontroller or microprocessor-based controllers found on many conventional vehicles may include supervisory control modules (SCMs), engine control modules (ECMs), controllers for various vehicle components (for example, anti-lock brakes, electronically-controlled transmissions, or other components), among other modules. Such controllers are typically implemented with any one of numerous types of microprocessors, microcontrollers or other control devices that appropriately receive data from one or more sensors or other sources, process the data to create suitable output signals, and provide the output signals to control actuators, dashboard indicators and/or other data responders as appropriate. The various components of a vehicle-based control system typically inter-communicate with each other and/or with sensors, actuators and the like across any one of numerous types of serial and/or parallel data links. Today, data processing components within a vehicle are commonly interlinked by a data communications network such as a control area network (CAN), an example of which is described in ISO Standard 11898-1 (2003).
Because vehicles may now process relatively large amounts of digital data during operation, it can be an engineering challenge to ensure that the data processed is accurate and reliable. Though unlikely, it is postulated that as digital data is stored, processed, consumed and/or shared between or within the various data processing components of a vehicle, for example, bit errors and the like can occur due, for example, to environmental factors, hardware faults, data transmission issues and other postulated causes. As a result, various techniques have been developed to ensure the integrity of data processed and transferred within the vehicle.
Nevertheless, it remains desirable to formulate systems and methods for ensuring data accuracy within vehicle control systems, and/or for minimizing any adverse effects from any potential data errors. Other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and the foregoing technical field and background.
SUMMARY OF THE INVENTIONA method is provided for improving integrity in data representing a plurality of condition states of a variable. In one embodiment, and by way of example only, the method comprises the steps of determining which condition states are operationally incompatible with one another, and generating an array of transformed integer values comprising a separate integer value for each condition state. The transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
In another embodiment, and by way of example only, the data represents a plurality of condition states of a plurality of variables, the variables include at least a vehicle power mode variable (with condition states including at least power off, run, accessory, and crank), an engine run status variable (with condition states including at least not running, running and idling, and running and not idling), and a transmission gear status variable (with condition states including at least reverse and any gear except reverse), and the method comprises the steps of determining which condition states are operationally incompatible with one another, and generating an array of transformed integer values comprising an integer value for each condition state. The transformed integer values are different for each condition state of the power mode variable, for each condition state of the engine run status variable, and for each condition state of the transmission gear status variable. The transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
An apparatus is provided for improving integrity in data representing a plurality of condition states of a variable. In one embodiment, and by way of example only, the apparatus comprises means for determining which condition states are operationally incompatible with one another, and means for generating an array of transformed integer values comprising a separate integer value for each condition state. The transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and
The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description.
Preferably at least one or more of the receiving modules 104 includes one or more redundant processors 108, interconnected by a conventional data connection 109 as appropriate. In various embodiments, connection 109 is a UART or other internal connection (e.g., a bus connection) within the receiving module(s) 104.
One or more receiving module(s) 104 can receive and process data regarding various vehicle operation parameters, such as power mode, engine running status, and transmission gear status, along with any of a number of other different types of parameters or other variables. Preferably such parameters are assigned specific values corresponding with different parameter conditions.
For example, in the control system 100, the power mode parameter takes a value of 0 when in the “off” mode, a value of “1” when in the accessory mode, a value of “2” when in the run mode, and a value of “3” when in the crank mode. In the same control system 100, the engine run status parameter takes a value of “0” when the engine is not running, a value of “1” when the engine is running and idling, and a value of “2” when the engine is running and not idling. Meanwhile, the transmission gear status parameter takes a value of “8” while in reverse, and a value in the range of 0-7, 9, and 10 when in any of the forward or neutral gears (hereafter referred to as “any gear except reverse”).
As depicted in
Returning now to
Moreover, also as shown in
Similarly, in a preferred embodiment for the engine run status parameter 112 shown in
Similarly, in a preferred embodiment for the transmission gear status parameter 112 shown in
Returning now to
The data processing method 110 depicted in
It will also be appreciated that, regardless of the number of parameters 112 and any differences in the treatment thereof, certain steps in the data transformation method 110 may vary, and/or may occur in a different order. For example in certain embodiments, steps 124 and/or 126 may not be necessary, as the combined array of transformed values 128 may be generated in step 120, and/or because the desired end result of the data transformation process 110 in certain embodiments may be the array(s) of transformed values 122 for each parameter 112 rather than the combined array of transformed values 128. It will also be appreciated that the array(s) of transformed values 122 and/or the combined array of transformed values 128 may assign particular integer values to condition states 114 of multiple parameters 112, for example as depicted in
Turning now to
Next, in step 136, first transformed data 138 and second transformed data 140 are generated, preferably from the initial parameter data 134 and the combined array of transformed values 128. However, as mentioned above, it will be appreciated that one or more arrays of transformed values 122 for individual parameters 112 may be used instead of, or in addition, to one or more combined arrays of transformed values 128. Regardless of the particular data transformation arrays utilized, the first and second transformed data 138, 140 are generated by identifying the transformed integer value from the combined array of transformed values 128 corresponding with each of the values for condition states 114 in the initial parameter data 134, and preferable storing these identified values in the first and second transformed data 138, 140.
Preferably the first and second transformed data 138, 140 are generated independently of one another, thereby serving as a redundant check on the accuracy of the data application method 130. However, it will be appreciated that the first and second transformed data 138, 140 can also be generated with some dependence on one another, or that in certain embodiments it may be unnecessary to generate the second transformed data 140. Next, in step 142, the first and second transformed data 138, 140 are implemented, as discussed below.
In step 146, it is determined whether or not the values for the particular parameter 112 being tested meet certain specified operational criteria, either alone or in connection with one or more additional parameters 112. If it is determined in step 146 that the specified operational criteria are not met, then, in step 147, the process terminates with respect to this particular parameter 112, and/or other appropriate measures are taken, such as disabling or adjusting the control system 100, before the process proceeds to step 148 for any remaining parameters 112. Otherwise, if it is determined in step 146 that the operational criteria have been met, then the process proceeds directly to step 148. In step 148, it is determined whether there are any additional parameters 112 to test. If there are additional parameters 112, then steps 144-148 repeat for any additional parameters 112, either alone or in combination with other parameters 112. Next, in step 150, the transformed data meeting the specified operational criteria is then applied in the operation of the vehicle, for example by allowing the control system 100 to continue to operate, and/or through appropriate operation of and/or adjustments to the vehicle, and/or modules and/or other components thereof.
In certain embodiments, step 142, and/or certain elements thereof, can be redundantly implemented for even further improvement of data integrity. For example, step 142 can be repeated and/or implemented simultaneously for dual paths of a critical variable, and/or for a comparison between two critical single or dual path variables. It will be appreciated that various combinations of the elements of step 142, and/or other steps, can be redundantly implemented in any one of a number of different manners to provide such further improvement of data integrity.
Power Mode (Off) and Engine Run Status (Not Running);
Power Mode (Off) and Engine Run Status (Running and Idling);
Power Mode (Off) and Engine Run Status (Running and Not Idling);
Power Mode (Accessory) and Engine Run Status (Not Running);
Power Mode (Accessory) and Engine Run Status (Running and Idling);
Power Mode (Accessory) and Engine Run Status (Running and Not Idling);
Power Mode (Run) and Engine Run Status (Not Running);
Power Mode (Crank) and Engine Run Status (Not Running);
Power Mode (Crank) and Engine Run Status (Running and Idling); or
Power Mode (Crank) and Engine Run Status (Running and Not Idling).
Conversely, the control system 100 preferably remains enabled upon encountering any of the following combinations of condition states 114 of the power mode and the engine run status parameters 112:
Power Mode (Run) and Engine Run Status (Running and Idling); or
Power Mode (Run) and Engine Run Status (Running and Not Idling).
As shown in
On the other hand, as shown in
Power Mode (Run), Engine Run Status (Running and Idling), and Transmission Gear Status (Reverse); or
Power Mode (Run), Engine Run Status (Running and Not Idling), and Transmission Gear Status (Reverse).
Conversely, the control system 100 preferably remains enabled with a forward map selection upon encountering any of the following combinations of condition states 114 of the power mode, engine run status, and transmission gear status parameters 112:
Power Mode (Run), Engine Run Status (Running and Idling), and Gear Transmission Status (Any Gear Except Reverse); or
Power Mode (Run), Engine Run Status (Running and Not Idling), and Transmission Gear Status (Any Gear Except Reverse).
Moreover, as mentioned above, it will further be appreciated that the data transformation method 110 and the data application method 130 can be applied to any of numerous different parameters 112 or other variables, for example various other parameters 112 pertaining to vehicle stability and/or operation and/or any of a number of different types of parameters 112 and/or other variables, and in any number of different contexts and circumstances.
It will also be appreciated that, in certain types of present and/or future vehicle architecture, some or all of the transformed values 122 may be sent directly by a processor 108, and/or device(s), that reads and/or determines initial, non-transformed values for the parameters 112, for example prior to sending the information on the network 106. Such an implementation could potentially reduce time or other overhead associated with transforming these values within various modules, by placing the transformed values 122 on the network 106.
It will similarly be appreciated that step 142, implementation of the transformed data, and/or various other steps and features described above, may also take different embodiments, for example corresponding with different variables, contexts, and circumstances. However, regardless of the particular implementation, the data transformation method 110 and the data application method 130 can help to improve integrity in data, for example by reducing the probability and/or consequences of potential bit errors between incompatible condition states 118.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the exemplary embodiment or exemplary embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope of the invention as set forth in the appended claims and the legal equivalents thereof.
Claims
1. A method for improving integrity in data representing a plurality of condition states of a variable, the method comprising the steps of:
- (a) determining which condition states are operationally incompatible with one another; and
- (b) generating an array of transformed integer values comprising a separate integer value for each condition state, such that the transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
2. The method of claim 1, further comprising the steps of:
- (c) receiving one or more initial values representing the condition state of the variable; and
- (d) identifying the transformed integer value from the generated array of transformed integer values corresponding with each of the one or more initial values.
3. The method of claim 2, further comprising the steps of:
- (e) redundantly identifying the transformed integer value from the generated array of transformed integer values corresponding with each of the one or more initial values; and
- (f) comparing the redundantly identified transformed integer values from step (e) with the corresponding identified transformed integer values from step (d).
4. The method of claim 3, further comprising the step of:
- taking remedial action if one or more of the redundantly identified transformed integer values is not equal to the corresponding identified transformed integer value.
5. The method of claim 1, wherein:
- the transformed integer values for at least two of the identified incompatible condition states include at least a 5 and a 6.
6. The method of claim 1, wherein the transformed integer values for at least two of the identified incompatible condition states are selected from the group consisting of: 5, 6, 9, and 10.
7. The method of claim 1, wherein the transformed integer values for at least two of the identified incompatible condition states are selected from the group consisting of: 3, 5, and 6.
8. The method of claim 1, wherein the data further represents a plurality of condition states of at least one additional variable, the method further comprising the steps of:
- (c) determining which condition states of the at least one additional variable are operationally incompatible with one another; and
- (d) generating an array of transformed integer values comprising an integer value for each condition state of the at least one additional variable, such that: each condition state of a particular additional variable has a separate transformed integer value; and the transformed integer value for each condition state of an additional variable in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
9. The method of claim 8, wherein the variable is vehicle power mode (with condition states including at least power off, run, accessory, and crank), the additional variables include at least engine run status (with condition states including at least not running, running and idling, and running and not idling), and transmission gear status (with condition states including at least reverse and any gear except reverse), and wherein:
- the transformed integer values for the condition states of the power mode variable are selected from the group consisting of: 5, 6, 9, and 10;
- the transformed integer values for the condition states of the engine run status variable are selected from the group consisting of: 3, 5, and 6; and
- the transformed integer values for the condition states of the transmission gear status variable are selected from the group consisting of: 3 and 5.
10. The method of claim 9, wherein:
- the transformed integer value for the power off condition state of the power mode variable is 5;
- the transformed integer value for the run condition state of the power mode variable is 10;
- the transformed integer value for the accessory condition state of the power mode variable is 6;
- the transformed integer value for the crank condition state of the power mode variable is 9;
- the transformed integer value for the not running condition state of the engine run status variable is 3;
- the transformed integer value for the running and idling condition state of the engine run status variable is 5;
- the transformed integer value for the running and not idling condition state of the engine run status variable is 6;
- the transformed integer value for the reverse condition state of the transmission gear status variable is 3; and
- the transformed integer value for the any gear except reverse condition state of the transmission gear status variable is 5.
11. A method for improving integrity in data representing a plurality of condition states of a plurality of variables, the variables including at least a vehicle power mode variable (with condition states including at least power off, run, accessory, and crank), an engine run status variable (with condition states including at least not running, running and idling, and running and not idling), and a transmission gear status variable (with condition states including at least reverse and any gear except reverse), and wherein the method comprises the steps of:
- (a) determining which condition states are operationally incompatible with one another; and
- (b) generating an array of transformed integer values comprising an integer value for each condition state, such that: the transformed integer values are different for each condition state of the power mode variable; the transformed integer values are different for each condition state of the engine run status variable; the transformed integer values are different for each condition state of the transmission gear status variable; and the transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
12. The method of claim 11, further comprising the steps of:
- (c) receiving one or more initial values representing the condition state of at least one of the variables; and
- (d) identifying the transformed integer value corresponding with each of the one or more initial values.
13. The method of claim 12, further comprising the steps of:
- (e) redundantly identifying the transformed integer value corresponding with each of the one or more initial values; and
- (f) comparing the redundantly identified transformed integer values from step (e) with the corresponding identified transformed integer values from step (d).
14. The method of claim 13, further comprising the step of:
- taking remedial action if one or more of the redundantly identified transformed integer values is not equal to the corresponding identified transformed integer value.
15. The method of claim 11, wherein:
- the transformed integer values for the condition states of the power mode variable are selected from the group consisting of: 5, 6, 9, and 10;
- the transformed integer values for the condition states of the engine run status variable are selected from the group consisting of: 3, 5, and 6; and
- the transformed integer values for the condition states of the transmission gear status variable are selected from the group consisting of: 3 and 5.
16. The method of claim 15, wherein:
- the transformed integer value for the power off condition state of the power mode variable is 5;
- the transformed integer value for the run condition state of the power mode variable is 10;
- the transformed integer value for the accessory condition state of the power mode variable is 6;
- the transformed integer value for the crank condition state of the power mode variable is 9;
- the transformed integer value for the not running condition state of the engine run status variable is 3;
- the transformed integer value for the running and idling condition state of the engine run status variable is 5;
- the transformed integer value for the running and not idling condition state of the engine run status variable is 6;
- the transformed integer value for the reverse condition state of the transmission gear status variable is 3; and
- the transformed integer value for the any gear except reverse condition state of the transmission gear status variable is 5.
17. An apparatus for improving integrity in data representing a plurality of condition states of a variable, the apparatus comprising:
- means for determining which condition states are operationally incompatible with one another; and
- means for generating an array of transformed integer values comprising a separate integer value for each condition state, such that the transformed integer value for each condition state in binary form is at least two bit errors removed from any transformed integer value for an identified incompatible condition state in binary form.
18. The apparatus of claim 17, further comprising:
- means for receiving one or more initial values representing the condition state of the variable; and
- means for identifying the transformed integer value from the generated array of transformed integer values corresponding with each of the one or more initial values.
19. The method of claim 18, further comprising:
- means for redundantly identifying the transformed integer value from the generated array of transformed integer values corresponding with each of the one or more initial values; and
- means for comparing the redundantly identified transformed integer values with the corresponding identified transformed integer values.
20. The method of claim 19, further comprising:
- means for taking remedial action if one or more of the redundantly identified transformed integer values is not equal to the corresponding identified transformed integer value.
Type: Application
Filed: Jan 3, 2007
Publication Date: Jul 3, 2008
Patent Grant number: 8365037
Applicant: GM Global Technology Operations, Inc. (Detroit, MI)
Inventors: Kerfegar K. Katrak (Fenton, MI), Scott A. McCullough (Sterling Heights, MI)
Application Number: 11/619,203
International Classification: B60Q 1/00 (20060101);