Brevet FR2775091A1 — publié le 19990820

PROCÉDE DE TRANSFERT DE DONNÉES EN SERIE, ET INTERFACE DE BUS SERIE SYNCHRONE METTANT EN îEUVRE UN TEL PROCEDÉ La présente invention concerne le domaine des transmissions de données numériques en série. Elle concerne plus particulièrement un bus synchrone et son protocole de transmission en mode maître/esclave entre une unité principale (maître) et une unité périphérique (esclave). Un exemple d'un tel bus, utilisé dans diverses catégories d'appareil, est le bus dit I2C décrit dans le brevet européen 0 051 332. Un certain nombre de cycles d'horloge sont nécessaires au microprocesseur ou microcontrôleur constituant l'unité principale pour récupérer un octet de données (58 cycles d'horloge dans le cas du circuit commercialisé par la société PHILIPS sous la référence PCD 3316 employant un tel bus). Un but de la présente invention est de proposer un nouveau protocole de bus série synchrone permettant d'accéder plus rapidement à certaines données dans l'unité périphérique. L'invention propose ainsi un procédé de transfert de données en série entre une unité principale et une unité périphérique reliées entre elles par un bus comprenant une ligne de données et une ligne d'horloge, dans lequel l'unité principale commande des cycles de transfert synchronisés au moyen de la ligne d'horloge, comprenant des cycles d'écriture, des cycles de lecture avec adressage et des cycles de lecture directe, dans lequel, au cours de chaque cycle, l'unité principale transmet sur la ligne de données une impulsion d'activation alors que la ligne d'horloge est à un premier niveau logique, dans lequel, avant de transmettre l'impulsion d'activation dans un cycle d'écriture, l'unité principale transmet sur la ligne de données des bits de données à écrire, des bits d'une adresse d'écriture et au moins un bit de sélection de mode ayant une première valeur, avec des impulsions de synchronisation correspondantes sur la ligne d'horloge, dans lequel, après avoir reçu l'impulsion d'activation dans un cycle d'écriture, l'unité périphérique mémorise les bits de données à écrire à un emplacement déterminé à partir de l'adresse d'écriture, dans lequel, avant de transmettre l'impulsion d'activation dans un cycle de lecture avec adressage, l'unité principale transmet sur la ligne de données des bits d'une adresse de lecture et au moins un bit de sélection de mode ayant une valeur complémentaire de la première valeur, avec des impulsions de synchronisation correspondantes sur la ligne d'horloge, dans lequel, après avoir reçu l'impulsion d'activation dans un cycle de lecture avec adressage, l'unité périphérique transmet successivement sur la ligne de données, en réponse à des impulsions de synchronisation reçues sur la ligne d'horloge, des bits de données récupérés à l'aide de l'adresse de lecture, dans lequel, dans un cycle de lecture directe, l'unité principale transmet l'impulsion d'activation au début du cycle, et dans lequel, après avoir recu l'impulsion d'activation dans un cycle de lecture directe, l'unité périphérique transmet successivement sur la ligne de données, en réponse à des impulsions de synchronisation reçues sur la ligne d'horloge, des bits de données récupérés à un emplacement déterminé préalablement audit cycle de lecture directe. Le protocole de transfert est très simple, de sorte qu'il permet des accès rapides. Il repose sur la détection de l'impulsion d'activation, ou "strobe", sur la ligne de données par l'unité périphérique. L'unité principale distingue les différents modes de transfert par la position de cette impulsion d'activation au cours du cycle. Un accès très rapide à certains emplacements de mémoire de l'unité périphérique est rendu possible par le mode lecture directe, étant donné que l'unité principale ne présente pas de bits d'adresse dans ce mode, et que l'information désirée est sélectionnée au préalable. L'emplacement o les bits de données transmis sont obtenus en mode de lecture directe peut être un emplacement fixe prédéterminé, ce qui permet de simplifier au maximum la structure de l'interface de bus de l'unité périphérique et donc de minimiser son coût. Ce peut également être un emplacement dont l'adresse est obtenue à partir d'une information fournie par l'unité principale lors d'un cycle d'écriture antérieur. Dans ce cas, des cycles de lecture directe peuvent être exécutés par l'unité principale pour lire différents types d'information dans l'unité périphérique. Le nombre de bits ainsi lu peut également être un paramètre réglé par l'unité principale lors d'un cycle d'écriture antérieur. Le mode de lecture directe peut notamment être utilisé dans le traitement rapide de certaines interruptions par l'unité principale. Un autre avantage du bus proposé est qu'il peut partager sa ligne de données et sa ligne d'horloge avec celles d'un bus fonctionnant selon un autre protocole pour l'échange de données entre l'unité principale et d'autres entités. Selon un second aspect, la présente invention propose une interface de bus série synchrone pour une unité périphérique commandée par une unité principale par l'intermédiaire d'un bus incluant une ligne de données et une ligne d'horloge, comprenant: - des moyens de détection d'impulsions d'activation, pour détecter des impulsions d'activation survenant sur la ligne de données du bus alors que la ligne d'horloge du bus est à un premier niveau logique; - un premier registre à décalage cadencé par la ligne d'horloge du bus, ayant une entrée de données en série reliée à la ligne de données; - un second registre à décalage ayant une entrée de données en série reliée à la sortie de données en série du premier registre à décalage, et cadencé par la sortie d'une porte OU EXCLUSIF dont une entrée est reliée à la ligne d'horloge du bus et l'autre entrée reçoit un signal binaire de sélection; - un commutateur de sortie relié d'une part à la sortie de données en série du second registre à décalage et d'autre part à la ligne de données du bus; - des moyens d'identification de cycle de transfert, pour analyser le contenu du premier registre à décalage lorsqu'une impulsion d'activation est détectée de manière à identifier chaque cycle de transfert dont fait partie une impulsion d'activation détectée; - des registres d'écriture adressables à partir d'une adresse d'écriture lue dans le premier registre à décalage lorsqu'un cycle d'écriture a été identifié, cycle d'écriture dans lequel le signal binaire de sélection est maintenu à 0, le commutateur de sortie est maintenu ouvert et la détection de l'impulsion d'activation est suivie par le transfert en parallèle du contenu du second registre à décalage dans le registre d'écriture désigné par l'adresse d'écriture; - des registres de lecture adressables à partir d'une adresse de lecture lorsqu'un cycle de lecture a été identifié, cycle de lecture dans lequel la détection de l'impulsion d'activation est suivie par le transfert en parallèle d'une partie au moins du contenu du registre de lecture désigné par l'adresse de lecture dans le second registre à décalage et par le transfert en série du contenu du second registre à décalage vers le commutateur de sortie, transfert en série pendant lequel le signal binaire de sélection est mis à 1 et le commutateur de sortie est fermé; et - des moyens de gestion des cycles de lecture pour obtenir l'adresse de lecture à partir du premier registre à décalage lorsqu'un cycle de lecture avec adressage a été identifié, et pour fournir une adresse de lecture préalablement déterminée lorsqu'un cycle de lecture directe a été identifié. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci- après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels: - la figure 1 est un schéma synoptique d'un appareil mettant en oeuvre la présente invention; - les figures 2 à 4 sont des chronogrammes illustrant respectivement un cycle d'écriture, un cycle de lecture avec adressage et un cycle de lecture directe exécutés dans un exemple de procédé selon l'invention; - la figure 5 est un schéma d'un exemple de module d'entrée/sortie d'une interface selon l'invention; et la figure 6 est un schéma détaillant un exemple de réalisation d'un détecteur d'impulsions d'activation du module de la figure 5. La figure 1 montre schématiquement un appareil dont le fonctionnement général est commandé par une unité principale constituée par un microprocesseur 10. Le microprocesseur 10 supervise un certain nombre d'unités (non représentées) de l'appareil par l'intermédiaire d'un bus série 11 de type connu, tel que par exemple un bus I2C comportant une ligne de données SDA et une ligne d'horloge SCL (voir EP-B-0 051 332). Une autre unité périphérique 12 est supervisée par le microprocesseur 10 à l'aide d'un bus série 13 fonctionnant conformément à l'invention. A titre d'exemple d'application, l'appareil peut être un poste téléphonique dont le microprocesseur 10 supervise à l'aide du bus I2C 11 des unités telles qu'un clavier, un écran d'affichage et diverses interfaces, l'unité 12 étant un composant dédié à l'observation de la ligne téléphonique et au traitement de certaines données relatives à des services évolués proposés par les opérateurs de réseaux. Dans ce genre d'application, le coût des composants doit être le plus bas possible, et il est notamment souhaitable de pouvoir limiter autant que possible le nombre de broches d'entré/sortie du microprocesseur. Dans ce but, le bus 13 servant d'échange entre les unités 10 et 12 emprunte les lignes de données et d'horloge du bus général 11, qui sont également notées BDA et BCL. Le protocole qui sera décrit ci-après évite les ambiguités sur ces lignes. Le bus 13 comporte en outre une ligne d'interruption INT permettant à l'unité périphérique 12 de signaler certains événements au microprocesseur 10 par l'envoi d'une requête d'interruption. L'interface de bus, prévue entre les circuits opérationnels 15 de l'unité périphérique 12 et le bus 13, comprend un module d'entrée/sortie 16 et un module 17 de traitement des interruptions. Le module 17 reçoit des circuits 15 des signaux d'interruption respectifs IRQ1- IRQn relatifs à un ensemble de n événements dont la détection déclenche l'envoi sur la ligne INT d'une requête d'interruption. Le module 17 gère le stockage, dans un registre d'état du module 16, de n bits correspondant aux états des signaux IRQ1-IRQn. En réponse à une requête d'interruption reçue sur la ligne INT, le microprocesseur lit le registre d'état afin de connaître l'origine de l'interruption et de déterminer le programme d'interruption devant être exécuté. Dans l'exemple d'application à un poste téléphonique, l'ensemble d'événements associés aux signaux d'interruption IRQ1-IRQn comprend par exemple la détection d'une sonnerie sur la ligne, le détection de la présence de la tension de ligne et la détection de divers signaux que le réseau transmet sur la ligne téléphonique dans le cadre de services particuliers. Les deux premières lignes des figures 2 à 4 montrent comment le microprocesseur 10 contrôle les lignes BCL, BDA du bus 13 pour déclencher des transferts de données depuis ou vers l'unité périphérique 12. Dans chaque cas, l'utilisation du bus 13 est signalée par une impulsion d'activation (strobe) présentée pendant un cycle de transfert sur la ligne de données BDA alors que la ligne d'horloge BCL est à un niveau logique donné. Dans l'exemple décrit, ce niveau logique est le niveau 1, et l'impulsion d'activation est une impulsion de niveau logique 0, c'est-à-dire commençant par un front descendant et se terminant par un front montant, ces deux fronts survenant pendant que BCL=1. Dans un cycle d'écriture, l'impulsion d'activation est précédée par n+m+ l impulsions de synchronisation régulières sur la ligne d'horloge BCL (n=8 et m=4 dans l'exemple représenté), chaque impulsion commençant par un front montant et se terminant par un front descendant. Les changements de niveau logique sur la ligne de données BDA ne sont pas autorisés pendant ces n+m+l impulsions de synchronisation (BCL=1), mais uniquement entre ces impulsions (BCL=0). Les n=8 premiers bits transmis au cours du cycle d'écriture sont des bits de données formant un octet à écrire, transmis par le microprocesseur 10 dans l'ordre des poids décroissants D7-D0. Les m=4 bits suivants A3- A0 forment une adresse d'écriture pour le stockage de l'octet précédent. Le dernier bit RW, qui précède immédiatement l'impulsion d'activation, indique par la valeur RW=0 que le cycle en cours est un cycle d'écriture. Dans un cycle de lecture avec adressage (figure 3), l'impulsion d'activation est précédée par m+l impulsions de synchronisation sur la ligne d'horloge BCL, m+l bits étant transmis comme précédemment par le microprocesseur sur la ligne de données BDA. Les m=4 premiers de ces bits forment une adresse de lecture A3-AO pour les données requises par le microprocesseur. Le dernier bit RW, qui précède immédiatement l'impulsion d'activation, indique par la valeur RW=l que le cycle en cours est un cycle de lecture avec adressage. Après l'impulsion d'activation dans un cycle de lecture avec adressage, le microprocesseur 10 transmet encore n=8 impulsions de synchronisation sur la ligne BCL, auxquelles le module 16 de l'unité périphérique 12 répond en présentant successivement sur la ligne BDA les n=8 bits de l'octet lu, dans l'ordre des poids décroissants D7-D0. Comme précédemment, la transmission de ces n bits de données est opérée de façon telle que les transitions entre ces bits aient lieu quand la ligne d'horloge est dans l'état BCL=0. Dans un cycle de lecture directe (figure 4), l'impulsion d'activation est transmise par le microprocesseur au début du cycle. Après cette impulsion d'activation, le processeur 10 présente p impulsions de synchronisation sur la ligne d'horloge BCL, auxquelles l'unité périphérique 12 répond en transmettant p bits de données dl-dO sur la ligne BDA de la même manière que précédemment (les transitions entre bits ont lieu pendant que BCL=O). Dans l'exemple de la figure 4, on a représenté le cas particulier o p=2. Les p=2 bits dl-dO sont par exemple lus à une adresse fixe prédéterminée dans les registres du module d'entrée/sortie 16. Dans l'exemple d'application au poste téléphonique, les p=2 bits lus dans un cycle de lecture directe peuvent être les deux bits du registre d'état indiquant respectivement la détection d'une sonnerie sur la ligne téléphonique et la présence de la tension de ligne. Ces deux bits représentent des informations dont le microprocesseur 10 peut avoir besoin de façon très urgente pour adopter une réponse appropriée. Ainsi, lorsqu'il reçoit une requête d'interruption sur la ligne INT, le microprocesseur 10 peut déclencher un cycle de lecture directe dont l'exécution est très rapide, afin de connaître les valeurs de ces deux bits et d'adopter la réponse appropriée dans les meilleurs délais s'ils montrent effectivement l'origine de l'interruption. Dans le cas contraire, le microprocesseur 10 peut ensuite déclencher un cycle de lecture avec adressage dans le registre d'état afin de connaître les autres bits d'état et d'identifier l'origine de l'interruption. A titre d'exemple numérique (voir figure 2), la fréquence d'horloge étant de 500 kHz, la durée des impulsions sur la ligne d'horloge (BCL=1) peut être Tl=l As, et ces impulsions peuvent être séparées par une durée T2=1 4s (BCL=0); l'impulsion d'activation (strobe) de niveau logique 0 peut avoir une durée T3=l ls, précédée et suivie par un temps de garde T4=0,5 As pendant lequel BCL=BDA=1. La durée d'un cycle d'écriture ou de lecture avec adressage est alors d'environ 15 gs, et la durée d'un cycle de lecture directe avec p=2 est d'environ 4 gs. Les accès peuvent être encore plus rapides lorsque le bus n'est pas soumis aux contraintes du protocole I2C, la fréquence d'horloge pouvant dans ce cas être plus élevée. Lorsqu'il n'est pas en train d'exécuter un cycle de transfert sur le bus 11/13, le microprocesseur 10 maintient la ligne d'horloge SDA/BDA au niveau logique 1. Dans le protocole du bus I2C 11, un front descendant sur la ligne de données SDA alors que la ligne d'horloge SCL est au niveau logique 1 caractérise un début de cycle de transfert, tandis qu'un front montant f sur la ligne de données SDA pendant que BCL=l caractérise la fin d'un cycle de transfert (figure 4). En conséquence, selon ce protocole I2C, la ligne de données ne change pas de niveau logique plus d'une fois pendant que la ligne d'horloge est au niveau 1. On voit donc que le protocole de transfert proposé selon l'invention, illustré par les figures 2 à 4, ne donne lieu à aucune ambiguité avec le protocole du bus I2C utilisé par le microprocesseur 10 pour superviser d'autres unités de l'appareil: - le contrôle des lignes SDA/BDA, SCL/BCL appartient au microprocesseur 10 qui assure la coexistence des deux bus; - lorsque le microprocesseur commande le bus 13 comme représenté sur l'une des figures 2 à 4, aucun cycle de transfert I2C n'est exécuté sur le bus 11 puisque l'impulsion d'activation conduit à commencer puis terminer un cycle I2C dans lequel rien ne se serait déroulé, et la stabilité de la ligne de données BDA pendant que BCL=l en dehors de l'impulsion d'activation ne peut générer aucun début de cycle I2C; - lors de l'exécution d'un cycle de transfert selon le protocole I2C, l'impulsion d'activation n'est pas reçue par l'unité périphérique 12 de sorte que des transferts intempestifs sur le bus 13 sont évités. La structure du module d'entrée/sortie 16 de l'unité périphérique 12 est par exemple conforme au schéma de la figure 5. Sur cette figure, la référence 18 désigne un groupement de M utilisé pour la gestion des interruptions. Le module 16 comprend un registre à décalage l1 constitué de m+1 bascules D en cascade 200-20m cadencées par les fronts montants du signal présent sur la ligne d'horloge BCL. L'entrée de données de ce registre à décalage, c'est-à-dire l'entrée D de la première bascule 200, est reliée à la ligne de données BDA. Le module 16 comprend un second registre à décalage constitué de n bascules D en cascade 20m+1- 20m+n cadencées par les fronts montants d'un signal CC délivré par une porte OU EXCLUSIF 21. Pour l reçoit un signal binaire de sélection CD. Au moment o une impulsion d'activation est reçue par l'unité périphérique 12 dans un cycle d'écriture ou de lecture avec adressage, le bit de sélection de mode RW est présent à la sortie Q de la bascule 200, et les m bits d'adresse A3-A0, sont présents aux sorties Q des bascules 201-20nÀ Un registre auxiliaire de m bits est constitué de m bascules D 221-22m. Pour l1i m, l'entrée D de la bascule 22i est reliée à la sortie Q de la bascule 20i. Les sorties Q des bascules 221-22m fournissent les m bits d'adresse délivrés au groupement de registres d'écriture 18 et au groupement de registres de lecture 19. Pour que ce registre auxiliaire 221-22m reçoive l'adresse A3-A0 au moment de la détection de l'impulsion d'activation dans un cycle d'écriture ou de lecture avec adressage, les bascules D 221-22m sont cadencées par les fronts montants d'un signal HOLD délivré par un détecteur d'impulsions d'activation 24. Ce détecteur 24 (figure 6) comprend deux bascules D 25,26 dont les sorties Q sont remises au niveau logique 0 à chaque front descendant survenant sur la ligne d'horloge BCL. La ligne BCL est reliée à l'entrée D de la bascule 25 qui est cadencée par les fronts descendants survenant sur la ligne de données BDA, et dont la sortie Q délivre le signal HOLD précité. Ce signal est d'autre part adressé à l'entrée D de la bascule 26 cadencée par les fronts montants survenant sur la ligne de données BDA, et dont la sortie Q délivre un signal de détection STRI. Ce signal STRI présente une impulsion de niveau logique 1 qui commence à la fin de chaque impulsion d'activation et se termine lorsque la ligne BCL revient à 0. Une porte ET 28 combine le signal STRI avec le complément logique du bit RW obtenu sur la sortie Q de la bascule 200 pour produire le signal de commande d'écriture WR adressé au groupement de registres d'écriture 18. Ce signal WR (figure 2) commande le transfert en parallèle des n bits D7-D0 présents sur les sorties Q des bascules m+l-20m+n dans le registre du groupement 18 dont l'emplacement est désigné par les m bits d'adresse A3-A0 obtenus sur les sorties Q des bascules 221-22m. Une autre porte ET 29 reçoit le signal STRI et le bit de sélection RW obtenu sur la sortie Q de la bascule pour produire un signal RR ayant la même allure dans les cycles de lecture (figures 3 et 4). Pour faire la distinction entre les cycles de lecture avec adressage et les cycles de lecture directe, on prévoit qu'une valeur de l'adresse de lecture soit exclue par le microprocesseur 10 pour les cycles de lecture avec adressage. A titre d'exemple, ce peut être la valeur pour laquelle tous les bits d'adresse sont à 1. Les bascules du premier registre à décalage 200- 20m ont chacune une entrée de présélection P servant à forcer leur sortie Q au niveau logique 1 lors de chaque front descendant d'un signal de présélection CP. Ce signal CP est fourni par un filtre formé par une porte ET 31 appartenant à des moyens 30 de gestion des cycles de lecture. La porte ET 31 combine les signaux suivants: - un signal RES de réinitialisation générale de l'unité 12; - le signal de commande d'écriture WR, dont le front descendant survenant à la fin d'un cycle d'écriture (figure 2) provoque ainsi l'écriture de l'adresse exclue dans les bascules 201-20m du premier registre à décalage, et de RW=l dans la bascule 200; - un signal de fin de cycle de lecture EORC, qui présente une impulsion de niveau logique 0 à la fin de chaque cycle de lecture (figures 3 et 4), pour écrire RW=l ainsi que l'adresse exclue dans le registre 200-20m à la fin de chaque cycle de lecture, directe ou avec adressage; et - un signal F de détection de fausses impulsions d'activation, qui repère des changements de niveau logique sur la ligne de données BDA survenant alors que BCL=l et qui ne sont pas attribuables à une impulsion d'activation. Le signal F sert à forcer l'écriture de RW=l et de la valeur d'adresse exclue dans le registre 200-20m à la fin des cycles de transfert commandés par le microprocesseur 10 selon le protocole I2C. Ce signal F présente un front descendant à la fin de chaque cycle de transfert I2C, comme le montre la partie gauche de la figure 4. Ce signal F est par exemple fourni par la sortie inverseuse Q d'une bascule D 27 du détecteur d'impulsions d'activation 24 (figure 6). Cette bascule 27 est remise au niveau 0 à chaque front descendant survenant sur la ligne d'horloge BCL. La ligne BCL est reliée à l'entrée D de la bascule 27 qui est cadencée par les fronts montants survenant sur la ligne de données BDA. La mise en forme du signal de présélection CP est telle que le microprocesseur 10 peut décider à chaque instant d'exécuter un cycle de lecture directe. Pour identifier la nature du cycle de transfert en cours, les portes ET 28,29 sont complétées par une logique de détection 33 reliée aux sorties Q des bascules du registre auxiliaire 221-22m. Cette logique de détection 33, qui consiste simplement en une porte ET à m entrées dans le cas o la valeur d'adresse exclue est 11...1, délivre un bit de sélection FRM qui est à 1 lorsque l'adresse exclue est détectée et à 0 sinon. Les moyens 30 de gestion des cycles de lecture comprennent en outre un commutateur d'adresse 34 commandé par le bit FRM, un module de cadencement 35 et un module de gestion d'adresses 36. Le module 35 délivre le signal de commande de lecture RD fourni au groupement de registres 19. Ce signal RD est produit en réponse à l'impulsion du signal RR délivré par la porte ET 29, et correspond à cette impulsion prolongée pendant un cycle de l'horloge BCL, comme le montrent les figures 3 et 4. Une porte à trois états 40 forme un commutateur de sortie du module d'entrée/sortie 16, avec son entrée reliée à la sortie Q de la dernière bascule 20m+n du second registre à décalage, et sa sortie reliée à la ligne de données BDA. Cette porte à trois états 40 peut être commandée par le signal binaire de sélection CD qui est fourni à la porte OU EXCLUSIF 21, de manière à être à l'état déconnecté (ouvert) lorsque CD=0 et l'état passant (fermé) lorsque CD=l. Le signal CD est délivré par le module de cadencement 35. Il reste au niveau 0 en dehors des cycles de transfert sur le bus 13 ainsi que pendant les cycles d'écriture. Pendant un cycle de lecture (figures 3 et 4), le signal CD reste au niveau 0 jusqu'à la détection de l'impulsion d'activation. Lorsqu'il détecte un front montant sur la sortie RR de la porte 29, le module 35 génère un front montant du signal CD qui est ensuite maintenu à 1 jusqu'à la fin des impulsions de synchronisation suivantes sur la ligne d'horloge BCL. Le module 35 maintient donc le signal CD à 1 jusqu'à avoir reçu n impulsions de synchronisation sur la ligne BCL lorsque FRM=0, et jusqu'à avoir reçu p impulsions de synchronisation lorsque FRM=1. L'impulsion de niveau 0 du signal de fin de cycle EORC est produite lorsque le signal CD revient à 0 (figures 3 et 4). Lorsque FRM=0, le commutateur 34 est dans la position représentée sur la figure 5, de sorte qu'une impulsion du signal RD provoque la lecture d'un octet dans le groupement 19 à l'adresse présente dans le registre auxiliaire 221-22m. Le module de permutation circulaire 38 auquel sont fournis les bits de l'octet lu dans le groupement 19 est désactivé lorsque FRM=0, ce qui permet le transfert en parallèle de ces bits vers le registre à décalage 20m+1-20m+n. Le bit de poids le plus fort de l'octet est d'abord fourni sur la ligne de données BDA via la porte 40, tandis que les autres bits de l'octet sont chargés dans les bascules 20m+2-20m+n du second registre à décalage. Ces autres bits sont ensuite délivrés en série sur la ligne de données BDA en réponse aux impulsions de synchronisation suivantes de l'horloge BCL. L'inversion de cette horloge par la porte OU EXCLUSIF 21 permet d'assurer la stabilité des données dans les intervalles de temps o BCL=1. Dans un cycle de lecture directe, le commutateur 34 est positionné pour obtenir l'adresse de lecture a depuis le module de gestion d'adresses 36. Lorsque cette adresse a est fixe, le module 36 se réduit à des connexionsfournissant la valeur constante a au commutateur 34. Si les p bits lus dans un cycle de lecture directe sont toujours les p bits de poids les plus forts d'un des registres du groupement 19, le module de permutation circulaire 38 est inutile. Sinon, il est activé par le bit FRM=l afin d'introduire le décalage requis, de È bits, pour délivrer les bits souhaités vers la ligne de données BDA. Il est possible de choisir, comme nombre de bits à transférer dans un cycle de lecture directe, un nombre p supérieur à la taille n des registres du groupement 19. Le fonctionnement est alors le même que celui décrit précédemment, sauf que le module de cadencement 35 doit réactiver le signal de commande de lecture RD toutes les n impulsions de synchronisation, provoquant ainsi l'incrémentation de l'adresse fournie par le module 36 (consistant essentiellement en un compteur), et le transfert en parallèle vers le registre à décalage 20m+1- m+n du contenu d'un nouveau registre du groupement 19 pointé par l'adresse incrémentée. Les paramètres p (nombre de bits transférés dans un cycle de lecture directe), a (adresse de départ) et ô (décalage éventuel) peuvent être fixes, comme dans l'exemple précédemment décrit. Ils peuvent également être des paramètres programmables par le microprocesseur 10. Dans ce cas, les modules 35, 36 et 38, qui utilisent respectivement de ces paramètres p, a et S, les obtiennent à partir de l'un des registres d'écriture du groupement 18. Pour modifier l'un ou l'autre de ces paramètres, le microprocesseur 10 peut simplement exécuter un cycle d'écriture dans le ou les registres en question, dont il connaît les adresses. R E V E N D I C A T I ON S 1. Procédé de transfert de données en série entre une unité principale (10) et une unité périphérique (12) reliées entre elles par un bus (13) comprenant une ligne de données (BDA) et une ligne d'horloge (BCL), dans lequel l'unité principale commande des cycles de transfert synchronisés au moyen de la ligne d'horloge, comprenant des cycles d'écriture, des cycles de lecture avec adressage et des cycles de lecture directe, dans lequel, au cours de chaque cycle, l'unité principale transmet sur la ligne de données une impulsion d'activation alors que la ligne d'horloge est à un premier niveau logique, dans lequel, avant de transmettre l'impulsion d'activation dans un cycle d'écriture, l'unité principale transmet sur la ligne de données des bits de données à écrire (D7-D0), des bits (A3-A0) d'une adresse d'écriture et au moins un bit de sélection de mode (RW) ayant une première valeur, avec des impulsions de synchronisation correspondantes sur la ligne d'horloge, dans lequel, après avoir reçu l'impulsion d'activation dans un cycle d'écriture, l'unité périphérique mémorise les bits de données à écrire à un emplacement déterminé à partir de l'adresse d'écriture, dans lequel, avant de transmettre l'impulsion d'activation dans un cycle de lecture avec adressage, l'unité principale transmet sur la ligne de données des bits (A3-A0) d'une adresse de lecture et au moins un bit de sélection de mode (RW) ayant une seconde valeur complémentaire de la première valeur, avec des impulsions de synchronisation correspondantes sur la ligne d'horloge, dans lequel, après avoir recu l'impulsion d'activation dans un cycle de lecture avec adressage, l'unité périphérique transmet successivement sur la ligne de données, en réponse à des impulsions de synchronisation reçues sur la ligne d'horloge, des bits de données (D7-D0) récupérés à l'aide de l'adresse de lecture, dans lequel, dans un cycle de lecture directe, l'unité principale transmet l'impulsion d'activation au début du cycle, et dans lequel, après avoir reçu l'impulsion d'activation dans un cycle de lecture directe, l'unité périphérique transmet successivement sur la ligne de données, en réponse à des impulsions de synchronisation reçues sur la ligne d'horloge, des bits de données (dl-dO) récupérés à un emplacement déterminé préalablement audit cycle de lecture directe. 2. Procédé selon la revendication 1, dans lequel la ligne de données (BDA) est reliée à l'entrée d'un registre à décalage (200-20m) de l'unité périphérique (12) cadencé par la ligne d'horloge (BCL) et de taille suffisante pour contenir les bits d'adresse (A3-AO) et le bit de sélection de mode (RW) transmis dans un cycle d'écriture ou de lecture avec adressage, dans lequel au moins une valeur d'adresse est exclue pour les adresses de lecture transmises par l'unité principale (10), et dans lequel, au moment o elle détecte une impulsion d'activation, l'unité périphérique examine le contenu dudit registre à décalage pour déterminer si l'impulsion d'activation détectée fait partie d'un cycle d'écriture, d'un cycle de lecture avec adressage ou d'un cycle de lecture directe, un cycle de lecture directe étant choisi si le registre à décalage contient la valeur d'adresse exclue et un bit de sélection de mode ayant ladite seconde valeur. 3. Procédé selon la revendication 2, dans lequel l'unité principale (10) maintient la ligne d'horloge (BCL) au premier niveau logique lorsqu'elle n'effectue aucun cycle de transfert, et dans lequel l'unité principale et l'unité périphérique (12) transmettent les bits de données, d'adresse et de sélection de mode dans lesdits cycles de transfert de façon telle que les transitions entre ces bits aient lieu alors que la ligne d'horloge est à un second niveau logique complémentaire du premier niveau logique. 4. Procédé selon la revendication 3, dans lequel, pendant que la ligne d'horloge (BCL) est au premier niveau logique, l'unité périphérique (12) examine la ligne de données (BDA) pour détecter des changements de niveau logique non attribuables à une impulsion d'activation, et pour écrire la valeur d'adresse exclue et un bit de sélection de mode ayant ladite seconde valeur dans le registre à décalage (200-20m) en réponse à une telle détection. 5. Procédé selon la revendication 4, dans lequel la ligne d'horloge (BCL) et la ligne de données (BDA) sont utilisées par l'unité principale (10) pour échanger des données avec d'autres unités selon un protocole dans lequel la ligne de données ne change pas de niveau logique plus d'une fois pendant que la ligne d'horloge est au premier niveau logique. 6. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'emplacement o sont récupérés les bits de données (dl-dO) transmis dans un cycle de lecture directe est un emplacement fixe. 7. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel l'emplacement o sont récupérés les bits de données transmis dans un cycle de lecture directe est déterminé à partir d'une information transmise par l'unité principale (10) au cours d'un cycle d'écriture antérieur. 8. Procédé selon la revendication 7, dans lequel le nombre (p) de bits de données transmis successivement dans un cycle de lecture directe est déterminé à partir d'une information transmise par l'unité principale (10) au cours d'un cycle d'écriture antérieur. 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel le bus (13) comprend en outre une ligne d'interruption (INT) sur laquelle l'unité périphérique (12) envoie une requête d'interruption à l'unité principale (10) lorsqu'elle détecte un événement parmi un ensemble d'événements déterminés, l'unité périphérique comportant un registre d'état pour contenir des bits indiquant respectivement les événements dudit ensemble qui ont été détectés, et dans lequel, lorsqu'elle reçoit une requête sur la ligne d'interruption, l'unité principale commande les cycles de transfert suivants: - un cycle de lecture directe pour lire une portion déterminée du registre d'état; et - si les bits contenus dans ladite portion du registre d'état n'indiquent pas une détection d'événement, au moins un cycle de lecture avec adressage pour lire le reste du registre d'état. 10. Interface de bus série synchrone pour une unité périphérique (12) commandée par une unité principale (10) par l'intermédiaire d'un bus (13) incluant une ligne de données (BDA) et une ligne d'horloge (BCL), comprenant: - des moyens de détection d'impulsions d'activation (24), pour détecter des impulsions d'activation survenant sur la ligne de données du bus alors que la ligne d'horloge du bus est à un premier niveau logique; un premier registre à décalage (200-20m) cadencé par la ligne d'horloge du bus, ayant une entrée de données en série reliée à la ligne de données; un second registre à décalage (20m+1-20m+n) ayant une entrée de données en série reliée à la sortie de données en série du premier registre à décalage, et cadencé par la sortie d'une porte OU EXCLUSIF dont une entrée est reliée à la ligne d'horloge du bus et l'autre entrée reçoit un signal binaire de sélection (CD) - un commutateur de sortie (40) relié d'une part à la sortie de données en série du second registre à décalage et d'autre part à la ligne de données du bus; - des moyens d'identification de cycle de transfert (28,29,33), pour analyser le contenu du premier registre à décalage lorsqu'une impulsion d'activation est détectée de manière à identifier chaque cycle de transfert dont fait partie une impulsion d'activation détectée; - des registres d'écriture (18) adressables à partir d'une adresse d'écriture lue dans le premier registre à décalage lorsqu'un cycle d'écriture a été identifié, cycle d'écriture dans lequel le signal binaire de sélection est maintenu à 0, le commutateur de sortie est maintenu ouvert et la détection de l'impulsion d'activation est suivie par le transfert en parallèle du contenu du second registre à décalage dans le registre d'écriture désigné par l'adresse d'écriture; - des registres de lecture (19) adressables à partir d'une adresse de lecture lorsqu'un cycle de lecture a été identifié, cycle de lecture dans lequel la détection de l'impulsion d'activation est suivie par le transfert en parallèle d'une partie au moins du contenu du registre de lecture désigné par l'adresse de lecture dans le second registre à décalage et par le transfert en série du contenu du second registre à décalage vers le commutateur de sortie, transfert en série pendant lequel le signal binaire de sélection est mis à 1 et le commutateur de sortie est fermé; et - des moyens de gestion des cycles de lecture (30) pour obtenir l'adresse de lecture à partir du premier registre à décalage lorsqu'un cycle de lecture avec adressage a été identifié, et pour fournir une adresse de lecture préalablement déterminée (a) lorsqu'un cycle de lecture directe a été identifié. 11. Interface de bus série synchrone selon la revendication 10, dans laquelle l'adresse de lecture (a) fournie par les moyens de gestion des cycles de lecture (30) dans un cycle de lecture directe est une adresse fixe. 12. Interface de bus série synchrone selon la revendication 10, dans laquelle l'adresse de lecture (a) fournie par les moyens de gestion des cycles de lecture (30) dans un cycle de lecture directe est obtenue à partir du contenu d'un des registres d'écriture. 13. Interface de bus série synchrone selon la revendication 12, dans laquelle le nombre (p) de bits transférés vers le commutateur de sortie (40) dans un cycle de lecture directe est obtenu à partir du contenu d'un des registres d'écriture. 14. Interface de bus série synchrone selon l'une quelconque des revendications 10 à 13, dans laquelle au moins une valeur d'adresse est exclue dans les cycles de lecture avec adressage, et dans laquelle les moyens d'identification de cycle de transfert (28,29,33) examinent le contenu du premier registre à décalage (20o- m) lorsqu'une impulsion d'activation a été détectée afin d'identifier un cycle de lecture directe si le premier registre à décalage contient l'adresse exclue. 15. Interface de bus série synchrone selon la revendication 14, dans laquelle la synchronisation des transferts par l'unité principale (10) est telle que les transitions entre les bits transmis aient lieu alors que la ligne d'horloge (BCL) est à un second niveau logique complémentaire du premier niveau logique, et que la ligne d'horloge soit maintenue au premier niveau logique lorsqu'aucun cycle de transfert n'est effectué, et dans laquelle des moyens de filtrage (27,31) sont prévus pour écrire la valeur d'adresse exclue dans le premier registre à décalage (200-20m) en réponse à des changements de niveau logique non attribuables à une impulsion d'activation, survenant sur la ligne de données (BDA) pendant que la ligne d'horloge (BCL) est au premier niveau logique. 16. Interface de bus série synchrone selon la revendication 15, dans laquelle les moyens de filtrage (31) sont en outre agencés pour écrire la valeur d'adresse exclue dans le premier registre à décalage (200-20m) à la fin de chaque cycle d'écriture.