Brevet FR2978264A1 — publié le 20130125

La présente invention concerne un procédé de rechargement automatique de logiciel et un dispositif de rechargement automatique de logiciel. La corruption de logiciel est un phénomène qui peut mener à la perte ou l'endommagement des données et au dysfonctionnement des systèmes informatiques. De très nombreux facteurs peuvent être à l'origine d'une corruption de logiciel. Par exemple la corruption peut être due à une erreur pendant le transfert des données (téléchargement), à une erreur du logiciel lui-même (overflows, ... ), ou au vieillissement de la mémoire contenant les données en question. Dans le domaine aéronautique une telle corruption peut être consécutive à un bombardement ionique auquel sont soumis les équipements embarqués, également appelés calculateurs, dans un aéronef lors de vols à haute altitude, en particulier pendant des vols long courrier. Plus un logiciel reste longtemps exposé aux sources de corruptions, plus la probabilité d'occurrence d'une corruption augmente. Cela peut être le cas par exemple pour les vols à haute altitude de longue durée ou pour des versions de logiciel qui n'ont pas évoluées pendant de nombreuses années. Certains calculateurs embarqués sont capables de détecter la corruption du logiciel installé dans le calculateur lors du téléchargement du logiciel ou pendant l'utilisation du calculateur. La détection d'une corruption de logiciel peut amener le calculateur à déclarer tout ou partie de son logiciel inutilisable et à signaler une panne au système de maintenance centralisé. Dans le cas le plus problématique, le logiciel chargé de communiquer avec l'aéronef peut être lui-même corrompu, ce qui peut éventuellement entrainer une panne dudit système sans la possibilité de signaler l'origine de la panne en question. Ce type de pannes entraine des procédures d'investigation en maintenance, d'éventuelles déposes de calculateurs (avec retour et réparation chez le fournisseur) et donc globalement des coûts de maintenance potentiellement élevés. La présente invention vise à pallier au moins un de ces inconvénients. A cet effet un premier aspect de l'invention concerne un procédé de rechargement automatique de logiciel comprenant une étape de détection de corruption d'a u moins une partie d'un logiciel d'un dispositif programmable embarqué ; et, en réponse à la détection de corruption ; une étape de rechargement automatique d'une version non corrompue de ladite au moins une partie du logiciel corrompue pour remplacer ladite au moins une partie du logiciel corrompue. Le rechargement automatique de tout ou partie d'un logiciel en réponse à la détection d'une corruption dudit logiciel permet de remédier de façon automatisée à la problématique de corruption des logiciels embarqués. Ainsi, dans le domaine aéronautique, par exemple, une immobilisation de l'aéronef pour une procédure de maintenance peut être évitée. Selon un mode de réalisation l'étape de détection comporte le calcul d'un code de vérification du logiciel et la comparaison du code de vérification avec un code de référence. Par exemple, le code de vérification peut comprendre un code de contrôle de redondance cyclique CRC. Dans un mode de réalisation de l'invention l'étape de détection de corruption est réalisée par le dispositif programmable embarqué et le procédé comporte en outre une étape de signalisation de la corruption à un dispositif de gestion de téléchargement. Selon un mode de réalisation l'étape de signalisation de la corruption comprend l'émission d'une requête de téléchargement sous forme d'une trame ayant un code d'identification et contenant une identification de logiciel à recharger et/ou une information de localisation de ladite au moins une partie de logiciel corrompue. Dans un mode de réalisation particulier de l'invention, l'étape de comparaison du code de vérification avec un code de référence est effectuée par le dispositif programmable embarqué. Dans un autre mode de réalisation, l'étape de détection comprend en outre la transmission périodique, au dispositif de gestion de téléchargement, du code de vérification calculé par le dispositif programmable embarqué pour permettre au dispositif de gestion de téléchargement de réaliser l'étape de comparaison du code de vérification avec un code de référence. Selon un mode de réalisation l'étape de rechargement du logiciel est retardée jusqu'à une phase de fonctionnement d'un aéronef, sur lequel est embarqué le dispositif programmable, pendant laquelle un téléchargement de logiciel est autorisé. Par exemple, l'émission de la requête de rechargement par le dispositif programmable embarqué peut être retardée ou l'étape de rechargement par le dispositif de gestion de téléchargement peut être retardée. Dans un mode de réalisation de l'invention les phases de fonctionnement pendant lesquelles un téléchargement de logiciel est autorisé sont déterminées en fonction d'au moins un des facteurs suivants : la situation de l'aéronef par rapport au sol, la vitesse de l'aéronef, l'état des moteurs de l'aéronef et l'état de ravitaillement de l'aéronef. Par exemple, l'étape de rechargement ne peut pas être lancée pendant une phase d'atterrissage de l'aéronef, une phase de décollage de l'aéronef, une phase au sol pendant laquelle la vitesse de l'aéronef au sol est supérieure à 80kts ou une phase en vol pendant laquelle la vitesse de l'aéronef en vol est inférieure à 80kts. Selon un mode de réalisation la requête de téléchargement peut être relayée vers un dispositif de téléchargement localisé au sol pour effectuer le rechargement de ladite version non corrompue du logiciel. Dans un mode de réalisation une notification est émise vers un 25 système de maintenance après l'étape de rechargement pour confirmer la réalisation du rechargement du logiciel corrompu. Un deuxième aspect de l'invention concerne un dispositif de gestion de téléchargement embarqué comportant une unité de traitement de notification adaptée pour traiter une notification transmise par un dispositif programmable 30 embarqué indiquant la corruption d'au moins une partie d'un logiciel du dispositif programmable embarqué ; et une unité de téléchargement adaptée pour obtenir une version non corrompue de ladite au moins une partie du logiciel corrompue et la télécharger dans le dispositif programmable embarqué en réponse à la notification. Dans un mode de réalisation la notification comprend une requête de téléchargement indiquant la détection de corruption de ladite au moins une partie du logiciel corrompue. Dans un autre mode de réalisation de l'invention, la notification comprend un code de vérification calculé par le dispositif programmable embarqué et l'unité de traitement de notification peut être adaptée pour comparer le code de vérification calculé par le dispositif programmable embarqué avec un code de référence afin de déterminer ladite corruption. Par exemple, le code de vérification peut comprendre un code de contrôle de redondance cyclique CRC. Dans un mode de réalisation particulier de l'invention, l'unité de téléchargement est adaptée pour retarder l'étape de rechargement du logiciel jusqu'à une phase de fonctionnement d'un aéronef, sur lequel est embarqué le dispositif programmable, pendant laquelle un téléchargement de logiciel est autorisé. Par exemple les phases de fonctionnement pendant lesquelles un téléchargement de logiciel est autorisé peuvent être déterminées en fonction d'au moins un des facteurs suivants : la situation de l'aéronef par rapport au sol, la vitesse de l'aéronef, l'état des moteurs de l'aéronef et l'état de ravitaillement de l'aéronef. Dans un mode de réalisation l'unité de traitement de notification est adaptée pour relayer une requête de téléchargement vers un dispositif de téléchargement localisé au sol pour effectuer le rechargement du logiciel. Selon un mode de réalisation le dispositif de gestion de téléchargement est configuré pour envoyer une notification vers un système de maintenance après l'étape de rechargement pour confirmer la réalisation du rechargement du logiciel corrompu. Un troisième aspect de l'invention concerne un dispositif programmable embarqué comportant: une unité de vérification de logiciel permettant la détection d'une corruption d'au moins une partie d'un logiciel du dispositif programmable embarqué ; une unité de signalisation adaptée pour signaler une indication de la corruption à un dispositif de gestion de téléchargement embarqué ; et une unité de téléchargement adaptée pour remplacer ladite au moins une partie du logiciel corrompue par une version non corrompue téléchargée. Dans un mode de réalisation l'unité de vérification est adaptée pour effectuer le calcul d'un code de vérification du logiciel et la comparaison du code de vérification avec un code de référence. Par exemple, le code de vérification comprend un code de contrôle de redondance cyclique GRC. Dans un autre mode de réalisation l'unité de vérification est adaptée pour effectuer le calcul d'un code de vérification du logiciel et l'unité de signalisation est adaptée pour transmettre périodiquement le code de vérification calculé au dispositif de gestion de téléchargement pour permettre au dispositif de gestion de téléchargement de réaliser l'étape de comparaison du code de vérification avec un code de référence. Selon un mode de réalisation particulier l'unité de signalisation est adaptée pour émettre une requête de téléchargement sous forme d'une trame ayant un code d'identification et contenant une identification de logiciel à recharger et/ou une information de localisation de ladite au moins une partie de logiciel corrompue. Un quatrième aspect de l'invention concerne un système de communication pour un aéronef caractérisé en ce qu'il comporte: un dispositif de gestion de téléchargement embarqué selon le deuxième aspect de l'invention ; au moins un dispositif programmable embarqué selon le troisième aspect de l'invention ; et un dispositif de stockage de logiciel pour stocker une version non corrompue du logiciel dudit au moins un dispositif programmable embarqué. Un cinquième aspect de l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé selon le premier aspect de l'invention lorsqu'il est chargé et exécuté par un processeur d'un système de communication, ainsi qu'un produit programme d'ordinateur et un support de stockage pour de tels programme et produit. Un sixième aspect de l'invention concerne un aéronef comprenant un dispositif de gestion de téléchargement embarqué selon le deuxième aspect de l'invention ; et un dispositif programmable embarqué selon le troisième aspect de l'invention. L'aéronef peut comprendre en outre un dispositif de stockage de logiciel pour stocker une version non corrompue du logiciel dudit au moins un dispositif programmable. D'autres particularités et avantages de l'invention apparaîtront dans la description ci-après, illustrée par les dessins ci-joints, dans lesquels : - la figure 1 représente schématiquement un système de communication d' un aéronef ; - la figure 2 représente schématiquement un système de rechargement de logiciel selon un premier mode de réalisation de l'invention ; - la figure 3 représente schématiquement un système de rechargement de logiciel selon un deuxième mode de réalisation de l'invention ; - la figure 4 représente schématiquement un système de rechargement de logiciel selon un troisième mode de réalisation de l'invention ; - la figure 5 illustre les opérations de rechargement de logiciel selon un mode de réalisation de l'invention ; et - la figure 6 illustre un exemple des phases de téléchargement autorisées pour un aéronef. - L'invention est illustrée ci-après au travers d'exemples tirés du domaine aéronautique, mais concerne d'une façon générale tout type de systèmes informatiques susceptibles d'être exposés à une corruption de logiciel. La figure 1 illustre schématiquement un système de communication 1 installé dans un aéronef selon au moins un mode de réalisation de l'invention. Ce système 1 repose sur une architecture réseau numérique de type Ethernet adaptée à l'aéronautique et appelée réseau ADCN (« Avionics Data Communication Network ») utilisant la technologie AFDX (« Avionics Full DupleX switched Ethernet »). Le réseau 2, que l'on nomme ci-après réseau AFDX en lien avec la technologie de communication associée, interconnecte, entre eux, une pluralité n d'équipements embarqués 10-1, 10-2...10-n, c'est-à-dire des équipements réalisant des fonctions propres à l'aéronef. Ces équipements embarqués sont également appelés calculateurs ou LRU (« Line Replaceable Units »). Dans les systèmes embarqués, il est connu que les calculateurs soient dupliqués pour des questions de sécurité. Pour la suite de la description, on assimile ces calculateurs redondants à des calculateurs indépendants du système 1. Le réseau 2 est un réseau numérique de commutation dans lequel différents commutateurs aiguillent les données véhiculées d'un tronçon de bus AFDX vers un autre tronçon de bus AFDX. Ces commutateurs sont vus ici comme des équipements d'aiguillage n'altérant pas le contenu des données véhiculées. Chaque calculateur 10-1, 10-2...10-n, est connecté directement à un commutateur, dit "commutateur correspondant" qui est « son » point d'entrée dans le réseau 2. Chaque calculateur est équipé d'un système informatique chargé avec un logiciel pour effectuer un ou plusieurs fonctions de l'équipement embarqué. Les calculateurs 10-1, 10-2...10-n sont reliés au moyen du réseau 2 ADCN à un dispositif de gestion de téléchargement 20 (égale ment appelé DLCS - Data Loading & Configuration System). Le dispositif de gestion de téléchargement 20 est configuré pour gérer le téléchargement des logiciels des calculateurs 10-1, 10-2...10-n. Le dispositif de gestion 20 est équipé d'une interface de communication pour communiquer avec un dispositif de stockage des logiciels 30 afin de récupérer le logiciel à télécharger vers le calculateur en question. Dans certains modes de réalisation de l'invention, le dispositif de stockage des logiciels 30 est embarqué, par exemple à bord d'un aéronef. Dans d'autres modes de réalisation le dispositif de stockage des logiciels 30 se trouve au sol. En référence à la figure 2 on décrit de façon plus détaillée des éléments du système de communication selon un premier mode de réalisation de l'invention. Dans ce mode de réalisation le calculateur 10 est équipé d'un logiciel 11 téléchargeable. Le code du logiciel est stocké dans une mémoire du code du calculateur. Le calculateur comporte en outre un module de détection de corruption de logiciel 12, un module de téléchargement de logiciel 13 et une mémoire 14 pour stocker des données de configuration et une base de données. Le module de détection de corruption de logiciel 12 est configuré pour détecter une corruption du code de logiciel 11. La détection peut être faite directement lors du téléchargement du code de logiciel ou bien pendant l'exécution du code de logiciel. Le module de détection 12 est configuré pour effectuer la détection par l'intermédiaire d'un processus de vérification comprenant une étape de calcul d'un code ou d'une signature de vérification tel qu'un code de contrôle de redondance cyclique appelé CRC («Cyclic Redundancy Check »), une parité ou un code de MD5, par exemple. A titre d'exemple, dans le premier mode de réalisation de l'invention le module de détection de corruption de logiciel 12 est configuré pour vérifier un code CRC afin de déterminer si le logiciel 11 ou une partie du logiciel 11 est corrompu. Pour ce faire, le module de détection de corruption de logiciel 12 calcule un code CRC, soit sur chacun des fichiers contenus dans le logiciel 11, soit sur l'ensemble du logiciel 11 lui-même, soit à la fois sur les fichiers et sur le logiciel. Ensuite le module de détection de corruption de logiciel 12 compare les codes CRC « fichiers » et/ou « logiciel » avec les codes CRC de référence correspondants qui ont été calculés au sol lors de l'élaboration du logiciel. Les codes CRC calculés au sol sont contenus dans un fichier particulier du logiciel 11 dans l'en-tête « HEADER » qui est en général le premier composant à être téléchargé dans le calculateur 10 lors du téléchargement du logiciel. De plus, la détection de corruption de logiciel peut être faite bien après que le téléchargement du logiciel 11 au calculateur ait 10 eu lieu, pendant l'utilisation du calculateur 10, en utilisant des méthodes similaires à celles appliquées lors du téléchargement. Un calcul de CRC peut être effectué à un instant de temps T ou suite à un évènement tel qu'un démarrage (boot), un reset, une mise sous tension, un passage de l'aéronef de l'état « au sol » à « en vol », sur tout ou partie du code du logiciel 11 ou sur des données stockées en mémoire 14. Une vérification régulière du code CRC peut être effectuée pour vérifier que le CRC ne change pas à un temps T+X ou suite à nouvelle occurrence de l'évènement. Dans ce mode de réalisation de l'invention, le module de détection de corruption 12 se situe dans une zone mémoire indépendante dudit logiciel 11 à vérifier afin de ne pas être lui-même exposé à la corruption. Le niveau d'assurance de conception appelé DAL « Design Assurance Level » du logiciel du module de détection de corruption 12 est égal ou supérieur au DAL du logiciel 11 à protéger. Dans une variante, le module de détection de corruption 12 peut faire partie du logiciel principal de communication avec l'aéronef. Le module de téléchargement 13 « dataloading agent » est chargé du traitement du protocole de téléchargement du logiciel. Il est configuré pour transmettre au dispositif de gestion 20 une requête de téléchargement de logiciel en réponse à une détection de corruption de logiciel par le module de détection de corruption 12. A titre d'exemple, la requête de rechargement émise par le module de téléchargement 13 peut être une simple trame de protocole de datagramme utilisateur appelée UDP (« User Datagram Protocol ») et identifiée par un numéro de port UDP particulier. La requête peut contenir, sous forme ASCII par exemple, la référence du logiciel ou composante du logiciel à recharger et/ou l'identification de la cible du processus de téléchargement. A titre d'exemple, la cible peut être identifiée, par exemple par un FIN SW (« Functional Item Number SW ») qui constitue un invariant identifiant de manière unique et non ambigüe la position de tout logiciel embarqué sur un aéronef de la société AIRBUS (par exemple : 50911 - 1 SE1 SW4 - HNP5CABCDEFG123). Le module de téléchargement 13 est configuré pour émettre une notification de rechargement après un rechargement de logiciel à destination du dispositif de gestion de téléchargement 20. Cette notification indique la configuration du logiciel téléchargé. Dans d'autres modes de réalisation, le module de téléchargement 13 peut faire partie de la partition opérationnelle du calculateur 10 ou du module de détection de corruption de logiciel 12 détectant la corruption. Dans une variante, le module de téléchargement 13 peut constituer un correspondant local, situé dans le calculateur 10 embarqué, d'un système de téléchargement centralisé de l'aéronef. La requête de téléchargement peut être émise par le module de téléchargement 13 une fois seulement, autant de fois que nécessaire pour obtenir l'acquittement de la réception par le dispositif de gestion de téléchargement 20 ou de manière cyclique jusqu'au rechargement du logiciel corrompu. Le dispositif centralisé de gestion de téléchargement 20 comporte un module de gestion 21 configuré pour traiter automatiquement des requêtes de téléchargement reçues du module de téléchargement d'un calculateur 10. Le dispositif 20 comporte également un module de téléchargement 22 configuré pour télécharger des logiciels du dispositif de stockage de logiciels 30 en conformité avec des protocoles de téléchargement, tels que ARINC615 par exemple. Le module de gestion 21 est conçu ou adapté pour émettre, si besoin, un acquittement afin de confirmer la réception d'une requête de téléchargement et pour engager un protocole de téléchargement du logiciel sur la cible spécifiée dans la requête de téléchargement, en réponse à la réception d'une requête de rechargement. Le module de téléchargement 22 est configuré pour récupérer le logiciel de remplacement du dispositif de stockage de logiciels 30. Dans un mode de réalisation particulier de l'invention, la requête de rechargement et son acquittement par le système de téléchargement centralisé peuvent être formatés sur le principe des échanges des protocoles ARINC 615A (ou bien être des requêtes en lecture ou écriture de type tftp de l'équipement vers le dispositif de stockage de logiciels 30. Le module de gestion 21 est adapté pour vérifier, après un processus de rechargement, que le calculateur 10 contient bien le logiciel qu'il vient de recharger, sur la bonne position SW (FIN), et avec la bonne configuration. Le module de gestion 21 est adapté pour valider automatiquement la configuration du logiciel (ou mettre à jour la date de validation) puis pour signaler soit au système centralisé de maintenance soit au système d'alarme centralisée (en anglais Flight Warning System) ou simplement pour mémoriser le fait qu'il vient de recharger un logiciel. Dans une variante de l'invention, un module de détection de corruption peut être fourni dans deux endroits différents (duplication) du calculateur 10, par exemple, dans le boot code du logiciel du calculateur et dans le logiciel principal de communication avec l'aéronef afin que la corruption de l'un des logiciels puisse être traitée par l'autre logiciel. Dans le deuxième mode de réalisation illustré à la figure 3, un calculateur 100 est équipé d'un logiciel téléchargeable 110 ayant plusieurs composants incluant un composant de logiciel de démarrage (BOOT) 111 et un composant de logiciel de tâche de fond (en anglais Core) 112. Le calculateur 100 est équipé d'un système de mémoire 120 pour stocker des données de configuration 121 et une base de données 122. Les logiciels 111 et 112 ont respectivement un module de détection de corruption logiciel 1111 et 1121 et un module de téléchargement 1112 et 1122. Chaque module de détection de corruption 1111 et 1121 est configuré pour détecter une corruption de logiciel respectif 111 et 112. De plus, le module de détection de corruption 1111 peut être configuré pour détecter une corruption du logiciel 112 et le module de détection de corruption 1112 peut être configuré pour détecter une corruption du logiciel 111. La détection de corruption peut être effectuée d'une façon similaire à celle du premier mode de réalisation décrit ci-dessus. Dans une autre variante de l'invention illustrée à la figure 4, le dispositif de stockage de logiciels 230 se situe au sol. Dans ce mode de réalisation le module de téléchargement 222 du dispositif de gestion de téléchargement 220 est configuré pour relayer une requête de téléchargement vers le dispositif de stockage de logiciels 230 au sol. Le dispositif de stockage de logiciels 230 renvoie automatiquement le logiciel demandé également appelé FLS (Field Loadable SW). Dès réception, le dispositif de gestion de téléchargement embarqué 220 entame le protocole de téléchargement vers le calculateur 100 comme décrit ci-dessus. Un procédé de rechargement automatique de logiciel selon un mode de réalisation de l'invention va maintenant être décrit en référence à la Figure 5. Dans une première étape E101 le module de détection de corruption 12 du logiciel du calculateur 10 détecte une corruption de logiciel. Pour ce faire, le module de détection 12 du calculateur 10 effectue un processus de vérification d'un code ou d'une signature, par exemple par le calcul d'un code CRC et la comparaison du code CRC calculé avec un code de référence CRC comme décrit ci-dessus. Suite à la détection de corruption du logiciel 11 la corruption est signalée au dispositif de gestion de téléchargement centralisé 20 dans une étape E102. Pour ce faire, le module de téléchargement 13 du calculateur 10 émet une requête de téléchargement vers le dispositif de gestion de téléchargement centralisé 20 La requête de téléchargement peut être émise par le module de téléchargement 13 du calculateur 10 : 1) dès la détection de la corruption par le module de détection 12, ou bien 2) mémorisée et son émission retardée jusqu'au moment où le calculateur 10 entre dans une phase de fonctionnement où le téléchargement est autorisé. Ce téléchargement est autorisé selon la logique de calcul que le calculateur 10 lui-même utilise déjà pour se « protéger » de requêtes intempestives de téléchargement ou pour inhiber purement et simplement le téléchargement dans des phases de vol de l'aéronef sur lequel est embarqué le calculateur 10 (moteurs allumés et/ou aéronef en vol, par exemple) ou dans des conditions (remplissage carburant, aéronefs sur chandelles et essais de rentrée-sortie de train en cours, par exemple) que l'équipement considère comme incompatibles avec un fonctionnement sûr (non dangereux). Suivant le cas (1) ou (2) ci-dessus, le dispositif de gestion de téléchargement centralisé 20 traite la requête reçue (respectivement): 1. (cas de la requête immédiatement émise par le calculateur). Quand le téléchargement de logiciel est autorisé au niveau aéronef, c'est-à-dire que l'aéronef est en phase de maintenance suivant la logique de calcul propre au dispositif de gestion de téléchargement centralisé 20 (aéronef au sol et moteurs éteints) ; la phase dite « de maintenance » est la phase nominale pour effectuer des téléchargements ; ou 2. (cas de la requête retardée par le calculateur) immédiatement de manière à n'effectuer le téléchargement du logiciel au calculateur que dans une phase de vol autorisée. La Figure 6 représente un exemple des phases de fonctionnement pendant lesquelles des téléchargements de logiciel sont autorisés en fonction de la situation de l'aéronef (au sol ou en vol), la vitesse de roulage, l'états des moteurs arrêtés ou allumés, le chargement du carburant. Ces phases sont vues par les calculateurs 10 et le dispositif de gestion de téléchargement 20 sous forme de fenêtres temporelles dont la coïncidence permet la communication entre le calculateur 10 et le dispositif de téléchargement 20 et donc le rechargement de logiciel automatique. Par exemple, pour certains calculateurs une étape de rechargement de logiciel ne peut pas être lancée pendant une phase d'atterrissage de l'aéronef, une phase de décollage de l'aéronef, une phase au sol pendant laquelle la vitesse de l'aéronef au sol est supérieure à 80kts ou une phase en vol pendant laquelle la vitesse de l'aéronef en vol est inférieure à 80kts. A titre d'exemple pour un calculateur qui gère la quantité de carburant à bord de l'avion, le téléchargement du logiciel n'est pas autorisé pendant une phase de chargement du carburant. Pour un calculateur qui n'est pas opérationnel lorsque l'aéronef roule le téléchargement du logiciel est autorisé lorsque l'aéronef est au sol et la vitesse de roulage est moins de 80kts. Dans le cas où la détermination de la condition de l'état des moteurs est une panne, le système de téléchargement faisant « un ET logique » de cette condition avec la condition « aéronef au sol » ne peut pas lancer de téléchargement. II en est de même pour les équipements téléchargeables. De retour à la figure 5, dans une étape E103 après réception de la requête de rechargement, le dispositif de gestion de téléchargement centralisé émet, si besoin est, un acquittement et engage, pendant une phase de téléchargement autorisé, un protocole de téléchargement du logiciel sur la cible spécifiée dans la requête de téléchargement. Le logiciel de rechargement est récupéré du dispositif de stockage de logiciel 30 et téléchargé au calculateur spécifié 10. En fin de l'étape de rechargement du logiciel, le dispositif de gestion de téléchargement 20 vérifie que le calculateur 10 contient bien le logiciel qu'il vient de télécharger, sur la bonne position du code de logiciel, valide automatiquement la configuration du logiciel (ou met à jour la date de validation) puis signale soit au système centralisé de maintenance, soit au système d'alarme centralisée (Flight Warning System) ou simplement mémorise, le fait qu'il vient de recharger un logiciel. Dans certains modes de réalisation de l'invention un message peut être envoyé à un système de maintenance centralisé confirmant une opération de rechargement consécutive à une corruption de logiciel, afin de couper cours à toute investigation au sol devenue dès lors inutile. Dans certains modes de réalisation, le calculateur détectant la corruption peut n'envoyer un message d'erreur au système centralisé de maintenance que si et uniquement si, le dispositif de gestion de téléchargement n'effectue pas le rechargement demandé. Dans une autre variante de l'invention, le mécanisme de détection de corruption de logiciel peut être situé dans le dispositif de gestion de téléchargement centralisé. Dans un mode de réalisation particulier, des codes CRC calculés pour tous les logiciels d'un calculateur peuvent être envoyés périodiquement au dispositif de gestion de téléchargement. Le dispositif de téléchargement peut alors comparer ces codes CRC reçus aux codes CRC de l'image de chaque logiciel contenue dans sa zone de stockage réputée robuste à la corruption de données ou bien transmettre ces CRC vers le sol dans le cas de la variante de la figure 4. Si les CRC ne sont pas identiques, la procédure de rechargement décrite plus haut peut être lancée. Ainsi, la présente invention permet de signaler une corruption de logiciel d'un équipement embarqué directement à un dispositif centralisé de téléchargement afin d'enclencher automatiquement un rechargement de tout ou partie du logiciel corrompu. Par conséquent le logiciel corrompu ou la partie du logiciel corrompue peut être remplacé par une version non corrompue, évitant ainsi une l'immobilisation de l'aéronef pour une procédure de maintenance. Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas. Notamment, bien que l'invention ait été décrite dans le domaine aéronautique, le système de simulation selon l'invention peut s'appliquer à tout type de véhicule embarquant un système, notamment un véhicule automobile, un train ou un bateau. Par ailleurs, tout réseau de communication, notamment numérique et/ou de commutation, est visé par la présente invention et non uniquement les réseaux Ethernet. REVENDICATIONS1. Procédé de rechargement automatique de logiciel caractérisé en ce qu'il comprend : - une étape de détection de corruption (E101), d'au moins une partie d'un logiciel d'un dispositif programmable embarqué (10-1, 10-2, 10-n); et en réponse à la détection de corruption ; - une étape de rechargement automatique (E103) d'une version non corrompue de ladite au moins une partie du logiciel corrompue pour remplacer ladite au moins une partie du logiciel corrompue. 2. Procédé selon la revendication 1, dans lequel l'étape de détection (E101) comporte : - le calcul d'un code de vérification du logiciel; et - la comparaison du code de vérification avec un code de référence. 3. Procédé selon la revendication 2, dans lequel le code de vérification comprend un code de contrôle de redondance cyclique CRC. 4. Procédé selon l'une quelconque des revendications précédentes comportant en outre une étape de signalisation de la corruption détectée (E102) par le dispositif programmable embarqué (10) à un dispositif de gestion de téléchargement (20). 5. Procédé selon la revendication 4, dans lequel l'étape de signalisation(E102) comprend l'émission à un dispositif de gestion de téléchargement d' une requête de téléchargement sous forme d'une trame ayant un code d'identification et contenant une identification de logiciel à recharger et/ou une information de localisation de ladite au moins une partie de logiciel corrompue. 6. Procédé selon la revendication 2 ou 3, dans lequel l'étape de détection (E101) comprend en outre la transmission périodique du code de vérification calculé par le dispositif programmable embarqué à un dispositif de gestion de téléchargement pour permettre au dispositif de gestion de téléchargement de réaliser l'étape de comparaison du code de vérification avec un code de référence. 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'étape de rechargement du logiciel (E103) est retardée jusqu'à une phase de fonctionnement d'un aéronef sur lequel est embarqué le dispositif programmable pendant laquelle un téléchargement de logiciel est autorisé. 8. Procédé selon la revendication 7, dans lequel les phases de fonctionnement pendant lesquelles un téléchargement de logiciel est autorisé sont déterminées en fonction d'au moins un des facteurs suivants : la situation de l'aéronef par rapport au sol, la vitesse de l'aéronef, l'état des moteurs de l'aéronef et l'état de ravitaillement de l'aéronef. 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel une requête de téléchargement est relayée vers un dispositif de téléchargement (30) localisé au sol pour effectuer le rechargement de ladite version non corrompue du logiciel. 10. Procédé selon l'une quelconque des revendications précédentes, 25 dans lequel une notification est émise vers un système de maintenance après l'étape de rechargement (E103) pour confirmer la réalisation du rechargement du logiciel corrompu. 11. Dispositif de gestion de téléchargement embarqué (20) 30 caractérisé en ce qu'il comprend : - une unité de traitement de notification (21) adaptée pour traiter une notification transmise par un dispositif programmable embarqué indiquant la corruption d'au moins une partie d'un logiciel du dispositif programmable embarqué ; et - une unité de téléchargement (22) adaptée pour obtenir une version non corrompue de ladite au moins une partie du logiciel corrompue et pour la télécharger dans le dispositif programmable embarqué en réponse à la notification. 12. Dispositif programmable embarqué (10) caractérisé en ce qu'il comprend : - une unité de vérification de logiciel (12 ; 1111, 1121) adaptée pour permettre la détection d'une corruption d'au moins une partie d'un logiciel du dispositif programmable embarqué (10) ; - une unité de signalisation adaptée pour signaler une indication de la corruption à un dispositif de gestion de téléchargement embarqué ; et - une unité de téléchargement (13) adaptée pour permettre le remplacement de ladite au moins une partie du logiciel corrompue par une version non corrompue téléchargée. 13. Système de communication (1) pour un aéronef caractérisé en ce 20 qu'il comporte : - un dispositif de gestion de téléchargement (20) embarqué selon la revendication 11 ; - au moins un dispositif programmable embarqué (10) selon la revendication 12 ; et 25 - un dispositif de stockage de logiciel (30) pour stocker une version non corrompue du logiciel dudit au moins un dispositif programmable embarqué. 14. Programme d'ordinateur comportant des instructions pour la mise 30 en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 10 lorsqu'il est chargé et exécuté par un processeur d'un système de communication. 15. Aéronef caractérisé en ce qu'il comprend : - un dispositif de gestion de téléchargement embarqué (20) selon la revendication 11 ; et - un dispositif programmable embarqué (10) selon la revendication 12. 16. Aéronef selon la revendication 15 comprenant en outre un dispositif de stockage de logiciel (30) pour stocker une version non corrompue du logiciel dudit au moins un dispositif programmable embarqué.