Brevet FR2873532A1 — publié le 20060127

Procédé de codage et de décodage d'une séquence d'éléments, signal, codeur, décodeur, programmes d'ordinateur et moyens de stockage correspondants. 1. Domaine de l'invention La présente invention se rapporte au domaine des télécommunications. Plus précisément, l'invention propose un nouveau procédé de codage et de décodage pour une transmission de données à haut débit, notamment dans un environnement domestique ou bureautique. 2. Description de l'art antérieur. Pour des applications de transmission de données en environnement intérieur et extérieur, certaines contraintes doivent être respectées pendant la phase d'émission et de transmission des données, limitant notamment le spectre de rayonnement. Ces contraintes s'appliquent particulièrement aux transmissions en environnement domestique ou bureautique. Ainsi, conformément aux normes de compatibilité électromagnétique en vigueur, le spectre de rayonnement doit satisfaire un gabarit limitant les rayonnements au-delà de 30MHz. Certains procédés de codage sont utilisés pour les transmissions de données en environnement intra-bâtiment, permettant notamment de limiter les rayonnements au-delà de 30MHz, tout en fournissant un débit élevé. Ainsi un premier codage, le codage MLT3, de l'anglais MulTiLevel 3 pour multi niveaux , décrit plus particulièrement dans la norme IEEE802.3, est utilisé, par exemple dans les interfaces de type 100BaseT. Dans ce codage, les bits de valeur 1' correspondent à une transition, tandis que les bits de valeur 0' correspondent à une absence de transition. Ainsi, seuls les bits égaux à '1' font changer le signal d'état. Ils sont codés successivement sur 3 états, comme par exemple V, 0, +V. Les bits de valeur 0' sont quant à eux codés en conservant la valeur précédemment transmise. Le principal avantage du codage MLT3 est de diminuer fortement la fréquence nécessaire pour un débit donné grâce à l'utilisation de 3 états. Par 17. exemple, pour un débit voisin de 100Mbit/s, la fréquence parasite maximale du signal est d'environ 25MHz. Un inconvénient majeur de ce code provient des longues séquences de bits égaux à 0' apparaissant dans ce code et pouvant entraîner une perte ou un déphasage de l'horloge du récepteur. Pour remédier à ce problème, les données codées sont brassées avant d'être transmises, ce qui diminue les améliorations apportées par ce code. Par ailleurs, la distance de Hamming entre les mots de code valides étant très faible (égale à un), les erreurs de transmission sont facilitées, des erreurs pouvant intervenir soit au niveau du codage, soit au niveau du brassage. On risque alors d'accepter des mots de code non valides ou de rejeter des mots de code valides. Finalement, ce code permet difficilement de contrôler le spectre de rayonnement, et ne présente pas de propriétés de détection ou de correction d'erreurs particulièrement intéressantes. D'autres procédés de codage permettant d'obtenir un spectre de rayonnement respectant en partie la limitation des rayonnements au-delà de 30MHz sont aussi envisagés selon l'art antérieur. Ces procédés de codage permettent d'annuler, en moyenne ou pour chaque symbole transmis, la composante continue des données à transmettre. L'annulation de cette composante continue (encore appelée DC balancing en anglais pour composante continue équilibrée ) permet d'obtenir un spectre de rayonnement respectant en partie un gabarit imposé par des normes d'émission intra-bâtiment, limitant les rayonnements au-delà de 30MHz. Un tel procédé est, par exemple, le codage de Widmer et Franaszek (A. X. Widmer and P.A. Franaszek, IBM Journal of Research and Development, Vol. 27 no. 5, p.440, September 1983), utilisé dans la norme IEEE 1394b. Ce codage permet d'obtenir des mots de 10 bits à partir de mots de 8 bits, en utilisant une technique de DC balancing . Cette technique permet d'annuler la composante continue en moyenne, et non pas sur chaque symbole transmis. Cependant, elle présente l'inconvénient d'autoriser les transitions successives. Il en résulte un rayonnement non négligeable au-delà de 30MHz. Le spectre ne satisfait pas alors entièrement au gabarit spécifié dans les normes d'émission de fréquences. Ce code ne répond donc qu'en partie aux contraintes spécifiées. 3. Présentation de l'invention L'invention selon ses différents aspects a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir un procédé de codage pour une transmission de données permettant de transmettre un signal tout en limitant le rayonnement à l'émission. En particulier, dans le cas d'une transmission filaire, un objectif de l'invention est de fournir un tel procédé permettant de limiter le rayonnement et les atténuations dans des fils de transmission, et notamment dans des câbles. Un autre objectif de l'invention est de fournir un tel procédé de codage qui permette des transmissions de données à haut débit. L'invention a également pour objectif de proposer un procédé facile à implémenter en émission et en réception, et présentant un faible coût. 4. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole entrant. Selon l'invention, un tel procédé de codage met en oeuvre: une étape d'étalement d'au moins un desdits symboles entrants, dite étape d'étalement des symboles, pour former un symbole étalé, de façon à ce que ledit symbole étalé ne possède pas de transitions successives; - une étape d'annulation de la disparité dudit symbole étalé, pour former un symbole codé, de sorte que ledit symbole codé comprend sensiblement le même nombre d'éléments de chaque valeur. Selon l'invention, on considère ainsi que chaque élément à transmettre peut prendre au moins deux valeurs distinctes, comme par exemple 0' et 1' si l'élément est un bit, ou encore -V' et +V', V représentant une tension positive. Les éléments de la transmission sont regroupés en symboles, dits symboles entrants, qui, dans un mode de réalisation préférentiel de l'invention, sont des octets. La première étape comprend un étalement d'au moins un symbole entrant, ce qui signifie que chaque élément isolé d'un symbole est étendu d'au moins un élément supplémentaire de même valeur, pour former un symbole étalé, qui ne comportent pas d'éléments isolés. Ensuite, la deuxième étape comprend une annulation de la disparité du symbole étalé, effectuée en ajoutant, si nécessaire, des éléments d'équilibrage (par exemple des bits), de sorte à obtenir sensiblement le même nombre d'éléments de chaque valeur dans un symbole codé, permettant ainsi d'annuler la composante continue en moyenne. Un tel procédé de codage permet donc de transmettre des données tout en respectant les normes d'émission de fréquences, la composante continue de la séquence codée émise étant sensiblement équilibrée et la séquence codée ne possédant pas de transitions successives pendant la transmission, c'est-à-dire ne comportant pas deux transitions séparées par un seul élément. Avantageusement, le symbole codé comprend exactement le même nombre d'éléments de chaque valeur. Lors de l'étape d'annulation de la disparité du symbole étalé, le codeur ajoute ainsi exactement le nombre d'éléments d'équilibrage nécessaires à obtenir exactement le même nombre d'éléments de chacune des valeurs dans un même symbole codé, c'est-à-dire une disparité du symbole codé égale à 0'. De façon préférentielle, l'étape d'étalement des symboles s'effectue en étendant chaque groupe d'éléments consécutifs de même valeur d'un élément supplémentaire de même valeur. Ainsi, tous les groupes d'éléments consécutifs de même valeur d'un symbole entrant sont étalés, l'étape d'étalement ne se limitant pas seulement aux éléments isolés. Cette technique simplifie le procédé de décodage associé, le décodeur sachant par avance que tous les groupes d'éléments consécutifs de même valeur ont été étalés lors du codage. De manière avantageuse, l'étape d'annulation de la disparité du symbole étalé comprend les sous-étapes suivantes: calcul de la disparité dudit symbole étalé ; ajout d'éléments d'équilibrage de sorte à annuler ladite disparité dans ledit symbole codé correspondant. L'étape d'annulation de la disparité du symbole étalé est ainsi réalisée en deux sous-étapes. Tout d'abord le codeur calcule la disparité au sein d'un symbole étalé, par exemple en analysant le nombre d'éléments à chacune des valeurs, puis en faisant leur différence. Le codeur ajoute ensuite des éléments d'équilibrage dans le symbole étalé pour former un symbole codé jusqu'à ce que le symbole codé comporte le même nombre d'éléments de chaque valeur. Selon un mode de réalisation avantageux, le symbole étalé comprenant des éléments d'une première valeur et des éléments d'une deuxième valeur, ladite étape d'annulation de la disparité du symbole étalé met en oeuvre une étape intermédiaire d'étalement du dernier élément dudit symbole étalé lorsque le nombre desdits éléments d'une première valeur est supérieur d'une unité au nombre desdits éléments d'une deuxième valeur, et lorsque ledit dernier élément dudit symbole étalé est d'une première valeur. Ainsi, dans le cas particulier où la valeur absolue de la disparité est égale à 1, c'est-à-dire lorsque le nombre d'éléments d'une première valeur est supérieur d'une unité au nombre d'éléments d'une deuxième valeur, et lorsque le dernier élément dudit symbole étalé est d'une première valeur, le codeur duplique le dernier élément du symbole étalé avant d'ajouter des éléments d'équilibrage, de sorte à éviter une transition isolée. Ainsi, si les éléments sont des bits pouvant prendre une première valeur égale à '1' et une deuxième valeur égale à 0' et si on considère que la valeur de la disparité est de 1, avec le nombre de bits de valeur 1' dans le symbole étalé supérieur d'une unité au nombre de bits de valeur 0', alors, si le dernier bit du symbole codé est un 1', on étale ce dernier bit en ajoutant un 1'. Si par contre le dernier bit du symbole codé était égal à 0', avec les mêmes conditions que précédemment, on n'étalerait pas ce dernier bit. A titre illustratif, si on considère l'octet entrant 11000101', l'octet étalé après l'étape d'étalement des données est 1110000110011'. Le codeur évalue facilement la disparité, qui est égale à +1. L'octet étalé comporte effectivement sept bits égaux à 1' et six bits égaux à 0'. Selon les systèmes de l'art antérieur, un seul bit d'équilibrage égal à '13' est ajouté. L'octet codé est alors 11100001100110'. Cet octet a bien une composante continue équilibrée, mais si le prochain octet codé transmis commence par un 1', il y aura une transition isolée dans les données transmises entre les deux symboles codés. Selon l'invention, le dernier élément de l'octet étalé est dupliqué, avant l'ajout des bits d'équilibrage. L'octet codé, qui ne contient alors jamais deux transitions successives et dont la composante continue est nulle, devient 1110000110011100'. De façon préférentielle, ladite étape d'étalement des symboles est mise en oeuvre pour chacun desdits symboles entrants. Le procédé de codage s'applique alors à tous les symboles entrants, de sorte à faciliter le décodage en réception. Selon une variante de réalisation, ladite étape d'étalement dudit symbole entrant prend en compte la valeur d'un dernier élément dudit symbole codé précédent de sorte à éviter deux transitions successives. Ainsi par exemple, le codeur garde en mémoire la valeur du dernier élément calculé avant de passer au symbole suivant, de manière à éviter que ce dernier élément calculé soit un élément isolé. Avantageusement, le procédé de codage comprend une étape de brassage des éléments, précédant l'étape d'étalement desdits symboles entrants. Cette étape de brassage des données permet de convertir le flux de données en un flux pseudo-aléatoire, de sorte à limiter la bande passante et à augmenter la résistance aux parasites de la transmission. Cette étape contribue notamment à limiter les hautes fréquences dans le spectre du signal, notamment dans le cas où un même symbole est transmis plusieurs fois de suite. Selon un mode de réalisation préférentiel, le procédé de codage lit en premier l'élément de poids le plus faible d'un symbole entrant. Pour permettre un traitement à la volée des données transmises, l'ordre des éléments de chaque mot codé est inversé à l'émission. Le codeur évite ainsi que les premiers éléments reçus au niveau du décodeur soient les éléments d'équilibrage ajoutés lors de l'étape d'annulation de la disparité. De façon avantageuse, la transmission mise en oeuvre est une transmission série. Le procédé de codage est également remarquable en ce qu'il comprend une étape d'ajout d'une séquence de synchronisation à au moins un des symboles codés. Ainsi la séquence de synchronisation peut n'être transmise que tous les N symboles entrants, avec N entier supérieur ou égal à 1, ou lorsqu'un phénomène de désynchronisation apparaît au niveau du décodeur (absence d'acquittement par exemple). Selon un mode de réalisation préférentiel, la transmission mise en oeuvre est une transmission filaire. Ainsi, la transmission peut s'effectuer sur un ou plusieurs câbles en parallèle, ce qui permet d'augmenter le débit utile. Notamment, la transmission s'effectue sur au moins un câble de type CAT-5 UTP. Les câbles de type CAT-5 UTP (de l'anglais Unshielded Twisted Pair, Category 5 , pour paire torsadée non blindée de catégorie 5 ) sont des paires 5 torsadées selon la norme ANSI/TIAIEIA/568A. L'invention concerne également un procédé de codage pour une transmission d'une séquence de données entrantes, ladite séquence de données entrantes étant composée d'éléments pouvant prendre au moins deux valeurs distinctes. Selon l'invention, un tel procédé de codage met en oeuvre: une étape d'étalement de ladite séquence de données entrantes, pour former une séquence étalée, de façon à ce qu'au moins une partie de ladite séquence étalée ne possède pas de transitions successives; une étape d'annulation de la disparité de ladite séquence étalée, pour former une séquence codée, de sorte que ladite séquence codée comprend 15 sensiblement le même nombre d'éléments de chaque valeur. Ainsi la séquence transmise ne possède pas de transitions successives, c'est-à-dire ne comporte pas deux transitions séparées par un seul élément, et présente une composante continue sensiblement équilibrée. L'invention concerne encore un procédé de décodage d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole codé, ledit symbole codé ne possédant pas de transitions successives et comprenant sensiblement le même nombre d'éléments de chaque valeur. Selon l'invention, un tel procédé comprend, pour chacun desdits symboles 25 codés: - une étape de désétalement dudit symbole codé, pour former un symbole désétalé ; une étape d'analyse de la disparité dudit symbole désétalé, pour former un symbole décodé. Ce procédé de décodage permet ainsi de décoder un symbole présentant une composante continue équilibrée, et ne présentant pas d'éléments isolés, c'est-à-dire d'éléments d'une première valeur entouré par deux éléments de valeurs différentes. De façon préférentielle, le symbole codé comprenant un premier ensemble d'éléments étalés, ladite étape de désétalement met en oeuvre, pour le premier ensemble d'éléments codés: - une sous-étape de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur différente de celle dudit nouvel élément reçu; - une sous-étape de mémorisation d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur identique à celle dudit nouvel élément reçu; - une sous-étape d'actualisation de la disparité, fonction des éléments supprimés et mémorisés. Ce premier ensemble d'éléments étalés correspond en fait au symbole étalé obtenu après l'étape d'étalement du procédé de codage. L'étape de désétalement du procédé de décodage s'applique donc généralement aux éléments correspondants à un symbole étalé du procédé de codage. Avantageusement, ledit symbole codé comprend en outre un second ensemble d'éléments d'équilibrage, et ladite étape d'analyse de la disparité met en oeuvre: - une sous-étape d'analyse de la valeur de la disparité actualisée; - une sous-étape de traitement dudit second ensemble d'éléments d'équilibrage, lorsque la valeur de ladite disparité actualisée est différente de zéro. Ce second ensemble d'éléments d'équilibrage correspond en fait aux éléments ajoutés au cours de l'étape d'annulation de la disparité du procédé de codage. L'étape d'analyse de la disparité du procédé de décodage s'applique donc généralement aux éléments d'équilibrage. Ce procédé de décodage permet ainsi, en analysant la disparité, de détecter les erreurs de transmission. Ainsi, lorsqu'une erreur de transmission est détectée, il peut demander à un émetteur de transmettre de nouveau les données perdues. Ce procédé de décodage est notamment remarquable en ce que ladite sousétape de traitement dudit second ensemble d'éléments d'équilibrage met en oeuvre, lorsque la valeur absolue de ladite disparité actualisée est égale à un: une sous-étape d'actualisation de la disparité et de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur identique à celle dudit nouvel élément; - une sous-étape d'information d'erreur de transmission et de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur différente de celle dudit nouvel élément. De nouveau, ce procédé de décodage permet de détecter les erreurs de transmission, en considérant le symbole désétalé et les éléments d'équilibrage. Notamment, le procédé de décodage prend en compte la valeur d'un dernier élément du symbole décodé précédent. Avantageusement, il comprend une étape inverse de brassage des éléments desdits symboles décodés. Le procédé de décodage est également remarquable en ce qu'il comprend une étape de récupération d'une séquence de synchronisation entre au moins deux desdits symboles codés. L'invention s'applique notamment à une transmission filaire, en série, mise en oeuvre par exemple sur un câble de type CAT-5 UTP. L'invention concerne encore un signal représentatif d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole codé. Selon l'invention, le symbole codé ne possède pas de transitions successives et comprend sensiblement le même nombre d'éléments de chaque valeur. Ainsi, selon l'invention et par rapport aux techniques de l'art antérieur, un tel signal émis permet de respecter les normes d'émission de fréquences, la composante continue du symbole codé émis étant sensiblement équilibrée et ledit symbole codé ne possédant pas de transitions successives pendant la transmission, c'est-à-dire ne comportant pas deux transitions séparées par un seul élément. Les avantages des systèmes, dispositifs, produit programme d'ordinateur et moyens de stockage d'informations sont les mêmes que ceux des procédés de codage et de décodage. Par conséquent, ils ne sont pas détaillés plus amplement. 5. Description détaillée de l'invention. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: la figure 1 présente le principe général d'un système de codage en émission et de décodage en réception selon l'invention; - les figures 2A et 2B illustrent respectivement un dispositif formant un codeur et un dispositif formant un décodeur, appartenant au système présenté en figure 1; les figures 3A et 3B présentent schématiquement un algorithme de codage conforme à l'invention, mis en oeuvre dans le codeur de la figure 1; - les figures 4A et 4B illustrent un algorithme de décodage pour un 20 signal codé suivant l'algorithme de codage des figures 3A et 3B, et mis en oeuvre dans le décodeur de la figure 1; la figure 5 est une vue synoptique d'une interface pour un système mettant en oeuvre les algorithmes de codage et de décodage illustrés en figures 3A et 4A, selon un mode particulier de réalisation de l'invention; - les figures 6A et 6B représentent une suite de symboles successifs codés selon le codeur de la figure 1; et la figure 7 présente la correspondance (alphabet) entre les symboles codés et les symboles décodés selon les algorithmes de codage et de décodage des figures 3A et 4A. 30 Le principe général de l'invention repose sur l'ajout d'une étape d'étalement des données avant une opération d'annulation de la disparité au niveau de chaque symbole de manière à transmettre un signal dont la composante continue est nulle pour chaque symbole codé transmis, et qui ne possède jamais deux transitions successives pendant la durée de la transmission. Avantageusement, ces opérations d'étalement des données et d'annulation de la disparité sont précédées d'une étape de brassage des données. Dans la suite, un mode de réalisation préférentiel de l'invention est présenté, dans lequel les symboles sont des octets et les éléments des bits. On présente en relation avec la figure 1 le principe général d'un système de codage/décodage selon l'invention. De manière à transmettre des données d'un bloc d'émission 11 à un bloc de réception 14, tout en respectant les normes d'émission de fréquences parasites, un codeur 12 est ajouté au bloc d'émission 11, à la sortie d'un bloc source 10. Les données à transmettre provenant du bloc source 10 comprennent des éléments pouvant prendre deux valeurs distinctes, comme par exemple des bits, regroupés en symboles. Ce codeur 12 code les données de manière à transmettre un signal dont la composante continue est nulle pour chaque symbole transmis, et qui ne possède jamais deux transitions successives pendant la durée de la transmission. Les étapes de codage mises en oeuvre dans le codeur 12 sont décrites plus en détail dans l'algorithme de codage présenté en figure 3A. Les données codées sont alors transmises vers le bloc de réception 14, au moyen de câbles 13 de type CAT-5 UTP (de l'anglais Unshielded Twisted Pair, Category 5 , pour paire torsadée non blindée de catégorie 5 selon la norme ANSI/TIA/EIA/568A). Ce type de câble est classiquement utilisé dans les réseaux de type Ethernet, et est particulièrement bien adapté à l'invention. Selon des variantes de l'invention, d'autres médiums de transmission filaires sont utilisés. Le bloc de réception 14 reçoit alors les données codées émises par le bloc d'émission 11. Ces données sont décodées grâce au décodeur 15 du bloc de réception 14, en réalisant des étapes inverses du codage, puis transmises à un destinataire 16. Les étapes de décodage mises en oeuvre dans le décodeur 15 sont décrites plus en détail dans l'algorithme de décodage présenté en figure 4A. La figure 2A illustre schématiquement un dispositif correspondant au codeur 12 tel qu'illustré en regard de la figure 1. Le codeur 12 comprend, reliés entre eux par un bus d'adresses et de 10 données 21: - un processeur 22; - une mémoire vive 23a; - une mémoire non volatile 24a; - une interface entrées/sorties 25; et une interface homme/machine 26. Chacun des éléments illustrés en figure 2A est bien connu de l'Homme du Métier. Ces éléments communs ne sont pas décrits ici. On observe que le mot registre utilisé dans toute la description désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou l'intégralité d'une séquence de données de transactions). La mémoire non volatile 24a conserve dans des registres qui par commodité possèdent les mêmes noms que les données qu'ils conservent le programme de fonctionnement du processeur 22 dans un registre prog_cod 27a. Les algorithmes mettant en oeuvre les étapes des procédés décrits ciaprès, notamment en regard des figures 3B et 4B sont stockés dans la mémoire non volatile 24a associé au codeur 12 et 24b associée au décodeur 15 mettant en oeuvre des étapes de ces algorithmes. A la mise sous tension, le processeur 22 charge et exécute les instructions de ces algorithmes. La mémoire vive 23a conserve des données, des variables et des résultats intermédiaires de traitement et comprend notamment: le programme prog_cod 28a de fonctionnement du processeur 22 chargé à la mise sous tension du codeur 12; des variables de fonctionnement du programme 28: RANG dans un registre 291; - DERNIER_BIT dans un registre 292; - DC dans un registre 293; - OCTET_ENTRANT dans un registre 294; OCTET_ETALE dans un registre 295; et - OCTET_CODE dans un registre 296. La figure 2B illustre schématiquement un dispositif correspondant au décodeur 15 tel qu'illustré en regard de la figure 1. Comme pour le codeur 12, le décodeur 15 comprend, reliés entre eux par un bus d'adresses et de données 21: - un processeur 22; - une mémoire vive 23b; une mémoire non volatile 24b; une interface entrées/sorties 25; et une interface homme/machine 26. La mémoire non volatile 24b conserve dans des registres le programme de fonctionnement du processeur 22 dans un registre prog_décod 27b. Les algorithmes mettant en oeuvre les étapes des procédés décrits ciaprès, notamment en regard des figures 3B et 4B sont stockés dans la mémoire non volatile 24a associé au codeur 12 et 24b associée au décodeur 15 mettant en mettant en oeuvre des étapes de ces algorithmes. A la mise sous tension, le processeur 22 charge et exécute les instructions de ces algorithmes. La mémoire vive 23b conserve des données, des variables et des résultats intermédiaires de traitement et comprend notamment: le programme prog_décod 28b de fonctionnement du processeur 22 chargé à la mise sous tension du décodeur 15; - des variables de fonctionnement du programme 28: - RANG dans un registre 291; - DERNIER_BIT dans un registre 292; - DC dans un registre 293; - OCTET_CODE dans un registre 296; - OCTET_DESETALE dans un registre 297; et OCTET_SORTANT dans un registre 298. On présente, en relation avec la figure 3A, un schéma de principe du codage, mettant en oeuvre deux étapes principales: une étape d'étalement 33 des données (OCTET_ENTRANT 294) qui permet, en augmentant d'un élément de même valeur chaque groupe d'éléments consécutifs de même valeur, d'éviter les éléments isolés et, par conséquent, les transitionssuccessives; puis une étape d'annulation de la disparité 34 des données étalées (OCTET_ETALE 295) qui permet, en calculant le nombre d'éléments de même valeur d'un symbole et en ajoutant des éléments d'équilibrage pour obtenir le même nombre d'éléments de chaque valeur, d'annuler la composante continue du signal, dans la variable OCTET_CODE 296. De manière préférentielle, une étape préalable de brassage des éléments est également ajoutée au codage. L'opération d'étalement des données 33 permet de réduire la fréquence fondamentale du code. Elle permet de diviser sensiblement par deux la composante de la fréquence la plus haute du signal. La figure 3B présente plus précisément un algorithme du principe de codage. Une première étape du procédé comprend une initialisation 31 des différentes variables 291 à 296: la variable RANG 291, qui correspond à la position du dernier bit calculé, est mise à zéro; la variable DERNIER_BIT 292, qui représente la valeur du dernier bit calculé, contient la valeur X indéterminée (elle ne contient donc ni la valeur 0', ni la valeur 1') ; et la variable DC 293, qui correspond à la valeur de la disparité, soit encore à la différence entre le nombre de bits égaux à '1' et le nombre de bits égaux à 0', est mise à zéro. Au cours d'une étape de lecture 32, le codeur 12 attend puis reçoit, en entrée, un octet à coder, émis par la source 10. Cet octet entrant est lu et stocké dans le registre OCTET_ENTRANT 294 avant d'être codé. Le contenu de l'élément entrant OCTET_ENTRANT 294 est ensuite analysé et traité lors de l'étape d'étalement des données 33. Chaque bit composant l'octet stocké dans ce registre 294 est alors analysé, en commençant par le bit de poids le plus faible, ou LSB (de l'anglais Least Significiant Bit ). L'étape 33 commence par un test de détection de transition 331, au cours duquel le codeur 12 vérifie si une transition existe entre le bit de la variable OCTET_ENTRANT 294 analysé et le bit stocké dans la variable DERNIER_BIT 292. Dans le cas où la variable RANG 291 est égale à 0 et la variable DERNIER_BIT 292 égale à x, la valeur du bit à l'emplacement OCTET_ENTRANT(RANG) est non définie. On considère donc qu'il y a une transition, détectée au cours du test de détection de transition 331. Si une transition est détectée, au cours d'une opération de codage si transition 332, la valeur du bit analysé de la variable OCTET_ENTRANT 294 est stockée dans le registre DERNIER_BIT 292 (DERNIER_BIT = OCTET_ENTRANT(RANG)). La variable OCTET_ETALE 295 est actualisée en ajoutant deux fois la valeur du bit analysé. Ensuite la valeur du rang, stockée dans le registre RANG 291, est incrémentée d'une unité et la valeur de la disparité, stockée dans le registre DC 293, est actualisée. Dans le cas où le test 331 de détection de transition ne détecte pas de transition, au cours d'une opération de codage sans transition 333, la valeur du bit analysé de la variable OCTET_ENTRANT 294 est stockée dans le registre DERNIER_BIT 292 (DERNIER_BIT = OCTET_ENTRANT(RANG)). La variable OCTET_ETALE 295 est actualisée en ajoutant une seule fois la valeur du bit analysé. Ensuite la valeur du rang, stockée dans le registre RANG 291, est incrémentée d'une unité et la valeur de la disparité, stockée dans le registre DC 293, est actualisée. Suite à l'une ou l'autre des opérations codage si transition 332 et codage sans transition 333, le codeur 12 analyse la valeur de la variable RANG 291 au cours d'un test 334. Si elle est inférieure à 8, cela signifie qu'il n'a pas codé un octet entier, et il réitère le test 331 de détection de transition. Ainsi, en étudiant les différentes transitions au sein de la variable OCTET_ENTRANT 294 au cours de l'étape d'étalement 33, le codeur 12 réalise un étalement des données contenues dans cette variable. Cela signifie que chaque groupe de bits consécutifs égaux à ou à 1' va être étendu d'un bit de même valeur. Lorsque la valeur du RANG 291 est égale à 8 (test 334), le codeur 12 effectue l'étape 34 d'annulation de la disparité. Cette étape d'annulation de la disparité 34 débute par un test 341 qui détermine si la disparité, en valeur absolue, est égale à 1, le codeur 12 traitant séparément ce cas. Dans le cas où la disparité est différente de +1 ou -1, le signe de cette disparité est analysé au cours d'un test 342. S'il est négatif, un bit d'équilibrage égal à 1' est ajouté à la variable OCTET_ETALE 295 au cours d'une étape 343, la valeur de la variable DC 293 est incrémentée d'une unité, et le codeur 12 réitère l'opération d'analyse du signe de la disparité dans le test 342. Sinon, le signe de la disparité est de nouveau analysé au cours d'un test 344: - S'il est positif, un bit d'équilibrage égal à 0' est ajouté à la variable OCTET_ETALE 295 au cours d'une opération 345, la valeur de la variable DC 293 est décrémentée d'une unité, et le codeur 12 réitère l'opération d'analyse du signe de la disparité ; Sinon, si le signe est nul, le codeur 12 mémorise la valeur de la variable OCTET_ETALE 295 dans le registre OCTET_CODE 296. Cela signifie que la disparité est nulle, et que par conséquent, le codeur 12 transmet au bloc de réception 14 le symbole codé OCTET_CODE 296 au cours d'une étape de traitement de l'octet codé 35, puis traite un nouvel octet après retour à l'étape d' initialisation 31. Cette opération permet d'annuler la composante continue du signal au 15 niveau de chaque symbole, et assure donc une transmission sans composante continue. Dans le cas où la disparité est égale à +1 ou -1 au cours du test 341, l'octet étalé pourrait être équilibré en ajoutant un simple bit d'équilibrage dans la variable OCTET_ETALE 295, mais le codeur 12 évite de transmettre des bits isolés, de manière à conserver les propriétés de ce procédé de codage. Le dernier bit calculé est alors répété, de sorte que la valeur de la disparité devient +2 ou -2. Cette disparité sera ensuite annulée comme décrit précédemment. Pour ce faire, le codeur 12 analyse la valeur du dernier bit calculé, stockée dans le registre DERNIER_BIT 292, et le signe de la disparité DC 293. Si DERNIER_BIT 292 est égal à 0' et que le signe de la disparité est négatif au cours d'un test 346, alors le dernier 0' est doublé dans OCTET ETALE 295 et la valeur de la variable DC 293 est décrémentée au cours d'une étape 347. Dans la négative, le codeur 12 étudie de nouveau la valeur du dernier bit 30 calculé et le signe de la disparité au cours d'une étape 348. Si DERNIER_BIT 292 est égal à 1' et que le signe de la disparité est positif au cours de l'étape 348, alors le dernier 1' est doublé dans OCTET_ETALE 295 et la valeur de la variable DC 293 est incrémentée au cours d'une étape 349. Dans les autres cas, on retrouve le processus expliqué pour le cas où la disparité est différente de 1. Finalement, le codeur 12 répète ces différentes étapes jusqu'à ce que la valeur de la variable DC 293 soit nulle, c'est-à-dire que la variable OCTET_ETALE 295 comporte autant de bits égaux à que de bits égaux à 1'. A titre illustratif, supposons par exemple que le codeur 12 reçoit en entrée et lit l'octet OCTET_ENTRANT=' 11000101', où le bit de droite est le LSB. Le codeur 12 effectue d'abord l'étape d'étalement des données 33. En sortie de cette étape 33, l'octet étalé 1110000110011' est mémorisé dans la variable OCTET_ETALE 295. Ensuite, le codeur 12 effectue l'étape d'annulation de la disparité 34. En sortie de cette étape 34, l'octet codé 0011110000110011' est mémorisé dans la variable OCTET_CODE 296. On vérifie facilement qu'à la suite des étapes 33 et 34 le mot de code OCTET_CODE 296 a bien une composante continue nulle (DC = 0), et ne possède aucun bit isolé. Une première variante de réalisation de l'invention consiste à garder en mémoire la valeur du dernier bit calculé avant de passer au symbole suivant, de manière à éviter que ce dernier bit calculé soit un bit isolé. Dans ce cas, au cours de la phase d'initialisation 31, la valeur de la variable DERNIER_BIT 292 est gardée en mémoire. Une seconde variante consiste à ajouter des bits de manière à annuler la composante continue (DC = 0) non pas au niveau de chaque symbole, mais seulement au niveau d'un nombre prédéterminé ou variant dynamiquement de N symboles étalés, où N est un entier strictement supérieur à 1. Une troisième variante consiste à atteindre une certaine valeur prédéfinie de la disparité avant d'ajouter des bits d'équilibrage pour annuler la composante continue. Par ailleurs, selon une autre variante pouvant être combinée avec le mode de réalisation préféré ou avec les variantes précédemment présentées, une séquence de synchronisation est avantageusement ajoutée aux octets codés dans le codeur 12, de manière à décoder correctement les données émises dans le décodeur 15. Cette séquence de synchronisation est soit ajoutée à chaque séquence de N octets (avec N entier supérieur ou égal à 1), soit suite à une perte de synchronisation (détection d'une absence d'acquittement en provenance du décodeur par exemple). En effet, si cette séquence de synchronisation est correctement reçue et reconnue au niveau du décodeur, celui-ci peut autoriser le codeur à ne plus transmettre de séquence de synchronisation intermédiaire, selon un protocole d'acquittement par exemple. Si par contre le décodeur rencontre un problème de synchronisation au niveau d'un symbole K, le codeur transmet de nouveau la séquence de synchronisation, et renvoie les symboles non reconnus précédents le symbole K (par exemple les symboles K-2 et K-1) avec la suite des symboles à transmettre. Finalement, l'Homme du Métier étendra facilement ce procédé de codage au cas où le bit de poids le plus faible n'est pas analysé en premier, et notamment au cas où le premier bit traité est le bit de poids le plus fort (ou MSB, de l'anglais Most Significant Bit ). La figure 4A présente un schéma de principe du décodage d'un signal, lorsque la composante continue du signal codé est nulle et que ce signal codé ne possède pas de bit isolé. Cet algorithme de décodage met en oeuvre, dans le décodeur 15, deux principales étapes: - une étape de désétalement 43 des données entrantes OCTET_CODE 296, qui permet de supprimer les éléments ajoutés lors du codage; puis une étape d'analyse de la disparité 44 des données désétalées ou OCTET_DESETALE 297 qui permet de vérifier que la composante continue des symboles reçus est toujours nulle et valider ainsi la transmission, dans la variable OCTET_SORTANT 298. Selon une variante, une dernière étape inverse de brassage des éléments est également mise en oeuvre au niveau du décodeur. L'étape de désétalement des données 43 permet en fait de compter le nombre de bits égaux à 1' et le nombre de bits égaux à 0' reçus, et d'évaluer la différence entre ces deux nombres, cette différence étant associée à la disparité. Plus précisément la figure 4B présente un algorithme de décodage d'un tel signal. Le décodeur 15 permet de recevoir et de décoder les données émises, notamment après réception d'une séquence de synchronisation. Selon la variante de l'algorithme de décodage présentée ci-après, le décodeur 15 reçoit une première séquence de synchronisation en début de réception, puis une nouvelle séquence de synchronisation lorsqu'une erreur de transmission survient. Selon d'autres variantes de réalisation non détaillées plus amplement, le décodeur 15 reçoit également une séquence de synchronisation avant chaque séquence de N octets (avec N entier supérieur ou égal à 1). Selon la variante présentée, au cours d'une opération d'attente de synchronisation 41, le décodeur 15 attend cette séquence de synchronisation. Dès que le décodeur 15 reçoit, en entrée, cette séquence de synchronisation, il initialise les différentes variables internes au cours d'une étape d'initialisation 42, et le processus de décodage se met en route. En particulier, les différentes valeurs des variables stockées dans les registres après l'étape d'initialisation 42 sont: - RANG=0; DERNIER_BIT = X; - DC=O. Après l'étape d'initialisation des variables 42, le décodeur 15 effectue l'étape de désétalement des données 43. Il attend puis reçoit un premier bit de données de l'octet codé 5 OCTET_CODE 296, au cours de l'opération 431. Suite à la réception d'un bit au cours de l'opération 431, le décodeur 15 effectue un test de détection de transition 432 entre la valeur de ce nouveau bit reçu et la valeur de la variable DERNIER_BIT 292. Si une transition est détectée, le décodeur 15 vérifie que la transition ne correspond pas à un bit isolé, au cours d'un test 433 erreur transition . En effet, comme le code émis ne comporte pas de bit isolé, un bit isolé en réception équivaut à une erreur au niveau de la transmission. Le décodeur 15 analyse l'erreur de transition et envoie un message d'erreur en sortie au cours d'une étape de traitement d'erreur 45. Il attend ensuite de nouvelles données, notamment une nouvelle séquence de synchronisation. Si par contre la transition détectée au cours de l'étape de détection de transition 432 ne correspond pas à un bit isolé, le décodeur 15 effectue l'étape décodage si transition 434. La valeur du nouveau bit reçu au cours de l'étape attente bit de donnés 431 est lue, puis mémorisée dans la variable DERNIER_BIT 292. Le nouveau bit reçu est alors supprimé de la variable OCTET_CODE 296, et le décodeur 15 évalue la nouvelle disparité : si la valeur du bit supprimé est de 1', il incrémente la valeur contenue dans le registre DC 293 de 1, sinon il décrémente la valeur contenue dans le registre DC 293 de 1. Dans le cas où l'étape de détection de transition 432 ne détecte pas de transition, le décodeur 15 analyse la valeur de la variable RANG 291, au cours d'un test 435. Si la variable RANG 291 est strictement inférieure à 8, au cours d'une étape décodage sans transition 436, le décodeur 15 lit la valeur du nouveau bit reçu et la stocke dans le registre DERNIER_BIT 292. La valeur de ce bit reçu est également mémorisée dans un registre OCTET_DESETALE 297 à l'emplacement OCTET_DESETALE(RANG). La valeur du rang est ensuite incrémentée, et la valeur de la variable DC 293 actualisée:si la valeur du bit reçu est de 1', la variable DC 293 est incrémentée d'une unité, sinon la variable DC 293 est décrémentée d'une unité. Dans le cas où la variable RANG 291 est égale à 0 et la variable DERNIER_BIT 292 égale à x, le décodeur 15 considère qu'il rencontre une transition au cours du test de détection de transition 432, et qu'il ne s'agit pas d'une erreur de transition. Lorsque la valeur du RANG 291 est égale à 8 (test 435), le décodeur 15 10 écrit au cours d'une étape 436 dans le registre OCTET_SORTANT 298 la valeur de la variable OCTET_DESETALE 297. Le décodeur 15 effectue ensuite l'étape d'analyse de la disparité 44, au cours de laquelle il vérifie si la composante continue reçue est toujours nulle. L'étape 44 débute par un test 441 au cours duquel le décodeur vérifie si la disparité, en valeur absolue, est égale à 1. Dans l'affirmative, le décodeur 15 s'assure que le bit suivant reçu n'est pas un bit isolé, au cours de l'opération de lecture du bit suivant 442. Si la valeur du bit suivant est égale à 1' et que le dernier bit reçu (DERNIER_BIT 292) est un 0' ou si la valeur du bit suivant est égale à 0' et que le dernier bit reçu est un 1', un test 443 détecte un bit isolé, et par conséquent une erreur de transmission. Le bit isolé est alors supprimé au cours d'une étape 444 et le décodeur 15 envoie un message d'erreur en sortie au cours d'une étape de traitement d'erreur 46. Le décodeur 15 attend ensuite de nouvelles données, et notamment une séquence de synchronisation. Si par contre le test 443 ne détecte pas de bit isolé, la valeur du registre DC 293 est actualisée et le bit suivant provenant de l'opération de lecture 442 est supprimé au cours d'une étape 445. Dans ce cas, ce bit suivant correspond en fait à un bit ajouté au niveau du codage pour éviter d'avoir un bit isolé lors de l'étape d'annulation de la disparité. Si la disparité DC 293 est différente de 1 en valeur absolue, au cours du test 441, la disparité DC 293 est de nouveau testée au cours d'un test 446, afin de déterminée si elle est égale à 0. Dans l'affirmative, cela signifie que la composante continue reçue est équilibrée. Le décodeur 15 considère par conséquent que le code reçu a été bien décodé. Il envoie donc en sortie vers le destinataire 16 une variable OCTET_SORTANT 298 contenant l'octet décodé au cours d'une étape de traitement de l'octet décodé 47. Le décodeur 15 attend ensuite, après initialisation des variables 42, de nouvelles données à décoder. Si par contre après le test 441 et au cours du test 446 la disparité est différente de 0, le décodeur 15 attend le prochain bit au cours d'une étape 447 pour analyser s'il s'agit d'un bit ajouté au niveau du codage pour annuler la disparité, c'est-à-dire s'il s'agit d'un bit d'équilibrage. Au cours d'une étape 448, la valeur du nouveau bit entrant à l'étape 447 est lue puis stockée dans le registre DERNIER_BIT 292. La valeur de DC 293 est actualisée et ce nouveau bit est supprimé. Si la valeur de DC 293 est négative et qu'il reste encore des bits égaux à 0' à analyser, ou si la valeur de DC 293 est positive et qu'il reste encore des bits égaux à 1' à analyser, le décodeur 15 considère qu'il y a une erreur au cours de l'étape 449 et envoie un message d'erreur en sortie au cours d'une étape de traitement d'erreur 48. Le décodeur 15 attend alors une nouvelle séquence de synchronisation. A titre illustratif, supposons par exemple que le décodeur 15 soit en attente de données, et qu'il reçoit en entrée la variable OCTET CODE='001 1 1 100001 1001 1'. Le décodeur 15 effectue d'abord l'étape de désétalement des données 43. En sortie de cette étape 43, l'octet désétalé 11000101' est mémorisé dans la variable OCTET_DESETALE 297. La séquence restante à analyser, à savoir la séquence d'équilibrage 001', comporte les bits d'équilibrage ajoutés pour annuler la disparité en évitant les transitions successives. Le décodeur 15 effectue alors l'étape d'analyse de la disparité 44 en étudiant cette séquence d'équilibrage. En sortie de cette étape 44, l'octet décodé 11000101' est validé et mémorisé dans la variable OCTET_SORTANT. Une première variante de réalisation du décodage selon l'invention consiste à garder en mémoire la valeur du dernier bit calculé avant de passer au symbole suivant, le codage ayant été effectué de manière à éviter que ce dernier bit calculé soit un bit isolé. Dans ce cas, au cours de l'étape d'initialisation 42, la valeur de la variable DERNIER_BIT 292 est gardée en mémoire. Une seconde variante consiste à ajouter une étape de brassage inverse des données décodées, après les étapes de désétalement et d'analyse de la disparité, lorsqu'une opération de brassage de données a été réalisée au niveau du codage. Dans un mode de réalisation particulier, l'étape d'analyse de la disparité peur également être supprimée, cette étape servant essentiellement à la détection d'erreurs de transmission. Finalement, l'Homme du Métier étendra facilement ce procédé de décodage au cas où l'annulation de la composante continue au niveau du codage est réalisée pour un nombre prédéterminé de N symboles. De même l'ordre de traitement des bits peut être inversé. Cependant, pour permettre un traitement à la volée des données (sans mémorisation), on inverse l'ordre des bits de chaque mot codé à l'émission, de manière à éviter que les premiers bits reçus au niveau du décodeur 15 soient ceux ajoutés lors de la phase de codage pour l'annulation de la composante continue (bits d'équilibrage). Ainsi, à la réception, l'étape de désétalement est appliquée dès le premier bit reçu, qui correspond bien à un bit de données. La figure 5 est une vue synoptique d'une interface de lien UTP5 pour un système utilisant le procédé de codage et de décodage décrits aux figures 3B et 4B, notamment à l'intérieur d'un réseau de communication permettant de connecter une pluralité d'équipements dans un réseau domestique par exemple. La transmission des données, qui peuvent être de différents formats, est, en particulier, effectuée au moyen de câbles ou de liens adaptés, notamment pour des applications en environnement domestique. Ainsi, les équipements traitant des données numériques peuvent fonctionner selon la norme IEEE-1394. Selon un mode de réalisation particulier, la transmission des données est réalisée au moyen d'un câble de type CAT5 constitué de quatre paires de fils torsadés, deux paires étant dédiées pour l'émission d'informations codées et deux paires étant dédiées pour la réception d'informations. Ce type de câble est classiquement utilisé dans les réseaux de type Ethernet, et est particulièrement bien adapté à l'invention. Sur les deux paires de transmission dédiées à l'émission (ou la réception) une paire assure la transmission de segments comprenant des bits de poids fort des octets d'information émis par les dispositifs d'émission et l'autre paire assure la transmission de segments comprenant des bits de poids faible des octets d'information émis par les dispositifs d'émission. L'interface de lien UTP5 est reliée à un médium de transmission 51 tel que 20 décrit précédemment. Il est à remarquer que d'autres médiums filaires pourraient être utilisés comme des câbles conformes à la norme IEEE1355. La liaison entre l'interface de lien UTP5 et le medium 51 est effectuée par l'intermédiaire d'un module d'interface physique 52 non décrit dans ce document. A ce module d'interface physique 52 est relié un bloc de synchronisation de réception 530 qui détermine la valeur binaire associée à chaque période du signal reçu sur une paire. Il détermine en outre le début du segment et informe le bloc dé-sérialisation/décodage 531a et 531b de la valeur binaire associée à chaque période de signal reçu sur la paire de réception correspondante. Il est à remarquer que les données arrivent au bloc de synchronisation 530 sous la forme de deux signaux. En effet, les données sont divisées en deux, une première partie pour les bits de poids forts est reçue sur une paire de fils, une seconde partie pour les bits de poids faible est reçue sur une autre paire. Ainsi le bloc de synchronisation 530 fournit à chaque bloc de désérialisation/décodage une horloge de synchronisation, déterminée à partir du signal reçu. Il détermine aussi la valeur binaire du signal pour chacune de ces périodes. Les blocs de dé-sérialisation/décodage 531a et 531b vont décoder les données reçues, à l'aide du procédé de décodage présenté en figure 4B, puis paralléliser les données décodées, c'est-à-dire les mettre chacune sur huit bits. Les données étant décodées et parallélisées, elles sont transférées aux blocs de réception de segments 532b pour les segments contenant les poids fort et 532a pour les segments contenant les poids faible. Ces blocs 532a et 532b vont reconstruire les segments reçus et en sus vérifier si le segment reçu est correct en effectuant par exemple un contrôle de parité classique sur les données reçues. Ce contrôle effectué, le bloc 532b transfère le segment de poids fort reconstruit vers un moyen de stockage (mémoire) de type FIFO 533b. Il génère aussi à destination du module de contrôle de FIFO 534 un signal d'information relatif à la présence d'un nouveau segment. Le bloc 532a effectue les mêmes opérations que le bloc 532b mais pour les segments contenant les bits de poids faible. Il ne sera pas décrit plus en détail. Le module de contrôle de FIFO en réception 534 notifie au module de contrôle de sortie de données 536 la réception de la totalité d'un segment, le segment comprenant à la fois les octets de poids faible stockés dans la FIFO 533a (rx_fifo_LSB) et les octets de poids fort stockés dans la FIFO 533b (rx_fifo_MSB). A l'interface de lien UTP5 sont associées 3 mémoires de sortie, reliées via un bus 56a (MUX Bus) à l'interface de lien UTP5, et 3 mémoires d'entrées, reliées via un bus 56b (DEMUX Bus) à l'interface de lien UTP5. Ces mémoires sont contrôlées par un module de contrôle FIFO. Le module 5 de contrôle de sortie de données 536 notifie au module de contrôle FIFO de la réception d'un nouveau segment. Le module 536 gère l'insertion des caractères de crédit par les modules 540a et 540b en fonction des opérations de lecture sur les moyens de stockage 533a et 533b. Le module de contrôle FIFO effectue alors la lecture des données (demande de lecture ou read request en langage anglo-saxon) reçues via les modules d'analyse des crédits 535a et 535b. Le module d'analyse de crédit 535a, respectivement 535b, extrait d'une part l'information représentative de la mémoire Fifo, ou buffer de destination, d'autre part l'information représentative d'une libération de crédit dans une mémoire Fifo, ou buffer distante de réception. Lorsque le module d'analyse de crédit 535a, respectivement 535b, identifie un buffer de destination, l'information est transmise via un signal de contrôle à un module de contrôle FIFO afin que celui-ci sélectionne la FIFO d'entrée (3 mémoires de sortie) vers laquelle seront transférées les données. Lorsque le module d'analyse de crédit 535a, respectivement 535b, identifie une libération de crédit, l'information est transmise via un signal de contrôle au module d'émission de données 542. Le module d'émission de données 542, gère le procédé de segmentation pour la transmission des paquets depuis chacune des FIFO de sortie (3 mémoires de sortie). Le transfert de données depuis l'une des FIFO de sortie vers d'une part la FIFO d'émission des octets de poids fort 541a (tx_FIFO_MSB) et d'autre part vers la FIFO d'émission des octets de poids faible 541b (tx_FIFO_LSB) est effectué via les modules d'insertion de crédit 540a pour les poids faible et 540b pour les poids fort. D'une part, via des signaux de contrôle, le module d'émission de données 542 reçoit des informations de libération de crédit en provenance du module d'analyse de crédit 535a, respectivement 535b. D'autre part, le module d'émission de données 542 reçoit des demandes de lecture ( read request en langage anglo-saxon) des FIFO de sortie en provenance d'un module de contrôle FIFO. Par ailleurs, le module de contrôle FIFO notifie au module d'insertion de crédit 540, lorsqu'un nombre prédéterminé de données a été lu dans une des FIFO d'entrée. Le module d'insertion de crédit 540a, respectivement 540b insère alors dans le segment une information représentative d'une libération de crédit associée à une des FIFO d'entrée. Le module de contrôle FIFO en émission 543 notifie au module d'émission de données 542 de l'émission de la totalité d'un segment, le segment comprenant à la fois les octets de poids faible stockés dans la FIFO 541b (tx_FIFO_LSB) et les octets de poids fort stockés dans la FIFO 541a (tx_FIFO_MSB). Les blocs 544a et 544b vont effectuer la transmission des segments en calculant le champ de contrôle de parité associé au segment. Ils informent donc le module de contrôle de FIFO en émission 543 de la fin d'émission de chaque partie du segment (respectivement poids faible et poids fort). Les blocs 545a et 545b vont effectuer le codage des segments comme décrit en figure 3B et la transmission octet par octet de chaque segment sous forme d'un train binaire via le bloc de synchronisation à l'émission 546. Le bloc de synchronisation à l'émission 546 est principalement en charge de générer un signal de synchronisation en tête de segment. Les figures 6A et 6B représentent les données transmises lors d'une transmission série utilisant le procédé de codage décrit à la figure 3B, ces données comprenant une suite de symboles successifs précédés d'une séquence de synchronisation. La figure 6A illustre une telle transmission série dans le cas où une séquence de synchronisation 61 est ajoutée avant chaque symbole transmis 62. Lorsque cette séquence 61 est détectée au niveau du décodeur/déserialisant 531a et 53 lb, ce dernier décode les symboles reçus en effectuant une opération de désétalement des bits codés, sans perdre aucune donnée. Cette séquence de synchronisation 61 respecte préférentiellement les caractéristiques suivantes: elle est étalée (elle ne comporte aucun bit isolé) ; - sa composante continue est équilibrée (nulle) ; - elle ne correspond à aucun mot de l'alphabet déterminé (et illustré en figure 7) par le procédé de codage présenté en figure 3B, afin d'éviter de confondre cette séquence de synchronisation avec un mot codé au niveau du décodage. Ainsi, cette séquence de synchronisation 61 est par exemple déterminée avant le codage, de façon à respecter les contraintes évoquées ci-dessus. Cette séquence particulière, par exemple '0000011111', sera alors ajoutée avant chaque symbole codé. Il est bien entendu que toute séquence respectant les caractéristiques précisées ci-dessus est acceptée comme séquence de synchronisation. Selon une variante de l'invention, cette séquence n'est pas identique sur toute la durée de la transmission et varie à chaque symbole transmis (Synchro N- 1, Synchro N, Synchro N+1, ...). Selon une autre variante de l'invention, la séquence de synchronisation n'est pas transmise avant chaque symbole, mais de façon régulière, par exemple tout les N symboles, comme il a été décrit précédemment. La figure 6B illustre une variante de la transmission série présentée en figure 6A. Dans ce cas, la séquence de synchronisation 61 est ajoutée aux données à transmettre chaque fois qu'un phénomène de désynchronisation apparaît. En effet, afin de maximiser le débit utile et par conséquent de réduire les coûts, la séquence de synchronisation 61 n'est pas ajoutée avant chaque N symboles à transmettre, mais seulement lorsque que la synchronisation n'est plus assurée. Cette séquence respecte préférentiellement les mêmes caractéristiques qu'évoquées précédemment. Ainsi la séquence de synchronisation N 61 est transmise après le symbole N-1 émis. Si cette séquence est correctement reçue et reconnue au niveau du décodeur, celui-ci autorise le codeur à ne plus transmettre de séquence de synchronisation intermédiaire, selon un protocole d'acquittement par exemple. Si par contre le décodeur rencontre un problème de synchronisation au niveau d'un symbole K, le codeur transmet de nouveau la séquence de synchronisation. La gestion des symboles non reconnus précédant le symbole K (par exemple les symboles K-2 et K-1) est gérée préférentiellement par les couches supérieures. En effet, l'utilisation d'un protocole de correction d'erreurs de type ARQ (en anglais Automatic Repeat Request , en français système de correction d'erreurs par retransmission ) permet la correction d'erreurs par retransmission des symboles contenus dans des trames non correctement acquittées. Cette variante permet d'optimiser le débit utile au cours de la transmission. La figure 7 est un tableau présentant la correspondance entre les mots avant codage et après codage, ces mots étant codés selon le procédé de codage illustré en figure 3B. Ce tableau permet à la fois de voir la correspondance (alphabet) entre les symboles entrant dans le codeur et les symboles codés selon le procédé de codage illustré en figure 3B en sortant, et la correspondance entre les symboles entrant dans le décodeur et les symboles décodés selon le procédé de décodage illustré en figure 4B en sortant. Il permet ainsi de visualiser les mots interdits pour la séquence de synchronisation. On cherche dans ce cas à coder des mots de 8 bits, soit des octets. On a par conséquent 256 mots différents (première colonne 71). Quelques uns de ces octets sont représentés, avant codage, dans la deuxième colonne 72. Les signes +' et -' correspondent aux deux états possibles des éléments binaires que l'on souhaite coder. Dans le cas du codage d'octets, le signe +' est associé par exemple à un bit de valeur 1' et le signe -' à un bit de valeur 0'. Selon une variante de l'invention, ces signes correspondent par exemple à des valeurs 41' ou - 1', et plus généralement aux deux états possibles d'un élément binaire. Les différentes étapes du procédé de codage décrit en figure 3B sont présentées dans ce tableau. La troisième colonne 73 illustre ainsi l'opération d'étalement des données: chaque groupe d'éléments +' ou d'éléments -' consécutifs est étendu d'un élément de même valeur. Ainsi l'octet 76, composé des éléments +±±---' devient après étalement des données l'octet étalé 77 ++ ±-++ '. La quatrième colonne 74 illustre l'opération d'annulation de la disparité : on ajoute des éléments d'équilibrage à la fin de chaque octet étalé de façon à obtenir le même nombre d'éléments +' que d'éléments -'. Ainsi l'octet étalé 77 composé des éléments ++±-++ ' devient, après ajout des éléments d'équilibrage, l'octet codé 78 ++±-++ ++'. Finalement la cinquième colonne 75 indique la longueur de chaque mot après codage. On peut alors calculer la longueur moyenne du code, qui vaut 15,3125 bits. Bien entendu, la présente invention ne se limite pas aux détails des formes de réalisation décrits ici à titre d'exemple, mais s'étend au contraire aux modifications à la portée de l'homme de l'art, sans sortir du cadre de l'invention. Ainsi, une première variante permet de transmettre les données non pas au moyen d'une liaison filaire, mais par exemple par l'intermédiaire d'une transmission radio-fréquence ou encore par fibre optique. Une seconde variante de réalisation consiste à coder et à transmettre des éléments pouvant prendre plus de deux valeurs, c'est-à-dire des éléments non binaires. REVENDICATIONS 1. Procédé de codage d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole entrant, caractérisé en ce qu'il met en oeuvre: une étape d'étalement d'au moins un desdits symboles entrants, dite étape d'étalement des symboles, pour former un symbole étalé, de façon que ledit symbole étalé ne possède pas de transitions successives; - une étape d'annulation de la disparité dudit symbole étalé, pour former un symbole codé, de sorte que ledit symbole codé comprend sensiblement le même nombre d'éléments de chaque valeur. 2. Procédé de codage pour une transmission d'éléments selon la revendication 1, caractérisé en ce que ledit symbole codé comprend exactement le même nombre d'éléments de chaque valeur. 3. Procédé de codage selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite étape d'étalement des symboles s'effectue en étendant chaque groupe d'éléments consécutifs de même valeur d'un élément supplémentaire de même valeur. 4. Procédé de codage selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite étape d'annulation de la disparité dudit symbole étalé comprend les sous-étapes suivantes: calcul de la disparité dudit symbole étalé ; - ajout d'éléments d'équilibrage de sorte à annuler ladite disparité dans ledit symbole codé correspondant. 5. Procédé de codage selon la revendication 4, caractérisé en ce que, ledit symbole étalé comprenant des éléments d'une première valeur et des éléments d'une deuxième valeur, ladite étape d'annulation de la disparité dudit symbole étalé met en oeuvre une étape intermédiaire d'étalement du dernier élément dudit symbole étalé, lorsque le nombre desdits éléments de ladite première valeur est supérieur d'une unité au nombre desdits éléments de ladite deuxième valeur, et lorsque ledit dernier élément dudit symbole étalé est de ladite première valeur. 6. Procédé de codage selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite étape d'étalement des symboles est mise en oeuvre pour chacun desdits symboles entrants. 7. Procédé de codage selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite étape d'étalement dudit symbole entrant prend en compte la valeur d'un dernier élément dudit symbole codé précédent de sorte à éviter deux transitions successives. 8. Procédé de codage selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'une étape de brassage desdits éléments précède ladite étape d'étalement desdits symboles entrants. 9. Procédé de codage selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il lit en premier l'élément de poids le plus faible d'un symbole entrant. 10. Procédé de codage selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ladite séquence est destinée à une transmission série. 11. Procédé de codage selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend une étape d'ajout d'une séquence de synchronisation à au moins un desdits symboles codés. 12. Procédé de codage selon l'une quelconque des revendications 1 à 11, caractérisé en ce que ladite séquence est destinée à une transmission filaire. 13. Procédé de codage selon la revendication 12, caractérisé en ce que ladite transmission s'effectue sur au moins un câble de type CAT-5 UTP. 14. Procédé de codage pour une transmission d'une séquence de données entrantes, ladite séquence de données entrantes étant composée d'éléments pouvant prendre au moins deux valeurs distinctes, caractérisé en ce qu'il met en oeuvre: - une étape d'étalement de ladite séquence de données entrantes, pour former une séquence étalée, de façon à ce qu'au moins une partie de ladite séquence étalée ne possède pas de transitions successives; - une étape d'annulation de la disparité de ladite séquence étalée, pour former une séquence codée, de sorte que ladite séquence codée comprend sensiblement le même nombre d'éléments de chaque valeur. 15. Procédé de décodage d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole codé, ledit symbole codé ne possédant pas de transitions successives et comprenant sensiblement le même nombre d'éléments de chaque valeur, caractérisé en ce qu'il comprend, pour chacun desdits symboles codés: une étape de désétalement dudit symbole codé, pour former un symbole désétalé ; - une étape d'analyse de la disparité dudit symbole désétalé, pour former un symbole décodé. 16. Procédé de décodage selon la revendication 15, ledit symbole codé comprenant un premier ensemble d'éléments étalés, caractérisé en ce que ladite étape de désétalement met en oeuvre, pour ledit premier ensemble d'éléments étalés: - une sous-étape de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur différente de celle dudit nouvel élément reçu; - une sous-étape de mémorisation d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur identique à celle dudit nouvel élément reçu; - une sous-étape d'actualisation de la disparité, fonction des éléments supprimés et mémorisés. 17. Procédé de décodage selon la revendication 16, ledit symbole codé comprenant en outre un second ensemble d'éléments d'équilibrage, caractérisé en ce ladite étape d'analyse de la disparité met en oeuvre: une sous-étape d'analyse de la valeur de la disparité actualisée; et une sous-étape de traitement dudit second ensemble d'éléments d'équilibrage, lorsque la valeur de ladite disparité actualisée est différente de zéro. 18. Procédé de décodage selon la revendication 17, caractérisé en ce que ladite sous-étape de traitement dudit second ensemble d'éléments d'équilibrage met en oeuvre, lorsque la valeur absolue de ladite disparité actualisée est égale à un: - une sous-étape d'actualisation de la disparité et de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur identique à celle dudit nouvel élément; une sous-étape d'information d'erreur de transmission et de suppression d'un nouvel élément reçu, lorsque l'élément précédent présente une valeur différente de celle dudit nouvel élément. 19. Procédé de décodage selon l'une quelconque des revendications 15 à 18, caractérisé en ce qu'il prend en compte la valeur d'un dernier élément du symbole décodé précédent. 20. Procédé de décodage selon l'une quelconque des revendications 15 à 19, caractérisé en ce qu'il comprend une étape inverse de brassage des éléments desdits symboles décodés. 21. Procédé de décodage selon l'une quelconque des revendications 15 à 20, caractérisé en ce qu'il comprend une étape de récupération d'une séquence de synchronisation entre au moins deux desdits symboles codés. 22. Procédé de décodage selon l'une quelconque des revendications 15 à 21, caractérisé en ce qu'il reçoit des éléments provenant d'une transmission filaire. 23. Procédé de décodage selon la revendication 22, caractérisé en ce que ladite transmission s'effectue sur au moins un câble de type CAT-5 UTP. 24. Procédé de décodage selon l'une quelconque des revendications 22 et 23, caractérisé en ce que ladite transmission est une transmission série. 25. Signal représentatif d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole codé, caractérisé en ce que ledit symbole codé ne possède pas de transitions successives et comprend sensiblement le même nombre d'éléments de chaque valeur. 26. Dispositif de codage pour une transmission d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole entrant, caractérisé en ce qu'il comprend: - des moyens d'étalement d'au moins un desdits symboles entrants pour former un symbole étalé, de façon que ledit symbole étalé ne possède pas de transitions successives; - des moyens d'annulation de la disparité dudit symbole étalé, pour former un symbole codé, de sorte que ledit symbole codé comprend sensiblement le même nombre d'éléments de chaque valeur. 27. Dispositif de codage selon la revendication 26, caractérisé en ce que lesdits moyens d'annulation de la disparité dudit symbole étalé mettent en oeuvre un calcul de la disparité dudit symbole étalé, puis un ajout d'éléments d'équilibrage de sorte à annuler ladite disparité dans ledit symbole codé correspondant. 28. Dispositif de codage selon la revendication 27, caractérisé en ce que, ledit symbole étalé comprenant des éléments d'une première valeur et des éléments d'une deuxième valeur, lesdits moyens d'annulation de la disparité dudit symbole étalé mettent en oeuvre des moyens d'étalement du dernier élément dudit symbole étalé, avant ledit ajout d'éléments d'équilibrage, lorsque le nombre desdits éléments de ladite première valeur est supérieur d'une unité au nombre desdits éléments de ladite deuxième valeur, et lorsque ledit dernier élément dudit symbole étalé est de ladite première valeur. 29. Dispositif de codage selon l'une quelconque des revendications 26 à 28, caractérisé en ce qu'il comprend des moyens de brassage desdits éléments dudit symbole entrant. 30. Dispositif de décodage d'une séquence d'éléments pouvant prendre au moins deux valeurs distinctes, lesdits éléments formant au moins un symbole codé, caractérisé en ce que ledit symbole codé ne possède pas de transitions successives et comprend sensiblement le même nombre d'éléments de chaque valeur, et en ce que ledit dispositif comprend des moyens de décodage de chacun desdits symboles codés, lesdits symboles codés étant décodés séparément. 31. Dispositif de décodage selon la revendication 30, caractérisé en ce qu'il comprend des moyens de désétalement dudit symbole codé, pour former un symbole désétalé, et des moyens d'analyse de la disparité dudit symbole désétalé, pour former un symbole décodé. 32. Dispositif de décodage selon l'une quelconque des revendications 30 et 31, caractérisé en ce qu'il comprend des moyens de brassage inverse des éléments desdits symboles décodés. 33. Système de codage et de décodage caractérisé en ce qu'il comprend au moins un dispositif de codage selon l'une quelconque des revendications 26 à 29 et au moins un dispositif de décodage selon l'une quelconque des revendications 30 à 32. 34. Produit programme d'ordinateur caractérisé en ce que ledit programme comprend des séquences d'instructions adaptées à la mise en oeuvre d'un procédé de codage selon l'une quelconque des revendications 1 à 14 lorsque ledit programme est exécuté sur un ordinateur. 35. Produit programme d'ordinateur caractérisé en ce que ledit programme comprend des séquences d'instructions adaptées à la mise en oeuvre d'un procédé de décodage selon l'une quelconque des revendications 15 à 24 lorsque ledit programme est exécuté sur un ordinateur. 36. Moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, caractérisé en ce qu'il comprend des instructions pour un programme informatique adaptées à mettre en oeuvre le procédé de codage selon l'une quelconque des revendications 1 à 14. 37. Moyen de stockage d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, caractérisé en ce qu'il comprend des instructions pour un programme informatique adaptées à mettre en oeuvre le procédé de décodage selon l'une quelconque des revendications 15 à 24.