FR 2925720 A1 20090626 FR 0709059 A 20071221 SYSTEME SECURISE DE TRANSMISSION DE DONNEES Le domaine de l'invention concerne les équipements aéronautiques embarqués réalisant des fonctions critiques. Plus généralement, l'invention concerne tout système sécurisé, c'est-à-dire les systèmes devant démontrer une probabilité de panne faible. Pour les équipements embarqués notamment dans le domaine 1 o aéronautique, il est important de pouvoir démontrer que la probabilité de certains événements est faible. Les évènements sont généralement la survenue d'une panne matérielle, ayant pour conséquence un comportement erroné, notamment l'affichage d'une information incorrecte à un pilote par exemple, et la non détection de cette panne. 15 On ne tolère pour certains de ces évènements qu'une probabilité très faible. Dans le monde aéronautique, cette probabilité est exprimée en nombre d'évènements par heure de vol. Pour les évènements les plus critiques, on doit démontrer une probabilité inférieure à 10-9/heure. De plus, pour ce genre d'événement, on ,ne tolère pas qu'une panne simple puisse 20 créer l'effet redouté. Par exemple, si la panne d'un seul composant électronique particulier peut créer l'affichage erroné d'une information, et que la probabilité de cet événement est de l'ordre de 10-7/heure, alors le design sera rejeté par les autorités de certification. L'art existant consiste alors à dupliquer les chaînes de calculs 25 comme illustré sur la figure 1. Par exemple, une chaîne effectue le calcul 540 réalisé par un calculateur 500 pour fournir la fonction désirée, l'affichage d'une information au pilote, l'autre chaîne effectue le même calcul 540 réalisé par un autre calculateur 600 pour s'assurer que la première chaîne fonctionne correctement. La première chaîne est habituellement appelée 30 COM pour commande, l'autre MON pour Monitoring. Si la chaîne MON détecte une erreur par un moyen de comparaison 530 des données résultats, elle a généralement autorité pour désactiver la chaîne COM. Elle peut aussi 2 forcer un affichage pour alerter les pilotes, ou les opérateurs dans un cas plus général. La fonction de la chaîne MON est généralement double. D'une part, elle sécurise les calculs qui sont effectués par la chaîne COM mais elle doit également sécuriser les données d'entrées que la chaîne COM a prises en compte pour effectuer ses calculs. On peut aujourd'hui démontrer qu'une simple chaîne matérielle permet d'obtenir un calcul sécurisé. En effet, les architectures actuelles incluent: - Des méthodes robustes de partage du temps microprocesseur ainsi que des mémoires. - Des mécanismes de détection et correction d'erreur sur les mémoires permettant de garantir qu'une information stockée en mémoire ne sera pas corrompue. Alors, sous réserve que la chaîne MON effectue un calcul dissimilaire par rapport à la chaîne COM, et que les ressources mémoires utilisées soient différentes on peut démontrer que la fonction MON peut utiliser le même micro-processeur que la chaîne COM. Pour obtenir une réelle mono-chaîne matérielle, il reste alors à sécuriser les données d'entrées du calcul. Mais le problème reste lorsqu'une panne matérielle survient. En effet, cette panne ne doit pas causer une erreur dans le calcul de la chaîne COM qui ne serait pas détectée par la chaîne MON. On pourrait alors penser à simplement dupliquer l'électronique d'acquisition des données d'entrées. Le problème est que lorsque COM et MON sont abrités par le même microprocesseur, il est extrêmement difficile de démontrer qu'une panne particulière ne pourra pas donner le même effet sur les deux calculs. En effet, il se pourrait que le même bit d'un registre de donnée soit erroné pour que la donnée d'entrée sur COM et MON soit identique mais erronée. Plus précisément, 'l'invention concerne une chaîne de transmission de données pour une fonction d'un équipement embarqué d'aéronef comprenant : - une première chaîne de calcul comportant un calculateur exécutant une fonction sur une donnée enregistrée dans une mémoire par un moyen d'acquisition et fournissant une première donnée résultat, la donnée enregistrée étant une première donnée d'entrée arrivant sur une première entrée du moyen d'acquisition, - une deuxième chaîne de calcul exécutant la même fonction que la première chaîne, fournissant une deuxième donnée résultat et comportant un moyen de comparaison des données résultat pour valider le calcul de la première chaîne. La chaîne de transmission est caractérisée en ce que la deuxième chaîne de calcul utilise les mêmes ressources matérielles que la première chaîne et comporte, connectés en série, un moyen de transformation des données d'entrée, le moyen d'acquisition, le calculateur, un moyen de compensation de la transformation et le moyen de comparaison, de façon que la deuxième chaîne de calcul exécute la fonction sur une deuxième donnée enregistrée dans une mémoire, cette deuxième donnée étant la transformée de la première donnée d'entrée de façon que le calculateur exécute un calcul dissimilaire de la première chaîne de calcul, et le moyen de compensation de la transformation permet de comparer les données résultats de la première et la deuxième chaîne de calcul. Par ces dispositions, l'invention atteint bien les buts qu'elle s'est fixée : - Une panne du mécanisme d'adressage du moyen d'acquisition sera détectée ; - Une panne du mécanisme de décodage du moyen d'acquisition sera 30 détectée ; 4 Le microprocesseur exécute des calculs dissimilaires sur des données provenant de zones mémoires différentes ; une panne du microprocesseur et du contrôleur mémoire aura alors des effets différents sur les deux chaînes. La chaîne de monitoring détectera donc la panne. La chaîne de transmission selon l'invention présente de nombreux avantages parmi lesquels : - Les données d'entrée ainsi que les calculs de la première chaîne sont sécurisés par la deuxième chaîne de calcul; - La chaîne de calcul sécurisée est entièrement mono-chaîne matérielle entraînant une réduction des ressources matérielles nécessaires et donc une réduction de la consommation, du coût et de la masse des équipements embarqués concernés. L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description qui va suivre donnée à titre non limitatif et grâce aux figures annexées parmi lesquelles : La figure 1 représente selon l'art antérieur une chaîne de calcul sécurisée par duplication matérielle. La figure 2 représente une chaîne de calcul sécurisée selon l'invention. La figure 3 représente un mode de mise en oeuvre de l'invention. L'homme du métier connaît bien le principe de sécurisation des dispositifs comme illustrés par la figure 1. La chaîne de calcul est dupliquée matériellement, utilisant deux microprocesseurs 500 et 600, pour détecter les éventuelles pannes matérielles du microprocesseur 500. Le résultat de la première chaîne de calcul doit être validé par le résultat de la seconde chaîne. A titre d'exemple non limitatif, la figure 2 représente une chaîne de transmission de données du standard � ARINC 429 � d'un équipement embarqué selon l'invention. Pour rappel, le bus ARINC 429 est un standard développé spécifiquement pour le domaine de l'aéronautique. Le principe de ce bus de données est connu de l'homme du métier. L'ARINC 429 est basé sur un transfert série de mots de 32bits. Sur ces 32 bits, 8 bits sont réservés au codage d'un numéro de label, chaque label correspondant à un type d'information, 2 bits à un statut, (valeur valide, non calculée, en erreur), 1 bit 1 o pour un contrôle de parité, les autres pouvant être utilisés pour encoder de l'information. La chaîne de transmission selon l'invention de la figure 2 utilise un unique microprocesseur 5 réalisant une fonction de calcul 54. Pour réaliser la fonction le microprocesseur doit récupérer les données à calculer dans des 15 espaces mémoires pouvant être répartis en plusieurs ressources mémoires. La chaîne de transmission de données comporte un moyen d'acquisition des données 4 comprenant des liaisons d'entrées 41 et 42. Le moyen d'acquisition 4 est un circuit permettant de dé-sérialiser les données de type ARINC 429 provenant des bus série 41 et 42. Ces 20 liaisons d'entrée peuvent être connectées à d'autres équipements embarqués communiquant avec des bus ARINC 429. Le circuit 4 est capable de gérer simultanément une cinquantaine de liaisons d'entrées/sorties. Les liaisons d'entrées comportent des circuits de démodulation 1 et 2 de bus ARINC 429. Le circuit 4 fonctionne sur la base d'une détection du numéro de 25 label et enregistrement de la valeur codée dans une mémoire allouée spécialement à chaque label. Les mémoires 410, 420 sont matériellement différentes et non intégrées au circuit 4. Le circuit de dé-sérialisation 4 adresse les données provenant de liaisons distinctes 41 et 42 à des blocs mémoires distincts. Les données étant également enregistrées à des 30 adresses mémoire distinctes lorsque les labels sont différents. La première chaîne de calcul comprend le démodulateur 1 connecté à l'entrée 41 du circuit de dé-sérialisation 4. Une première donnée d'entrée est alors enregistrée dans un bloc mémoire 410 à une adresse 411. Cette adresse mémoire est adressée par le micro-processeur 5 pour récupérer la donnée en vue d'être calculée par une fonction 54. Cette fonction fournit ensuite une première donnée résultat. Afin de prouver que la fiabilité de cette chaîne de calcul respecte les contraintes aéronautiques, une deuxième chaîne de calcul est associée à cette première chaîne de calcul. Cette deuxième chaîne de calcul comporte un démodulateur 2, un moyen de transformation de données 3 connecté à une autre liaison d'entrée 42 du circuit 4. La donnée en entrée du moyen de transformation de donnée 3 est la même que la première donnée en entrée de la première chaîne de calcul. Avantageusement, le moyen de transformation modifie la première donnée d'entrée en une deuxième donnée, le label de la deuxième donnée devenant un label dissimilaire de la première donnée d'entrée de façon que le moyen d'acquisition 4 adresse la deuxième donnée à une adresse mémoire différente de celle de la première donnée. Avantageusement, le moyen de transformation modifie la première donnée d'entrée en une deuxième donnée, l'information de la deuxième donnée devenant une information dissimilaire de l'information de la première donnée d'entrée. La conséquence est que la même donnée d'entrée est enregistrée directement par la première chaîne de calcul et indirectement par la deuxième chaîne de calcul via le moyen de transformation des données 3: - Dans deux blocs mémoires différents 410 et 420 car provenant de liaisons d'entrées 41 et 42 distinctes ; - Dans chaque bloc 410 et 420, à des adresses 411 et 421 nettement différentes puisque le numéro de label est différent ; - En codage transformé dans un des deux blocs. 7 Les modes de pannes du moyen d'acquisition dans les mémoires peuvent être: - Panne d'un mécanisme d'adressage (le bit est bloqué dans un état) : évènement entraînant l'écrasement d'une certaine adresse d'un certain bloc par une donnée qui aurait du être stockée ailleurs. Le même écrasement ne pourra pas se produire sur le même bloc, car les données arrivent sur le moyen d'acquisition par des liaisons d'entrée distinctes, et sur la même adresse, car la donnée transformée possède un label différent. La donnée d'entrée directe et la donnée transformée ne seront alors plus compatibles l'une de l'autre. - Panne d'un mécanisme de décodage : évènement entraînant le forçage d'un bit de donnée. La conséquence n'est pas la même sur les deux chaînes La donnée directe et la donnée transformée ne seront plus compatibles l'une de l'autre. La chaîne de monitoring devra donc prendre en entrée du calculateur 5 des données transformées, compenser la transformation par le moyen 51, et utiliser ces données pour valider les calculs de la chaîne COM avec un moyen de comparaison 53. La chaîne MON exécute la même fonction sur une donnée différente de la chaîne COM. Le calculateur 5 exécute donc un calcul différent pour les deux chaînes. N'importe quelle panne au niveau du microprocesseur ou du contrôleur mémoire (bit forcé à 1 ou 0 par exemple) aura alors un effet différent sur les deux chaînes. La chaîne de monitoring détectera donc le problème. Dans un mode de mise en oeuvre illustré en figure 3, le moyen de transformation 3 des données d'entrée est un inverseur de données et le moyen de compensation de transformation 51 compense l'effet de l'inverseur de données, l'inversion consistant à transformer un bit � 0 � en bit � 1 � et réciproquement : - Le moyen d'inversion 3 des données a sa sortie connectée à une 30 seconde entrée 42 du moyen d'acquisition de données 4 ; Le calculateur 4 récupère la donnée inversée dans la mémoire 420 et fournit une donnée résultat inversée ; Le moyen de compensation 51 compense l'inversion sur la donnée résultat inversée et fournit une deuxième donnée résultat ; Le moyen de comparaison 53 de la deuxième chaîne teste la première donnée résultat avec la deuxième donnée résultat et déclenche une alerte en cas de non concordance des données résultat. Les données d'entrée du bus ARINC 429 sont transformées dans un inverseur avant d'être enregistrées dans la mémoire 420. Une donnée d'entrée comporte un champ de label 31 et un champ 32 contenant l'information à décoder. Dans ce mode de mise en oeuvre, il suffit d'inverser ces deux champs. Le label de la donnée arrivant sur la liaison d'entrée 42 devient ainsi totalement différent du label de la donnée d'entrée arrivant sur la liaison d'entrée 41 du moyen d'acquisition. Les bits de l'information décodée sont aussi en totalité différents; les bits de données étant tous inversés. La fonction d'inversion peut être réalisée facilement sur un circuit reprogrammable de technologie � FPGA �, � Field Programmable Gate Array � en langage anglo-saxon. Dans ce mode de mise en oeuvre, le moyen de transformation 3 est un inverseur de données, transformant un bit � 0 � en un bit � 1 �. Il s'agit de la transformation la plus simple à mettre en oeuvre et nécessite peu de ressources matérielles pour la mise en place. Il est clair toutefois que n'importe quel autre moyen de transformation modifiant les bits de données peut être utilisé. Néanmoins, l'inversion des données est le moyen le plus sûr pour tester la chaîne de calcul car tous les bits de la donnée sont modifiés. Il est possible d'utiliser des fonctions transformant les données partiellement au risque que la panne se situe sur un bit non modifié et par conséquent faisant échouer la détection de l'erreur.30 9 L'invention concerne également un procédé de détection d'erreur d'une chaîne de transmission de donnée, caractérisé en ce que la deuxième chaîne de calcul réalise les étapès suivantes pour valider la première donnée résultat de la première chaîne de calcul: à une première étape, transformation de la donnée d'entrée ; à une deuxième étape, enregistrement de la donnée transformée dans une mémoire; à une troisième étape, lecture de la donnée transformée ; à une quatrième étape, calcul de la donnée transformée ; - à une cinquième étape, compensation de la transformation, réalisée à la première étape, sur la donnée résultat transformée, étape produisant la deuxième donnée résultat; A une sixième étape, comparaison de la première et la deuxième donnée résultat ; A une septième étape, si les résultats sont différents, désactivation de la chaîne de calcul et affichage d'une alerte pour l'opérateur. Ce procédé est remarquable car il permet de détecter une erreur sur une chaîne de calcul dont le principe est basé sur la duplication de la chaîne de calcul tout en utilisant une unique architecture matérielle. La 20 caractéristique du procédé repose sur le fait que les ressources matérielles sont sollicitées pour exécuter des opérations différentes tout en disposant d'un moyen de comparer les résultats des calculs entre eux en fin de chaîne. Dans le mode de mise en oeuvre illustré à la figure 3, la deuxième chaîne de calcul réalise les étapes suivantes pour valider le résultat de la 25 première chaîne: A une première étape, inversion de la donnée d'entrée ; A une deuxième étape, enregistrement dans la mémoire d'une deuxième donnée dans une zone mémoire, cette deuxième donnée étant l'inverse de la première donnée d'entrée ; 30 A une troisième étape, lecture de la deuxième donnée ; - A une quatrième étape, calcul de la deuxième donnée ; A une cinquième étape, compensation de l'inversion sur la seconde donnée résultat ; A une sixième étape, comparaison de la première donnée résultat et de la seconde donnée résultat ; A une septième étape, si les résultats sont différents, désactivation de la chaîne de calcul et affichage d'une alerte pour l'opérateur. Bien que l'invention soit développée pour une chaîne de transmission de données de bus ARINC 429, il est qu'elle peut être utilisée pour des bus de données de standard différent. Bien que particulièrement adaptée aux systèmes de transmission de données numériques dans le domaine aéronautique, on ne saurait cantonner l'invention à ce domaine d'application. Elle s'applique à tout dispositif devant prouver un taux de panne faible et pourrait donc concerner également des applications spatiales et automobiles. Dans notre exemple, l'invention s'applique à un dispositif d'affichage d'aéronef réalisant des fonctions intervenant pour l'affichage et comportant une chaîne de transmission de données selon l'invention pour réaliser l'une des fonctions. L'invention concerne également tout dispositif embarqué d'aéronef réalisant des fonctions de calculs critiques, comportant une chaîne de transmission de données selon l'invention. REVENDICATIONS 1. Chaîne de transmission de données pour une fonction d'un équipement embarqué d'aéronef comprenant : une première chaîne de calcul comportant un calculateur (5) exécutant une fonction sur une donnée enregistrée dans une mémoire (410) par un moyen d'acquisition (4) et fournissant une première donnée résultat, la donnée enregistrée étant une première ~o donnée d'entrée arrivant sur une première entrée (41) du moyen d'acquisition, une deuxième chaîne de calcul exécutant la même fonction que la première chaîne, fournissant une deuxième donnée résultat et comportant un moyen de comparaison (53) des données résultat 15 pour valider le calcul de la première chaîne, caractérisé en ce que la deuxième chaîne de calcul utilise les mêmes ressources matérielles que la première chaîne et comporte, connectés en série, un moyen de transformation (3) des données d'entrée, le moyen d'acquisition (4), le calculateur (5), un moyen de compensation 20 de la transformation (51) et le moyen de comparaison (53), de façon que la deuxième chaîne de calcul exécute la fonction sur une deuxième donnée enregistrée dans une mémoire (420), cette deuxième donnée étant la transformée de la première donnée d'entrée de façon que le calculateur (5) exécute un calcul dissimilaire de la première chaîne de 25 calcul ; le moyen de compensation (51) de transformation permet de comparer les données résultats de la première et la deuxième chaîne de calcul. 2. Chaîne de transmission de données selon la revendication 1 30 dont les données comportent au moins un label (31) et une information (32), le label permettant au moyen d'acquisition (4) d'identifier la donnée et de l'enregistrer dans une zone mémoire précise, caractérisé en ce que le moyen de transformation (3) modifie la première donnée d'entrée en une deuxième donnée, l'information (34) de la deuxième donnée devenant une information dissimilaire de l'information (32) de la première donnée d'entrée. 3. Chaîne de transmission de données selon au moins l'une des revendications précédentes dont les données comportent au moins un label et une information, caractérisé en ce que le moyen de transformation modifie la première donnée d'entrée en une deuxième donnée, le label (33) de la deuxième donnée devenant un label dissimilaire de celui (31) de la première donnée d'entrée de façon que le moyen d'acquisition adresse la deuxième donnée à une adresse mémoire différente de celle de la première donnée. 4. Chaîne de transmission selon au moins l'une des revendications 1 à 3, caractérisé en ce que le moyen de transformation (3) des données d'entrée est un inverseur de données et que le moyen de compensation (51) de transformation compense l'effet de l'inverseur de données, l'inversion consistant à transformer un bit à � 0 � en bit à � 1 � et réciproquement : - Le moyen d'inversion des données a sa sortie connectée à une seconde entrée (42) du moyen d'acquisition de données (4) ; - Le calculateur (5) récupère la donnée inversée dans la mémoire (420) et fournit une donnée résultat inversée ; - Le moyen de compensation (51) compense l'inversion sur la donnée résultat inversée et fournit une deuxième donnée résultat ; Le moyen de comparaison (53) de la deuxième chaîne teste la première donnée résultat avec la deuxième donnée résultat et déclenche une alerte en cas de non concordance des données 30 résultat. 5. Procédé de détection d'erreur d'une chaîne de transmission de donnée selon la revendication 3, caractérisé en ce que la deuxième chaîne de calcul réalise les étapes suivantes pour valider la première donnée résultat de la première chaîne de calcul: à une première étape, transformation de la donnée d'entrée ; à une deuxième étape, enregistrement de la donnée transformée dans une mémoire (420); à une troisième étape, lecture de la donnée transformée à une quatrième étape, calcul de la donnée transformée ; - à une cinquième étape, compensation de la transformation, réalisée à la première étape, sur la donnée résultat transformée, étape donnant la deuxième donnée résultat; A une sixième étape, comparaison de la première et la deuxième donnée résultat ; A une septième étape, si les résultats sont différents, désactivation de la chaîne de calcul et affichage d'une alerte pour l'opérateur. 6. Procédé de détection d'erreur d'une chaîne de transmission de donnée selon la revendication 4, caractérisé en ce que la deuxième chaîne de calcul réalise les étapes suivantes pour valider le résultat de la première chaîne: - A une première étape, inversion de la donnée d'entrée ; A une deuxième étape, enregistrement dans la mémoire d'une deuxième donnée dans une zone mémoire, cette deuxième donnée étant l'inverse de la première donnée d'entrée ; - A une troisième étape, lecture de la deuxième donnée ; A une quatrième étape, calcul de la deuxième donnée ; A une cinquième étape, compensation de l'inversion sur la seconde donnée résultat ; - A une sixième étape, comparaison de la première donnée résultat et de la seconde donnée résultat ; A une septième étape, si les résultats sont différents, désactivation de la chaîne de calcul et affichage d'une alerte pour l'opérateur. 7. Chaîne de transmission de données selon la revendication 4, caractérisée en ce qu'elle est de type ARINC 429 et en ce qu'elle réalise le procédé selon la revendication 6. 8. Dispositif d'affichage d'aéronef réalisant des fonctions intervenant pour l'affichage, caractérisé en ce qu'il comporte une chaîne de transmission de données selon la revendication 4 pour réaliser l'une des fonctions. 9. Dispositif embarqué d'aéronef réalisant des fonctions de calcul critiques, caractérisé en qu'il comporte une chaîne de transmission de données selon la revendication 4 pour réaliser l'une des fonctions.