FR2938950A1 - Method for protecting against ill-timed triggering of control function of functional unit i.e. actuator of brake system, of motor vehicle, involves loading decoded instructions in volatile memory, and executing instructions in memory - Google Patents
Method for protecting against ill-timed triggering of control function of functional unit i.e. actuator of brake system, of motor vehicle, involves loading decoded instructions in volatile memory, and executing instructions in memory Download PDFInfo
- Publication number
- FR2938950A1 FR2938950A1 FR0857932A FR0857932A FR2938950A1 FR 2938950 A1 FR2938950 A1 FR 2938950A1 FR 0857932 A FR0857932 A FR 0857932A FR 0857932 A FR0857932 A FR 0857932A FR 2938950 A1 FR2938950 A1 FR 2938950A1
- Authority
- FR
- France
- Prior art keywords
- volatile memory
- control function
- instructions
- protection against
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
Description
PROCEDE DE PROTECTION CONTRE LE DECLENCHEMENT INOPPORTUN D'UNE FONCTION DE PILOTAGE D'UN ORGANE FONCTIONNEL D'UN VEHICULE AUTOMOBILE. METHOD OF PROTECTING AGAINST THE INOPPORTUN TRIPPING OF A FUNCTIONAL ORGAN FUNCTIONING FUNCTION OF A MOTOR VEHICLE.
La présente invention concerne un procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel d'un véhicule automobile. Les véhicules actuels sont de plus en plus équipés de calculateurs, également appelés unités de contrôle électroniques (UCE), contribuant notamment à renforcer le confort et la sécurité du véhicule et de ses occupants, par l'intermédiaire d'une multitude de fonctions logicielles. The present invention relates to a protection method against the improper activation of a steering function of a functional member of a motor vehicle. Today's vehicles are increasingly equipped with computers, also known as electronic control units (ECUs), which contribute in particular to enhancing the comfort and safety of the vehicle and its occupants, through a multitude of software functions.
Lors de la fabrication du véhicule en usine de production, certaines unités de contrôle électroniques nécessitent, après montage, une exécution d'une suite d'instructions internes permettant la mise en service du système dont ils font partie ; un tel système est par exemple le calculateur ABS d'un système de freinage. Dans le cas d'un calculateur ABS, la séquence de pilotage des électrovannes du bloc hydraulique est activée lors de l'envoi d'une requête à l'UCE au moyen d'un outil de diagnostic extérieur au moment où le véhicule passe au poste de remplissage du circuit hydraulique de freinage. D'une façon générale, les suites d'instructions exécutables, appelées également routines, agissent directement sur les actionneurs des systèmes et doivent être activées uniquement lors de situations de vie du véhicule bien précises, comme par exemple en usine ou encore en service après-vente et uniquement sur requête de l'outil de diagnostic lorsque celui-ci est connecté au véhicule. During manufacture of the vehicle in the production plant, certain electronic control units require, after assembly, an execution of a series of internal instructions allowing the commissioning of the system of which they form part; such a system is for example the ABS computer of a braking system. In the case of an ABS computer, the control sequence of the solenoid valves of the hydraulic block is activated when a request is sent to the ECU by means of an external diagnostic tool at the moment when the vehicle passes to the station. filling the hydraulic braking circuit. In general, executable command sequences, also called routines, act directly on the actuators of the systems and must be activated only in very specific vehicle life situations, such as in the factory or in service afterwards. sale and only upon request of the diagnostic tool when it is connected to the vehicle.
Cependant, ces routines, résidant dans la mémoire de l'UCE, pendant la durée de vie du véhicule, peuvent être confrontées à une activation accidentelle, c'est-à-dire sans connexion d'un outil de diagnostic ; une telle activation accidentelle intervient par exemple à la suite d'un déroutement de programme causé par une perturbation de type électromagnétique. En effet, un véhicule est amené, lors de ses déplacements, à traverser diverses zones pouvant présenter des perturbations électromagnétiques plus ou moins importantes, comme par exemple les milieux industriels, les abords des aéroports civils et militaires ou encore les zones proches des relais radio/Tv. However, these routines, resident in the memory of the ECU, during the life of the vehicle, may be confronted with an accidental activation, that is to say without connection of a diagnostic tool; such accidental activation occurs for example following a program diversion caused by an electromagnetic type disturbance. Indeed, a vehicle is brought, during its travels, to cross various areas that may have more or less significant electromagnetic disturbances, such as industrial environments, the vicinity of civil and military airports or areas near the radio relay / TV.
Aux perturbations de type électromagnétiques s'ajoute également le rayonnement cosmique bombardant de façon continue la planète et dont certaines particules ionisantes parviennent à traverser l'atmosphère terrestre et sont susceptibles de venir perturber le fonctionnement du microprocesseur de l'UCE. Ainsi dans un environnement actuel où le nombre de transmetteurs sans fil augmente de façon exponentielle, il devient indispensable de prendre en compte ce facteur de défaillance des UCE et de renforcer les protections contre des émissions perturbatrices extérieures susceptibles de provoquer un déclenchement intempestif d'une fonction de pilotage d'un organe fonctionnel d'un véhicule automobile. Lorsque qu'une perturbation extérieure affecte le déroulement normal d'un programme en cours d'exécution, cette perturbation risque de dérouter ce programme vers une adresse particulière de la mémoire de l'UCE. En outre, l'adresse pourrait être, dans le pire des cas, l'adresse correspondant à une instruction dont l'exécution à un moment inopportun présente un danger pour la sécurité des personnes et/ou du matériel. Afin de répondre à ce problème, on connait des dispositifs comportant un blindage physique du boitier de l'UCE apte à l'isoler des rayonnements perturbateurs extérieurs. Cependant, le blindage du boitier présente de nombreux inconvénients. En effet, l'étude de compatibilité électromagnétique coûteuse est systématiquement remise en question lors de l'évolution des composants électroniques et/ou de la forme du boitier de l'UCE ; l'ajout de matière supplémentaire pour le blindage métallique a de plus un impact économique non négligeable ainsi qu'un impact sur la masse du véhicule ; l'efficacité du blindage est limitée à une gamme de fréquences bien précise ; la taille des trous et des fentes du boitier, devant rester inférieure à la longueur d'onde du rayonnement à bloquer, engendre des contraintes pour le passage des connecteurs dans le boitier. On connait également une deuxième solution consistant à : - télécharger temporairement la routine dans la mémoire volatile, ou mémoire RAM, de l'UCE ; - exécuter la routine sur la ligne de production, avant la sortie d'usine ; - faire disparaitre la routine à la coupure du contact. Cette solution permet d'éviter le déclenchement inopportun d'une instruction critique en clientèle. Cependant, cette deuxième solution nécessite de la part du constructeur automobile de diffuser largement les fichiers comportant les routines dans l'ensemble du réseau après-vente pour la remise en route de l'UCE en cas d'intervention sur le système dont elle fait partie ou bien pour la mise en service d'une nouvelle UCE lorsque celle-ci a été remplacée. Cette solution se révèle très coûteuse par : - la création de fichiers à facturer par le fournisseur ; - une gestion des références associées aux fichiers 30 dans un système d'information centralisé consultable en après-vente ; - une mise en place d'une gestion de compatibilité entre les fichiers et les logiciels embarqués dans l'UCE afin d'éviter toutes erreurs en service après-vente. 35 Dans ce contexte, l'invention vise à fournir un procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel d'un véhicule automobile permettant de garantir une protection contre le déclenchement d'une fonction de pilotage critique à un moment inopportun. A cette fin, l'invention propose un procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel d'un véhicule automobile mis en oeuvre par une unité de contrôle électronique associée à une mémoire volatile et à une mémoire non-volatile caractérisé en ce qu'il comporte pour une exécution de la fonction de pilotage : - une étape de réception d'une signature d'un outil externe émettant une requête d'exécution de ladite fonction de pilotage, et de stockage de la signature dans ladite mémoire volatile ; - une étape de vérification de la présence de la signature dudit outil dans ladite mémoire volatile ; une étape de décodage des instructions de la fonction de pilotage présente dans ladite mémoire non-volatile et de chargement desdites instructions décodées dans ladite mémoire volatile ; - une étape d'exécution desdites instructions décodées chargées dans ladite mémoire volatile. Selon un mode de mise en oeuvre particulier, le procédé est tel qu'il comporte l'étape consistant à supprimer lesdites instructions décodées de ladite mémoire volatile. Selon un mode de mise en oeuvre particulier, le procédé est tel qu'il comporte l'étape consistant à envoyer un signal d'acquittement audit outil externe. Selon un mode de mise en oeuvre particulier, le procédé est tel que lesdites étapes d'exécution de ladite fonction de pilotage sont entrecoupées périodiquement par une étape de recharge de moyens de décomptage. Selon un mode de mise en oeuvre particulier, le procédé est tel qu'il comporte l'étape consistant à réinitialiser l'unité de contrôle électronique lorsque lesdits moyens de décomptage ne sont pas rechargés avant une durée préalablement déterminée. In addition to the electromagnetic type disturbances, cosmic radiation is continuously bombarding the planet and some ionizing particles pass through the Earth's atmosphere and can disrupt the operation of the ECU's microprocessor. Thus, in a current environment where the number of wireless transmitters is increasing exponentially, it becomes essential to take into account this failure factor of the ECUs and to reinforce the protections against external interference emissions that can cause a nuisance tripping of a function. driving a functional organ of a motor vehicle. When an external disturbance affects the normal course of a running program, this disturbance may confuse this program to a particular address in the ECU memory. In addition, the address could be, in the worst case, the address corresponding to an instruction whose execution at an inconvenient moment presents a danger for the safety of the persons and / or the material. In order to answer this problem, devices are known comprising a physical shielding of the housing of the ECU capable of isolating it from external disturbing radiation. However, the shielding of the housing has many disadvantages. Indeed, the costly electromagnetic compatibility study is systematically questioned during the evolution of the electronic components and / or the shape of the case of the ECU; the addition of additional material for the metal shielding has also a significant economic impact and an impact on the mass of the vehicle; shielding efficiency is limited to a specific frequency range; the size of the holes and slots of the housing, to remain below the wavelength of the radiation to be blocked, causes constraints for the passage of the connectors in the housing. There is also a second solution consisting in: - temporarily downloading the routine into the volatile memory, or RAM memory, of the ECU; - execute the routine on the production line, before leaving the factory; - to make disappear the routine at the cut of the contact. This solution makes it possible to avoid the untimely triggering of a critical instruction in the clientele. However, this second solution requires the car manufacturer to widely distribute the files comprising the routines throughout the after-sales network for restarting the ECU in case of intervention on the system of which it is part or for commissioning a new ECU when it has been replaced. This solution proves to be very expensive by: - creating files to be invoiced by the supplier; a management of the references associated with the files in a centralized information system that can be consulted after-sales; - Implementation of compatibility management between files and embedded software in the ECU to avoid any errors in the after-sales service. In this context, the aim of the invention is to provide a method of protection against the improper activation of a steering function of a functional component of a motor vehicle which makes it possible to guarantee protection against the triggering of a critical driving function. at an inopportune moment. To this end, the invention proposes a protection method against the improper activation of a control function of a functional element of a motor vehicle implemented by an electronic control unit associated with a volatile memory and a memory non-volatile characterized in that it comprises for an execution of the control function: a step of receiving a signature of an external tool issuing a request for execution of said control function, and storage of the signature in said volatile memory; a step of verifying the presence of the signature of said tool in said volatile memory; a step of decoding the instructions of the control function present in said non-volatile memory and of loading said instructions decoded in said volatile memory; a step of executing said decoded instructions loaded into said volatile memory. According to a particular mode of implementation, the method is such that it comprises the step of removing said decoded instructions from said volatile memory. According to a particular mode of implementation, the method is such that it comprises the step of sending an acknowledgment signal to said external tool. According to a particular embodiment, the method is such that said steps of executing said control function are interrupted periodically by a step of reloading counting means. According to a particular embodiment, the method is such that it comprises the step of resetting the electronic control unit when said counting means are not reloaded before a predetermined duration.
Selon un mode de mise en oeuvre particulier, le procédé est tel qu'il comporte l'étape consistant à encoder lesdites instructions de ladite fonction de pilotage et à stocker lesdites instructions dans ladite mémoire non-volatile. Selon un mode de mise en oeuvre particulier, le procédé est tel que l'étape consistant à encoder lesdites instructions comporte une opération d'encodage par inversion de bit. According to a particular mode of implementation, the method is such that it comprises the step of encoding said instructions of said control function and storing said instructions in said non-volatile memory. According to a particular embodiment, the method is such that the step of encoding said instructions comprises a bit inversion encoding operation.
L'invention a également pour objet un dispositif comportant des moyens pour la mise en oeuvre du procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel selon l'invention. The subject of the invention is also a device comprising means for implementing the protection method against the undesirable triggering of a steering function of a functional element according to the invention.
D'autres caractéristiques et avantages de l'invention ressortiront plus clairement de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : - la figure 1 est un schéma fonctionnel d'un exemple de dispositif mettant en oeuvre un procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel selon l'invention ; - la figure 2 est un schéma fonctionnel d'un exemple de mise en oeuvre du procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel selon l'invention. La figure 1 est un schéma fonctionnel d'un dispositif 100 mettant en oeuvre le procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un organe fonctionnel selon l'invention. Le dispositif 100 est une unité de contrôle électronique (UCE) comportant : - une mémoire non volatile 5 réinscriptible ou non, agencée de façon à comporter un programme applicatif dédiant l'UCE 100 à un usage particulier, par exemple le contrôle d'un système de freinage, - un microprocesseur 3 apte à exécuter le programme stocké dans la mémoire non volatile 5 par l'intermédiaire d'un bus interne 2 ; le microprocesseur 3 regroupant les composants usuels nécessaires à l'exécution d'un programme comme par exemple : une unité arithmétique et logique, un compteur de programme, un décodeur d'instructions, une pile à plusieurs niveaux, des registres d'état ainsi que le microprogramme nécessaire au fonctionnement du microprocesseur ; - une mémoire volatile 6, par exemple de type mémoire RAM, accessible en lecture et en écriture à tout moment pendant le fonctionnement de l'UCE 100 agencée de manière à contenir les données écrites par le programme applicatif pendant le fonctionnement de l'UCE 100 ; - des moyens d'entrée/sortie 7 permettant au microprocesseur 3 de communiquer avec un outil externe 9, de type outil de diagnostic ; l'outil de diagnostic 9 pouvant être connecté lors de différentes situations de vie du véhicule telles que par exemple en bord de ligne de montage, sur un plateau de retouche ou encore en après-vente ; les moyens d'entrée/sortie 7 communiquant au moyen d'une ligne de communication 8 de type liaison série, de type ligne K ou encore de type bus multiplexé de transmission d'informations, comme par exemple un bus CAN (Controller Area Network) ; - des moyens logiciels ou matériels 4 connus sous l'appellation chien de garde comportant un décompteur automatique devant être rechargé de façon périodique à une valeur maximale par le programme figurant dans la mémoire non volatile 5, de sorte que si le microprocesseur 3 ne parvient plus à exécuter correctement le programme, les instructions de rechargement des moyens 4 chien de garde ne sont plus exécutées ce qui provoque alors un décomptage du contenu du décompteur jusqu'à zéro induisant une réinitialisation de l'UCE 100 et le programme figurant dans la mémoire non volatile 5 redémarre. Other characteristics and advantages of the invention will emerge more clearly from the description which is given below, by way of indication and in no way limiting, with reference to the appended figures, among which: FIG. 1 is a block diagram of FIG. an example of a device implementing a protection method against the undesirable triggering of a steering function of a functional member according to the invention; FIG. 2 is a block diagram of an exemplary implementation of the protection method against the undesirable tripping of a control function of a functional element according to the invention. FIG. 1 is a block diagram of a device 100 implementing the protection method against the undesirable tripping of a control function of a functional element according to the invention. The device 100 is an electronic control unit (ECU) comprising: a non-volatile memory 5 rewritable or not, arranged to include an application program dedicating the ECU 100 to a particular use, for example the control of a system braking, - a microprocessor 3 capable of executing the program stored in the non-volatile memory 5 via an internal bus 2; the microprocessor 3 comprising the usual components necessary for executing a program, for example: an arithmetic and logic unit, a program counter, an instruction decoder, a multilevel stack, status registers as well as the microprogram necessary for the operation of the microprocessor; a volatile memory 6, for example of the RAM memory type, accessible for reading and writing at any time during the operation of the ECU 100 arranged so as to contain the data written by the application program during the operation of the ECU 100 ; input / output means 7 enabling the microprocessor 3 to communicate with an external tool 9, of the diagnostic tool type; the diagnostic tool 9 can be connected in different vehicle life situations such as for example at the edge of the assembly line, on a retouching board or after-sales; the input / output means 7 communicating by means of a communication line 8 of the serial link type, of the K line type, or else of the multiplexed data transmission bus type, such as for example a CAN (Controller Area Network) bus ; software or hardware means 4 known as a watchdog having an automatic down counter to be reloaded periodically to a maximum value by the program in the nonvolatile memory 5, so that if the microprocessor 3 does not reach any more to execute the program correctly, the instructions for reloading the watchdog means 4 are no longer executed, which then causes the countdown contents to be counted down to zero, leading to a reset of the ECU 100 and the program contained in the non memory. volatile 5 restarts.
Le microprocesseur 3 communique avec chacun des éléments de l'UCE décrits précédemment au moyen du bus interne 2. Selon un second mode de réalisation de l'invention, les mémoires 5 et 6 ainsi que le microprocesseur 3 sont remplacés par un composant de type ASIC (Application Specific Integrated Circuit), c'est-à-dire un circuit intégré électronique conçu spécialement pour une application particulière. The microprocessor 3 communicates with each of the elements of the ECU described above by means of the internal bus 2. According to a second embodiment of the invention, the memories 5 and 6 as well as the microprocessor 3 are replaced by an ASIC-type component. (Application Specific Integrated Circuit), that is, an electronic integrated circuit designed specifically for a particular application.
Lors de la connexion de l'outil de diagnostic 9, l'outil émet une requête de pilotage au moyen de la ligne de communication 8. A la réception de la requête de l'outil de diagnostic 9, la signature de l'outil est stockée à une adresse de la mémoire volatile 6 et les moyens d'entrée/sortie 7 indiquent au microprocesseur 3 de lancer une exécution de la routine de pilotage de l'organe fonctionnel. La routine de pilotage est exécutée uniquement lorsque le microprocesseur 3 a vérifié au préalable la présence de la signature de l'outil 9 à l'adresse prévue à cet effet de la mémoire volatile 6. La signature de l'outil est par exemple un code numérique propre à l'outil de diagnostique 9 ou à un groupe d'outils permettant à l'UCE de vérifier la présence d'un outil de diagnostic et/ou d'identifier l'outil connecté aux moyens d'entrée/sortie 7. La routine de pilotage se présente sous la forme d'un programme principal constitué d'une suite d'appels à des sous-programmes qui sont chacun dédiés à l'exécution d'un traitement ou pilotage particulier de courte durée. When the diagnostic tool 9 is connected, the tool sends a request for control by means of the communication line 8. On receipt of the request from the diagnostic tool 9, the signature of the tool is stored at an address of the volatile memory 6 and the input / output means 7 indicate to the microprocessor 3 to initiate an execution of the control routine of the functional unit. The control routine is executed only when the microprocessor 3 has previously verified the presence of the signature of the tool 9 at the address provided for this purpose of the volatile memory 6. The signature of the tool is for example a code digital device specific to the diagnostic tool 9 or a group of tools allowing the ECU to check the presence of a diagnostic tool and / or identify the tool connected to the input / output means 7. The driving routine is in the form of a main program consisting of a series of calls to subprograms which are each dedicated to the execution of a particular treatment or short-term piloting.
Le microprocesseur 3 exécute les instructions du programme principal de manière séquentielle. Il dispose pour cela d'un registre appelé compteur de programme qui indique à chaque instant la prochaine instruction à exécuter. The microprocessor 3 executes the instructions of the main program sequentially. It has for it a register called program counter which indicates at every moment the next instruction to be executed.
Chaque octet du programme est lu puis décodé afin de connaitre à quelle instruction il correspond. Le microprocesseur 3 exécute l'instruction et incrémente le compteur de programme pour qu'il pointe sur l'instruction suivante. Lorsque l'instruction correspond à l'appel d'un sous-programme, le microprocesseur 3 sauve l'adresse de l'instruction appelante sur la pile, avant l'exécution du sous-programme. On entend par pile, une structure de données, organisée en liste, dans laquelle les informations sont rangées dans une mémoire, les unes sur les autres, dans l'ordre où elles arrivent. Lorsque le sous-programme se termine, il rend le contrôle au programme principal en invitant le 10 microprocesseur 3 à lire l'adresse de l'instruction qui a provoqué l'exécution du sous-programme se trouvant au sommet de la pile. Le microprocesseur 3 exécute alors l'instruction suivante figurant après l'instruction récupérée sur la pile. De cette façon, les sous-15 programmes s'enchainent dans l'ordre jusqu'à la fin du programme principal. La figure 2 est un schéma fonctionnel d'un exemple de mise en oeuvre du procédé de protection contre le déclenchement inopportun d'une fonction de pilotage d'un 20 organe fonctionnel selon l'invention. Le procédé selon l'invention comporte : - une étape 11 de réception d'une requête de l'outil de diagnostic 9 ; - une étape 12 de recharge des moyens 4 chien de 25 garde ; - une étape 13 d'appel d'un sous-programme A testant la présence d'un outil de diagnostic 9 connecté : si le test n'est pas valide, le programme est stoppé ; - une étape 14 de recharge des moyens 4 chien de 30 garde ; - une étape 15 d'appel d'un sous-programme B de décodage des instructions de la routine et de chargement des instructions dans la mémoire volatile 6 ; - une étape 16 de recharge des moyens 4 chien de 35 garde ; - une étape 17 d'appel d'un sous-programme C d'exécution des instructions chargées dans la mémoire volatile 6 ; - une étape 18 de recharge des moyens 4 chien de garde ; une étape 19 d'appel d'un sous-programme D d'effacement des instructions chargées dans la mémoire volatile 6 ; - une étape 20 de recharge des moyens 4 chien de garde ; - une étape 21 d'appel d'un sous-programme E d'envoi d'une réponse positive à l'outil de diagnostique 10 indiquant le bon déroulement du programme. Le procédé selon l'invention comporte un premier niveau de sécurité contre le déclenchement inopportun de la routine de pilotage par la décomposition des séquences de pilotage en différentes phases de très courte durée et 15 entrecoupées périodiquement par une reprise de contrôle du programme principal afin de recharger les moyens 4 chien de garde. Un des critères de performances de cette solution consiste à minimiser au maximum le temps nécessaire aux 20 moyens 4 chien de garde pour détecter un problème ; le réglage de la valeur maximale chargée dans lesdits moyens 4 chien de garde est défini en fonction de la fréquence de la base de temps de l'UCE et de la durée maximale d'exécution d'un sous-programme. 25 Le procédé selon l'invention comporte un deuxième niveau de sécurité contre le déclenchement inopportun de la routine de pilotage consistant à stocker la routine la plus dangereuse, c'est-à-dire la routine agissant sur les actionneurs de l'organe fonctionnel, sous la forme d'une 30 routine encodée dans la mémoire non volatile 5. La routine est décodée puis chargée dans la mémoire volatile 6 par le sous-programme B, afin d'y être exécutée lors de l'exécution du sous-programme C par le microprocesseur 3. De cette façon, si le compteur de programme est amené à 35 pointer accidentellement une zone de la mémoire non volatile 5 contenant la routine encodée, le microprocesseur 3 sera dans l'incapacité d'interpréter les instructions de la routine encodée. Cette situation de blocage non dangereuse sera ainsi rapidement détectée par les moyens 4 chien de garde qui provoqueront une réinitialisation immédiate de l'UCE. Un sous-programme de nettoyage de la mémoire volatile 6 est exécuté à la fin du pilotage des actionneurs afin de se protéger contre un éventuel déroutement du programme vers une adresse de la mémoire volatile 6 contenant temporairement la routine décodée et survenant entre la fin du pilotage et la coupure de l'alimentation de l'UCE. Le type d'encodage n'est pas critique, puisque le but de l'encodage est uniquement de rendre illisible pour le microprocesseur 3 en logique câblée les instructions de la routine. Par exemple, une fonction logicielle de type inverseur est suffisante pour l'encodage et le décodage de la routine ; par exemple le 0 est remplacé par 1 et le 1 est remplacé par O. Dans les situations où une perturbation branche le compteur de programme sur un sous-programme en particulier, le microprocesseur 3 exécute le sous-programme puis tente de rendre le contrôle au programme principal. Pour cela, le microprocesseur 3 va lire l'instruction sur la dernière couche de la pile. Comme l'adresse de l'instruction n'a pas été sauvée sur la pile, le microprocesseur 3 récupère une valeur aléatoire et le microprocesseur 3 va tenter vainement d'interpréter cette instruction, ce qui entraine une situation de blocage dans l'exécution du programme. Les moyens 4 chien de garde n'étant plus rechargés, ils provoquent une réinitialisation immédiate de l'UCE. Cette réinitialisation de l'UCE permet ainsi de sécuriser le dispositif et de maitriser le temps de réinitialisation de l'UCE, réalisé dans les plus brefs délais. Each byte of the program is read and decoded in order to know which instruction it corresponds to. Microprocessor 3 executes the instruction and increments the program counter to point to the next instruction. When the instruction corresponds to the call of a subroutine, the microprocessor 3 saves the address of the calling instruction on the stack, before the execution of the subroutine. By stack, is meant a data structure, organized in a list, in which the information is stored in a memory, one on the other, in the order in which they arrive. When the routine ends, it returns the control to the main program by inviting the microprocessor 3 to read the address of the instruction which caused the subroutine at the top of the stack to be executed. The microprocessor 3 then executes the following instruction appearing after the instruction retrieved from the stack. In this way, the sub-programs are sequenced in sequence until the end of the main program. FIG. 2 is a block diagram of an exemplary implementation of the method of protection against the undesirable tripping of a control function of a functional unit according to the invention. The method according to the invention comprises: a step 11 of receiving a request from the diagnostic tool 9; a step 12 of recharging means 4 guard dog; a step 13 of calling a subroutine A testing the presence of a connected diagnostic tool 9: if the test is not valid, the program is stopped; a step 14 of recharging means 4 guard dog; a step 15 of calling a routine B of decoding the instructions of the routine and loading instructions into the volatile memory 6; a step 16 of recharging means 4 guard dog; a step 17 of calling a routine C of execution of the instructions loaded into the volatile memory 6; a step 18 of charging the means 4 watchdog; a step 19 of calling an erase routine D instructions loaded into the volatile memory 6; a step 20 of charging means 4 watchdog; a step 21 of calling a subroutine E sending a positive response to the diagnostic tool 10 indicating the smooth running of the program. The method according to the invention comprises a first level of security against the untimely triggering of the piloting routine by the decomposition of the piloting sequences into very short-lived phases and interrupted periodically by a control restart of the main program in order to recharge. the means 4 watchdog. One of the performance criteria of this solution is to minimize the time required for the watchdog means 4 to detect a problem; the setting of the maximum value loaded into said watchdog means 4 is defined according to the frequency of the time base of the ECU and the maximum duration of execution of a routine. The method according to the invention comprises a second level of security against the improper activation of the control routine consisting of storing the most dangerous routine, that is to say the routine acting on the actuators of the functional organ, in the form of a routine encoded in the nonvolatile memory 5. The routine is decoded and then loaded into the volatile memory 6 by the routine B, in order to be executed during the execution of the routine C 3. In this way, if the program counter accidentally points to an area of the nonvolatile memory 5 containing the encoded routine, the microprocessor 3 will be unable to interpret the instructions of the encoded routine. . This non-dangerous blocking situation will thus be rapidly detected by the watchdog means which will cause an immediate reset of the ECU. A subroutine for cleaning the volatile memory 6 is executed at the end of the piloting of the actuators in order to protect against a possible diversion of the program to an address of the volatile memory 6 temporarily containing the decoded routine and occurring between the end of the piloting and cutting the power supply of the ECU. The type of encoding is not critical, since the purpose of the encoding is only to make the instructions of the routine unreadable for the microprocessor 3 in wired logic. For example, an inverter-type software function is sufficient for the encoding and decoding of the routine; for example, the 0 is replaced by 1 and the 1 is replaced by 0. In the situations where a disturbance connects the program counter to a particular routine, the microprocessor 3 executes the routine and then tries to make the control main program. For this, the microprocessor 3 will read the instruction on the last layer of the stack. Since the address of the instruction has not been saved on the stack, the microprocessor 3 recovers a random value and the microprocessor 3 will attempt to interpret this instruction in vain, which leads to a blocking situation in the execution of the instruction. program. The means 4 watchdog is no longer recharged, they cause an immediate reset of the ECU. This reset of the ECU thus makes it possible to secure the device and to master the reset time of the ECU, carried out as quickly as possible.
Le procédé permet ainsi d'éviter un déclenchement inopportun d'une routine de pilotage d'un organe fonctionnel quelle que soit la situation générée par une perturbation extérieure et quels que soient les branchements intempestifs du compteur de programme générés par ces perturbation extérieures. Les différents branchements possibles interférant avec le bon déroulement du programme sont illustrés sur la figure 2 illustrant les différentes étapes du procédé selon l'invention. Ainsi lorsqu'une perturbation exécute le programme au niveau des branchements P1 ou P2, le programme lance le traitement de la demande de pilotage des actionneurs, de façon similaire à la requête de l'outil de diagnostique 9, le test de vérification de la présence dans la mémoire volatile 6 de la présence de la signature outil échoue car aucun outil de diagnostique n'est branché. Le traitement du programme principal s'achève alors sans effet sur les actionneurs. Lorsque qu'une perturbation exécute le programme au niveau d'un branchement P3, le programme recharge les moyens 4 puis exécute le sous-programme B de décodage des instructions de la routine encodée et de charge des instructions décodées sur la mémoire volatile 6 de l'UCE ; l'exécution du sous-programme B n'agissant pas en tant que tel sur les actionneurs. Au moment de rendre le contrôle au programme principal, le microprocesseur 3 récupère une valeur d'adresse aléatoire présente sur la pile qui ne correspond pas à l'instruction précédente ce qui entraine une situation de blocage dans le déroulement de programme principal. Les moyens 4 chien de garde n'étant pas rechargés, ils réinitialisent l'UCE en effaçant automatiquement les instructions décodées par l'exécution du sous-programme B et chargées sur la mémoire volatile 6. Une perturbation exécutant le programme au niveau d'un branchement P4 intervient après le chargement des moyens 4 chien de garde. Le comportement de l'UCE sera identique au comportement décrit précédemment, l'UCE est réinitialisée. Cependant, les moyens 4 chien de garde n'étant pas rechargés à l'étape 14, le temps de réaction sera réduit par rapport à une perturbation exécutant le programme au niveau du branchement P3. Une perturbation exécutant le programme au niveau d'un branchement P5 recharge les moyens 4 chien de garde puis exécute le sous-programme C d'exécution des instructions présentes dans la mémoire volatile 6. Cependant, la routine de pilotage n'ayant pas été décodée et chargée dans la mémoire volatile 6, le microprocesseur 3 lit des instructions composées de valeurs aléatoires ne pouvant pas être interpréter correctement, ce qui provoque une situation de blocage dans le déroulement de programme principal. Les moyens 4 chien de garde n'étant pas rechargés, ils réinitialisent l'UCE. Une perturbation exécutant le programme au niveau d'un branchement P6 intervient après le chargement des moyens 4 chien de garde. Le comportement de l'UCE sera identique au comportement décrit précédemment, l'UCE est réinitialisée. Cependant, les moyens 4 chien de garde n'étant pas rechargés à l'étape 16, le temps de réaction sera réduit par rapport à une perturbation exécutant le programme au niveau du branchement P5. Une perturbation exécutant le programme au niveau d'un branchement P7 recharge les moyens 4 chien de garde puis exécute le sous-programme D de nettoyage de la mémoire volatile 6, sans effet sur les actionneurs. Au moment de rendre le contrôle au programme principal, le microprocesseur 3 récupère sur la pile une valeur d'adresse aléatoire ne correspondant pas à l'instruction précédente, le sous-programme D n'ayant pas été appelé par le programme principal, ce qui entraine une situation de blocage dans le déroulement de programme principal. Les moyens 4 chien de garde n'étant pas rechargés, ils réinitialisent l'UCE. Une perturbation exécutant le programme au niveau d'un branchement P8 intervient après le chargement des moyens 4 chien de garde. Le comportement de l'UCE sera identique au comportement décrit précédemment, l'UCE est réinitialisée. Cependant, les moyens 4 chien de garde n'étant pas rechargés à l'étape 18, le temps de réaction sera réduit par rapport à une perturbation exécutant le programme au niveau du branchement P7. Une perturbation exécutant le programme au niveau d'un branchement P9 exécute le sous-programme E d'envoi d'une réponse positive à l'outil de diagnostic 9. L'exécution du sous-programme E est sans effet car aucun outil de diagnostique 9 n'est connecté au dispositif 100. Au moment de rendre le contrôle au programme principal, le microprocesseur 3 récupère sur la pile une valeur d'adresse aléatoire ne correspondant pas à l'instruction précédente, le sous-programme E n'ayant pas été appelé par le programme principal, ce qui entraine une situation de blocage dans le déroulement de programme principal. The method thus makes it possible to avoid an untimely triggering of a control routine of a functional organ whatever the situation generated by an external disturbance and whatever the unwanted connections of the program counter generated by these external disturbances. The various possible connections interfering with the smooth running of the program are illustrated in FIG. 2 illustrating the various steps of the method according to the invention. Thus, when a disturbance executes the program at the connections P1 or P2, the program initiates the processing of the request for control of the actuators, similar to the request of the diagnostic tool 9, the presence verification test. in volatile memory 6 the presence of the signature tool fails because no diagnostic tool is plugged. The processing of the main program then ends without any effect on the actuators. When a disturbance executes the program at a branch P3, the program reloads the means 4 and then executes the routine B decoding instructions of the encoded routine and load instructions decoded on the volatile memory 6 of the UCE; the execution of the subroutine B does not act as such on the actuators. At the time of returning the control to the main program, the microprocessor 3 recovers a random address value present on the stack that does not correspond to the previous instruction which causes a blocking situation in the main program flow. The watchdog means 4 not being reloaded, they reset the ECU by automatically erasing the instructions decoded by the execution of the routine B and loaded on the volatile memory 6. A disturbance executing the program at a level of connection P4 comes after the loading of the means 4 watchdog. The behavior of the ECU will be identical to the behavior described above, the ECU is reset. However, the watchdog means 4 not being reloaded in step 14, the reaction time will be reduced compared to a disturbance executing the program at the branch P3. A disturbance executing the program at a branch P5 reloads the watchdog means 4 and then executes the routine C for executing the instructions present in the volatile memory 6. However, the control routine has not been decoded. and loaded into the volatile memory 6, the microprocessor 3 reads instructions composed of random values that can not be interpreted correctly, which causes a blocking situation in the main program flow. The means 4 watchdog not being recharged, they reset the ECU. A disturbance executing the program at a branch P6 occurs after the loading of the watchdog means 4. The behavior of the ECU will be identical to the behavior described above, the ECU is reset. However, the watchdog means 4 not being reloaded in step 16, the reaction time will be reduced compared to a perturbation executing the program at the branch P5. A disturbance executing the program at a branch P7 reloads the watchdog means 4 and then executes the routine D of cleaning the volatile memory 6, without effect on the actuators. When rendering the control to the main program, the microprocessor 3 retrieves from the stack a random address value that does not correspond to the preceding instruction, the routine D not having been called by the main program, which causes a blocking situation in the main program flow. The means 4 watchdog not being recharged, they reset the ECU. A disturbance executing the program at a branch P8 occurs after the loading of the means 4 watchdog. The behavior of the ECU will be identical to the behavior described above, the ECU is reset. However, since the watchdog means 4 is not reloaded in step 18, the reaction time will be reduced with respect to a disturbance executing the program at the P7 branch. A disturbance executing the program at a branch P9 executes the subroutine E to send a positive response to the diagnostic tool 9. The execution of the routine E has no effect because no diagnostic tool 9 is connected to the device 100. When rendering the control to the main program, the microprocessor 3 retrieves from the stack a random address value that does not correspond to the preceding instruction, the routine E not having been called by the main program, resulting in a deadlock in the main program flow.
Les moyens 4 chien de garde n'étant pas rechargés, ils réinitialisent l'UCE. Une perturbation exécutant le programme au niveau d'un branchement P10 intervient après le chargement des moyens 4 chien de garde. Le comportement de l'UCE sera identique au comportement décrit précédemment, l'UCE est réinitialisée. Cependant, les moyens 4 chien de garde n'étant pas rechargés à l'étape 20, le temps de réaction sera réduit par rapport à une perturbation exécutant le programme au niveau du branchement P9. The means 4 watchdog not being recharged, they reset the ECU. A disturbance executing the program at a branch P10 occurs after the loading of the means 4 watchdog. The behavior of the ECU will be identical to the behavior described above, the ECU is reset. However, the watchdog means 4 not being reloaded in step 20, the reaction time will be reduced compared to a disturbance executing the program at the branch P9.
Enfin si une perturbation exécute le compteur de programme au niveau d'une adresse se trouvant au milieu de l'un des sous-programmes A, B, C, D, E, alors soit l'octet lu par le microprocesseur 3 correspond à une instruction interprétable, auquel cas on se retrouve dans l'une des situations décrites précédemment, de P1 à P10 ; soit l'octet lu par le microprocesseur 3 ne correspond à aucune instruction interprétable, alors le blocage du programme est détecté par les moyens 4 chien de garde provoquant une réinitialisation de l'UCE. Finally, if a disturbance executes the program counter at an address located in the middle of one of the subroutines A, B, C, D, E, then either the byte read by the microprocessor 3 corresponds to a interpretable instruction, in which case we find ourselves in one of the situations described above, from P1 to P10; or the byte read by the microprocessor 3 does not correspond to any interpretable instruction, so the blocking of the program is detected by the means 4 watchdog causing a reset of the ECU.
Ainsi, le procédé de protection contre le déclenchement inopportun d'une fonction de pilotage selon l'invention permet d'améliorer la protection contre le déclenchement en clientèle de la routine de pilotage d'un organe fonctionnel tel que par exemple des actionneurs, et dont le déclenchement est normalement réservé uniquement aux opérations de montage et aux opérations de maintenance en après-vente. Thus, the method of protection against the undesirable tripping of a control function according to the invention makes it possible to improve the protection against tripping of the control routine of a functional unit such as, for example, actuators, whose tripping is normally reserved only for assembly operations and after-sales maintenance operations.
Le procédé selon l'invention permet également de s'affranchir d'un déploiement coûteux de fichiers comportant des routines de pilotage dans le réseau après-vente du constructeur. Quel que soit l'endroit du programme où la perturbation active le compteur de programme, le procédé selon l'invention permet de garantir l'inactivation des actionneurs en clientèle ainsi qu'une restitution rapide de la disponibilité du dispositif. Le procédé selon l'invention assure une protection contre des perturbations d'origines extérieures ainsi que contre des déficiences du programme interne, comme par exemple un événement imprévu ne pouvant pas être pris correctement en compte par le programme. Les autres avantages de l'invention sont notamment les suivants : amélioration de l'image de marque du véhicule par l'augmentation de la sécurité ; amélioration de la qualité perçue par le client ; niveau de protection élevé permettant l'obtention de certification d'organismes d'homologation ; réduction des coûts de réalisation. The method according to the invention also makes it possible to dispense with an expensive deployment of files comprising control routines in the manufacturer's after-sales network. Whatever the place of the program in which the disturbance activates the program counter, the method according to the invention makes it possible to guarantee the inactivation of the actuators in the clientele as well as a rapid restitution of the availability of the device. The method according to the invention provides protection against disturbances from outside sources as well as against deficiencies in the internal program, such as for example an unforeseen event that can not be correctly taken into account by the program. Other advantages of the invention include the following: improving the brand image of the vehicle by increasing security; improvement of the quality perceived by the client; high level of protection for obtaining certification from certification bodies; reduction of implementation costs.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0857932A FR2938950B1 (en) | 2008-11-24 | 2008-11-24 | METHOD OF PROTECTING AGAINST THE INOPPORTUN TRIPPING OF A FUNCTIONAL ORGAN FUNCTIONING FUNCTION OF A MOTOR VEHICLE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0857932A FR2938950B1 (en) | 2008-11-24 | 2008-11-24 | METHOD OF PROTECTING AGAINST THE INOPPORTUN TRIPPING OF A FUNCTIONAL ORGAN FUNCTIONING FUNCTION OF A MOTOR VEHICLE |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2938950A1 true FR2938950A1 (en) | 2010-05-28 |
FR2938950B1 FR2938950B1 (en) | 2011-01-14 |
Family
ID=40792832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0857932A Expired - Fee Related FR2938950B1 (en) | 2008-11-24 | 2008-11-24 | METHOD OF PROTECTING AGAINST THE INOPPORTUN TRIPPING OF A FUNCTIONAL ORGAN FUNCTIONING FUNCTION OF A MOTOR VEHICLE |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2938950B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0682315A1 (en) * | 1994-05-11 | 1995-11-15 | Automobiles Peugeot | Method of unlocking access to a computer using a remote file loading unit |
US20030018905A1 (en) * | 2001-05-31 | 2003-01-23 | Klaus Schneider | Method for activating or deactivating data stored in a memory arrangement of a microcomputer system |
US20060053283A1 (en) * | 2000-05-09 | 2006-03-09 | Microsoft Corporation | Restricted software and hardware usage on a computer |
FR2877750A1 (en) * | 2004-11-08 | 2006-05-12 | Peugeot Citroen Automobiles Sa | Control function e.g. automatic locking function, activation/deactivation method for vehicle, involves storing tool signature and inhibition function code in volatile memory and default memory, respectively |
US20080104701A1 (en) * | 2006-05-22 | 2008-05-01 | Eric Peacock | System and method for secure operating system boot |
-
2008
- 2008-11-24 FR FR0857932A patent/FR2938950B1/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0682315A1 (en) * | 1994-05-11 | 1995-11-15 | Automobiles Peugeot | Method of unlocking access to a computer using a remote file loading unit |
US20060053283A1 (en) * | 2000-05-09 | 2006-03-09 | Microsoft Corporation | Restricted software and hardware usage on a computer |
US20030018905A1 (en) * | 2001-05-31 | 2003-01-23 | Klaus Schneider | Method for activating or deactivating data stored in a memory arrangement of a microcomputer system |
FR2877750A1 (en) * | 2004-11-08 | 2006-05-12 | Peugeot Citroen Automobiles Sa | Control function e.g. automatic locking function, activation/deactivation method for vehicle, involves storing tool signature and inhibition function code in volatile memory and default memory, respectively |
US20080104701A1 (en) * | 2006-05-22 | 2008-05-01 | Eric Peacock | System and method for secure operating system boot |
Also Published As
Publication number | Publication date |
---|---|
FR2938950B1 (en) | 2011-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6314351B1 (en) | Auto PC firewall | |
EP1960243B1 (en) | Method for controlling the operating condition of a vehicle based on an onboard diagnostic strategy defining different types of failures | |
EP3588359B1 (en) | Method for determining the integrity of an application code, corresponding device and computer program product | |
KR102002517B1 (en) | Method and system for configuration of ecu security | |
WO2017036584A1 (en) | Method for detecting an uncorrectable error in a non-volatile memory of a microcontroller | |
KR20060043374A (en) | Electronic control system and method having microcomputer monitoring prohibiting function | |
FR2938950A1 (en) | Method for protecting against ill-timed triggering of control function of functional unit i.e. actuator of brake system, of motor vehicle, involves loading decoded instructions in volatile memory, and executing instructions in memory | |
CN213186571U (en) | ECU security upgrading system applied to vehicle-mounted network | |
US20060107133A1 (en) | Tampering-protected microprocessor system and operating procedure for same | |
CN113302092B (en) | Vehicle-mounted control device, vehicle control method, and vehicle control system | |
WO2012080139A1 (en) | Dynamic method of controlling the integrity of the execution of an excutable code | |
KR20050075768A (en) | Method for the secure checking of a memory region of a microcontroller in a control device and control device with a protected microcontroller | |
WO2017021659A1 (en) | Hands-free access and starting system for a motor vehicle | |
FR2943153A1 (en) | AIRCRAFT COMPRISING MEANS OF DESTRUCTION OF DATA | |
EP3317800B1 (en) | Method of managing profiles in a secure element | |
WO2023083703A1 (en) | Method and device for monitoring and controlling a vehicle engine | |
EP4335079A1 (en) | Method and device for protecting against an intrusion on a data bus of a vehicle | |
EP4281887A1 (en) | Method and device for controlling access to a databus on board a vehicle by external diagnostic computing means | |
FR2877750A1 (en) | Control function e.g. automatic locking function, activation/deactivation method for vehicle, involves storing tool signature and inhibition function code in volatile memory and default memory, respectively | |
WO2016138989A1 (en) | Microcontroller with a diagnosis module and method for accessing said module of said microcontroller | |
FR2776103A1 (en) | SAFETY ASSEMBLY, PARTICULARLY FOR ELECTROSENSITIVE PROTECTION EQUIPMENT | |
US7313703B2 (en) | Method for protecting a microcomputer system against manipulation of data stored in a storage assembly | |
WO2022168453A1 (en) | Vehicle control system, method for controlling vehicle control system, and program | |
WO2022189610A1 (en) | Method for preventing the unintentional resetting of a wheel unit | |
FR3110005A1 (en) | Secure boot controller for an embedded system, embedded system and associated secure boot method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20130731 |