FR 3089651 A1 20200612 FR 1872445 A 20181206 Description Titre de l'invention : Gestion conjointe par un calculateur embarque de véhicule automobile d'une fonction opérationnelle et d'une fonction passerelle entre des bus de communication de données Domaine technique 100011 La présente invention se rapporte de manière générale à la communication entre des systèmes embarqués dans les véhicules automobiles, et plus particulièrement à un calculateur qui combine une fonction opérationnelle dédiée et une fonction de passerelle entre des réseaux de communication embarqués. 100021 L'invention trouve des applications, en particulier, dans les calculateurs embarqués gérant un domaine opérationnel principal qui est servi par un réseau de communication de données associé, et implémentant une fonction passerelle pour interconnecter le calculateur avec d'autres calculateurs, par exemple des calculateurs respectivement associés à des sous-réseaux du domaine opérationnel en question, et/ou avec une unité passerelle centrale (« Central Gateway » en anglais) qui interface le réseau de communication de données avec d'autres réseaux de communication de données respectivement associés à d'autres domaines opérationnel principaux. Etat de la technique [0003] Les bus de communications de données concernés peuvent être du même type en étant isolés électriquement l'un de l'autre, ou être de types respectifs différents. Dans ce dernier cas, la fonction passerelle implémentée par le calculateur peut comprendre une conversion protocolaire entre les protocoles de communication respectifs de chacun des bus en question. [0004] Avec la multiplication des capteurs et l'apparition de toujours plus de fonctions de sécurité et de confort, le volume de données communiquées dans un véhicule automobile n'a cessé d'augmenter au cours des dernières années. La tendance est à la poursuite de cette inflation dans la communication de données, en raison notamment de l'arrivée des applications multimédia à bord des véhicules automobiles, notamment pour ce que l'on appelle l'info-divertissement (plus connu sous le vocable anglosaxon de « Infotainement »). [0005] L'utilisation de réseaux de communication de données multiplexés (aussi appelés systèmes de bus de données multiplexés) qui est apparue peu après la première présentation du bus CAN (acronyme de « Controller Arca Network ») par la société BOSCH GmbH en 1985, a permis de répondre à cette augmentation du volume de données communiquées. L'apparition d'évolutions du bus CAN, ont amené des structures de réseau complexes dans lesquelles plusieurs réseaux ou sous-réseaux de 2 communication coexistent dans le véhicule, avec des spécifications respectives qui peuvent être différentes. On voit ainsi des applications dans lesquelles un bus CAN classique peut coopérer avec un bus CAN à débit de données flexible ou CAN FD (de l'anglais « Flexible Dataratc »), lequel est défini comme une option du standard ISO 11898-2 du bus CAN classique à 125 kbits/s qui a été intégrée dans la version ISO 11898-2 : 2015 du standard. Egalement, certaines architectures intègrent un ou plusieurs bus CAN à grande vitesse ou HS CAN (de l'anglais « High Speed CAN ») conforme au standard ISO 11898-2 (2003) qui offre un débit pouvant aller jusqu'à 1 Mbits/s (en fonction de la longueur du bus), et/ou un ou plusieurs bus CAN à basse vitesse ou LS CAN (de l'anglais « Low Speed ») conforme au standard ISO 11898-3 (2006) qui offre un débit limité à 125 kbits/s mais qui est un bus à tolérance de pannes, ou encore bien d'autres technologies de bus comme le réseau interconnecté local ou bus LIN (de l'anglais « Local Interconnect Nctwork ») normalisé par 1150 sous le nom "Réseau Interconnecté local" dans la catégorie "Véhicules routiers" et sous la référence ISO 17987, ou plus récemment le bus FlexRay standardisé par la norme ISO 17458, ou encore le bus MOST (de l'anglais « Media Oriented Systems Transport ») qui autorise la transmission optique de données avec un débit de 21,2 Mbits/s et qui est optimisé pour les applications vidéo et audio d'info-divertissement dans l'automobile. [0006] L'échange de données entre deux réseaux ou entre un réseau et un sous-réseau de communication de données de technologies respectives nécessite d'implémenter une fonction passerelle (« Gateway » en langue anglosaxonne) entre les réseaux concernés. Des processeurs dédiés spécifiquement à cette fonction passerelle sont évidemment disponibles sur le marché des composants électroniques. [0007] Néanmoins, le coût d'un tel composant et de son environnement de fonctionnement, est un frein à leur utilisation massive dans les véhicules automobiles. [0008] C'est pourquoi, dans des réalisations connues, le véhicule comprend quelques domaines fonctionnels comme la motopropulsion, le châssis et l'habitacle, auxquels sont associés des réseaux de communication respectifs. Ces réseaux sont interconnectés par une unité passerelle centrale, laquelle est un calculateur spécifiquement dédié à cette fonction passerelle. En outre le véhicule comprend un ou plusieurs calculateurs qui, d'une part, ont une fonction opérationnelle dédiée et qui, d'autre part, écoulent une fonction de passerelle entre l'un des réseaux précités et un ou plusieurs parmi d'autres réseaux et/ou sous-réseaux de communication embarqués différents desdits réseaux. Ceci permet de faire l'économie de calculateurs dédiés à une fonction d'unité passerelle, en utilisant une partie des ressources et du temps de calcul d'un calculateur assurant par ailleurs une fonction opérationnelle. [0009] Ainsi, certains calculateurs combinent l'implémentation d'une fonction opéra- 3 tionnelle déterminée avec l'émulation d'une fonction passerelle entre réseaux de communications de données auxquels ils sont couplés par des interfaces respectives correspondantes. La fonction opérationnelle peut être, par exemple et de manière non limitative, l'allumage, l'éclairage intérieur ou le chauffage/climatisation. Son implémentation consiste à commander un ensemble d'actuateurs, sur la base d'informations collectées notamment grâce à un ensemble de capteurs, en utilisant une intelligence embarquée. La fonction passerelle consiste à traiter des trames reçues d'un premier bus de communication selon les spécifications d'un premier protocole de communication de données, et à les transmettre sur un second bus de communication de données après conversion en trames selon les spécifications d'un autre protocole de communication associé à ce second bus de communication. [0010] Selon l'état de l'art actuel, le calculateur comprend un gestionnaire de trames qui, à réception par le calculateur d'une séquence de trames à convertir et à retransmettre dans le cadre de la fonction passerelle, génère une interruption qui interrompt le traitement en cours par le CPU (« Central Processing Unit ») dans le cadre de la fonction opérationnelle gérée par le calculateur. Le CPU traite alors toutes les trames reçues les unes à la suite des autres, sur la même interruption de réception. En pratique, les trames reçues sont stockées dans un registre tampon d'entrée (« input buffer »), et sont traitées séquentiellement par le CPU en fonction de leur ordre d'arrivée, sur la même interruption, jusqu'à ce que le buffer soit vide. [0011] Cette solution de l'état de la technique peut impliquer une monopolisation trop longue du CPU pour la fonction passerelle, amenant à une dégradation des performances temps réel du calculateur pour ses fonctions opérationnelles. Ceci peut être particulièrement problématique si une fonction opérationnelle dont le traitement en temps réel est ainsi affecté est une fonction de sécurité, comme par exemple la correction de trajectoire du véhicule pour garantie sa stabilité, le freinage d'urgence pour éviter une collision, ou le déverrouillage automatique des portières en cas d'accident du véhicule. [0012] En d'autres termes, une dérive dans le traitement temps réel des applications opéra- tionnelles gérées par le calculateur qui est occasionnée par l'implémentation connue de la fonction passerelle, peut nuire à la garantie de temps critiques qui doivent être respectés pour des impératifs opérationnels forts comme des aspects liés à la sécurité du véhicule et de ses occupants. Exposé de l'invention [0013] L'invention vise à supprimer, ou du moins atténuer, tout ou partie des inconvénients de l'art antérieur précités. [0014] A cet effet, un premier aspect de l'invention propose un procédé de gestion de trames dans un calculateur embarqué de véhicule automobile du type adapté pour assurer conjointement au moins une fonction opérationnelle ainsi qu'une fonction passerelle entre au moins deux bus de communication de données lorsqu'il est couplé à un premier bus de communication de données du véhicule pour recevoir et transmettre des messages de données via le premier bus, d'une part, et est couplé en outre à un second bus de communication de données du véhicule pour recevoir et transmettre des messages de données via ledit second bus, d'autre part, le calculateur étant configure pour mettre en oeuvre une fonction passerelle afin de transmettre des messages reçus d'un émetteur via le premier bus vers un récepteur qui est accessible via le second bus. [0015] Le procédé comprend les étapes suivantes, mises en oeuvre dans le calculateur : - la réception d'un ou plusieurs messages de données en provenance d'un émetteur via le premier bus, lesdits messages étant destinés à un récepteur accessible via le second bus ; - le stockage des messages de données reçus dans une mémoire tampon du calculateur, en attente de leur traitement pour transmission au récepteur via le second bus ; - le déclenchement d'une première interruption pour interrompre l'exécution d'un programme opérationnel en cours d'exécution par un processeur du calculateur et causer le traitement par ledit processeur des messages de données stockés dans la mémoire tampon, pour leur transmission au récepteur via le second bus ; - la désactivation de l'interruption afin de permettre la poursuite par le processeur de l'exécution du programme fonctionnel, après l'expiration d'une première durée déterminée et à la fin du traitement d'un message en cours de traitement par le processeur au moment de ladite expiration, nonobstant la présence éventuelle d'autres messages dans la mémoire tampon en attente de leur traitement par le processeur pour transmission au récepteur via le second bus ; et, - le déclenchement d'une seconde interruption à la fin d'une temporisation d'une seconde durée déterminée suivant la désactivation de la première interruption, pour interrompre à nouveau l'exécution du programme opérationnel par le processeur et causer la poursuite du traitement par ledit processeur de messages stockés dans la mémoire tampon, pour leur transmission au récepteur via le second bus. [0016] Grâce à l'invention, la charge du calculateur correspondant à sa fonction passerelle est lissée dans le temps, c'est-à-dire qu'elle ne pénalise pas de manière inacceptable le traitement des autres tâches du calculateur liées aux fonctions opérationnelles du calculateur, et en particulier le traitement en temps réel des tâches qui peuvent présenter une contrainte temps réel forte. [0017] Dans des modes de réalisation, la charge du calculateur associée à sa fonction passerelle peut représenter jusqu'à environ 30% de la charge du calculateur, i.e. de son temps de calcul, en sorte qu'environ 50% de sa charge seulement représente des tâches liées à ses fonctions opérationnelles spécifiques (dans un exemple d'application où la charge totale du calculateur est limitée à environ 80% sur la base d'un cahier des charges à respecter), mais sans encourir de dégradation notable des performances temps réel des applications concernées. [0018] Des modes de réalisation pris isolément ou en combinaison, prévoient en outre que : - la première durée déterminée est une durée constante, fixe ou programmable ; ou que la première durée déterminée est variable en fonction de paramètres pris en compte par le calculateur ; - les messages de données sont des trames CAN, le premier bus de communication de données étant un bus CAN et la mémoire tampon étant la mémoire tampon de réception de la cellule CAN du calculateur qui est associée au premier bus ; - le premier et le second bus de communications sont des bus de types respectifs différents parmi les types de bus de communication pour l'automobile appartenant au groupe suivant : HS CAN / ISO 11898-2, CAN FD / ISO 11898-2 : 2015, LS CAN / ISO 11898-3, FlexRay / ISO 17458, LIN / ISO 17987, MOST, J1939 / SAE 11939, J2284 / SAE12284 ; - la valeur de durée de la temporisation est déterminée comme un pourcentage de la tolérance applicable au décalage des tâches d'un système d'exploitation du calculateur. [0019] Un second aspect de l'invention concerne un calculateur pour véhicule automobile, du type qui est adapté pour assurer conjointement au moins une fonction opérationnelle ainsi qu'une fonction passerelle entre au moins deux bus de communication de données lorsqu'il est couplé à un premier bus de communication de données du véhicule pour recevoir et transmettre des messages de données via ledit premier bus de communication, d'une part, et est couplé en outre à un second bus de communication de données du véhicule pour recevoir et transmettre des messages de données via ledit second bus de communication, d'autre part. Le calculateur est configuré pour mettre en oeuvre une fonction passerelle afin de transmettre des messages reçus d'un émetteur via le premier bus vers un récepteur qui est accessible via le second bus. Le calculateur comprend des moyens pour la mise en oeuvre de toutes les étapes d'un procédé selon le premier aspect de l'invention. [0020] Le calculateur peut être le calculateur d'habitacle, par exemple. Il peut aussi s'agir du calculateur de contrôle moteur, ou du calculateur de châssis et sécurité, ou de tout autre calculateur embarqué dans le véhicule. [0021] Dans un troisième aspect, l'invention a également pour objet une architecture de communications de données dans un véhicule automobile comprenant au moins un premier de communication de données et un second bus de communication de données, et comprenant un calculateur selon le deuxième aspect ci-dessus, qui est 6 couplé au premier bus pour recevoir et transmettre des messages de données via ledit premier bus, d'une part, et qui est couplé en outre au second bus pour recevoir et transmettre des messages de données via ledit second bus, d'autre part. [0022] Selon un dernier aspect, l'invention concerne un produit programme d'ordinateur comprenant une ou plusieurs séquences d'instructions stockées sur un support de mémoire lisible par une machine comprenant un processeur, lesdites séquences d'instructions étant adaptées pour réaliser toutes les étapes du procédé selon le premier aspect de l'invention lorsque le programme est lu dans le support de mémoire et exécuté par le processeur. Description des dessins [0023] D'autres caractéristiques et avantages innovants de l'invention ressortiront à la lecture de la description ci-après, fournie à titre indicatif et nullement limitatif, en référence aux dessins annexés, dans lesquels : [fig.1] : La figure 1 est un diagramme fonctionnel d'un exemple d'architecture de communication de données dans un véhicule automobile ; [fig.2] : La figure 2 montre un schéma fonctionnel d'un exemple de calculateur embarqué selon des modes de réalisation de l'invention ; [fig.3] : La figure 3 illustre un exemple de mise en oeuvre du procédé selon des modes de réalisation de l'invention ; et, [fig.4] : La figure 4 est un diagramme d'étapes illustrant des modes de réalisation du procédé selon l'invention. Description des modes de réalisation 100241 Tel Dans la description de modes de réalisation qui va suivre et dans les Figures des dessins annexés, les mêmes éléments ou des éléments similaires portent les mêmes références numériques aux dessins. 100251 Le schéma de la figure 1 montre un exemple d'architecture de communication de données dans un véhicule automobile à laquelle des modes de réalisation de l'invention peuvent s'appliquer. L'architecture comprend par exemple une pluralité de réseaux de communications de données comme les réseaux 11, 12 et 13, qui sont interconnectés par une unité passerelle 10. Cette unité passerelle est un calculateur dédié à cette fonction passerelle. Chacun des réseaux 1 l, 12 et 13 sert un domaine fonctionnel respectif du véhicule, qui est piloté par un calculateur fonctionnel principal, respectivement 20, 30 et 40. 100261 Dans l'exemple représenté, le domaine associé au calculateur 20 est par exemple le domaine « habitacle » (« Body » en anglais), le domaine associé au calculateur 30 est par exemple le domaine de la « motopropulsion » (« Powertraitz » en anglais), et le domaine associé au calculateur 40 est par exemple ce que Von appelle le domaine 7 « châssis et la sécurité » (« Chassis & Safety » en anglais). Ces calculateurs peuvent être des microcontrôlcurs de la famille des microcontrôleurs RH850 vendus par la société RENESASTM, qui sont dédiés à l'industrie automobile. Ainsi, par exemple : le calculateur 20 chargé du domaine habitacle (ou BCM, de l'anglais « Body Control Module ») peut être un nticrocontrôleur de type RH850/Fl x, par exemple un micro-contrôleur RH850/F1K ; le calculateur 30 chargé du domaine châssis (ou CCM, de l'anglais « Chassis Control Module ») et sécurité peut être un nt icrocontrôlcur de type RH850/Pl x ; et, le calculateur 40 dédié au domaine motopropulsion (ou PCM, de l'anglais « Powertrain Control Module ») peut être un nt icrocontrôleur de type RH850/El x. [0027] Bien entendu, il ne s'agit que d'exemples, et beaucoup d'autres microcontrôleurs ou cartes électroniques à hase de microprocesseurs peuvent réaliser les calculateurs 20, 30 et 40, selon les particularités propres à chaque application. Par exemple, les calculateurs peuvent être des composants de la famille MPC56x dédiés aux applications dans l'automobile, disponibles auprès de la société NXPTM. [0028] Dans un exemple, les réseaux de communication de données 11, 12 et 13 sont par exemple des hus multiplexés respectant le protocole CAN (norme ISO 11898), et plus particulièrement des réseaux du type CAN FD présenté en introduction de la présente description qui est une extension du CAN classique conçue pour améliorer les performances temps réel des applications. La particularité du hus CAN FD est d'offrir un débit binaire qui peut être jusqu'à 8 fois plus élevé que celui du CAN classique, en permettant de transmettre jusqu'à 64 octets de données par trame au lieu de 8 pour le CAN classique. [0029] Chaque réseau comprend en général plusieurs sous-réseaux, bien que cela ne soit nullement obligatoire. Par exemple, le réseau 13 associé au domaine motopropulsion peut comprendre un sous-réseau 41 associé au contrôle moteur, et un sous-réseau 42 associé à la transmission (à savoir la transmission de l'énergie mécanique du moteur aux roue motrices du véhicule). Ces deux sous-réseaux comprennent des capteurs et des actionneurs qui sont pilotés, pour chaque sous-réseau, par un calculateur particulier en l'occurrence le calculateur de contrôle moteur (ou ECU, de l'anglais « Engine Control Unit ») et le calculateur de transmission (ou TCU, de l'anglais « Transmission Control Unit »), respectivement. De la même façon le réseau 12 associé au domaine châssis et sécurité peut comprendre un sous-réseau 31 associé au contrôle du freinage (géré par un calculateur ABS), et un sous-réseau 22 associé au contrôle de trajectoire (géré par un calculateur ESP), etc. [0030] Dans ce qui suit, on détaillera plus particulièrement un sous-réseau du réseau 11, en référence toujours au schéma de la ligure 1. [0031] En effet, le calculateur 20 chargé de la gestion du domaine habitacle est relié à un ou 8 plusieurs sous-réseaux, à savoir un sous-réseau 21 et un sous-réseau 22 dans l'exemple montré à la figure 1. Le premier sous-réseau 21 relie le calculateur 20 à des calculateurs qui sont respectivement chargés, par exemple, de la fonction verrouillage/ déverrouillage des ouvrants du véhicule, de la gestion des vitres électriques, des commandes de réglage et de chauffage des sièges, etc. Le second sous-réseau 22 relie le calculateur 20 à des calculateurs qui sont respectivement chargés, par exemple, de l'éclairage intérieur du véhicule, de l'éclairage extérieur et de la signalisation du véhicule, des commandes d'essuyage, etc. [0032] Dans l'exemple représenté, qui n'est qu'illustratif seulement et nullement limitatif, les réseaux 21 et 22 sont par exemple des bus CAN HS, c'est-à-dire des hus de données CAN « haute vitesse » dont la couche physique implémente les spécifications de la norme ISO 11898-2 ainsi qu'il a été dit en introduction. Leur débit d'échange de données peut aller jusqu'à 1Mbits/s, en étant inversement proportionnel à la longueur du bus. [0033] Dans l'exemple représenté, le calculateur 220 qui est chargé de l'éclairage extérieur et de la signalisation du véhicule, est relié à des actionneurs et à des capteurs par un sous-réseau 50. Le sous-réseaux 50 peut, par exemple, être un hus LIN. Les actionneurs peuvent comprendre, notamment, des lampes 51 pour les feux de signalisation, les feux de croisement, les feux de route, etc., des motoréducteurs comme l'actionneur 52 pour le réglage de la hauteur des phares, par exemple, ainsi que tout autre organe ou accessoire comme par exemple des centrales clignotantes, des convertisseurs de tension pour lampes à décharge, etc. Les capteurs peuvent comprendre des capteurs de hauteur de caisse comme le capteur 53 pour détecter l'effet du chargement du véhicule par exemple afin de corriger le réglage de la hauteur des phares, un capteur de luminosité 54 pour fournir une information permettant la mise en service automatique des deux de position et/ou des feux de croisement, etc. [0034] On notera que certains organes du véhicule, actionneurs ou capteurs, peuvent être partagés par plusieurs réseaux, c'est-à-dire qu'ils peuvent être amenés à recevoir ou à transmettre des informations de, ou à un calculateur autre que le calculateur qui gère le réseau ou sous-réseau auxquels ils sont physiquement couplés. Ainsi par exemple, dans l'architecture montrée à la figure 1, le capteur de hauteur de caisse 53 utilisé par le calculateur 220 pour gérer les foncions d'éclairage externe et signalisation, peut communiquer avec le calculateur ESP gérant le sous-réseau 32 du réseau 12 associé au domaine châssis et sécurité. [0035] Afin de permettre cette communication de données, qui peut être unidirectionnelle ou bidirectionnelle, certains calculateurs implémentent une fonction passerelle, en plus d'assurer les fonctions opérationnelles pour lesquelles ils sont prévus en première intention. Cette multiplicité de foncions assurées par un même calculateur vise à, et 9 permet d'éviter l'utilisation massive d'unités passerelles entre les différents réseaux et sous-réseaux du véhicule qui doivent échanger des données. Ces unités passerelles sont des composants dédiés, ayant pour principal inconvénient d'augmenter le coût de l'architecture de bord du véhicule. [0036] En référence au schéma de la figure 2, on va maintenant décrire fonctionnellement les moyens matériels 100 et les moyens logiciels 200 du calculateur 20 de la figure 1 qui prennent part à la mise en oeuvre du procédé selon des modes de réalisation de l' invention. [0037] Les moyens matériels 100 comprennent tout d'abord un module émetteur- récepteur 101 pour CAN, plus particulièrement pour HS CAN dans l'exemple considéré ici. Ce module réalise l'interface, au niveau physique, pour l'émission et la réception de données en mode différentiel sur les lignes haute et basse, respectivement notées CANH et CANL, du bus CAN qui constitue le réseau 22 de la figure 1. Comme l'homme du métier ne l'ignore pas, en effet, le bus CAN est, dans le domaine automobile, un bus de données série bidirectionnel, semi-duplex, et à lignes différentielles qui sont refermées à chaque extrémité du bus par une impédance de 120 Ohms. [0038] Les moyens matériels 100 comprennent aussi un contrôleur CAN 102. La fonction du contrôleur 102 est de réaliser une interface matérielle entre l'émetteur-récepteur 101 et les moyens de traitement du calculateur 20. A cet effet, le contrôleur 102 comprend notamment une mémoire tampon de réception 103 et une mémoire tampon d'émission 105. Ces mémoires tampons (« byffer » en anglais) 103 et 105 ont pour fonction de stocker les trames CAN reçues par le calculateur 20 via le bus 22 en attente de leur traitement par le calculateur ou les trames CAN produites par le calculateur 20 en attente de leur émission sur le bus 22, respectivement. [0039] Bien entendu, l'homme du métier appréciera que, bien que le schéma fonctionnel de la figure 2 ne montre qu'une seule interface avec un bus de communications de données externe, le calculateur comprend au moins une autre interface pour l'échange de données avec un autre bus. Dans le cas du calculateur 20 montré à la figure 1, ainsi, le calculateur 20 comprend en outre une autre interface avec le bus CAN FD du réseau de communication de données II. Cette interface n'est pas représentée à la figure 2 afin de ne pas surcharger inutilement cette figure. La fonction passerelle du calculateur 20 consiste à réaliser la liaison entre les réseaux 11 et 22, notamment, qui sont de différents types, mais également entre les réseaux 11 et 21, et également encore entre les réseaux 21 et 22 qui sont du même type dans l'exemple considéré ici. Ainsi, dans cette fonction passerelle le calculateur 20 effectue le routage des trames d'un réseau à l'autre. Il peut également effectuer la conversion protocolaire entre les réseaux 21 et 22 qui sont de types respectifs différents. Quel que soit le type respectif des bus de communication de données concernés, le calculateur 20 peut également effectuer des traitements plus évolués sur les trames qu'il transmet, par exemple pour effectuer de la qualité de service, du cryptage/décryptage pour assurer la sécurité de certains échanges de données, etc. [0040] Les moyens logiciels 200 comprennent un pilote de trames 201 (ou pilote CAN, qui est la traduction en français de son appellation « CAN Driver » en anglais), un gestionnaire de trames 202 (ou « Rame Manager » en anglais), et une pluralité de N composants logiciels Cl, C2, Cn, où N est un nombre entier. Tous les modules logiciels s'exécutent sur un processeur du calculateur 20. Pour l'implémentation de la fonction passerelle du calculateur, il y a parmi les composants Cl-Cn un ou plusieurs composants chargés de désencapsuler/encapsuler les données dans le cadre de la conversion protocolaire mentionnée plus haut (lorsque le calculateur assure une telle conversion), d'autres qui peuvent être chargés des traitements liés à la sécurité comme mentionné au paragraphe ci-dessus, etc. Chaque trame comprend 8 octets de données (pour un bus CAN HS standard) ou de 8 à 64 octets de données par multiples de 8 (pour un bus CAN FD). [0041] Tous ces traitements prennent du temps. Les cahiers des charges que doivent respecter les fournisseurs de systèmes embarqués dans les applications automobiles, imposent actuellement d'être capable de passer d'un bus à un autre un message complet en 250 ps voire moins, jusqu' à 200 ps (cc qui fait 4000 à 5000 messages par seconde). Lorsque ces messages sont des trames CAN, elles sont reçues en rafale à raison d'une trame toutes les 100 ps ou toutes les 150 ps environ. Le calculateur peut donc recevoir des trames CAN à un rythme plus élevé que celui auquel il est capable de les traiter. C'est pourquoi des trames CAN arrivant en rafale depuis le bus 22 sont provisoirement stockées dans la mémoire tampon de réception 103, en attente de leur traitement par le calculateur 20. [0042] Or, dès qu'une trame CAN est reçue par le calculateur 20 avec une adresse de des- tination qui implique qu'elle doit être relayée vers un autre réseau ou sous-réseau d'un type différent (donc en faisant appel à la fonction passerelle du calculateur 20), la trame est stockée dans la mémoire tampon de réception 103 du contrôleur CAN 102, et ce dernier génère une interruption matérielle INT, qui porte la référence 300 à la figure 2. Cette interruption matérielle peut par exemple être réalisée par le passage à 0 d'un bit qui est normalement à 1, où 0 et 1 désignent les valeurs logiques binaires auxquelles sont associées des niveaux de tension respectifs. La fonction de cette interruption est de suspendre l'exécution en cours des taches associées aux fonctions opérationnelles du calculateur, afin pour la fonction passerelle de prendre la main sur le calculateur pour convertir et transmettre les trames reçues. [0043] En principe, c'est-à-dire sans la mise en oeuvre de l'invention, l'interruption INT 11 n'est pas relevée avant la fin du traitement de toutes les trames qui sont stockées dans la mémoire tampon 103. Mais comme cela peut prendre un temps non négligeable et afin d'éviter que cela n'affecte les performances temps réel du calculateur, des modes de mise en oeuvre de l'invention prévoient des dispositions qui permettent de redonner la main aux applications opérationnelles, afin que leur exécution reprenne et ainsi ne pas bloquer ces applications au détriment de leur qualité de service. [0044] On va maintenant décrire des modes de mise en oeuvre du mécanisme proposé par l'invention, en référence aux chronogrammes de la figure 3 et au diagramme d'étapes de la figure 4. Dans ce qui suit, on fera alternativement référence à ces deux figures sans forcément le préciser d'une manière particulière à chaque fois. L'effet des étapes du procédé illustré par le diagramme de la figure 4 se voit en effet sur les chronogrammes de la figure 3. [0045] Le chronogramme de la figure 3(a) illustre l'évolution du contenu de la mémoire tampon de réception 102 de la figure 2, en fonction du temps a (de la gauche vers la droite). Dans l'exemple considéré pour cette illustration, la structure de données correspondant à cette mémoire est une pile qui se remplit par le haut et se vide par le bas sur une base « premier entré - premier sorti », avec les trames reçues par le calculateur qui entrent et sont stockées dans la mémoire jusqu'à ce qu'elles en sortent pour être passées au pilote de trames en vue de leur traitement par le processeur du calculateur. Plus particulièrement, les registres de cette pile de données sont représentés par des rectangles disposés les uns au-dessus des autres. [0046] Le chronogramme de la figure 3(b) montre la réception de trames Tl, T2, T3, etc. à des instants respectifs déterminés suivant l'axe des temps t. [0047] Le chronogramme de la figure 3(c) montre l'activité du pilote de trames 201 de la figure 2, en fonction du temps t. Sur cette figure, les périodes d'activité du pilote de trames sont représentées par des rectangles. Les trames concernées par cette activité sont également représentées par des rectangles sur le chrono grammes, au-dessus du rectangle précité, et avec une indication du type « TiCj » où Ti désigne une trame d'indice i dans la séquence des trames stockées dans la mémoire tampon de réception, et où Cj désigne le composant logiciel d'indice j dans l'ensemble des N composants logiciels Cl à Cn. Ainsi par exemple l'indication T2C3 dans un rectangle signifie que ce rectangle désigne le fait que la deuxième trame T2 est traitée par le troisième composant C3. [0048] Enfin, le chronogramme de la figure 3(d) montre l'activation et la désactivation en fonction du temps t de l'interruption INT de la figure 2. [0049] Dans le contexte de modes de mise en oeuvre de l'invention considérés ici, une in- terruption est un évènement, et plus particulièrement un évènement matériel, par exemple le passage à 0 d'un bit stocké dans un registre du calculateur qui est nor- 12 miment à 1, Le, qui est à 1 par défaut. Dans un exemple, on considère qu'initialement le bit INT est à 1, ce qui veut dire que l'interruption n'est pas activée. Le processeur du calculateur est libre d'exécuter les processus liés aux applications opérationnelles du calculateur. [0050] L'activation de l'interruption, c'est-à-dire le passage de 1 à 0 du bit INT, a pour fonction de provoquer l'arrêt de l'exécution séquentielle du processus en cours d'exécution dans le calculateur hôte, pour placer ce processus dans un mode d'attente. Lors d'une interruption, le processeur sauve tout ou une partie de son état interne, appelé « contexte », par exemple dans la pile système. Puis il exécute la routine d'interruption associé à l'interruption concernée, qui correspond ici au traitement des trames CAN reçues dans le cadre de la mise en oeuvre de la fonction passerelle du calculateur. L'appel à cette routine, qui est un autre programme, à savoir un sous-programme aussi appelé « service d'interruption », s'effectue par exemple en suivant les directives d'une table d'interruption indiquant pour chaque type d'interruption que le calculateur peut recevoir, le sous-programme à exécuter. [0051] Le processus correspondant au programme opérationnel reste dans ce mode d'attente tant que l'interruption est activée, i.c., tant que le bit en question reste à 0 dans l'exemple considéré ici. L'exécution du programme reprend là où elle s'était arrêtée une fois que l'interruption est désactivée, i.c., quand le bit est relevé à 1 dans cet exemple. A cet effet, l'état du processeur est restauré tel qu'il a été sauvé au moment de la survenue de l'interruption, et on fait repartir l'exécution du programme opérationnel par le processeur à partir de l'endroit où il avait été interrompu. [0052] L'Homme du métier appréciera que l'évènement indiqué ci-dessus pour déclencher l'interruption n'est qu'un exemple. D'autres évènements matériels ou logiciels peuvent lui être substitués, sans dénaturer l'invention, en fonction notamment du type de calculateur dont il s'agit et/ou de la mise en oeuvre du gestionnaire de trames. Par exemple, l'activation d'une interruption peut être l'écriture d'une valeur complexe déterminée dans un registre déterminé. [0053] Enfin, on notera que des flèches courbes en traits pointillés montrent les implications logiques entre les différents événements représentés ou visibles à travers les chronogrammes des figures 3(a) à 3(d). [0054] On va maintenant décrire le déroulement du procédé selon des modes de mise en oeuvre de l'invention et plus particulièrement d'étapes 401 à 408 du procédé qui sont illustrées à la figure 4. On suppose qu'initialement la mémoire tampon de réception est vide et que le bit de l'interruption INT est à 1. [0055] En 401, le calculateur reçoit une ou plusieurs trames de données en provenance d'un émetteur, via le bus 22 des figures 1 et 2. Ces trames sont destinées à un récepteur qui est accessible via un autre bus, par exemple le bus 11 de la figure 1. Le contrôleur 13 CAN le détecte sur la hase de l'adresse de destination contenue dans les trames CAN. Cela étant, il provoque le stockage en 402 des trames ainsi reçues, dans la mémoire tampon de réception, en attente de leur traitement en vue de leur transmission au récepteur via ledit autre hus. Ainsi qu'on peut le voir dans la première représentation de la structure de données de la mémoire tampon de réception qui est visible à l'extrémité gauche du chronogramme de la figure 3(a), une première trame Tl est stockée dans la mémoire tampon de réception. [0056] Par ailleurs, la réception de la première trame Tl de la séquence de trames reçues et stockées dans la mémoire tampon de réception provoque, en 403 l'activation de l'interruption INT, c'est-à-dire le passage de 1 à 0 du bit correspondant, dans l'exemple considéré ici, ce qui est montré à la figure 3(d). [0057] Ce déclenchement 403 de l'interruption INT a pour effet d'interrompre l'exécution d'un programme opérationnel en cours d'exécution par le processeur du calculateur. En outre, il a également pour effet de causer le traitement par ledit processeur des trames reçues afin de les transmettre au récepteur via le second hus. Ce traitement est piloté par le pilote de trames qui devient donc actif à ce moment-là, comme montré au chronogramme de la figure 3(c). Dans l'exemple représenté, le pilote de trames en liaison avec le gestionnaire de trames, provoque le traitement de la trame Ti successivement par le composant logiciel Cl et par le composant logiciel C2. Est ensuite entamé le traitement par le composant logiciel Cl d'une trame T2 qui est reçue après la trame Tl, et stockées provisoirement dans la mémoire tampon de réception. [0058] Néanmoins, l'expiration d'une première durée déterminée DI survient en 404, pendant le traitement ci-dessus de la trame T2, cette durée Dl étant décomptée à partir du déclenchement de l'interruption INT. De ce fait, l'interruption INT est désactivée en 405 afin de rendre la main au processeur pour la poursuite de l'exécution du programme fonctionnel. Ceci n'intervient avantageusement qu'après et à la fin du traitement de la trame T2 en cours de traitement par le composant logiciel Cl au moment de ladite expiration. En effet, il n'est pas souhaitable d'interrompre le traitement d'une trame avant qu'il ne soit achevé, notamment car cela pourrait laisser des registres du calculateur avec des valeurs transitoires qui pourraient être sources d'erreurs pour les traitements suivants. On notera que l'interruption INT est relevée nonobstant la présence éventuelle d'autres trames reçues, dans la mémoire tampon, en attente de leur traitement par le calculateur afin de les transmettre au récepteur. Ainsi, dans l'exemple représenté à la figure 3, une troisième trame T3 a été reçue par le calculateur quand la durée Dl se termine, et elle est stockée dans la mémoire tampon de réception où elle se trouve encore, de même que la trame T2 dont le traitement doit être poursuivi par les composants logiciels C2 et C3, après l'expiration de la durée Dl et plus particulièrement lorsque le traitement de la trame Tl par le composant Cl est 14 terminé. En dépit de cela, le relèvement de l'interruption INT rend la main au processeur du calculateur pour reprendre l'exécution du ou des processus des programmes d'application exécutée par le calculateur dans le cadre de ses fonctions opérationnelles. Ainsi, grâce à l'invention, la qualité de service offerte par ces programmes d'application, et notamment leur aspect temps réel, n'est pas dégradée par la prééminence de la fonction passerelle du calculateur qui découle des mises en oeuvre selon l'art antérieur. [0059] Dans un mode de mise en oeuvre, la durée Dl est une durée constante. La valeur de la durée Dl peut être déterminée sur la base de la tolérance applicable au décalage (appelé « fluer » dans la langue anglo-saxonne) des tâches du système d'exploitation embarqué. Dans un exemple, la durée Dl peut être comprise entre environ 50 microsecondes et environ 100 microsecondes (ms). Elle peut être fixe (c'est-à-dire intangible). En variante, la durée Dl peut être programmable. [0060] Dans d'autres modes de mise en oeuvre, la durée Dl peut aussi être variable en fonction de paramètres pris en compte par le calculateur, afin par exemple d'adapter la performance temps réel du calculateur à des circonstances particulières. Ces paramètres peuvent être, par exemple, des paramètres mesurés par le calculateur. [0061] Le déclenchement 407 d'une nouvelle interruption intervient à la fin 406 d'une seconde temporisation de durée D2 déterminée suivant la désactivation de l'interruption, c'est-à-dire à l'issue du décompte de la durée D2 par un circuit de temporisation (« Timer » en anglais), par exemple. Cette seconde interruption, c'est-à-dire le nouveau passage du bit INT de 1 à 0 visible à la figure 3(d), à pour effet d'interrompre de nouveau l'exécution du programme opérationnel par le processeur, et causer la poursuite du traitement par ledit processeur des trames reçues et stockées dans la mémoire tampon, afin de les transmettre au récepteur via le second bus. Ainsi, la trames T2 peut être traités par les composants logiciels C2 et C3, successivement, et la trame T3 est traitée par le composant logiciel Cl, comme montré à la figure 3(c). [0062] Dans l'exemple montré aux figures 3(a)-3(d), le traitement de toutes les trames restant dans la mémoire tampon de réception 102 de la figure 2, est terminé avant l'expiration d'une nouvelle durée Dl suivant la nouvelle interruption INT, en sorte que le procédé s'arrête à la fin du traitement de la trame T3 par le composant logiciel Cl. Autrement, l'homme du métier appréciera que le mécanisme décrit ci-dessus est renouvelé, c'est-à-dire que l'interruption INT est relevée afin de permettre, pendant une nouvelle durée D2, la reprise du traitement du programme opérationnel dont l'exécution a été interrompue, et qu'une nouvelle temporisation D2 est décomptée avant de générer une nouvelle interruption pour reprendre le traitement des trames qui demeurent stockées dans la mémoire tampon de réception 102 du calculateur. [0063] La valeur de la durée D2 de la temporisation dépend des contraintes spécifiques à chaque application. Dans un mode de réalisation, la valeur de la durée de la temporisation D2 peut être déterminée comme un pourcentage de la tolérance applicable au décalage des tâches gérées par le système d'exploitation du calculateur. Elle peut ainsi être comprise entre 5% et 15% de cette tolérance. Des valeurs typiques de D2 sont de l'ordre de quelques microsecondes (ps), ou d'une (ou plusieurs) dizaine(s) de microsecondes. [0064] La présente invention a été décrite et illustrée dans la présente description détaillée et dans les figures des dessins annexés, dans des formes de réalisation possibles. La présente invention ne se limite pas, toutefois, aux formes de réalisation présentées. D'autres variantes et modes de réalisation peuvent être déduits et mis en oeuvre par la personne du métier à la lecture de la présente description et des dessins annexés. [0065] En particulier, l'architecture du véhicule peut être plus simple ou plus complexe que celle illustrée par la figure 1, en étant découpée en moins de domaines fonctionnels, ou au contraire peut comprendre un ou plusieurs autres domaines fonctionnels servis par d'autres réseaux de communication principaux respectifs, comme par exemple un domaine d'infodivertissement (« Infotaitunent » en anglais). Egalernent, tout ou partie des réseaux de communications de données principaux peuvent respecter un autre protocole que le CAN ou l'un de ses protocoles dérivés, comme par exemple le protocole FlexRay déjà mentionné en introduction. [0066] Egalement, par souci de simplicité on a envisagé dans la présente description un cal- culateur embarqué qui est un calculateur monoprocesseur, mais le procédé peut se généraliser à des calculateurs pluri-processeurs, ou avec un (ou plusieurs) processeur(s) plusieurs coeurs de processeur, capables d'exécuter chacun des processus respectifs en parallèle les uns avec les autres. [0067] Par ailleurs, on a pris l'exemple d'une fonction passerelle entre un premier bus 22 qui est un bus de type HS CAN et un second bus 11 qui est un bus du type CAN FD, mais ceci n'est nullement limitatif En effet, le premier et le second bus de communications sont des bus de types respectifs différents qui peuvent être sélectionnés, notamment, parmi les types de bus de communication pour l'automobile appartenant au groupe suivant : - HS CAN / ISO 11898-2, - CAN FD / ISO 11898-2 : 2015, - LS CAN / ISO 11898-3, - FlexRay / ISO 17458, - LIN / ISO 17987, - MOST, - J1939 / SAE J1939, - J2284 / SAE J2284, etc. 16 [0068] Dans les revendications, le terme "comprendre" ou "comporter" n'exclut pas d'autres éléments ou d'autres étapes. Un seul processeur ou plusieurs autres unités peuvent être utilisées pour mettre en oeuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes, n'excluent pas cette possibilité. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention. 17 [Revendication 1]