FR 2734430 A1 19961122 FR 9505709 A 19950515 PROCEDE DE DECODAGE MANCHESTER PAR MICROCONTROLEUR, ET DISPOSITIF DE MISE EN OEUVRE DE CE PROCEDE DESCRIPTION Domaine technique La présente invention concerne un procédé de décodage Manchester par microcontrôleur, et un dispositif de mise en oeuvre de ce procédé. Etat de la technique antérieure Le domaine d'application de l'invention est celui des transmissions de données utilisant le code Manchester, et plus spécifiquement celui des cartes sans contact et des étiquettes électroniques. Dans de nombreux systèmes les informations binaires sont codées afin d'améliorer la transmission. Le code Manchester est utilisé pour éviter de transmettre une suite de bits à "0", qui entraînerait une perte d'information. Dans le codage Manchester, chaque bit est codé par deux états: * Une transition positive en milieu de bit détermine un zéro, donc un "0" est codé "01"; * Une transition négative en milieu de bit détermine un un, donc un "1" est codé "10". Ces transitions sont celles qui sont utilisées dans la réalisation pratique ultérieure; mais ce peut également être l'inverse. Le code Manchester est universellement connu. La partie codage est réalisée facilement avec des fonctions du type "OU-EXCLUSIF", par contre la partie décodage est plus difficile à réaliser, notamment en composants discrets. Ce code Manchester est notamment décrit comme "code biphase" dans un ouvrage de Michel Stein intitulé "Les modems pour transmission de données" (pages 92 à 99, collection technique et scientifique des télécommunications CNET-ENST, 2ème édition, MASSON). SP 10277.C/DB Un décodeur Manchester en composants discrets, illustré à la figure 4.7 de cet ouvrage, est représenté sur la figure 1; le signal s(t) étant le signal Manchester, et le signal x(t) le signal binaire, T représentant une ligne à retard. La figure 2 illustre le synoptique d'un récepteur traditionnel sans ligne à retard comprenant une antenne 10, un mélangeur 11, un décodeur Manchester numérique 12 et une logique de réception 13, par exemple un ordinateur de type PC, en série. Un oscillateur local 14 est connecté au mélangeur 11. Un extracteur d'horloge 15 est relié entre la sortie du mélangeur 11 et une seconde entrée du décodeur Manchester 12. L'objet de l'invention est de réaliser un décodage Manchester avec un microcontrôleur d'usage général, ne disposant pas de l'horloge de transmission, et d'éviter par un moyen simple toute perte de synchronisation. ExDosé de l'invention L'invention concerne un procédé de décodage d'un signal codé Manchester en provenance de toute transmission de données utilisant, un organe de décodage de type microcontrôleur qui ne dispose pas de l'horloge de transmission, ledit procédé comprenant une étape de synchronisation automatique. Dans le procédé de l'invention: - dans une étape préliminaire on ne prend pas en compte un nombre déterminé de bits; - dans une première étape on détecte un changement d'état; - dans une seconde étape on se décale d'une durée de 3T/4 pour se placer en milieu du premier élément du bit suivant, T étant la durée d'un bit; - on répète le cycle formé de ces deux dernières étapes jusqu'à détection d'un ou plusieurs bit(s) de rupture; - on répète ce cycle jusqu'à ce que le nombre de bits recçus soit égal au nombre de bits espérés. SP 10277.C/DB On peut utiliser les fronts montants et descendants des données. On peut également utiliser les états "0" et "1" des données. L'originalité de ce décodage Manchester est de se resynchroniser à chaque élément binaire sans nécessiter de signal horloge auxiliaire. Avantageusement le microcontrôleur est un microcontrôleur Motorola de type 6805. Un tel microcontrôleur est décrit notamment dans une notice de Motorola "MC 68 HC 705 C8 Technical Data" au vu de la figure 1-1, et des pages 4-1 à 4-7. Le procédé de l'invention peut être utilisé notamment dans le domaine des cartes sans contact, et dans celui des étiquettes électroniques. Brève description des dessins - La figure 1 illustre un décodeur Manchester de l'art connu; - la figure 2 illustre le synoptique d'un récepteur traditionnel d'un signal codé Manchester; - la figure 3 illustre le synoptique du récepteur de l'invention, sans extracteur d'horloge; -les figures 4 et 5 représentent respectivement un chronogramme et un organigramme illustrant le fonctionnement du procédé de l'invention; - la figure 6 illustre un décodeur Manchester selon l'invention avec un microcontrôleur de type Motorola. ExDosé détaillé de modes de réalisation Le début d'une trame Manchester est délimité par un fanion, composé de bits identiques, suivi d'au moins un bit de rupture. Ce fanion permet de se synchroniser et d'indiquer le premier élément d'information utile. Le procédé de l'invention comprend une étape de synchronisation dans laquelle on ne prend pas en compte un nombre prédéterminé de bits; on détecte ensuite un changement d'état et on se décale d'une durée de 3T/4, pour se placer au milieu du premier élément du bit suivant,T étant la durée d'un bit. Le cycle formé par SP 10277.C/DB ces deux étapes est répété jusqu'à détection de la rupture. Ce cycle recommence alors jusqu'à ce que le nombre de bits reçus soit égal au nombre de bits espérés. Dans une première variante de réalisation le procédé de l'invention utilise les fronts montants ou descendants des données. L'entrée du microcontrôleur, sur laquelle arrive les données, est alors sensible aux fronts des données. La sensibilité de l'entrée est programmable soit sur les fronts montants soit sur les fronts descendants. Lorsqu'un front, correspondant à la sensibilité, arrive sur l'entrée, le o10 microcontrôleur automatiquement hisse un témoin pour avertir les processus qu'un front est arrivé. Le fanion est essentiellement composé de bits identiques (des zéros) suivi d'une rupture, bit différent (un bit à un) ou une entête, 1101 par exemple. Au démarrage de la trame, le filtrage n'étant pas stabilisé, certains condensateurs n'étant pas suffisamment chargés, le rapport cyclique des premiers bits n'est pas de cinquante pour cent. L'algorithme laisse passer les premiers bits et se synchronise sur le premier bit correct, après une temporisation correspondant aux n premiers bits abîmés. A ce moment une entrée du microcontrôleur est programmée pour être sensible aux fronts montants des premiers bits à zéro. Dès que le front montant du bit à zéro arrive, un témoin est positionné. Il suffit alors de se décaler de 3T/4 pour se placer au milieu du premier élément du bit à zéro suivant. L'action se répète jusqu'à la détection d'un état un, premier intervalle du bit de rupture ou de l'entête. Elle est suivie par un décalage de 3T/4. Dès lors, le cycle peut se répéter: le test de l'état de la ligne, après le décalage, aboutit à: Si l'état = 0, I'entrée est programmée pour être sensible aux fronts montants (cas d'un bit à zéro), un bit "0" est stocké. Si l'état = 1, I'entrée est programmée pour être sensible aux fronts descendants (cas d'un bit à un), un bit "1" est stocké. Dès que le témoin est hissé, le décodage est resynchronisé, le décalage de 3T/4 a lieu et le cycle recommence. La sortie de la boucle a lieu SP 10277.C/DB lorsque l'entête a été détectée et que le nombre de bits reçus est égal au nombre de bits espérés. Dans une seconde variante de réalisation le procédé de l'invention utilise les états "0" ou "1". Cette deuxième variante, employée lorsque le microcontrôleur ne dispose pas d'entrée programmable sur les fronts, permet de se ramener au même principe de resynchronisation. Au lieu de travailler sur les fronts, le microcontrôleur travaille sur des états. Au démarrage de la trame le microcontrôleur boucle sur l'état "idle", c'est-à-dire un. Lorsque le premier bit à zéro arrive, il boudcle sur l'état 0 puis sur l'état 1 du premier bit à zéro. Comme les premiers bits ont un rapport cyclique dégradé, le microcontrôleur les laisse passer ainsi en boudclant sur leurs états. Ensuite il boucle sur l'état 0 du premier bit à zéro jugé acceptable. Dès que l'état un est détecté, comme dans la variante précédente, il suffit de se décaler de 3T/4 pour se placer au milieu du premier état du bit à zéro suivant. Là l'état zéro est détecté, le microcontrôleur boucle de nouveau sur l'état 0 et dès que l'état 1 est détecté il décale de nouveau de 3T/4. L'action se répète jusqu'à la détection, après le décalage, d'un état 1, premier état du premier bit à 1 de l'entête. Dès lors le cycle peut se répéter, le test de l'état de la ligne, après le décalage, aboutit à: - si l'état = 0, un bit à 0 est stocké - si l'état = 1, un bit à 1 est stocké; et dans les deux cas le microcontrôleur boucle sur l'état testé. Dès que l'état suivant, différent, est détecté, le décalage de 3T/4 a lieu et le cycle recommence. Cette détection d'état suivant permet la resynchronisation. La sortie de ce cycle a lieu lorsque l'entête a été détectée et que le nombre de bits reçus est égal au nombre de bits espérés. Dans une telle variante, comme illustré sur la figure 5, qui correspond aux signaux de la figure 4, on laisse tout d'abord passer les n SP 10277.C/DB premiers bits de l'entête qui peuvent être abîmés. Ici n est égal à 5. En bouclant successivement sur les états zéro et un, on a ainsi: - on boudcle sur l'état 0 du premier bit à zéro; - on boucle sur l'état I du premier bit à zéro; - on boudcle sur l'état 0 du second bit à zéro; - on boudcle sur l'état 1 du second bit à zéro; - on boucle sur l'état 0 du troisième bit à zéro; - on boucle sur l'état I du troisième bit à zéro; - on boudcle sur l'état 0 du quatrième bit à zéro; - on boucle sur l'état I du quatrième bit à zéro; - on boudcle sur l'état 0 du cinquième bit à zéro; - on boucle sur l'état 1 du cinquième bit à zéro. Le sixième bit est donc le point de départ de détection de fin d'entête. On boucle sur l'état zéro du sixième bit à zéro. Dès que l'état 1 est détecté, on effectue un décalage de 3T/4. La différence entre les deux variantes apparaît à la fin de la temporisation de 3T/4. Dans la variante utilisant les fronts on programme la sensibilité et le matériel du microcontrôleur assure le basculement d'un témoin. Avec cette variante le travail par "polling" ou le travail par "interruption" est possible. Dans la variante utilisant les états il n'est pas fait appel au matériel du microcontrôleur et là seul le "polling" semble possible. Ainsi avantageusement, l'organe de décodage (le lecteur) est automatiquement resynchronisé à chaque élément binaire. La synchronisation utilisée évite un calibrage fastidieux de temporisation, utilisant un appareil non portable. Le système de mise en oeuvre du procédé de l'invention est portable et peut être employé sur un objet portatif employant un microcontrôleur. Dans une réalisation avantageuse illustrée à la figure 6, le procédé de mise en oeuvre utilise un microcontrôleur de type Motorola 6805 (8 bits, d'horloge extemrne 4 Mhz à quartz) du côté lecteur d'étiquettes (ou du côté cartes). Ce microcontrôleur est capable de décoder un signal Manchester, à 19200 bauds donc de signal utile 9600 bits par seconde, en provenance par exemple d'une étiquette électronique ou d'une carte sans contact. SP 10277.C/DB REVENDICATIONS 1. Procédé de décodage d'un signal codé Manchester en provenance de toute transmission de données, utilisant un organe de décodage de type microcontrôleur, procédé caractérisé en ce qu'il comprend une étape de synchronisation automatique ne nécessitant aucun signal horloge auxiliaire. 2. Procédé selon la revendication 1, caractérisé en ce que: - dans une étape préliminaire on ne prend pas en compte un nombre déterminé de bits; -dans une première étape on détecte un changement d'état; - dans une seconde étape on se décale d'une durée de 3T/4 pour se placer en milieu du premier élément du bit suivant, T étant la durée d'un bit; - on répète le cycle formé de ces deux dernières étapes jusqu'à détection d'un ou plusieurs bit(s) de rupture; - on répète ce cycle jusqu'à ce que le nombre de bits reçus soit égal au nombre de bits espérés. 3. Procédé selon la revendication 2, caractérisé en ce qu'on utilise les fronts montants et descendants des données. 4. Procédé selon la revendication 2, caractérisé en ce qu'on utilise les états "0" et "1" des données. 5. Procédé selon la revendication 1, caractérisé en ce que le microcontrôleur est un microcontrôleur de type Motorola 6805. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est utilisé dans le domaine des cartes sans contact. 7. Procédé selon l'une quelconque des revendications I à 5, caractérisé en ce qu'il est utilisé dans le domaine des étiquettes électroniques. 8. Dispositif de mise en oeuvre du procédé selon l'une quelconque des revendications I à 7, caractérisé en ce qu'il comprend un microcontrôleur de type Motorola 6805. SP 10277.C/DB