FR 2735928 A1 19961227 FR 9507491 A 19950622 CODEUR/DECODEUR MANCHESTER DESCRIPTION Domaine technique La présente invention concerne un codeur/décodeur Manchester. Etat de la technique antérieure Le domaine de l'invention est celui des cartes sans contact de tous types: cartes de proximité, cartes à moyenne et longue distances, cartes monofréquences télealimentées ou alimentées sur pile et cartes multi- fréquences téléalimentées. Le domaine de l'invention est également celui des étiquettes électroniques. Les protocoles d'échange utilisés dans les transmissions entre une carte sans contact et son lecteur procèdent à un codage de l'information transmise. L'objectif essentiel du codage est d'éviter la transmission d'une suite de bits à "0". Dans ce cas, le code Manchester est le code le plus utilisé. Mais ce code introduit une difficulté supplémentaire de réalisation qui réside dans le décodage des données, que ce soit du côté carte ou du côté lecteur. Si la réalisation du codage Manchester est triviale, elle peut être réalisée facilement avec des fonctions du type "OU EXCLUSIF". Celle du décodage est beaucoup plus complexe et nécessite l'introduction de lignes de retard dans la chaîne de décodage. Un soin particulier doit être porté à la synchronisation des horloges de transmission du côté carte ainsi que du côté lecteur, ceci dans les deux sens de transmission. L'objet de l'invention est de proposer un dispositif qui assure le codage/décodage type Manchester, I'innovation résidant dans la partie décodage, ce dispositif assurant également la génération de l'horloge de transmission et sa synchronisation, I'horloge de transmission étant générée à partir de la fréquence HF remise en forme dans une tête analogique. SP 10278.C/DB Exposé de l'invention Le codeur/décodeur Manchester de l'invention comprend les modules suivants: - un module de génération du signal de synchronisation: ce module a une importance primordiale. C'est lui qui donne le signal de départ des horloges, spécialement l'horloge de décodage; ce qui permet au décodeur de se repérer par rapport à un instant de référence connu TO; - un module de synchronisation et génération des horloges: ce module génère les horloges de transmission/codage, de décodage et une horloge basse fréquence. Ces horloges servent à l'intérieur du codeur/décodeur. Elles possèdent aussi des sorties à l'extérieur pour synchroniser les autres circuits fonctionnant avec le codeur/décodeur (réception, émission, etc...); - un module de décodage: le décodage Manchester est assuré en grande partie par le précédent module qui génère une horloge de décodage précise. Les fronts de cette horloge sont toujours placés au même endroit dans un bit reçu. Il en résulte un décodeur très simple qui est réduit a une bascule pilotée par l'horloge de décodage. En effet, le décodage est un simple échantillonnage du signal d'entrée des données codées Manchester pendant la phase de réception et destinées à être décodées, effectué au front montant de l'horloge (au front descendant pour un code indirect); un module de codage: ce module réalise une fonction "OU EXCLUSIF" entre le signal d'entrée des données destinées à être codées en code Manchester pendant la phase d'émission et l'horloge de transmission. Le codeur/décodeur de l'invention fonctionne avec deux horloges à la fréquence de transmission définie, par exemple 9600 bauds: une horloge de codage et une horloge de décodage. La première horloge de codage (lors de l'émission) est généree à partir du signal HF (haute fréquence) en utilisant un diviseur de fréquence. Cette horloge est resynchronisée sur le signal codé lors de la réception. La mise en phase est effectuée au premier front descendant du signal reçu, qui est considéré comme instant zéro (TO) pour la création de la deuxième horloge. La seconde horloge de décodage est également générée à partir du signal HF, en utilisant le même diviseur de fréquence qui génère SP 10278.C/DB l'horloge de codage, cette horloge présentant un retard déterminé, par exemple de 1/4 bit par rapport à l'horloge de codage. Le décodage se fait en échantillonnant la ligne d'entrée au front montant de l'horloge de décodage. Dans le cas d'un code Manchester indirect le retard peut être de 3T/4. Le codeur/décodeur de l'invention a été réalisé sous forme d'une macrocellule intégrée dans un ASIC ("Application-Specific Integrated Circuit" ou circuit intégré spécifique). Outre le module objet de l'invention, I'ASIC intègre la tête analogique, une mémoire par exemple de type EEPROM ("Electrically Erasable Programmable Read-Only Memory" ou mémoire morte o10 programmable effaçable électriquement) et une partie logique qui gère le protocole d'émission/réception et de lecture/écriture dans la mémoire. Cet ASIC a été utilisé dans deux applications: étiquette électronique et carte sans contact. Le module de l'invention a également été réalisé sous forme d'un circuit programmable (FPGA: "Field Programmable Gate Array" ou composant programmable). Sous cette forme il peut être utilisé côté lecteur. Le codeur/décodeur de l'invention présente un intérêt certain pour tout système sans contact utilisant un codage biphase des données. Ses points forts sont: - il est complètement numérique. Sa réalisation est très simple. La génération de l'horloge de transmission et le décodage utilisent les mêmes ressources. Il en résulte un module très compact et de faible consommation; - la carte sans contact (ou l'étiquette électronique) est toujours synchronisée avec le lecteur. C'est le principe même du système de décodage; - il est simple d'utilisation. Il peut être utilisé aussi bien avec un microprocesseur qu'avec de la logique câblée, des deux côtés du système (lecteur et carte). Brève description des dessins - La figure 1 représente le codeur/décodeur de l'invention; - la figure 2 représente un chronogramme des horloges de codage et de décodage. SP 10278.C/DB Exposé détaillé de modes de réalisation La figure 1 montre une vue schématique du codeur/décodeur de l'invention. C'est un dispositif 10 avec huit entrées/sorties: - une horloge CLK à la fréquence du signal radiofréquence ou RF, émis par le lecteur. Ce signal est le résultat de la récupération/mise en forme du signal RF par une interface analogique. La fréquence de l'horloge CLK est de 4,9 MHz dans un cas considéré à titre d'exemple. Cette fréquence pourrait être beaucoup plus élevée mais aussi plus basse. La limitation de fréquence n'est pas due à la réalisation du codeur/décodeur de l'invention. Cette horloge CLK sert à générer toutes les autres horloges utilisées dans le codeur/décodeur de l'invention; une entrée SI des données codées Manchester pendant la phase de réception et destinées à être décodées; - une entrée SO_NRZ des données destinées à être codées en code Manchester pendant la phase émission; -une sortie SI_NRZ des données reçues sur l'entrée SI et décodées par le codeur/décodeur de l'invention; - une sortie SO des données reçues sur l'entrée SO_NRZ et codées Manchester par le codeur/décodeur de l'invention; - une horloge H_SYSTEM générée à partir de l'horloge CLK et qui sert au fonctionnement du reste de la logique. La fréquence de cette horloge est basse par rapport à celle de l'horloge CLK, ce qui améliore le bilan énergétique du circuit (circuit réalisé en technologie CMOS dont la consommation augmente avec la fréquence). Dans le cas considéré la fréquence est de 150 Khz; - une horloge H_TRANS de transmission généree à partir de l'horloge HSYSTEM. Elle sert à rythmer la vitesse de transmission (9600 bauds dans le cas considéré) ainsi qu'au codage Manchester; - une horloge H_DECODAGE de décodage Manchester générée à partir de l'horloge H_SYSTEM (9600 Hz dans le cas considéré). La vitesse de transmission du codeur/décodeur de l'invention n'est pas limitée à 9600 bauds. Ainsi le codeur/décodeur peut être utilisé avec la SP 10278.C/DB palette de vitesses de transmission les plus utilisées (9600, 19 200 ou toute autre vitesse). Comme représenté sur la figure 1 le codeur/décodeur Manchester de l'invention comprend les modules suivants: * Un module 1l1 de génération du signal de synchronisation: ce module a une importance primordiale. C'est lui qui donne le signal de départ des horloges, spécialement l'horloge de décodage HDECODAGE, ce qui permet au décodeur de se repérer par rapport à un instant de référence connu TO. Pour générer un signal de synchronisation (RAZ_H_9600), ce bloc écoute la ligne SI en permanence. dès qu'il détecte une transition de "1" à "0", il déclenche une minuterie et se remet en attente pendant par exemple 1 ms. La première transition de "1" à "0" arrivant après 1 ms lui servira comme instant TO. Cette période d'attente de 1 ms permet d'éviter la synchronisation sur des transitions parasites; ce délai d'attente est modifiable, il peut être plus ou moins grand, ceci selon les performances du système de démodulation du point de vue de l'établissement d'un signal stable. * Un module 12 de synchronisation et génération des horloges: ce module génère les horloges de transmission/codage, de décodage et une horloge basse fréquence. Ces horloges servent a l'intérieur du codeur/décodeur. Elles possèdent aussi des sorties à l'extérieur pour synchroniser les autres circuits fonctionnant avec le codeur/décodeur (réception, émission, etc...): - I'horloge H_SYSTEM obtenue à partir de l'horloge CLK par un simple compteur diviseur (division par 32 dans notre cas): c'est une horloge permanente qui démarre directement après l'initialisation par un signal RESET; - L'horloge de transmission H_TRANS: elle fixe la vitesse de transmission et sert au codage Manchester. Elle est générée à partir de l'horloge H_SYSTEM par un compteur diviseur (diviseur par 16) mis à zéro par le signal de synchronisation généré par le premier module 11 SP 10278.C/DB (RAZ H_9600 = "1" force le compteur à 0; le compteur est libéré dès que RAZ_H_9600 passe à "0"). L'horloge H_TRANS fonctionne alors à partir de l'instant de départ TO, elle est resynchronisée à chaque impulsion du signal RAZH_9600; - L'horloge de décodage H_DECODAGE: elle sert uniquement au décodage Manchester. Elle est générée de la même manière que H_TRANS et avec le même compteur. Elle est bloquée en même temps que l'horloge H_TRANS lors d'une impulsion RAZH_9600 = "1", mais démarre avec un retard par rapport à l'horloge H_TRANS quand le signal RAZH_9600 passe à "0". Ce retard est de 1/4 de la durée d'un bit dans le cas du code Manchester direct; il est de 3/4 de la durée d'un bit dans le cas du code Manchester indirect (la durée d'un bit à 9600 bauds est de 104.is). Le délai qui sépare deux fronts montants (descendants) est toujours le même. Un glissement de fréquence de l'horloge H_TRANS affecte également l'horloge HDECODAGE dans les mêmes proportions; - l'horloge CLK est disponible dans le lecteur ainsi que dans la carte. Si le codeur/décodeur est utilisé des deux côtés, l'horloge de transmission H_TRANS, étant générée de la même manière à partir du signal CLK, est synchrone dans les deux dispositifs. Dans le cas o le codeur/décodeur est utilisé uniquement côté carte, I'horloge H_TRANS de la carte est asservie sur celle du lecteur. Dans les deux cas la synchronisation côté codeur/décodeur est toujours assurée. * Un module 13 de décodage: le décodage Manchester est assuré en grande partie par le précédent module qui génère une horloge de décodage H_DECODAGE précise. Les fronts de cette horloge sont toujours placés au même endroit dans un bit reçu. Il en résulte un décodeur très simple qui est réduit à une bascule pilotée par l'horloge de décodage. En effet, le SP 10278.C/DB décodage est un simple échantillonnage du signal SI d'entrée des données codées Manchester pendant la phase de réception et destinées à être décodées, effectué au front montant de l'horloge (au front descendant pour un code indirect). * Un module 14 de codage: ce module réalise une fonction "OU EXCLUSIF" entre le signal SO_NRZ d'entrée des données destinées à être codées en code Manchester pendant la phase d'émission et l'horloge de transmission H_TRANS. Le codeur/décodeur 10 de l'invention fonctionne avec deux horloges à la fréquence de transmission définie, par exemple 9600 bauds: une horloge de codage et une horloge de décodage. La première horloge est utilisée pour le codage (lors de I'émission). Elle est générée à partir du signal HF en utilisant un diviseur de fréquence. Cette horloge est resynchronisée sur le signal codé lors de la réception. La mise en phase est effectuée au premier front descendant du signal reçu, qui est considéré comme instant zéro (TO) pour la création de la deuxième horloge. L'horloge de décodage est également générée à partir du signal HF, en utilisant le même diviseur de fréquence qui génère l'horloge de codage, cette horloge présentant un retard déterminé, par exemple de 1/4 de bit par rapport à l'horloge de codage. la mise en phase de cette horloge s'effectue à l'instant TO + T/4. Le décodage se fait en échantillonnant la ligne d'entrée au front montant de l'horloge de décodage comme représenté sur la figure 2. La réalisation du codeur/décodeur de l'invention est très simple, ce qui fait son originalité et son intérêt. Le codeur/décodeur de l'invention a été réalisé avec le langage de description de matériel VHDL ("Very High Speed Integrated CircuitHardware Description Language" ou langage de description matériel de très haut niveau). Son comportement a été simulé et son fonctionnement vérifié. La réalisation au niveau matériel a été effectuée par une synthèse dans une librairie de "standard- cells". Le découpage en modules de la figure 1 correspond exactement au découpage fonctionnel décrit en VHDL. La description en langage VHDL est donnée en annexe. SP 10278.C/DB Le codeur/décodeur de l'invention a été réalisé sous forme d'une macrocellule intégrée dans un ASIC. Outre le module objet de l'invention, ASIC intègre la tête analogique, une mémoire par exemple de type EEPROM et une partie logique qui gère le protocole d'émission/réception et de lecture/écriture dans la mémoire. Cet ASIC a été utilisé dans deux applications: étiquette électronique et carte sans contact. Le module de l'invention a également été réalisé sous forme d'un circuit programmable (FPGA). Sous cette forme il peut être utilisé côté lecteur. Dans un exemple de réalisation le codeur/décodeur de l'invention réalisé possède les paramètres suivants: - horloge HF de 1. 87 MHz; - horloge de transmission de 9600 Hz; - code Manchester direct: un bit à "1" est codé par les deux bits "10"; un bit à "0" est codé par les deux bits "01"; la durée d'un bit codé Manchester est égale à la moitié de celle d'un bit non codé. La vitesse réelle de transmission est donc de 19200 bauds (par contre un code Manchester indirect code un bit à "1" en "01" et un bit à "0" en "10"). SP 10278.C/DB ANNEXE DESCRIPTION EN LANGAGE VHDL I - Vue externe codeur/décodeur de l'invention et décomposition en modules library IEEE; use IEEE.std logic 1164.all; use IEEE.std logicarith.all entity CODECM is Port (CLK in STD_ULOGIC; HTRANS out STD_ULOGIC; HSYSTEM out STD_ULOGIC; H_DECODAGE out STD_ULOGIC; RESET in STDULOGIC; SI NRZ out STDULOGIC; SONRZ in STDULOGIC SI in STDULOGIC; SO out STD_ULOGIC); end CODEC M; architecture SCHEMATIC of CODECM is signal HTRANS_L STDULOGIC; signal RAZH_9600 STD ULOGIC; signal HDECODAGE-L STD_ULOGIC;' signal HSYSTEM STDULOGIC; component SYNCHRO port (RESET in STDULOGIC; HSYSTEM in STD_ULOGIC; SI in STDULOGIC; RAZ H_9600 in STD_ULOGIC); end component; component HORLOGES port (RESET in STD_ULOGIC RAZH_9600 in STDULOGIC; CLK in STDULOGIC HDECODAGE out STDULOGIC; HSYSTEM buffer STD_ULOGIC; H_TRANS out STD_ULOGIC); end component; component CODEUR port (SO out STDULOGIC; SONRZ in STDULOGIC; H_TRANS in STD_ULOGIC; RESET in STD_ULOGIC); end component; SP 10278.C/DB component DECODEUR port (SI in STDULOGIC; SINRZ out STD_ULOGIC H_DECODAGE in STDULOGIC; RESET in STD_ULOGIC) end component; begin H TRANS = H TRANS L; HDECODAGE = HDECODAGEL; HSYSTEM = H_SYSTEM_L; I_1: SYNCHRO port map (RESET > RESET; H SYSTEM => H SYSTEML s i SI; RAZH_9600 = RAZH_9600); 1i2 HORLOGES port map (RESET RESET: RAZH 9600 = RAZ H_9600; CLK = CLK; HDECODAGE H DECODAGEL HSYSTEM HSYSTEML); HTRANS > H_TRANS_L; I _4: CODEUR port map (SO SO; SONRZ SI NRZ; HTRANS = H TRANSL; RESET RESET); I 5: DECODEUR port map (SI ' SI; SI_NRZ = SI_NRZ; H_DECODAGE HDECODAGE L; RESET = RESET); end SCHEMATIC; - pragma translate_off configuration CFGCODECMBEHAVIORAL of DECODEUR is for BEHAVIORAL end for; end CFG CODEC M BEHAVIORAL SP 10278.C/DB Il - Module (11) de génération du signal de synchronisation library IEEE; use IEEE.stdlogic_1164.all use IEEE.std_logicarith.all entity SYNCHRO is Port (RESET in STD_ULOGIC; H_SYSTEM in STD_ULOGIC; SI in STDULOGIC; RAZ_H_9600 out STDULOGIC) end SYNCHRO; architecture BEHAVIORAL of SYNCHRO is P_synchro: process (RESET, H_SYSTEM, SI) type TYPE ETATis (EINIT, ESYNC0, E_SYNC1, E_SYNC2, E_SYNC3, ESYNC4, ESYNC5,); constant Klms INTEGER = 154 -attente de 1ms 1ms*153.6 khz variable ETAT TYPEETAT; variable K INTEGER range 0 to 2*9-1; - L max > K_2_7ms begin if RESET = '0' then RAZH_9600 '1"; ETAT:= EINIT; elsif HSYSTEM = '1' and HSYSTEM' event then case ETAT is when EINIT => RAZH_9600 ≤ '0': ETAT: E SYNC0; - ATTENTE 1ERE TRANSITION VERS '0' DE SI when ESYNC0 ' if SI ='1' then ETAT:= E_SYNC1 end if; when ESYNC1 = if SI ='0' then K:= K_1 ms; -attente pour éviter un déclenchement sur des -transitions parasites ETAT:= ESYNC2, end if; when E_SYNC2 = if K = '0' then ETAT:= E SYNC3 else K:= K-1 end if; SP 10278.C/DB when E_SYNC3 > if SI = '1' then ETAT:= E_SYNC4; end if; when E SYNC4 > if Si ='0' then RAZ H_9600 = '1'; ETAT:= ESYNC5; end if; when E_SYNC5 RAZH_9600 '0': ETAT:= E SYNC0; end case; end if; end process P_synchro; FIN PROCESS SYNCHRO-- end BEHAVIORAL; - pragma translate_off configuration CFGSYNCHROBEHAVIORAL of SYNCHRO is for BEHAVIORAL end for; end CFGSYNCHRO BEHAVIORAL; SP 10278.C/DB III - Module (12) de génération des horloges library IEEE; use IEEE.STD_LOGIC_1164.all entity HORLOGE is Port (RESET in STDULOGIC RAZH_9600 in STDULOGIC; CLK in STD_ULOGIC; H_DECODAGE out STD_ULOGIC; HSYSTEM buffer STD ULOGIC; H_TRANS ' out STDULOGIC); end HORLOGES; architecture BEHAVIORAL of HORLOGES is constant KBIT Integer:= 16; 104us*4.9152mhz durée d'l bit à 9600 bauds constant K_HOR: Integer:= 32; begin P_H_SYSTEME: process (RESET, CLK) variable K _153KHZ INTEGER range 0 to KHOR-1 begin if RESET = '0' then K 153KHZ:= 0; HSYSTEM c'1' elsif CLK = '1' and CLK' event then if K 153KHZ = 0 then HSYSTEM ='0'; K_153KHZ:= K_ HOR-1 elsif K 153KHZ= K HOR/2 then HSYSTEM c='1; K 153KHZ:= K 153KHZ-1; else K 153KHZ:=K 153KHZ-1; end if; end if; end process P_HSYSTEME; PHORLOGES: process (RESET, H_SYSTEM, RAZ H_9600) variable K: Integer range 0 to KBIT-1 begin if RAZ H 9600 ='1'then K:= K BIT61; H DECODAGE ='0O H TRANS ='0; elsif H SYSTEM = '1' and H SYSTEM' event then SP 10278.C/DB if K = K_BIT-1 then H_TRANS '1; -démarrage horloge h_9600 HDECODAGE '0; K:= K-1; elsif K = 3*KBIT/4+1 then H_DECODAGE = '1; -démarrage horloge décodage K:=K-1; elsif K = K_BIT/2-1 then HTRANS '0; -T/2 HTRANS K:= K-1; elsif K = K _BIT/4+1 then H_DECODAGE = '0'; -T/2 horloge décodage K:=K-1; elsif K = 0 then K:= KBIT-1 else K:= K-1 end if; end if; end process P Horloges; end BEHAVIORAL; - pragma translate_off configuration CFGHORLOGES_BEHAVIORAL of HORLOGES is for BEHAVIORAL end for; end CFGHORLOGESBEHAVIORAL SP 10278.C/DB IV - Module (13) de décodage library IEEE; use IEEE.stdlogic_1164. all use IEEE.stdlogicarith.all entity DECODEUR is Port (SI IN STD_ULOGIC SI_NRZ OUT STD_ULOGIC; H_DECODAGE IN STDULOGIC; RESET IN STD_ULOGIC); end DECODEUR; architecture BEHAVIORAL of DECODEUR is begin -SI Entrée des données codées -SO NRZ Sortie des données décodées - HDECODAGE Horloge de transmission adoptée - RESET Initialisation du circuit -====Décodage Type Manchester==- - Le décodage est réalisé en échantillonnant le signal code SI sur le front - montant de l'horloge de décodage H_DECODAGE P_DECODAGE: process begin wait until HDECODAGE = '1'; Sl-NRZ = SI; end process P_DECODAGE; end BEHAVIORAL; - pragma translateoff configuration CFG_DECODEUR_BEHAVIORAL of DECODEUR is for BEHAVIORAL end for; end CFG DECODEUR BEHAVIORAL SP 10278.C/DB V- Module (14) de codage library IEEE; use IEEE.stdlogic_1164.all use IEEE.std_logicarith.all entity CODEUR is Port (SO OUT STD_ULOGIC; SO_NRZ: IN STD_ULOGIC; H_TRANS: IN STDULOGIC; RESET: IN STD_ULOGIC); end CODEUR; architecture BEHAVIORAL of CODEUR is begin -SO: Sortie des données codées -SONRZ: Entree des données à coder - HTRANS: Horloge de transmission adoptée -RESET: Initialisation du circuit -====Codage Type Manchester==-- - codage par une fonction "OU EXCLUSIF" entre l'horloge de transmission et le signal à coder, la fonction "NOT' est utilisee pour implémenter - le code Manchester direct (un '0' est codé par "01"; un '1' par "10") SO = not (H_TRANS xor SO NRZ); end BEHAVIORAL; - pragma translate off configuration CFG_CODEURBEHAVIORAL of CODEUR is for BEHAVIORAL end for; end CFG_CODEUR_BEHAVIORAL; SP 10278.C/DB REVENDICATIONS 1. Codeur/décodeur Manchester, caractérisé en ce qu'il comprend les modules suivants: - un module (11) de génération du signal de synchronisation, qui donne le signal de départ des horloges; - un module (12) de synchronisation et génération des horloges, qui génère des horloges de transmission/codage, de décodage et une horloge basse fréquence; - un module (13) de décodage, qui comprend une bascule pilotée par l'horloge de décodage, le décodage étant un simple échantillonnage du signal d'entrée des données codées Manchester pendant la phase de réception et destinées à être décodées; - un module (14) de codage, qui réalise une fonction "OU EXCLUSIF" entre le signal d'entrée des données destinées à être codées en code Manchester pendant la phase d'émission et l'horloge de transmission. 2. Codeur/décodeur selon la revendication 1, caractérisé en ce qu'il fonctionne avec deux horloges à la fréquence de transmission définie: une horloge de codage et une horloge de décodage. 3. Codeur/décodeur selon la revendication 2, caractérisé en ce que l'horloge de codage est générée à partir du signal HF en utilisant un diviseur de fréquence, cette horloge étant resynchronisée sur le signal codé lors de la réception, la mise en phase étant effectuée au premier front descendant du signal reçu, qui est considéré comme instant zéro (TO) pour la création de la deuxième horloge, et en ce que l'horloge de décodage est également générée à partir du signal HF, en utilisant le même diviseur de fréquence qui génère l'horloge de codage, cette horloge présentant un retard déterminé, le décodage se faisant en échantillonnant la ligne d'entrée au front montant de l'horloge de décodage. 4. Codeur/décodeur selon la revendication 2, caractérisé en ce que ces deux horloges fonctionnent à 9600 bauds. 5. Codeur/décodeur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est réalisé sous forme d'une macrocellule intégrée dans un ASIC, qui intègre également la tête analogique, une mémoire SP 10278.C/DB et une partie logique qui gère le protocole d'émission./réception et de lecture/écriture dans la mémoire. 6. Codeur/décodeur selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il est réalisé sous forme d'un circuit programmable. 7. Codeur/décodeur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est utilisé dans le domaine des cartes sans contact. 8. Codeur/décodeur selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il est utilisé dans le domaine des étiquettes électroniques. SP 10278.C/DB