Brevet FR2877520A1 — publié le 20060505

-1- PROCEDE ET DISPOSITIF DE GENERATION D'HORLOGE DE DECODAGE A PARTIR D'UN SIGNAL ASYNCHRONE DE DONNEES BASE SUR LA NORME EPC GLOBAL. La présente invention concerne les systèmes RFID (Radio Frequency IDentification), et en particulier le décodage des données provenant d'une étiquette électronique ou carte à puce à lecture sans contact. Elle s'applique notamment, mais non exclusivement aux données transmises conformément à la norme EPC (Electronic Product CodeTM). La figure 1 représente un dispositif d'émission et de réception de données échangées avec une carte à puce 1. En émission vers la carte à puce, les données à transmettre sont appliquées à un modulateur 4 recevant par ailleurs une porteuse. Selon la norme EPC Global, cette porteuse est située dans la bande UHF comprise entre 868 MHz et 925 MHz. Le signal de sortie du modulateur est appliqué à une antenne d'émission/réception 2 par l'intermédiaire d'un coupleur 3. En réception, les données transmises par la carte à puce 1 sont reçues par l'antenne 2 et appliquées par l'intermédiaire du coupleur 3 à un circuit 5 de démodulation IQ, de:Filtrage et d'amplification, permettant d'extraire du signal reçu l'enveloppe de la porteuse constituant les données codées. Ces données codées sont appliquées à un dispositif de décodage 6 qui délivre des données décodées. La figure 2 illustre le principe de codage des données conformément au protocole EPC Class 1 genl. Sur cette figure un "0" binaire est transmis sous la forme d'une période d'un signal carré de période t0, tandis qu'un "1" binaire est transmis sous la forme de deux périodes d'un signal carré de période t0/2 en phase avec le signal correspondant au "0" binaire. La figure 8 représente la forme d'un signal de données codées CD conformément au principe illustré par la figure 2. L'exemple de la figure 8 représente le signal de codage de la donnée binaire "00110000". Généralement, le décodage du signal de données codées reçu, effectué par le dispositif de décodage 6 fait intervenir un microcontrôleur qui doit être piloté par un signal d'horloge CLK synchrone avec le signal de données codées reçu. 2877520 - 2 - La présente invention a pour but de réaliser un dispositif simplifié de décodage et de génération d'un signal d'horloge synchrone avec le signal de données. Cet objectif est atteint par la prévision d'un procédé pour décoder un signal de données binaires codées et pour générer un signal d'horloge synchrone avec le signal de données codées, chaque donnée binaire du signal de données codées ayant une durée prédéfinie, et selon son état binaire la forme d'une période ou de deux périodes d'un signal carré périodique. Selon l'invention, ce procédé comprend des étapes consistant à : générer à partir du signal de données codées un signal de détection de fronts comportant quatre impulsions par état binaire du signal de données codées, échantillonner le signal de données codées toutes les quatre impulsions du signal de détection de fronts, de manière à obtenir un signal binaire de données décodées, et générer à partir du signal de détection de fronts, un signal binaire d'horloge synchrone avec le signal de données codées, présentant un changement d'état logique toutes les deux impulsions du signal de détection de fronts. Selon un mode de réalisation préféré de l'invention, le signal de détection de fronts est généré à partir d'un signal de détection de fronts montants et descendants dans le signal de données codées, et de deux signaux de détection d'un front montant et descendant dans les données à 0 du signal de données codées. Selon un mode de réalisation préféré de l'invention, les signaux de détection de fronts descendants et montants dans les données codées à 0 sont obtenus en chargeant et déchargeant des condensateurs respectifs en fonction du signal de données codées et respectivement du signal de données codées préalablement inversé, en comparant les signaux obtenus à une tension de seuil, et en détectant des fronts montant dans le signal de comparaison. Selon un mode de réalisation préféré de l'invention, le procédé comprend en outre une étape de comptage du nombre d'impulsions dans le signal de détection de fronts, à l'aide d'un compteur 2 bits qui est initialisé à 0 au début d'une première donnée binaire du signal de données codées, le signal de données codées étant échantillonné lorsque le compteur vaut 3, le signal d'horloge généré passant à l'état haut lorsque le compteur vaut 1 et passant à l'état bas lorsque le compteur vaut 3. L'invention concerne également un dispositif de décodage d'un signal de données binaires codées, et de génération d'un signal d'horloge synchrone avec le signal de données codées, chaque donnée binaire du signal de données codées ayant une durée prédéfinie, et selon son état binaire la forme d'une période ou de deux périodes d'un signal carré périodique. Selon l'invention, ce dispositif comprend un circuit de détection de fronts dans le signal de données codées, conçu pour générer un signal de détection de fronts comportant quatre impulsions par état binaire du signal de données codées, et un circuit d'échantillonnage du signal de données codées, conçu pour échantillonner le signal de données codées toutes les quatre impulsions du signal de détection de fronts, de manière à obtenir un signal binaire de données décodées, et conçu pour générer à partir du signal de détection de fronts, un signal binaire d'horloge synchrone avec le signal de données codées, présentant un changement d'état logique toutes les deux impulsions du signal de détection de fronts. Selon un mode de réalisation préféré de l'invention, le circuit de détection de fronts comprend un circuit de détection de fronts montants et descendants dans le signal de données codées produisant un premier signal de détection de fronts, un circuit de détection de fronts montants dans les données à 0 du signal de données codées, et produisant un second signal de détection de fronts, et un circuit de détection de fronts descendants dans les données à 0 du signal de données codées, et produisant un troisième signal de détection de fronts. Selon un mode de réalisation préféré de l'invention, chacun des circuits de détection de fronts descendants et montants dans les données à 0 du signal de données codées comprennent un condensateur associé à un circuit de charge et de décharge du condensateur, en fonction du signal de données codées, un comparateur pour comparer le signal de charge et de décharge à une tension de seuil et un circuit de détection d'un front montant dans le signal de comparaison, délivrant le signal de détection de fronts descendants, et respectivement le signal de détection de fronts montants. Selon un mode de réalisation préféré (le l'invention, le circuit de charge et de décharge du condensateur de chaque circuit de détection de fronts descendants 2877520 -4- et montants dans les données à 0 du signal de données codées, comprend un ensemble de transistors montés en série, entre une source de courant constant et la masse, et commandés en fonction du signal de données codées. Selon un mode de réalisation préféré de l'invention, le comparateur de chaque circuit de détection de fronts descendants et montants dans les données à 0 du signal de données codées, comprend plusieurs inverseurs montés en série dont les seuils de conduction sont choisis pour correspondre à la tension de seuil. Un mode de réalisation préféré de l'invention sera décrit ci-après, à titre d'exemple non limitatif, avec référence aux dessins annexés dans lesquels: La figure 1 représente un dispositif d'émission et de réception de données échangées avec une carte à puce RFID; La figure 2 illustre le principe de codage des données conformément au protocole EPC Class 1 gen 1; La figure 3 représente schématiquement un dispositif de décodage et de génération d'un signal d'horloge synchrone, selon l'invention; La figure 4 représente un premier circuit de détection de fronts du dispositif montré sur la figure 3; La figure 5 montre la forme de certains signaux dans le premier circuit représenté sur la figure 4; La figure 6 représente un second circuit de traitement du dispositif 25 montré sur la figure 3; La figure 7 montre plus en détail un circuit logique du circuit de traitement représenté sur la figure 6; La figure 8 montre des chronogrammes de différents signaux circulant dans le dispositif représenté sur les figures 3, 4 et 6; 2877520 -.5- La figure 9 représente une variante du circuit de détection de fronts montré sur la figure 4. Le procédé selon l'invention consiste tout d'abord à générer à partir du signal de données codées CD un signal FD comportant quatre impulsions par donnée du signal de données codées CD, puis à compter les impulsions pour échantillonner le signal de données codées CD toutes les quatre impulsions de manière à obtenir un signal binaire BI) de données décodées, et à générer un signal d'horloge CLK synchrone avec le signal CD changeant d'état toutes les deux impulsions. La figure 3 représente un dispositif de décodage et de génération d'un signal d'horloge synchrone, selon l'invention. Ce dispositif comprend: un circuit 6a de détection de fronts recevant le signal de données codées CD 15 et délivrant le signal FD, et un circuit de traitement 6b recevant en entrée le signal de données codées CD, le signal FD et un signal d'initialisation Reset, et délivrant un signal BD des données binaires décodées contenues dans le signal d'entrée CD, et un signal d'horloge CLK synchrone avec le signal CD de données codées appliqué en entrée. Le circuit de détection de fronts 6a représenté sur la figure 4 comprend une résistance R1 recevant le signal CD de données codées, montée en parallèle avec un condensateur C 1 connecté à la masse. Le signal DD transitant au niveau du point de jonction entre la résistance R1 et le condensateur Cl est appliqué à l'entrée inverseuse d'un comparateur 111 dont l'entrée non inverseuse reçoit une tension de référence VR. Le signal de sortie OUT3 du comparateur est appliqué à une entrée d'une première porte ET 15 et traverse une résistance R2 dont l'autre borne est reliée à la masse par l'intermédiaire d'un condensateur C2, et connectée à une porte inverseuse 13. La sortie de la porte inverseuse 13 est connectée à l'autre entrée de la porte ET 15 qui délivre un premier signal FD3 de détection de fronts. Le signal de données codées CD est également appliqué à une porte inverseuse 17 dont la sortie est connectée à une résistance R' 1 montée en parallèle avec un condensateur C' 1 connecté à la masse. Le signal DDN transitant au niveau du point de jonction entre la résistance R' 1 et le condensateur C' 1 est appliqué à 2877520 - 6 - l'entrée non inverseuse d'un comparateur 12 dont l'entrée inverseuse reçoit la tension de référence VR. Le signal de sortie OUT2 du comparateur 12 est appliqué à une entrée d'une porte ET 16 et traverse une résistance R'2 dont l'autre borne est reliée à la masse par l'intermédiaire d'un condensateur C'2, et connectée à une porte inverseuse 14. La sortie de la porte inverseuse 14 est connectée à l'autre entrée de la porte ET 16 qui délivre un second signal FD2 de détection de fronts. Par ailleurs, la sortie de la porte inverseuse 17 est connectée à l'entrée d'une porte OU EXCLUSIF 18, ainsi qu'à une résistance R3 dont l'autre borne est connectée à l'autre entrée de la porte 18 et à la masse par l'intermédiaire d'un condensateur C3. La porte 18 délivre un troisième signal FD 1 de détection des deux (pour un "0" binaire) ou quatre (pour un "1" binaire) fronts montants de chaque donnée codée. Le signal FD1 est appliqué avec les signaux FD2 et FD3 à l'entrée d'une porte OU 19 qui délivre un signal de détection de fronts FD comportant 4 impulsions pour chaque donnée codée. La valeur des résistances Rl et R' 1, et la valeur des condensateurs Cl et C' l sont choisies de manière à ce que la constante de temps R1 ÉC 1 = R' 1 ÉC' 1 soit égale à t0/4, t0 étant la période d'une donnée élémentaire dans le signal de données codées, comme représenté sur les figures 2 et 8. Ainsi, si t0 = 8 s (cas de la norme Européenne de EPC), R1 = R' 1 = 200 kS et Cl= C' 1 = 10 pF. La tension de référence VR est choisie de manière à générer en sortie des deux comparateurs 1l et 12, comme illustré sur les figures 5 et 8: aucune impulsion si la donnée codée correspond à un "1" binaire, une impulsion par donnée codée correspondant à un "0" binaire pour le 30 comparateur 11, et une impulsion par donnée codée correspondant à un "0" binaire pour le comparateur 12. Comme on peut le voir sur la figure 8 qui montre le chronogramme des signaux CD, DD, OUT3 et FD3, DDN, OUT2, FD2, FD1 et FD mentionnés ciavant, le signal FD3 présente une impulsion par front descendant de donnée égale à 0 dans le signal de données codées CD. Le signal FD2 présente une impulsion par front montant de donnée égale à 0 dans le signal de données codées CD. Le 2877520 -7- signal FD 1 présente une impulsion par front montant et descendant dans le signal de données codées CD. Et enfin, le signal FD qui correspond à la somme des signaux FD 1, FD2 et FD3, comporte 4 impulsions pour chaque donnée codée, à savoir pour les données égales à 0, une impulsion fournie par chacun des signaux FD2 et FD3 et deux impulsions fournies par le signal FD 1. Les quatre impulsions pour les données égales à 1 sont fournies par le signal FD 1. Le circuit de traitement 6b montré sur la figure 6 comprend un compteur binaire 21 à deux bits qui reçoit le signal FD et dont la sortie est connectée à un circuit logique 24 comportant trois sorties dont les valeurs respectives dépendent de la valeur du compteur 21. Une première sortie du circuit logique qui délivre un signal logique à 1 si la valeur du compteur est égale à 3, est connectée à une porte ET 23 qui reçoit sur son autre entrée le signal FD inversé par une porte inverseuse 22. La sortie de la porte ET 23 est connectée à l'entrée de signal d'horloge d'une bascule D 25 recevant par ailleurs sur son entrée D le signal de données codées CD et délivrant sur sa sortie Q le signal de données binaires BD des données décodées. Une seconde sortie du circuit logique 24 qui délivre un signal logique à 1 si la valeur du compteur est égale à 1 ou 2, est connectée à l'entrée de D d'une bascule D 28 recevant par ailleurs sur son entrée de signal d'horloge le signal FD inversé par une porte inverseuse 26, et délivrant sur sa sortie Q le signal d'horloge CLK synchrone avec le signal CD de données codées. Les entrées de remise à zéro du compteur binaire 21 et de la bascule 25 sont connectées à une entrée de signal Reset du circuit de traitement 6. Une troisième sortie du circuit logique 24 qui délivre un signal logique à 1 si la valeur du compteur est égale à 0 ou 3., est connectée à une entrée d'une porte OU 27 dont l'autre entrée est connectée à l'entrée de signal Reset du circuit. La sortie de la porte OU 27 est connectée à l'entrée de remise à zéro de la bascule 28. Le principe de fonctionnement du circuit représenté sur la figure 6 est illustré sur la figure 8. Au début de la lecture de la carte à puce 1, le circuit est initialisé par le signal Reset à O. La valeur CPT (lu compteur binaire 21 est alors à "000", tandis que la sortie Q des bascules est à O. Dès qu'un signal CD est reçu de la carte à puce, le signal Reset passe à 1 et le compteur se met à compter les 2877520 -8- impulsions (fronts montants) du signal FD. Lorsque la valeur CPT du compteur atteint "011" (3), le signal provenant de la carte à puce est échantillonné par la bascule 25 sur un front descendant du signal FD, ce qui correspond au décodage binaire du signal de données codées CD. Lorsque la valeur CPT du compteur atteint la valeur "001" (1) ou "010" (2) , le signal d'horloge CLK passe à 1 et pour toutes les autres valeurs du compteur, ce signal passe à 0. Le signal d'horloge CLK ainsi généré est un signal carré de fréquence 1/t0, synchrone avec les fronts (fronts montants et descendants des données à 0 et fronts montants des données à 1) du signal de données codées CD. Comme le signal d'horloge CLK est généré à partir du signal de données codées CD, on est assuré que ces deux signaux sont toujours strictement en phase, même si le signal CD à traiter comporte de légères variations de phase ou de fréquence. Il n'est pas possible d'atteindre un tel résultat avec une boucle à verrouillage de phase. Sur la figure 7 qui montre un exemple de réalisation du circuit logique 24, ce circuit reçoit en entrée les bits 0 et 1 du compteur binaire 21. Le signal logique à 1 si la valeur du compteur est égale à 3 est obtenu à l'aide d'une porte ET 31 recevant en entrée les bits 0 et 1 du compteur binaire 21. Le signal logique à 1 si la valeur du compteur est égale à 0 ou 3 est obtenu à l'aide de la porte ET 31, d'une porte ET 32 à entrées inversées, et d'une porte OU 33 délivrant le signal recherché. La porte ET 32 qui reçoit en entrée les bits 0 et 1 du compteur binaire 21. Les sorties des portes ET 31, 32 sont connectées aux entrées de la porte OU 33. Le signal logique à 1 si la valeur du compteur est égale à 1 ou 2 est obtenu à l'aide d'une porte inverseuse 34 qui inverse le signal en sortie de la porte OU 33. La figure 9 montre une variante du circuit de détection de fronts représenté sur la figure 4. Dans ce circuit, les résistances des ensembles RC du circuit de la figure 4 ont été remplacées par un ensemble de deux transistors MOS, relié à une source de courant, et chacun des comparateurs 11, 12 par un ensemble de trois portes inverseuses en série dont les seuils dépendent de la taille des 2877520 -9- transistors avec lesquels elles sont constituées. Chaque ensemble de transistors MOS comprend un transistor PMOS monté en série avec un transistor NMOS, la source du transistor PMOS étant reliée à une source de courant, tandis que la source du transistor NMOS est connectée à la masse. Les grilles et les drains des deux transistors étant interconnectés et constituant respectivement l'entrée de l'ensemble et la sortie de l'ensemble. Plus précisément, la résistance R1 du circuit représenté sur la figure 4 est remplacée dans la figure 9 par un ensemble de transistors 41 dont la source du transistor PMOS est connectée à une source de courant L14. Le comparateur 11 est remplacé par un ensemble de trois portes inverseuses 42, 43, 44, la sortie de la porte 43 étant connectée à l'entrée de la porte ET 15. La résistance R2 est remplacée par un ensemble de transistors 45, dont la source du transistor PMOS est connectée à une source de courant L11. La résistance R' l est remplacée par un ensemble de transistors 46 dont la source du transistor PMOS est connectée à une source de courant L13. Le comparateur 12 est remplacé par un ensemble de trois portes inverseuses 47, 48, 49, la sortie de la porte 48 étant connectée à l'entrée de la porte ET 16. La résistance R'2 est remplacée par un ensemble de transistors 50, dont la source du transistor PMOS est connectée à la source de courant Lll. La résistance R3 est remplacée par un ensemble de transistors 52, dont la source du transistor PMOS est connectée à une source de courant L12, et la source du transistor NMOS est reliée à une source de courant Ldl. L'entrée du signal de données codées CD est reliée à la grille des deux transistors de l'ensemble 52 par l'intermédiaire d'une porte inverseuse 51, et connectée directement à l'entrée de la porte OU Exclusif 18. Les courants Lll, L12, L13 et L14 sont générés à l'aide d'une source de tension Vdd et d'une source de courant 57 et de transistors PMOS 53, 54, 55, 56 respectifs montés en parallèle, la source et la grille de ces transistors étant connectées au point de jonction entre la source de tension et la source de courant 57, le drain de ces transistor fournissant le courant correspondant L11, L12, L13 et Ll4 dépendant de la taille des transistors respectifs. L'autre borne de la source de courant 57 est connectée à la masse et à la grille d'un transistor NMOS 58 dont la source est connectée à la masse et dont le drain fournit le courant Ldl. Le circuit 6a représenté sur la figure 9 présente l'avantage de supprimer les résistances dont les valeurs varient en fonction de la température, et de ne faire intervenir que des composants facilement intégrables dans un circuit intégré. -10-REVENDICATIONS 1. Procédé pour décoder un signal de données binaires codées (CD) et pour générer un signal d'horloge (CLK) synchrone avec le signal de données codées, chaque donnée binaire du signal de données codées ayant une durée prédéfinie (t0), et selon son état binaire la forme d'une période ou de deux périodes d'un signal carré périodique, caractérisé en ce qu'il comprend des étapes consistant à : générer à partir du signal de données codées (CD) un signal de détection de 10 fronts (FD) comportant quatre impulsions par état binaire du signal de données codées, échantillonner le signal de données codées toutes les quatre impulsions du signal de détection de fronts, de manière à obtenir un signal binaire (BD) de données décodées, et générer à partir du signal de détection de fronts, un signal binaire d'horloge (CLK) synchrone avec le signal d,e données codées (CD), présentant un changement d'état logique toutes les deux impulsions du signal de détection de fronts. 2. Procédé selon la revendication 1, caractérisé en ce que le signal de détection de fronts (FD) est généré à partir d'un signal (FD 1) de détection de fronts montants et descendants dans le signal de données codées (CD), et de deux signaux (FD2, FD3) de détection d'un front montant et descendant dans les données à 0 du signal de données codées. 3. Procédé selon la revendication 2, caractérisé en ce que les signaux (FD3, FD2) de détection de fronts descendants et montants dans les données codées à 0 sont obtenus en chargeant et déchargeant des condensateurs (C 1, C' 1) respectifs en fonction du signal de données codées (CD) et respectivement du signal de données codées (CD) préalablement inversé, en comparant les signaux obtenus à une tension de seuil (VR), et en détectant des fronts montant dans le signal de comparaison. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce qu'il comprend en outre une étape de comptage du nombre d'impulsions dans le signal de détection de fronts (FD), à l'aide d'un compteur 2 bits (21) qui est initialisé à 0 au début d'une première donnée binaire du signal de données codées, le signal de données codées (CD) étant échantillonné 2877520 -11- lorsque le compteur vaut 3, le signal d'horloge (CLK) généré passant à l'état haut lorsque le compteur vaut 1 et passant à l'état bas lorsque le compteur vaut 3. 5. Dispositif de décodage d'un signal de données binaires codées (CD), et de génération d'un signal d'horloge (CLK) synchrone avec le signal de données codées, chaque donnée binaire du signal de données codées ayant une durée prédéfinie (t0), et selon son état binaire la forme d'une période ou de deux périodes d'un signal carré périodique, caractérisé en ce qu'il comprend un circuit (6a) de détection de fronts dans le signal de données codées (CD), conçu pour générer un signal de détection de fronts (FD) comportant quatre impulsions par état binaire du signal de données codées, et un circuit (6b) d'échantillonnage du signal de données codées, conçu pour échantillonner le signal de données codées toutes les quatre impulsions du signal de détection de fronts, de manière à obtenir un signal binaire (BD) de données décodées, et conçu pour générer à partir du signal de détection de fronts, un signal binaire d'horloge (CLK) synchrone avec le signal de données codées (CD), présentant un changement d'état logique toutes les deux impulsions du signal de détection de fronts. 6. Dispositif selon la revendication 5, caractérisé en ce que le circuit (6a) de détection de fronts comprend un circuit (R3, C3, 18) de détection de fronts montants et descendants dans le signal de données codées (CD) produisant un premier signal de détection de fronts (FD1), un circuit (17, R'!, C' l, 12, R'2, C'2, 14, 16) de détection de fronts montants dans les données à 0 du signal de données codées, et produisant un second signal de détection de fronts (FD2), et un circuit de détection (R1, Cl, 1l, R2, C2, 13, 15) de fronts descendants dans les données à 0 du signal de données codées, et produisant un troisième signal de détection de fronts (FD3). 7. Dispositif selon la revendication 5 ou 6, caractérisé en ce que chacun des circuits de détection de fronts descendants et montants dans les données à 0 du signal de données codées (CD) comprennent un condensateur (C 1, C' 1) associé à un circuit de charge et de décharge du condensateur, en fonction du signal de données codées, un comparateur (11, 12) pour comparer le signal de charge et de décharge à une tension de seuil (VR) et un circuit de détection d'un front montant dans le signal de comparaison, délivrant le signal (FD3) de détection de fronts descendants, et respectivement le signal (FD2) de détection de fronts montants. 8. Dispositif selon la revendication 7, caractérisé en ce que le circuit de charge et de décharge du condensateur (Cl, C' 1) de chaque circuit de détection de fronts descendants et montants dans les données à 0 du signal de données codées (CD), comprend un ensemble de transistors montés en série, entre une source de courant (L13, L14) constant et la masse, et commandés en fonction du signal de données codées (CD). 9. Dispositif selon la revendication 7 ou 8, caractérisé en ce que le comparateur de chaque circuit de détection de fronts descendants et montants dans les données à 0 du signal de données codées (CD), comprend plusieurs inverseurs (42 à 44, 47 à 49) montés en série dont les seuils de conduction sont choisis pour correspondre à la tension de seuil (VR).