FR 3024932 A1 20160219 FR 1457839 A 20140814 L'invention concerne la sécurisation de la transmission de données entre des dispositifs électroniques. Ces dispositifs électroniques sont par exemple des calculateurs utilisés pour le pilotage d'un aéronef. Dans un aéronef, le ou les moteurs sont commandés par une unité de commande moteur (ou ECU de l'anglais « Engine Control Unit ») comprenant plusieurs dispositifs électroniques de traitement de données comme des calculateurs reliés les uns aux autres par des liaisons séries par lesquelles des trames de données sont échangées. Ces liaisons séries sont soumises à des perturbations, résultant par exemple de champs électriques et/ou électromagnétiques et d'impacts de foudre, qui peuvent altérer les données transmises sur les liaisons. Malgré cela, il est nécessaire que la commande des moteurs ne soit pas altérée dans ces circonstances. Un but de l'invention est d'améliorer la fiabilité de la transmission des données. A cet effet, on prévoit, selon l'invention, un procédé de transmission de données entre un dispositif électronique émetteur et un dispositif électronique receveur reliés l'un à l'autre par une liaison de données, comprenant les étapes de : - envoyer les données sous la forme d'au moins trois trames identiques envoyées successivement et associées chacune à une information de validité calculée sur la trame concernée, - vérifier la validité des trames reçues au fur et à mesure de leur réception par le dispositif électronique receveur, rendre disponible pour traitement la première trame valide et ignorer les autres. 3024932 2 La multiplication temporelle des trames limite le risque qu'une perturbation altère les données transmises. En outre, la présence de l'information de validité facilite la détection des trames corrompues par le 5 dispositif récepteur et accélère le traitement des données. Avantageusement, le procédé comprend l'étape, lorsqu'aucune des trames reçues n'est valide, de reconstituer une trame par vote majoritaire à partir des 10 trois trames reçues. La comparaison des données des trames reçues permet de reconstituer simplement une trame, par exemple par un algorithme de vote majoritaire, éliminant ainsi des erreurs qui résulteraient d'une perturbation. 15 Avantageusement alors, le procédé comprend les étapes de calculer une information de validité sur la trame reconstituée, et de rendre disponible pour traitement la trame reconstituée si elle est valide. La robustesse de la transmission est encore 20 améliorée. De préférence, la reconstitution de trame est effectuée au fur et à mesure de la réception des données de la troisième trame. Le besoin en mémoire est ainsi limité alors que la 25 rapidité du traitement est favorisée. De préférence alors, le dispositif électronique receveur comportant au moins une première zone de mémoire tampon et au moins une deuxième zone de mémoire tampon : - la première trame reçue et son information de 30 validité sont enregistrées dans la première zone de mémoire tampon ; - si la première trame reçue n'est pas valide, la deuxième trame reçue et son information de validité sont enregistrées dans la deuxième zone de mémoire tampon ; 3024932 3 - si la deuxième trame reçue n'est pas valide, la troisième trame reçue et son information de validité sont enregistrées dans la première zone de mémoire tampon ; 5 - la trame reconstituée et son information de validité sont enregistrées dans la deuxième zone tampon. Ceci limite les besoins en mémoire tampon. Avantageusement, la liaison de données étant 10 susceptible de subir une perturbation de durée maximale théorique prédéterminée, les trames sont espacées d'une durée intercalaire supérieure à la durée maximale théorique prédéterminée. La durée intercalaire est décomptée du début de 15 l'émission d'une trame au début de l'émission de la trame suivante. Ainsi, une même perturbation ne peut altérer le même bit de deux trames successives. Avantageusement encore, la liaison de données étant susceptible de subir deux perturbations consécutives 20 espacées d'une durée minimale théorique prédéterminée, chaque trame a une durée inférieure à la durée minimale théorique prédéterminée. Le risque qu'une trame soit altérée par deux perturbations consécutives est de la sorte limité. 25 L'invention a également pour objet un ensemble de traitement de données comprenant au moins un dispositif électronique émetteur et un dispositif électronique receveur reliés l'un à l'autre par une liaison de données, les dispositifs électroniques étant agencés pour 30 mettre en oeuvre le procédé de l'invention. D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit d'un mode de mise en oeuvre particulier et non limitatif de l'invention. 3024932 4 Il sera fait référence aux dessins annexés, parmi lesquels : - la figure 1 est une vue schématique d'un dispositif mettant en oeuvre l'invention, 5 - la figure 2 est un schéma-bloc illustrant les différentes étapes du procédé de l'invention. En référence aux figures, le procédé selon l'invention est mis en oeuvre dans un appareil comprenant deux dispositifs électroniques 1A, 1B comportant chacun 10 un circuit de traitement 2A, 25, tel qu'un processeur associé à une mémoire vive et à une mémoire de masse. La mémoire vive comprend deux zones de mémoire tampon dédiées au stockage temporaire des données transmises (les zones de mémoire tampon sont notées dans la suite 15 mémoire tampon 1 et mémoire tampon 2 pour plus de commodité et sans référence aux figures). Chaque circuit de traitement 2A, 2B est relié à une interface de communication 3A, 33. Les interfaces de communication 3A, 3B sont reliées l'une à l'autre à travers des filtres 4A, 20 4B par une liaison série 5. Les dispositifs 1A, 1B peuvent être tour à tour émetteur et récepteur. Ces différents composants ont une structure connue en elle-même et ne seront donc pas décrits plus en détail. En fonctionnement, des trames de données sont 25 transmises entre les dispositifs électroniques 1A, 1B pour être traitées par les circuits de traitement 2A, 23. L'appareil est agencé pour mettre en oeuvre un procédé de transmission qui est basé sur : - du côté de l'émetteur, une triplication 30 temporelle telle que chaque trame de données est envoyée trois fois (frame 1, 2, 3) avec une donnée de validité associée à chaque trame ; - du côté récepteur, une correction de trame basée sur l'information de validité et un 35 algorithme de vote majoritaire bit à bit. 3024932 5 Les dispositifs 1A, 1B sont plus précisément agencés pour mettre en oeuvre le procédé de transmission de données comprenant les étapes de : pour une trame de données à transmettre, préparer au 5 moins deux trames répliquées pour obtenir un jeu de trois trames à transmettre (ceci est l'opération de triplication) ; - calculer sur chaque trame une information de validité et l'associer à chaque trame ; 10 - transmettre successivement dans le temps les trames avec leurs informations de validité ; - vérifier la validité de la première trame reçue avec son information de validité et, en cas de succès, traiter la première trame et négliger 15 les autres trames du même jeu de trames ; si la première trame de données reçue n'est pas valide, attendre la prochaine trame et vérifier la validité de la deuxième trame reçue avec son information de validité et, en cas de succès, 20 traiter la deuxième trame et négliger les autres trames du même jeu de trames ; si la deuxième trame reçue n'est pas valide, attendre la prochaine trame et comparer, à la volée et bit à bit, la troisième trame reçue 25 avec la première trame reçue et la deuxième trame reçue pour reconstituer une trame au moyen d'un algorithme de vote majoritaire et calculer une information de validité de la trame reconstituée ; 30 - vérifier la validité de la troisième trame et si la troisième trame reçue est valide, traiter la troisième trame reçue ; - si la troisième trame reçue n'est pas valide, vérifier la validité de la trame reconstituée 35 et traiter la trame reconstituée si elle est 3024932 6 valide et la négliger si la trame reconstituée n'est pas valide. L'information de validité est ici le résultat d'un contrôle de redondance cyclique (ou CRC de l'anglais 5 « Cyclic Redundancy Check »), par exemple une somme de contrôle (ou « checksum »), qui permet de vérifier l'intégrité des données de la trame. Ce type de contrôle est connu en lui-même. Du côté récepteur, les trames 1 et 2 sont mémorisées 10 dans une mémoire tampon. La trame 3 est utilisée pour réaliser si nécessaire une correction d'erreur à la volée. Plus précisément, la trame 3 est comparée en temps réel, bit à bit, avec les trames 1 et 2 précédemment reçues et mémorisées : ceci permet de reconstituer en 15 temps réel une trame corrigée qui est stockée dans la mémoire tampon. Comme à chaque trame est associée une information de validité, le circuit de traitement du dispositif récepteur peut vérifier la validité de chaque trame 20 reçue. Chaque trame est donc vérifiée au regard de sa propre information de validité. La première trame qui est reçue, et dont la validité est confirmée par l'information de validité, est utilisée pour le traitement. 25 Par conséquent, pendant la réception : - la première trame reçue dont la validité est confirmée est rendue disponible pour le traitement ; - les trames suivantes du jeu de trames sont 30 ignorées. Si la trame 1 (première trame reçue) est validée (étape 10), la trame 1 est rendue accessible pour le traitement à réaliser et les trames 2 (deuxième trame reçue) et 3 (troisième trame reçue) sont ignorées. 3024932 7 Si la trame 1 n'est pas valide alors que la trame 2 est valide (étape 20), la trame 2 est rendue accessible et la trame 3 est ignorée. Si les trames 1 et 2 ne sont pas valides, le 5 dispositif récepteur réalise une détection d'erreur sur la trame 3. Chaque mot de la trame 3 est comparé (bit à bit) aux mots reçus des trames 1 et 2. Les bits majoritaires sont mémorisés et forment une trame reconstituée. 10 Si la trame 3 est validée (étape 30), alors la trame 3 est rendue disponible pour le traitement et les trames 1 et 2 sont ignorées. Si la trame 3 n'est pas correcte, le récepteur vérifie l'information de validité de la trame 3 15 reconstituée. Si l'information de validité est correcte (étape 40), alors la trame reconstituée est rendue disponible. Si l'information de validité n'est pas correcte, alors la transmission de données est considérée comme ayant échoué 20 (étape 50). Un exemple de trames reçues et de trame reconstituée est illustré dans le tableau ci-dessous. Alors que les trames de données reçues 1, 2 et 3 devraient être identiques (puisqu'elles sont identiques avant leur 25 transmission), il est visible qu'elles sont différentes en raison d'erreurs introduites durant la transmission. CRC1, CRC2, CRC3 and CRC4 sont les informations de validité respectivement des trames 1, 2, 3, et de la trame reconstituée. 30 Trame 1 Trame 2 Trame3 Trame reconstituée 11011000 10010000 10011000 10011000 00110010 00110010 00110010 00110010 11110111 11110111 11110111 11110111 5 3024932 8 11000001 11000101 11001001 11000001 10011000 10011000 10011000 10011000 11101111 11111111 11111111 11111111 00110010 00110010 00110010 00110010 00000000 10011000 10011000 10011000 00110010 00110010 00110010 00110010 10011000 10011000 10011000 10011000 11011000 10010000 10011010 10011000 00110010 00110010 00110010 00110010 10011000 10011000 10011000 10011000 CRC1 CRC2 CRC3 CR04 Tableau 1 Les différents cas correspondant à la réception des trois trames sont listés dans le tableau 2 ci-dessous. Dans ce tableau, "OK" signifie que la trame est valide, "KO" signifie que la trame n'est pas valide, "x" signifie que la trame est ignorée. Trame Trame Trame Statut Algorithme 1 2 3 après correction OK X x X Stocker la trame 1 dans la mémoire tampon 1. Si CR01 est OK, alors attendre une durée supérieure au temps d'inactivité (32 bits, « idle time ») après la fin de la trame 1 (les trames 2 et 3 sont ignorées). Indiquer que les données sont disponibles dans la mémoire tampon 1. Stocker la trame 1 dans la mémoire tampon 1. Si CR01 est KO, alors stocker la trame 2 dans la mémoire tampon 2 et si KO OK x X CR02 est OK, alors attendre une durée supérieure au temps d'inactivité après la fin de la trame 2 (la trame 3 est 3024932 9 ignorée). Indiquer que les données de la mémoire tampon 2 sont disponibles. KO KO OK X Stocker la trame 1 dans la mémoire tampon 1. Si CR01 est KO, alors stocker la trame 2 dans la mémoire tampon 2 et si CR02 est KO, alors stocker la trame 3 dans la mémoire tampon 1 et réaliser une correction à la volée dans la mémoire tampon 2. Si CRC3 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données de la mémoire tampon 1 sont disponibles. KO KO KO OK Stocker la trame 1 dans la mémoire tampon 1. Si CR01 est KO, alors stocker la trame 2 dans la mémoire tampon 2 et si CR02 est KO, alors stocker la trame 3 dans la mémoire tampon 1 et réaliser une correction à la volée dans la mémoire tampon 2. Si CR03 est KO et si CR04 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données de la mémoire tampon 2 sont disponibles. KO KO KO KO Stockage de la trame 1 dans la mémoire tampon 1. Si CR01 est KO, alors stocker la trame 2 dans la mémoire tampon 2 et si CR02 est KO, alors stocker la trame 3 dans la mémoire tampon 1 et réaliser une correction à la volée dans la mémoire tampon 2. Si CRC3 et CRC 4 sont KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. 3024932 10 Indiquer que les données sont corrompues. Tableau 2 Quand toutes les trames ont été reçues, il n'y a qu'un cas dans lequel les données rendues disponibles 5 pour le traitement sont erronées : les trois trames ont été corrompues et, lors de la comparaison bit à bit, deux des trames partagent des bits corrompus de la même manière. Le tableau 3 liste différents cas possibles quand au 10 moins une trame transmise n'a pas été reçue. Lorsqu'une trame ou plus manquent, la correction de trame n'est pas réalisable et la première trame correcte reçue est utilisée. Trame 1 Trame 2 Trame 3 Statut Algorithme après correction Manquante OK X N/A Stocker la trame 2 dans la mémoire tampon 1. Si CRC2 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 2 et ignorer la trame 3. Indiquer que les données de la mémoire tampon 1 sont disponibles. Manquante KO OK N/A Stocker la trame 2 dans la mémoire tampon 1. Si CRC2 est KO, stocker trame 3 dans la mémoire tampon 2. Si CRC3 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données de la mémoire tampon 2 sont disponibles. 3024932 11 Manquante KO KO N/A Stocker la trame 2 dans la mémoire tampon 1. Si CR02 est KO, stocker trame 3 dans la mémoire tampon 2. Si CR03 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données sont corrompues. Manquante KO Manquante N/A Stocker la trame 2 dans la mémoire tampon 1. Si CR02 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 2. Indiquer que les données sont corrompues. ManquanteManquante OK N/A Stocker la trame 3 dans la mémoire tampon 1. Si CR03 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données sont corrompues. ManquanteManquante KO N/A Stocker la trame 3 dans la mémoire tampon 1. Si CR03 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données sont corrompues. KO Manquante OK N/A Stocker la trame 1 dans la mémoire tampon 1. Si CR01 est KO, stocker la trame 3 dans la mémoire tampon 2. Si CR03 est OK, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données de la mémoire tampon 2 3024932 12 sont disponibles. KO Manquante KO N/A Stocker la trame 1 dans la mémoire tampon 1. Si CRC1 est KO, stocker la trame 3 dans la mémoire tampon 2. Si CR03 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 3. Indiquer que les données sont corrompues. KO ManquanteManquante N/A Stocker la trame 1 dans la mémoire tampon 1. Si CRC1 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 1. Indiquer que les données sont corrompues. KO KO Manquante N/A Stocker la trame 1 dans la mémoire tampon 1. Si CRC1 est KO, stocker la trame 2 dans la mémoire tampon 2. Si CRC2 est KO, attendre une durée supérieure au temps d'inactivité après la fin de la trame 2. Indiquer que les données sont corrompues. Tableau 3 Le mécanisme de l'invention combine un mécanisme de correction (triplication) avec un mécanisme de 5 vérification de validité pour avoir une bonne robustesse. Ainsi, la plupart des défaillances dans la transmission peuvent être détectées et corrigées. Dans les cas extrêmes où la correction n'est pas possible, la défaillance est détectée et la transmission 10 est considérée comme ayant échoué. 3024932 13 La mise en oeuvre de l'invention ne suppose aucun coût supplémentaire et ne nécessite que des ressources de calcul relativement faibles. L'invention est utilisable à toute transmission de 5 données entre dispositifs électroniques de traitement de données. REVENDICATIONS1. Procédé de transmission de données entre un dispositif électronique émetteur et un dispositif électronique receveur reliés l'un à l'autre par une liaison de données, comprenant les étapes de : - envoyer les données sous la forme d'au moins trois trames identiques envoyées successivement et associées chacune à une information de validité calculée sur la trame concernée, - vérifier la validité des trames reçues au fur et à mesure de leur réception par le dispositif électronique receveur et rendre disponible pour traitement la première trame valide et ignorer les autres. 2. Procédé selon la revendication 1, comprenant l'étape, lorsqu'aucune des trames reçues n'est valide, de reconstituer une trame par vote majoritaire à partir des trois trames reçues. 3. Procédé selon la revendication 2, comprenant les étapes de calculer une information de validité sur la trame reconstituée, et de rendre disponible pour traitement la trame reconstituée. 4. Procédé selon la revendication 2 ou la revendication 3, dans lequel la reconstitution de trame est effectuée au fur et à mesure de la réception des données de la troisième trame. 5. Procédé selon la revendication 4, le dispositif électronique receveur comportant au moins une première zone de mémoire tampon et au moins une deuxième zone de mémoire tampon, dans lequel : la première trame reçue et son information de validité sont enregistrées dans la première zone de mémoire tampon ; si la première trame reçue n'est pas valide, la deuxième trame reçue et son information de 3024932 15 validité sont enregistrées dans la deuxième zone de mémoire tampon ; - si la deuxième trame reçue n'est pas valide, la troisième trame reçue et son information de 5 validité sont enregistrées dans la première zone de mémoire tampon ; - la trame reconstituée et son information de validité sont enregistrées dans la deuxième zone tampon. 10 6. Procédé selon la revendication 1, la liaison de données étant susceptible de subir une perturbation de durée maximale théorique prédéterminée, dans laquelle les trames sont espacées d'une durée intercalaire supérieure à la durée maximale théorique prédéterminée. 15 7. Procédé selon la revendication 1, la liaison de données étant susceptible de subir deux perturbations consécutives espacées d'une durée minimale théorique prédéterminée, dans laquelle chaque trame a une durée inférieure à la durée minimale théorique prédéterminée. 20 8. Ensemble de traitement de données comprenant au moins un dispositif électronique émetteur et un dispositif électronique receveur reliés l'un à l'autre par une liaison de données, les dispositifs électroniques étant agencés pour mettre en oeuvre le procédé selon les 25 revendications 1 à 7.