FR 2665810 A1 19920214 FR 9010179 A 19900809 CONTROLEUR DE COM Mf UNICATION ENTRE UN ORDINATEUR ET UNE PLURALITE DE TERMINAUX DE TYPE RNIS La présente invention concerne un contrôleur de communication entre un ordinateur et une pluralité de terminaux, reliés entre eux par l'intermédiaire d'une liaison numérique multiplexée temporellement Elle est plus particulièrement applicable aux liaisons numériques de type So utilisées dans les réseaux de type RNIS (réseaux numériques à intégration de service, également désignés sous leur sigle anglo-saxon ISDN). Les réseaux de transmission de données, encore appelés réseaux de télécommunication ou réseaux de communication, sont constitués par une pluralité d'unités, généralement appelés "équipement terminal de traitement de données", en abrégé, ETDD, (Data Terminal Equipment, en langue anglaise, en abrégé DTE) Ces derniers sont encore appelés terminaux ou stations par commodité de langage On considère qu'un ordinateur relié à un tel réseau est un terminal Les terminaux communiquent entre eux par l'intermédiaire d'une ligne de transmission Celle-ci est constituée par exemple par deux paires de fils téléphoniques (l'une pour l'émission, l'autre pour la réception), ce qui est le cas pour la liaison de type So, dont il est rappelé qu'elle est définie par l'avis X 431 du CCITT (Comité Consultatif International Télégraphique Téléphonique). Les différents terminaux d'un réseau émettent des messages d'information et reçoivent ceux émis par les autres Un message est constitué par un ensemble de blocs élémentaires d'information comprenant un nombre déterminé d'informations binaires Ces blocs élémentaires sont appelés trames Chaque trame est structurée et comporte des informations définissant le début et la fin de celle-ci, l'adresse du terminal auquel est destiné le message, l'adresse du terminal émetteur, la longueur des données, les données utiles, etc L'une des tendances actuelles du développement technologique dans le domaine des réseaux de transmission de données est le regroupement du trafic téléphonique et des transmissions de données et plus généralement de l'ensemble du trafic numérique sur une infrastructure commune Ceci est dû essentiellement à l'introduction progressive des techniques numériques dans le domaine de la téléphonie Ceci est l'objectif du réseau numérique à intégration de données RNIS. Le RNIS est utilisé désormais principalement en Europe et plus particulièrement en France La liaison de communication de type So, encore appelée interface So fait partie des liaisons normalisées que comporte le RNIS Elle est plus particulièrement utilisée pour les communications entre ordinateurs et terminaux. Une liaison L So de ce type possède un débit de deux fois 144 kilobits par seconde (ou encore Kbs) soit 288 Kbs ( 144 kbs dans chaque sens, émission et réception) et comporte 3 canaux distincts, à savoir 2 canaux de type B pour la transmission des données avec un débit de 64 Kbs, et un canal de type D de signalisation à 16 Kbs Le principe de la liaison L So est le multiplexage temporel La manière dont ce dernier s'effectue est définie dans l'avis X 431 précité. On sait qu'un ordinateur est constitué d'une part, d'un ou plusieurs processeurs centraux, de processeurs d'entrée/sortie, de mémoires vives et mémoires mortes associées à l'ensemble de ces processeurs, de contrôleurs d'entrée/sortie, l'ensemble de tous ces éléments formant ce que les hommes de métier appellent communément un système hôte ou plus simplement hôte, d'autre part de différents organes périphériques tels que des mémoires à disque ou des périphériques d'entrée/sortie permettant l'échange de données avec l'extérieur (terminaux à écran, imprimantes, etc), ces organes périphériques étant associés à des contrôleurs de périphériques. L'ensemble des éléments constitutifs précités (en dehors des périphériques) est disposé sur un ensemble de cartes (boards, en anglais) dont les dimensions sont normalisées. Ces cartes sont reliées généralement à un même bus de type parallèle qui assure les communications entre les différents processeurs et le transport des données entre les différentes cartes ainsi que l'alimentation électrique de celles-ci. Un bus couramment utilisé dans la pratique actuelle est le bus appelé MULTIBUS II dont la marque est déposée par la Société INTEL L'architecture d'un tel bus est structurée autour d'un bus principal de type parallèle normalisé suivant la norme IEEE 1296 (Institute of Electrical and Electronic Engineers) Ce bus principal est désigné par PSB. La tendance du développement technologique des réseaux, l'utilisation de terminaux de plus en plus nombreux conduit à développer au sein même des ordinateurs des contrôleurs de communication programmés, dont le rôle est de réduire la charge de l'unité centrale de l'ordinateur en effectuant une partie de la gestion d'une part des messages émis par les différents terminaux appartenant à l'ordinateur vers le réseau de télécommunication auquel cet ordinateur est relié et d'autre part des messages provenant des terminaux du réseau Dans la pratique courante, un tel contrôleur de communication est réalisé autour d'un microprocesseur connecté à une ou plusieurs mémoires, qui comprend un logiciel de base (plus simple que celui de l'unité centrale) contenant des modules spécialisés permettant de gérer le bus commun aux différents éléments constitutifs de l'ordinateur et la ligne de transmission du réseau, et ayant des facilités pour constituer les files d'attente de message (dans la mémoire associée au microprocesseur) Ce logiciel doit en outre permettre l'exécution simultanée d'un grand nombre de processus et pour cela gérer rapidement de nombreuses interruptions, ce qui implique des mécanismes de changement de contexte du microprocesseur très performants, ainsi que des niveaux multiples d'interruption Un tel logiciel, qu'on peut appeler logiciel de communication, est par exemple le logiciel appelé CNS utilisé dans les produits de la série DN- 7 XXX de la Société BULL S A, et également dans les produits CNS-Ao et CNS-A 1 de la série d'ordinateurs DPS-7000 de la même Société. Dans le cas o l'ordinateur comprend un bus de type MULTIBUS II, le processeur de communication lui est relié Il est disposé sur une carte connectée au bus PSB par l'intermédiaire d'un coprocesseur par exemple, de type MPC 82309 (fabriqué par la Société INTEL) communiquant par mode message avec les autres éléments constitutifs fonctionnels de l'ordinateur. L'interface de type So étant encore récente, il n'existe pratiquement pas de contrôleur de communication relié à un MULTIBUS Il d'une part, et gérant une ou plusieurs de ces interfaces d'autre part. La présente invention concerne précisément un contrôleur de communication entre au moins un système hôte associé à un bus et une pluralité de terminaux, reliés entre eux par l'intermédiaire d'une liaison de type So, permettant de traiter simultanément le transfert d'un grand nombre de trames sur chacun des canaux de la liaison, avec un débit adapté à celui de la liaison. Selon l'invention, le contrôleur de communication entre au moins un système hôte associé à un bus et une pluralité de terminaux d'au moins un réseau (R Ei-RE 2), reliés entre eux par l'intermédiaire d'au moins une liaison numérique multiplexée temporellement comprenant une pluralité N de canaux de données gérés selon des protocoles déterminés et supportés par au moins une ligne de transmission, comprenant: une unité de base reliée au bus, qui gère et effectue le transfert des trames sur l'ensemble des canaux de la liaison, une unité périphérique reliée d'une part à l'unité de base et d'autre part à la ligne de transmission, assurant le multiplexage et le démultiplexage temporel des différents canaux de données, transmettant les données vers le réseau ou les recevant de celui-ci, est caractérisé en ce que l'unité de base comprend un premier processeur de commandes de transfert des trames depuis l'hôte vers le réseau et réciproquement, connecté au bus et associé à une première mémoire de stockage des trames avant leur transfert, qui gère le transfert des trames vers les différents canaux affectés à celles-ci, un second processeur communiquant avec le premier effectuant le transfert de chacune des trames, canal par canal, depuis la première mémoire jusqu'à la partie périphérique puis le réseau, et réciproquement, la partie périphérique comprenant un coupleur pour l'ensemble des canaux piloté par le second processeur, relié à la ligne de transmission, et recevant les données de chaque trame, paquet par paquet (buffer par buffer), provenant de ou allant vers la première mémoire, assurant le multiplexage ou démultiplexage des données à l'émission ou à la réception. D'autres caractéristiques et avantages de la présente invention apparaîtront dans la description suivante donnée à titre d'exemple non limitatif et en se référant aux dessins annexés. Sur ces dessins: La figure 1 est un schéma très simplifié de l'ordinateur comportant le contrôleur de communication selon l'invention, La figure 2 montre la structure matérielle du contrôleur de communication selon l'invention, La figure 3 montre le schéma de la partie périphérique du contrôleur de communication selon l'invention, La figure 4 montre la structure de l'ensemble logiciel et micrologiciel du contrôleur de communication selon l'invention, La figure 5 est formée des figures Sa et 5 b La figure 5 a est un organigramme simplifié du fonctionnement d'un module micrologiciel affecté à un canal de données de la liaison L So, permettant le transfert de trames sur ce canal, alors que la figure 5 b montre la structure simplifiée du module micrologiciel dont l'organigramme simplifié est montré à la figure 5 a, La figure 6 montre le mécanisme suivant lequel le logiciel et chacun des micrologiciels affectés à chacun des canaux communiquent entre eux, Les figures 7, 8, 9 illustrent le fonctionnement du contr 8 leur de communication selon l'invention, lors de l'émission ou la réception de trames, c'est-à-dire lors de l'envoi de trames depuis l'ordinateur vers le réseau utilisant la liaison de communication L So, et réciproquement, La figure 10 et la figure 11 sont des chronogrammes relatifs aux différentes opérations successives effectuées par le contrôleur de communication selon l'invention, d'une part à l'émission et d'autre part à la réception de trames. On considère la figure 1 qui montre un système informatique ORD relié à un ensemble de k réseaux de types différents, R Ei, RE 2,, R Ek par l'intermédiaire d'une pluralité de k liaisons de types différents. La structure de l'ordinateur ORD montrée à la figure 1 a été volontairement simplifiée et comprend: le système h 8 te HOST constituant son système central, un concentrateur CONC de liaisons de réseaux gérant et effectuant le transfert de trames de l'hâte vers ces réseaux et réciproquement Ce concentrateur est encore appelé concentrateur de lignes de réseaux Il convient de noter que ce dernier peut également relier, d'autre hôtes que HOST aux réseaux R Ei à R Ek, par exemple l'hôte HOSTB représenté en traits interrompus à la figure 1. Le concentrateur comprend: une unité centrale SCOM qui administre et gère le concentrateur Elle charge notamment tous les logiciels et micrologiciels associés à chacune des cartes constituant le concentrateur dans celles-ci, lors de leur initialisation. le bus PSB, de préférence de type MULTIBUS II, un ensemble CCR de contrôleurs de communication permettant de relier le concentrateur (et par suite HOST) aux différents réseaux R Ek Il comprend le contrôleur de communication selon l'invention CCS permettant de le relier, dans l'exemple de réalisation décrit ici, à deux réseaux RNIS R Ei-RE 2 utilisant chacun une liaison de communication de type So. Le concentrateur CONC est ici considéré comme terminal des deux réseaux R Ei-RE 2, communiquant avec les autres terminaux des deux réseaux R Et-RE 2. L'hôte peut être relié soit directement au bus PSB, par l'intermédiaire d'un coprocesseur MPC 82309, soit par l'intermédiaire d'un coupleur central de communication CCC, surtout dans le cas o plusieurs hôtes sont reliés au concentrateur CONC (CCC est représenté en pointillé à la figure 1) Les trames provenant de l'hôte HOST destinées aux réseaux R Ei- RE 2 parviennent par l'intermédiaire de PSB au contrôleur de communication CCS Celui-ci divise chacune de celles-ci en une pluralité de paquets de données (le terme anglo-saxon correspondant à paquet de données est buffer L'un ou l'autre de ces termes sera indifféremment employé dans la suite du texte), gère et effectue le transfert de cet ensemble de trames sur les différents canaux de données des deux liaisons de type So Ces données sont multiplexées temporellement par le contrôleur CCS Le contrôleur CCS effectue donc le multiplexage des trames envoyées par l'hôte HOST aussi bien pour l'une que pour l'autre des deux liaisons de type So Du point de vue fonctionnel, on considérera donc dans la suite du texte que ces deux liaisons de type So se comportent comme une seule liaison comprenant les canaux Bl et B 2 de type B et Di de type D pour la première, et B 3 et B 4 de type B et D 2 de type D pour la seconde Pour simplifier, les canaux Bl, B 2, Di, B 3, B 4, D 2 seront désignés respectivement par Ci à Cr dans la suite du texte. On considère désormais les figures 2 et 3. Le contrôleur de communication CCS selon l'invention comprend, ainsi qu'on peut le voir à la figure 2, une unité de base BA et une unité périphérique PER. L'unité de base BA comprend: 1.1 une interface IFM avec le bus PSB, de type MULTIBUS II, définie par la norme IEEE P 1296, par exemple constituée par le MPC 82309 (voir plus haut), un premier microprocesseur MP, de type 68030 de la Société MOTOROLA, associé à une première mémoire vive M Vi, de quatre mégaoctets de capacité, un second microprocesseur MP 2, associé à une seconde mémoire vive MV 2 de 512 kilooctets de mémoire, qui fonctionne en mode maître, une interface IF 2 permettant le dialogue entre le premier et second microprocesseurs MPî et Mp 2, assurant l'adaptation physique des signaux transitant sur le bus interne B It du premier microprocesseur M Pt avec ceux qui transitent sur le bus interne BI 2 du second microprocesseur MP 2. L'unité périphérique PER comprend un coupleur CO piloté par le second microprocesseur MP 2 de l'unité de base BA, un premier et un second dispositif de connexion physique respectivement au premier réseau RE, et au second réseau RE 2, à savoir AD Si et AD 52. Le coupleur CO est en fait composé de deux coupleurs identiques C Oi et C 02 qui dans l'exemple de réalisation du contrôleur de communication selon l'invention sont formés par trois contrôleurs de communication série appartenant chacun à la partie périphérique d'un microcontrôleur 68302 de la Société MOTOROLA (On sait qu'un microcontrôleur 68302 est en fait formé par l'association d'un microprocesseur 68000 et d'une partie périphérique formée de contrôleurs de communication série) Ainsi, le contrôleur CO 2 est formé par les trois contrôleurs de communication série SCC 4, SCC 5, SCC 6 (voir également figure 3) d'un microcontrôleur 68302 dont le microprocesseur 68000 n'est autre que MP 2, alors que le contrôleur CO 1 constitue la partie périphérique formée de trois contrôleurs de communication série SC Ci, SCC 2, SCC 3 d'un second microcontrôleur 68302 dont le microprocesseur 68000 n'est pas utilisé Ainsi qu'on peut le voir à la figure 3, le coupleur CO 1 est connecté au réseau RE,, c'est-à-dire aux lignes téléphoniques LEî et LR 1 par l'intermédiaire du dispositif de connexion physique AD Sz formé par le circuit émetteur-récepteur TC, (encore appelé transceiver selon la terminologie anglo- saxonne) et le transformateur TR Le transceiver de type So est un circuit de type MC 145474 de la Firme MOTOROLA. Le coupleur C Oi est relié au transceiver TC par l'intermédiaire d'une interface dite IDL (Inter Chip Data Link). Les grandes lignes du fonctionnement du contrôleur de communication CCS sont les suivantes: Le premier processeur M Pl commande le transfert des trames émises par l'hôte HOST destinées à l'un ou l'autre des deux réseaux R Ei ou RE 2: A ce titre, il reçoit les trames qui proviennent du bus PSB, et les stocke dans sa mémoire vive M Vi en attendant que celles-ci soient réellement transférées vers l'un ou l'autre des deux réseaux précités. Réciproquement, il reçoit dans sa mémoire vive MVî les trames provenant de l'un ou l'autre de ces deux réseaux, avant de les envoyer via le bus PSB vers l'h 8 te HOST Le premier processeur découpe chacune des trames en une pluralité de paquets de données (buffers) tels que B Fi, BF 2,, B Fn M Pl alloue à chacun de ceux-ci un emplacement physique déterminé, totalement aléatoire, dans la mémoire vive M Vi Dès que l'un des canaux de données Ci à C 6 (voir plus haut) est disponible, le premier processeur demande au second processeur M Pz d'effectuer le transfert de la trame en question depuis la mémoire vive M Vi vers le coupleur C Oi puis le réseau R Ej ou RE 2 à travers les bus internes B Iu, BI 2 et l'interface 1 F 2, dans le canal approprié, par exemple C 1 Il est clair que le premier processeur M Pl procède de même avec chacune des trames, pour chacun des canaux Ci à C 6 En d'autres termes, le premier processeur MPî gère le transfert de chacune des trames qu'il reçoit du PSB ou de l'un des deux réseaux REî -RE 2, à travers les différents canaux Ci à C 6 affectés à chacune et ce tant à l'émission qu'à la réception. Il est clair, qu'en réception, des emplacements physiques en MV, sont alloués, également de manière aléatoire par M Pi, aux différents buffers BF 1 i, BF 12,, B Fm de chaque trame, ces emplacements étant différents de ceux alloués à B Fi B Fn. A l'émission, le second processeur MP 2, ayant reçu la demande de transfert de la part du premier processeur MPî, effectue le transfert de la trame en question, buffer par buffer, dans le canal qui a été affecté à celle-ci, depuis la première mémoire MVî jusqu'à la partie périphérique PER. En réception, MP 2 effectue le transfert de la trame provenant de l'un des deux réseaux REI-RE 2 dans le canal approprié, buffer par buffer, depuis la partie périphérique jusqu'à M Vi. La partie périphérique PER, par exemple par l'intermédiaire du premier coupleur COî, va chercher les buffers de la trame en question dans MV 1 et les transfère sur le réseau RE 1 ou RE 2 par l'intermédiaire du contrôleur de communication série SC Ci associé au canal affecté à la trame émise En réception, M Pz effectue le transfert, buffer par buffer, dans le canal approprié, de la partie périphérique vers MVî Dans l'exemple de réalisation préférée de l'invention décrit ici, le contrôleur de communication série SC Ci peut gérer au maximum 8 buffers simultanément aussi bien en émission qu'en réception Ce dernier reçoit les buffers en parallèle, s'ils proviennent de la mémoire MVî ou en série s'ils proviennent du réseau REî RE 2 Il les sérialise ou dessérialise suivant le cas Le coupleur C Ol assure le multiplexage ou démultiplexage des données reçues par les différents contrôleurs de communication série SCCî à SCC 6 En effet, le coupleur C Oi peut recevoir simultanément sur chacun de ses contrôleurs plusieurs trames, ou plus exactement plusieurs ensembles de buffers correspondant à plusieurs trames. Le premier et le second processeur M Pl et MP 2 exécutent leur travail sur instructions respectivement d'un logiciel de communication CNS (voir plus haut) et d'un micrologiciel AML. Lors de la mise sous tension du contrôleur de communication CCS, le logiciel de communication CNS et le micrologiciel AML qui sont implantés sur les mémoires à disque MD du concentrateur CONC, sont chargés dans respectivement chacune des mémoires vives M Vi et MV 2 Ce chargement s'effectue à travers le bus PSB Bien entendu, ce chargement a lieu une fois que la carte correspondant au contrôleur de communication CCS a été initialisée Cette initialisation s'effectue sous la conduite d'un programme micrologiciel stocké dans une mémoire programmable de type PROM implantée dans l'unité de base BA et non représentée à la figure 1 et à la figure 2 pour simplifier. Le logiciel de communication est en fait le système d'exploitation du contrôleur de communication CCS (il constitue l'operating system, selon la terminologie anglo- saxonne) Ce logiciel organise le travail de liaison entre l'hôte HOST et le micrologiciel AML qui est chargé plus spécifiquement d'effectuer le transfert de chacunes des trames dans les canaux C 1 à C 6. On considère la figure 4 qui montre de façon fort schématique les liaisons existant entre le logiciel de communication CNS et le micrologiciel AML. Le micrologiciel AML comprend un noyau NY, une interface de communication IC permettant le dialogue entre le logiciel de communication CNS et le micrologiciel AML, ainsi qu'une pluralité de modules micrologiciels, encore appelés tâches, à savoir T Co, TCî, TC 2, , TC 7 Les modules micrologiciels T Ci à TC 6 correspondent chacun aux canaux C 1 à C 6 définis plus haut Ils sont donc chargés d'effectuer le transfert des trames affectées à chacun de ces canaux depuis la mémoire MV, vers la partie périphérique PER et réciproquement Les tâches T Co et TC 7 sont propres à la carte portant le contrôleur CCS. Ainsi, la tâche TC 7 sert à configurer les canaux RNIS, C 1 à C 6 Cela signifie, qu'au lieu, par exemple d'utiliser chacun des deux canaux C 1 et C 2 à 64 kbs traité respectivement par SCC 1 et SCC 2, on peut vouloir n'utiliser qu'un seul canal Ci + C 2, à 128 kbs traité par le seul contrôleur SC Ci (SCC 2 étant alors inactif) TC 7 est donc chargé de mettre en oeuvre une telle configuration, si nécessaire Le rôle de TC 6 sera expliqué plus loin. Chaque tâche correspondant à un canal est une tâche indépendante des autres Le déroulement des tâches est organisé en temps réel, par le noyau NY. Le micrologiciel AML qui reçoit ses commandes du logiciel de communication installé dans la mémoire MVI, est vu par celui- ci comme un ensemble de 8 tâches indépendantes Néanmoins, les tâches T Co à TC 7 peuvent fonctionner simultanément sous la conduite du noyau NY Chacune de ces tâches a donc des liaisons directes avec le noyau NY mais n'en a aucune avec les autres. Le module micrologiciel IC gère l'interface avec le logiciel CNS Il acquitte les demandes provenant de celui-ci et les aiguille vers les différentes tâches correspondant aux différents canaux pour que celles- ci soient exécutées. Symétriquement, il se charge des transferts d'états ou de données provenant des canaux correspondant à chacune des tâches, destinées au logiciel CNS. Les échanges entre l'unité de base BA et l'unité périphérique PER se définissent par des descripteurs de commande Un descripteur de commande correspond à une trame déterminée et définit les opérations qui doivent être accomplies sur cette trame (voir plus loin). Les descripteurs de commande occupent en mémoire MV, des emplacements aléatoires déterminés par le logiciel de communication CNS Les adresses physiques de ces emplacements et les emplacements correspondants eux-mêmes ne sont pas libérés tant que les trames associées à ces descripteurs de commande ne sont pas acquittées (n'ont pas été envoyées en totalité s'il s'agit d'une émission ou non pas été reçues en totalité s'il s'agit d'une réception) Ainsi, à une trame T Ri correspond un descripteur de commande COM 1 (voir figure 6), à une trame TR 2 correspond un descripteur de commande COM 2, à une trame TR 3 correspond un descripteur de commande COM 3, etc Pour un même canal Ci à C 6, les descripteurs de commande sont chaînés par l'intermédiaire de pointeurs de chaînage. Autrement dit, le descripteur de commande COM, est chaîné au descripteur COM 2 par un pointeur de chaînage PCI, le descripteur de commande COM 2 est chaîné au descripteur de commande COM 3 par un pointeur de chaînage PC 2 Un pointeur de chaînage n'est autre que l'adresse logique occupée par le descripteur de commande qui suit le descripteur contenant le pointeur de chaînage Ainsi, le pointeur de chaînage P Ci indique l'adresse logique du descripteur de commande CO Mz et le pointeur de chaînage PC 2 indique l'adresse logique du descripteur de commande COM 3, etc On sait qu'une trame est composée d'une pluralité de paquets de données ou encore buffers Dans l'exemple de réalisation décrit ici, chaque buffer comprend au maximum 200 octets Par exemple, la trame T Ri comprend (voir également figure 6) les buffers BF 1, BF 2,, B Fn De même, la trame T Rii est composée des buffers BF 1 i à B Fm A chaque buffer correspond un emplacement physique déterminé en mémoire défini par un descripteur de buffer Ainsi, aux buffers B Fj à B Fn correspondent les descripteurs de buffer D Bi à D Bn De même, aux buffers B Fll à B Fm correspondent les descripteurs de buffer DBîL à D Bm Bien entendu, les descripteurs de buffer occupent dans la mémoire MV 1 o ils sont situés des emplacements physiques différents des buffers auxquels ils sont associés Ainsi, DBE occupe-t-il en mémoire un emplacement différent du buffer BF 1 etc. Par ailleurs, par abus de langage, l'homme de l'art affecte la même dénomination aux buffers qu'aux emplacements physiques qui leur sont affectés en mémoire MVî Ainsi, par exemple, B Fi désigne aussi bien un buffer ou paquet de données que l'emplacement physique o il est stocké en mémoire MV 1 Contenant et contenu ont donc la même désignation et ceci vaut également pour les descripteurs de commande et descripteurs de buffer. Chaque descripteur de commande comprend un pointeur vers le descripteur du premier buffer physique correspondant au premier paquet de données de la trame Ainsi, le descripteur de commande CO Mi contient le pointeur PB 1 définissant l'adresse du descripteur de buffer DB 1, c'est-à-dire l'adresse de l'emplacement physique occupé par ce descripteur dans la mémoire M Vi De même, le descripteur de commande COM 2 contient le pointeur PB 2 définissant l'emplacement physique du descripteur de buffers D Bii. Chaque descripteur de buffer contient un pointeur vers le descripteur de buffer suivant Ainsi, le descripteur de buffer DB 1 contient le pointeur PC Bi définissant l'adresse, c'est-à-dire l'emplacement physique occupé par le descripteur de buffer DB 2 Ce pointeur est désigné par PC Bi. En conclusion, un descripteur de commande, tel que COM 1 à COM 3, comprend: un pointeur de chaînage vers un autre descripteur de commande tel que PC 1, P Cz, etc Ce pointeur est destiné à être utilisé par l'interface de communication IC et se trouve en tête du descripteur, un pointeur vers le descripteur du premier buffer physique, tel que PB 1, P Bz, etc, un compte d'octets total de données utiles dans la chaîne de buffers physiques, autrement dit, le nombre total d'octets que contient la trame formée par la chaîne de buffers B Fi, BF 2 à B Fn, ou B Fii à B Fm, etc, un index indiquant le début réel des données dans le premier buffer physique, c'est-à-dire par exemple, l'adresse physique du début desdonnées dans le premier buffer physique B Fi, dans la mémoire M Vi, un indicateur précisant si la commande est une commande immédiate: les commandes immédiates sont des commandes qui n'impliquent pas l'utilisation de paquets de données destinés à être transférés vers le réseau ou provenant de celui-ci. Ces commandes immédiates peuvent être par exemple une commande d'activation d'un canal en vue d'une réception ou une commande de désactivation de ce même canal en réception, dès qu'une trame a été complètement reçue et transmise à l'unité centrale CPU. un champ status qui indique le résultat de l'exécution de la commande, c'est-à-dire si la commande a été ou non correctement exécutée, un champ de bits de commande comportant le code de la commande: il existe plusieurs types de commandes qui seront définies ci-dessous et auxquelles correspond un code déterminé. Outre les commandes immédiates (activation de canal en réception et désactivation de canal) définies ci-dessus, existent deux autres types de commandes, à savoir une commande pour l'émission de données et une commande de purge des commandes relative à l'émission de données, lorsque l'émission sur un canal doit être, pour une raison ou une autre, stoppée Cette commande de purge est une commande immédiate. Il convient de préciser que le format des descripteurs de commande est défini lors de l'initialisation de la carte portant le contrôleur de communication CCS et est défini par la tâche T Co, c'est-à-dire le module micrologiciel correspondant au canal Co Une fois ce format défini lors de l'initialisation du contrôleur de communication CCS le format des descripteurs de commande est immuable. Le format des descripteurs de buffer tels que DB 1 à D Bn ou D Bi, à D Bm est défini par le logiciel de communication CNS. Il comprend: un pointeur de chaînage vers le descripteur de buffers suivant, par exemple le pointeur de chaînage PC Bi Ce pointeur est une adresse logique, définissant l'emplacement mémoire o se trouve le descripteur de buffer correspondant c'est-à-dire DB 2. un index définissant l'emplacement physique occupé en mémoire par le début du buffer B Fi De même, le descripteur de buffer DB 2 contient un index définissant le début de l'emplacement physique occupé en mémoire par le buffer B Fz. En fait, cet index de début est obtenu de la manière suivante: L'adresse définissant l'emplacement physique occupé en mémoire M Vi par le buffer BF 2 par exemple (le raisonnement est valable pour les autres buffers), qu'on peut également définir comme l'adresse physique du buffer B Fz est obtenue en ajoutant à l'adresse logique définie par le pointeur PBF 2 de ce même buffer contenu dans le descripteur associé DB 2, une grandeur logique al Ainsi, on peut écrire, si I 2 est l'index de début de BF 2, I 2 = PBF 2 + ^X: l'index définissant la fin de l'emplacement physique occupé par le buffer physique correspondant D Bi contient donc l'index définissant l'emplacement physique de la fin du buffer B Fi. la taille totale en nombre d'octets du buffer correspondant D Bi contient donc le nombre total d'octets de données contenus dans le buffer BF 1. Il convient de préciser qu'en ce qui concerne aussi bien les descripteurs de commande que les descripteurs de buffer, toute adresse logique est aussi une adresse physique. La première mémoire M Vi contient également plusieurs zones mémoire fonctionnant suivant le principe des mémoires FIFO. Ces zones mémoire sont définies par le logiciel de communication CNS M Vi contient en fait, 3 zones mémoire FIFO, à savoir FG, FREC, FREP Chacune de ces zones mémoire FIFO contient un certain nombre d'éléments, à savoir p éléments Chaque élément contient l'adresse d'un descripteur de commande et le numéro de canal correspondant à la commande définie par ce descripteur Le logiciel CNS, pour chaque zone mémoire FIFO, définit donc l'adresse de début de cette zone mémoire, l'index de l'élément de tête, c'est-à-dire l'adresse de l'élément de tête, l'index de l'élément de queue, c'est-à- dire l'adresse de l'élément de queue, ainsi que le nombre d'éléments contenus dans cette zone mémoire FIFO Ainsi, par exemple, la zone mémoire FIFO FG contient les p éléments El, E 2, E 3,, Ep (voir figure 8) Le logiciel CNS définit donc l'adresse du début DEB de la zone FIFO FG, l'index de l'élément de tête Eî, l'index de l'élément de queue Ep et le nombre p d'éléments Il en est évidemment de même pour les zones mémoires FIFO FREC, FREP qui contiennent le même nombre d'éléments p L'élément Ei contient donc l'adresse du descripteur de commande CO Mi ainsi que le canal correspondant à la commande définie par ce descripteur, par exemple, le canal Ci L'élément Ez contient l'adresse du descripteur de commande COM 2 et l'adresse du canal correspondant, ici Ci (voir plus haut) L'élément E 3 contient l'adresse du descripteur de commande COM 3 et le canal correspondant, à savoir Ci,, et ainsi de suite pour les éléments Es à Ep. La seconde mémoire MV 2 contient également outre l'ensemble des microprogrammes qui ont été définis plus haut, un certain nombre de zones mémoire FIFO, en nombre égal au nombre de canaux de données, à savoir Ci à C 6 Elle contient donc 6 zones mémoire FIFO, à savoir FCî, FC 2,, FC 6 (voir figure 8). Chacun des FIFO FCî à FCM contient l'adresse des descripteurs de commande correspondant au canal associé, ainsi que le numéro de ce canal Ainsi, le FIFO FC, contient l'adresse du descripteur de commande CO Mi, et le numéro du canal correspondant à ce descripteur de commande, c'est-à-dire le canal Ci, ainsi que l'adresse de COMP et le numéro du canal Ci, etc Les informations que contiennent chacun des FIFO FCM à FC 6, telles que définies ci-dessus, sont transférées dans celles- ci depuis la mémoire FIFO FG de M Vi dans les conditions qui seront décrites plus loin, en liaison avec le fonctionnement du contrôleur de communication CCS selon l'invention Par ailleurs, les informations contenues dans chacun des FIFO FC 1 à FCM sont transférées dans les contrôleurs de communication série SC Ci à SCC 6 dans des conditions qui seront définies plus loin. On considère désormais les figures 5 et 6. On considère la figure 5 qui est un schéma logique simplifié des différentes opérations OP 1 à OP 5 mises en oeuvre lors de l'exécution de chacune des tâches T Ci à TC 6. L'opération OP, est une opération d'initialisation de la tâche effectuée par le noyau NY. L'opération O Pz qui succède à l'opération OP, permet d'établir chacune des procédures pouvant être mise en oeuvre par la tâche T Ci (TC 1 à T Cs), c'est-à-dire soit une procédure d'émission de trames soit une procédure de réception de trames soit une procédure d'activation ou de désactivation du canal correspondant Lors de cette opération, la tâche va chercher les adresses des procédures permettant de traiter soit les commandes du logiciel CNS, lors d'une demande d'émission, soit les adresses des procédures traitant les actions induites par une interruption du processeur MPî, lorsqu'il est nécessaire de recevoir une trame provenant du réseau R Et -RE 2. Lors de l'opération O Pa, la tâche se met en attente d'événement Cet événement peut être soit une commande du logiciel CNS, par exemple lorsque celui-ci veut émettre une trame vers le réseau, soit une interruption du microprocesseur MP 2, pour une réception de trame provenant du réseau Dans le premier cas (commande du logiciel CNS) on a à faire à l'événement E Vo Dans le second cas, on a à faire à l'événement E Vi. La façon dont les événements E Vo ou E Vi se déroulent est exposée en détail plus loin dans la description en liaison avec les figures 6, 7, 8, 9, 10 et 11. Lorsque l'une ou l'autre des opérations OP 4 ou OP 5 est terminée on revient à l'opération OP 3. La mémoire MV 2 contient également une table de description TDT de chaque tâche T Ci à TC 6 Cette table de description est créée dynamiquement à chaque lancement de l'une des tâches T Ci à TC 6, c'est-à-dire qu'elle est établie chaque fois que le noyau NY fait appel à l'une des tâches T Ci à TC 6 TDT comprend les quatre grandes parties suivantes Partie PRCH: cette partie définit le protocole utilisé sur le canal On rappelle qu'un protocole de communication est constitué par les règles d'accès aux différents terminaux constituant un réseau, règles qui régissent le dialogue entre ces derniers Un protocole ordonnance la conversation entre ces différents terminaux sans la hiérarchiser On connaît différents types de protocoles L'un des plus utilisé est le protocole HDLC (de l'anglais High Level Data Link Control), normalisé selon l'avis X 25 du CCICC, livre jaune, fascicule XIII 2, novembre 80 et selon les normes internationales définies par l'organisation Internationale de la Normalisation, dite ISO, sous les désignations suivantes I 53309-2, I 54335, I 56159 et 6258 Ce protocole HDLC est plus spécifiquement utilisé dans les réseaux R Ei et RE 2. Partie CE Vo cette partie contient les adresses des procédures traitant l'événement E Vo Elle est construite lors de l'opération OP 2 d'établissement de la procédure. Partie CE Vi: cette partie contient les adresses des procédures traitant l'événement E Vi Elle est construite lors de l'opération OP 2. Partie PCA: cette partie contient les informations nécessaires à la tâche T Ci pour la gestion des buffers d'une trame: elle contient plus particulièrement le nombre de buffers que chacun des contrôleurs de communication série peut émettre sans interruption, en l'occurrence 8 dans l'exemple de réalisation décrit ici. Chaque contrôleur de communication série SCC 1 à SCC 6 comprend des descripteurs de buffer en nombre égal au nombre maximum de buffers qui peuvent être émis sans interruption, c'est-à- dire 8 Ainsi, le contrôleur de communication série SC Ci comprend les descripteurs de buffer DBC 1, DB Cz à DB Ce Il en est de même pour les autres contrôleurs de communication série SCC 2 à SCC 6. Chacun de ces descripteurs de buffer DB Ci à DB Cs comprend l'adresse des descripteurs de buffer contenus en MV 1. correspondant au descripteur de commande dont le traitement est effectué par la tâche du canal correspondant, à savoir T Ci Le descripteur de buffer DB Ct comprend donc l'adresse du descripteur de buffer D Bi correspondant au descripteur de commande COM 1, dont la commande est exécutée par la tâche T Ci associée au canal C 1 Par ailleurs, le premier descripteur de commande du contrôleur de communication série SCC 2 comprend l'adresse du premier descripteur de buffer correspondant au descripteur de commande dont la commande est traitée par la tâche TC 2 correspondant au canal C 2. Chacun des descripteurs de buffer des différents contrôleurs de communication série contient également le nombre d'octets que comprend le buffer correspondant Ainsi, le descripteur de buffers DB Ct comprend le nombre d'octets d'informations contenues dans le buffer B Fi. Les données contenues dans chaque buffer de la mémoire MVî sont transmises lors de chaque émission, sur la ligne LE 1 (ou L Ez) sous la conduite de SCC 1 pour le canal C 1, SCC 2 pour C 2, etc Le fonctionnement du contrôleur de communication CCS sera mieux compris à la lumière des explications fournies ci- dessous en relation avec les figures 6 à 11. On considère donc un événement E Vo et on suppose que l'on veut émettre depuis CCS une trame T Ri composée de 10 buffers BF 1 à BF 1 o et que cette trame est émise par le canal de communication C 1, grâce à la tâche TC, L'émission de la trame comporte les différentes phases successives suivantes: Première phase PHM: Le premier processeur MPî prépare, sous les instructions du logiciel de communication CNS, à partir de l'instant to (figure 10) le descripteur de commande CO Mi Les informations contenues dans ce descripteur de commande vont occuper en mémoire M Vt un emplacement physique préparé à cet effet par le logiciel CNS, lors de l'initialisation de la carte portant le contrôleur de communication selon l'invention CCS Ainsi qu'il a été dit plus haut, à ce descripteur de commande CO Mi correspond une pluralité de descripteurs de buffer DBI à DB 1 o auxquels correspondent les buffers B Ft à BFîo Les descripteurs de buffer sont donc préparés par le premier processeur M Pt (Les emplacements physiques réservés aux descripteurs de buffer sont préparés, de même que les emplacements physiques des descripteurs de commande lors de l'initialisation de CCS) Par ailleurs, les octets correspondant aux 10 buffers de la trame T Ri sont stockés dans chacun des emplacements physiques correspondant aux buffers BF 1 à BFîo Dès que le descripteur de commande COM 1, les descripteurs de buffer DBI à DB 1 o sont préparés, on passe à la phase PH 2. Phase PH 2: Le logiciel CNS met dans le FIFO FG, dans le premier élément E., l'adresse du descripteur de commande COM 1, ainsi que le numéro du canal correspondant, ici le numéro du canal Ci, c'est-à-dire 1 Une fois que l'élément Ei est rempli par ces informations, le premier processeur M Pl envoie une interruption ITREQ au second processeur M Pz, instant tî En ce qui concerne l'émission de la trame TR 1, le logiciel de communication CNS a fini momentanément son travail On passe alors à la phase PH 3. Phase PH 3: Lors de cette phase, les instructions exécutées par le processeur M Pz sont celles de l'interface de communication IC Dès que l'interruption ITREQ a été reçue par MP 2, le microprocesseur M Pz transfère les informations contenues dans l'élément Ei du FIFO FG dans le FIFO F Ci Il est clair qu'on peut transférer dans n'importe lequel des 6 FIF Os de M Vz, à partir du FIFO FG de M Vi, des informations contenues dans les éléments de ce dernier correspondant à des descripteurs de commande associés à n'importe lequel des canaux C 1 à C 6 En effet, le processeur M Pl sous la conduite du logiciel CNS peut préparer simultanément plusieurs trames T Rz, TR 3, etc, avec leurs descripteurs de commande et descripteurs de buffer associés Par ailleurs, pour un même canal, par exemple pour le canal Ci, mais il est évident qu'il en est de même pour les autres, on peut transférer simultanément plusieurs adresses de descripteurs de commande ainsi que le numéro de canal correspondant dans le FIFO FCM correspondant à ce canal C 1 Dès que le transfert de ces informations dans les FIF Os F Ci à FC 6 est effectué, on passe à la phase PH 4. Phase PH 4: L'interface de communication IC prévient la tâche T Ci correspondante Les instructions vont être alors effectuées par le second processeur MP 2 sous instructions de TCî La tâche TCî va chercher l'adresse du descripteur de commande COM 1 dans FCî, puis va analyser le descripteur de commande lui-même dans la mémoire M Vi, pour examiner la nature de la commande, émission ou réception, ou encore commande immédiate ou non La tâche T Ct trouve dans ce descripteur de commande l'adresse du descripteur de buffer DB 1, va chercher dans ce descripteur de buffer l'adresse du buffer correspondant B Fi. Elle met alors l'adresse de ce dernier dans le descripteur de buffer DB Ci de SC Ci Elle y met également le nombre d'octets correspondant au buffer BFI, qu'elle trouve dans le descripteur DBî La tâche continue ainsi à chercher les adresses des buffers B Fz à BF 6 dans les descripteurs de buffer D Bz à D Bs et transfère ces informations dans les descripteurs de buffer DBC 2 à DBC 6 de SCC 1 Lorsque le DBC 6 est rempli, la tâche TC, fait une demande d'interruption DITDMA au processeur MPî (cette demande d'interruption qui a lieu après le remplissage du 6 ème descripteur de buffer est prévue dans le microprogramme correspondant à cette tâche Le fait que la demande d'interruption ait lieu après le 6 ème descripteur de buffer est choisi arbitrairement Il est évident que cette demande d'interruption pourrait avoir lieu après le remplissage d'un autre descripteur de buffer de SCC>). Bien que la demande d'interruption DITDMA ait eu lieu, la tâche T Ci continue à remplir DBC 7 et DBCB La demande d'interruption DITDMA ayant eu lieu à l'instant t 2, dès que DBC 8 est rempli, le second processeur MP 2, sous la conduite des instructions de T Ci, envoie au SCC 1 une demande d'émission DMAEM à l'instant t 3 On passe alors à la phase P Hs. Phase PH 5: SCC va chercher les buffers BF 1 à BFB dans M Vi et les émet vers le réseau RE -RE 2 Lorsque le 6 ème buffer BF 6 a fini d'être émis, l'interruption correspondant à la demande d'interruption DITDMA est émise, et est dénommée ITDMA Elle est émise à l'instant t 4 A partir de cet instant, pendant que SC Ci continue à émettre les 7 ème et 8 ème buffers BF? et B Fs, la tâche TCî remplit les descripteurs de buffer DBC 1 et DBC 2 de SCCî avec l'adresse des buffers BF 9 et BFîo qu'elle trouve dans les descripteurs de buffer DB 9 et D Bo 10 et avec le nombre d'octets correspondant Lorsque le descripteur de buffer DBC 2 est ainsi rempli, la tâche T Ci demande une interruption de fin de trame DITFIN, à 1 'instant ts Lorsque le dernier buffer BF 10 a été émis, alors le second processeur MP 2 émet une interruption de fin d'émission désignée par ITFIN, à l'instant tn On passe alors à la phase PH 6. Phase P Hs: Aussitôt après l'interruption de fin d'émission ITFIN, la tâche TC 1 envoie dans le FIFO FREP de M Vi, le contenu du FIFO FCL, c'est-à-dire l'adresse du descripteur de commande COM 1 plus le numéro du canal correspondant Ci Parallèlement, la tâche envoie l'état d'émission de la trame dans le descripteur de commande CO Mi contenu dans M Vi En effet, il y a dans le descripteur de commande un endroit prévu à cet effet, endroit qui est vide au départ, c'est-à-dire au moment o le logiciel CNS prépare CO Mi (voir phase PH 1). Une fois cela effectué, la tâche TC 1 envoie au premier processeur M Pl un signal signifiant que l'émission de la trame T Ri est terminée, ce signal étant appelé CPUREQ et étant émis à l'instant tn+i On passe alors à la phase PH 7. Phase PH?: La tâche T Ci va alors chercher dans F Ci s'il existe une adresse d'un autre descripteur de commande et le numéro de canal correspondant Si cela est le cas, on passe à la phase PH 1 pour l'émission d'une autre trame, par exemple TR 2 Si cela n'est pas le cas, on passe à l'opération OP 3, c'est-à- dire que la tâche TCM est mise en position d'attente d'événements. Il est clair que les autres tâches T Cz à TC 6 peuvent travailler en parallèle avec la tâche TC,. On considère désormais l'événement EV 1 et on suppose que le contrôleur CCS reçoit du réseau REî-R Ez, une trame T Rll comprenant 10 buffers BFîi à BF 2 o On suppose en outre que le microprocesseur M Pl autorise, sur instruction du logiciel CNS, l'activation du canal Ci en réception La réception de la trame TRîî se déroule selon les phases successives suivantes: Phase P Hil: (à partir de l'instant To) La tâche correspondant au canal Ci, à savoir T Ci, vient s'allouer en mémoire M Vi, un emplacement libre pour un descripteur de commande, puis un emplacement libre pour un descripteur de buffer et met dans le descripteur de commande occupant cet emplacement libre, que l'on désigne par CO Mi, l'adresse de l'emplacement physique occupé par le premier descripteur de buffer, désigné par DBîi, puis s'alloue en tout 8 descripteurs de buffer, à savoir D Bll (déjà nommé) à D Be 8 La tâche TC, chaîne entre eux ces descripteurs de buffer de la même manière qu'étaient chaînés entre eux DB 1, DB 2, etc La tâche TC, s'alloue également 8 buffers correspondant chacun au descripteur de buffer, à savoir B Fli à BF 1 8 Puis, elle va mettre l'adresse de chacun des buffers BFîi à B Ft 8 dans les 8 descripteurs de buffer DB Cli à DB Ci 8 de SC Ci, avec une demande d'interruption DITDMA, (instant Ti) lorsque l'adresse du buffer BFI 6 est inscrite dans le descripteur de buffer DBC 6 Lorsque les adresses des buffers sont inscrites dans tous les descripteurs de buffer de SCCî, la tâche TC, indique à SCCî par l'interruption PR (instant T 2) qu'elle est prête à recevoir la trame T Rlz On passe alors à la phase suivante P Hi 2. Phase PHI 2: Les informations reçues du réseau R Et-RE 2 sont transférées directement dans les emplacement physiques de buffers B Flz à B Fie tant qu'il n'y a pas d'interruption de fin de trame envoyée par le terminal qui émet sur le réseau, interruption de fin de trame qui est décodée par SCCî A la fin du remplissage du 6 ème buffer BF 16 correspondant au descripteur de buffer DB Cs, une interruption ITDM Ai est émise (instant Ta) On réinitialise alors les descripteurs de buffer DBCîî à DBC 16 et on leur fait correspondre 6 nouveaux emplacements physiques de buffers vides B Fi 9 à BF 24 dans M Vi. On passe ensuite à la phase P Hi 3. Phase P Hi 3 Pendant la réception du dixième buffer (BF 20), survient l'interruption de fin de trame ITFTR (instant Tn) La tâche TC vient mettre dans le descripteur de commande CO Mi l'état de la trame reçue, C'est-à-dire indique si cette trame a été correctement reçue et présente ou non des erreurs, ainsi que le nombre total d'octets que celle-ci contient On passe ensuite à la phase suivante PHI 4. Phase PHI 4 La tâche T Ci met dans le FIFO FREC de la première mémoire M Vi l'adresse du descripteur de commande COM Ii ainsi que le numéro de canal correspondant à ce descripteur, c'est-à-dire 1 On passe ensuite à la phase P Hi 5. Phase P Hi 5 La tâche T Ci libère les descripteurs de buffer du contrôleur de communication série SC Ci qui sont inutilisés (BF 21 à BF 24) et qui avaient été préparés à la suite de l'interruption ITDMA, Dès qu'ils sont libérés, le processeur MP 2 émet vers le premier processeur une interruption CPUREQ (instant Tn+i) qui signifie que la totalité de la trame T Rii est transférée dans les buffers de M Vi La trame T Ri i est alors à la disposition du logiciel CNS. Revendications: 1 Contr 8 leur de communication (CCS) entre au moins un système h 8 te (HOST) associé à un bus (PSB) et une pluralité de terminaux d'au moins un réseau (R Ei-RE 2), reliés entre eux par l'intermédiaire d'au moins une liaison numérique multiplexée temporellement (So) comprenant une pluralité N de canaux de données (Ci à C 6) gérés selon des protocoles déterminés et supportés par au moins une ligne de transmission (LEî -L Rt, LE 2-LR 2), comprenant: une unité de base (BA) reliée au bus (PSB), qui gère et effectue le transfert des trames (T Ri à TR 2) sur l'ensemble des canaux de la liaison (Ci à C 6), une unité périphérique (PER) reliée d'une part à l'unité de base (BA) et d'autre part à la ligne de transmission, assurant le multiplexage et le démultiplexage temporel des différents canaux de données de la liaison, transmettant les données au réseau ou les recevant de celui-ci, caractérisé en ce que l'unité de base (BA) comprend un premier processeur de commande (M Pi) de transfert des trames depuis l'hôte vers le réseau (RE 1 î-RE 2)et réciproquement, connecté au bus et associé à une première mémoire (M Vi) de stockage des trames avant leur transfert, qui gère le transfert des trames vers les différents canaux affectés à celles-ci, un second processeur (MP 2) communiquant avec le premier, effectuant le transfert de chacune des trames (TR 1, T Ri I), canal par canal, depuis la première mémoire (M Vi) jusqu'à l'unité périphérique puis le réseau, et réciproquement, la partie périphérique (PER) comprenant un coupleur (CO, COI-C 02) pour l'ensemble des canaux, piloté par le second processeur (MP 2) et relié à la ligne de transmission, et recevant les données de chaque trame, paquet par paquet, (buffer par buffer), provenant de ou allant vers la première mémoire (Mvi) et assurant le multiplexage ou le démultiplexage des données à l'émission ou à la réception. 2 Contrôleur de communication (CCS) selon la revendication 1, caractérisé en ce que le premier processeur (M Pi) exécute son travail sur instructions d'un logiciel de communication (CNS) qui est inscrit, lors de l'initialisation du contrôleur (CSS), dans la première mémoire (M Vi). 3 Contrôleur de communication selon la revendication 2, caractérisé en ce que à l'émission le premier processeur (MPî) reçoit les trames venant du bus, les divise en une pluralité de paquets (B Fi B Fn) qu'il stocke de manière aléatoire dans la première mémoire en une pluralité d'emplacements physiques différents, avant que ces paquets ne soient transférés par le second processeur vers le réseau (RE -RE 2). 4 Contrôleur de communication selon la revendication 2, caractérisé en ce que, en réception, le premier processeur (MPI) reçoit du réseau, via le coupleur (C 0, C O O-C 02), les trames sous forme d'une pluralité de paquets qu'il stocke de manière aléatoire dans la première mémoire (MV 1), avant de les envoyer, via le bus (PSB) vers le système hôte (HOST). Contr 1 ôleur de communication selon l'une des revendications 2, 3, 4 caractérisé en ce que le second processeur (M Pz) exécute son travail sur instructions d'une architecture micrologicielle (AML), qui est inscrite, lors de l'initialisation du contrôleur, dans une seconde mémoire (MV 2) associée au second processeur (MP 2). 6 Contrôleur de communication selon la revendication 5, caractérisé en ce que l'architecture micrologicielle (AML) comprend un noyau (NY), une interface de communication (IC) permettant le dialogue entre le logiciel de communication (CNS) et l'architecture (AML) et une pluralité de modules micrologiciels ou tâches (T Co, T Ci TC 7) en nombre au moins égal à celui des canaux, chaque canal étant associé à un module, lequel effectue le transfert des trames affectées à ce canal, depuis la première mémoire (M Vi) vers le réseau via la partie périphérique et réciproquement, chaque module ou tâche étant indépendant des autres, son déroulement étant organisé en temps réel par le noyau NY. 7 Contrôleur suivant la revendication 6 caractérisé en ce que l'interface de communication (IC) communique d'une part avec le noyau (NY) et d'autre part avec le logiciel de communication (CNS), acquitte les demandes provenant de ce dernier et les aiguille, via le noyau (NY), vers les différentes tâches (T Co à TC 7) correspondant aux différents canaux pour que ces dernières soient exécutées. 8 Contrôleur suivant la revendication 7, caractérisé en ce que l'interface de communication (IC) effectue via le noyau (NY) les transferts d'états et de données provenant des canaux (Cl à C 6) correspondant à chacune des tâches vers le logiciel de communication (CNS). 9 Contrôleur suivant l'une des revendications 5 et 6, caractérisé en ce que les échanges entre l'unité de base (BA) et l'unité périphérique (PER) se définissent par des descripteurs de commande (CO Mi, COM 2, COM 3,) correspondant chacun à une trame déterminée et définissant les opérations devant être accomplies sur cette trame, lesquels sont stockés de manière aléatoire dans la première mémoire. Contrôleur suivant la revendication 9, caractérisé en ce que les descripteurs de commande correspondent à des trames affectées à un même canal, sont chaînés entre eux par des pointeurs de chaînage (PC 1, PC 2,), le pointeur d'un descripteur donné indiquant l'adresse logique du descripteur suivant. 11 Contrôleur suivant la revendication 10, caractérisé en ce que chaque descripteur de commande (COMN, COM 2) pointe sur un descripteur de buffer (DB 1 i,D Bn) définissant les caractéristiques du premier buffer (BF 1) de la trame associée au descripteur de commande (COMN), chacun des buffers d'une trame étant associé à un descripteur de buffer, les descripteurs de buffers étant chaînés entre eux par des pointeurs de buffer (PCB 1 i, PCB 2,) définissant chacun l'adresse logique du descripteur de buffer chaîné à celui comportant ce même pointeur, chacun des descripteurs de buffer pointant vers le buffer correspondant par un pointeur de buffer définissant l'adresse logique de ce buffer en première mémoire (MV 1), les emplacements physiques des descripteurs de buffer et des buffers étant définis aléatoirement par le premier processeur. 12 Contrôleur suivant l'une des revendications 9, 10, 11, caractérisé en ce que le coupleur (CO) comprend une pluralité de contrôleurs de communication série, effectuant le multiplexage et démultiplexage des données, les sérialisant ou déssérialisant, chaque contrôleur série étant associé à au moins un canal et comportant des descripteurs de buffer (DB Ci à DBCB) correspondant chacun à un descripteur de buffer de la première mémoire (D Bi à D Bn) et indiquant l'adresse de ce dernier et le nombre d'octets que celui-ci contient. 13 Contrôleur selon l'une des revendications 9 à 12, caractérisé en ce que la première mémoire (M Vi) comprend une première zone mémoire FIFO (FG) comprenant p éléments contenant chacun l'adresse d'un descripteur de commande (CO Mi, COM 2 z) et le numéro de canal (Cil à C 6) affecté à la trame associée à ce descripteur de commande, la seconde mémoire (MV 2) comprenant des zones mémoires FIFO associées chacune à un canal de donnée déterminé, contenant chacune les adresses de tous les descripteurs de commande correspondant aux trames affectées au canal qui leur est associé ainsi que le numéro de ce canal.