The present disclosure relates to hybrid vehicles, and more particularly to processor security diagnostics for hybrid vehicles.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Referring now to
The intake system 24 includes an intake manifold 30, a throttle 32, and an electronic throttle control (ETC) 34. The ETC 34 controls the throttle 32 to control airflow into the engine 22. The fuel system 26 includes fuel injectors (not shown) to control a fuel flow into the engine 22. The ignition system 28 ignites an air/fuel mixture provided to the engine 22 by the intake system 24 and the fuel system 26.
The engine 22 is coupled to the transmission 16 via a coupling device 44. The coupling device 44 may include one or more clutches and/or a torque converter. The engine 22 generates torque to drive the transmission 16 and propel the electric hybrid vehicle 10. The transmission 16 transfers power from the engine 22 to an output shaft 46, which rotatably drives the drive axle 18.
The hybrid power assembly 14 includes one or more motor generator units. For example only, as shown in
The first and second MGUs 38 and 40 operate independently and at any given time may each operate as either a motor or a generator. An MGU operating as a motor supplies power (e.g., torque), all or a portion of which may be used to drive the output shaft 46. An MGU operating as a generator converts mechanical power into electrical power.
For example only, the first MGU 38 may generate electrical power based on the output of the engine 22, and the second MGU 40 may generate electrical power based on the output shaft 46. Electrical power generated by one of the MGUs 38 and 40 may be used, for example, to power the other of the MGUs 38 and 40, to recharge the battery 42, and/or to power electrical components. While the MGUs 38 and 40 are shown as being located within the transmission 16, the MGUs 38 and 40 may be located in any suitable location.
The control module 20 is in communication with the fuel system 26, the ignition system 28, the ETC 34, the MGUs 38 and 40, the power control device 41, and the battery 42. The control module 20 is also in communication with an engine speed sensor 48 that measures an engine speed. For example, the engine speed may be based on the rotation of the crankshaft. The engine speed sensor 48 may be located within the engine 22 or at any suitable location, such as near the crankshaft.
The control module 20 controls operation of the engine 22 and the MGUs 38 and 40. The control module 20 also selectively controls recharging of the battery 42. The control module 20 controls recharging of the battery 42 and the operation of the MGUs 38 and 40 via the power control device 41. The power control device 41 controls power flow between the battery 42 and the MGUs 38 and 40. For example only, the power control device 41 may be an inverter and/or an IGBT (insulated gate bipolar transistor).
The control module 20 may include multiple processors for controlling respective operations of the electric hybrid vehicle 10. For example, the control module 20 may include a first processor for determining desired torque for the engine 22 and the MGUs 38 and 40 and a second processor for controlling torque of each of the MGUs 38 and 40.
A diagnostic system for a hybrid vehicle comprises a processor module and a motor control module. The processor module outputs a first seed value. The motor control module controls torque output by an electric motor of the hybrid vehicle and outputs a key value based on the first seed value. The processor module outputs a second seed value after receiving the key value, and the motor control module selectively diagnoses a fault in the processor module based on a comparison of the second seed value with the first seed value.
In other features, the motor control module selectively diagnoses the fault when the second seed value is equal to the first seed value.
In further features, the processor module sets the second seed value based on a comparison of the key value with an expected value.
In still further features, the processor module sets the second seed value based on the first seed value when the key value is one of greater than and less than the expected value.
In other features, the processor module sets the second seed value based on a third value when the key value is equal to the expected value, wherein the third value is one of greater than and less than the first seed value.
A diagnostic system for a hybrid vehicle comprises a processor module and a motor control module. The processor module outputs a first seed value. The motor control module controls torque output by an electric motor of the hybrid vehicle and outputs a key value after receiving the first seed value. The processor module generates a signal having one of a first state and a second state based on a comparison of the key value with an expected value.
In further features, the motor control module selectively diagnoses a fault in the processor module based on the key value and the state of the signal.
In still further features, the processor module generates the signal having the first state when the key value is equal to the expected value.
In other features, the motor control module selectively sets the key value based on an improper value that is not equal to the expected value and selectively diagnoses the fault when the processor module generates the signal having the first state.
In still other features, the motor control module sets the key value based on the expected value and selectively diagnoses the fault when the processor module generates the signal having the second state.
In further features, the processor module selectively diagnoses a fault in the motor control module based on the comparison.
In still further features, the processor module selectively diagnoses the fault when the key value is one of greater than and less than the expected value.
In other features, the processor module sets a second seed value based on the comparison and outputs the second seed value.
In further features, the processor module sets the second seed value based on the first seed value when the key value is one of greater than and less than the expected value.
A method for a hybrid vehicle comprises: transmitting a first seed value from a first module to a second module that controls torque output by an electric motor of the hybrid vehicle; transmitting a key value determined based on the first seed value from the second module to the first module; transmitting a second seed value from the first module to the second module after the first module receives the key value; and selectively diagnosing a fault in the first module using the second module based on a comparison of the second seed value with the first seed value.
In further features, the selectively diagnosing comprises selectively diagnosing the fault when the second seed value is equal to the first seed value.
In still further features, the method further comprises setting the second seed value based on a comparison of the key value with an expected value.
In other features, the setting the second seed value comprises setting the second seed value based on the first seed value when the key value is one of greater than and less than the expected value.
In still other features, the setting the second seed value comprises setting the second seed value based on a third value when the key value is equal to the expected value, wherein the third value is one of greater than and less than the first seed value.
A method for a hybrid vehicle comprises: transmitting a first seed value from a first module to a second module that controls torque output by an electric motor of the hybrid vehicle; transmitting a key value from the second module to the first module after the second module receives the first seed value; and generating a signal using the first module having one of a first state and a second state based on a comparison of the key value with an expected value.
In further features, the method further comprises selectively diagnosing a fault in the first module using the second module based on the key value and the state of the signal.
In other features, the generating the signal comprises generating the signal having the first state when the key value is equal to the expected value.
In further features, the method further comprises selectively setting the key value based on an improper value that is not equal to the expected value and selectively diagnosing the fault when the signal having the first state is generated.
In still further features, the method further comprises selectively setting the key value based on the expected value and selectively diagnosing the fault when the signal having the second state is generated.
In other features, the method further comprises selectively diagnosing a fault in the second module using the first module based on the comparison.
In further features, the selectively diagnosing the fault comprises selectively diagnosing the fault when the key value is one of greater than and less than the expected value.
In still further features, the method further comprises selectively setting a second seed value based on the comparison and transmitting the second seed value from the first module to the second module.
In other features, the selectively setting the second seed value comprises setting the second seed value based on the first seed value when the key value is one of greater than and less than the expected value.
Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.
The present disclosure will become more fully understood from the detailed description and the accompanying drawings, wherein:
The following description is merely exemplary in nature and is in no way intended to limit the disclosure, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical or. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure.
As used herein, the term module refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Referring now to
For example, the drive diagnostic module 102 receives the engine speed from the engine speed sensor 48. The drive diagnostic module 102 also receives a motor speed measured by a motor speed sensor 107 and a motor torque (Tmot) measured by a motor torque sensor 108. The motor speed sensor 107 and the motor torque sensor 108 measure the speed and torque of the first MGU 38, respectively. As the electric hybrid vehicle 10 includes more than one MGU, the drive diagnostic module 102 may receive the motor speed and torque of more than one MGU. For example, the drive diagnostic module 102 may also receive the motor speed and torque of the second MGU 40.
The drive diagnostic module 102 generates various signals 110 based on the engine speed, the motor speed, and the motor torque. The HCP 104 receives the signals 110 from the drive diagnostic module 102. The HCP 104 determines a requested motor torque 112 for an MGU based on the received signals 110. While the HCP 104 is shown as determining the requested motor torque 112 for the first MGU 38, the HCP 104 may determine a requested motor torque for each of the MGUs 38 and 40.
The MCP 106 receives the requested motor torque 112 from the HCP 104 and controls the torque of the first MGU 38 based on the requested motor torque 112. For example, the MCP 106 may cause power to be supplied to the first MGU 38 in an amount that allows the first MGU 38 to produce the requested motor torque 112. In other words, the MCP 106 controls the torque of the first MGU 38 based on the requested motor torque 112. As such, it is desirable to ensure that the torque commanded by the MCP 106 accurately corresponds to the requested motor torque 112.
The control module 100 may include multiple layers of security/diagnostics to ensure accuracy and consistency between the HCP 104 and the MCP 106. For example, one layer of diagnostics may relate to diagnostics of basic components and subsystems such as voltage and current sensors, temperature sensors, and resolver performance diagnostics. Another layer of diagnostics may relate to an independent calculation of achieved motor torque. This independent calculation of the achieved motor torque may be implemented using separate memory locations for software, calibration variables, and static variables. Values used in the calculation may be verified (e.g., using checksum verification) between different execution loops.
Yet another layer of diagnostics may be implemented to prevent software execution and/or processor faults of the MCP 106. For example only, the control module 100 may include a processor such as a Programming Logic Device (PLD) processor 120. While the PLD processor 120 is shown as being located external to the MCP 106, the PLD processor 120 may be located in any suitable location.
The PLD processor 120 may be used to verify the MCP 106. Likewise, the MCP 106 may be used to verify the PLD processor 120. The PLD processor 120 and/or the MCP 106 may be verified via an information exchange. For example, the PLD processor 120 may send a seed value to the MCP 106. The MCP 106 determines a return key value based on the seed value and transmits the return key to the PLD processor 120.
The PLD processor 120 determines the functionality of the MCP 106 based on the return key (e.g., by comparing the return key to an expected key). If the return key does not match the expected key, the PLD processor 120 may implement remedial actions. For example, the PLD processor 120 may reset the MCP 106 and/or command the first MGU 38 to enter a secure shutdown mode. Similarly, the MCP 106 determines the functionality of the PLD processor 120 based on action the PLD processor 120 in response to the return key. If the PLD processor 120 does not respond as expected, the MCP 106 may implement remedial actions.
Referring now to
Referring now to
Referring again to
The PLD processor 120 may also monitor the condition of the MCP 106 and initiate fault warnings/indications and/or initiate remedial action. For example, if the PLD processor 120 determines that the key received is incorrect, the PLD processor 120 may reset the MCP 106 and/or perform a motor shutdown procedure. Conversely, if the PMM 132 determines that the seed received from the PLD processor 120 is incorrect, the PMM 132 may perform a corresponding remedial action (e.g., log a corresponding fault code).
The PLD processor 120 generates the seeds based on a predetermined sequence. For example only, the predetermined sequence may be based on a Pseudo Random Binary Sequence (PRBS). The PMM 132 generates the return keys based on the seeds. The PMM 132 may generate the return keys, for example, according to a lookup table and/or a nonlinear mapping.
After receiving a return key, the PLD processor 120 determines whether the return key is correct. When the PLD processor 120 determines that the return key is correct, the PLD processor 120 sends another seed to the PMM 132. If, however, the PLD processor 120 determines that the PMM 132 returned an incorrect key, the PLD processor 120 may be expected to resend the same seed.
The PMM 132 then determines whether the PLD processor 120 sent an incorrect seed. For example, one of the MCP 106 and the PMM 132 may store the received seed in memory, such as a buffer (not shown). The PMM 132 reads the stored seed and determines whether the seed is an incorrect seed. For example, the PLD processor 120 may be expected to send different seeds between consecutive program loops. Accordingly, a received seed may be incorrect if it is the same as the stored seed.
The PMM 132 increments a fail count value (e.g., X of an X-of-Y counter) for each incorrect seed received. In other words, the PMM 132 increments the fail count value for each repeated transmission of the same seed. The PMM 132 may log a fault code and/or trigger an appropriate fault action if the fail count value reaches a limit (e.g., X>limit) within a predetermined period (e.g., Y of the X-of-Y counter). Each of the limit and the predetermined period may be set based on calibrated values.
The PMM 132 may also selectively intentionally send an incorrect return key to the PLD processor 120 to determine whether the PLD processor 120 is properly detecting incorrect return keys. The PLD processor 120 is expected to notify the PMM 132 when an incorrect key is received. For example, the PLD processor 120 may assert a signal, such as a bad key signal, on an input of the PMM 132 in response to an incorrect key. When the PMM 132 sends the correct key, the PLD processor 120 does not assert the signal.
When the PMM 132 determines that the PLD processor 120 did not respond appropriately to either a correct key or an incorrect key, the PMM 132 may increment a fail count value (e.g., X of an X-of-Y counter). The PMM 132 may log a fault code and/or trigger an appropriate fault action if the fail count value reaches a limit (e.g., X≧limit) within a predetermined period (e.g., Y of the X-of-Y counter). Each of the limit and the predetermined period may be set based on calibrated values.
When the PMM 132 is not functioning properly, the PMM 132 will return incorrect keys in response to received seeds. When the PMM 132 fails to return the correct key within a predetermined period, the PLD processor 120 may initiate remedial action. For example only, the PLD processor 120 may initiate a power-on reset of the MCP 106. The PLD processor 120 may also initiate a motor shutdown procedure. For example only, the motor shutdown procedure may include short circuiting or open circuiting all of the phases of the MGU 38. After the reset, the MCP 106 may initiate other remedial actions, including, but not limited to, logging a fault code. The HCP 104 may initiate other actions in response to the reset of the MCP 106, including, but not limited to, indicating a communication fault and/or initiating a global vehicle level shutdown.
Referring now to
The method 500 receives the return key in step 506 and determines whether the return key is correct in step 508. If the return key is correct, the method 500 continues to step 510; if the return key is incorrect, the method 500 transfers to step 514. The method 500 may determine whether the return key is correct, for example, based on a comparison with an expected return key.
In step 510, the method 500 generates a second seed (Seed2). The method 500 outputs the second seed in step 512. In this manner, the method 500 generates the second seed when the PMM 132 returns the correct return key in response to the first seed. The method 500 then ends.
Referring back to step 514, the method 500 indicates that the return key is incorrect. In step 516, the method 500 determines whether a fault has occurred. If true, the method 500 continues to step 518; if false, the method 500 transfers to step 520. The method 500 may determine that a fault has occurred when, for example, the PMM 132 has returned an incorrect return key for at least a predetermined period of time. In step 518, the method 500 takes remedial action. The remedial action may include, for example, initiating a power-on reset of the MCP 106 and/or logging a fault code.
In step 520, the method 500 outputs the first seed. In this manner, the method 500 returns the first seed to the PMM 132 when the PMM 132 provides an incorrect return key in response to the first seed. The method 500 then ends. While the method 500 is shown as ending after steps 512, the method 500 may continue. For example, the method 500 may return to step 506 after step 512 or step 520 is performed.
Referring now to
In other implementations, the method 600 may determine whether the PLD processor 120 has responded correctly in step 604. If the PLD processor 120 responded correctly, the method proceeds to step 610; if the PLD processor 120 responded incorrectly, the method 600 proceeds to step 606. The PLD processor 120 may respond incorrectly by, for example, failing to assert the bad key signal when the PMM 132 intentionally provided the PLD processor 120 with an incorrect return key.
The method 600 increments a fail counter in step 606 and determines whether a fault has occurred in step 608. If true, the method 600 proceeds to step 612; if false, the method 600 continues to step 610. For example only, the method 600 may determine that a fault has occurred when the fail counter reaches a predetermined value within a predetermined period of time. In step 612, the method 600 takes remedial action. The method 600 may take remedial action by, for example, initiating a power-on reset of the MCP 106 and/or logging a fault code. The method 600 generates the return key in step 610 and outputs the return key to the PLD processor 120 in step 614. The method 600 ends after step 612 or 614 is performed. While the method 600 is shown as ending after step 612 or 614, the method 600 may continue. For example, the method 600 may return to step 602 after step 614 is performed.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification, and the following claims.
This application claims the benefit of U.S. Provisional Application No. 60/986,373, filed on Nov. 8, 2007. The disclosure of the above application is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60986373 | Nov 2007 | US |