Brevet FR2792429A1 — publié le 20001020

La présente invention concerne un procédé pour sécuriser l'affichage d'éléments graphiques sur un moyen de visualisation. L'invention s'applique particulièrement aux systèmes de supervision, notamment aux systèmes de supervision ferroviaire. Les systèmes de supervision impliquent généralement l'affichage sur un écran d'éléments graphiques représentatifs de l'état des objets d'un système supervisé. Dans le cas de la supervision de réseau ferroviaire, ces éléments graphiques peuvent par exemple représenter l'état d'une aiguille ou d'un feu de signalisation. Classiquement, il y a des éléments graphiques distincts pour chacun des états d'un même objet représenté. Ainsi, il y aura un élément graphique représentant un feu de signalisation à l'état "vert", un élément graphique pour l'état "rouge", un pour l'état "orange clignotant", etc. Cet affichage a pour finalité d'aider un opérateur humain à prendre des décisions en temps réel, certaines de ces décisions pouvant avoir des conséquences telles que des vies humaines peuvent être menacées. Aussi, il est nécessaire de s'assurer que l'affichage sur les écrans est exactement conforme à la réalité. Pour ce faire, donc, il est primordial de prendre en compte les éventuelles défaillances de la chaîne de traitement reliant l'unité de contrôle responsable de I'émission d'une commande d'affichage et l'écran sur lequel l'affichage a lieu. Une première solution consiste à afficher deux fois chaque élément graphique. Ainsi, par redondance d'information, on minimise les possibilités d'erreurs. L'opérateur, voyant deux éléments graphiques affichés différents mais qui correspondent au même élément graphique demandé, est immédiatement averti qu'un problème est survenu dans le système de supervision et que l'information affichée n'est pas pertinente. Toutefois, une telle solution n'est pas satisfaisante dans la mesure o elle fait intervenir l'opérateur dans le processus de validation de l'information. De plus, la redondance d'information sur l'écran peut rendre la lecture de celui-ci peu claire. Une seconde solution est divulguée dans l'article intitulée "Verfahrensgesicherte Meldebildanzeige for den Fdl-Arbeitsplatz bei der Deutsche Bahn AG", paru en 1994 dans la revue allemande Signal und Draht. Le principe présenté repose sur une redondance logicielle et matérielle. En effet, deux ordinateurs génèrent en parallèle une commande virtuelle d'affichage. Si la comparaison entre les deux résultats des deux commandes est correcte, alors la commande réelle est générée par l'un des deux ordinateurs. Ce procédé présente deux inconvénients majeurs: 10. D'une part, il ne permet pas de sécuriser l'affichage proprement dit (seul la génération de la commande d'affichage est sécurisée), À D'autre part, il est coûteux puisque nécessitant deux ordinateurs. Une troisième solution est présentée dans le brevet européen EP 0 443 377 intitulé "Dispositif d'affichage infaillible de diagramme". Deux commandes d'affichage sont générées pour chaque élément graphique à afficher. La première commande écrit dans la zone de la mémoire dite visible (c'est-à-dire associée au moyen de visualisation), tandis que la seconde commande écrit dans la zone de la mémoire dite invisible (c'est-à-dire non-associée au moyen de visualisation). Seule la partie invisible est relue. Si son contenu correspond effectivement au résultat attendu de la commande d'affichage, alors on fait l'hypothèse que le contenu de la partie visible est correct. Cette solution présente aussi l'inconvénient de ne fiabiliser que la génération des commandes d'affichage et non l'affichage proprement dit. Le but de la présente invention est de sécuriser l'affichage des éléments graphiques sur un écran sans nécessiter l'intervention d'un opérateur humain dans le processus de validation, ni faire d'hypothèses sur le taux de fiabilité des différents composants matériels et logiciels. Pour ce faire, I'invention a pour objet un procédé d'affichage sécurisé d'éléments graphiques sur un moyen de visualisation, ledit moyen de visualisation étant piloté par un contrôleur d'affichage comportant un moyen d'interprétation, une mémoire locale, une mémoire vidéo, un moyen de comparaison et un moyen de codage, ledit procédé comportant les étapes ordonnées suivantes: émission par une unité de contrôle d'une commande d'affichage à destination dudit moyen d'interprétation, ledit moyen d'interprétation écrivant à la réception de ladite commande d'affichage un élément graphique à afficher déterminé par ladite commande d'affichage, dans un emplacement de ladite mémoire locale également déterminé par ladite commande d'affichage, à la suite de quoi, ledit élément graphique à afficher étant recopié dans ladite mémoire vidéo et affiché sur ledit moyen de visualisation, comparaison par ledit moyen de comparaison entre d'une part, le contenu de ladite mémoire vidéo à l'adresse correspondant audit emplacement, et d'autre part un élément graphique de consigne contenu dans ladite mémoire locale et déterminé par ladite commande d'affichage, * émission vers ladite unité de contrôle du résultat de ladite comparaison et d'un élément graphique complémentaire contenu dans ladite mémoire locale et déterminé par ladite commande d'affichage, ledit résultat et ledit élément graphique complémentaire étant codés par ledit moyen de codage, détermination par ladite unité de contrôle d'un diagnostic en fonction dudit résultat codé, dudit élément graphique complémentaire codé, et d'au moins une valeur témoin déterminé par ladite unité de contrôle en fonction de ladite commande d'affichage. Le procédé selon l'invention peut en outre comporter l'une ou plusieurs des caractéristiques suivantes Ledit élément graphique de consigne et ledit élément graphique complémentaire sont déterminés par ledit moyen d'interprétation à la réception de ladite commande d'affichage, et écrit dans ladite mémoire locale à l'issue de cette détermination. L'ensemble des éléments de consigne possibles et l'ensemble des éléments graphiques complémentaires possibles sont préalablement stockés dans ladite mémoire locale. Ledit élément graphique complémentaire est l'élément graphique qui ne diffère de l'élément graphique de consigne que par l'information graphique la plus critique. Ladite unité de contrôle met en oeuvre les étapes suivantes, à la réception dudit résultat codé et dudit élément graphique complémentaire codé: comparaison entre ledit résultat codé et ledit élément graphique complémentaire codé, À comparaison entre ledit résultat codé et une valeur témoin déterminée par ladite unité de contrôle en fonction de ladite commande d'affichage. La présente invention ainsi que ses avantages seront davantage compris à la lecture de la description qui va en être faite en référence aux figures annexées. La figure 1 illustre un mode de réalisation de l'invention. Les figures 2a et 2b illustrent deux éléments graphiques. Sur la figure 1, l'unité de contrôle CU émet une commande d'affichage DC à destination du contrôleur d'affichage DU. Cette commande d'affichage est réceptionnée au sein du contrôleur d'affichage par un moyen d'interprétation I. Cette commande d'affichage DC peut, entre autres, avoir pour paramètre le type de l'objet à afficher, un éventuel sous-type et l'état de cet objet. Le moyen d'interprétation I détermine alors l'élément à afficher Eo à partir des paramètres contenus dans la commande d'affichage, et d'une base de données B contenant des paramètres permettant la génération des graphismes propres à chaque type et sous-type d'objets, ainsi que les particularismes liés à l'état. Le type de l'objet fait référence à des grandes classes comme, dans le cas de systèmes de supervision de réseaux ferroviaires, des aiguilles, des feux de signalisation etc. Le sous-type est par exemple une espèce particulière d'aiguille ou de feu de signalisation. Comme il a été dit précédemment, à un même objet (même type et même sous-type), correspondent différents éléments graphiques en fonction des différents états que cet objet peut prendre. La figure 2 représente un exemple de tels éléments graphiques. Les figures 2a et 2b représentent un même objet (même type et même sous- type) mais avec deux états différents. Le feu de signalisation de la figure 2a est, par exemple, rouge: la zone référencée z est hachurée. Le feu de signalisation de la figure 2b est par exemple vert et la zone référencée z n'est pas hachurée. L'élément graphique E0, ainsi déterminé, est alors écrit dans une mémoire locale M. De façon automatique et extérieure au cadre de l'invention, le contenu de cette mémoire est recopié dans la mémoire vidéo MV et affiché sur le moyen de visualisation V. Typiquement, cette étape automatique est réalisée par un logiciel particulier, généralement appelé driver, et qui est propre à l'architecture du contrôleur d'affichage et au moyen de visualisation V. La mise en oeuvre la plus simple consiste à coder le graphisme de l'élément graphique dans un format graphique susceptible d'être écrit dans la mémoire vidéo MV. Il peut par exemple s'agir d'un codage de type bitmap dans lequel chaque unité élémentaire de codage (par exemple 1 octet pour une image en 256 couleurs) correspond à un pixel, c'est-à-dire à un point de l'image. Il est bien entendu possible d'étendre l'invention à d'autres types de formats, la contrainte étant alors que ce format soit compris par le logiciel driver ou converti dans le format approprié pour pouvoir être écrit dans la mémoire vidéo. La commande d'affichage DC peut aussi contenir un identifiant de localisation qui détermine l'emplacement d'une zone Zi de la mémoire locale M dans laquelle l'élément graphique Eo doit être écrit. Il est entendu que chaque emplacement de cette zone Z1 de la mémoire locale M correspond à un emplacement différent dans la mémoire vidéo MV et, par suite, à un emplacement différent sur le moyen de visualisation V. À la suite de cette écriture de l'élément graphique Eo dans la mémoire locale M, le moyen d'interprétation peut émettre une commande de contrôle CC à destination d'un moyen de comparaison Comp. À la réception de cette commande de contrôle CC, le comparateur lit le contenu de la mémoire vidéo MV à l'adresse correspondant à l'emplacement déterminé par la commande d'affichage DC. Dans le cas o aucune erreur n'est survenue, l'élément graphique Er qui est relu est le même que l'élément graphique E0 qui a été écrit dans la mémoire locale M par le moyen d'interprétation I. Il lit en outre un élément dit de consigne E, contenu dans la mémoire local M, dans une zone Z2 différente de celle o sont écrits les éléments graphiques Eo par le moyen d'interprétation I (zone Zi). Cet élément de consigne Ec est déterminé par la commande d'affichage DC. Dans le cas o aucune erreur n'est survenue, l'élément graphique de consigne Ec est identique à l'élément graphique Eo qui a été écrit dans la mémoire locale M par le moyen d'interprétation I. Le moyen de comparaison effectue une comparaison bit à bit des deux éléments graphiques Er et Ec. Il peut par exemple s'agir d'un "et" logique bit à bit. Le résultat issu de ce comparateur est donc un élément graphique c, qui, dans le cas o aucune erreur n'est survenue, est identique à l'élément graphique Er. Il est à noter que le temps au bout duquel l'élément graphique Er est lisible dans la mémoire vidéo MV est indéterminé. En effet, ce temps dépend d'une part du logiciel driver et d'autre part des quanta de temps durant lesquels la mémoire vidéo est accessible en lecture, du fait d'éventuels accès concurrents. Par conséquent, le comparateur Comp peut mettre en ceuvre une temporisation, paramétrée par un paramètre de time-out, à la suite de laquelle l'élément graphique E. est lu. Autrement dit, cette temporisation permet la synchronisation entre les accès à la mémoire vidéo et le processus de contrôle. L'élément graphique c résultant de la comparaison, est ensuite envoyé à un codeur Cod dont le but est d'effectuer un codage de contrôle d'erreur par une fonction f. Ce codage f est préférentiellement un codage cyclique par redondance de type CRC (Cyclic Redundancy Code ou Cyclic Redundancy Check, en anglais). La même fonction f est utilisée pour coder un élément graphique dit complémentaire Ec. Cet élément graphique complémentaire est lu dans la mémoire locale M, dans la même zone Z2 que celle o a déjà été lu l'élément graphique de consigne Ec. De la même façon que l'élément graphique de consigne Ec, il est déterminé par la commande d'affichage DC. Selon une première mise en oeuvre, la zone Z2 de la mémoire locale M, contient l'ensemble des différents éléments graphiques possibles. La détermination des éléments graphiques de consigne Ec ou complémentaire Ec se fait parmi cet ensemble par les paramètres de la commande d'affichage DC (type, sous-type, état...). Selon une seconde mise en oeuvre possible, le moyen d'interprétation I détermine l'élément graphique complémentaire en même temps qu'il détermine l'élément graphique à afficher Eo, et écrit ces deux éléments dans la zone Z2 de la mémoire locale M. De même que pour l'élément graphique E0, l'élément graphique complémentaire Ec est déterminé grâce à la base de donnée B. Il est à noter, pour plus de clarté, que l'élément graphique à afficher sera écrit deux fois: une fois dans la zone Z1 (Eo) et une fois dans la zone Z2 (EJ). Ces deux écritures supplémentaires sont symbolisées sur la figure 1 par les flèches en pointillés. Dans cette seconde mise en oeuvre, la zone Z2 de la mémoire locale, ne contient à tout moment que deux éléments graphiques (Ec et Ec) et peut donc être de taille bien plus réduite que dans le cas de la première mise en oeuvre. L'élément graphique complémentaire est un élément graphique différent de celui devant être affiché. De façon préférentielle, c'est un élément graphique qui ne diffère de ce dernier que par l'information graphique la plus critique, c'est- à-dire typiquement celle qui correspond à l'état de l'objet correspondant. En prenant l'exemple de la figure 2, I'élément graphique représenté par la figure 2b est le complémentaire de celui représenté par la figure 2a. En effet, seule la couleur de la zone z diffère, et c'est l'information la plus sensible puisque c'est celle qui véhicule le plus d'information sémantique. Il est à noter que pour chaque élément graphique donné, I'élément graphique complémentaire est déterminé de façon univoque lors de la création du système. Ces correspondances sont stockées dans la zone Z2 de la mémoire locale M (mise en oeuvre numéro 1), ou dans la base de donnée B (mise en oeuvre numéro 2). Un moyen de diagnostic D localisé sur l'unité centrale CU reçoit donc l'élément graphique c issu du comparateur et codé par la fonction de codage f, ainsi que l'élément graphique complémentaire Ec, lui aussi codé par cette fonction de codage f. Typiquement, ces deux informations sont émises par l'intermédiaire d'un unique message m. L'unité de diagnostic D est à même de comparer f(c) et f(Ec), ainsi que f(c) et une valeur témoin fi. Cette valeur témoin est issue d'une table T mettant en correspondance ces valeurs témoins avec les paramètres déterminant l'élément graphique à afficher. Autrement dit, I'unité centrale CU est à même de déterminer pour chaque objet et chaque état, la valeur de f(c) qu'elle doit attendre. Dans le cas o f(c) est différent de la valeur témoin fi correspondante, ou dans le cas o f(Ec) est égal à f(c), alors cela signifie qu'une erreur est subvenu dans le processus et que par conséquent l'information affichée sur le moyen de visualisation V n'est plus pertinente. Une alarme peut alors être mise en ceuvre. Subsidiairement, une troisième comparaison peut être mise en oeuvre entre f(Ec) et une seconde valeur témoin f2 déterminée de la même façon que la première. Cette troisième comparaison permet de sécuriser le moyen de transmission qui lie l'unité de contrôle CU au contrôleur d'affichage DU. Le tableau suivant indique les différents cas d'erreurs possibles dans le traitement d'une commande d'affichage DC selon le procédé de l'invention. La première colonne indique la localisation de l'erreur. La seconde colonne indique les différentes conséquences que peut avoir une erreur ayant cette localisation: par exemple, une erreur sur la mémoire locale M peut se répercuter sur l'élément graphique à afficher Eo, et/ou sur l'élément graphique de consigne E, et/ou sur l'élément graphique complémentaire Ec. Enfin, la troisième colonne indique comment l'erreur peut être détectée par le procédé selon l'invention. Localisation Conséquences Détection Erreur sur Eo f(c) erroné M Erreur sur E, f(c) erroné Erreur sur Ec f(c) erroné Erreur sur Ec f(Ec) erroné MV Erreur sur E, f(c) erroné Comp Erreur sur c f(c) erroné Cod Erreur sur f(c) f(c) erroné Erreur sur f(Ec) f(Ec) erroné Transmission Erreur sur Eo f(c) erroné Erreur sur le message contenant f(c) et/ou f(Ec) erroné f(c) et f(E) Le procédé selon l'invention permet aussi de détecter les doubles erreurs, c'est-à-dire les cas o deux erreurs surviennent simultanément. Le tableau suivant montre quelques-uns des ces cas5 Localisation Conséquences Détection I+M Erreur sur le message contenant f(c) erroné et/ou f(Ec) f(c) et f(Ec) erroné M+MV Erreur sur Ec et/ou sur Ec f(c) erroné et/ou f(Ec) erroné VM+ T Erreur sur le message contenant f(c) et/ou f(Ec) erroné f(c) et f(Ec) REVENDICATIONS 1) Procédé d'affichage sécurisé d'éléments graphiques sur un moyen de visualisation (V), ledit moyen de visualisation étant piloté par un contrôleur d'affichage (DC) comportant un moyen d'interprétation (I), une mémoire locale (M), une mémoire vidéo (MV), un moyen de comparaison (Comp) et un moyen de codage (Cod), ledit procédé comportant les étapes ordonnées suivantes: émission par une unité de contrôle (CU) d'une commande d'affichage (DC) à destination dudit moyen d'interprétation (I), ledit moyen d'interprétation écrivant à la réception de ladite commande d'affichage un élément graphique à afficher (Ea) déterminé par ladite commande d'affichage (DC), dans un emplacement de ladite mémoire locale (M) également déterminé par ladite commande d'affichage (DC), à la suite de quoi, ledit élément graphique à afficher étant recopié dans ladite mémoire vidéo (MV) et affiché sur ledit moyen de visualisation (V), * comparaison par ledit moyen de comparaison (Comp) entre d'une part, le contenu (Er) de ladite mémoire vidéo (MV) à l'adresse correspondant audit emplacement, et d'autre part un élément graphique de consigne (Ec) contenu dans ladite mémoire locale (M) et déterminé par ladite commande d'affichage (DC), * émission vers ladite unité de contrôle (CU) du résultat (c) de ladite comparaison et d'un élément graphique complémentaire (Ec) contenu dans ladite mémoire locale (M) et déterminé par ladite commande d'affichage (DC), ledit résultat et ledit élément graphique complémentaire étant codés par ledit moyen de codage (Cod), À détermination par ladite unité de contrôle d'un diagnostic en fonction dudit résultat (c) codé, dudit élément graphique complémentaire (Ec) codé, et d'au moins une valeur témoin déterminé par ladite unité de contrôle (CU) en fonction de ladite commande d'affichage (DC). 2) Procédé selon la revendication 1, caractérisé en ce que ledit élément graphique de consigne (Ej) et ledit élément graphique complémentaire (Ec) sont déterminés par ledit moyen d'interprétation à la réception de ladite commande d'affichage (DC), et écrit dans ladite mémoire locale (M) à l'issue de cette détermination. 3) Procédé selon la revendication 1, caractérisé en ce que l'ensemble des éléments de consigne (Ec) possibles et l'ensemble des éléments graphiques complémentaires (Ec) possibles sont préalablement stockés dans ladite mémoire locale (M). 4) Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit élément graphique complémentaire (Ec) est l'élément graphique qui ne diffère de l'élément graphique de consigne (Ec) que par l'information graphique la plus critique. ) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite unité de contrôle (CU) met en oeuvre les étapes suivantes, à la réception dudit résultat (c) codé et dudit élément graphique complémentaire (Ec) codé: ò comparaison entre ledit résultat (c) codé et ledit élément graphique complémentaire (Ec) codé, comparaison entre ledit résultat (c) codé et une valeur témoin déterminée par ladite unité de contrôle en fonction de ladite commande d'affichage (DC).