Brevet FR2914519A1 — publié le 20081003

PROCÉDÉ DE CONTRâLE D'INTÉGRITÉ DES DONNÉES DANS UN RÉSEAU AFDX DESCRIPTION 5 DOMAINE TECHNIQUE La présente invention concerne le domaine de la sécurité des systèmes à bord d'un aéronef et plus particulièrement du contrôle d'intégrité des données dans un réseau embarqué. 10 ÉTAT DE LA TECHNIQUE ANTÉRIEURE La sécurité des systèmes est une préoccupation majeure dans la conception d'un aéronef. En particulier, on doit s'assurer de l'intégrité de certains types de données de mesure, considérées comme 15 critiques pour le pilotage de l'avion. Parmi ces données on peut citer celles relatives au positionnement de l'avion ou encore celles donnant la quantité restante de carburant. Ces données sont généralement émises par des 20 capteurs redondants à destination d'une pluralité de systèmes de calcul et/ou d'affichage présents dans la baie avionique. La transmission des données est réalisée au moyen d'un réseau embarqué, typiquement un réseau AFDX (Avionics Full Duplex Switched Ethernet). 25 Le réseau AFDX, développé pour les besoins de l'aéronautique, est basé sur un réseau Ethernet commuté. Dans un réseau Ethernet commuté, chaque terminal, source ou destinataire, est relié individuellement à un 30 commutateur de trames et les commutateurs sont reliés entre eux par des liaisons physiques. Plus précisément, chaque commutateur possède une pluralité de ports connectés aux ports d'autres commutateurs ou des coupleurs de terminaux. On appelle lien virtuel dans un réseau AFDX une liaison de niveau 2 dans le réseau Ethernet commuté sous jacent. Plus précisément un lien virtuel entre un terminal source et un terminal destinataire est défini comme un chemin orienté à travers le réseau, emprunté par les trames du terminal source à destination du terminal destinataire. On trouvera une description détaillée du réseau AFDX dans le document intitulé AFDX protocol tutorial disponible sur le site www.condoreng.com ainsi que dans la demande de brevet FR-A-2832011 déposée au nom de la demanderesse. On rappellera simplement ici que le réseau AFDX est full-duplex, déterministe et redondant. Par full-duplex, on comprend que chaque terminal peut simultanément émettre et recevoir des trames sur des liens virtuels distincts. Le réseau AFDX est déterministe, au sens où les liens virtuels ont des caractéristiques garanties en termes de borne de latence, de ségrégation physique de flux, de bande passante et de débit. Chaque lien virtuel dispose pour ce faire d'un chemin réservé de bout en bout à travers le réseau. Enfin le réseau AFDX est redondant car le réseau Ethernet sous-jacent est dupliqué pour des raisons de disponibilité. Les données sont transmises sous forme de paquets IP encapsulés dans des trames Ethernet. A la différence de la commutation Ethernet classique (utilisant l'adresse Ethernet du destinataire), la commutation de trames sur un réseau AFDX utilise un identificateur de lien virtuel inclus dans l'entête de trame. Lorsqu'un commutateur reçoit sur l'un de ses ports d'entrée une trame, il lit l'identificateur de lien virtuel et détermine à partir de sa table de commutation le ou les port(s) de sortie sur le(s)quel(s) elle doit être transmise. Les commutateurs vérifient au vol l'intégrité des trames transmises sans toutefois demander une retransmission si une trame est erronée : les trames détectées comme erronées sont éliminées. Les trames transitant sur un lien virtuel sont numérotées en séquence. A la réception, le terminal destinataire vérifie l'intégrité de la séquence des trames. Chaque lien virtuel est mono-directionnel. Il ne peut être issu que d'un terminal source à la fois mais peut aboutir à plusieurs destinataires. On distingue les liens virtuels en mode point à point (ou unicast), ne desservant qu'un seul destinataire, des liens virtuels en mode multi-point (ou multicast) qui en desservent plusieurs. Lorsqu'il existe un lien virtuel de type unicast ou multicast entre un terminal source et un terminal destinataire, on dit aussi que le second est abonné au premier. Par ailleurs les données critiques au sens défini plus haut font généralement l'objet d'une double vérification, une première au niveau de leur émission et un seconde au niveau de leur traitement après réception. Plus précisément, chaque capteur, ou terminal émetteur, de données critiques est dupliqué : un premier émetteur est surveillé par un second émetteur, dit de contrôle. De même à la réception, on prévoit un premier récepteur abonné au premier émetteur et un second récepteur abonné au second émetteur. Le second récepteur surveille le premier, c'est-à-dire les données reçues et éventuellement reçues par l'autre. La Fig. 1 représente de manière schématique un système embarqué comprenant un couple de terminaux émetteurs et un couple de terminaux récepteurs reliés à travers un réseau AFDX. Le terminal récepteur 103, noté COM, est abonné au terminal émetteur 101, également noté COM, par un lien virtuel VL1. De même le terminal récepteur 104, noté MON, est abonné au terminal émetteur 102, également noté MON, par un lien virtuel VL2. Le lien virtuel VL1 passe par les commutateurs SW1 et SW2 du réseau. De même, le lien virtuel VL2 passe par les commutateurs SW3 et SW4. L'émetteur MON contrôle les données transmises par l'émetteur COM et le récepteur MON contrôle les données reçues et éventuellement traitées par le récepteur COM. Pour ce faire, l'émetteur, respectivement le récepteur COM, transmet ses données à l'émetteur, respectivement au récepteur COM via un bus extérieur au réseau AFDX, par exemple un bus CAN. On comprendra que les fonctions MON et COM peuvent être assurées de manière croisée et symétrique. Plus précisément, le récepteur 103 contrôle l'intégrité des données du récepteur 104, comme ce dernier contrôle l'intégrité des données du récepteur 103. De la même façon, l'émetteur 101 et l'émetteur 103 se surveillent mutuellement de manière croisée. Lorsque les récepteurs 103 et 104 effectuent un traitement sur les données reçues, le contrôle peut porter sur les valeurs ainsi traitées. Plus précisément si le traitement correspond à une fonction F, les deux récepteurs mettront en oeuvre des implémentations logicielles ou matérielles différentes de cette même fonction, et compareront les valeurs obtenues grâce à ces réalisations différentes de la même fonction. Si une donnée n'est pas considérée comme intègre par l'émetteur 101 ou 102, agissant en tant qu'émetteur MON, celui-ci ne transmet pas la donnée au récepteur correspondant. Alternativement, il peut transmettre cette donnée en lui adjoignant une information la déclarant invalide. De manière similaire, si le récepteur 103 ou 104, agissant en tant que récepteur MON considère que la donnée reçue (éventuellement traitée par le récepteur COM) n'est pas intègre, ce dernier en avertit le récepteur COM qui, par suite, ne la prend pas en compte. Le défaut d'intégrité peut être dû à une erreur de transmission (par exemple à la corruption d'une trame lors de son passage dans un commutateur) ou à une erreur de traitement dans le récepteur lui-même. Le contrôle de l'intégrité des données doit prendre en compte l'asynchronisme des émetteurs. Plus précisément, du côté récepteur, le contrôle d'intégrité se fait à l'aide d'un seuil de tolérance bT , c'est-à-dire grâce à la comparaison : ucom( ) union(i) Ç 8T (1) où dcom(i) est la donnée courante reçue/ traitée par le récepteur COM via le lien virtuel VL1 et dmon(i) la donnée de contrôle correspondante, reçue du récepteur MON. Si le résultat de la comparaison est positif, on considère que la donnée doom(i) est intègre. Le seuil bT est choisi en fonction de la dynamique maximale S. des données mesurées et de la borne supérieure du décalage temporel At qu'elles peuvent subir, plus précisément on choisit bT > S,fl At , . Le décalage temporel At est fonction de l'asynchronisme des émetteurs, de la différence de temps de propagation sur les liens VL1 et VL2, et du retard de transmission de la donnée de contrôle. Si la fréquence d'émission des données, par exemple la fréquence d'échantillonnage du paramètre à mesurer, est faible, le décalage temporel At peut être relativement important, ce qui peut conduire à une valeur de seuil bT élevée même pour des signaux à dynamique modérée. Dans ce cas, le test (1) s'avère imprécis et une donnée erronée risque d'être indûment considérée comme intègre. D'autre part, comme on l'a vu, lorsque les données doivent être traitées par les récepteurs, des réalisations différentes de la fonction F doivent être prévues. Ceci conduit par exemple à prévoir deux logiciels distincts implémentant cette même fonction, avec les coûts de développement et de maintenance afférents. L'objet de la présente invention est de proposer un système de vérification de l'intégrité des données qui ne présente pas les inconvénients précités, à savoir qui soit peu sensible à l'asynchronisme et ne nécessite pas l'utilisation de logiciels distincts. EXPOSÉ DE L'INVENTION La présente invention est définie par un système de vérification de l'intégrité de données dans un réseau embarqué à commutation de trames, comprenant au moins des premier et second terminaux émetteurs asynchrones, le second étant chargé du contrôle du premier, et au moins des premier et second terminaux récepteurs, le second étant chargé du contrôle du premier, dans lequel on prévoit : - un premier lien virtuel multicast reliant le premier terminal émetteur aux dits terminaux récepteurs, pour transmettre des données dudit premier terminal émetteur aux dits terminaux récepteurs ; un second lien virtuel reliant le premier terminal récepteur au second terminal émetteur, pour transmettre à ce dernier les données que le premier terminal récepteur a reçues du premier terminal émetteur, ledit second lien virtuel ne passant par aucun des commutateurs communs aux branches du premier lien virtuel ; - un troisième lien virtuel reliant le second terminal émetteur au premier terminal récepteur pour lui transmettre le résultat d'une vérification de l'intégrité des données reçues par le premier terminal récepteur. De préférence, le premier terminal récepteur effectue un traitement (F) sur la donnée reçue (dcom(l) ) du premier terminal émetteur, transmet la donnée ainsi traitée (F(dcom(i))) au second terminal récepteur, et ce dernier effectue le traitement inverse sur ladite donnée traitée puis effectue une première comparaison du résultat (F-1(F(dcom(i)))) obtenu avec la donnée (dmon(l) ) qu'il a lui-même reçue du premier terminal émetteur par ledit premier lien virtuel. Le second terminal récepteur transmet avantageusement le résultat de la première comparaison au dit premier terminal récepteur. Si le résultat de la première comparaison est négatif, le premier terminal récepteur ne prend pas en compte la donnée traitée. Ladite donnée traitée et ledit résultat de la première comparaison sont transmis par exemple à l'aide d'un bus CAN. De préférence, le second terminal émetteur vérifie l'intégrité d'une donnée reçue du premier terminal récepteur en effectuant une seconde comparaison de ladite donnée avec celle qu'il vient d'émettre au second terminal récepteur. Le résultat de la seconde comparaison est 25 avantageusement transmis au moins au premier terminal récepteur. Si le résultat de la seconde comparaison est négatif, le premier terminal récepteur ne tient pas compte de la donnée reçue. 30 Selon une variante de réalisation, ledit réseau embarqué est un réseau AFDX. Enfin, l'invention concerne un aéronef comportant un système de vérification d'intégrité de données tel qu'exposé plus haut. BRÈVE DESCRIPTION DES DESSINS La Fig. 1 représente un système de vérification de l'intégrité de données connu de l'état de la technique ; La Fig. 2 représente un système de vérification de l'intégrité de données selon un mode de réalisation de l'invention. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS On considère à nouveau un couple d'émetteurs et un couple de récepteurs abonnés à ces émetteurs via un réseau embarqué à commutation de trames, par exemple un réseau AFDX. La première idée à la base de l'invention est de réduire l'asynchronisme du système en transmettant les données d'un émetteur simultanément aux deux récepteurs MON et COM. Pour ce faire, les deux récepteurs en question sont abonnés à chaque émetteur grâce à un lien multicast. La Fig. 2 illustre schématiquement le système de 25 vérification d'intégrité des données selon un mode de réalisation de l'invention. Les récepteurs 203 et 204 sont tous deux abonnés à l'émetteur 201 via le lien virtuel multicast VL1. Nous supposerons que l'émetteur 202 et le récepteur 204 30 remplissent le rôle (MON) de contrôle de l'émetteur 201 et du récepteur 203 respectivement. En pratique, les émetteurs et récepteurs pourront se contrôler de manière croisée comme dans l'art antérieur, auquel cas les récepteurs seront également abonnés à l'émetteur 202 via un lien virtuel multicast VL2. Les branches du lien virtuel multicast VL1 (reliant respectivement l'émetteur 210 aux récepteurs 203 et 204) possèdent un commutateur SW1 commun. De manière générale, les branches du lien virtuel multicast VL1 présenteront le plus petit nombre possible de commutateurs communs. On comprend en effet que si un commutateur commun est défectueux, des erreurs identiques pourront affecter les trames reçues par les deux récepteurs sans qu'il soit pour autant possible de les déceler. Nous noterons dans la suite SZ l'ensemble des commutateurs communs aux branches du lien virtuel VL1 desservant les deux récepteurs. Du fait que les récepteurs MON et COM sont abonnés à la même source, à savoir l'émetteur 101, ils reçoivent les données simultanément, à la différence de temps de propagation entre les deux branches du lien virtuel près. Après avoir reçu une donnée dcom(i), le récepteur COM effectue un traitement F et transmet la donnée ainsi traitée F(dcom(i)) au récepteur MON via le bus CAN 205. Le récepteur COM vérifie que le traitement a été correctement effectué, par exemple en appliquant la fonction réciproque F-1 et en comparant le résultat obtenu F-1(F(dcom(i))) avec la donnée qu'il a lui-même reçue, notée dmon(i). Du fait que les données dmon(i) et dcom(i) sont synchrones, à la différence entre temps de propagation sur les branches du lien virtuel près, le seuil de comparaison bT pourra être choisi relativement faible, voire nul. Toutefois, même si le test de F-1(F(dcom(i))) avec dmon(i) est positif, on ne peut conclure définitivement à l'intégrité de cette donnée. En effet, si une trame est affectée d'une erreur lors de sa commutation à travers un commutateur de SI, c'est-à-dire un commutateur commun aux deux branches du lien virtuel, les données dcom(i) et dmO1n(i) pourront toutes deux être affectées par la même erreur. Afin de permettre la détection d'une telle erreur, le système prévoit un lien virtuel de retour, dit encore lien virtuel écho. On a représenté par VL3 un tel lien virtuel écho reliant le récepteur COM 203 à l'émetteur MON 202. Le routage du lien virtuel VL3 est choisi de manière à ce que ce dernier ne passe par aucun des commutateurs de l'ensemble SI, autrement le lien virtuel écho est ségrégué vis-à-vis des commutateurs communs aux branches du lien virtuel direct VL1. Le récepteur COM 203 transmet sur le lien écho chaque donnée dcom(i) qu'il reçoit de l'émetteur COM 101. L'émetteur MON 202 compare ensuite cette donnée avec la donnée courante et transmet le résultat de cette comparaison via un lien virtuel au premier récepteur COM. Ce lien virtuel peut être unicast ou bien, comme indiqué sur la figure, multicast. Ce sera notamment le cas si on utilise pour ce faire le lien virtuel VL2, servant par ailleurs au second terminal émetteur pour transmettre ses données aux premier et second terminaux récepteurs. On a alors un système entièrement symétrique avec un second lien virtuel écho (non représenté) partant du second terminal récepteur 204 à destination du premier terminal émetteur 201. Si le résultat de la comparaison est négatif, on en conclut que les données dcom(i) et dmon(i) sont affectées par une même erreur. L'émetteur MON 202 avertit alors au moins le récepteur COM, voire les deux récepteurs, de cette situation. Le(s) récepteur(s) inhibe(nt) par suite l'utilisation de d(i), autrement dit la donnée traitée F(d(i)) n'est pas prise en compte. Comme on l'a vu, le système de vérification de l'intégrité des données selon l'invention est dissocié en deux parties, une première partie permettant de vérifier l'intégrité du traitement et de la transmission à travers les éléments distincts des branches du lien virtuel et une seconde partie permettant de vérifier l'intégrité de la transmission à travers les éléments communs des dites branches. La première partie s'affranchit des problèmes d'asynchronisme, la seconde partie permet d'éliminer les cas d'erreurs restants. Par ailleurs, les deux récepteurs MON et COM ne comprennent que des implémentations des fonctions F et F-', de sorte qu'il 25 n'est plus nécessaire de prévoir des implémentations distinctes de la même fonction F. Selon un exemple de réalisation particulier, les terminaux émetteurs 201 et 202 sont des calculateurs de jauge de carburant et les récepteurs 203 et 204 sont 30 des équipements d'affichage permettant d'afficher la quantité restant de carburant à bord. REVENDICATIONS 1. Système de vérification de l'intégrité de données dans un réseau embarqué à commutation de trames, comprenant au moins des premier et second terminaux émetteurs asynchrones, le second (202) étant chargé du contrôle du premier (201), et au moins des premier et second terminaux récepteurs, le second (204) étant chargé du contrôle du premier (203), caractérisé en ce qu'il comprend en outre : - un premier lien virtuel multicast (VL1) reliant le premier terminal émetteur (201) aux dits terminaux récepteurs (203,204), pour transmettre des données dudit premier terminal émetteur aux dits terminaux récepteurs ; - un second lien virtuel (VL3) reliant le premier terminal récepteur (203) au second terminal émetteur (202), pour transmettre à ce dernier les données que le premier terminal récepteur a reçues du premier terminal émetteur, ledit second lien virtuel ne passant par aucun des commutateurs communs (SW1) aux branches du premier lien virtuel ; un troisième lien virtuel (VL2) reliant le second terminal émetteur au premier terminal récepteur pour lui transmettre le résultat d'une vérification de l'intégrité des données reçues par le premier terminal récepteur. 2. Système de vérification selon la revendication 1, caractérisé en ce que le premier terminal récepteur effectue un traitement (F) sur la donnée reçue (dcom(l) )du premier terminal émetteur, transmet la donnée ainsi traitée (F(dcom(i))) au second terminal récepteur, et que ce dernier effectue le traitement inverse sur ladite donnée traitée puis effectue une première comparaison du résultat (F-1(F(dcom(i)))) obtenu avec la donnée (dmon(a) ) qu'il a lui-même reçue du premier terminal émetteur par ledit premier lien virtuel. 3. Système de vérification selon la revendication 2, caractérisé en ce que le second terminal récepteur (204) transmet le résultat de la première comparaison au dit premier terminal récepteur (203). 4. Système de vérification selon la revendication 3, caractérisé en ce que si le résultat de la première comparaison est négatif, le premier terminal récepteur (203) ne prend pas en compte la donnée traitée. 5. Système de vérification selon l'une des revendications 2 à 4, caractérisé en ce que ladite donnée traitée et ledit résultat de la première comparaison sont transmis à l'aide d'un bus CAN (205). 6. Système de vérification selon l'une des revendications précédentes, caractérisé en ce que le second terminal émetteur (202) vérifie l'intégrité d'une donnée reçue du premier terminal récepteur (203) en effectuant un seconde comparaison de ladite donnée avec celle qu'il vient d'émettre au second terminal récepteur. 7. Système de vérification selon la revendication 6, caractérisé en ce que le résultat de la seconde comparaison est transmis au moins au premier terminal récepteur (203). 8. Système de vérification selon la revendication 7, caractérisé en ce que si le résultat de la seconde comparaison est négatif, le premier terminal récepteur ne tient pas compte de la donnée reçue. 9. Système de vérification selon l'une des revendications précédentes, caractérisé en ce que ledit réseau embarqué est un réseau AFDX. 15 10. Aéronef caractérisé en ce qu'il comporte un système de vérification d'intégrité de données selon l'une des revendications précédentes. 10