Brevet FR2761555A1 — publié le 19981002

B239.DOC La présente invention concerne la domotique et plus particulièrement la gestion des protocoles d'échange dans un dispositif électronique entre un appareil électrique alimenté par un réseau d'énergie électrique et un système de communication par courant porteur sur le réseau d'énergie électrique. Les réseaux domotiques utilisent une liaison par courant porteur sur les lignes d'alimentation électrique et on prévoit pour chaque appareil relié au réseau un dispositif électronique o0 de communication, généralement intégré dans l'appareil, qui est relié à la ligne d'alimentation électrique et qui régit les échanges entre le réseau par courant porteur et les appareils de l'utilisateur. Un tel dispositif électronique est représenté schémati- quement sur la figure 1. Il est relié par une prise 10 au réseau d'alimentation électrique et il comporte successivement un circuit d'interface de ligne 12, un modem 14 et un microcontrôleur 16 qui sont alimentés par un circuit d'alimen- tation commun 18. Le modem 14 est piloté par une horloge 20 qui est aussi utilisée pour piloter le microcontrôleur 16. Le circuit d'interface de ligne effectue le filtrage de la tension du réseau pour en extraire des signaux analogiques de fréquence qui sont gérés par le modem pour réaliser une modulation, une démodulation et une détection de porteuse. Ce modem effectue une gestion pour chaque bit reçu ou transmis à un débit de 2400 bits par seconde conformément à la procédure normalisée pour le réseau domotique européen "EHS" qui est décrit en particulier dans le l'ouvrage "La domotique appliquée" de messieurs, A. Kung, B. Jean-Bart, O. Marbach et S. Sauvage publié par International Thomson Publishing France (ISBN 2-84180-055-5). La transmission des commandes par le réseau consiste à envoyer des triplets "objet-service-données". Dans le cas o B239.DOC l'appareil commandé est un capteur de température, par exemple, les trois éléments du triplet sont "température- écriture-valeur". Le microcontrôleur interagit avec le modem pour chaque bit transmis ou reçu à un rythme correspondant au débit du protocole, c'est-à-dire une période de 416,7 microsecondes comme cela est illustré sur la figure 2. Il comprend une partie logicielle libre réservée à l'application de l'appareil et qui est généralement élaborée par le fabricant de l'appareil. Conformément à la procédure normalisée pour le réseau domotique européen EHS, on réalise, dans le logiciel de traitement des interruptions engendrées par la réception ou l'émission d'un bit, un contrôle de redondance cyclique (CRC) et une autocorrection des erreurs (FEC) sur les informations i5 numériques transmises. L'autocorrection des erreurs FEC est une fonctionnalité de correction automatique sur les informations numériques transmises qui utilise le polynôme de correction (xs + x5 + x4 + x3 +1) qui permet, en encodant un octet de 8 bits sur 14 bits, de corriger jusqu'à trois bits successifs erronés. Selon la spécification du réseau domotique européen EHS, il faut transmettre en fait le complément à 1 du signal d'autocorrection FEC. Si, par exemple, le FEC de O est 000000, le complément est 111111. Le contrôle de redondance cyclique CRC est une fonctionnalité de détection d'erreurs de transmission qui utilise le polynôme (x16 + X15 + x2 + 1). Dans ce cas, le contrôle de redondance cyclique se traduit par un champ complémentaire de 16 bits qui accompagne la transmission d'une trame sur le réseau. Le contrôle de redondance cyclique CRC est une fonction du reste de la trame après la division par le polynôme générateur; il se calcule de manière incrémentale pour chaque octet transmis. B239.DOC 2761555 Ces deux calculs de l'autocorrection des erreurs et du contrôle de redondance cyclique sont généralement réalisés sous forme câblée en utilisant un circuit spécifique comportant par exemple huit couches de portes. Le coût d'un tel circuit spécifique est important parce qu'il nécessite en plus une logique de gestion des octets et il augmente notablement le prix du dispositif électronique de communication qui est fourni par le fabricant de l'appareil commandé. Par ailleurs, il est souhaitable d'utiliser des 0o microcontrôleurs de prix réduit pour réduire le coût du dispositif électronique de communication. Or, le prix des microcontrôleurs croît rapidement avec la taille de leurs mémoires. Par exemple, si on augmente la taille des mémoires morte et vive, on augmente également le nombre de connexions du circuit intégré et sa surface, ce qui entraîne une augmentation importante du prix. Le prix des microcontrôleurs croît également en fonction de la cadence de fonctionnement. Par exemple, lorsque l'on passe à des cadences supérieures à 12 MHz, le prix du microcontrôleur augmente fortement. Le fabricant de l'appareil doit, pour chaque appareil, élaborer la partie logicielle libre réservée à l'application à l'appareil considéré. Cette opération d'adaptation n'est pas aisée et elle grève aussi le coût du dispositif électronique de communication. Le problème à la base de l'invention est de fournir un dispositif électronique de communication dont le coût global est réduit et qui est facile à réaliser pour le fabricant de l'appareil. A cet effet, la présente invention a pour objet un procédé de gestion des protocoles d'échange dans un dispositif électronique de communication entre un appareil électrique alimenté par un réseau d'énergie électrique et un système de B239.DOC 2761555 communication par courant porteur sur ledit réseau d'énergie électrique, ledit dispositif comportant un microcontrôleur, comprenant une partie logicielle libre (H) réservée à l'application à l'appareil, et un modem, procédé dans lequel on réalise, entre les interruptions engendrées par la réception ou l'émission d'un bit, un contrôle de redondance cyclique (CRC) et une autocorrection des erreurs (FEC) sur les informations numériques transmises, caractérisé en ce que l'on utilise un microcontrôleur de capacité mémoire réduite, dont la mémoire io morte est inférieure ou égale à 8 kilo-octets, et de faible cadence de fonctionnement, en ce que le contrôle de redondance cyclique et l'autocorrection des erreurs sont réalisés sous la commande d'un logiciel de gestion des protocoles comportant une procédure d'interruptions et une procédure d'application, en ce que le calcul de l'autocorrection des erreurs en transmission et en réception est effectué en utilisant des tables de constantes dont la taille est toujours inférieure à 256 octets et en ce que le calcul du contrôle de redondance cyclique est réalisé à chaque octet reçu en utilisant des tables dont la taille est toujours inférieure à 256 octets. Le fait d'effectuer le contrôle de redondance cyclique et l'autocorrection des erreurs sous la commande d'un logiciel permet d'éliminer un circuit câblé et de diminuer le prix de revient. La procédure particulière du calcul du contrôle de redondance cyclique et de l'autocorrection des erreurs permet d'utiliser un microcontrôleur dont la taille mémoire est réduite. Par ailleurs, le fait que la cadence de fonctionnement du microcontrôleur est faible permet de réduire son coût. Selon un mode de réalisation de l'invention, le calcul de l'autocorrection des erreurs et le calcul du contrôle de B239.DOC 2761555 2 76155 5 redondance cyclique sont réalisés séparément, chacun dans une interruption différente. Cela permet d'utiliser une cadence de fonctionnement plus réduite. Selon encore une autre caractéristique de l'invention, la gestion du protocole de communications est réalisée au moyen d'un langage orienté objet. Ceci permet de limiter les besoins en mémoire morte et présente l'avantage de la portabilité, c'est-à-dire que le code io obtenu est plus stable et l'ajout d'un objet supplémentaire ne nécessite pas d'extension de ce code. De ce fait, les fabricants d'appareils peuvent se procurer un dispositif électronique de communication de type standard qui peut être facilement adapté à l'appareil considéré par modification d'une table sans modification du logiciel. Selon encore une autre caractéristique de l'invention, la gestion du protocole de communications est réalisée par le logiciel de gestion des protocoles sans utiliser de tampons en traitant les données à la volée et en les signalant au logiciel de l'application. Cette disposition permet de limiter les besoins en mémoire vive du microcontrôleur et d'utiliser des trames de longueur quelconque. Selon un mode de réalisation de l'invention, cette signalisation est réalisée par appel direct d'une procédure de l'application par la procédure de communication pendant une routine d'interruption. Selon un autre mode de réalisation de l'invention, cette signalisation est réalisée par mise à jour, par la procédure de communication d'un drapeau qui sera exploité par la procédure d'application. Selon encore une autre caractéristique de l'invention, le microcontrôleur travaille à une cadence faible. B239.DOC Ceci permet de réduire le coût du microcontrôleur et, également, de simplifier le circuit d'alimentation du microcontrôleur, ce qui réduit encore le coût global du dispositif électronique de communication. L'invention a aussi pour objet un microcontrôleur destiné à être intégré dans un dispositif électronique de communication entre un appareil électrique alimenté par un réseau d'énergie électrique et un système de communication par courant porteur sur le réseau d'énergie électrique, io caractérisé en ce qu'il comprend une mémoire morte dans laquelle est stocké un logiciel de gestion des protocoles d'échange réalisant le procédé selon l'invention. Avantageusement, le microcontrôleur est piloté par l'horloge du modem par l'intermédiaire d'un diviseur de fréquence. Ceci permet d'utiliser un microcontrôleur travaillant à une cadence plus faible que le modem tout en utilisant l'horloge de ce dernier. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit pour la compréhension de laquelle on se reportera aux dessins annexés dans lesquels: - la figure 1 représente schématiquement un dispositif électronique de communication selon l'invention; - la figure 2 est un chronogramme illustrant le débit de la transmission par le modem; - la figure 3 est un chronogramme de la gestion des protocoles; et - la figure 4 représente schématiquement le microcontrôleur. Le microcontrôleur 16 du dispositif électronique de communication représenté sur la figure 1 est un microcontrôleur de taille mémoire réduite et travaillant à une B239.DOC 2761555 cadence faible. Il peut, par exemple, être constitué par un microcontrôleur de type 8 bits comprenant 8 kilo-octets de mémoire morte et 128 octets de mémoire vive, tel que celui commercialisé sous la référence 8032 par la société INTEL. Le modem 14 est, par exemple, le circuit commercialisé sous la référence ST7537 par la société SGS-Thomson. L'horloge du modem 20 est constituée par un oscillateur à quartz dont la fréquence est de 11,0592 MHz qui pilote également le microcontrôleur 16. io Comme on peut le voir sur la figure 1, on peut intercaler un diviseur de fréquence 22 entre l'horloge 20 et le microcontrôleur 16 de manière à faire travailler ce dernier à une cadence plus faible afin d'utiliser un microcontrôleur moins cher et de simplifier le circuit d'alimentation 18. La figure 4 est une représentation schématique du microcontrôleur 16. Dans sa mémoire morte sont enregistrés deux éléments logiciels, une partie logicielle libre H qui est réservée à l'application, c'est-à-dire à l'appareil concerné - par exemple un détecteur de température - et une partie logicielle G fournissant les fonctionnalités de gestion des protocoles. Conformément à l'invention, I'autocorrection des erreurs (FEC) et le contrôle de redondance cyclique (CRC) sont réalisés sous forme logicielle et non câblée par le logiciel de gestion des protocoles qui comporte deux procédures logicielles, G1 et G2. Comme on peut le voir sur la figure 3, la procédure d'interruptions G1 est appelée lors des interruptions fournies par le modem 14 selon une période de 416,7 microsecondes correspondant au débit de la transmission par courant porteur (2400 bits par seconde). La procédure d'application G2 est appelée par l'application (partie logicielle libre H) entre les interruptions correspondant aux bits i-1 et i. La procédure G2 est B239.DOC interrompue par les appels à la procédure G1 correspondant aux bits i et i+1. Dans le dispositif selon l'invention, les calculs du contrôle de redondance cyclique et de l'autocorrection des erreurs sont effectués au niveau de la procédure G1. Ces fonctionnalités doivent être réalisées de manière cadencée, tous les 14 bits pour l'autocorrection des erreurs et pour toutes les trames pour le contrôle de redondance cyclique. Le fait de ne pas exécuter ces fonctionnalités au niveau de la procédure logique G2 permet de relâcher les contraintes d'appel de la procédure G2. En particulier, il n'est pas nécessaire d'appeler la procédure G2 pour chaque bit. Selon une variante, le calcul de l'autocorrection des erreurs et celui du contrôle de redondance cyclique ne sont pas réalisés pendant la même interruption. La fonctionnalité de l'autocorrection des erreurs comporte deux phases. Pendant la transmission, on calcule les 6 bits supplémentaires pour chaque octet à partir du générateur polynomial X6 + x5 + X4 + X3 + 1. On met dans le champ de contrôle le complément à 2 de la valeur calculée afin qu'un octet de valeur 0 soit encodé par une valeur non nulle. Chaque octet est encodé par une valeur de 14 bits. Dans le cas o les quatorze bits reçus ne sont pas cohérents, on applique une procédure de correction. De cette manière, on peut corriger jusqu'à trois bits faux consécutifs. Afin, d'une part, d'exécuter la fonction de FEC dans une routine d'interruption et, d'autre part, d'utiliser une configura- tion avec une taille maximale de 8 kilo-octets pour la mémoire morte, il est nécessaire de concilier les impératifs de taille et d'unité centrale. Conformément à l'invention, le calcul de l'autocorrection des erreurs en transmission et en réception est en utilisant des tables dont la taille est limitée à 256 octets. Ceci peut être B239.DOC 2761555 réalisé en effectuant des calculs simples dont la durée maximale est de 30 microsecondes, dans le cas d'un microcotrôleur de type 8051 travaillant à 11,05 MHz par exemple. A la transmission, on peut utiliser plusieurs procédures. Selon un premier mode de réalisation, (procédure P1), on effectue une division polynomiale. A la transmission, les 6 bits de l'autocorrection des erreurs sont calés à droite dans l'octet de résultat, ce qui se traduit de la manière suivante en io langage de programmation C { unsigned char i, fec; fec = 0; for (i = 0; i B239.DOC 2761555 de O à 63 et les chaînes d'autocorrection des erreurs de xxOOOOOO o xx varie de O à 3 et on calcule les chaînes d'autocorrection des erreurs en deux parties. A la transmission, ceci s'écrit de la manière suivante en langage C: /* FEC complémenté à 1, calé à gauche */ code unsigned char cTable Fec64[]={ Oxfc, 0x18, Oxdo, 0x34, Oxa4, 0x40, 0x88, Ox6c, Ox4c, Oxa8, 0x60, 0x84, 0x14, OxfO, 0x38, Oxdc, io Ox78, Ox9c, 0x54, OxbO, 0x20, Oxc4, OxOc, Oxe8, Oxc8, Ox2c, Oxe4, OxOO, 0x90, 0x74, Oxbc, 0x58, Oxl0, Oxf4, Ox3c, Oxd8, 0x48, Oxac, 0x64, 0x80, OxaO, 0x44, Ox8c, 0x68, Oxf8, Oxlc, Oxd4, 0x30, 0x94, 0x70, Oxb8, Ox5c, Oxcc, 0x28, OxeO, 0x04, O0x24, OxcO, 0x08, Oxec, Ox7c, 0x98, 0x50, Oxb4 }; code unsigned char XOR_Table[] = { O, 0x79, Ox8B, OxF2} unsigned char ComputeFEC(unsigned char Data) { return (cTableFec64[Data ^ XOR_Table[Data>>6]]; } Selon encore un autre mode de réalisation (procédure P7), on utilise deux tables de 16 octets encodant les chaînes d'autocorrection des erreurs de O à 15 puis de xxxxOOOO o x varie de O à 15 et on calcule les chaînes d'autocorrection des erreurs en deux parties. Ceci se traduit à la transmission par /* FEC complémenté à 1, calé à gauche */ /* FEC de OxOO à OxOF */ code unsigned char cTableLowFEC16[]={ Oxfc, 0x18, Oxdo,0x34, Oxa4, 0x40, 0x88, Ox6c, Ox4c, Oxa8, 0x60, 0x84, 0x14, OxfO, 0x38, Oxdc B239.DOC 2761555 Il /* FEC de OxOO à OxFO */ code unsigned char cTableHighFEC16[16] unsigned char ComputeFEC(unsigned char Data) { return (cTableLowFEC16[Data & OxOF] cTableHighFEC16 [Data >> 4]) } syndrome = cTableFec64[ReceivedByte A XOR_Table [ReceivedByte>>6]]; return (ReceivedByte ^ FECMaskTable[syndrome]) I A la réception, on peut utiliser différentes procédures. Selon un premier mode de réalisation (procédure P2)on effectue une itération par bit reçu, au lieu d'attendre la réception des 14 bits, soit, en langage C unsigned char FECMaskTable [] = { OxOO, 0x08, OxlO, 0x18, 0x20, 0x28, 0x30, 0x38, 0x40, OxOO, 0x50, OxOO, 0x60, OxOO, 0x70, Ox01, 0x80, 0x03, OxOO, OxOO, OxaO, Ox01, OxOO, OxOO, 0xcO, 0xOO, Ox00, Ox00, OxeO, OxOO, 0x02, OxOa, OxOO, OxOO, 0x06, OxOe, OxOO, 0x02, OxOO, OxOO, OxOO, OxOO, 0x03, OxOO, OxOO, 0x07, Ox01, OxOO, OxOO, OxOO, OxOO, 0x05, Ox01, x0 OO, OxOO, OxOO, OxOO, OxOO, OxOO, OxOO, 0x04, OxOc, 0x14, Oxlc }; unsigned char bitnumber unsigned char receivedbyte unsigned int syndrome; unsigned char FECDecode (unsigned char receivedbit) { if (bitnumber ≤ 8) if (bitnumber == {) if (bitnumber == 0) B239.DOC syndrome = receivedbyte = 0; receivedbyte B239.DOC 2761555 unsigned char FECDecode(unsigned char ReceivedByte, ReceivedFEC) { unsigned char syndrome = ReceivedFEC A 0x3F syndrome = cTableFec64[ReceivedByte ^ XOR_Table [ReceivedByte>>6]]; return (ReceivedByte ^ FECMaskTable[syndrome]) } A la réception, selon encore un autre mode réalisation o0 (procédure P8), on obtient: /* ReceivedByte et ReceivedFEC contiennent les 8 bits de données et les 6 bits de FEC calés à droite *1 unsigned char FECDecode(unsigned char ReceivedByte, ReceivedFEC) { unsigned syndrome = ReceivedFEC AO^0x3F syndrome = cTableLowFEC16[ReceivedByte&OxOF] ^ cTableHighFEC16[ReceivedByte >> 4]) return (ReceivedByte ^ FECMaskTable[syndrome]) } On combine à chaque fois une procédure de transmission et une procédure de réception parmi les procédures décrites ci-dessus. De préférence, pour obtenir un bon compromis entre la taille de la mémoire et le temps d'unité centrale, on utilise les combinaisons des procédures P1 et P2, P3 et P4, P5 et P6 et P7 et P8. Ces différentes procédures nécessitent respectivement 256, 68 et 32 octets de données et en temps d'unité centrale, aucune procédure ne nécessite plus de 30 microsecondes pour le microcontrôleur référencé 8051 de la société INTEL à une fréquence de 11,0592 MHz. Le calcul du contrôle de redondance cyclique peut être réalisé de plusieurs manières toujours pour concilier les B239.DOC 2761555 impératifs de taille mémoire et de temps d'unité centrale. Le contrôle de redondance cyclique d'une trame est le reste de la division polynomiale de la trame par le polynôme générateur X16 + X15 + X2 +1 Ce calcul du contrôle de redondance cyclique peut être effectué à chaque octet reçu en utilisant une table de 256 octets qui contient les huit monômes de poids faibles du nouveau contrôle de redondance cyclique ceci se traduit en langage C de la manière suivante o code unsigned int Table3[256]; unsigned char ReceivedByte3 unsigned int CRC3; void ComputeCRC(void) { unsigned char Data = ReceivedByte3 ^ (CRC3 >> 8); /* B+A1 */ CRC3 = (CRC3 " >4] ^ Vparity2[Data & OxOF]); unsigned char ReceivedByte2 unsigned int CRC2; void Compute CRC(void) { unsigned char Data = ReceivedByte2 ^ (CRC2 >> 8); /* B+A1 */ B239.DOC CRC2 = ((Data ^ (Data 0) msb = 1; else msb = 0; CRC4 if (msb ^ newbit) CRC4 ^= 0x8005 } Les spécifications du réseau européen EHS modélisent la communication entre les applications par la notion de langage de commande qui exprime des demandes de service appliquées à des objets, par exemple application du service "lecture" sur l'objet "température". Les logiciels G et H doivent faire le tri au niveau des sous-unités et des objets. Le logiciel généralement utilisé à cet effet génère des besoins considérables en emplacement de B239.DOC 2761555 mémoire morte. Pour éviter cet inconvénient, conformément à l'invention, on utilise un langage orienté objet. On déclare une liste des procédures de traitement de service et on remplace les procédures "traiter message " et "traiter sous-unité par une table en mémoire morte, ce qui permet un gain important en taille de la mémoire morte. Par ailleurs, le code obtenu pour l'implémentation du protocole est plus facile à faire évoluer car, dans ce cas, on modifie la table et non pas le programme et ceci permet o d'obtenir une portabilité puisque l'addition d'un objet supplémentaire ne nécessite pas d'extension de ce code. Par conséquent, les utilisateurs peuvent facilement ajouter des objets en modifiant simplement la table. La gestion d'un protocole de communication nécessite i5 la gestion de tampons de communication qui servent à stocker les données numériques à transmettre ou à recevoir. La taille de ces tampons est incompatible avec les contraintes de taille de la mémoire vive si l'on veut utiliser un microcontrôleur de faible prix. Par exemple, si l'on veut transmettre une trame de 64 octets, il faut un réserver un tampon de cette taille. Selon une variante de l'invention, on évite l'utilisation de tampons, ce qui est une gestion particulière avec le logiciel de l'application puisque le logiciel de communication doit signaler la réception de données à l'application avant d'avoir eu l'assurance de l'intégrité des données reçues par le contrôle de redondance cyclique qui n'est reçu qu'à la fin de la réception. A cet effet, à la réception des octets d'une trame, la procédure logicielle d'interruption G1 traite les données à la volée, et les signale au logiciel d'application H lorsqu'il s'agit de données d'application. Cette signalisation peut se faire par appel par la procédure logicielle d'interruption G1 d'une procédure de B239.DOC 2761555 l'application (call-back). Ceci signifie que cette procédure s'exécute dans une routine d'interruption et doit donc respecter la contrainte des 416 microsecondes. Selon une variante, la procédure logicielle d'interruption G1 met à jour un drapeau qui sera exploité par la procédure logicielle d'application G2, c'est-à-dire que la prochaine fois que l'application appelle la procédure logicielle d'application G2, celle-ci effectuera cette procédure de call-back. A la réception du contrôle de redondance cyclique de la trame, si ce dernier est correct, la procédure logicielle d'interruption G1 signale que la trame est correcte et la signalisation s'effectue comme précédemment. L'avantage de ce traitement à la volée est non seulement de permettre d'utiliser un microcontrôleur ne comportant que 128 octets de mémoire vivre, mais aussi de permettre d'avoir des trames de longueur quelconque. B239.DOC 2761555 REVENDICATIONS 1. Procédé de gestion des protocoles d'échange dans un dispositif électronique de communication entre un appareil s électrique alimenté par un réseau d'énergie électrique et un système de communication par courant porteur sur ledit réseau d'énergie électrique, ledit dispositif comportant un microcontrôleur (16), comprenant une partie logicielle libre (H) réservée à l'application à l'appareil, et un modem (14), 0o procédé dans lequel on réalise, entre les interruptions engendrées par la réception ou l'émission d'un bit, un contrôle de redondance cyclique (CRC) et une autocorrection des erreurs (FEC) sur les informations numériques transmises, caractérisé en ce que l'on utilise un microcontrôleur (16) de capacité mémoire réduite, dont la mémoire morte est inférieure ou égale à 8 kilo-octets, en ce que le contrôle de redondance cyclique (CRC) et l'autocorrection des erreurs (FEC) sont réalisés sous la commande d'un logiciel de gestion des protocoles (G) comportant une procédure d'interruptions (G1) et une procédure d'application (G2), en ce que le calcul de l'autocorrection des erreurs (FEC) en transmission et en réception est effectué en utilisant des tables de constantes dont la taille est toujours inférieure à à 256 octets et en ce que le calcul du contrôle de redondance cyclique (CRC) est réalisé à chaque octet reçu en utilisant des tables dont la taille est toujours inférieure à à 256 octets. 2. Procédé selon la revendication 1, caractérisé en ce que le calcul de l'autocorrection des erreurs et le calcul du contrôle de redondance cyclique sont réalisés séparément, chacun dans une interruption différente. 3. Procédé selon la revendication 1, caractérisé en ce que, en transmission, les 6 bits de l'autocorrection des erreurs sont calés à droite dans l'octet de résultat, en ce que, en B239.DOC 2761555 réception, la trame comporte les 14 bits calés à droite et en ce que, en réception, on effectue une itération par bit reçu sans attendre la réception des 14 bits. 4. Procédé selon la revendication 1, caractérisé en ce que l'on utilise une table de 64 octets et une table de 4 octets encodant les chaînes d'autocorrection des erreurs de 0 à 63 et les chaînes d'autocorrection des erreurs de xxOO00000 o xx varie de 0 à 3 et on calcule les chaînes d'autocorrection des erreurs en deux parties. 5. Procédé selon la revendication 1, caractérisé en ce que l'on utilise deux tables de 16 octets encodant les chaînes d'autocorrection des erreurs de 0 à 15 puis de xxxxO000 o x varie de 0 à 15 et en ce que l'on calcule les chaînes d'autocorrection des erreurs en deux parties. 6. Procédé selon la revendication 1, caractérisé en ce que le calcul du contrôle de redondance cyclique est effectué à chaque octet reçu en utilisant une table de 256 octets. 7. Procédé selon la revendication 1, caractérisé en ce que le calcul du contrôle de redondance cyclique est effectué à chaque octet reçu en utilisant la parité, sans table. 8. Procédé selon la revendication 1, caractérisé en ce que le calcul du contrôle de redondance cyclique est effectué à chaque bit reçu, en réalisant un traitement bit à bit avec un octet de retard, sans table. 9. Procédé selon la revendication 1, caractérisé en ce que la gestion du protocole de communications est réalisée au moyen d'un langage orienté objet. 10. Procédé selon la revendication 1, caractérisé en ce que la gestion du protocole de communications est réalisée par le logiciel de gestion des protocoles (G) sans utiliser de tampons en traitant les données à la volée et en les signalant au logiciel de l'application (H). B239DOC 11. Procédé selon la revendication 10, caractérisé en ce que la signalisation est réalisée par appel direct d'une procédure de l'application (H) par la procédure de communication (G1) pendant une routine d'interruption. 12. Procédé selon la revendication 10, caractérisé en ce que la signalisation est réalisée par mise à jour, par la procédure de communication (G1) d'un drapeau qui sera exploité par la procédure d'application (G2). 13. Procédé selon la revendication 1, caractérisé en ce io que le microcontrôleur travaille à une cadence faible. 14. Microcontrôleur (16) destiné à être intégré dans un dispositif électronique de communication entre un appareil électrique alimenté par un réseau d'énergie électrique et un système de communication par courant porteur sur ledit réseau d'énergie électrique, caractérisé en ce qu'il comprend une mémoire morte dans laquelle est stocké un logiciel de gestion des protocoles d'échange réalisant un procédé selon l'une des revendications précédentes. 15. Microcontrôleur selon la revendication 14, caractérisé en ce qu'il est piloté par l'horloge (20) du modem (14) par l'intermédiaire d'un diviseur de fréquence (22).