Abstract:
A method for improving the functional security and increasing the availability of an electronic control system, particularly a motor vehicle control system, including hardware components and software components, wherein the hardware components are abstracted by at least one basis software component and/or a runtime environment, and in which an implemented security concept describes two or more software levels, wherein a first software level includes control functions of an application software and a second software level is designed as functional monitoring, for safeguarding against control function faults, wherein a data encryption, provided by at least one hardware component, and/or a data signature for securing the data of at least one communication channel of the hardware component is used with at least one first software component. The invention additionally describes an electronic control system for performing the method.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is the U.S. National Phase Application of PCT/EP2013/054380, filed Mar. 5, 2013, which claims priority to German Patent Application Nos. 10 2012 203 503.6, filed Mar. 6, 2012 and 10 2012 024 818.0, filed Dec. 19, 2012, the contents of such to applications being incorporated by reference herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to a method for improving the functional safety and increasing the availability of an electronic closed-loop control system and to an electronic closed-loop control system. 
       BACKGROUND OF THE INVENTION 
       [0003]    Important safety aims for developments in electronic closed-loop control systems, particularly in automobile electronics, stem from the effects in the event of malfunctions in these systems. Critical effects in the event of malfunctions or failures may be locking of the wheels of a vehicle or excessive, unwanted braking torque on the rear axle with the possible consequence of destabilization of the motor vehicle. By way of example, functions that comprise autonomous acceleration can result in destabilization, particularly for severe torque increases when electric motors are used as drive units. For this, ISO 26262, which is incorporated by reference, provides general focusing for the safety aims of excessive unwanted effects or undersized or negative unwanted effects being avoided, which is why most systems need to protect a flexible corridor for their safety concepts. The tolerable, unwanted torque is situated within this corridor, in which the vehicle needs to be able to be safely controlled in all admissible driving situations. Above this corridor, there are dangerous acceleration effects, for example, while below there is locking of the axles or wheels. The form of the corridor is essentially dependent on the vehicle specifications, such as axle spacing, weight, center of gravity and further parameters, such as speed, road condition, lateral acceleration, curve radius, etc. Such a corridor even exists for stable driving straight ahead. 
         [0004]    The upper and lower limits need to be stipulated in accordance with the safety requirements (e.g. ASIL) of the respective function and the vehicle specifics and also the further parameters. The possible erroneous triggering of an undersized or excessive unwanted torque by a driver assistance function that influences the acceleration of the vehicle can require this function to be grouped into a high safety requirement level, such as ASIL D. This means that an error in this function can immediately result in a risk to persons. 
         [0005]    According to IEC 61508, which is incorporated by reference, the safety aim of transferring a system to a safe state is pursued, inter alia, which frequently results in a switch to a zero-current state in the event of an error occurring. This is intended to limit a potential risk to persons. For this reason, a plurality of safety aims exist, particularly according to ISO 26262, wherein the safe state is a state that does not present any risk to persons but does not necessarily lead to a zero-current or zero-energy state. 
         [0006]    As a fundamental safety concept for engine, transmission, steering and other chassis control systems, DE 10 2006 056 668 A1, which is incorporated by reference, describes a method for ensuring or maintaining the operation of a complex safety-critical overall vehicle closed-loop and/or open-loop control system in the event of the occurrence of errors, malfunctions or other events that have an influence on the availability of subfunctions. For this, modes of operation are defined for the necessary system components, with the modes of operation that are affected by the errors that have occurred being ascertained in the event of error. From the modes of operation that are still available, a selection is then made, in view of the most extensive possible availability of the overall system, and hence the performance of the system is degraded in stages. 
         [0007]    Particularly for engine management systems in electromobility, it is necessary to consider implementations up to the highest safety requirement level (e.g. ASIL D). Unwanted effects, as are described above, are considered particularly in the case of multilevel software architectures for safety-relevant motor vehicle control systems. Essential safety functions are accordingly implemented by means of appropriate design of the hardware and software and the interaction thereof, and particularly the independence of the safety functions that is required by ASIL, e.g. for data communication, is achieved by means of data encryption. If it is no longer possible to decrypt the key at the receiver, a disconnection path, such as an intelligent watchdog (window watchdog), is used to disconnect the communication or the entire system. 
         [0008]    Modern generations of (multicore) microcontrollers have inherently known safety mechanisms for the entire hardware, with the redundant processors frequently operating in a synchronous or asynchronous lockstep mode, so that single, multiple or brief errors can be controlled. A microcontroller within the context of this description is also understood to mean microprocessors, microcontroller systems and microprocessor systems, which have at least one processor and are able to capture and output signals via peripheral functions. 
         [0009]    A time delay in the execution of tasks between redundant processors allows errors to be tolerated within a safety time (e.g. less than 1 ms) on account of integrated hardware safety mechanisms, since these errors are prevented from causing a potentially dangerous situation by at least one safety mechanism. By way of example, the safety mechanism could be data correction that corrects data identified as incorrect and uses said corrected data for further processing. 
         [0010]    The communication by the hardware, such as by a microcontroller with its peripherals, can be protected against different types of error by error correction methods (ECC), error detection methods (EDC) and/or end-to-end data encryption (E2E). EDC is important for controlling the error correction, so that tolerances or reactions can be adapted upon the occurrence of a plurality of and/or transient errors. Digital output values from peripheral units, such as analog-to-digital converters, can be protected by means of EDC, for example, the values of the analog input variables being protected by means of two independent potential bands separated by an undefined range. By way of example, values greater than 4.5 V may correspond to a high level and values less than 0.5 V may correspond to a low level. The validity registers are then coupled to the digital output values during the analog-to-digital conversion as data encryption or a data signature. 
         [0011]    For motor vehicle controllers, there is increasing standardization of the software architecture or use of runtime environments (RTE) in order to improve the portability, reusability and safety of software modules, inter alia, and ultimately also to save development costs. For the application software of a motor vehicle controller, a standardized environment is therefore provided that is no longer directly influenced by technical influences of the microcontroller. For architectural analysis for the purpose of establishing all the actually possible error influences of a microcontroller on the software implemented thereon, it is essentially necessary to check every property of the microcontroller. In the event of a change to another microcontroller type or if the manufacturer of the microcontroller changes the production technique or materials used, this needs to be taken into consideration. The advantage of using standardized software architecture is therefore that no or only small adaptations to this application software need to be made in the event of changes to the hardware. 
         [0012]    A further safety principle according to the prior art is explained below using the example of the standardized software architecture AutoSar® (AUTomotive Open System ARchitecture®). Version 4 of AutoSar® specifies E2E safety for a communication channel from basic software to a level of a runtime environment (RTE). At a software level that is based on a microcontroller abstraction level, the crude information that is present from the peripherals as input signals is encrypted and, following transfer of the encrypted data by the software levels, decryption takes place in the region of the RTE. The application software, which is superordinate to the RTE as a further level, can then use these data for further processing. Thus, software-based E2E data encryption by AutoSar® takes place, with particularly the hardware software interface not being protected. However, no safety-relevant influence is permitted to take place on software for function monitoring, communication channels of the peripherals, degradation software or further safety software. The division of the control functions and the function monitoring and also the hardware or system protection, for example in the basic software, into different software levels allows possible error propagations to be reduced and hence error cascades, such as in the case of separate controllers, to be avoided or interrupted. 
         [0013]    Basic errors that affect the application software from the hardware may be data that are corrupted by a wide variety of causes or that are generated incorrectly, for example. In addition, it is possible for data not to be made available to a software process in good time as a result of errors in the hardware. 
       SUMMARY OF THE INVENTION 
       [0014]    An aspect of the invention improves the functional safety and increases the availability of safety-relevant electronic systems, particularly in a motor vehicle. 
         [0015]    An aspect of the invention describes a method for improving the functional safety and increasing the availability of an electronic closed-loop control system, particularly a motor vehicle control system, comprising hardware components and software components, wherein the hardware components are abstracted by at least one basic software component and/or at least one runtime environment and in which an implemented safety concept describes two or more software levels, wherein a first software level comprises control functions of a piece of application software and a second software level is in the form of a function monitor particularly for the purpose of protecting against errors in the control functions, wherein the invention is furthermore distinguished in that data encryption and/or data signature, provided by at least one hardware component, is used for data protection for at least one communication channel of the hardware component with at least one first software component. Advantageously, the interface from the software to the hardware is thus additionally protected, which means that the inventive method achieves independence between the software components themselves and also between software components and hardware components. Erroneous influencing is therefore avoided or can be detected. 
         [0016]    According to a particularly preferred embodiment, the first software component is an integrity manager, wherein the encrypted and/or signed data communicated via the communication channel are provided for the integrity manager and/or the runtime environment and/or the basic software component, and the integrity manager checks the integrity of the communicated data from the communication channel, wherein the integrity manager uses particularly the data encryption and/or data signature for checking the integrity of the data. The application software can therefore advantageously also be implemented for extremely safety-relevant functions. The function monitor would not have the need to control external influences by the hardware, but rather would only need to protect against systematic errors that can arise as a result of specification and implementation errors. Data corruption by external influences is avoided thereby. 
         [0017]    The integrity manager provides particularly preferably the unencrypted and/or unsigned information data for the application software if the integrity of the encrypted and/or signed data is essentially existent. Preferably, the existence of integrity for the respective safety requirement level, in relation to a particular data transmission link, is determined. Advantageously, the infringement of independence at a defined location is therefore provided for a degradation. 
         [0018]    In accordance with a preferred embodiment, the integrity manager generates an error code, which can be processed particularly by the application software, if the integrity of the encrypted and/or signed data is not existent, wherein the unencrypted and/or unsigned information data are not provided for the application software, or are provided just together with the error code, and/or the unencrypted information data are assigned an implausible value. 
         [0019]    Preferably, the integrity manager is subordinate to the application software and/or superordinate to the runtime environment and/or implemented in the runtime environment, wherein the runtime environment provides the encrypted and/or signed data for the integrity manager. 
         [0020]    Preferably, a degradation manager is provided that is in the form of at least one third software level and/or in the form of at least one software process of the first and/or the second software level, wherein the degradation manager comprises at least one degradation level for the control functions of the first software level and/or a function monitor for the second software level. 
         [0021]    Preferably, a disconnection function of the degradation manager is executed by at least one software process with high, particularly maximum, priority. This advantageously realizes deterministic achievement of the respective safe state(s). 
         [0022]    In accordance with a preferred embodiment, the integrity of the data and/or the generated error code is/are taken as a basis for the degradation manager to execute one or more selective disconnections and/or degradations for the performance of the motor vehicle control system and/or the control functions and/or the function monitoring. Advantageously, this allows strict disconnection of the system in the event of error to be avoided and selective disconnection of functions to be realized. Hence, a maximum possible system availability, on the basis of the error, can be maintained in order to realize the emergency driving programs, for example, that can be used to leave a hazard area or to reach a service garage, for example. A resulting consequence is advantageous conformity of the safety concept particularly with ISO 26262, since it is possible to ensure that a safe state that is valid for the relevant error situation is reached. 
         [0023]    Preferably, the integrity manager provides the application software with implausible information data in the case of transient errors and/or with a generated error code in the case of permanent errors. Hence, it is advantageously possible for the selective disconnection and/or degeneration of the performance of the motor vehicle control system to be provided on the basis of available data encryptions and/or data signatures without having to provide further diagnosis measures. By way of example, it is therefore possible to dispense with separate failure safety mechanisms for sensor data from intelligent sensors. 
         [0024]    The function monitor and/or the degradation manager and/or the integrity manager can preferably access the data encryption and/or data signature of the data. The advantage is that the function monitor is informed about the plausibility of the data communicated to the peripherals, for example. 
         [0025]    According to a further preferred embodiment, the function monitor and/or the degradation manager use the data encryption and/or data signature for additional plausibilization of the data. 
         [0026]    Preferably, for a communication channel between software components, software functions and/or software processes, the data encryption and/or data signature is/are checked by the receiving software component. This is advantageous particularly in the case of multiprocessors because the data communication between software components can always be corrupted by data buffer-storage or processing in the microcontroller. 
         [0027]    Preferably, a restart and/or synchronization for the program flow of a microcontroller executing the method is provided in the course of operation, particularly within a safety time, wherein a safe state is initiated by a disconnection means, particularly by a watchdog, if the safety time is exceeded. 
         [0028]    The integrity manager ensures preferably data-oriented and/or temporal separation for, in particular independent and/or perturbation-free, software components, wherein the data-oriented and/or temporal separation is preferably used to disconnect software components with different safety requirement levels selectively and/or in prioritized fashion particularly if independence is infringed. Advantageously, an abstracted software architecture is therefore provided for the application software, which software architecture is essentially free of erroneous, unascertainable hardware influences. 
         [0029]    The invention furthermore relates to an electronic closed-loop control system, particularly a motor vehicle control system, for executing a method as described above. Software architecture analysis is advantageously limited for the inventive system to possible systematic errors that reduce to possible systematic errors in a piece of application software. This prevents errors that arise particularly in the development of the software components. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]    Further preferred embodiments can be found in the description below of exemplary embodiments with reference to figures, in which: 
           [0031]      FIG. 1  shows a basic illustration to describe the manner of operation of the inventive method, 
           [0032]      FIG. 2  shows a basic illustration, with an alternative arrangement of the software levels being present, and 
           [0033]      FIG. 3  shows a basic illustration to explain a further exemplary embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0034]      FIG. 1  shows the basic manner of operation of the invention for improving the functional safety and increasing the availability of an electronic motor vehicle control system. Accordingly, a motor vehicle control system is also intended to be understood to mean open-loop controllers of any motor vehicle components. As an aid to understanding the invention using the example of a motor vehicle control system, only the most essential components thereof are depicted and/or described. 
         [0035]    For the purpose of abstracting the hardware of a microcontroller executing the software components described below, the runtime environment  2  and the basic software  20  are executed by said microcontroller. In this context, software components are understood to mean particularly software processes, software functions and/or software levels. The central element is the integrity manager  3 , which monitors the safety-oriented integrity of the data communication and can provide the necessary conditions in order to transfer the motor vehicle control system to a selective safe state by means of the degradation manager  6 . 
         [0036]    The safety concept essentially provides three levels of the application software  4 ,  5 ,  6 , with the first level  4  comprising the control functions (basic functions), for example motor vehicle brake control, the second level  5  executing the function monitoring for the control functions  4  and the third level  6  being in the form of a degradation manager for different degradation levels and degradation scenarios for the system. For the function monitor  5 , the control functions  4  are executed in a manner known per se by means of diverse software algorithms for the purpose of protecting against systematic errors. Each software level may preferably be implemented as an independent process of the basic software or of the operating system and/or the application software. Particularly the function monitor  5  and the degradation manager  6  may be divided into various processes  6   a,    6   b,  also with various safety requirement levels, e.g. into ASIL B and ASIL D. 
         [0037]    Further monitoring of the software components, for example monitoring of the independence and also time monitoring, are implemented in a manner known per se by a flow monitor  10  with a downstream disconnection mechanism  15 , such as a process scheduler. By way of example, this monitors infringements on the partition, the memory monitoring, the entry conditions for processes to be executed and the temporally and logically correct execution thereof.  FIG. 1  illustrates the incorporation of the flow monitor  10  into the function monitor  5  and the degradation manager  6  via the condition blocks  12   a  and  12   b.    
         [0038]    In the event of error, the function monitor  5  and/or the degradation manager  6  can transfer or degrade the motor vehicle control system or separate control and/or application functions to a safe state, which allows performance degradation to be performed and the scope of functions to be reduced. The availability and error tolerance of the motor vehicle control system is substantially improved by these measures. By way of example, the supply of power to an engine that threatens to overheat can be actively limited. 
         [0039]    All the disconnection mechanisms of the degradation can be effected selectively, which means that the basic functions of the microcontroller essentially do not need to be disconnected. A disconnection mechanism  15 , for example a watchdog, would therefore not be absolutely necessary even for safety functions with a high safety requirement level such as ASIL D. The use of a disconnection mechanism  15  becomes necessary only if it is used for disconnecting the hardware of the executing microcontroller. Safety-dependent restarting of the microcontroller is therefore largely avoided and system availability is substantially improved. For realization, it is possible for appropriate, encrypted instructions of the software components to be connected to an output pin of the executing microcontroller and hence for the safe state to be initiated. To allow corresponding redundancy on the hardware side, inherently known bridge circuits or activation lines can be used in order to initiate a safe state. Since software components of a microcontroller are executed not simultaneously but rather sequentially, it is necessary to take account not only of data-oriented separation but also of temporal separation, this likewise being monitored and ensured by means of the external disconnection mechanism  15 . 
         [0040]    In accordance with the example, the executing microcontroller can be restarted within the safety time, this being advantageous particularly in the case of the use of a single-core microcontroller, since there are no redundancies. The outputs of the microcontroller are put into a static state during the restart and, within the safety time, the restart and the synchronization with the program flow take place. This approach does not bring about a safety-critical state for the motor vehicle control system during a restart, since all of the peripherals remain operational and even auxiliary functions, such as the communication, do not need to be interrupted. If a restart is not possible within the safety time, the external disconnection mechanism  10  transfers the motor vehicle control system to a safe state. If the disconnection paths are operated by means of a process (task) by the degradation manager  6  with the maximum priority, temporal determinism is achieved for the safe reaction of the system, which means that the system behaves essentially correctly or as expected over time in the event of an error occurring. 
         [0041]    Instead of pure software data encryption between the software levels of the software architecture, as has already been described using the example of AutoSar®, the data encryption and/or data signature is/are used by existent hardware  1  of a motor vehicle, such as by sensors, actuators, interfaces, analog-to-digital converters and/or by components of the motor vehicle controller per se. Hence, the interface of the software components to the hardware  1  is additionally protected. 
         [0042]    The hardware  1  communicates with the motor vehicle controller or the microcontroller. The communicated, encrypted data  8   a,    9   a  . . .  8   c,    9   c  comprise the information data  8   a  . . .  8   c  and also the associated data encryption  9   a  . . .  9   c  and/or data signature of the hardware  1 . The communication channel  7  is used to provide the encrypted data  8   a,    9   a  . . .  8   a,    9   c  for the integrity manager  3 . The communication channel  7  is protected on the basis of this end-to-end data encryption. Single, multiple and transient errors can therefore be identified. There is no limitation to E2E data encryption on the basis of AutoSar®, for which reason it is alternatively possible for Cray-coded or additional check patterns and unencrypted information, for example, to be used as impressed data signatures in the data formats. By way of example, modern analog-to-digital converters are monitored by dedicated safety mechanisms, with the data produced in this manner also being incorporated into the ECC and EDC. These safety mechanisms can therefore also be used for the encryption. The communication by peripherals with the microcontroller takes place in a manner known per se by means of peripheral buses, for example, such as SPI, or analog or digital communication. 
         [0043]    The integrity manager  3  reads the incoming data  8   a,    9   a,  . . .  8   c,    9   c  and analyzes the integrity thereof, the latter being determined from the plausibility, correctness, soundness and/or currentness of the data  8   a,    9   a,  . . .  8   c,    9   c,  and different degrees of integrity also being able to be distinguished. If data integrity is essentially present, the application software  4 ,  5 ,  6  is provided at least with access to the information data  8   a  . . .  8   c  for further processing. Alternatively, the integrity manager  3  releases the encrypted data  8   a,    9   a,  . . .  8   c,    9   c  completely, said data being decrypted by the respective receiving software component. 
         [0044]    The restriction of error propagation in order to obtain safety in the face of multiple errors is achieved by using the function monitor  5  and/or the degradation manager  6  for a plausibilization of the integrity of data  8   a,    9   a,  . . .  8   c,    9   c  with a relatively low safety requirement level, such as ASIL B, for disconnection functions with higher safety requirement levels, such as ASIL D. This realizes not only the integrity check by the integrity manager  3  but also a second independent safety mechanism.  FIG. 1  illustrates this by means of condition blocks  11   a  and  11   b,  the basis used being able to be various data blocks from a communication channel  7  and/or data  8   a,    9   a,  . . .  8   c,    9   c  from various communication channels and also any combinations of the information data  8   a  . . .  8   c  and/or data encryptions  9   a . . . c  of various data  8   a,    9   a,  . . .  8   c,    9   c.    
         [0045]    If there is an error in the motor vehicle control system, the integrity manager  3  transfers an error code, generated as appropriate on the basis of an error diagnosis, to the application software  4 ,  5 ,  6 , but particularly the function monitor  5  and/or the degradation manager  6 . If an error is recognized from the plausibility check by the function monitor  5 , the relevant information is forwarded to a degradation manager  6  by the function monitor  5 , for example using an error code. On the basis of the information provided by the integrity manager  3  regarding the data integrity and any errors, the plausibility check and the incorporation of the flow monitor  10 , it is possible to perform detailed error analysis. This allows precise measures from much more complex degradation concepts, with errors being able to be tolerated and degradations in the performance of the system being able to be performed. 
         [0046]    The safety time of the microcontroller is likewise significant to a reaction by the degradation manager  6 . In this case, the degree of detail in an error analysis can be made dependent on the grouping into the respective safety requirement level. For a control command for an actuator, for example, it is necessary to provide internal diagnosis information within the application software  3 ,  4 ,  5 , so that safety-relevant actions can be initiated. On the basis of the example, an output of the microcontroller is enabled for a safety-relevant function only if timely and correct data transmission to the output is inferred from the diagnosis information. 
         [0047]    Besides the error that has occurred, per se, it may be crucial, inter alia, to a corresponding degradation concept whether a transient or permanent error is involved and/or into what safety requirement level an affected software component is classified. Insofar as it can be ascertained, it is also possible to take account of whether the present error could have occurred as a result of conscious external influencing, for example via a security leak in the motor vehicle control system, or in another way. 
         [0048]    By way of example, the integrity manager  3  can, in the event of transient errors, change at least the information data  8   a  . . .  8   c  to implausible values, disable access by the application software  4 ,  5 ,  6  or continue to provide said access. If an error in the data encryption  9   a  . . .  9   c  has arisen and has been established by the integrity manager  3 , for example, the information data  8   a  . . .  8   c  can, in principle or temporarily, continue to be used by the application software, for which reason the integration manager  3  provides the information data  8   a  . . .  8   c  for the application software  3 ,  4 ,  5  and transfers an error code to the degradation manager  6 . If such an error continues to be present after a defined time, an appropriate reaction can be initiated by the degradation manager  6 . 
         [0049]    In the descriptions below that pertain to the further figures, in order to avoid repetition, essentially only the differences over the embodiment described above will be discussed, and for simplification purposes elements that are the same are provided with the same reference symbols and in each case only details that are essential to the invention are explained. 
         [0050]    Without being restricted thereto, the exemplary embodiment in  FIG. 1  has essentially oriented itself to the use or the design of the standard software architecture AutoSar®.  FIG. 2  now shows an alternative arrangement to the software levels in comparison with the exemplary embodiment in  FIG. 1 . The integrity manager  3 , the function monitoring level  5  and the degradation manager  6  are accordingly realized hierarchically below the runtime environment  2 . In this case, the latter may additionally comprise functions of the flow or process monitor  10 . The respective processes of the control functions  13   a,    13   b  or further system or auxiliary functions of the software levels are designed in accordance with their safety requirement, e.g. ASIL B and ASIL D. 
         [0051]    According to the exemplary embodiment shown in  FIG. 3 , the degradation manager  6  can also be embodied as an independent software process or independent software function by the control function level  4 . On the basis of the example, the degradation measures are executed by the integrity manager  6  via a condition block  14  following plausibilization. Furthermore, a motor vehicle control function or a software process  13   c  is monitored by a monitoring process  13   d  with a relatively low safety requirement level, e.g. ASIL B. In addition, a process  13   a  having a high safety requirement level, e.g. ASIL D, is provided for monitoring the control function  13   c  and the monitoring process  13   b  of the control function.