FR 2720210 A1 19951124 FR 9406298 A 19940520 PROCÉDÉ ET DISPOSITIF DE TRANSMISSION DE DONNÉES ASYNCHRONE AU MOYEN D'UN BUS SYNCHRONE. La présente invention concerne un dispositif de transmis- sion de données utilisant un bus série de transmission de données synchrone, tel que celui défini par la norme ARINC 659. Elle s'applique notamment, mais non exclusivement, à la transmission de données numériques entre modules d'un équipement électronique embarqué à bord des aérodynes. Un tel dispositif comprend généralement un bus de transmis- sion de données et des coupleurs qui assurent chacun la connexion d'un module électronique avec le bus et contrô- lent l'accès à ce dernier. La norme ARINC 659 vise à spécifier une architecture de bus dit de "fond de panier" et de coupleur de bus utilisés dans les équipements électroniques embarqués à bord des aérodynes. -2- Selon cette norme, le bus comprend quatre bus série multi- plexés redondants de transfert de données permettant de détecter et de corriger les erreurs de transmission. Les coupleurs présentent une architecture répartie en couches, dont une couche dite physique, une couche de liaison et une couche de transport qui assure la transmission d'informa- tions par volumes importants. Seules les couches physique et de liaison sont décrites par cette norme. La couche physique qui regroupe les mécanismes de transmis- sion et les mécanismes de synchronisation des horloges de chaque coupleur, exploite la redondance des bus de trans- mission de données, et présente ainsi une certaine tolé- rance aux fautes. La couche de liaison assure l'accès au bus et la surveil- lance des opérations réalisées par la couche physique. Le principe d'accès repose essentiellement sur la connaissance a priori de chaque coupleur du trafic d'échange de données sur le bus. Pour cela, l'échange de données est réalisé au moyen de trames de taille constante constituées chacune d'une suite de fenêtres temporelles de taille variable au cours desquelles chaque coupleur prend l'initiative d'émettre ou de recevoir un message. Cette initiative est prise par référence à une table associée à chaque coupleur et définie lors de la conception du dispositif. Cette table mentionne notamment le sens de l'échange, la taille de la fenêtre et la nature des données échangées dans cette fenêtre. Cette architecture présente l'inconvénient de manquer de souplesse, car, lorsque l'on désire faire évoluer le système, et en particulier la nature des données échangées, il est nécessaire de revoir le contenu de chacune des tables associées aux coupleurs connecté au bus. Par ailleurs, à l'heure actuelle, une nouvelle technique de transport asynchrone d'informations numériques a été mise en oeuvre pour exploiter les réseaux de télécommunication. -3- Cette technique appelée mode de transfert asynchrone (ATM) est basée sur la commutation de cellules de taille fixe. Selon ce mode de transmission, les cellules sont identi- fiées par un numéro de "canal virtuel" et non par leur position temporelle ou leur rang dans une trame périodique, comme c'est le cas pour un mode de transmission synchrone. Il n'y a donc aucun lien entre l'information contenue dans les cellules et le temps. Ainsi, chaque cellule contient une entête dans laquelle figure le numéro de canal virtuel et un champ d'informa- tions. Ces cellules sont émises par multiplexage temporel sur les liaisons de transmission. L'avantage fondamental de ce mode de transmission par rapport aux techniques synchrones réside dans la souplesse du multiplexage qui n'a pas de structure rigide, détermi- niste et liée à des débits quantifiés. La présente invention a pour objet de combiner les avantages respectifs du bus synchrone spécifié par la norme ARINC 659, et du mode de communication asynchrone par cellule de taille fixe. A cet effet, elle propose un procédé de transfert de données numériques entre plusieurs abonnés connectés par l'intermédiaire de coupleurs respectifs à un bus comprenant quatre bus redondants de transfert de données permettant de détecter et de corriger les erreurs de transmission, les données transmises étant réparties dans des trames tempo- relles de durée fixe. Ce procédé est caractérisé en ce que chaque trame est divisée en cellules de durée fixe comprenant une entête destinée à recevoir notamment un code d'identification de message, ledit procédé comprenant: -4- - l'attribution aux abonnés de droits d'émission dans les cellules composant ladite trame, - la synchronisation de tous les coupleurs d'abonnés entre eux, - la composition par un abonné d'un message comprenant les données à émettre associées à un code d'identification du message, et l'émission de ce message au cours d'une cellule attribuée à l'abonné, - la réception par chaque coupleur d'abonné des messages contenus dans les cellules qui ne lui sont pas attri- buées, l'analyse du code d'identification de chaque message reçu, et si ce code d'identification correspond à celui d'un message attendu par l'abonné, la transmission à l'abonné des données contenues dans ce message. De cette manière, on conserve la tolérance aux pannes conférée par le bus ARINC 659, si bien que ce procédé présente une sécurité suffisante pour être applicable aux équipements électroniques embarqués à bords des aérodynes. Par ailleurs, grâce à l'emploi de cellules de durée fixe, le contenu des tables associées à chaque coupleur et définies par la norme ARINC 659 a été simplifié de manière importante puisque, selon ce procédé, ces tables ne mentionnent plus, pour un abonné et pour chaque cellule, que le droit pour cet abonné d'émettre dans cette cellule. Pour construire ces tables, il suffit simplement de répar- tir les cellules de la trame, c'est-à-dire, la bande passante disponible, entre les abonnés. Ces tables, et par conséquent, les droits d'émission accordés à un abonné, ne devront être modifiées que lors d'une modification de la bande passante allouée à un abonné et lors d'une modifica- tion de la nature des données à transmettre. -5- Un mode de réalisation du procédé selon l'invention sera décrit ciaprès, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels: La figures 1 représente schématiquement l'archi- tecture matérielle d'un coupleur de bus selon l'invention; La figure 2 montre la structure d'une cellule; La figure 3 représente la composition d'une trame; La figure 4 représente schématiquement l'archi- tecture fonctionnelle du coupleur de bus. La figure 1 représente l'architecture matérielle d'un coupleur 10 assurant la connexion entre un équipement électronique 20 et un bus 1 de type ARINC 659. Le bus 1 comprend quatre bus redondants Ax,Ay,Bx,By, constitués chacun de deux lignes séries multiplexées de transport de données et d'une ligne de transport de signaux d'horloge de synchronisation, les bits de donnée de rang pair et impair étant répartis respectivement sur chacune des deux lignes de transport de données de chaque bus redondant. Cette structure de bus permet d'obtenir à la fois une grande sécurité dans le transfert des données et des vitesses importantes, par exemple 60 Mbits/s. Sur ce bus 1 dit de fond de panier, sont raccordés des modules électroniques 20 par l'intermédiaire de coupleurs 10. Un tel coupleur 10 présente également une structure redon- dante. Il comprend deux circuits d'interface de bus 6,6' raccordés chacun avec une mémoire 7,7', une horloge 8,8', et deux transmetteurs de bus 11,12 ou 11',12' qui assurent -6- l'interface respectivement avec deux des quatre bus Ax,Ay,Bx,By. Ces deux circuits d'interface 6,6' sont inter- connectés de manière à pouvoir assurer tous les contrôles de cohérence et les corrections d'erreurs permises par l'emploi de quatre bus redondants. Par ailleurs, les deux circuits d'interface 6,6' sont connectés chacun au module 20 et à une mémoire 5,5' double accès, accessible également par le module électronique 20. Ils sont conçus de manière à ce que le temps d'utilisation du bus 1 soit partagé en cellules ou fenêtres temporelles de durée constante qui peuvent être attribuées aux diffé- rents utilisateurs du bus 1. D'après la figure 2, une cellule 22 comprend un champ 21 réservé aux données, de taille I par exemple égale à 48 octets si l'on souhaite respecter le format des cellules ATM, une entête comportant notamment un code d'identifica- tion de message 23 de taille K et un code d'identification de segment 24 de taille L, L et K étant chacun égaux par exemple à 2 octets. Afin que l'attribution des cellules aux différents modules raccordés au bus 1 soit répétitive, les cellules sont réparties dans une trame de durée constante dans laquelle l'ordre d'attribution des cellules aux modules est invariable. Dans le but d'obtenir davantage de souplesse, on peut prévoir plusieurs trames contenant le même nombre de cellules mais dans lesquelles les cellules sont attri- buées différemment aux modules 20. Ainsi, sur la figure 3, ces cellules sont réparties dans des trames mineures 25 composées d'un nombre prédéterminé de cellules et d'une entête de synchronisation 26, les trames mineures étant elles-mêmes regroupées en trames majeures 27 de durée fixe. L'entête de synchronisation 26 des trames mineures permet à chaque coupleur raccordé au bus 1 de synchroniser leur -7- horloges 8,8' à celles des autres coupleurs et avec les signaux d'horloge transitant sur le bus de manière à pouvoir commencer une lecture ou une écriture sur le bus 1 exactement au début d'une cellule. Du point de vue fonctionnel (figure 4), l'architecture d'un coupleur 10, 10' peut se décomposer en trois couches, à savoir une couche physique 2, 2' qui assure le transfert des informations entre le bus 1 et le coupleur 10,10', une couche liaison 3,3' et une couche transport 4,4' qui assure la liaison entre le coupleur 10 et un module électronique , 20'. Pour des besoins de clarté, seuls les éléments des coupleurs 10, 10' servant soit à l'émission, soit à la réception de messages ont été représentés sur cette figure 4. Il va de soi que chaque coupleur 10,10' comporte à la fois les éléments servant à l'émission et à la réception. En émission, la couche de transport 4 comprend une file d'attente 37, par exemple de type FIFO, accessible en écriture par le module 20 pour y transférer les messages 40 qu'il souhaite émettre vers un autre module 20'. Ces messages comprennent une entête contenant un code d'identi- fication M afin de permettre au module destinataire 20' de le reconnaître. La file d'attente 37 est accessible en lecture par une unité de segmentation 36 dont le rôle est de segmenter les messages à émettre de taille quelconque en blocs de taille compatible avec celle des cellules. Cette unité récupère le code d'identification M du message 40 et associe à chaque bloc de donnée une entête contenant ce code d'identification, ainsi qu'un numéro de segment SO,S1,S2, de manière à constituer des segments 50 à 52 dont le format correspond à celui d'une cellule telle que repré- sentée figure 2. Ces segments 50 à 52 sont transférés dans l'ordre suivant lequel ils ont été constitués dans une deuxième file d'attente 35, également de type FIFO. -8 - La couche de liaison 3 comprend un séquenceur 33 d'accès au bus qui, grâce à un calendrier d'émission 34 contenu dans la mémoire 5,5' est capable de déterminer l'instant de démarrage sur le bus d'une cellule qui lui a été attribuée, c'est-à-dire, dans laquelle il a le droit d'émettre un segment. Ce calendrier réunit ainsi l'ensemble des droits d'émission attribués à un module. Ce calendrier comprend une suite de bits dont le nombre correspond au nombre de cellules 22 dans chaque trame mineure 25 multiplié par le nombre de trames mineures 25 dans chaque trame majeure 27, les bits à 1 indiquant par exemple, que la cellule correspondante à été attribuée au module 20. Lorsque le séquenceur 33 détecte sur le bus une cellule qui lui a été attribuée, il transfère le premier segment 50 de la file d'attente 35 vers la couche physique 2 du coupleur 10. Au niveau de la couche physique 2, les segments 50 à 52 en provenance de la couche liaison 3 sont traités par un convertisseur parallèle/série-encodeur 31 qui convertit le segment à émettre suivant un format série compatible avec les spécifications du bus 1, et l'applique sur ce dernier. Par ailleurs, la couche physique 2 comprend un circuit de synchronisation 32,32' qui capte les tops de synchronisa- tion trame 26 circulant sur le bus 1 et les envoie au séquenceur d'accès 11 pour le synchroniser avec l'enchaîne- ment des trames mineures qui circulent sur le bus 1. En réception, cette couche physique 2' comprend un décodeur- convertisseur série/parallèle 42' qui capte, sur demande du séquenceur d'accès 33', tous les segments conte- nus dans les cellules qui transitent sur le bus, les décode et les envoie via une liaison parallèle au séquenceur d'accès 33'. -9- Au niveau de la couche de liaison 3', le séquenceur d'accès 33' commande la réception du contenu des cellules qui transitent sur le bus 1 en fonction du contenu du calen- drier d'émission 34', c'est-à-dire, lorsque le coupleur 10' n'est pas en émission. Tous les segments 50 à 53 de données reçus par le séquen- ceur d'accès 33' sont transférés au niveau de la couche transport 4', dans une troisième file d'attente 38' de même type que les autres. Cette file d'attente est vidée par une unité de réassemblage 39' des messages qui présente à la fois une fonction de tri des segments 50 à 53 de données reçus et une fonction de reconstitution des messages, tels qu'ils ont été transmis par le module émetteur 20 au coupleur associé 10. Comme tous les segments transitant sur le bus 1 et qui n'ont pas été émis par le séquenceur 33', sont systémati- quement transférés dans la file d'attente 38', il est nécessaire d'effectuer un tri et de rejeter tous les segments 53 dont le code d'identification M' contenu dans l'entête n'est pas reconnu. A cet effet, la mémoire 5,5' contient une liste 43' de tous les codes d'identification des messages attendus par le module 20'. Les numéros de segments SO,Sl,S2 contenus dans l'entête sont ensuite exploités par l'unité de réassemblage 39' pour reconstituer le message initial 40 auquel il ajoute le code d'identification M, et détecter éventuellement des segments manquants. Le message 40 ainsi reconstitué est transféré dans une quatrième file d'attente 41' pour le mettre à la disposi- tion du module 20' destinataire. Les fonctions de segmentation 36, de réassemblage 39', de séquenceur d'accès 33,33', de décodage - conversion série/parallèle 42', et de conversion parallèle/série - encodage 31 sont regroupées dans chaque unité d'interface 6,6'. Par ailleurs, chaque mémoire 5,5' comprend le calen- - 10 - drier d'émission 34,34' et la liste 43' des codes d'identi- fication des messages attendus. Cette mémoire 5,5' est accessible non seulement par l'unité d'interface 6,6' mais aussi par le module 20,20' pour pouvoir être mise à jour. Chaque mémoire 7,7' regroupe les files d'attente 37,41' contenant les messages 40 reçus ou à émettre et celles ,38' contenant les segments 50 à 53 reçus ou à émettre. Comme tous les éléments fonctionnels de cette architecture sont dupliqués pour retrouver l'architecture redondante montrée à la figure 1, les éléments actifs, tels que le séquenceur d'accès 33,33', échangent des signaux avec leur homologue pour effectuer tous les contrôles de cohérence des informations circulant sur les quatre bus Ax,Ay,Bx,By, et les corrections d'erreurs, prévus dans la norme ARINC 659. Avantageusement, le calendrier d'émission 34,34' indique pour chaque cellule 22 de la trame majeure 27 attribué au module, un niveau de priorité d'attribution: par exemple, 4,3,2 ou 1, une même cellule pouvant alors être attribuée à plusieurs modules avec des priorités différentes. De cette manière, si une cellule n'est pas utilisée par le module ayant une priorité supérieure, elle peut l'être par celui ayant une priorité inférieure. Ce mécanisme permet de prendre en compte le cas des modules ayant peu de besoins en terme de bande passante mais ayant en revanche des messages devant être émis avec le minimum de latence. - 11 - REVENDICATIONS 1. Procédé de transfert de données numériques entre plusieurs abonnés connectés par l'intermédiaire de coupleurs respectifs à un bus comprenant quatre bus redon- dants de transfert de données permettant de détecter et de corriger les erreurs de transmission, les données trans- mises étant réparties dans des trames temporelles de durée fixe, est caractérisé en ce que chaque trame (25) est divisée en cellules (22) de durée fixe comprenant une zone destinée à recevoir un code d'identification (23) de message, ledit procédé comprenant: l'attribution aux abonnés de droits d'émission dans les cellules composant ladite trame (25), - la synchronisation de tous les coupleurs (10,10') d'abon- nés, - la composition par un abonné d'un message comprenant les données à émettre associées à un code d'identification du message, et l'émission de ce message au cours d'une cellule (22) attribuée à l'abonné, - la réception par chaque coupleur (10,10') d'abonné des messages contenus dans les cellules qui ne lui sont pas attribuées, l'analyse du code d'identification (23) de chaque message reçu, et si ce code d'identification (23) correspond à celui d'un message attendu par l'abonné, la transmission du message à l'abonné. 2. Procédé selon la revendication 1, caractérisé en ce que chaque cellule (22) comprend une entête destinée à recevoir ledit code d'identification (23) de message et un numéro de segment (24), et une zone de données (21) réservée au transfert des données. 3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend: le découpage des données du message (40) à émettre par un abonné en blocs de taille égale à la taille de ladite - 12 - zone de données (21), ces blocs étant numérotés (SO,Sl,S2) consécutivement en fonction de leur position respective dans le message (40), l'association de chaque bloc de données à une entête contenant le code d'identification (M) du message (40) et son numéro (SO, Sl,S2) pour constituer un segment au format correspondant à celui de chaque cellule (22), et l'émission de chaque segment sur le bus (1) dans les cellules attribuées à l'abonné, - la reconstitution d'un message (40) à partir des segments transmis à l'abonné qui contiennent le même code d'iden- tification (M), et desdits numéros de segment (SO,S1,S2), et la vérification que tous les segments permettant de reconstituer le message (40) ont été reçus. 4. Procédé selon l'une revendications précédentes, caractérisé en ce que les trames (25) de durée fixe et subdivisées en cellules (22) sont des trames mineures regroupées dans une trame majeure (27) de durée fixe, chaque trame mineure (25) comprenant un signal de synchro- nisation (26) destiné à la synchronisation des coupleurs (10,10') raccordés au bus (1). 5. Procédé selon la revendication 4, caractérisé en ce que les cellules (22) de la trame majeure (27) sont attribuées aux abonnés au moyen d'une table d'émission (34,34') propre à chaque coupleur indiquant pour chaque cellule (22) de la trame majeure (27), si la cellule est attribuée ou non à l'abonné. 6. Procédé selon la revendication 5, caractérisé en ce que ladite table d'émission (34,34') indique en outre un niveau de priorité pour chaque cellule (22) attribuée à l'abonné. 7. Dispositif pour la mise en oeuvre du procédé selon l'une des revendications précédentes, - 13 - caractérisé en ce que chaque coupleur (10,10') assurant la connexion d'un module électronique (20,20') au bus (1), présente une structure redondante comprenant deux unités d'interface (6,6') de bus, chacune étant raccordée à deux paires (Ax,Bx et Ay,By) respectives de bus de transfert de données, ces unités d'interface (6,6') étant interconnec- tées de manière à pouvoir effectuer des contrôles cohérence entre les signaux transitant sur lesdites paires de lignes et des corrections d'erreurs, chaque unité d'interface (6,6') étant raccordée respectivement à une horloge (8,8'), une première mémoire (7,7'), et une seconde mémoire (5,5') contenant la table (34,34') des cellules de la trame attri- buées en émission au coupleur (10,10') et une liste (43') des codes d'identification des messages attendus par le module (20,20'). 8. Dispositif selon la revendication 7, caractérisé en ce que ladite première mémoire (7,7') comprend deux files d'attente (35,38'), l'une contenant les segments à émettre sur le bus (1), tandis que l'autre contient les segments reçus. 9. Dispositif selon l'une des revendications 7 et 8, caractérisé en ce que ladite première mémoire (7,7') comprend deux autres files d'attente (37,41'), l'une conte- nant les messages transmis par le module (20) à émettre sur le bus (1), tandis que l'autre contient les messages reçus et destinés au module (20'). 10. Dispositif selon l'une des revendications 7 à 9, caractérisé en ce que ladite seconde mémoire (5,5') est accessible par le module (20) pour mettre à jour la table (34,34') des cellules de la trame attribuées en émission au coupleur (10,10') et la liste (43') des codes d'identifica- tion des messages attendus par le module (20,20').