Brevet FR2605473A1 — publié le 19880422

PROCEDE ET APPAREIL DE CODAGE ET DE DECODAGE D'INFORMATIONS BINAIRES La présente invention concerne un procédé de codage et de décodage d'informations binaires transmises sous forme série. Plus particulièrement, la présente invention s'intéresse à des procédés de codage dans lesquels chaque bit d'information est transmis pendant un intervalle de temps donné constant et dans lequel, pendant chaque intervalle de temps correspondant à 1 bit, il se produit au moins une transition de niveau que ce bit soit un 1 ou un O. Lors de la transmission d'informations sous forme série, entre un dispositif émetteur et un dispositif récepteur, il importe de reconnaître le début de chaque train d'informations dans des buts de synchronisation et d'identification des éléments d'informations. Dans ce but, chaque train d'informations émis est précédé d'un en-tête caractéristique qui doit être reconnu par le récepteur qui doit pouvoir différencier cet en-tête de toute suite possible d'informations normales. Parmi les divers procédés déjà utilisés, l'un des plus simples consiste à émettre une suite de bits d'un niveau prédéterminé plus longue que toute suite de bits identiques possible dans le train d'informations. L'inconvénient de ce procédé simple est qu'un grand nombre de bits, c'est-à-dire d'intervalles de temps, est utilisé par l'en-tête au détriment du transfert d'informations. En conséquence, un objet de la présente invention est de prévoir un procédé permettant, pour le type de code énoncé ci- dessus, de fournir un en-tête caractéristique en utilisant seule- ment deux intervalles de temps de bits. Un autre objet de la présente invention est de prévoir un appareil pour la mise en oeuvre de ce procédé. Un autre objet de la présente invention est de prévoir un tel procédé et un tel appareil particulièrement adaptés au codage et au décodage d'informations transmises selon le code dit Manchester. Pour atteindre ces objets, la présente invention prévoit un procédé de codage et de décodage de trains d'informations suc- cessifs codés selon un code série, chaque bit d'information étant transmis pendant un intervalle de temps déterminé, au moins un changement de niveau apparaissant pour chaque bit pendant cet intervalle de temps, dans lequel, lors du codage, chaque train d'informations est précédé d'un en-tête d'une durée de deux inter- valles de temps déterminés pendant lequel une violation du code est réalisée de sorte que, pendant au moins un intervalle de temps, aucune transition n'apparaît et dans lequel, au décodage on détecte ladite violation pour repérer l'en-tête. Plus particulièrement, la présente invention prévoit un procédé de codage et de décodage de trains d'informations suc- cessifs codés selon un code Manchester, c'est-à-dire un code série dans lequel chaque bit d'information est transmis sous forme de la succession pendant un intervalle de temps déterminé d'un niveau bas puis d'un niveau haut pour un "1" et de la succession pendant un même intervalle de temps d'un niveau haut puis d'un niveau bas pour un "0"; lors du codage, chaque train d'informations est précédé d'un en-tête d'une durée de deux intervalles de temps déterminés pendant laquelle une violation du code est réalisée de sorte que, pendant une durée supérieure à un intervalle de temps déterminé, le signal codé soit à un même niveau; au décodage, on détecte cette durée plus longue pour repérer ledit en-tête. Ladite violation peut être constituée d'un niveau bas pendant un inter- valle de temps suivi d'un "1" Manchester pendant l'intervalle de temps suivant d'o il résulte que le signal codé est à niveau bas pendant au moins un intervalle de temps donné et demi. Ces objets, caractéristiques et avantages de la présente invention seront exposés plus en détail dans la description suivante d'un mode de réalisation particulier faite en relation avec les figures jointes parmi lesquelles: la figure 1 représente sous forme d'un tableau la correspondance entre une suite de deux bits dans un code binaire normal et dans un code Manchester; la figure 2A représente un codeur Manchester la figure 2B représente des signaux présents en différents points du circuit de la figure 2A, la figure 3 représente un récepteur décodeur selon l'invention; la figure 4 représente sous forme d'un diagramme d'état le schéma logique mis en oeuvre par le décodeur de la figure 3, et les figures 5A et 5B représentent des signaux Manchester '1" et "0", respectivement, suivant un en-tête selon la présente invention. Bien que l'invention s'applique de façon générale à tout procédé de codage dans lequel chaque bit est transmis sous forme d'un signal de durée constante présentant au moins une transition de niveau électrique, c'est-à-dire à des procédés de codage dits actifs ou à transmission d'horloge, elle sera décrite ici par souci de simplicité en relation avec un codage actif particulier qui est le codage Manchester. La convention de codage Manchester est illustrée dans le tableau de la figure 1. Chaque bit est transmis pendant un inter- valle de temps de durée déterminée 2L. Un 'O' est codé sous forme de la suite d'un signal de haut niveau de durée L puis d'un signal de bas niveau de durée L. Inversement, un "1" est transmis sous forme de la suite d'un signal à bas niveau de durée L puis d'un signal à haut niveau de durée L. Le tableau de la figure 1 illustre les signaux que l'on peut obtenir dans le cas d'une suite de deux bits quelconques dans le cas d'un codage binaire normal o chaque bit est transmis sous forme d'un signal de niveau bas s'il s'agit d'un O0 ou d'un niveau haut s'il s'agit d'un "1" et dans le cas d'un code Manchester. On notera que, dans le cas d'un code Manchester, la durée maximale pendant laquelle on peut obtenir un signal à un niveau donné est une durée 2L, dans le cas o l'on envoie successivement des bits distincts (un "O" et un "1" ou un "1" et un "0"). Dans le cas o l'on envoie une succession de bits identiques, le niveau reste constant pendant une durée maximale d'un demi intervalle de temps, c'est-à-dire L. L'idée fondamentale de la présente invention est de violer ce codage pendant un intervalle de temps au moins pour per- mettre d'observer dans un code émis un intervalle de temps à signal à valeur de durée constante supérieure à 2L. La figure 2A illustre un codeur Manchester élémentaire classique auquel on a adjoint un moyen de violation selon l'invention. Ce codeur comprend essentiellement une porte OU Exclusif 10 qui reçoit sur une première entrée un signal IN correspondant à une succession de bits codés selon un codage binaire normal et sur sa deuxième entrée un signal d'horloge CLK dont la période est égale à la durée 2L d'un bit du signal IN. Ainsi, à la sortie de la porte OU Exclusif 10 on obtient un signal D qui correspond à la suite de signaux d'entrée codés selon un codage Manchester. La figure 2B illustre les signaux IN, CLK et D dans le cas o le signal IN comprend la succession d'un "1" et d'un "0". La sortie de la porte 10 est appliquée à l'entrée D d'une bascule de type D 11 qui reçoit à son entrée d'horloge un signal CCLK à la fréquence double du signal CLK précédemment mentionné. Ceci permet d'obtenir à la sortie Q de la bascule un signal décalé dans le temps d'une durée L/2 par rapport au signal d'entrée D. On évite ainsi les inconvénients liés aux éventuels légers déphasage entre les signaux IN et CLK (passages intem- pestifs de courte durée à "1" ou à "0" au voisinage des tran- sitions du signal CLK). La sortie Q est la sortie normale d'un codeur Manchester. Selon l'invention au lieu d'émettre directement ce signal de sortie, on le fait passer par un circuit logique qui peut être simplement représenté par une porte ET 12 dont la première entrée est connectée à la sortie Q et dont la seconde entrée est reliée à un signal de violation VIOL, cette seconde entrée étant une entrée inversée. Pour fournir un signal d'en-tête selon l'invention, on applique d'abord pendant un premier intervalle de temps le signal VIOL d'o il résulte, comme le montre encore la figure 2B, que l'on obtient pendant cet intervalle de temps un signal à bas niveau quel que soit le bit IN présent à ce moment, puis on appli- que à l'entrée IN un "1". On obtient donc le signal illustré en figure 2B sous la référence M dans lequel, pendant une durée 3L, le signal reste à bas niveau. Si l'application du signal VIOL suit un "O", la durée à bas niveau est de 4L et si elle suit un "1", la durée du signal à bas niveau est de 3L. La figure 3 représente un exemple de circuit de décodage permettant de reconnaître la violation de code Manchester particulière décrite précédemment. Il est toutefois clair que d'autres types de violation pourraient être prévus, du moment qu'on prévoit qu'il existera une durée supérieure à la durée nor- male du code initial pendant laquelle un niveau constant (haut ou bas) sera maintenu. Le circuit de la figure 3, outre la simple fonction de reconnaissance décrite précédemment, permet de fournir des indica- tions spécifiques quant à la détection d'une violation, à l'exis- tence d'erreurs de codage, et permet également d'assurer la synchronisation de phase de l'horloge de réception. L'un des éléments de la figure 3 est un circuit logique ou séquenceur qui peut être réalisé de nombreuses façons, par des circuits câblés, par des circuits prédiffusés, ou par des réseaux logiques programmables (couramment désignés par l'abréviation PLA d'après leur appellation anglo-saxonne Programmable Logic Array). Cet élément est représenté en figure 3 simplement sous forme d'un bloc 20 et les fonctions assurées par ce bloc sont illustrées dans un diagramme d'états représenté en figure 4. Dans le circuit de la figure 3, le réseau logique programmable 20 reçoit comme entrée le signal M-IN provenant de la sortie M de la porte 12 illustrée en figure 2A par une liaison appropriée, par exemple une liaison bifilaire. On pourra prévoir de façon classique que ce signal M- IN est traité par un circuit de mise en forme comprenant diverses bascules. Une autre entrée du circuit 20 est constituée de la sortie d'un décodeur 21 recevant lui-même la sortie d'un circuit de comptage 22. Le circuit de comptage reçoit un signal d'horloge CCLK à une fréquence corres- pondant à seize lois la fréquence correspondant à un intervalle de bit, c'est-à-dire la durée 2L mentionnée précédemment. D'autre part, ce circuit de comptage est remis à "O" par un signal CLEAR fourni par le circuit 20 d'une façon qui sera exposée en relation avec la figure 4. Le circuit de décodage 21 comprend 4 sorties indiquées comme: supérieure à 11, supérieure à 19, supérieure à 27 et supérieure à 36. Pour comprendre la suite il faudra noter que la longueur L correspond à 8 impulsions de comptage, la durée 2L à 16 impulsions de comptage, la durée 3L à 24 impulsions de comptage et la durée 4L à 32 impulsions de comptage. Le circuit 20 fournit des signaux de sortie S, R, CLEAR, RST-VIOL, SET-VIOL et SET-ERR. Le signal S correspond à l'indi- cation que le code Manchester détecté correspond à un "1", le signal R à l'indication que le code Manchester détecté correspond à un 0", le signal CLEAR est un signal de remise à O appliqué comme cela a été indiqué précédemment au compteur 22, le signal RST-VIOL est un signal de remise à O d'une indication de viola- tion, le signal SET-VIOL est un signal d'indication de violation et le signal SET-ERR est un signal d'indication d'erreur. Les signaux S et R sont appliqués aux entrées J et K d'une bascule JK 23 dont la sortie fournit un signal INFR correspondant à la succession d'informations Manchester décodées. Les signaux S, R et CLEAR sont appliqués à une porte NON OU 24 dont la sortie inversée est appliquée à une entrée d'un diviseur par seize 25 pour reconstituer un signal d'asservissement en phase de l'horloge de réception sur la fréquence F = CCLK/16. Les signaux RST-VIOL et SET-VIOL sont appliqués aux entrées J et K d'une bascule JK 26 qui fournit en sortie un signal VIOL d'indication de violation; et les signaux SET-VIOL et SET- ERR sont appliqués à une bascule JK 27 qui fournit sur sa sortie inversée Q' un signal d'erreur ERR. Chacune des bascules JK ainsi que le diviseur 25 reçoit également le signal d'horloge CCLK. La figure 4 représente un diagramme d'état des fonctions réalisées par le PLA 20. Dans ce diagramme, chaque rectangle indi- que un état et chaque losange indique un bloc d'interrogation. L'appellation LINK IN figurant en face des blocs d'interrogation désigne une interrogation de l'état du signal d'entrée M-IN, c'est-à-dire un examen du fait que ce signal est à haut (1) ou bas (0) niveau. L'abréviation GE suivie d'un nombre indique que l'on examine si le signal d'entrée est supérieur à ce nombre. Le symbole -GE suivi d'un nombre indique que l'on examine si le signal d'entrée est inférieur à ce nombre. Dans cette figure 4 les quatre blocs hachurés correspon- dent aux états principaux du système: erreur (bloc 30), violation (bloc 37), code "1" Manchester (bloc 48), et code "O" Manchester (bloc 50). ETAT INITIAL A un état initial illustré par le boc d'état 30, avant que le système soit en fonctionnement, c'est-à-dire avant qu'un signal correct soit transmis ou au commencement de la détection, on est à l'état SET-ERR, c'est-à-dire erreur, CLEAR, c'est-à-dire qu'un signal de remise à zéro est envoyé au compteur 22, R, c'est- à-dire que le signal R est à haut niveau et RST VIOL, c'est-à-dire que le signal de violation est à O. A partir de cet état initial auquel on reviendra, comme on le verra ci-après, chaque fois qu'une erreur apparaîtra dans le code, on recherche la première en-tête de signal utile, c'est-à- dire la première violation. RECHERCHE D'UNE VIOLATION Comme on l'a vu précédemment, une violation se traduit par un niveau haut suivi d'un intervalle de temps égal à 3L ou 4L à niveau bas c'est-à-dire que l'on recherche un comptage supérieur à 19 (2L correspond à 16) et inférieur à 36 (4L correspond à 32). Pour ce faire, dans le bloc d'interrogation 31 on attend le premier niveau haut et l'on remet le compteur 22 à O au bloc 32 (CLEAR) tant que le signal est à niveau haut. Dis que le premier niveau bas détecté par le bloc d'interrogation 33 apparaît, le compteur commence à compter (bloc 34) jusqu'à ce que l'on revienne à niveau haut (changement d'état détecté par le bloc d'interroga- tion 35). On vérifie alors dans le bloc d'interrogation 36 si la durée du niveau bas a correspondu à une durée comprise entre 19 et 36 comptages. Si oui, on passe à l'état 37 (bloc hachuré) qui est un état o sont produits des signaux CLEAR (remise à O) et SET- VIOL (établissement d'un signal de violation). A partir de cet état 37, on recherche si le signal codé immédiatement suivant correspond à un "1" ou à un "0" Manchester. RECHERCHE D'UN "1" MANCHESTER APRES UNE VIOLATION Après une violation, un "1" Manchester se caractérise, comme le représente la figure 4A, par la présence de ia longue durée 3L ou 4L à bas niveau puis d'une durée d'un intervalle L à haut niveau suivie d'une durée d'un intervalle L à bas niveau. Ainsi, on recherchera si l'on a un haut niveau pendant un comptage inférieur à 11 suivi d'un bas niveau pendant un comptage inférieur à 11. Les blocs 38 et 39 représentent un comptage tant que le signal est à niveau haut, lors de la commutation suivante à niveau bas, le bloc d'interrogation 40 détermine si la durée du signal est inférieure à 19 comptages. Sinon on est en état d'erreur et l'on revient au bloc 30. Ensuite, le bloc 41 détermine si la durée de comptage est inférieure à 11 comptages ou comprise entre 11 et 19 comptages. Si elle est inférieure à 11 comptages, on remet le compteur à 0 au bloc 42 et l'on étudie la durée du bas niveau suivant dans les blocs 43 et 44. Si elle est inférieure à 11 comme le détermine le bloc 47, on a bien décodé un "1" Manchester et un etat S est fourni dans le bloc 48 en même temps qu'un signal CLEAR et un signal RST VIOL. Le bloc 45 est destiné à vérifier si le maintien à 0 est supérieur à 27 comptages auquel cas on se trouve en erreur et on revient au bloc 30 et le bloc 46 est destiné à vérifier si ce comptage est compris entre 19 et 27 auquel cas on a découvert un nouvel en-tête et on revient à l'état de violation indiqué dans le bloc 37. RECHERCHE D'UN "O" MANCHESTER APRES UNE VIOLATION Un tel état se caractérise comme le montre la figure 5B par une durée à haut niveau égale à 2L (comptage supérieur à 11 et inférieur à 19) après la détection d'un état bas de durée au moins égale à 3L caractéristique d'un en-tête. Ainsi, si le bloc 41 indique que l'on a détecté un niveau haut pendant une durée comprise entre 11 et 19 comptages, on est certain d'avoir détecté un "O" Manchester et on passe à l'état 50 o le signal R est fourni, de même que les signaux CLEAR et RST-VIOL. Ensuite, il reste à partir de l'état S (détection d'un "1" Manchester - bloc 48) ou de l'état R (détection d'un "O" Manchester - bloc 50) à déterminer quel est le code Manchester suivant. DETECTION DU CODE SUIVANT UN "1" MANCHESTER (ETAT S, BLOC 48) Si le "1" Manchester est suivi d'un autre "1", on doit trouver un état haut inférieur à L (inférieur à 11 comptages) suivi d'un état bas inférieur à L (inférieur à 11 comptages). Ceci est détecté comme cela a été décrit précédemment par la succession d'états et d'interrogations correspondant aux blocs 38 à 47 et on revient à l'état 48. Si le "1" est suivi d'un "O" Manchester, on doit trouver un état haut de durée 2L (durée comprise entre 11 et 19 comptages). Ceci est détecté par la séquence des blocs 38 à 41 et l'on revient à l'état 50. DETECTION DU CODE SUIVANT UN "O" MANCHESTER (ETAT R, BLOC 50) Cette analyse est effectuée par la succession des blocs 51 à 60. Dans les blocs 51 à 56 on détermine si l'état bas sui- vant l'état haut de durée 2L est lui-même supérieur à 2L (supé- rieur à 11). En ce cas, on a détecté un "1" Manchester et le bloc 56 renvoie à l'état 48. Les blocs 53 et 55 correspondent à des détections d'erreur (signaux trop longs ne devant pas exister normalement) et le bloc d'interrogation 54 permet de détecter si l'on a trouvé un état bas de durée comprise entre 19 et 27 auquel cas on revient au bloc 37: détection d'une violation. Si le bloc 56 a montré que l'état bas suivant l'état haut de durée 2L a une durée L (comptage inférieur à 11), on recherche dans les blocs 57 à 60 si l'état haut suivant a une durée égale à L (inférieure à 11). Ceci est déterminé par les blocs 58 à 60. Si cette condition est satisfaite, on a détecté un "0" Manchester et le bloc 60 renvoie au bloc 50. Si cette con- dition n'est pas satisfaite, on se trouve encore en présence d'une erreur et l'on revient au bloc initial 30. Bien entendu, l'organisation logique illustrée en figure 4 pour le PLA 20 de la figure 3 ne constitue qu'un exemple par- ticulier de schéma logique possible et d'autres schémas logiques pourraient être envisagés pour fournir une indication du fait que le signal reçu correspond à une violation, à une erreur, à un "1" Manchester, ou à un "0" Manchester. La figure 4 a seulement été décrite en détail pour montrer que, par un schéma logique facile- ment réalisable sous forme d'un PLA simplement programmable, on peut réaliser une fonction de détection d'en-tête et d'analyse d'une suite de signaux codés par le code Manchester. REVENDICATIONS 1. Procédé de codage et de décodage de trains d'informa- tions successifs codés selon un code série dans lequel chaque bit d'information est transmis pendant un intervalle de temps déter- miné, au moins un changement de niveau apparaissant pour chaque bit pendant cet intervalle de temps, caractérisé en ce que, lors du codage, chaque train d'informations est précédé d'un en-tête d'une durée de deux intervalles de temps déterminés pendant lequel une violation du code est réalisée de sorte que, pendant au moins un intervalle de temps, aucune transition n'apparaît et en ce que, au décodage, on détecte ladite violation pour repérer l'en-tête. 2. Procédé de codage et de décodage de trains d'informa- tions successifs codés selon un code Manchester, c'est-à-dire un code série dans lequel chaque bit d'information est transmis sous forme de la succession pendant un intervalle de temps déterminé (2L) d'un niveau bas puis d'un niveau haut pour un "1' et de la succession pendant un même intervalle de temps d'un niveau haut puis d'un niveau bas pour un "O", caractérisé en ce que, lors du codage, chaque train d'informations est précédé d'un en-tête d'une durée de deux intervalles de temps déterminés (4L) pendant lequel une violation du code est réalisée de sorte que pendant une durée supérieure à un intervalle de temps déterminé le signal codé soit à un même niveau, et en ce que, au décodage, on détecte cette durée plus longue pour repérer ledit en-tête. 3. Procédé selon la revendication 2, caractérisé en ce que ladite violation est constituée d'un niveau bas pendant un intervalle de temps suivi d'un "1" Manchester pendant l'intervalle de temps suivant d'o il résulte que le signal codé est à niveau bas pendant au moins un intervalle de temps et demi (3L). 4. Appareil de codage et de décodage Manchester permet- tant de fournir un signal d'en-tête reconnaissable à partir de seulement deux intervalles de temps correspondant à des durées de bit, caractérisé en ce que le circuit de codage comprend un cir- cuit classique (10, 11) de codage Manchester suivi d'une porte d'inhibition (12) permettant d'imposer un signal à niveau bas pen- dant un intervalle de temps de codage Manchester. 5. Appareil selon la revendication 4, caractérisé en ce que le circuit de décodage comprend des moyens de comptage (22) connectés à une horloge (CCLK) fonctionnant à une fréquence multiple de la fréquence d'horloge de codage Manchester suivis d'un moyen de décodage (21) du comptage pour fournir des signaux selon que la durée de comptage entre deux remises à 0 est supérieure à un demi-intervalle de temps de codage Manchester (L), à un intervalle de temps Manchester (2L), à un intervalle de temps Manchester et demi (3L) ou à deux intervalles de temps Manchester (4L), permettant ainsi de déterminer si l'on se trouve devant une durée de signal à un niveau donné variant à un rythme correspon- dant au rythme de codage, au rythme imposé par la violation, ou à un rythme erroné. 6. Appareil selon la revendication 5, caractérisé en ce que les signaux d'entrée et les signaux du moyen de décodage sont traités par un réseau logique programmable (PLA 20).