Brevet FR2740235A1 — publié le 19970425

La présente invention concerne un dispositif de contrôle du fonctionnement d'un système électronique embarqué à bord d'un véhicule automobile. Plus particulièrement, la présente invention concerne un dispositif du type comportant une unité de traitement d'informations à base de micro-contrôleur associé à des moyens de mémorisation comportant des zones de stockage de codes correspondant à différents programmes exécutables par le micro-contrôleur et, pour chaque programme exécutable, au moins une zone autorisée de stockage de données accessible en écriture et/ou en lecture par le micro-controleur. Ce type de systèmes électroniques a été développé dans l'état de la technique pour permettre l'utilisation d'un nombre limité d'unités de traitement d'informations remplissant différentes fonctions de contrôle de différents organes fonctionnels du véhicule, tels que par exemple les moyens de suspension de celui-ci, les moyens de contrôle du fonctionnement du moteur de celui-ci, etc... Cependant, le développement important de ces systèmes embarqués fait considérablement croître la taille du logiciel correspondant, qui devient ainsi un constituant critique dans ces systèmes. De plus, dans de nombreuses applications, ayant des niveaux de criticité différents, plusieurs fonctions sont amenées à cohabiter sur un même support physique, c'est-à-dire sur une même unité de traitement d'informations. Or, les unités de ce type peuvent être perturbées par l'environnement du véhicule, c'est-à-dire par exemple par des champs électriques ou des champs électromagnétiques, la température, l'humidité de l'air, ou encore des secousses liées à des inégalités de la route, etc.... Différentes sécurités doivent alors être envisagées et ce d'autant plus que certaines fonctions, comme par exemple celle liée au freinage, sont plus critiques que d'autres, comme par exemple celle liée à l'éclairage intérieur du véhicule. Ces sécurités doivent mettre en oeuvre des techniques de sécurisation du fonctionnement du système. Cependant, toutes les techniques connues de tolérances aux fautes logicielles par diversification et de segmentation mémoire par contrôleur MMU (Memory Management Unit) ne sont pas utilisables. En effet, ces techniques, efficaces lorsque l'application est répartie sur des supports physiques différents, ce qui est le cas par exemple des systèmes embarqués de l'avionique, ne sont pas adaptées à la problématique des véhicules automobiles car la contrainte de coût est beaucoup plus forte. Du fait de cette forte contrainte de coût, les systèmes embarqués à bord des véhicules automobiles doivent être du type monoprocesseur. Une solution envisageable est alors le VCP (vital coded processor) utilisé dans le domaine ferroviaire. Cependant, cette approche basée sur un concept de redondance purement informationnelle n'est pas adaptée aux applications automobiles. En effet, l'introduction d'un code arithmétique pour chaque donnée mémoire est beaucoup trop contraignante aujourd'hui, en terme de place mémoire et par conséquent en terme de coût. Cette technique d'analyse de signature utilisée par le VCP détecte les erreurs de séquencements et les erreurs de mémorisation. L'utilisation de cette technique impose alors un programme déterministe fonctionnant par cycle au cours duquel la signature globale, calculée en ligne, est comparée à une signature de référence. Cette technique d'analyse de signature est efficace lorsque le programme comporte peu de boucles. En effet, dans le cas où il existe des boucles, des sauts, ou encore des interruptions etc..., il est nécessaire de rajouter des signatures d'ajustement, indispensables pour obtenir une invariance sur la signature globale. Or, beaucoup d'applications automobiles, comme les systèmes de multiplexage par exemple, utilisent de nombreuses manipulations de données de type bits, ce qui entraîne une utilisation considérable d'instructions de type "test et branchement". L'utilisation de la technique d'analyse de signature dans ces conditions nécessite alors d incorporer un très grand nombre de signatures d'ajustement qui consomment une place mémoire importante. De plus, l'utilisation de ces techniques nécessite l'utilisation d'outils spécifiques et en particulier d'un logiciel pour le calcul des signatures de référence. Toutes les contraintes spécifiques au secteur automobile rendent dès lors ce type de mécanismes très difficile à implanter et à gérer pour des systèmes tels que le contrôle du fonctionnement d'un moteur, le contrôle du fonctionnement d'une boîte de vitesse automatique ou encore le contrôle du fonctionnement d'un calculateur de multiplexage carrosserie, etc..... La cohabitation dans une même unité de traitement d'informations de fonctions avec des niveaux de criticité différents rend d'autant plus difficile la maîtrise de la sûreté de fonctionnement de ces systèmes embarqués. De ce fait, il est nécessaire de développer un dispositif de contrôle spécifique pour le test en ligne qui permet de résoudre les différents problèmes évoqués précédemment. A cet effet, l'invention a pour objet un dispositif de contrôle du fonctionnement d'un système électronique embarqué à bord d'un véhicule automobile, du type comportant une unité de traitement d'informations à base de micro-contrôleur associé à des moyens de mémorisation comportant des zones de stockage de codes correspondant à différents programmes exécutables par le micro-contrôleur et pour chaque programme exécutable, au moins une zone de stockage de données accessible en écriture et/ou en lecture par le micro-contrôleur, caractérisé en ce qu'il comporte des moyens de contrôle en dynamique des accès par le micro-contrôleur aux zones de stockage pour engendrer un signal d'erreur en direction de moyens de traitement d'erreurs, en cas de tentative d'accès ou d' accès du micro-contrôleur à des zones non-autorisées. Les moyens de contrôle peuvent en outre être agencés pour valider ou non l'accès à une zone de stockage. Avantageusement, les moyens de contrôle comportent des moyens de comparaison d'informations d'accès à des informations de référence prédéterminées associées aux zones de stockage. L'invention sera mieux comprise à l'aide de la description qui va suivre donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés sur lesquels - la Fig. 1 représente un schéma synoptique illustrant la structure générale d'une unité de traitement d'informations - la Fig. 2 illustre de façon générale un schéma synoptique montrant l'implantation d'un dispositif de contrôle selon l'invention; - la Fig. 3 illustre les différents accès dans un tel dispositif; - la Fig. 4 représente un schéma synoptique illustrant le fonctionnement d'un tel dispositif; - la Fig. 5 represente un tableau illustrant un exemple de réalisation d'un descripteur utilisé dans un dispositif de contrôle selon l'invention; et - la Fig. 6 représente un schéma synoptique illustrant les différents éléments entrant dans la constitution d'un dispositif de contrôle selon l'invention. Ainsi qu'on peut le voir sur les Figs. 1, 2 et 3, un dispositif de contrôle selon l'invention permet de contrôler le fonctionnement d'un système électronique embarqué à bord d'un véhicule automobile, qui comporte une unité de traitement d'informations désignée par la référence générale 1 à base de micro-contrôleur désigné par la référence générale 2 associé à des moyens de mémorisation désignés par la référence générale 3. Ces moyens de mémorisation comportent des zones de stockage de codes correspondant à différents programmes exécutables par le micro-contrôleur et pour chaque programme exécutable, au moins une zone de stockage de données, accessible en écriture et/ou en lecture par le micro-contrôleur. Les zones de stockage de codes correspondant aux différents programmes exécutables par le micro-contrôleur sont désignés par la référence générale 4 sur la Fig. 3, tandis que les zones de stockage des données accessibles en écriture et/ou en lecture par ce micro-contrôleur sont désignées par la référence générale 5 sur cette figure. C'est ainsi qu'une zone de programme A a accès à deux zones de stockage de données Al et A2, tandis qu'une zone de programme B a accès à deux zones de stockage de données B1 et B2. Selon l'invention, le dispositif de contrôle comporte des moyens de contrôle en dynamique des accès par le micro-contrôleur aux zones de stockage de codes et de données, pour engendrer un signal d'erreur en direction de moyens de traitement d'erreurs, en cas de tentative d'accès ou d'accès du micro-contrôleur à des zones nonautorisées. Dans l'exemple décrit ici, les moyens de contrôle sont en outre agencés pour valider ou non les accès aux zones de données. Sur la figure 2, ces moyens de contrôle sont appelés CAM (Contrôleur d'Accès Mémoire) et désignés par la référence générale 6 et comprennent par exemple une zone de descripteur désignée par la référence générale 7 sur la Fig. 3, qui sera décrite plus en détail par la suite, tandis que les moyens de traitement d'erreurs sont désignés par la référence générale 8 sur la Fig. 2. Ce dispositif permet alors par comparaison d'informations d'accès à des informations de référence (descripteur) d'assurer une protection mémoire entre les différentes zones de codes correspondant à des logiciels qui ont des niveaux de criticité différents. En effet, les principaux risques inhérents à la cohabitation de plusieurs logiciels sur un même support concernent l'altération illicite d'informations utilisées par un logiciel critique ou l'activation illicite d'une partie de son code à partir d'un logiciel non critique. Le principe de prévention mis en oeuvre par le présent dispositif repose sur l'utilisation de clés d'accès à des zones mémoire. Ainsi, à chaque zone de code programme définie, deux zones mémoire spécifiques sont accessibles en lecture et/ou en écriture. Ceci permet ainsi de confiner des zones d'accès en fonction de la criticité d'un logiciel. La vérification des droits d'accès est alors effectuée en dynamique par le dispositif selon l'invention qui engendre une alarme dès que le logiciel exécuté n'est pas ou n'est plus dans la zone prédéfinie ou qu'une tentative d'accès à une zone mémoire interdite est détectée. Ce dispositif est avant tout un dispositif de surveillance et l'utilisation de ce dispositif n'est pas permanente mais s' effectue à la demande de manière à contrôler l'exécution de certaines zones de code. Ce dispositif permet alors de compléter efficacement les mécanismes déjà connus dans l'état de la technique, tels que les auto-tests ; etc... Afin d'optimiser les ressources matérielles du système, une seule clé, c'est à dire un descripteur unique, peut être utilisée à la fois. L'ensemble des descripteurs nécessaires à l'utilisation et à la protection des zones mémoire est implanté de façon logicielle dans le dispositif. Chaque structure de données est protégée par l'adjonction d'un code de compaction qui représente sa signature propre. La structure de données est transférée vers l'unité de traitement lors d'une demande d'utilisation du dispositif. Les zones de protection peuvent ainsi être allouées dynamiquement en fonction des besoins des ressources mémoire. Sur la base du principe représenté sur la Fig. 3, la Fig. 4 représente une première structure fonctionnelle générale du dispositif de contrôle selon l'invention. Trois blocs fonctionnels principaux peuvent être discernés. Le premier bloc est un bloc de gestion désigné par la référence générale 9 qui est activé lors de la réception d'un accès. Lorsqu'il s'agit d'un accès au dispositif de contrôle, ce bloc de gestion 9 transfère la donnée reçue vers un bloc d'analyse et de calcul de signature désigné par la référence générale 10. Ce dernier met en forme le descripteur reçu et calcule en ligne la signature attendue. Si la signature n'est pas correcte, alors une erreur est engendrée. Lorsque l'accès concerne une zone programme, chaque adresse d'instruction est positionnée dans adr-Prg. De la même façon, chaque demande d'accès à une zone de variables est positionnée dans adr-var. Le bloc de gestion 9 engendre le signal ACTIVE qui vérifie en direct la demande d'accès. Si la demande d'accès à une zone de données est correcte, un bloc VALIDE 11 autorise l'accès, sinon l'accès est bloqué et/ou une erreur est engendrée en direction des moyens de traitement d'erreurs. Si la demande d'accès pour l'exécution d'une zone programme est incorrecte, alors une erreur est engendrée en direction des moyens de traitement d'erreurs. On conçoit alors que les trois entités concernées par le dispositif de contrôle sont le micro-contrôleur 2, les moyens de mémorisation 3 et les moyens de traitement d'erreurs 8. La variable caractéristique du micro-contrôleur est l'information ACCES. Celle-ci est émise par le microcontrôleur lorsqu'il désire accéder à l'un de ses périphériques. La variable caractéristique des moyens de mémorisation est le signal correspondant à la validation de l'accès mémoire. Enfin, la variable qui caractérise les moyens de traitement d'erreurs est la variable ERREUR engendrée par le dispositif pour indiquer un accès non autorisé aux moyens de mémorisation (interruption et levée d'un drapeau (flag)). Le micro-contrôleur est couplé au dispositif de contrôle des accès mémoire par l'intermédiaire de la variable ACCES. Cette information comporte plusieurs champs qui seront définis plus en détail par la suite. Physiquement, ces champs sont transmis par les bus de données, d'adresse et de contrôle du micro-contrôleur. Le comportement des moyens de mémorisation est purement passif et ceux-ci reçoivent ou émettent des données à la demande du micro-contrôleur. Ceci est également le cas des moyens de traitement des erreurs dont le rôle est de réagir au signal d'erreur. En pratique, les moyens de traitement d'erreurs doivent être vus comme un mécanisme de gestion des interruptions du micro-contrôleur. A l'occurrence d'une erreur une interruption est engendrée, ce qui provoque le déroutement du fonctionnement de ce micro-contrôleur vers un programme spécifique de façon classique. On conçoit alors que le rôle du dispositif de contrôle est de filtrer les accès du micro-contrôleur aux moyens de mémorisation. Ce dispositif a tout pouvoir pour censurer un accès mémoire lorsqu'il est interdit. La validation de l'accès s' effectue par comparaison des droits d'accès à une référence appelée précédemment descripteur. Le mode de chargement de cette référence importe peu pour la compréhension du fonctionnement du dispositif, mais dans ce cas on pourra noter qu'il s'effectue par écriture successive dans un espace mémoire du dispositif, réservé au stockage des informations de descripteur. En fait, les moyens de contrôle comportent des moyens de comparaison d'informations d'accès à des informations de référence prédéterminées associées aux zones de stockage. Ces informations de référence sont stockées de préférence dans des moyens de mémorisation des moyens de contrôle et les informations d'accès et les informations de référence peuvent être des adresses d'accès aux zones de stockage. Trois types de comparaison peuvent alors être mis en oeuvre et évalués. Le premier type de test concerne la validation de la sortie, c'est-à-dire de l'accès, si la valeur d'entrée est comprise dans un intervalle autorisé, c'est-à dire entre une référence minimum (adresse basse) et une référence maximum (adresse haute). Le format du descripteur pour une adresse (programme ou variable) est alors de deux mots par exemple de 16 bits comportant une adresse haute et une adresse basse. Le second type de test concerne la validation de la sortie si la valeur d'entrée est comprise entre une référence minimum (adresse basse) et cette référence minimum additionnée d'un décalage variable (adresse basse plus décalage). Le format du descripteur pour une adresse est alors d'un mot de 16 bits par exemple (adresse basse) et un mot de 8 bits (décalage). Le troisième type de test concerne la validation de la sortie si la valeur d'entrée est comprise entre une référence minimum et cette référence minimum additionnée d'un décalage fixe. Le format du descripteur pour une adresse est alors d'un mot de 16 bits (adresse basse) tandis que le format du décalage est fixé une fois pour toute. Deux critères guident le choix de l'un de ces trois types de test, ces critères étant l'encombrement et la rapidité. Plus l'encombrement est faible, plus grande est la probabilité d'intégrer toutes les fonctions dans un même composant. Plus un algorithme est rapide, meilleures sont les chances d'obtenir un résultat probant dans une application où le facteur temps est crucial. I1 est à noter qu'une méthode favorise souvent l'un au détriment de 1 'autre. En plus des informations de définition des zones d'adresse, le descripteur comporte également des informations pour la définition des droits d'accès aux zones de variables, celles-ci pouvant être les quatre bits de poids faibles pour les droits d'accès de la zone de variables 1 et les quatre bits de poids forts pour les droits d'accès de la zone de variables 2 et une information de somme de contrôle "Checksum" pour la vérification de la validité du descripteur après son chargement. Au vu de ceci, les deux derniers types de test décrits précédemment présentent l'inconvénient de nécessiter une addition. Or, cette opération est très consommatrice en temps et en cellules. Le premier type de test établit un bon compromis entre les deux critères, le pourcentage d'occupation du circuit est plus faible et le temps de réaction est tout à fait correct. I1 ne faut toutefois pas oublier son inconvénient principal qui concerne le fait que le descripteur présente globalement un encombrement plus important. Par conséquent, si il est modifié très souvent, le temps du micro-contrôleur consacré à l'écriture des champs augmentera considérablement. Le format retenu pour le descripteur est alors par exemple celui donné dans le tableau de la Fig. 5. Une zone programme (Prog) ou variable (Var 1 ou Var 2) est délimitée par son adresse basse et son adresse haute. Celles-ci comportant deux octets par exemple, les poids forts (PFO) et les poids faibles (PFA) doivent être définis successivement pour chacune d'elles. Les informations Var l-type-autorisé et Var 2type-autorisé définissent respectivement les types d'accès autorisés aux zones correspondantes, c'est à dire lecture, écriture ou lecture/écriture pour les zones de variables 1 et 2. Sur la Fig. 6, on a représenté de façon plus précise l'organisation d'un dispositif de contrôle selon l'invention. Ce dispositif se décompose en cinq blocs fondamentaux, à savoir un bloc de contrôle et de gestion de descripteur désigné par la référence générale 12, qui comporte un algorithme de gestion du chargement de la variable descripteur et qui génère les signaux de commande nécessaires à la mémorisation des zones d'adresse et des droits d'accès dans les blocs Comp-Prog, Comp-Var 1 et Comp-Var 2, désignés par les références 13, 14 et 15. Le bloc Comp-Prog 13 comprend les registres de stockage des adresses de définition de la zone programme du descripteur. Lors de l'exécution d'une instruction (cycle code opératoire ou Opcode), il génère un signal qui indique si l'adresse présente sur le bus d'adresse est ou non comprise dans la zone programme autorisée. Les blocs Comp-Var 1 et Comp-Var 2 sont identiques et comprennent respectivement les registres de stockage des adresses de définition des zones de variables 1 et 2. Ils fournissent également les signaux qui indiquent si l'adresse d'accès aux moyens de mémorisation présente sur le bus d'adresse se situe dans les zones de variables autorisées et si les droits d'accès sont respectés. Pour ajouter une zone de variable supplémentaire au descripteur il suffit de créer un autre bloc Comp-Var N portant la référence 16. Les blocs présentés précédemment ne sont pas modifiés. Le bloc de sorties 17 met en forme les signaux issus des blocs de comparaison pour fournir les signaux VALIDE ACCES ou ERREUR, exploitables par les moyens de mémorisation et le micro-contrôleur. Le fonctionnement de ce dispositif est contrôlé par le micro-contrôleur par l'intermédiaire d'un bloc de supervision 18 qui a pour rôle d'assurer l'activation ou la désactivation de ce dispositif en fonction des requetes du micro-contrôleur. On conçoit alors que dans le dispositif selon l'invention les moyens de contrôle sont adaptés pour comparer des informations d'accès, telle qu'une adresse, à des informations de référence pour déterminer si ces informations d'accès correspondent à des zones mémoire accessibles. Ceci permet d'assurer une protection des zones mémoire contre des accès non autorisés et d'améliorer la fiabilité de fonctionnement du système. Le dispositif objet de l'invention présente des avantages particulièrement intéressants dont le principal est de ne nécessiter qu'une faible surface de silicium, ce qui d'une part, réduit le coût de l'installation et, d'autre part, facilite son intégration dans un microcontrôleur, ce qui le rend particulièrement bien adapté pour des applications automobiles. Enfin, on notera que les moyens de contrôle peuvent être disposés d'un manière quelconque, par exemple intégrés au micro-contrôleur ou dans la mémoire ou encore comme un périphérique externe. REVENDICATIONS 1. Dispositif de contrôle du fonctionnement d'un système électronique embarqué à bord d'un véhicule automobile, du type comportant une unité (1) de traitement d'informations à base de micro-contrôleur (2) associé à des moyens de mémorisation (3) comportant des zones (4) de stockage de codes correspondant à différents programmes exécutables par le micro-contrôleur et, pour chaque programme exécutable, au moins une zone (5) de stockage de données accessible en écriture et/ou en lecture par le micro-contrôleur, caractérisé en ce qu'il comporte des moyens (6) de contrôle en dynamique des accès par le micro-contrôleur (2) aux zones de stockage, pour engendrer un signal d'erreur en direction de moyens de traitement d'erreurs (8) en cas de tentative d'accès ou d'acces du micro-contrôleur à des zones non-autorisées. 2. Dispositif selon la revendication 1, caractérisé en ce que les moyens de contrôle (6) sont en outre agencés pour valider ou non l'accès à une zone de stockage. 3. Dispositif selon la revendication 1 ou 2, caractérisé en ce que les moyens de contrôle comprennent des moyens (9, 10, 11, 12, 13, 14, 15, 16) de comparaison d'informations d'accès à des informations de référence (7) prédéterminées associées aux zones de stockage. 4. Dispositif selon la revendication 3, caractérisé en ce que les informations de référence sont stockées dans des moyens de mémorisation (13, 14, 15,16) des moyens de contrôle. 5. Dispositif selon la revendication 3 ou 4, caractérisé en ce que les informations d'accès et les informations de référence sont des adresses d'accès aux zones de stockage. 6. Dispositif selon la revendication 5, caractérisé en ce que les moyens de comparaison sont adaptés pour déterminer si l'adresse d'accès est comprise dans un intervalle autorisé. 7. Dispositif selon la revendication 6, caractérisé en ce que ledit intervalle autorisé est déterminé à partir des informations de référence qui comprennent une adresse basse et une adresse haute. 8. Dispositif selon la revendication 6, caractérisé en ce que les informations de référence comprennent une adresse basse et une valeur de décalage d'adresse et en ce que les moyens de comparaison sont adaptés pour déterminer si l'adresse d'accès est comprise entre l'adresse basse et l'adresse basse plus la valeur de décalage. 9. Dispositif selon la revendication 8, caractérisé en ce que la valeur de décalage est fixe. 10. Dispositif selon la revendication 8, caractérisé en ce que la valeur de décalage est variable. 11. Dispositif selon l'une quelconque des revendications 3 à 10, caractérisé en ce que les informations de référence comprennent des informations de définition des autorisations d'accès à l'une ou l'autre des zones (5) de stockage de données accessibles par le micro-contrôleur (2). 12. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que son fonctionnement est contrôlé par le micro-contrôleur (2) par l'intermédiaire d'un bloc de supervision (18) qui a pour rôle d'assurer l'activation ou la désactivation de ce dispositif en fonction des requêtes du micro-contrôleur. 13. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de contrôle (6) sont intégrés dans le micro-contrôleur (2). 14. Dispositif selon l'une quelconque des revendications 1 à 12, caractérisé en ce que les moyens de contrôle (6) sont intégrés dans les moyens de mémorisation (3). 15. Dispositif selon l'une quelconque des revendications 1 à 12, caractérisé en ce que les moyens de contrôle (6) sont disposés comme un périphérique externe.