Brevet FR3109254A1 — publié le 20211015

Procédé et système de gestion de réception de trames de données, ordonnancées de manière statique et périodique, une trame comprenant un en-tête muni d'un identifiant (id) de la trame et d'un index (index) représentant l'occurrence de ladite trame dans une hyper-période. Figure pour l’abrégé : Fig. 3 Système matériel déterministe de communication entre au moins un émetteur et au moins un récepteur, configuré pour ordonnancer de manière statique et périodique les trames de données, et un procédé de gestion de réception de trames de données L’invention porte sur un système matériel déterministe de communication entre au moins un émetteur et au moins un récepteur, configuré pour ordonnancer de manière statique et périodique les trames de données, et un procédé de gestion de réception de trames de données. L’invention se situe dans le domaine des communications entre un émetteur et un récepteur, par exemple dans l’environnement de calcul des systèmes CPS distribués, pour acronyme de "Cyber-Physical System" en langue anglaise. Un système CPS est un système dans lequel des dispositifs électroniques collaborent pour le contrôle d'entités physiques (capteurs, actionneurs…). Il y a donc besoin d’un environnement temps réel déterministe capable de faire face à l’hétérogénéité des calculs et moyens de communication. Il faut également assurer la vérification de la validité de l’ordonnancement des communications et de leurs contraintes temporelles. Des standards existent tels le 802.1Qbv "Scheduled Traffic", le 802.1Qci "Filtering and Policing", ou le 802.1AS "Time Synchronization". Le standard 802.1Qbv « Scheduled Traffic » définit différentes classes de communication: Priorité1, Priorité2…, et Best Effort. Des créneaux temporels sont donc réservés afin d’assurer la disponibilité du réseau pour chaque classe. Une passerelle de communication intégrant cette norme bloque ou non les communications via un mécanisme de porte (ouverte/fermée) selon la classe détectée. Le standard 802.1Qci "Filtering and Policing" permet de filtrer les trames selon un certain nombre de critères configurables comme la taille maximale d’une trame. Il enregistre également des statistiques concernant les trames comme le nombre de trames rejetées. Le standard 802.1AS "Time Synchronization" donne des solutions pour traiter le problème de la synchronisation globale du système. Aucun de ces standards ne permet de détecter une absence de réception de trame dans un ordonnancement prédéterminé. La figure 1 illustre schématiquement des hyper-périodes dans un ordonnancement statique et périodique des communications. Sur la figure 1 sont représentées des fenêtres temporelles, ou "time window mode" en langue anglaise, pour un ordonnancement statique, ou "static schedule" en langue anglaise, et périodique. La figure 1 représente des fenêtres temporelles périodiques. Des méthodes d’analyse hors-ligne connues prennent en compte les communications et leurs contraintes temporelles afin de définir une hyper-période ("hyper-period" en langue anglaise) dans l'ordonnancement. Cette hyper-période est composée d’une série de fenêtres temporelles, Hyper-period_0, Hyper-period_1, et Hyper-period_2, dans lesquelles sont attendues les communications. Sur la figure 1, les données A (fenêtres d'un premier niveau de gris) correspondent au même type de données à des instants différents. Par exemple, un capteur donne des valeurs différentes à des instants différents. Selon la période d’émission pour un type de donnée, on retrouve un nombre de communications plus ou moins important par hyper-période. La figure 2 représente schématiquement un système de communication entre un émetteur et un récepteur selon l'état de l'art. L’émetteur SENDER intègre un ordonnanceur temporel TS s en charge de déclencher les communications aux instants prévus dans l’ordonnancement. La date ou instant d’envoi Timestamp est transportée dans la trame. Un empaqueteur par protocole PPP t , déclenché par un drapeau de déclenchement start, encapsule l'instant d’envoi Timestamp de la trame et les données de charge utile data_payload selon le protocole de communication utilisé. Le récepteur RECEIVER assure une vérification temporelle selon un intervalle défini ; il comprend un désempaqueteur par protocole PPD r configuré pour décoder l'instant d’envoi Timestamp de la trame selon le protocole de communication utilisé et transmettre la trame désempaquetée à un comparateur temporel TC r . Ce type de solution ne permet pas de détecter toutes les dérives de l’ordonnancement. Si une trame n’arrive pas à destination ou n’est pas envoyée, le récepteur ne détecte pas d’erreur. Un but de l'invention est de pallier les problèmes précédemment cités. Aussi, il est proposé, selon un aspect de l'invention, un procédé de gestion de réception de trames de données en temps réel déterministe par mise en œuvre matérielle dédiée, ordonnancées de manière statique et périodique, une trame comprenant un en-tête muni d'un identifiant de la trame et d'un index représentant l'occurrence de ladite trame dans une hyper-période, comprenant les étapes consistant à : mémoriser, pour un identifiant de trame, un drapeau d'activation de l'identifiant de la trame représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local représentatif de l'index attendu de la trame, un drapeau d'ouverture représentatif de l'ouverture d'une fenêtre temporelle associée à l'identifiant de la trame, un instant d'ouverture et un instant de fermeture de la fenêtre temporelle, un drapeau d'acquittement représentatif de la réception valide de la trame attendue, un compteur d'erreurs de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale représentatif de l'atteinte, par le compteur d'erreur, d'une valeur maximale d'erreurs configurable, un nombre de valeurs possibles de l'index pouvant être prises par l'index dans une hyper-période ; effectuer en parallèle : de manière itérative : attendre la réception d'une trame, et à réception d'une trame, tester si l'état du drapeau d'activation de l'identifiant est levé et si le drapeau d'erreur fatale est baissé et si le drapeau d'ouverture est levé et si la valeur d'un index valide valant le reste de la division entière de la somme d'un index local de valeur l'index attendu et de la valeur du compteur d'erreurs par le nombre de valeurs possibles de l'index est égale à la valeur de l'index de la trame, auquel cas, réinitialiser le compteur d'erreurs à 0 et lever le drapeau d'acquittement, et si la valeur de l'index valide est inférieur au nombre de valeurs possibles index_overflow de l'index, mettre à jour la valeur de l'index local avec la valeur de l'index valide augmenté de 1, sinon réinitialiser l'index valide à 0, et sinon, rejeter la trame ; et de manière itérative : lorsque l'instant d'ouverture d'une trame est atteint, lever le drapeau d'ouverture et lorsque l'instant de fermeture est atteint, baisser le drapeau d'ouverture ; si le drapeau d'erreur fatale est levé, passer à la fenêtre suivante, sinon si le drapeau d'acquittement est levé alors baisser le drapeau d'acquittement, sinon incrémenter de 1 le compteur d'erreur, et si le compteur d'erreurs est de valeur différente de la valeur maximale d'erreurs, alors baisser le drapeau d'erreur fatale ; passer à la fenêtre temporelle suivante. Un drapeau ou "flag" en langue anglaise, est dit levé lorsque sa valeur vaut 1 ou vrai ou valide et est dit baissé lorsque sa valeur vaut 0 ou faux ou invalide. Un tel procédé permet de détecter une absence de réception de trame dans un ordonnancement prédéterminé. En outre, le coût en calcul est faible. La résolution des indexs et compteurs d’erreurs est réduite (exemple : 8bits) sans réduction de la précision du système. Dans une approche classique, des calculs sont faits sur des timers avec des résolutions conséquentes (exemple 96bits) car nécessaire pour la précision temporelle. Dans le cas d’une implémentation matérielle, le coût calculatoire est directement lié au coût des ressources matérielles (faible empreinte silicium). Selon un autre aspect de l'invention, il est également proposé un système matériel déterministe de communication entre au moins un émetteur et au moins un récepteur, configuré pour ordonnancer de manière statique et périodique les trames de données, une trame comprenant un en-tête muni d'un identifiant de la trame et d'un index représentant l'occurrence de ladite trame dans une hyper-période, dans lequel : un émetteur comprend : une table de trames en mémoire comprenant, par trame, des paramètres comprenant un identifiant de trame, un index représentant l'occurrence de ladite trame dans une hyper-période, une taille des données utiles, une adresse mémoire des données utiles, et un instant d'émission ; un ordonnanceur temporel configuré pour : gérer l'ordonnancement des trames et lire la table de trames, déclencher l'envoi des paramètres de la trame à un encapsulateur d'en-tête pour l'ordonnancement lorsque le temps atteint l'instant d'émission de la trame, un en-tête comprenant l'identifiant et l'index ajoutés aux données utiles, et lire les paramètres de la trame suivante dans la table de trames dans l'ordonnancement des trames ; l'encapsulateur d'en-tête pour l'ordonnancement est configuré pour encapsuler l'en-tête de la trame, puis transmettre la trame à un empaqueteur par protocole ; l'empaqueteur par protocole est configuré pour encapsuler les en-têtes de trames selon le protocole de communication utilisé ; et un récepteur comprend : une table d'ordonnancement comprenant, par trame, des paramètres comprenant un identifiant de trame, un index représentant l'occurrence de ladite trame dans une hyper-période, un instant d'ouverture et un instant de fermeture d'une fenêtre temporelle associée à l'identifiant de la trame ; une table de suivi comprenant un drapeau d'acquittement représentatif de la réception de la trame attendue, un compteur d'erreurs de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale représentatif de l'atteinte, par le compteur d'erreur, d'une valeur maximale d'erreurs configurable, et un drapeau d'ouverture représentatif de l'ouverture d'une fenêtre temporelle de la trame ; une table de trame comprenant, par trame, un drapeau d'activité de l'identifiant de la trame représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local représentatif de l'index attendu de la trame, un nombre de valeurs possibles de l'index pouvant être prises par l'index dans une hyper-période ; un traqueur d'ordonnancement temporel configuré pour effectuer de manière itérative : lire dans la table d'ordonnancement l'instant d'ouverture et l'instant de fermeture de la fenêtre temporelle ; lorsque l'instant d'ouverture est atteint, lever le drapeau d'ouverture, et lorsque l'instant de fermeture est atteint, baisser le drapeau d'ouverture ; si le drapeau d'acquittement est baissé, alors incrémenter de 1 le compteur d'erreur, sinon baisser le drapeau d'acquittement ; lever le drapeau d'erreur fatale si le compteur d'erreurs atteint la valeur maximale d'erreurs successives configurable ; passer à l'adresse suivante de la table d'ordonnancement ; un désempaqueteur par protocole configuré pour décoder l'en-tête du protocole utilisé et transmettre la trame désempaquetée à un vérificateur d'ordonnancement temporel ; et le vérificateur d'ordonnancement temporel configuré pour : extraire l'identifiant et l'index de l'en-tête de la trame désempaquetée ; valider la trame si le drapeau d'activité de l'identifiant est levé, que l'instant courant est compris entre l'instant d'ouverture et l'instant de fermeture de la fenêtre temporelle, et que le drapeau d'erreur fatale est baissé. Un tel système permet le contrôle et la vérification d’un ordonnancement de communication avec contraintes temporelles de façon déterministe et à faible coût matériel (faible empreinte silicium). Selon un mode de réalisation, le système comprend en outre un module de gestion des erreurs, configuré pour récupérer des dérives de l'ordonnancement matériel via des interruptions matérielles, et comprenant une interface de contrôle. Ainsi, le module de supervision du système a un accès aux dérives de l’ordonnancement des communications. Basé sur ces informations, il pourra donc mener des actions de correction, d’information à une unité centrale distante, de redémarrage, ceci en fonction de la stratégie de correction des défauts définie. Dans un mode de réalisation, le module de gestion des erreurs est embarqué dans un processeur. En effet, il parait logique d’embarquer ce type de fonction dans un processeur. Il n’y a pas d’intérêt de l’embarquer dans un accélérateur matériel car pas de contrainte temporelle forte. Selon un autre aspect de l'invention, il est également proposé une passerelle multi-protocoles comprenant une partie matérielle de type FPGA et une partie processeur ARM, dans laquelle : la partie processeur ARM comprend une configuration des IP matérielles et le module de gestion des erreurs ; la partie matérielle de type FPGA comprend l’implémentation matérielle de la passerelle multi-protocoles basse latence ; et chaque interface de protocole comprend une instance du système tel que précédemment décrit. Dans une passerelle multi-protocoles, une implémentation matérielle à faible empreinte silicium pour la gestion de l’ordonnancement des communications est d’un grand intérêt. Cela permet de monter plus facilement à l’échelle en termes de quantité d’interfaces ordonnancées avec des contraintes temporelles propres à chacune. Des approches logicielles ou mixtes logicielles et matérielles ont une limite concernant la partie logicielle. En effet, la gestion d’un grand nombre d’interruptions n’est pas viable pour des fonctions à contraintes temporelles critiques. L'invention sera mieux comprise à l'étude de quelques modes de réalisation décrits à titre d'exemples nullement limitatifs et illustrés par le dessin annexé sur lequel : illustre schématiquement des hyper-périodes dans un ordonnancement statique et périodique des communications, selon l'état de l'art ; illustre schématiquement un système comprenant un émetteur et un récepteur mettant en œuvre un ordonnancement statique et périodique des communications, selon l'état de l'art ; illustre schématiquement un système comprenant un émetteur et un récepteur mettant en œuvre un ordonnancement statique et périodique des communications, selon un aspect de l'invention ; illustre schématiquement un exemple d'ordonnancement statique périodique, selon un aspect de l'invention ; illustre schématiquement un récepteur, selon un autre aspect de l'invention ; illustre schématiquement un procédé de gestion de réception de trames de données, ordonnancées de manière statique et périodique, selon un aspect de l'invention ; illustre schématiquement un exemple d'exécution du procédé de la figure 6, selon un autre aspect de l'invention ; illustre schématiquement un exemple d'exécution du procédé de la figure 6, selon un autre aspect de l'invention ; illustre schématiquement un exemple d'exécution du procédé de la figure 6, selon un autre aspect de l'invention ; illustre schématiquement une passerelle multi-protocoles, selon un autre aspect de l'invention ; et illustre schématiquement une passerelle multi-protocoles, selon un autre aspect de l'invention. Sur l'ensemble des figures, les éléments ayant des références identiques sont similaires. Sur la figure 3 est illustré, selon un aspect de l'invention, un système matériel de communication déterministe entre un émetteur SENDER et un récepteur RECEIVER en temps réel. Dans l’implémentation matérielle proposée, l’émetteur SENDER ajoute un en-tête supplémentaire pour identifier les trames et les contraintes temporelles associées. Le récepteur RECEIVER embarque un traqueur d'ordonnancement temporel TST r dédié au suivi des dérives de l’ordonnancement et un vérificateur d'ordonnancement temporel TSC r situé après un désempaqueteur par protocole PPD r . Une mémoire partagée permet l’échange d’information entre les modules de suivi et de vérification. Le système est configuré pour ordonnancer de manière statique et périodique les trames de données, une trame comprenant un en-tête muni d'un identifiant id de la trame et d'un index index représentant l'occurrence de ladite trame dans une hyper-période. L'émetteur SENDER comprend une table de trames FT s en mémoire comprenant, par trame, des paramètres comprenant un identifiant de trame id, un index index représentant l'occurrence de ladite trame dans une hyper-période, une taille des données utiles size, une adresse mémoire des données utiles mem_addr, et un instant d'émission t_send. L'émetteur SENDER comprend également : un ordonnanceur temporel TS s configuré pour : gérer l'ordonnancement des trames et lire la table de trames FT s , déclencher l'envoi des paramètres de la trame à un encapsulateur d'en-tête pour l'ordonnancement SHE s lorsque le temps atteint l'instant d'émission t_send de la trame, un en-tête comprenant l'identifiant id et l'index index ajoutés aux données utiles, et lire les paramètres de la trame suivante dans la table de trames FT s dans l'ordonnancement des trames, l'encapsulateur d'en-tête pour l'ordonnancement SHE s configuré pour encapsuler l'en-tête de la trame, puis transmettre la trame à un empaqueteur par protocole PPP S ; et l'empaqueteur par protocole PPP S configuré pour encapsuler les en-têtes de trames selon le protocole de communication utilisé. Le récepteur RECEIVER comprend : une table d'ordonnancement ST r comprenant, par trame, des paramètres comprenant un identifiant de trame id, un index index représentant l'occurrence de ladite trame dans une hyper-période, un instant d'ouverture t_open et un instant de fermeture t_close d'une fenêtre temporelle associée à l'identifiant id de la trame ; une table de suivi TT r comprenant un drapeau d'acquittement ack représentatif de la réception de la trame attendue, un compteur d'erreurs err_cnt de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale fatalerr représentatif de l'atteinte, par le compteur d'erreurs err_cnt, d'une valeur maximale max_err d'erreurs configurable, et un drapeau d'ouverture open représentatif de l'ouverture d'une fenêtre temporelle de la trame ; et une table de trame FT r comprenant, par trame, un drapeau d'activité de l'identifiant de la trame id_en représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local local_index représentatif de l'index attendu de la trame, un nombre de valeurs possibles de l'index index_overflow pouvant être prises par l'index index dans une hyper-période. Le récepteur RECEIVER comprend également : un traqueur d'ordonnancement temporel TST r configuré pour effectuer de manière itérative : lire dans la table d'ordonnancement ST r l'instant d'ouverture t_open et l'instant de fermeture t_close de la fenêtre temporelle, lorsque l'instant d'ouverture t_open est atteint, lever le drapeau d'ouverture (open), et lorsque l'instant de fermeture t_close est atteint, baisser le drapeau d'ouverture open, si le drapeau d'acquittement ack est baissé, alors incrémenter de 1 le compteur d'erreurs err_cnt, sinon baisser le drapeau d'acquittement (ack), lever le drapeau d'erreur fatale fatalerr si le compteur d'erreurs err_cnt atteint la valeur maximale max_err d'erreurs successives configurable, et passer à l'adresse suivante de la table d'ordonnancement ST r , un désempaqueteur par protocole PPD r configuré pour décoder l'en-tête du protocole utilisé et transmettre la trame désempaquetée à un vérificateur d'ordonnancement temporel TSC r ; et le vérificateur d'ordonnancement temporel TSC r configuré pour : extraire l'identifiant id et l'index index de l'en-tête de la trame désempaqueté, et valider la trame si le drapeau d'activité (id_en) de l'identifiant (id) est levé, que l'instant courant soit compris entre l'instant d'ouverture t_open et l'instant de fermeture t_close de la fenêtre temporelle, et que le drapeau d'erreur fatale fatalerr soit baissé. En d'autres termes, dans l'émetteur SENDER, l'ordonnanceur temporel TS s est en charge de l’exécution de l’ordonnancement des communications. Il lit la table de trames FT s afin de récupérer les paramètres de la trame à envoyer : date d’émission t_send, identifiant id, index index, taille size et adresse mem_addr des données (stockées en mémoire). Quand le timer atteint la date d’émission, l'ordonnanceur temporel TS s déclenche l’envoi et transmet à l'encapsulateur d'en-tête pour l'ordonnancement SHE s les paramètres de la trame. L'ordonnanceur temporel TS s lit ensuite l’adresse suivante dans la table de trames FT s et poursuit le déroulé de l’ordonnancement des communications. L'encapsulateur d'en-tête pour l'ordonnancement SHE s encapsule l’en-tête composé de l’identifiant id et de l’index index avant de transmettre la trame à l'empaqueteur par protocole PPP S . L'empaqueteur par protocole PPP S est spécifique au protocole utilisé (Ethernet, CAN, PCIe…). Il est notamment en charge d’encapsuler la ou les en-têtes spécifiques. De même, en d'autres termes, le traqueur d'ordonnancement temporel (TST r ) est un module dédié pour le suivi de l’ordonnancement des communications qui permet d’enregistrer en mémoire les dérives de cet ordonnancement. Il fait une lecture de la table d'ordonnancement ST r afin de récupérer les dates d’ouverture et de fermeture de la première fenêtre temporelle. Quand le timer atteint l’instant d'ouverture t_open, le drapeau d'ouverture open de la table de suivi (TT r ) est activé, et est désactivé quand le timer atteint l’instant de fermeture t_close. A ce même instant, le drapeau d’acquittement de réception ack contenu dans la table d'ordonnancement ST r est consulté. S’il est inactif, le compteur d'erreurs err_cnt est incrémenté de 1 afin d’indiquer que la trame attendue n’a pas été reçue dans la fenêtre temporelle prévue. Une fois traité, le drapeau d’acquittement de réception ack est remis à zéro. Un drapeau d'erreur fatale fatalerr peut être activé si le compteur d'erreurs err_cnt atteint une valeur limite configurable. Ce signal correspond à une série d’erreurs consécutives, indiquant un défaut. Les communications associées sont donc rejetées jusqu’à nouvel ordre. Le processus continue ensuite le suivi de l’ordonnancement en passant à l’adresse suivante dans la table d'ordonnancement (ST r ). Une amélioration optionnelle peut consister à avoir un processus de gestion des erreurs qui récupère les dérives de l’ordonnancement via des interruptions matérielles et une interface de contrôle. Ce module peut être embarqué dans un processeur. A réception d’une trame, le désempaqueteur par protocole (PPD r ) décode l’en-tête spécifique au protocole utilisé et transmet le reste de la trame au vérificateur d'ordonnancement temporel TSC r . Le vérificateur d'ordonnancement temporel TSC r extrait l’en-tête comprenant identifiant id et l'index index afin de procéder à plusieurs vérifications. Pour qu’une trame soit valide, le drapeau d'activité id_en de l'identifiant id doit être levé, le drapeau d'erreur fatale fatalerr doit être baissé, et la trame doit arriver dans la fenêtre temporelle définie par l’ordonnancement (procédé de vérification détaillé plus loin). Un identifiant unique id et un index index sont ajoutés en en-tête des données. Ces deux informations permettent de situer une communication dans l’ordonnancement. Comme présenté précédemment, l’analyse hors-ligne permet de définir un ordonnancement périodique. En fonction de la durée des périodes des trames qui transitent sur le réseau, une hyper-période est trouvée. Ainsi une communication avec une période d’émission de courte durée est identifiée avec un index index ayant une plage de valeurs plus élevées qu’une communication avec une période d'émission de longue durée. Pour un identifiant donné, l’index représente l’émission des données à des instants différents et permet de les situer dans l’hyper-période. Sur l'exemple d'ordonnancement de trames de la figure 4, le premier chiffre représente l’identifiant unique id et le second chiffre représente l’index index des trames. La figure 5 représente schématiquement un récepteur RECEIVER selon un aspect de l'invention. Le vérificateur d'ordonnancement temporel TSC r est connecté derrière le désempaqueteur par protocole PPD r spécifique au protocole (Ethernet, PCIe, CAN ...). L’identifiant id et l’index index, sont extraits de la trame par le module TSC r . Le processus de vérification ou procédé de gestion de réception de trames est représenté en figure 6. Le procédé de gestion de réception de trames de données en temps réel déterministe par mise en œuvre matérielle dédiée, ordonnancées de manière statique et périodique, une trame comprenant un en-tête muni d'un identifiant id de la trame et d'un index index représentant l'occurrence de ladite trame dans une hyper-période, comprenant les étapes consistant à : mémoriser, pour un identifiant de trame, un drapeau d'activité de l'identifiant de la trame id_en représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local local_index représentatif de l'index attendu de la trame, un drapeau d'ouverture open représentatif de l'ouverture d'une fenêtre temporelle associée à l'identifiant id de la trame, un instant d'ouverture t_open et un instant de fermeture t_close de la fenêtre temporelle, un drapeau d'acquittement ack représentatif de la réception de la trame attendue, un compteur d'erreurs err_cnt de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale fatalerr représentatif de l'atteinte, par le compteur d'erreurs err_cnt, d'une valeur maximale max_err d'erreurs configurable, un nombre de valeurs possibles de l'index index_overflow pouvant être prises par l'index index dans une hyper-période ; effectuer en parallèle : de manière itérative : attendre la réception d'une trame, et à réception d'une trame, tester si l'état du drapeau d'identifiant id_en est levé et si le drapeau d'erreur fatale fatalerr est baissé et si le drapeau d'ouverture est levé et si la valeur d'un index valide valid_index valant le reste de la division entière de la somme d'un index local local_index de valeur l'index attendu et de la valeur du compteur d'erreurs err_cnt par le nombre de valeurs possibles de l'index index_overflow est égale à la valeur de l'index index de la trame (valid_index=(FT r .local_index + TT r .err_cnt) mod TT r . index_overflow), auquel cas, réinitialiser le compteur d'erreurs err_cnt à 0 et lever le drapeau d'acquittement ack, et si la valeur de l'index valide valid_index est inférieur au nombre de valeurs possibles de l'index index_overflow mettre à jour la valeur de l'index local local_index avec la valeur de l'index valide valid_index augmenté de 1, sinon réinitialiser l'index valide valid_index à 0, et sinon, rejeter la trame ; et de manière itérative : lorsque l'instant d'ouverture t_open d'une trame est atteint, lever le drapeau d'ouverture open et lorsque l'instant de fermeture t_close est atteint, baisser le drapeau d'ouverture open ; si le drapeau d'erreur fatale est levé, passer à la fenêtre suivante, sinon si le drapeau d'acquittement ack est levé alors baisser le drapeau d'acquittement ack, sinon incrémenter de 1 le compteur d'erreurs err_cnt, et si le compteur d'erreurs err_cnt est de valeur différente de la valeur maximale max_err d'erreurs, alors baisser le drapeau d'erreur fatale fatalerr ; passer à la fenêtre temporelle suivante. Deux processus décrits précédemment fonctionnent en parallèle. Ils interagissent via des données partagées contenues dans la table de suivi TT r . Un mécanisme de verrouillage d’accès aux données est en place afin d’empêcher les accès concurrents à la même donnée. La stratégie mise en place donne la priorité au processus mis en œuvre par le traqueur d'ordonnancement temporel TST r , ainsi, pour chaque demande d’accès concurrent en lecture ou écriture aux données partagées, le processus mis en œuvre par le vérificateur d'ordonnancement temporel TSC r se met en attente jusqu’à disponibilité de la donnée. Les figures 7, 8 et 9 représentent schématiquement trois exemples d'exécution du procédé de l'invention. Dans le cas de la figure 7, on peut noter que l’identifiant id est bien valide ( ), que le drapeau d'erreur fatale fatalerr est baissé ou inactif ( ) et que la fenêtre temporelle est ouverte (le drapeau d'ouverture open est levé ou actif: ). Par contre, l’index attendu vaut 3 ( ) et le compteur de dérive de l’ordonnancement ou compteur d'erreurs vaut 1 ( ). On peut déduire qu’au moment de la réception, on est dans la fenêtre temporelle d’index 4. La trame d’index 3 est donc hors délai et est rejetée. Dans le cas de la figure 8, on retrouve le même contenu des mémoires pour une trame reçu d’index 4. Etant dans la bonne fenêtre temporelle, la trame est valide. Le compteur d’erreur est remis à zéro ( ), l’accusé de réception ou drapeau d'acquittement est levé ou activé ( ) et l’index en attente prend la valeur de l’index valide incrémenté de 1 ( ). Dans le cas de la figure 9, seul le compteur d’erreur a changé pour ce qui est du contenu des mémoires ( ). On peut déduire qu’au moment de la réception, on est dans la fenêtre temporelle d’index 5. La trame d’index 3 n’a donc pas été reçue ou est hors délai, et la trame d’index 4 est hors délais et donc rejetée. Il est aussi proposé, selon un aspect de l'invention, comme illustré sur la figure 10, une passerelle multi-protocoles comprenant une partie matérielle de type FPGA et une partie processeur ARM, dans laquelle : la partie processeur ARM comprend une configuration des IP matérielles et le module de gestion des erreurs ; la partie matérielle de type FPGA comprend l’implémentation matérielle de la passerelle multi-protocoles basse latence ; chaque interface de protocole comprend une instance du système. Les figures 10 et 11 présentent un design de passerelle multi-protocoles basé sur un MPSoC Ultrascale+ de Xilinx qui comprend une partie matérielle type FPGA et une partie processeur ARM. La configuration des différentes IP matérielles (Intellectual Properties) et la gestion des erreurs sont embarqués dans la partie processeur (logiciel). La partie FPGA embarque l’implémentation matérielle de la passerelle multi-protocoles à basse latence. Pour chaque interface (Ethernet, CAN0, CAN1…), une instance des modules de vérification de l’ordonnancement des communications est implémentée (système selon l'invention). Ce mode de réalisation montre l’intérêt d’une solution matérielle qui peut être dupliquée pour chaque interface qui nécessite un ordonnancement déterministe des communications. En effet, une solution logicielle requiert la gestion d’un grand nombre d’interruptions et ne peut donc garantir le respect des contraintes temporelles de façon déterministe. Procédé de gestion de réception de trames de données en temps réel déterministe par mise en œuvre matérielle dédiée, ordonnancées de manière statique et périodique, une trame comprenant un en-tête muni d'un identifiant (id) de la trame et d'un index (index) représentant l'occurrence de ladite trame dans une hyper-période, comprenant les étapes consistant à : mémoriser, pour un identifiant de trame, un drapeau d'activation de l'identifiant de la trame (id_en) représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local (local_index) représentatif de l'index attendu de la trame, un drapeau d'ouverture (open) représentatif de l'ouverture d'une fenêtre temporelle associée à l'identifiant (id) de la trame, un instant d'ouverture (t_open) et un instant de fermeture (t_close) de la fenêtre temporelle, un drapeau d'acquittement (ack) représentatif de la réception valide de la trame attendue, un compteur d'erreurs (err_cnt) de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale (fatalerr) représentatif de l'atteinte, par le compteur d'erreurs (err_cnt), d'une valeur maximale (max_err) d'erreurs configurable, un nombre de valeurs possibles de l'index (index_overflow) pouvant être prises par l'index (index) dans une hyper-période ; effectuer en parallèle : de manière itérative : attendre la réception d'une trame, et à réception d'une trame, tester si l'état du drapeau d'activation de l'identifiant (id_en) est levé et si le drapeau d'erreur fatale (fatalerr) est baissé et si le drapeau d'ouverture est levé et si la valeur d'un index valide (valid_index) valant le reste de la division entière de la somme d'un index local (local_index) de valeur l'index attendu et de la valeur du compteur d'erreurs (err_cnt) par le nombre de valeurs possibles de l'index (index_overflow) est égale à la valeur de l'index (index) de la trame, auquel cas, réinitialiser le compteur d'erreurs (err_cnt) à 0 et lever le drapeau d'acquittement (ack), et si la valeur de l'index valide (valid_index) est inférieur au nombre de valeurs possibles (index_overflow) de l'index, mettre à jour la valeur de l'index local (local_index) avec la valeur de l'index valide (valid_index) augmenté de 1, sinon réinitialiser l'index valide (valid_index) à 0, et sinon, rejeter la trame ; et de manière itérative : lorsque l'instant d'ouverture (t_open) d'une trame est atteint, lever le drapeau d'ouverture (open) et lorsque l'instant de fermeture (t_close) est atteint, baisser le drapeau d'ouverture (open) ; si le drapeau d'erreur fatale est levé, passer à la fenêtre suivante, sinon si le drapeau d'acquittement (ack) est levé alors baisser le drapeau d'acquittement (ack), sinon incrémenter de 1 le compteur d'erreurs (err_cnt), et si le compteur d'erreurs (err_cnt) est de valeur différente de la valeur maximale (max_err) d'erreurs, alors baisser le drapeau d'erreur fatale (fatalerr) ; passer à la fenêtre temporelle suivante. Système matériel déterministe de communication entre au moins un émetteur (SENDER) et au moins un récepteur (RECEIVER), configuré pour ordonnancer de manière statique et périodique les trames de données, une trame comprenant un en-tête muni d'un identifiant (id) de la trame et d'un index (index) représentant l'occurrence de ladite trame dans une hyper-période, dans lequel : un émetteur (SENDER) comprend : une table de trames (FT s ) en mémoire comprenant, par trame, des paramètres comprenant un identifiant de trame (id), un index (index) représentant l'occurrence de ladite trame dans une hyper-période, une taille des données utiles (size), une adresse mémoire des données utiles (mem_addr), et un instant d'émission (t_send) ; un ordonnanceur temporel (TS s ) configuré pour : gérer l'ordonnancement des trames et lire la table de trames (FT s ), déclencher l'envoi des paramètres de la trame à un encapsulateur d'en-tête pour l'ordonnancement (SHE s ) lorsque le temps atteint l'instant d'émission (t_send) de la trame, un en-tête comprenant l'identifiant (id) et l'index (index) ajoutés aux données utiles, et lire les paramètres de la trame suivante dans la table de trames (FT s ) dans l'ordonnancement des trames, l'encapsulateur d'en-tête pour l'ordonnancement (SHE s ) configuré pour encapsuler l'en-tête de la trame, puis transmettre la trame à un empaqueteur par protocole (PPP S ) ; et l'empaqueteur par protocole (PPP S ) configuré pour encapsuler les en-têtes de trames selon le protocole de communication utilisé ; un récepteur (RECEIVER) comprend : une table d'ordonnancement (ST r ) comprenant, par trame, des paramètres comprenant un identifiant de trame (id), un index (index) représentant l'occurrence de ladite trame dans une hyper-période, un instant d'ouverture (t_open) et un instant de fermeture (t_close) d'une fenêtre temporelle associée à l'identifiant (id) de la trame ; une table de suivi (TT r ) comprenant un drapeau d'acquittement (ack) représentatif de la réception de la trame attendue, un compteur d'erreurs (err_cnt) de réception de trame attendue représentatif du nombre successif de trames non reçues dans la fenêtre temporelle respective prévue, un drapeau d'erreur fatale (fatalerr) représentatif de l'atteinte, par le compteur d'erreurs (err_cnt), d'une valeur maximale (max_err) d'erreurs configurable, et un drapeau d'ouverture (open) représentatif de l'ouverture d'une fenêtre temporelle de la trame ; une table de trame (FT r ) comprenant, par trame, un drapeau d'activité de l'identifiant de la trame (id_en) représentatif de l'activité de la trame dans la configuration en cours d'exécution, un index local (local_index) représentatif de l'index attendu de la trame, un nombre de valeurs possibles de l'index (index_overflow) pouvant être prises par l'index (index) dans une hyper-période ; un traqueur d'ordonnancement temporel (TST r ) configuré pour effectuer de manière itérative : lire dans la table d'ordonnancement (ST r ) l'instant d'ouverture (t_open) et l'instant de fermeture (t_close) de la fenêtre temporelle, lorsque l'instant d'ouverture (t_open) est atteint, lever le drapeau d'ouverture (open), et lorsque l'instant de fermeture (t_close) est atteint, baisser le drapeau d'ouverture (open), si le drapeau d'acquittement (ack) est baissé, alors incrémenter de 1 le compteur d'erreurs (err_cnt), sinon baisser le drapeau d'acquittement (ack), lever le drapeau d'erreur fatale (fatalerr) si le compteur d'erreurs (err_cnt) atteint la valeur maximale (max_err) d'erreurs successives configurable, et passer à l'adresse suivante de la table d'ordonnancement (ST r ) un désempaqueteur par protocole (PPD r ) configuré pour décoder l'en-tête du protocole utilisé et transmettre la trame désempaquetée à un vérificateur d'ordonnancement temporel (TSC r ) ; et le vérificateur d'ordonnancement temporel (TSC r ) configuré pour : extraire l'identifiant (id) et l'index (index) de l'en-tête de la trame désempaqueté, et valider la trame si le drapeau d'activité (id_en) de l'identifiant est levé, que l'instant courant est compris entre l'instant d'ouverture (t_open) et l'instant de fermeture (t_close) de la fenêtre temporelle, et que le drapeau d'erreur fatale (fatalerr) est baissé. Système selon la revendication précédente, comprenant en outre un module de gestion des erreurs, configuré pour récupérer des dérives de l'ordonnancement matériel via des interruptions matérielles, et comprenant une interface de contrôle. Système selon la revendication précédente, dans lequel le module de gestion des erreurs est embarqué dans un processeur. Passerelle multi-protocoles comprenant une partie matérielle de type FPGA et une partie processeur ARM, dans laquelle : la partie processeur ARM comprend une configuration des IP matérielles et le module de gestion des erreurs ; la partie matérielle de type FPGA comprend l’implémentation matérielle de la passerelle multi-protocoles basse latence ; chaque interface de protocole comprend une instance du système selon l'une des revendications 2 à 4.