Brevet FR2852766A1 — publié le 20040924

L'invention concerne un procédé pour transférer des paquets de mots de données entre deux micro-contrôleurs synchronisés entre eux par un protocole de poignée de mains, ainsi qu'un dispositif mettant en oeuvre le procédé. On connaît du document US-5404374, un circuit intégré d'application spécifique (ASIC) servant d'interface de communication pour un équipement de communication sans fil dans lequel des paquets de mots de données, qui peuvent avoir des longueurs différentes, sont transférés par salve à travers deux couches de communication et en particulier à travers une couche de 10 liaison de données et une couche physique. Il est proposé un procédé pour transférer des paquets de mots de données entre deux micro-contrôleurs comme indiqué plus haut avec lequel des erreurs dans le transfert des mots de données peuvent être détectées et traitées facilement. A cet effet, l'invention concerne un procédé pour transférer des paquets de mots de données entre un circuit d'émission et un circuit de réception synchronisés entre eux par un protocole de poignée de mains, caractérisé en ce qu'il consiste à charger les paquets de mots de données provenant du circuit émetteur dans 20 une première mémoire FIFO dans laquelle le premier mot de données de chaque paquet de mots de données est identifié comme étant le début du paquet de mots de données, à vider la première mémoire FIFO mot par mot, au fur et à mesure du déroulement du protocole de poignée de mains, pour charger en alternance 25 l'une de deux secondes mémoires FIFO avec un paquet de mots de données, et à vider en alternance les secondes mémoires FIFO dans un ensemble de trois registres mémoire dans lesquels le circuit récepteur vient récupérer les mots de données, ces trois registres mémoire comprenant un premier registre mémoire destiné à recevoir le premier mot de données d'un paquet de mots de 30 données, un second registre mémoire destiné à recevoir le dernier mot de données du paquet de mots de données et un troisième registre mémoire destiné à recevoir les mots de données intermédiaires du paquet de mots de données. Avec le procédé selon l'invention, les paquets de mots de données peuvent 35 être transférés par salve. Dans le cas d'un défaut de transfert d'un paquet de mots de données contenu dans l'une des deux secondes mémoires FIFO, ce paquet de mots de données mal transféré peut être écarté par un simple basculement du fonctionnement en alternance des secondes mémoires FIFO. Par ailleurs, en utilisant une séquence spécifique de prélèvement des mots de données dans les trois registres mémoires, on force le circuit récepteur à suivre un fonctionnement particulier qui peut être facilement surveillé pour détecter 5 une erreur de transfert des mots de données. Les circuits récepteur et émetteur sont par exemple des microcontrôleurs. L'invention concerne également un circuit de mise en oeuvre du procédé, ainsi qu'un dispositif comprenant un circuit de mise en oeuvre. 10 D'autres caractéristiques et avantages du procédé selon l'invention apparaîtront encore à la lecture de la description qui suit d'un exemple de mise en oeuvre du procédé selon l'invention illustré par les dessins. La figure 1 montre de façon schématique l'architecture d'un circuit intégré 15 servant d'interface de communication entre deux microcontrôleurs à travers deux couches de communication. La figure 2 montre de façon plus détaillée l'architecture des mémoires FIFO pour la mise en oeuvre du procédé selon l'invention. Sur la figure 1, deux micro-contrôleurs 1 et 2 implémentés dans un circuit 20 intégré spécifique d'application par exemple, communiquent dans les deux sens à travers deux couches de communication, dans le cas présent une couche de liaison de données indiquée par DLC et une couche physique indiquée par PHY selon le modèle OSI. Les blocs 3A et 3B désignent le mécanisme de transfert de données du micro25 contrôleur 1 vers le micro-contrôleur 2 et les blocs 4A et 4B désignent le mécanisme de transfert de données du micro-contrôleur 2 vers le microcontrôleur 1. L'architecture et le fonctionnement des blocs 3A et 3B sont analogues à l'architecture et au fonctionnement des blocs 4A et 4B. La communication entre les deux micro-contrôleurs 1 et 2 à travers les blocs 3A-3B, 4A-4B est synchronisée par un mécanisme de poignée de mains connu en soi selon lequel un signal RTS est envoyé du micro-contrôleur émetteur vers le micro-contrôleur récepteur quand le premier est prêt à émettre des données D et un signal RTR est envoyé du micro-contrôleur récepteur vers le micro35 contrôleur émetteur quand le premier est prêt à recevoir les données D, ces données D étant transférées du micro-contrôleur émetteur vers le microcontrôleur récepteur pendant la coïncidence des deux signaux RTS et RTR. La figure 2 montre plus en détail l'architecture des blocs 3A et 3B. Pour transférer un paquet de mots de données comportant un certain nombre 5 de mots de données vers le micro-contrôleur 2 fonctionnant en récepteur dans la couche de communication physique PHY, le micro-contrôleur 1 fonctionnant en émetteur écrit le premier mot du paquet de mot de données dans un premier registre mémoire 5A et chaque mot suivant du paquet de mots de données dans un second registre mémoire 5B. A chaque accès dans l'un des registres mémoire 5A,5B, le micro-contrôleur 1 envoie un signal d'écriture W/Ad et l'adresse du registre mémoire 5A,5B concerné vers un mécanisme de contrôle 5 chargé de prélever à tour de rôle le contenu des deux registres 5A,5B. Dans la mesure o le premier mot de chaque paquet contient une information indicative de la longueur en mots du 15 paquet, le mécanisme de contrôle 5 est apte à détecter un défaut d'accès aux registres 5A et 5B par le micro-contrôleur 1 et en cas de détection d'un défaut d'accès aux registres mémoire 5A,5B, il envoie vers le micro-contrôleur 1 un signal d'erreur El pour forcer ce dernier à recommencer l'envoi du paquet de mots de données. Le mécanisme de contrôle 5 prélève les mots de données, un par un, dans les registres 5A et 5B dans l'ordre indiqué plus haut et les stocke dans une première mémoire FIFO 6 en associant au premier mot de chaque paquet de mots de données (chaque mot prélevé dans le registre mémoire 5A) une information identifiant le début d'un paquet de mots de données. Cette 25 information est symbolisée sur la figure 2 par le symbole 1 et peut être codée par un bit sur une colonne de la mémoire FIFO 6. Sur la figure 2, on a représenté dans la mémoire FIFO 6 un ensemble de mots de données constituant ici deux paquets de mots de données, le premier paquet contenant trois mots de données indiqués par MC2 et le second paquet 30 contenant quatre mots de données indiqués par MC3. La mémoire FIFO 6 a une taille suffisante pour contenir plusieurs paquets de mots de données, les paquets pouvant être de longueurs différentes. De la sorte, le micro-contrôleur 1 peut transférer par salve des paquets de mots de données dans la mémoire FIFO 6. Bien que cela ne soit pas représenté sur la figure 2, le mécanisme de contrôle 5 gère le remplissage de la mémoire FIFO 6 en relation avec les requêtes d'écriture envoyées par le micro-contrôleur 1 au fur et à mesure du déroulement du protocole de poignée de mains symbolisé par les signaux RTS 5 et RTR échangés entre le mécanisme 5 et un mécanisme de contrôle 7 du côté de la couche de communication physique PHY. Les mécanismes de contrôle 5 et 7 peuvent être implémentées par exemple sous la forme de machines d'état. Lorsqu'un mot de données est transféré vers le mécanisme de contrôle 7 avec 10 l'information indicative de début de paquet, il est stocké dans l'une de deux secondes mémoires FIFO 8A,8B fonctionnant en alternance. Chaque seconde mémoire FIFO 8A,8B a une taille égale à la longueur maximale d'un paquet de mots de données. Les deux mémoires FIFO 8A,8B sont donc chargées en alternance par le mécanisme de contrôle 7, le basculement du chargement 15 d'une seconde mémoire FIFO à l'autre étant déclenché par la détection dans le mécanisme, de contrôle 7 d'un mot de données signalé comme un début de paquet de mots de données. Sur la figure 2, on a représenté également dans les deux mémoires FIFO 8A, 8B les mots MC1 d'un paquet de mots de données et le mot unique MCO 20 d'un autre paquet de mots de données. Lorsque l'une des deux mémoires FIFO 8A,8B est chargée, le microcontrôleur récepteur 2 vient lire les mots de données successivement dans l'un des trois registres mémoire 7A,7B,7C de la manière suivante. Le premier mot d'un paquet de mots de données est lu dans le registre 25 mémoire 7A, le dernier mot du paquet de mots de données est lu dans le registre mémoire 7C et les mots intermédiaires du paquet de mots de données sont lus dans le registre mémoire 7B. A chaque accès en lecture d'un des registres mémoire 7A,7B,7C, le microcontrôleur 2 envoie un signal de lecture R/Ad avec l'adresse du registre 30 mémoire 7A-7C concerné au mécanisme de contrôle 7. Comme indiqué plus haut, dans la mesure o le premier mot de chaque paquet de mots de données est transféré vers le mécanisme de contrôle 7 avec l'information indicative d'un début de paquet, le mécanisme 7 est apte à alterner le chargement des mémoires FIFO 8A,8B. Par ailleurs, comme le premier mot stocké dans chaque mémoire FIFO 8A,8B est le premier mot d'un paquet de mot de données et qu'il contient l'information indicative de la longueur du paquet, il est présenté chaque fois par le mécanisme de contrôle 7 dans le registre mémoire 7A au microcontrôleur 2. 5 Les mots suivants du paquet de mots de données sont présentés à tour de rôle dans le registre mémoire 7B au micro-contrôleur et le dernier mot du paquet de mots de données est présenté dans le registre 7C au micro-contrôleur 2. Dans le cas o le mécanisme de contrôle 7 détecte un défaut d'accès aux registres mémoires 7A-7C par le micro-contrôleur 2, sur la base du contrôle du signal de 10 lecture et d'adresse R/Ad, il envoie un signal d'erreur E2 au micro-contrôleur 2. Le paquet courant de mots de données mal transféré peut être écarté dans le micro-contrôleur 2 tandis qu'un simple basculement du fonctionnement en alternance des secondes mémoires FIFO permet de poursuivre le processus de transfert des paquets de mots de données. Ce mécanisme pour transférer par salve des paquets de mots de données de longueur variable peut s'appliquer au transfert de commandes entre les deux micro-contrôleurs, chaque commande se présentant sous la forme d'un paquet de mots de données. REVENDICATIONS 1/ Un procédé pour transférer des paquets de mots de données entre un circuit émetteur et un circuit récepteur (1,2) synchronisés entre eux par un protocole de poignée de mains (RTS,RTR), caractérisé en ce qu'il comporte les étapes: de chargement les paquets de mots de données provenant du circuit émetteur (1) dans une première mémoire FIFO (6) dans laquelle le premier mot de données de chaque paquet de mots de données est identifié comme étant le début du paquet de mots de données, de vidage la première mémoire FIFO mot par mot, au fur et à mesure du déroulement du protocole de poignée de mains, pour charger en alternance l'une de deux secondes mémoires FIFO (8A,8B) avec un paquet de mots de données, de vidage en alternance les secondes mémoires FIFO dans un ensemble de 15 trois registres mémoire dans lesquels le circuit récepteur (2) vient récupérer les mots de données, ces trois registres mémoire comprenant un premier registre mémoire (7A) destiné à recevoir le premier mot de données d'un paquet de mots de données, un second registre mémoire (7B) destiné à recevoir le dernier mot de données du paquet de mots de données et un troisième registre 20 mémoire (7C) destiné à recevoir les mots de données intermédiaires du paquet de mots de données. 2/ Le procédé selon la revendication 1, dans lequel la première mémoire FIFO (6) est chargé à partir de deux registres mémoire comprenant un premier 25 registre mémoire (5A) destiné à recevoir le premier mot d'un paquet de mots de données et un second registre mémoire (5B) destiné à recevoir les autres mots du paquet de mots de données. 3/ Circuit intégré d'application spécifique servant d'interface de communication 30 dans un équipement de communication sans fil pour un réseau de communication domestique, caractérisé en ce qu'il est conçu pour la mise en oeuvre du procédé selon l'une des revendications 1 ou 2. 4/ Dispositif de communication caractérisé en ce qu'il comporte un circuit 35 émetteur (1) et un circuit récepteur (2) synchronisés par un protocole de poignée de mains, une première mémoire queue (6) pour écriture par le circuit émetteur des mots d'un paquet à transmettre, la mémoire comportant des moyens pour identifier le premier mot d'un paquet, une seconde et troisième mémoire queue (8A, 8B), pour recevoir en alternance des paquets extraits de la première mémoire queue. 5/ Dispositif selon la revendication 4, caractérisé en ce qu'il comporte en outre deux emplacements mémoire (5A, 5B) destinés respectivement à contenir le premier mot et les mots suivants d'un paquet de données à transférer entre le circuit émetteur (1) et la première mémoire queue (6). 10 6/ Dispositif selon l'une des revendications 4 ou 5, caractérisé en ce qu'il comporte en outre trois emplacements mémoire (7A, 7B, 7C) destinés respectivement à contenir le premier mot, les mots intermédiaires et le dernier mot d'un paquet lu dans respectivement l'une des seconde et troisième 15 mémoire queue (8A, 8B). 7/ Dispositif selon l'une des revendications 4 à 6, caractérisé en ce qu'il comprend en outre deux circuits (5, 7) de contrôle du protocole de poignée de main, respectivement côté circuit émetteur et circuit récepteur. 20