FR 3021480 A1 20151127 FR 1454573 A 20140521 COMMUTATEUR DE TRAMES NUMERIQUES Domaine de l'invention La présente invention concerne le domaine des systèmes numériques de contrôle, destinés notamment à des équipements embarqués tels que des équipements industriels, aéronautiques, automobiles, ferroviaires ou navires. Etat de la technique Le principe général de tels systèmes est bien connu : il s'agit par exemple de réseaux Ethernet commutés. Ethernet est un protocole de réseau local à commutation de paquets. Bien qu'il implémente la couche physique (PHY) et la sous-couche Media Access Control (MAC) du modèle IEEE 802.3, le protocole Ethernet est classé dans les couche de liaison de données et physique, puisque la couche LLC (Logical Link Control) 802.2 fait la charnière entre les couches supérieures et la sous-couche MAC (Media Access Control) qui fait partie intégrante du processus 802.3 avec la couche physique, car les formats de trames que le standard définit sont normalisés et peuvent être encapsulés dans des protocoles autres que ses propres couches physiques MAC et PHY. Ces couches physiques font l'objet de normes séparées en fonction des débits, du support de transmission, de la longueur des liaisons et des conditions environnementales. L'Ethernet est basé sur le principe de membres (pairs) sur le réseau, envoyant des messages dans ce qui était essentiellement un système radio, captif à l'intérieur d'un fil ou d'un canal commun, parfois appelé l'éther. Chaque pair est identifié par une clé globalement unique, appelée adresse MAC, pour s'assurer que tous les postes sur un réseau Ethernet aient des adresses distinctes.35 On connaît dans l'aéronautique le bus AFDX basé sur le routage de trames Ethernet au moyen de commutateurs centraux appelés "hubs", réduisant le problème d'indéterminisme lié au conflit d'accès physique au médium. On connaît aussi des solutions utilisées dans l'industrie spatiale, connues sous le nom de « Spacewire », un bus informatique basé historiquement sur le standard IEEE 1355 et spécifié sous forme de standard Européen (ECSS-E-ST-50- 12C). Dans le domaine automobile, l'état de l'art comprend la technologie CAN. Le bus CAN (Controller Area Network) est un bus système série très répandu dans beaucoup d'industries, notamment l'automobile. CAN repose entièrement sur CSMA, avec arbitrage des collisions au niveau du bit "CSMA/BA". Il a été normalisé avec la norme ISO 11898. Il met en application une approche connue sous le nom de multiplexage, et qui consiste à raccorder à un même câble (un bus) un grand nombre de calculateurs qui communiqueront donc à tour de rôle. Cette technique élimine le besoin de câbler des lignes dédiées pour chaque information à faire transiter (connexion point-à-point). Dès qu'un système (voiture, avion, réseau téléphonique...) atteint un certain niveau de complexité, l'approche point-à-point devient impossible du fait de l'immense quantité de câblage à installer et de son coût (en masse, matériaux, main d'oeuvre, maintenance). L'introduction des bus multiplexés (principalement le CAN) dans l'automobile avait pour objectif de réduire la quantité de câbles dans les véhicules (il y a jusqu'à 2 km de câbles par voiture), mais elle a surtout permis l'explosion du nombre de calculateurs et capteurs distribués dans tout le véhicule, et des prestations correspondantes (baisse de consommation, dépollution, sécurité active/passive, confort, détection des pannes...), tout en n'augmentant pas trop les longueurs câblées. Inconvénients de l'art antérieur Les solutions de l'art antérieur sont toutes spécifiques à un domaine d'application, et ne permettent pas de répondre de manière universelle à des applications de contrôle embarqué. Pour l'industrie automobile, la solution Ethernet ou AFDX n'est pas appropriée car elle est trop complexe donc chère et manquant de réactivité. En particulier les trames sont lourdes et peu réactives car prévues pour suivre un routage complexe, avec collisions pour Ethernet ou routeurs pour AFDX. Il en résulte en outre des composants de contrôle complexes et donc coûteux. La solution « CAN bus » est économique mais présente l'inconvénient d'un manque de robustesse logicielle et de performances médiocres, ne permettant pas une utilisation performante dans un système de calculateurs embarqués. La solution Spacewire est performante et potentiellement économique au niveau des composants, mais présente l'inconvénient d'un manque de souplesse, en particulier pour réaliser des systèmes complexes, l'avantage de coût devenant discutable à l'échelle du système. Enfin, toutes ces solutions sont liées à un matériel et des logiciels spécifiques, même quand leur objectif était de s'en abstraire, ce qui limite leur domaine 30 d'application. Solution apportée par l'invention La présente invention vise à remédier à ces inconvénients en proposant une solution universelle robuste, flexible et performante. A cet effet, l'invention concerne plus 5 particulièrement, selon son acception la plus générale, un commutateur de trames numériques échangées avec un système informatique externe, ledit commutateur comportant au moins un port d'entrée, au moins un port de sortie et une matrice de commutation caractérisé en ce que ledit port entrant comporte 10 en outre: - Un premier moyen de validation de la trame entrante - Un deuxième moyen de routage de ladite trame validée - Un troisième moyen de stockage temporaire de la trame entrante validée 15 - ledit moyen de stockage temporaire de la trame entrante validée étant commandé par une information de type « contrôle de flux » provenant de ladite matrice de commutation, et en ce que ledit port sortant comprend : 20 - un moyen de stockage temporaire de la trame sortante commandé par une information de type « contrôle de flux » provenant dudit système informatique externe ledit commutateur de trames numériques fonctionnant selon un mode FIFO (premier entrant, premier sortant), ce qui 25 suppose de ne pas accorder de priorité à certaines trames comme avec Ethernet et AFDX. De préférence, le commutateur de trames numériques selon l'invention les propage en préservant leur intégrité. 30 Selon une première variante, l'un au moins desdits ports entrant et/ou l'un au moins desdits ports sortant est associé à un coupleur physique de réseau. Selon une deuxième variante, l'un au moins desdits ports entrant et/ou l'un au moins desdits ports sortant est relié à un calculateur local. Avantageusement, il comporte une pluralité de calculateurs. Selon un exemple de réalisation, l'un au moins desdits ports comporte une interface physique série. Selon un autre exemple de réalisation, l'un au moins desdits ports comporte une interface physique parallèle. Selon un autre exemple, le commutateur comporte un 15 seul port entrant et un seul port sortant formant un canal de communication bidirectionnel. Selon une variante avantageuse, le commutateur selon l'invention comporte en outre une mémoire pour 20 l'enregistrement d'un fichier numérique de description : - des règles de validation d'une trame, - des règles de routage applicable à chaque trame. L'invention concerne aussi un système caractérisé 25 en ce qu'il comporte plusieurs commutateurs conformes à l'une au moins des solutions précédentes, et une mémoire distribuée sur tous les commutateurs pour l'enregistrement des règles de validation des trames et des règles de routage applicable à chaque trame par chaque commutateur. 30 Description détaillée d'un exemple non limitatif de réalisation 10 L'invention sera mieux comprise à la lecture de la description d'un exemple non limitatif qui suit, se référant aux dessins annexés où : - la figure 1 représente un schéma de principe d'un circuit utilisant des commutateurs selon l'invention - la figure 2 représente une vue schématique d'un commutateur de trames - la figure 3 représente une vue schématique de la trame des données - la figure 4 représente une vue schématique de l'artiche ture d'un composant selon l'invention - la figure 5 représente une vue schématique de la trame sortante - la figure 6 représente une vue schématique du port de sortie - la figure 7 représente une vue schématique d'une application de coupleur de réseau - la figure 8 représente une vue schématique d'une application de passerelle de réseau - la figure 9 représente une vue schématique d'une autre application de passerelle de réseau - la figure 10 représente une vue schématique d'une application de multiprocesseur - la figure 11 représente une vue schématique d'une architecture hétérogène. - La figure 12 illustre en traits pleins un système avec une liaison unique du commutateur selon l'invention (liaison 1202 pointillée). La figure 1 représente un exemple d'utilisation d'un commutateur numérique selon l'invention. Ce commutateur de trames numériques (1) selon l'invention est composé de ports de communication (2, 4, 5, 6, 7) reliés par une matrice de commutation (3). Les ports d'entrée (2,5) reçoivent des trames numériques d'environnement extérieur. Les ports de sortie (6) émettent vers l'extérieur des trames qui leur sont routées par la matrice de commutation (3). Les ports en entrée et en sortie peuvent être associés pour former des ports d'entrée/sortie (4,7). La figure 2 représente une vue schématique d'un commutateur de trames comprenant : - au moins un port d'entrée (71) - la matrice de commutation (72) - au moins un port de sortie (73) Le port d'entrée (71) comprend une interface physique (31), par exemple un désérialiseur, pour une interconnexion avec un réseau, ou un port parallèle pour une interconnexion avec un calculateur voisin. Le port comprend également un circuit électronique 15 réalisant un contrôle d'intégrité de la trame, par exemple par des contrôles de type « checksum », CRC (contrôle de redondance cyclique), par test de parité ou détection d'erreur, ou encore par un procédé de type EDAC « Error detection and correction ». 20 A titre d'exemple non limitatif, un tel moyen est décrit dans le brevet européen EP2437172. Ce brevet décrit un circuit de détection et de correction d'erreurs (EDAC) pour un usage dans un système de mémorisation redondant, le circuit EDAC comprenant : 25 - une première entrée pour recevoir des premières données et informations de parité stockées par un premier dispositif de mémorisation ; - une deuxième entrée pour recevoir des secondes données et informations de parité stockées par un second 30 dispositif de mémorisation; - une première sortie pour fournir les premières données ou les secondes données sur un bus de données. Une première logique de contrôle de parité qui calcule si la parité est « bonne » ou « mauvaise » dans les 35 premières données et informations de parité reçues. Une seconde logique de contrôle de parité calcule si la parité est « bonne » ou « mauvaise » dans les secondes données et informations de parité reçues. Une logique de comparaison binaire détecte des différences entre les premières données et les secondes données. La logique de comparaison binaire détecte des différences entre les premières informations de parité et les secondes informations de parité. Une logique de sélection de données choisit les premières données ou les secondes données pour fournir à la première sortie sur la base de la parité calculée des premières données et des secondes données ainsi que des différences entre les premières données et les secondes données, et entre les premières informations de parité et les secondes informations de parité. Une logique de détection d'erreurs de bit unique ou de bits multiples détecte la présence d'erreurs de bits multiples dans les premières et secondes données et informations de parité sur la base des différences détectées entre les premières données et les secondes données et entre les premières informations de parité et les secondes informations de parité. Une logique d'erreurs de bit unique ou de bits multiples remet à zéro le système de mémorisation en réponse à des erreurs détectées de bits multiples, dans lequel le comportement du circuit EDAC est défini par un tableau logique. Ce circuit réalise, ou la correction d'erreur, l'identification de la trame, l'extraction de l'identifiant de la trame, par exemple la première série d'information contenues dans la trame. Cette donnée d'identification de la trame d'entrée est utilisée comme entrée d'une mémoire associative dans laquelle est enregistrée une table de correspondant associant à chaque entrée une vecteur de routage, par exemple sous la forme d'un mot de N bits (N correspondant au nombre de ports de sortie). Si tous les bits sont à l'état « vrai », la trame sera diffusée à tous les ports de sortie. Le routage (33) consiste à associer ce vecteur de routage à la trame d'entrée validée. Le résultat de ce traitement est enregistré dans une mémoire de type FIFO (« first in, first out ») (34) traversante (« fall-through »). 5 Le stockage n'intervient que si la sortie ne permet pas de propager immédiatement la trame sortante, notamment si le port de sortie n'est pas libre ou si la totalité des ports de sortie désignés par le vecteur de routage ne sont pas en mesure d'assurer simultanément et immédiatement la 10 propagation. Le port de sortie (73) comprend également une mémoire FIFO de stockage temporaire (61), assurant le stockage uniquement lorsque la propagation n'est pas immédiatement possible. 15 Il comprend également une interface physique (62) série ou parallèle. Une matrice (72) est constituée par un ensemble de multiplexeurs arrangés en graphe complet de type « fullmesh ». Elle assure la distribution des trames d'entrée 20 validées vers les ports de sortie en fonction des vecteurs de routage associés par le routeur (33). La matrice est traversée lorsqu'une trame d'entrée est à router vers une mémoire FIFO (61) disponible sur le port de sortie (73) correspondant. La matrice de commutation (72) reçoit des trames 25 numériques des ports d'entrée sur ses entrées (20) et les dirige vers une ou plusieurs de ses sorties (21) vers les ports de sortie correspondants du coupleur connecte des ports de sortie du commutateur de trames numériques selon l'invention. Une réalisation avantageuse est d'associer à 30 chaque sortie de la matrice de commutation (72) un multiplexeur recevant toutes les entrées de la matrice de commutation. La figure 3 représente un exemple de structure d'une trame numérique. La trame entrante commence par une clé d'identification ID (11) par laquelle le commutateur de trames identifie le routage qui lui sera appliqué. L'identifiant de trame (11) est immédiatement suivi 5 de données de contrôle ID _Val (12) et ces deux informations associées prouvent l'intégrité de l'ID (11) et autorisent son décodage. La charge utile de la trame numérique (13) suit, et elle peut être également accompagnée d'une clé de contrôle 10 d'intégrité Data_Val (14). Le port d'entrée (2) comprend les éléments décrits dans la Figure 4, Les trames numériques provenant du monde extérieur par une interface physique (41) convertissant le format 15 physique de la trame numérique dépendant du médium emprunté, en un format adapté à la propagation numérique interne par FIFO. Une première étape (42) de validation contrôle l'intégrité du couple {ID (31) : ID _Val (32)1 pour 20 l'accepter/rejeter. L'identifiant ID de la trame acceptée est passé (47) à la table de routage (43) associée au port d'entrée. L'étape de routage (44) assigne à la trame entrante (48) le routage (49) enregistré dans la table (43). 25 La table (43) dispose également d'entrées logiques (46) aussi appelés drapeaux indiquant l'état du voisinage réseau du commutateur et utilise cette information pour sélectionner parmi les routes enregistrées pour une trame celle à emprunter. L'information de voisinage peut consister 30 de manière non limitative en la disponibilité matérielle d'un port de sortie, d'un lien extérieur, du commutateur voisin ou proche. La trame est ensuite à disposition de la matrice de commutation (3) qui peut être disponible si les ports de 35 sortie désignés par le routage de la trame sont prêts à la recevoir, auquel cas elle consomme la trame immédiatement, ou indisponible auquel cas la trame est retenue dans la mémoire de stockage du port d'entrée. La figure 5 montre la trame numérique entrante 5 (11,12,13,14) acceptée et routée par l'adjonction d'un en-tête préliminaire (15) désignant à la matrice de commutation le ou les ports de sortie que ladite trame doit emprunter. Une réalisation avantageuse de ce routage interne consiste en un mot parallèle (vecteur) dont chaque bit ou 10 groupe de bits correspondant à chaque port de sortie est mis à VRAI pour que ledit port de sortie reçoive un exemplaire de la trame numérique. Il est ainsi facile de router la trame vers un, plusieurs ou tous les ports de sortie. Ce vecteur est avantageusement stocké tel quel dans la table de routage (43), 15 associé à l'ID (31) correspondant à ce comportement de routage. Le port de sortie représenté en figure 6 comprend : - un moyen de stockage de trame (61), typiquement une Fifo qui se vide à l'extérieur dès que la sortie est 20 disponible, éventuellement la Fifo (61) est juste traversée si la voie vers l'extérieur est disponible. De même pour la mémoire de stockage du port d'entrée (45), de sorte qu'une trame peut typiquement traverser le commutateur selon l'invention en quelques coups 25 d'horloge interne nécessaires à la validation de l'ID et au routage. La figure 8 représente une vue schématique d'un premier exemple d'application : l'utilisation du commutateur selon l'invention (1) pour relier de la manière la plus 30 classique un réseau (83) via un port série (82) d'une part, et d'autre part un calculateur (86) par un bus parallèle (85) via un second port (84). L'interface réseau (31,62) des ports est un sérialiseur pour le port (82) et un port parallèle pour (84). Dans l'exemple d'application illustré par la figure 9, le commutateur (1) selon l'invention est utilisé comme passerelle entre un réseau (91) et un réseau (92) physiquement dissimilaires, par exemple Ethernet 1000BASE-T et 100BASE-T, les interfaces physiques de chacun des deux ports réalisant la fonction de passerelle. Dans le cas illustré, les trames sont identiques logiquement et seule leur baud rate change. Dans l'exemple d'application illustré par la figure 10, le commutateur (1) selon l'invention est utilisé comme passerelle entre un réseau (91) et un réseau (92) physiquement et logiquement dissimilaires, par exemple AFDX et Spacewire, associé à un calculateur (101) par un port et parallèle(16). La dissimilarité logique, correspondant à la fonction de passerelle complète, est gérée en dirigeant les trames en provenance d'un des réseaux vers le calculateur, qui les convertit au format logique du réseau destinataire et les lui envoie par le commutateur. Dans l'exemple d'application illustré par la figure 20 11, le commutateur (1) selon l'invention est utilisé comme coupleur entre un réseau (91) et deux calculateurs (111, 112). Cet arrangement permet de réaliser avantageusement une structure bi- ou multi-processeur, dans laquelle chacun a un accès égal au réseau ainsi qu'à l'autre ou aux autres 25 processeur(s). Ces structures sont avantageuses pour, de manière non limitative, multiplier la puissance de calcul en un point du système, mettre en redondance des ressources logiques, favoriser les échanges entre deux calculateurs. La figure 12 représente un système hétérogène 30 physiquement et logiquement réalisé avec des commutateurs selon l'invention, dont la structure physique comprend : - un ler sous-système de commutateurs (1211, 1212, 1213, 1214, 1215) réalise une structure de bus, dans laquelle l'utilisation en écriture du médium commun (1210) est partagée 35 temporellement par les calculateurs associés. - un 2ème sous-système comprenant deux commutateurs (1212, 1213) et un médium (1220) est également arrangé en bus, les commutateurs (1212, 1213) partageant ainsi deux bus physiquement séparés, ce qui constitue un avantage en disponibilité dans le système. - un 3ème sous-système comprenant les calculateurs (1230, 1231, 1232) forme une chaîne à l'aide des coupleurs (1233, 1234). Cet arrangement est avantageux pour réunir par exemple des capteurs nombreux à sécurité non critique avec un minimum de câblage. Si le format des trames entre sous-systèmes est différent, le calculateur (1230) en début de chaîne a la possibilité de fonctionner en passerelle logique pour échanger les trames de la chaîne (1230, 1231, 1232) et celles des bus (1210) ou (1220). - un 4ème sous-système réunit en anneau physique les commutateurs (1240 à 1246), où (1240, 1241, 1243, 1244, 1246) sont chacun associés à un calculateur, (1245) associé à deux calculateurs, (1242) servant de liaison vers le cinquième sous-système. L'arrangement en anneau est avantageux pour relier étroitement des calculateurs avec une distribution homogène de bande passante, et offre une grande sécurité intrinsèque en cas de perte d'un lien ou d'un noeud. - un 5ème sous-système rassemble en étoile autour 25 du commutateur (1250) quatre calculateurs (1251, 1252, 1253, 1254). Une telle structure est avantageuse pour des bus tels qu'AFDX. - le lien inter-système (1201) entre l'anneau (1240 : 1246) et l'étoile (1251 : 1254) apporte une protection 30 au système contre la défaillance des commutateurs (1242) et (1250) en s'opposant à la propagation de pannes vers respectivement l'étoile et l'anneau. Le système en Figure 12 présente un point faible évident par la liaison unique du commutateur (1214) au bus 35 (1210). Il est simple avec le commutateur selon l'invention de pallier cette faiblesse en instanciant, à titre d'exemple non limitatif, une liaison (1202) figurée en pointillé entre les commutateurs (1250) et (1215). La scission du système devient ainsi beaucoup moins probable, par perte simultanée de deux liens. La finalité du système utilisant le commutateur est d'acheminer les trames numériques entre calculateurs. Les éléments de ce service sont assurés par exemple comme suit : - une étape de configuration du système de type « ordonnancement total» - on tabule la totalité des trames échangées entre les calculateurs - on détermine l'emplacement des calculateurs dans la géométrie du réseau - on détermine le chemin le plus favorable pour chaque trame et optionnellement les chemins secondaires en cas de perte de certains éléments du système ou de composants du système - on génère une table associée à chaque port d'entrée des commutateurs selon l'invention, ladite table étant enregistrée dans une mémoire associative prenant en entrée l'identifiant de la trame et délivrant en sortie son vecteur de routage préalablement ordonnancé. Il est avantageux de permettre au calculateur 25 proche du commutateur de mettre à jour les drapeaux de la table de routage en fonction d'algorithmes de reconnaissance de l'état du système. REVENDICATIONS1 - Commutateur de trames numériques échangées avec un système informatique externe, ledit commutateur comportant au moins un port d'entrée (71), au moins un port de sortie (73) et une matrice de commutation (72) caractérisé en ce que ledit port entrant comporte en outre: - Un premier moyen de validation (32) de la trame entrante - Un deuxième moyen de routage (33) de ladite trame validée - Un troisième moyen de stockage (34) temporaire de la trame entrante validée - ledit moyen de stockage temporaire (34) de la trame entrante validée étant commandé par une information de type « contrôle de flux » provenant de ladite matrice de commutation (72), et en ce que ledit port sortant (73) comprend : - un moyen de stockage temporaire (61) de la trame sortante commandé par une information de type « contrôle de flux » provenant dudit système informatique externe ledit commutateur de trames numériques fonctionnant selon un mode FIFO (premier entrant premier sortant). 2 - Commutateur de trames numériques échangées avec un système informatique externe selon la revendication 1 25 caractérisé en ce qu'il ne comporte aucun moyen de modification de ladite trame numérique. 3 - Commutateur de trames numériques échangées avec un système informatique externe selon la revendication 1 ou 2 30 caractérisé en ce que l'un au moins desdits ports entrant (71) et/ou l'un au moins desdits ports sortant (73) est associé à un coupleur physique de réseau (31, 62). 4 - Commutateur de trames numériques échangées avec 35 un système informatique externe selon la revendication 1, 2 ou3 caractérisé en ce que l'un au moins desdits ports entrant (71) et/ou l'un au moins desdits ports sortant (73) est relié à un calculateur local. 5 - Commutateur de trames numériques échangées avec un système informatique externe selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte une pluralité de calculateurs. 6 - Commutateur de trames numériques échangées avec un système informatique externe selon l'une au moins des revendications précédentes caractérisé en ce l'un au moins desdits ports comporte une interface physique série. 7 - Commutateur de trames numériques échangées avec un système informatique externe selon l'une au moins des revendications précédentes caractérisé en ce l'un au moins desdits ports comporte une interface physique parallèle. 8 - Commutateur de trames numériques échangées avec un système informatique externe selon la revendication 1 caractérisé en ce qu'il comporte un seul port entrant et un seul port sortant formant un canal de communication bidirectionnel. 9 - Commutateur de trames numériques échangées avec un système informatique externe selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre une mémoire pour l'enregistrement d'une fichier numérique de description : - des règles de validation d'une trame, - des règles de routage applicable à chaque trame. 10 - Système caractérisé en ce qu'il comporte 35 plusieurs commutateurs conformes à l'une au moins desrevendications précédentes, et une mémoire pour l'enregistrement des règles de validation des trames et des règles de routage applicable à chaque trame.