Brevet FR2796226A1 — publié le 20010112

Décodeur de signaux binaires transmis à une carte à puce sans contact par modulation de position d'impulsions L'invention concerne un décodeur de signaux binaires. Plus particulièrement, l'invention concerne les cartes à puce sans contact, dans lesquelles des données binaires sont transmises en radiofréquence entre le lecteur et la carte, par modulation de position d'impulsions. Dans les cartes à puce sans contact, les données binaires transmises entre le lecteur et la carte, qui peuvent être par exemple des instructions, des adresses ou bien des données, constituent en général un signal binaire, qui a par exemple la forme représentée par le diagramme de la figure la. De plus, la carte à puce ne disposant pas de source d'énergie interne, l'énergie nécessaire à son fonctionnement doit lui être fournie par l'intermédiaire du signal transmis par le lecteur. En général, le lecteur transmet l'énergie et les données binaires simultanément à travers un signal d'une fréquence porteuse fo, par exemple de 13.56 MHz, modulé en amplitude par les chiffres des données binaires à transmettre. Le signal modulé a par exemple la forme représentée par le diagramme de la figure lb, où la différence entre un "0" (62) et un "1" (63) logiques apparaît dans la variation d'amplitude du signal modulé. Les données binaires sont ainsi transmises, chiffre par chiffre, par exemple avec une vitesse de transmission de 106 kbits/s. Un circuit de production d'une basse tension d'alimentation, intégré à la carte à puce, exploite le signal reçu par la carte et lui fournit l'énergie nécessaire au fonctionnement de ses circuits, sous la forme d'une basse tension d'alimentation de l'ordre de 2 à 5 V. En parallèle, un démodulateur démodule le signal reçu et fournit les données binaires sous la forme d'un signal binaire tel que celui représenté sur la figure 1a. Le signal binaire comprend des impulsions basses (60), correspondant par exemple à un "0" logique, et des impulsions hautes (61), correspondant par exemple à un "1" logique. Si les données binaires sont transmises à une vitesse de transmission de 106 kbits/s, chaque impulsion dure 1/106.103, soit 9.44 fis. Enfin, un circuit de décodage permet à la puce de transformer le signal binaire reçu en un code exploitable par la carte. L'énergie consommée par la puce pour le décodage du signal binaire dépend de la vitesse de transmission des données binaires et du nombre d'impulsions basses présentes sur le signal binaire à décoder. Si l'énergie transmise à la carte n'est pas suffisante, les données binaires sont mal décodées ou bien la carte ne peut les utiliser correctement. La quantité d'énergie reçue par la carte à puce dépend avant tout de la quantité d'énergie émise par le lecteur dont la valeur maximale est limitée par les normes ISO. La quantité d'énergie reçue par la carte dépend également de l'amplitude moyenne du signal modulé transmis par le lecteur et elle varie, entre autre, lorsque la distance entre le lecteur et la carte et/ou la vitesse de transmission des données binaires et/ou le nombre d'impulsions basses présentes sur le signal binaire à décoder varient. L'énergie reçue par la carte n'est pas entièrement exploitable. En effet, seule l'énergie contenue dans le signal de fréquence porteuse fo est utilisable par la carte. Or, lorsque le signal de fréquence porteuse fo est modulé en amplitude par les chiffres des données binaires à transmettre, une partie de l'énergie de ce signal est répartie sur les signaux de fréquences latérales et est perdue pour la carte. La quantité d'énergie ainsi perdue dans les bandes de fréquences latérales dépend essentiellement de la vitesse de transmission des données binaires et/ou du nombre d'impulsions basses présentes sur le signal binaire transmis à la carte. La quantité d'énergie reçue par la carte étant limitée, il est évidement préférable d'en perdre le moins possible au cours de la modulation. Pour cela, il est nécessaire de réduire la vitesse de transmission des données binaires et/ou le nombre d'impulsions basses présentes sur le signal binaire à décoder de façon que l'énergie transmise et exploitable par la carte reste suffisante pour assurer un fonctionnement correct de cette dernière. Pour réduire la vitesse de transmission des données binaires ainsi que le nombre d'impulsions basses à transmettre, les données binaires peuvent être transmises sous la forme d'une série de nombres codés par position d'impulsions. Pour cela, les données binaires à transmettre sont tout d'abord découpées en nombres N de n bits, n étant un nombre entier, par exemple égal à 8. Chaque nombre N de n bits est ensuite remplacé par un nombre binaire codé de 2n+1 bits dont tous les chiffres sont égaux à "1" sauf le chiffre de poids 2*X-1 qui est nul, X étant un nombre décimal (c'est-à-dire en base 10) compris entre 0 et 2n -1, X étant la traduction en nombre décimal du nombre binaire N de n bits. Un nombre N de n bits codé par position d'impulsions constitue ainsi un signal binaire codé ayant par exemple la forme représentée par le diagramme de la figure 1c. Le signal binaire codé comprend une première impulsion basse 64 annonçant le début du nombre binaire codé et une seconde impulsion basse 65, correspondant au chiffre de poids 2*X-1 du nombre binaire codé. Dans notre exemple, la première 64 et la seconde 65 impulsions basses ont une forme et une durée identique, par exemple 9,44 #ts si n = 8. Cependant, il serait possible de remplacer la première impulsion basse 64 par exemple par une impulsion basse de durée double (18,88s) ou par toute autre impulsion basse ou série d'impulsions basses de forme et/ou de durée différentes de celles de la seconde impulsion basse 65, ceci afin de différencier nettement la première impulsion basse 64, qui annonce le début d'un nombre binaire codé, de la seconde impulsion basse 65 qui correspond au chiffre de poids 2*X-1 du nombre binaire codé. Le signal binaire codé est ensuite transmis à la puce par un signal radiofréquence modulé en amplitude, par exemple avec une vitesse de transmission de 106 kbits/s. Le signal modulé a alors la forme représentée par le diagramme de la figure 1d. La transmission d'un nombre binaire N de n bits, sous la forme d'un nombre codé par position d'impulsions, se fait ainsi à une vitesse apparente égale à n/(1+2n+1)*106 kbits/s, soit 1.65 kbits/s si n = 8, la vitesse de transmission des données binaires est donc réduite. De plus, le nombre d'impulsions basses présentes sur le signal binaire codé est également réduit puisque un signal binaire codé représentant une donnée binaire de n bits ne contient que deux impulsions basses. Un démodulateur intégré à la carte démodule le signal reçu et fournit le signal binaire codé, contenant les données binaires sous la forme d'une série de nombres codés par position d'impulsions, non directement exploitable par la carte. Le but de la présente invention est de proposer un décodeur de données binaires permettant de transcrire les données binaires transmises sous la forme d'une série de nombres codés par position d'impulsions en des données binaires exploitables par la carte à puce. Pour cela, l'invention propose un décodeur de signaux binaires transmis à une carte à puce par modulation de position d'impulsions, les signaux binaires représentant au moins un nombre binaire de 2n+1 bits codé par position d'impulsions correspondant à un nombre binaire N de n bits, n étant un nombre entier, le décodeur de signaux binaires étant caractérisé en ce qu'il comprend - un circuit de comptage pour compter des impulsions d'un signal d'horloge et fournir le nombre binaire N, - un circuit de mémorisation pour mémoriser le nombre binaire N et - un circuit de commande qui reçoit un signal binaire à décoder et qui fournit un signal de validation pour démarrer le circuit de comptage et un signal de mémorisation pour effectuer le transfert du nombre N depuis le circuit de comptage vers le circuit de mémorisation. L'invention sera mieux comprise et d'autres particularités et avantages apparaîtront à la lecture de la description détaillée qui va suivre, cette description faisant référence aux dessins annexés dans lesquels les figures la à 1d sont des diagrammes illustrant la transmission des signaux binaires entre une carte à puce et un lecteur, la figure 2 est un schéma d'un décodeur de signaux binaires transmis à la carte à puce par modulation de position d'impulsions, selon l'invention, et les figures 3a à 3f sont des diagrammes de signaux à certains points du décodeur de signaux binaires de la figure 2. Le décodeur de signaux binaires comprend, conformément à la figure 2, un circuit de comptage 10 comprenant un compteur 11 et un filtre 12, un circuit de mémorisation 20 et un circuit de commande 40. Le compteur 11 comprend une borne d'entrée d'horloge 13, une borne d'entrée de validation 14 et n bornes de sortie de résultat 15o à 15n_1. Le compteur 11 comporte également une borne de sortie 17 connectée à une borne d'entrée du filtre 12 dont une sortie est connectée à une borne de sortie d'état 16 du circuit de comptage 10. Le compteur 11 est un compteur de n bits qui fournit, sur les n bornes de sortie de résultat 150 à 15n_1, un nombre de n bits compris entre 0 et 2n -1. Le compteur 11 est réalisé à partir de portes logiques et de bascules synchrones selon un schéma connu. Le circuit de comptage 10 fonctionne de la manière suivante. Lorsqu'un signal de validation égal à "1" est appliqué sur la borne d'entrée de validation 14, le compteur 11 compte le nombre d'impulsions reçues sur la borne d'entrée d'horloge 13 et fournit un nombre d'impulsions comptées X sur les bornes de sortie de résultat 150 à 15"_1. Lorsque le compteur 11 atteint sa valeur maximale, c'est-à-dire 2n -l, il fournit un signal d'arrêt qui est transmis à la borne de sortie d'état 16 par l'intermédiaire du filtre 12. Le filtre 12 est nécessaire pour éliminer les signaux parasites qui peuvent éventuellement apparaître sur la borne de sortie 16 lorsque l'une des portes logiques que comprend le compteur 11 change d'état. Le filtre 12 est réalisé à partir de portes logiques et d'éléments capacitifs selon un schéma connu. Le circuit de mémorisation 20 comprend deux inverseurs 25, 26 et n bascules 210 à 21n_1 comprenant chacune une borne d'entrée de données D, une borne d'entrée d'horloge CLK, une borne d'entrée de remise à zéro RST et une borne de sortie de résultat Q. Les bascules 210 à 21n_1 sont par exemple des bascules de type D synchrone, dans lesquelles le signal de sortie est égal au signal d'entré retardé d'un cycle d'horloge. Le circuit de mémorisation 20 comprend n bornes d'entrée de données 270 à 27n_1 connectées respectivement aux bornes de sortie de résultat 150 à 15n_1 du circuit de comptage 10 et aux bornes d'entrée de données des bascules 210 à 21n_1. Le circuit de mémorisation comprend également n bornes de sortie de données 300 à 30n_1. Les bornes d'entrée d'horloge CLK de toutes les bascules 210 à 21n_1 sont reliées ensemble et connectées à une première borne d'entrée de validation 28 du circuit de mémorisation 20 par l'intermédiaire de l'inverseur 25. De même, les bornes d'entrée de remise à zéro de toutes les bascules 210 à 21n_1 sont reliées ensemble et connectées à une deuxième borne d'entrée de validation 29 du circuit de mémorisation 20 par l'intermédiaire de l'inverseur 26 pour recevoir le signal de mise sous tension POR. Le circuit de commande 40 comprend une borne d'entrée d'alimentation 41 pour recevoir une tension d'alimentation Vc,, une borne d'entrée de données 42 pour recevoir un signal binaire à décoder SDA, une borne d'entrée de validation d'arrêt 43 et une borne d'entrée de mise sous tension 44 pour recevoir un signal de mise sous tension POR. Le circuit de commande 40 fournit un signal de validation et un signal de mémorisation sur des première et deuxième bornes de sortie de commande 45, 46 connectées respectivement à la borne d'entrée de validation 14 du circuit de comptage 10 et à la première borne d'entrée de validation 28 du circuit de mémorisation 20. Le circuit de commande 40 comprend une première 47 et une deuxième 48 bascules, par exemple de type D synchrone, un inverseur 49 et une porte logique 50. Les première et deuxième bascules 47, 48 comportent chacune une borne d'entrée de données D, une borne d'entrée d'horloge CLK, une borne d'entrée de remise à zéro RST et une borne de sortie Q. La deuxième bascule 48 comporte en outre une borne de sortie Q'. La borne d'entrée D de la deuxième bascule 48 est connectée à sa borne de sortie Q' et sa borne d'entrée d'horloge CLK est connectée à la borne d'entrée 42 du circuit de commande 40 par l'intermédiaire de l'inverseur 49. La borne de sortie Q de la deuxième bascule 48 est connectée, d'une part, à la borne d'entrée d'horloge CLK de la première bascule 47 et, d'autre part, à la deuxième borne de sortie de commande 46 du circuit de commande 40. La borne d'entrée D de la première bascule 47 est connectée à la borne d'entrée d'alimentation 41 et sa borne de sortie Q est reliée à la première borne de sortie de commande 45. La porte logique 50 comprend deux bornes d'entrées connectées respectivement aux bornes d'entrée 43 et 44 du circuit de commande 30, et une borne de sortie connectée à la borne d'entrée de remise à zéro RST des première et deuxième bascules 47 et 48. Le fonctionnement du décodeur de signaux binaires va maintenant être décrit, en relation avec les figures 3a à 3f. Dans l'exemple qui suit, le signal binaire à décoder SDA a la forme représentée par le diagramme de la figure 3c et il représente un nombre binaire de 2 +1 bits codé par position d'impulsions correspondant à un nombre binaire N de n bits. Le signal binaire SDA comprend une première et une deuxième impulsions basses (références 71 et 74) Lors de la mise sous tension initiale, une impulsion haute (valeur logique 1) appliquée au signal de mise sous tension POR (référence 70, figure 3a) entraîne l'initialisation des bascules 47, 48 et 210 à 21"_1. Le circuit de commande 40 fournit alors un signal de validation nul sur sa première borne de sortie de commande 45 qui met à zéro le circuit de comptage 10. Le circuit de comptage reçoit, sur sa borne d'entrée d'horloge 13, le signal CP (figure 3b) fourni par une horloge cadencée à une fréquence f choisie telle que f = fo/2, où fo est la vitesse de transmission des chiffres binaires transmis à la carte. Lorsque la première impulsion basse (valeur logique 0) apparaît sur le signal binaire à décoder SDA (référence 71, figure 3c), les première et deuxième bascules 47 et 48 fournissent un "1" logique sur les première et deuxième bornes de sortie de commande 45 et 46 du circuit de commande 40 (références 72 et 73, figures 3d et 3e) . Le circuit de comptage 10 recevant un signal de validation égal à 1, le compteur 11 compte les impulsions hautes du signal d'horloge CP et fournit un nombre d'impulsions comptées sur ses bornes de sortie de résultat 150 à 15,,_1. Lorsque la seconde impulsion basse apparaît sur le signal binaire à décoder SDA (référence 74, figure 3c), la deuxième bascule 48 fournit un "0" sur sa borne de sortie Q. La première bascule 47 recevant un "0" sur sa borne d'entrée d'horloge CLK, son état reste inchangé. Le circuit de commande 40 fournit ainsi un "1" sur sa première borne de sortie de commande 45 et un "0" sur sa deuxième borne de sortie de commande 46 (référence 75, figure 3e). Le circuit de mémorisation 20 recevant un "0" sur sa première borne d'entrée de validation 28, il enregistre le nombre d'impulsions comptées présent sur ses bornes d'entrée de données 270 à 27"_1 et qui est égal au nombre N. Lorsque le compteur 11 atteint sa valeur maximale, égale à 2' -1, le circuit de comptage 10 fournit une impulsion haute sur sa borne de sortie d'état 16 (référence 76, figure 3f). Le circuit de commande 40 recevant un "1" sur sa borne d'entrée de validation d'arrêt 43, la porte logique 50 fournit un "0" sur sa borne de sortie qui entraîne la remise à zéro des première et deuxième bascules 47 et 48. Le décodeur de signaux est ainsi revenu à son état initial. REVENDICATIONS 1. Décodeur de signaux binaires transmis à une carte à puce par modulation de position d'impulsions, les signaux binaires représentant au moins un nombre binaire de 2 +l bits codé par position d'impulsions correspondant à un nombre binaire N de n bits, n étant un nombre entier, le décodeur de signaux binaires étant caractérisé en ce qu'il comprend - un circuit de comptage (10) pour compter des impulsions d'un signal d'horloge (CP) et fournir le nombre binaire N, - un circuit de mémorisation (20) pour mémoriser le nombre binaire N et - un circuit de commande (40) qui reçoit un signal binaire à décoder (SDA) et qui fournit un signal de validation pour démarrer le circuit de comptage (10) et un signal de mémorisation pour effectuer le transfert du nombre N depuis le circuit de comptage (10) vers le circuit de mémorisation (50). 2. Décodeur selon la revendication 1, caractérisé en ce que le circuit de commande (40) comprend - une première bascule (47) qui fournit le signal de validation lorsqu'une première impulsion basse (71) apparaît sur le signal binaire à décoder (SDA), - une deuxième bascule (48) qui fournit le signal de mémorisation lorsqu'une deuxième impulsion basse (74) apparaît sur le signal binaire à décoder (SDA). 3. Décodeur selon l'une des revendications 1 et 2, caractérisé en ce que le circuit de commande (40) comporte en outre une porte logique (50) qui fournit un signal de remise à zéro à une borne d'entrée de remise à zéro (RST) des première et deuxième bascules (27, 28), le signal de remise à zéro étant fourni lors d'une mise sous tension du circuit ou lorsque le circuit de comptage (10) a atteint un nombre maximum d'impulsions comptées. 4. Décodeur selon l'une des revendications 1 à 3 caractérisé en ce que le circuit de mémorisation (20) comprend n bascules (21o à 21"_1) pour enregistrer les n bits du nombre N.