WO1997015895A1 - Lecteur de carte a puce - Google Patents

Lecteur de carte a puce Download PDF

Info

Publication number
WO1997015895A1
WO1997015895A1 PCT/FR1996/001634 FR9601634W WO9715895A1 WO 1997015895 A1 WO1997015895 A1 WO 1997015895A1 FR 9601634 W FR9601634 W FR 9601634W WO 9715895 A1 WO9715895 A1 WO 9715895A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
card
reader
microprocessor
registers
Prior art date
Application number
PCT/FR1996/001634
Other languages
English (en)
Inventor
Anne-Marie Praden
Original Assignee
Gemplus S.C.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus S.C.A. filed Critical Gemplus S.C.A.
Priority to JP51634797A priority Critical patent/JP3902231B2/ja
Priority to EP96934937A priority patent/EP0800682B1/fr
Priority to AT96934937T priority patent/ATE224565T1/de
Priority to DE69623752T priority patent/DE69623752T2/de
Priority to US08/849,428 priority patent/US6098888A/en
Publication of WO1997015895A1 publication Critical patent/WO1997015895A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0013Methods or arrangements for sensing record carriers, e.g. for reading patterns by galvanic contacts, e.g. card connectors for ISO-7816 compliant smart cards or memory cards, e.g. SD card readers
    • G06K7/0086Methods or arrangements for sensing record carriers, e.g. for reading patterns by galvanic contacts, e.g. card connectors for ISO-7816 compliant smart cards or memory cards, e.g. SD card readers the connector comprising a circuit for steering the operations of the card connector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0013Methods or arrangements for sensing record carriers, e.g. for reading patterns by galvanic contacts, e.g. card connectors for ISO-7816 compliant smart cards or memory cards, e.g. SD card readers

Definitions

  • the subject of the invention is a smart card reader, in particular a reader linked by radio means with information transmitters.
  • the readers concerned by the invention are however, more generally, readers who must fulfill a mission other than that of serving as an interface to a smart card.
  • the CPU For certain applications in particular in the case where the reader also receives high speed data (information in frequency modulation for example), the CPU must manage and process this data in real time, it may be impossible for it to communicate further. with the card at the very moment he receives this information.
  • the smart card is used to access paid services, subscription to traffic information, subscription to radios, subscription to television programs.
  • the issuers sending such information also make a permanent, almost continuous or random check, arriving without the reader or the card knowing when the check will take place.
  • the purpose of this control is to verify the subscription situation recorded in the card.
  • the reader is brought to dialogue with the card while it is receiving radioelectric data.
  • Current smart card readers are made with a microcontroller which additionally provides bit management. This architecture obliges to move towards a biprocessor architecture as soon as the use associated with the reader requires a speed of execution and reaction greater than the time of exchange of the bit, or the byte, with the card (calibrated procedure imposed by the standard and therefore uninterruptible).
  • Certain commercial components for example the ST20-TPI circuit from SGS THOMSON MICROELECTRONIC, integrate a smart card interface called SMART CARD which has inputs-outputs completely controlled by the microprocessor. This kind of architecture does not, however, allow the interface to be controlled automatically.
  • the object of the invention is to relieve the microprocessor CPU in an interesting manner while retaining flexibility for the implementation of the different possible protocols for dialogue between a reader and a smart card.
  • the present invention is based on an architecture of a different type. It consists in having all the functions of the 7816-3 standard which require synchronization constraints and bit manipulation performed by a coupling circuit, and in software management of all the functions of this standard specific to the different protocols.
  • the invention relates to a smart card reader comprising: - contact pads for coming into contact with contact pads of a smart card;
  • coupler circuit for applying or taking electrical signals from these contact pads; - a microprocessor for receiving, processing and transmitting these signals available in the coupler circuit; characterized in that the coupler circuit includes:
  • the first input-output circuit being connected on the one hand with the contact pads of the reader and on the other hand with the set of buffer memories; the second input-output circuit being in relation on the one hand with the microprocessor and on the other hand with the set of buffer memories;
  • the second or the first circuit comprising a decoding circuit connected to the set of registers; - the sequencer controlling the input-output circuits according to electrical states stored in the set of registers.
  • Figure 1 a reader according to the invention.
  • Figure 2 a flowchart of actions executed by the sequencer of the invention.
  • FIG. 1 shows a smart card reader 1 2 according to the invention.
  • the reader 1 comprises contact pads such as 3 to 7 for coming into contact with corresponding contact pads 8 to 12 of a smart card. The number and positions of these studs are provided for by the standard so that electrical contacts are established as soon as the card 2 is inserted into a reading slot (not shown) of the reader 1.
  • the reader 1 also comprises a coupler circuit 13 for applying or taking electrical signals from the contact pads.
  • the electrical signals are normally managed or processed by a microprocessor 14 which is also connected with peripheral circuits within a processing unit 15 of the reader 1.
  • the peripheral circuits comprise for example an antenna 16 with its associated reception circuit and its communication circuit with the microprocessor 14.
  • a keyboard 17 or a display 18 connected to the microprocessor 14 under the same conditions.
  • Other circuits, in particular input-output 19, can allow the microprocessor to enter into contact with the outside world, that is to say outside the card 2 and the reader 1. All of these peripherals can intervene untimely during a communication between the microprocessor 14 and the smart card 2. This can cause problems in real time management of these interventions.
  • the microprocessor 14 performs inter alia the reception and / or the processing and / or the transmission of the electrical signals present in the coupler circuit 13.
  • the coupler circuit 13 is reduced to a set of wires which conduct the electrical signals from the pads to the microprocessor 14.
  • the coupler circuit 13 is significantly more complex. It comprises a first data input-output circuit 20.
  • the first circuit 20 includes a receiver circuit 21 for the input and a transmitter circuit 22 for the output.
  • the two circuits are connected to the input-output pads of the reader, here at least to a single pad 3 of data output input.
  • the coupler circuit 13 also includes a second input-output circuit 23 and a set 24 of buffer memories.
  • the game 24 comprises memories 25 of the first-in-first-out type, FIFO, for receiving data from the card, and memories 26, of the same type, for sending data to the card.
  • the coupler circuit 13 includes a set 27 of control registers such as 28, and an operation sequencer 29.
  • the first input-output circuit 20 is connected on the one hand with the contact pads, in particular the pad 3, and, on the other hand, with the set of buffer memories 24.
  • the circuit 21 is connected to the memories 25 and the circuit 22 is connected to the memories 26.
  • the circuits 21 22 25 and 26 can be controlled by the sequencer 29, the latter organizing the transfer of information between the pad 3 and the memories 25, 26.
  • the memories 25, 26 may, moreover, preferably have an autonomous operation.
  • a clock signal H produced by a programmable clock generator 30, or by clk_sys or clk_sec connections, connected to the microprocessor 14, can in this case clock the operation of these memories 25, 26.
  • the second input-output circuit - 23 is connected on the one hand with the microprocessor 14 and on the other hand with the set 24 of the buffer memories.
  • the second circuit 23 comprises a decoding circuit, in particular an address decoding circuit, in relation to the set 27 of the registers.
  • the circuit 23 therefore includes a decoding circuit for filtering and decoding these signals, an addressing circuit for pointing at one or more of the registers of the set 27 and a write circuit for forcing the state of the cells of these registers to desired electrical states.
  • the sequencer 29 controls the input-output circuits, in particular the first circuit 20, as a function of the electrical states stored in the set 27 of registers to which this sequencer 29 is connected.
  • a signal available on a pres_cam connection (pres for presence and cam for memory card or smart card).
  • This connection is connected on the one hand to a switch 31 of the limit switch type.
  • the switch 31 When the card 2 is inserted into the slot of the reader 1, it depresses the switch 31 which, when closing, imposes a potential (ground or a potential Vcc) on the pres_cam connection.
  • the pres_cam connection is also connected to the sequencer 29.
  • the sequencer 29 is a conventional sequencer circuit which produces control signals as a function of the electrical state of some of its knots.
  • its nodes are connected to the game registers 27 (and also to the pres_cam connection).
  • the sequencer 29 can have an autonomous evolution or, preferably, be clocked by the signal H seen previously.
  • the card reset sequence is managed by the sequencer 29 without the intervention of the associated software implemented by the microprocessor 14.
  • Error detection is automatic by analysis of a parity bit and a repetition of the card's response is automatically controlled by the sequencer. If the repetition of the character does not occur within the time required by the standard, the reset sequence is automatically reset.
  • the type of convention used for the polarity of the bits is also automatically detected by the circuit 23 to transmit to the microprocessor 14 of the data in a convention defined for him and to avoid him cumbersome manipulations to manage on the bits of the bytes received.
  • an automatic sequence of powering off the card is performed by the sequencer 29 avoiding short circuits between contacts. 6 Automatic control of guard times and waiting times for characters or blocks.
  • the character and block guard and waiting times are managed automatically by the sequencer 29 reducing the synchronization constraints at the microprocessor 14.
  • a general procedure is applicable to all integrated circuit cards with contacts. It specifies the operations to be carried out during a dialogue between the reader 1 and the card 2. These are: 1 connection and sequence for energizing the contact pads of circuit 13; 2 reset card 2; 3 . response of card 2 to reset; 4_ subsequent exchange of information between card 2 and circuit 13;
  • cam_vcc pad supplied with WC voltage; cam_io pad in receiver mode (receiver 21 activated, transmitter 22 deactivated); . cam_vpp pad at rest; . cam_clk stud delivering a clock signal.
  • This power-up is carried out by a first sequence induced by the sequencer 29 as soon as the detection of the presence of a card occurs on the pres_cam connection. This power-up will however preferably be controlled by the microprocessor 14 after reading the card presence bit (image of the card detector). Circuit 13 will in all cases be responsible for sequencing. In a preferred case, the microprocessor 14 gives control to the sequencer 29 to perform the first sequence seen above. As a variant, this first sequence is triggered by the sequencer 29 in an autonomous manner.
  • the microprocessor 14 receiving the presence signal of the card sends via the circuit 23 a write command, to write in a game register 27 information corresponding to the presence of a card. This information is naturally transmitted to the nodes of the sequencer 29 which are connected to this register. And the sequencer 29 starts.
  • a third or a fourth sequence reset the card.
  • This reset depends on the type of card we are dealing with. Also, in tests 32 to 34, we go with circuit 13 (or with microprocessor 14), to recognize the type of card that is inserted. In practice, we launch a reset sequence and see if it succeeds or if it fails. Preferably therefore the tests follow the second to fourth sequences.
  • the clock signal is applied to the cam_clk pad at a time TO where a reset signal, initially in the L state, is applied to the cam_rst pad.
  • the cam_io pad must then be in a high independence state, called Z to simplify, in less than 200 clock cycles. In this state this cam_io pad is capable of receiving a signal.
  • T2 is the time after TO where these 200 cycles end
  • T3 is the time where the first 40,000 cycles end
  • T1 is the time when a first signal appears on the cam_io pad from the card.
  • Test 32 measures the fact that the response occurred during the first 40,000 cycles.
  • the card is de-energized by the circuit 13.
  • This is a sequencing with which the sequencer 29 is loaded on the order of the microprocessor 14, transmitted by the set 27 of the registers.
  • the circuit 13 delivers a status on the proper execution of the operation. This status is preferably produced by the circuit of decoding 23.
  • This circuit 23, or possibly another, stores the response received from the card.
  • the sequencer causing for example during these sequences the recording of information in the registers of the game 27.
  • the card is not of the asynchronous type, the status is negative, we then try to know if it is of the synchronous type.
  • the circuit 13 then puts all the lines in the state L, thus
  • cam_vcc pad remains supplied; . the cam_vpp stud is at rest; . the cam_clk and cam_rst plots remain at L;
  • the cam_io pads is in reception mode; then. the cam_rst pad is set to H at TO for at least 50 ⁇ s (T12);
  • the cam_clk block receives a clock pulse at level H after a duration T10 (greater than 5 ⁇ s) after TO.
  • the duration T15 of this pulse is of the order of 10 to 50 ⁇ s but respecting a duration Tll between the falling edges on cam_clk and cam_rst which is greater than 5 ⁇ s, finally the response arrives on cam_io when cam_clk is in state L. It is valid after a duration T13 (less than or equal to 10 ⁇ s) from the falling edge on cam_rst.
  • the etu is the nominal duration of a bit emitted by the card on the cam_io pad during the response to the signal present on cam_rst.
  • the initial Etu is 1/9600 second (9600 baud).
  • the frequency fi is in Hz and is between IMhz and 5Mhz. This frequency fi which will induce the duration of etu is produced by the coupler circuit 13.
  • the generator 30 therefore delivers the signal present on the cam_clk pad.
  • the programming of the generator 30 is carried out directly through clk_ ⁇ ys and clk_sec connections. It could also have been caused by reading set 27 of the registers.
  • a character is broken down into 10 consecutive bits: a start bit at state A, 8 data bits and a tenth even parity check bit (number of bits at 1 even).
  • the duration between two characters is at least 12 etu (duration of the character increased by a guard time).
  • the cam_io pad must be at Z.
  • the time between two characters must not exceed 9600 etu: initial waiting time.
  • the signal sampling period on the cam_io pad, during a start search, must be less than 0.2 etu.
  • the hold time can be programmable as well as optionally the initial standby time.
  • the receiver 21 If a parity error is detected, the receiver 21 emits an error signal by forcing the line cam_io to A for a duration equal to at least 1 etu and at most 2 etu after the arrival of the parity bit. Then the receiver 21 waits for the character to be repeated. If the repetition does not take place, the interface device must cause the repetition of the entire reset sequence. This is to be done with the circuit 13. For this purpose the receiver 21, if necessary via the circuit 23, forces a game register 27 whose electrical state causes a waiting sequence by the sequencer 29 of a duration of 9600 etu. At the end of this wait if a character is not received, "the sequencer returns to 2.1 above. 15
  • the response to reset consists of a TS character followed by at most 32 characters in the following order TO format character
  • the interface characters indicate the physical parameters of the integrated circuit in the card and the logical particularities of the exchange protocol which will follow. Historical characters provide general information about the map.
  • the circuit 13 is content to transmit these characters to the microprocessor 14 via the buffer memories 25 (FIFO).
  • the analysis of the content of the bytes corresponding to these characters is done by the microprocessor 14 which can then proceed to the programming of the circuit 13 according to this analysis to proceed following the exchanges
  • the initial character TS provides a bit-level synchronization sequence and fixes the coding conventions for the data bytes in all subsequent characters.
  • the synchronization sequence is AZZA.
  • A is an active potential, at 0 volts or at Vx depending on the chosen convention.
  • Z is a potential which appears on the reader terminal when the card output terminal switches to high impedance and therefore does not force a signal.
  • This sequence allows circuit 13 to determine the initial status of the card (case of cards with internal clock). It is equal to a third of the delay between the first two falling edges of TS.
  • the following bits encode the type of reverse or direct convention: AAA inverse convention, ZZZ direct convention.
  • This character TS is made by the circuit 20 or the circuit 23 of the circuit 13. It makes it possible to know the initial status of the cards with internal clock and to know the convention used. It is possible to transmit the bytes, via the buffer memories 24, with the convention fixed by the microprocessor. However, to avoid manipulating bits which are sometimes cumbersome to manage, it suffices, depending on the convention used by the card and detected in the character TS, to make the appropriate translation on the bytes received. 3.1.6 Structure of TO
  • the most significant quartet called Yl indicates the presence of the interface characters TAI TBI TC1 TDI.
  • the least significant quartet called K indicates the number of historical characters. The analysis of these quartets is made by the microprocessor 14.
  • TAI TBI TC1 TB2 are the global bytes which must be analyzed to correctly process the transmission protocol
  • the working case is 1 / D * 9600 in seconds.
  • N is the additional holding time required by the card. Before receiving a character, the card requires a delay of at least 12 + N etu from the initial edge of the previous character. No additional guard time is used to transmit characters from the card to the interface device.
  • TCK The value of TCK must be such that the exclusive OR of all bytes from TO to TCK inclusive is zero. This verification can be done by circuit 13 by putting the result of the exclusive OR in a game register 27 for each byte reception. The microprocessor then reads this register at the end of the response to reset. This allows the operation of circuit 13 to be checked. The calculation of the exclusive OR is reset each time the card is reset.
  • the card response contains a 32-bit header.
  • the first two bytes are Hl and H2.
  • the data output is controlled by clock pulses.
  • the first pulse begins at a time T14 (lO ⁇ s ⁇ T14 ⁇ lOO ⁇ ) after the falling edge on cam_rst.
  • the high state of the clock pulse lasts a duration T15 (10 ⁇ s ⁇ T15 ⁇ 50 ⁇ s) and the low state a duration T16 (10 ⁇ s ⁇ T16 ⁇ lOO ⁇ s).
  • the data bits can be sampled on the rising edges of the clock.
  • H2 codes parameters which depend on the type of protocol.
  • the implementation of the sequencing of the header with the circuit 13 poses no problem.
  • the 4 bytes will be stored in buffers ,. FIFO, and analyzed by the microprocessor 14 which verifies the accounting of the protocols used by the card and by the circuit 13, and requests the circuit 13 to switch off the contacts if this compatibility is not possible.
  • This work waiting time will constitute a character waiting limit in circuit 13. It will be programmed by the microcontroller after validation of the protocol to be used.
  • the interface device is normally the master in issuing commands. These consist of a header of 5 bytes and data bytes which are sent under the control of the procedure bytes sent by the card. The procedure for error detection and repetition of characters is the same as for the response to reset. It is compulsory. 4.1.3 At the control head issued by the interface device of the invention.
  • Circuit 13 emits a header on 5 bytes CLA, INS, PI, P2, P3. Circuit 13 must wait for the procedure bytes. These 5 bytes are placed in the buffer memory of circuit 13 by microprocessor 14 and sent by circuit 13 to the card according to the programmed protocol. The direction of information transfer is known by the microprocessor thanks to INS. 4.1.4 Procedure bytes issued by the card
  • VPP transition must occur within the guard time of the procedure byte or as soon as the working time is exceeded.
  • the circuit 13 will restart on each byte reception a waiting correction correction constituted by the work waiting time (whatever the value of the procedure byte received) and store the byte in the buffer memory 24.
  • VPP Voice over IP
  • OCTET (INS + 1) or (COMPL (INS + 1) or (active VPP and 60).
  • VPP For all other values VPP must be put to rest.
  • the standard does not indicate whether there is a delay in the transmission of data by the interface device after reception of the ACK byte. We simply know that the card must respond within the waiting time for work. It is therefore possible to leave it to the microprocessor 14 to initiate the transmission of the data and consequently to limit the operations performed by the circuit 13 from this point of view.
  • a character waiting time is defined.
  • a block waiting time has been added.
  • the block waiting time is defined by the maximum time elapsed between the initial edge of the last character granting an authorization to send to the card and that of the first character sent by the card.
  • Block guard time is similar to the character guard time defined above.
  • Block guard time is the minimum time between the initial edge of a character and that of the next character in the opposite direction.
  • VPP The state of VPP is controlled by the response of the card in the NAD node address byte and the following PCB character. Any transition from VPP must occur within a period of 12 etu calculated from the initial edge of the character that triggered this VPP. The analysis of the NAD character must therefore be done on the fly, without the intervention of the microprocessor 14, for the activation of VPP.
  • cam_io stud at A
  • cam_vcc stud off; This is integrated into circuit 13. The reaction is immediate when the card is removed and avoids short circuits between contacts.
  • the reader issues a PTS request
  • the card responds with a confirmation otherwise the initial waiting time is exceeded
  • the reader When an error is detected, the reader resets the card or rejects it;
  • PTS Structure and content of the PTS: request and confirmation: 1 initial character PTSS - 1 character in PTSO format - 3 optional characters of parameters PTS1 PTS2 PTS3 - 1 control character.
  • the microprocessor 14 writes its request for PTS in the buffer memory 26 of the circuit 13 which sends it and checks if the response arrives within the initial waiting time.
  • the circuit 13 then transmits the exclusive OR of the bytes to the microprocessor 14 which will check the validity of the response. If the answer is not correct, the latter will take the initiative of resetting the card to zero. After a successful PTS exchange, the microprocessor will be able to program circuit 13 for subsequent exchanges.
  • Table 1 the types of signals exchanged on the two input output circuits 20 and 23, I signifying entry into the reader and O signifying exit from the reader;
  • Tables 2 and 3 the names of the registers in set 27, the type of register in L reading or E writing, the content in bytes of cells D7 to DO of these registers (the names indicated refer to the ISO standard), and the functions of these registers and bytes.
  • PON automatic switching on of contacts during card insertion
  • RST automatic reset of the card after power up
  • VPP VPP control out of EN_VPP
  • EXE Commands the execution of an action on the card in writing only.
  • the bits are reset to zero as soon as the circuit 13 takes them into account
  • CHGT_FR controls the switching of the initial frequency at work
  • circuit 13 also includes a circuit 32 for interrupt control allowing
  • the circuit 32 receives its information from the game 27, and depending on the nature of the latter transmits or not an interrupt signal.

Abstract

Pour limiter les fonctions des microprocesseurs présents dans des lecteurs de cartes à puce qui sont par ailleurs destinés à réagir à des sollicitations externes en temps réels, on a réalisé un circuit coupleur pour coupler le lecteur à la carte à puce. Le circuit coupleur effectue toutes les opérations de synchronisation.

Description

LECTEUR DE CARTE A PUCE
L'invention a pour objet un lecteur de carte à puce, notamment un lecteur en relation par des moyens radioélectriques avec des émetteurs d'information. Les lecteurs concernés par l'invention sont cependant, plus généralement, des lecteurs qui doivent assurer une autre mission que celle de servir d'interface à une carte à puce.
Jusqu'à présent les lecteurs sont basés sur une architecture pour laquelle la norme ISO 7816-3 est satisfaite par un logiciel mis en oeuvre par un microprocesseur, dit ici CPU pour simplifier. Cette norme définit le protocole de dialogue entre une carte à puce et le lecteur.
Pour certaines applications en particulier dans le cas où le lecteur reçoit par ailleurs des données à haut débit (information en modulation de fréquence par exemple) , le CPU doit gérer et traiter ces données en temps réel, il peut lui être impossible de dialoguer de plus avec la carte au moment même où il reçoit ces informations.
Dans un exemple, la carte à puce sert à accéder à des services payants, abonnement à des informations routières, abonnement à des radios, abonnement à des programmes de télévision. Les émetteurs envoyant de telles informations font par ailleurs un contrôle permanent, quasi continu ou aléatoire, arrivant sans que le lecteur ou la carte ne sachent à quel moment se fera le contrôle. Ce contrôle a pour but de vérifier la situation d'abonnement enregistrée dans la carte. De ce fait, le lecteur est amené à dialoguer avec la carte alors qu'il est en réception de données radioélectriques. Les lecteurs de carte à puce actuels, sont réalisés avec un microcontrôleur qui assure en plus la gestion du bit. Cette architecture oblige à s'orienter vers une architecture biprocesseur dès que l'utilisation associée au lecteur nécessite une rapidité d'exécution et de réaction supérieure au temps d'échange du bit, ou de l'octet, avec la carte (procédure calibrée imposée par la norme et donc non interruptible) .
Certains composants du commerce, par exemple le circuit ST20-TPI de SGS THOMSON MICROELECTRONIC, intègrent une interface de carte à puce dite SMART CARD qui possède des entrées-sorties complètement commandées par le microprocesseur. Ce genre d'architecture ne permet cependant pas de contrôler 1 ' interface de façon automatigue.
Le but de l'invention est de soulager le microprocesseur CPU de façon intéressante tout en conservant une souplesse pour la mise en oeuvre des différents protocoles possibles de dialogue entre un lecteur et une carte à puce.
La présente invention repose sur une architecture d'un type différent. Elle consiste à faire réaliser par un circuit de couplage toutes les fonctions de la norme 7816-3 qui nécessitent des contraintes de synchronisation et une manipulation des bits, et à gérer de façon logicielle toutes les fonctions de cette norme spécifiques aux différents protocoles.
Dans ce but l'invention a pour objet un lecteur de carte à puce comportant: - des plots de contacts pour entrer en contact avec des plots de contact d'une carte à puce;
- un circuit coupleur pour appliquer ou prélever des signaux électriques sur ces plots de contacts; - un microprocesseur pour effectuer la réception, le traitement et l'émission de ces signaux disponibles dans le circuit coupleur; caractérisé en ce que le circuit coupleur comporte:
- un premier circuit d'entrée sortie;
- un jeu de mémoires tampons;
- un deuxième circuit d'entrée sortie;
- un jeu de registres de commande; - un séquenceur d'opération; le premier circuit d'entrée sortie étant en relation d'une part avec les plots de contact du lecteur et d'autre part avec le jeu des mémoires tampons; - le deuxième circuit d'entrée sortie étant en relation d'une part avec le microprocesseur et d'autre part avec le jeu des mémoires tampons;
- le deuxième ou le premier circuit comportant un circuit de décodage relié au jeu de registres; - le séquenceur commandant les circuits d'entrée sortie en fonction d'états électriques stockés dans le jeu de registres.
L'invention sera mieux comprise à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Les figures montrent:
Figure 1: un lecteur conforme à l'invention. Figure 2: un organigramme d'actions exécutées par le séquenceur de l'invention.
La figure 1 montre un lecteur 1 de carte à puce 2 conforme à l'invention. Le lecteur 1 comporte des plots de contacts tels que 3 à 7 pour entrer en contact avec des plots de contacts correspondant 8 à 12 d'une carte à puce. Le nombre et les positions de ces plots sont prévus par la norme pour que des contacts électriques s'établissent dès que la carte 2 est insérée dans une fente de lecture (non représentée) du lecteur 1. Le lecteur 1 comporte en outre un circuit coupleur 13 pour appliquer ou prélever des signaux électriques sur les plots de contacts. Les signaux électriques sont normalement gérés ou traités par un microprocesseur 14 qui est en relation par ailleurs avec des circuits périphériques au sein d'une unité de traitement 15 du lecteur 1. Les circuits périphériques comportent par exemple une antenne 16 avec son circuit de réception associé et son circuit de communication avec le microprocesseur 14. Ils comportent aussi par exemple un clavier 17 ou un afficheur 18 reliés au microprocesseur 14 dans les mêmes conditions. D'autres circuits, notamment d'entrée-sortie 19, peuvent permettre au microprocesseur d'entrer en relation avec le monde extérieur, c'est-à-dire extérieur à la carte 2 et au lecteur 1. Tous ces périphériques peuvent intervenir intempestivement lors d'une communication entre le microprocesseur 14 et la carte à puce 2. Il peut s'ensuivre des problèmes de gestion en temps réel de ces interventions.
Le microprocesseur 14 effectue entre autres la réception et/ou le traitement et/ou l'émission des signaux électriques présents dans le circuit coupleur 13.
Dans l'état de la technique, le circuit coupleur 13 est réduit à un ensemble de fils qui conduisent les signaux électriques des plots au microprocesseur 14. Dans l'invention, le circuit coupleur 13 est notablement plus complexe. Il comporte un premier circuit 20 d'entrée-sortie de données. Le premier circuit 20 comporte un circuit récepteur 21 pour l'entrée et un circuit émetteur 22 pour la sortie. Les deux circuits sont reliés aux plots d'entrée-sortie du lecteur, ici au moins à un plot unique 3 d'entrée sortie de données.
Le circuit coupleur 13 comporte également un deuxième circuit d'entrée-sortie 23 et un jeu 24 de mémoires tampons. Dans un exemple le jeu 24 comporte des mémoires 25 du type premier entré - premier sorti, FIFO, pour recevoir des données en provenance de la carte, et des mémoires 26,du même type, pour émettre des données vers la carte. Le circuit coupleur 13 comporte un jeu 27 de registres tels que 28 de commande, et un séquenceur d'opérations 29.
Le premier circuit d'entrée-sortie 20 est relié d'une part avec les plots de contact, notamment le plot 3, et, d'autre part, avec le jeu des mémoires tampons 24. En pratique, le circuit 21 est relié aux mémoires 25 et le circuit 22 est relié aux mémoires 26. Les circuits 21 22 25 et 26 peuvent être commandés par le séquenceur 29, celui-ci organisant le transfert des informations entre le plot 3 et les mémoires 25, 26. Les mémoires 25, 26 peuvent, par ailleurs, de préférence, avoir un fonctionnement autonome. Un signal d'horloge H produit par un générateur 30 d'horloge programmable, ou par des connexions clk_sys ou clk_sec, reliées au microprocesseur 14, peut dans ce cas cadencer le fonctionnement de ces mémoires 25, 26.
Le deuxième circuit d'entrée-sortie - 23 est en relation d'une part avec le microprocesseur 14 et d'autre part avec le jeu 24 des mémoires tampons. De préférence, le deuxième circuit 23 comporte un circuit de décodage, notamment de décodage d'adresse, en relation avec le jeu 27 des registres.
Selon la nature et le temps d'arrivée de certains signaux émis soit par la carte à puce 2 soit par le microprocesseur 14, ces signaux sont décodés par ce circuit décodeur et stockés dans des registres du jeu 27. Le circuit 23 comporte donc un circuit de décodage pour filtrer et décoder ces signaux, un circuit d'adressage pour pointer sur un ou plusieurs des registres du jeu 27 et un circuit d'écriture pour forcer l'état des cellules de ces registres à des états électriques voulus.
On aurait pu faire effectuer ces fonctions d'écriture dans le jeu 27 par le premier circuit d'entrée-sortie 20. Néanmoins, il est préférable de les faire exécuter par le deuxième circuit 23, car le circuit 23 est déjà en relation avec le microprocesseur 14, et, de ce fait, des mêmes circuits d'adressage et d'écriture permettent d'écrire dans des registres du jeu 27 des états électriques imposés non seulement par la carte mais aussi par le séquenceur.
Dans l'invention, le séquenceur 29 commande les circuits d'entrée-sortie, notamment le premier circuit 20, en fonction des états électriques stockés dans le jeu 27 de registres auquel ce séquenceur 29 est relié.
On assimilera aussi par la suite à un registre du jeu 27 de registres un signal disponible sur une connexion pres_cam (pres pour présence et cam pour carte à mémoire ou carte à puce) . Cette connexion est reliée d'une part à un interrupteur 31 de type fin de course. Quand- la carte 2 est insérée dans la fente du lecteur 1 elle enfonce l'interrupteur 31 qui en se fermant impose un potentiel (la masse ou un potentiel Vcc) sur la connexion pres_cam. La connexion pres_cam est par ailleurs reliée au séquenceur 29.
Le séquenceur 29 est un circuit séquenceur classique qui produit des signaux de commande en fonction de l'état électrique de certains de ses noeuds. Dans l'invention, ses noeuds sont reliés aux registres du jeu 27 (et aussi à la connexion pres_cam) . Le séquenceur 29 peut avoir une évolution autonome ou, de préférence, être cadencé par le signal H vu précédemment.
Une présentation détaillée des divers fonctionnements du lecteur de 1 ' invention concerne les opérations suivantes :
1 Connexion et mise sous tension des contacts. A la détection de la présence de la carte, une séquence de mise sous tension automatique de la carte est réalisée par le séquenceur 29. Elle est suivie par une remise à zéro de la carte.
2 Remise à zéro de la carte. Le séquencement de remise à zéro de la carte est géré par le séquenceur 29 sans intervention du logiciel associé mis en oeuvre par le microprocesseur 14.
3 Détection des erreurs sur la réponse à la remise à zéro, dite reset. La détection des erreurs est automatique par analyse d'un bit de parité et une répétition de la réponse de la carte est commandée automatiquement par le séquenceur. Si la répétition du caractère n'intervient pas dans les délais requis par la norme, la séquence de remise à zéro est réinitialisée automatiquement.
4 Analyse automatique de la réponse au reset.
. L'analyse d'un caractère initial reçu dit TS est réalisée automatiquement par le circuit 23; . La détection de la fréquence initiale des cartes à horloge interne est ainsi automatique;
Le type de convention utilisé pour la polarité des bits (inverse ou direct) est également détecté automatiquement par le circuit 23 pour transmettre au microprocesseur 14 des données dans une convention définie pour lui et lui éviter des manipulations lourdes à gérer sur les bits des octets reçus.
. Un OU exclusif des octets de la réponse au reset, permettant de connaître la validité de cette réponse, est réalisé automatiquement par le circuit 23. Son résultat est de plus vérifié à la fin de l'échange par le microprocesseur 14.
5 Séquence automatique de mise hors tension des contacts.
Sur détection du retrait de la carte ou de court- circuit, une séquence automatique de mise hors tension de la carte est réalisée par le séquenceur 29 évitant des court-circuits entre contacts. 6 Contrôle automatique des temps de garde et temps d'attente de caractères ou de blocs.
Les temps de garde et d'attente de caractère et de bloc sont gérés automatiquement par le séquenceur 29 réduisant les contraintes de synchronisation au niveau du microprocesseur 14.
7 Contrôle automatique de la tension de programmation VPP.
Une tension de programmation VPP devant être activée dans le temps de garde de l'octet de procédure, une contrainte de temps apparaît. Dans l'invention, cette fonction est réalisée automatiquement dans le circuit coupleur 13.
Dans ce qui suit, on précise les choix de l'invention au regard de la norme 7816-3. On détermine en particulier les parties de cette norme que l'on peut intégrer dans le circuit 13 et les parties qu'il est préférable de laisser exécuter par le microprocesseur 14 avec un logiciel associé. Ce découpage des taches est fait en ne perdant pas de vue les buts principaux du circuit coupleur 13:
- rendre le microprocesseur 14 indépendant des synchronisations imposées par la carte 2; - accepter le maximum de types de cartes existant sur le marché.
Ces précisions sont apportées, notamment en commentant la figure 2 et en détaillant les procédures opérationnelles pour les diverses cartes à circuits intégrés.
Une procédure générale est applicable à toutes les cartes à circuits intégrés à contacts. Elle spécifie les opérations à réaliser lors d'un dialogue entre le lecteur 1 et la carte 2. Celles-ci sont: 1 connexion et séquence de mise sous tension des plots de contacts du circuit 13 ; 2 remise à zéro de la carte 2 ; 3. réponse de la carte 2 à la remise à zéro; 4_ échange ultérieur d'informations entre la carte 2 et le circuit 13;
5_ séquence de mise hors tension des plots de contacts par le circuit 13.
1 Connexion et séquence de mise sous tension des plots de contacts. Les plots de contacts de la carte ne doivent pas être mis sous tension avant leur connexion au circuit 13. La mise sous tension doit respecter le séquencement suivant:
. plot cam_rst à un état bas, dit L, en pratique la masse dans un exemple;
. plot cam_vcc alimenté à une tension WC; plot cam_io en mode récepteur (récepteur 21 activé, émetteur 22 désactivé) ; . plot cam_vpp en repos; . plot cam_clk débitant un signal d'horloge. Cette mise sous tension est réalisée par une première séquence induite par le séquenceur 29 dès que la détection de la présence d'une carte se produit sur la connexion pres_cam. Cette mise sous tension sera cependant de préférence commandée par le microprocesseur 14 après lecture du bit de présence carte (image du détecteur de carte) . Le circuit 13 se chargera dans tous les cas du séquencement. Dans un cas préféré le microprocesseur 14 donne la main au séquenceur 29 pour effectuer la première séquence vu ci-dessus. En variante, cette première séquence est déclenchée par le séquenceur 29 d'une manière autonome. Dans le cas préféré, le microprocesseur 14 recevant le signal de présence de la carte envoie par l'intermédiaire du circuit 23 un ordre d'écriture, pour écrire dans un registre du jeu 27 une information correspondant à la présence d'une carte. Cette information se transmet naturellement aux noeuds du séquenceur 29 qui sont connectés à ce registre. Et le séquenceur 29 démarre.
2 Remise à zéro de la carte
Une fois que cette première séquence est effectuée il faut, en une deuxième une troisième ou une quatrième séquence remettre à zéro la carte. Cette remise à zéro dépend du type de carte auquel on a affaire. Aussi, dans des tests 32 à 34 on va avec le circuit 13 (ou avec le microprocesseur 14) , reconnaître le type de la carte qui est introduite. En pratique, on lance une séquence de remise à zéro et on regarde si elle aboutit ou si elle échoue. De préférence donc les tests suivent les deuxième à quatrième séquences.
Il faut distinguer deux types de cartes: les cartes asynchrones et les cartes synchrones. 2.1 Cartes asynchrones
Le signal d'horloge est appliqué sur le plot cam_clk à un temps TO où un signal de remise à zéro, dans un premier temps à l'état L, est appliqué sur le plot cam_rst. Le plot cam_io doit alors se retrouver à un état haute indépendance, dit Z pour simplifier, en moins de 200 cycles d'horloge. Dans cet état ce plot cam_io est capable de recevoir un signal. T2 est le temps après TO où se terminent ces 200 cycles, T3 est le temps où se terminent 40000 premiers cycles, Tl est le temps où un premier signal apparaît sur le plot cam_io en provenance de la carte.
Là on distingue encore deux types de carte:
- Cartes à remise à zéro interne pour lesquelles la réponse sur le plot cam_io intervient entre 400 et
40000 cycles d'horloge. Le test 32 mesure le fait que la réponse s'est produite pendant les 40000 premiers cycles.
- Cartes à remise à zéro active à l'état bas pour lesquelles le signal sur le plot cam_rst doit être maintenu au départ à l'état L pendant au moins 40000 cycles d'horloge (T3 après T0) . Puis le plot cam_rst doit être placé à un état haut, dit H, au temps T3 et la réponse doit intervenir sur le plot cam_io entre 400 et 40000 autres cycles d'horloge qui suivent T3. Le test 33 mesure le fait que la réponse de la carte s'est produite pendant cette troisième séquence.
Si la réponse n'intervient pas, la carte est mise hors tension par le circuit 13. Ceci est un séquencement dont le séquenceur 29 se charge sur ordre du microprocesseur 14 , transmis par le jeu 27 des registres. A l'inverse le circuit 13 délivre un status sur la bonne exécution de l'opération. Ce status est de préférence produit par le circuit de décodage 23. Ce circuit 23, ou éventuellement un autre, stocke la réponse reçue de la carte. Selon la date de réception de la réponse, ou si aucune réponse n'est reçue, la détermination du type de carte est effectuée, le séquenceur provoquant par exemple au cours de ces séquences l'inscription d'information dans les registres du jeu 27. Ainsi, si la carte n'est pas de type asynchrone, le status est négatif, on essaye alors de savoir si elle est de type synchrone. 2.2 Cartes synchrones
Le circuit 13 met alors toutes les lignes à l'état L, ainsi
. le plot cam_vcc reste alimenté; . le plot cam_vpp est au repos; . les plots cam_clk et cam_rst restent à L;
. les plots cam_io est en mode réception; puis . le plot cam_rst est mis à H à TO pendant au moins 50μs (T12) ;
. le plot cam_clk reçoit une impulsion d'horloge au niveau H après une durée T10 (supérieure à 5μs) après TO. La durée T15 de cette impulsion est de l'ordre de 10 à 50μs mais en respectant une durée Tll entre les fronts descendants sur cam_clk et cam_rst qui est supérieure à 5μs, enfin la réponse arrive sur cam_io lorsque cam_clk est à l'état L. Elle est valide après une durée T13 (inférieure ou égale à 10μs) à partir du front descendant sur cam_rst.
Ceci est un séquencement dont le séquenceur 29 se charge sur ordre du microprocesseur 14 , avec également délivrance d'un status sur la bonne exécution de 1 'opération.
Ces status sont ainsi les résultats des tests entrepris par le circuit 13. Ils peuvent conduire automatiquement à l'exécution des troisièmes ou quatrièmes séquences en cas d'échec de la deuxième séquence ou de la troisième séquence si leur écriture est effectuée directement dans le jeu 27 des registres. Selon la norme, on peut accepter plusieurs de ces comportements sans donner de priorité à l'un ou l'autre. On pourrait programmer le type de carte que l'on attend de préférence (synchrone ou asynchrone) par le microprocesseur 14 en lui laissant ainsi le choix d'essayer un autre type de remise à zéro si le status indique une erreur de réception. 2 Réponse à la remise à zéro
On distingue dans cette partie les deux types de cartes synchrones et asynchrones qui ont été préalablement identifiées. 3.1 Cartes asynchrones
3.1.1 Définition de 1 'etu initial
L'etu est la durée nominale d'un bit émis par la carte sur le plot cam_io lors de la réponse au signal présent sur cam_rst. Pour les cartes à horloge interne l'etu initial est 1/9600 seconde (9600 bauds) . Pour les cartes à horloge externe, la relation entre etu et la fréquence fi du signal d'horloge CLK est etu = 372/fi secondes. La fréquence fi est en Hz et est comprise entre IMhz et 5Mhz. Cette fréquence fi qui va induire la durée de etu est produite par le circuit coupleur 13. Pour éviter des incompatibilités avec certaines cartes et pour être sûr de pouvoir lire la réponse au signal de remise à zéro de toutes les cartes (y compris les cartes T=14 japonaises) , il est bon de pouvoir rendre cette fréquence fi programmable par le microprocesseur 14. Ceci est réalisé de préférence dans un générateur d'horloge programmable 30. Le générateur 30 délivre donc le signal présent sur le plot cam_clk. La programmation du générateur 30 est effectuée directement par des connexions clk_εys et clk_sec. Elle aurait aussi pu être provoquée par lecture du jeu 27 des registres.
3.1.2 Structure des caractères pendant la remise à zéro.
Un caractère se décompose en 10 bits consécutifs: un bit de début à un état A, 8 bits de données et un dixième bit de contrôle de parité paire (nombre de bit à 1 pair) . La durée entre deux caractères est au moins de 12 etu (durée du caractère augmenté d'un temps de garde) . Pendant le temps de garde le plot cam_io doit être à Z. Le délai entre deux caractères ne doit pas excéder 9600 etu: temps d'attente initial.
La période d'échantillonnage du signal sur le plot cam_io, lors d'une recherche de début, doit être inférieure à 0,2 etu. Le temps de garde peut être programmable ainsi qu'éventuellement le temps d'attente initial.
3.1.3 Détection des erreurs et répétition du caractère
Si une erreur de parité est détectée, le récepteur 21 émet un signal d'erreur en forçant la ligne cam_io à A pendant une durée égale à 1 etu au minimum et à 2 etu au maximum après l'arrivée du bit de parité. Puis le récepteur 21 attend la répétition du caractère. Si la répétition n'a pas lieu le dispositif d'interface doit provoquer la répétition de toute la séquence de remise à zéro. Ceci est à faire avec le circuit 13. Dans ce but le récepteur 21, au besoin par l'intermédiaire du circuit 23, force un registre du jeu 27 dont l'état électrique provoque une séquence d'attente par le séquenceur 29 d'une durée de 9600 etu. Au bout de cette attente si un caractère n'est pas reçu," le séquenceur retourne en 2.1 ci-dessus. 15
3.1.4 Structure et contenu de la réponse au reset
La réponse à la remise à zéro est constituée d'un caractère TS suivi d'au plus 32 caractères dans l'ordre suivant TO caractère de format
Tai Tbi Tei Tdi caractères d'interface Tl T2...Tk caractères historiques TCK caractère de contrôle
Les caractères d'interface indiquent les paramètres physiques du circuit intégré dans la carte et les particularités logiques du protocole d'échange qui va suivre. Les caractères historiques donnent des informations générales sur la carte.
Le circuit 13 se contente de transmettre ces caractères au microprocesseur 14 par l'intermédiaire des mémoires tampons 25 (FIFO). L'analyse du contenu des octets correspondant à ces caractères se fait par le microprocesseur 14 qui peut alors procéder à la programmation du circuit 13 en fonction de cette analyse pour procéder à la suite des échanges
(programmation d'une fréquence bits fs par exemple).
3.1.5 Structure du TS
Le caractère initial TS par contre fournit une séquence de synchronisation au niveau bit et fixe les conventions de codage des octets de données dans tous les caractères ultérieurs. La séquence de synchronisation est AZZA. A est un potentiel actif, à 0 volt ou à Vx selon la convention choisie. Z est un potentiel qui apparaît sur le plot du lecteur quand le plot de sortie de la carte se met à haute impédance et donc ne force pas de signal. Cette séquence permet au circuit 13 de déterminer l'etu initial de la carte (cas des cartes à horloge interne) . 11 est égal au tiers du délai entre les deux premiers fronts descendants de TS. Les bits suivants codent le type de convention inverse ou directe: AAA convention inverse, ZZZ convention directe.
L'analyse de ce caractère TS est faite par le circuit 20 ou le circuit 23 du circuit 13. Elle permet de connaître l'etu initial des cartes à horloge interne et de connaître la convention utilisée. Il est possible de transmettre les octets, par l'intermédiaire des mémoires tampons 24, avec la convention fixée par le microprocesseur. Cependant, pour lui éviter des manipulations de bits qui sont parfois lourdes à gérer, il suffit, en fonction de la convention utilisée par la carte et détectée dans le caractère TS, de faire sur les octets reçus, la translation adéquate. 3.1.6 Structure de TO
Le quartet de poids fort appelé Yl indique la présence des caractères d'interface TAI TBI TC1 TDI.
Le quartet de poids faible appelé K indique le nombre de caractères historiques. L'analyse de ces quartets est faite par le microprocesseur 14.
3.1.7 Structure des caractères d'interface Ils indiquent des paramètres du protocole et la présence des autres caractères d'interface: - TDi indique le type de protocole sur son quartet de poids faible et la présence des paramètres d'interface i+1 sur son quartet de poids fort.
- TAI TBI TC1 TB2 sont les octets globaux qui doivent être analysés pour traiter correctement le protocole de transmission;
- Les autres octets d'interface Tai Tbi Tci sont les octets spécifiques d'interface; - TAI code le paramètre F sur le poids fort et D sur le poids faible. TBI code I sur les bits b7 et b6 et PI sur les 5 bits de poids faibles;
- TC1 code N; - TB2 code P2;
- F et D sont utilisés pour déterminer l'etu de travail (F faGteur de conversion de l'horloge, D facteur d'ajustement du débit binaire) .
Pour les cartes à horloge interne l'etu de travail vaut 1/D*9600 en secondes.
Pour les cartes à horloge externe l'etu de travail vaut F/D*fs en secondes. fs a une valeur minimum de 1MHz et une valeur maximum déterminée par F. I et P définissent l'état actif de VPP: courant maximal d'écriture Ipp=ImA, tension d'écriture Vpp=pV.
N est le temps de garde supplémentaire requis par la carte. Avant de recevoir un caractère, la carte requiert un délai d'au moins 12+N etu à partir du front initial du caractère précédent. On utilise aucun temps de garde supplémentaire pour émettre des caractères de la carte vers le dispositif d'interface.
Tous ces caractères sont analysés par le microprocesseur 14 et le résultat de l'analyse est utilisé pour programmer le circuit 13.
3.1.8 Structure des caractères historiques Ils sont traités par le microprocesseur 14.
3.1.9 Structure de TCK
La valeur de TCK doit être telle que le OU exclusif de tous les octets de TO à TCK compris soit nul. Cette vérification peut être faite par le circuit 13 en mettant le résultat du OU exclusif dans un registre du jeu 27 pour chaque réception d'octet. Le microprocesseur vient ensuite lire ce registre à la fin de la réponse au reset. Ceci permet de vérifier le fonctionnement du circuit 13. Le calcul du OU exclusif est réinitialisé à chaque remise à zéro de la carte.
3.2 Cartes synchrones 3.2.1 Débit binaire
La relation entre le débit binaire et la fréquence fi d'horloge sur le plot cam_clk est etu = 1/fi en seconde, avec fi compris entre 7KHz et 50 KHz.
3.2.2 Structure de l'entête La réponse de la carte contient un entête de 32 bits. Les deux premiers octets sont Hl et H2.
3.2.3 Séquencement de 1 ' entête
La sortie des données est commandée par des impulsions d'horloge. La première impulsion commence à un temps T14 (lOμs < T14 < lOOμε) après le front descendant sur cam_rst. L'état haut de l'impulsion de l'horloge dure une durée T15 (10μs < T15 < 50μs) et l'état bas une durée T16 (lOμs < T16 < lOOμs) . Les bits de données peuvent être échantillonnés sur les fronts montants de l'horloge.
3.2.4 Contenu de 1 ' entête
1 code de type de protocole; H2 code des paramètres qui dépendent du type de protocole..
La mise en oeuvre du séquencement de 1 'entête avec le circuit 13 ne pose aucun problème. Les 4 octets seront rangés en mémoires tampons,. FIFO, et analysés par le microprocesseur 14 qui vérifie la comptabilité des protocoles utilisés par la carte et par le circuit 13, et demande au circuit 13 une mise en hors tension des contacts si cette compatibilité n'est pas possible.
4. Echange ultérieur d'informations, analyse des divers protocoles
4.1 Protocole T = 0 Le délai d'attente de travail entre le front initial d'un caractère émis par la carte et le front initial du caractère précédent (émis par la carte ou par le circuit 13) ne doit pas dépasser 960 * D * WI etu de travail. Cette valeur maximale est appelée temps d'attente de travail. D et WI sont codés dans la réponse à la remise à zéro. Par défaut WI vaut 10.
Ce temps d'attente de travail va constituer une limite d'attente de caractère dans le circuit 13. Il sera programmé par le microcontrôleur après la validation du protocole à utiliser.
Le dispositif d'interface est normalement maître dans l'émission des commandes. Celles-ci sont constituées d'un entête de 5 octets et d'octets de données qui sont émis sous contrôle des octets de procédure émis par la carte. La procédure de détection d'erreur et de répétition de caractères est la même que pour la réponse à la remise à zéro. Elle est obligatoire. 4.1.3 En tête de commande émis par la dispositif d'interface de l'invention.
Le circuit 13 émet un entête sur 5 octets CLA, INS, PI, P2, P3. Le circuit 13 doit attendre les octets de procédure. Ces 5 octets sont placés dans la mémoire tampon du circuit 13 par la microprocesseur 14 et envoyés par le circuit 13 à la carte suivant le protocole programmé. Le sens de transfert des informations est connu par le microprocesseur grâce à INS. 4.1.4 Octets de procédure émis par la carte
- Les octets de procédure émis par la carte sont
* ACK: commande du VPP et échange des données;
* NUL: pour relancer le temps d'attente de travail, pas d'action sur VPP ou sur les données; * SW1 suivi de SW2 : VPP à l'état de repos et termine l'échange.
- La transition de VPP doit se produire dans le temps de garde de l'octet de procédure ou dès dépassement du temps de travail.
Le circuit 13 va relancer sur chaque réception d'octet une attente limite de correction constituée par le temps d'attente de travail (quelle que soit la valeur de l'octet de procédure reçu) et mémoriser l'octet dans la mémoire tampon 24. Le microprocesseur
14 analyse le contenu de l'octet pour savoir si l'échange doit se poursuivre, s'il doit attendre, ou si l'échange est terminé. Pour activer le VPP un minimum d'analyse doit être fait sur l'octet reçu. Le microprocesseur 14 doit vérifier si l'octet de procédure commande VPP actif ou non. VPP sera actif si
OCTET=(INS+l) ou (COMPL (INS+1) ou (VPP actif et 60) .
Pour toutes les autres valeurs VPP doit être mis au repos. La norme n'indique pas s'il y a un délai à respecter dans l'émission des données par le dispositif d'interface après réception de l'octet ACK. On sait simplement que la carte doit, elle, répondre dans le délai du temps d'attente de travail. On peut donc laisser au microprocesseur 14 l'initiative de l'émission des données et par conséquent limiter de ce point de vue les opérations faites par le circuit 13.
4.2. Protocole T=l
Pour ce protocole une notion de bloc est rajoutée. Il est organisé en 3 couches: * couche physique qui suit les caractéristiques définies précédemment;
* couche de liaison de données qui définit une composante caractère et une composante bloc. La composante caractère est identique à celle vue précédemment, à la détection et répétition d'erreur près. La composante bloc est définie par ce protocole;
* couche application qui traite les commande et l'échange des blocs ou chaîne de blocs. Comme dans le protocole T=0 un temps d'attente de caractère est défini. Il a été rajouté un temps d'attente de bloc. Le temps d'attente de bloc est défini par le temps maximal écoulé entre le front initial du dernier caractère octroyant un autorisation d'émission à la carte et celui du premier caractère émis par la carte.
Le temps de garde de bloc est similaire au temps de garde de caractère défini plus haut. Le temps de garde de bloc est le temps minimal écoulé entre le front initial d'un caractère et celui du caractère qui suit dans la direction opposée.
Tous ces temps sont programmés dans le circuit 13 par écritures adéquates dans le jeu 27 de registre. Ces écritures sont effectuées par le microprocesseur 14 et prises en compte par le séquenceur 29.
L'état de VPP est contrôlé par la réponse de la carte dans l'octet d'adresse de noeud NAD et le caractère PCB qui suit. Toute transition de VPP doit intervenir dans un délai de 12 etu calculé à partir du front initial du caractère qui a déclenché ce VPP. L'analyse du caractère NAD doit donc se faire au vol, sans 1 ' intervention du microprocesseur 14 , pour l'activation de VPP.
5 Séquence de mise en hors tension des contacts. Lorsque l'échange d'information est terminé ou suspendu (carte muette ou détection du retrait de la carte) , les contacts électriques doivent être mis hors tension suivant le séquencement qui suit: . plot cam rst à L; . plot cam_clk à L;
. plot cam_vpp hors tension;
. plot cam_io à A;
. plot cam_vcc hors tension; Ceci est intégré dans le circuit 13. La réaction est immédiate lors de l'arrachage de la carte et évite les courts-circuits entre contacts.
6. Sélection du type de protocole PTS
Cet échange entre le lecteur 1 et la carte 2 permet de fixer le protocole et ses paramètres pour les échanges ultérieurs. La réponse au reset indique au lecteur le ou les protocoles supportés par la carte. Si plusieurs protocoles sont possibles un PTS est envoyé par le lecteur à la carte pour fixer le protocole. Séquencement:
- Le lecteur émet une demande de PTS;
- La carte répond par une confirmation sinon le temps d'attente initial est dépassé;
- Si l'échange de demande de PTS est satisfaisant les données peuvent suivre;
- Lorsqu'une erreur est détectée, le lecteur fait une remise à zéro e la carte ou la rejette;
Structure et contenu du PTS: demande et confirmation: 1 caractère initial PTSS - 1 caractère de format PTSO - 3 caractères optionnels de paramètres PTS1 PTS2 PTS3 - 1 caractère de contrôle. Le microprocesseur 14 écrit sa demande de PTS dans la mémoire tampon 26 du circuit 13 qui l'envoie et vérifie si la réponse arrive dans le délai d'attente initial. Le circuit 13 transmet ensuite le OU exclusif des octets au microprocesseur 14 qui vérifiera la validité de la réponse. Si la réponse n'est pas correcte, ce dernier prendra 1 ' initiative de la remise à zéro de la carte. Après un échange réussi de PTS, le microprocesseur pourra programmer le circuit 13 pour les échanges ultérieurs.
Les tableaux suivants décrivent respectivement:
- Tableau 1: les types de signaux échangés sur les deux circuits d'entrée sortie 20 et 23, I signifiant entrée dans le lecteur et O signifiant sortie du lecteur;
- Tableaux 2 et 3 : les noms des registres du jeu 27, le type de registre en L lecture ou E écriture, le contenu en octets des cellules D7 à DO de ces registres (les noms indiqués renvoient à la norme ISO) , et les fonctions de ces registres et octets.
TABLEAU 1
Figure imgf000026_0001
TABLEAU 2
Figure imgf000027_0001
TABLEAU 3
Nom def Fonction
PROTO 0 TP3.0: code le protocole 1 CP: contrôle parité (1) 0 RC: répétition caractère (1)
1 Hl : horloge interne (l) 0 AS/SY: carte asynchrone (0)/ Synchrone (1)
FRQ INI code la fréquence sur CLK pour la remise à zéro
FREQ TRV code la fréquence sur CLK pour les échanges ultérieurs
MODE POFF: mise hors tension automatique des contacts à l'arrachage
PON: mise sous tension automatique des contacts lors de 1 ' insertion carte
RST: remise à zéro automatique de la carte après une mise sous tension
TRO: transposition automatique des données avant mémorisation
TRI: type de codage des données en fifo direct (0) inverse (1)
VPP: contrôle du VPP sortit de EN_VPP
IT: génération de l' it
SEL_OSC: sélection de l'oscillateur
CLK SYS ou CLK SEC
EXE Commande l'exécution d'une action sur la carte en écriture uniquement.
Les bits sont remis à zéro dès la prise en compte par le circuit 13
POFF: séquence de mise hors tension des contacts
PON: séquence de mise sous tension des contacts
RST: séquence de remise à zéro
EM: émission des octets contenus dans la
FIFO
RE: force la mise en haute impédance de
CAM_IO et bascule en mode réception de caractères
CHGT_FR: commande la commutation de la fréquence initiale à travail
RESET: reset logiciel du circuit 13
Figure imgf000029_0001
Enfin, compte tenu de problèmes pouvant survenir dans le circuit 13 au moment où il lit la carte, le circuit 13 comporte de plus un circuit 32 de contrôle d'interruption permettant
OH d'arrêter de prévenir le microprocesseur 14 de la nécessité d'une action urgente. Le circuit 32 reçoit son information du jeu 27, et selon la nature de celle-ci émet ou non un signal d' interruption.

Claims

REVENDICATIONS
1. Lecteur (1) de carte à puce comportant: des plots (3-7) de contacts pour entrer en contact avec des plots (8-12) de contact d'une carte à puce (2) ; un circuit coupleur (13) pour appliquer ou prélever des signaux électriques sur ces plots de contacts; un microprocesseur (14) pour effectuer la réception et ou le traitement et ou l'émission de ces signaux disponibles dans le circuit coupleur caractérisée en ce que le circuit coupleur comporte:
- un premier circuit (20) d'entrée sortie;
- un jeu (14) de mémoires tampons; - un deuxième circuit (23) d'entrée sortie;
- un jeu (27) de registre (28) de commande;
- un séquenceur (29) d'opération;
- le premier circuit (20) d'entrée sortie étant en relation d'une part avec les plots (3-7) de contact du lecteur (1) et d'autre part avec le jeu (24) des mémoires tampons;
- le deuxième circuit (23) d'entrée sortie étant en relation d'une part avec le microprocesseur (14) et d'autre part avec le jeu des mémoires tampons (24); - le deuxième ou le premier circuit comportant un circuit de décodage relié au jeu (27) de registres; le séquenceur (29) commandant les circuits d'entrée sortie en fonction d'états électriques stockés dans les registres du jeu de registres.
2. Lecteur selon la revendication 1 caractérisé' en ce que le circuit coupleur (13) comporte; - une entrée de commande pour recevoir un signal de présence d'une carte à puce dans le lecteur et pour déclencher une première séquence dite de mise à zéro par le séquenceur.
3. Lecteur selon la revendication 2 caractérisé en ce que le premier ou le deuxième circuit d'entrée sortie comporte un circuit pour mesurer temporellement l'évolution des états électriques sur les plots de lecteur au cours de la première séquence.
4. Lecteur selon la revendication 2 caractérisé en ce que le deuxième circuit comporte un circuit pour écrire des états électriques dans les registres du jeu de registre au cours d'une deuxième séquence suivant la première séquence.
5. Lecteur selon l'une des revendications 1 à 4 caractérisé en ce que le deuxième d'entrée sortie comporte un circuit pour transmettre des états électriques du microprocesseur à des registres du jeu de registre.
6. Lecteur selon l'une des revendications 1 à 5 caractérisé en ce que le circuit coupleur comporte
- une horloge programmable,
- un circuit de maintien pendant une durée donnée d'un potentiel sur un des plots du lecteur.
7. Lecteur selon l'une des revendication 1 à 4 caractérisé en ce que le circuit coupleur comporte
- un circuit d'interruption (32) pour envoyer un signal d'interruption au microprocesseur (14) .
PCT/FR1996/001634 1995-10-20 1996-10-18 Lecteur de carte a puce WO1997015895A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP51634797A JP3902231B2 (ja) 1995-10-20 1996-10-18 チップカードの読取り装置
EP96934937A EP0800682B1 (fr) 1995-10-20 1996-10-18 Lecteur de carte a puce
AT96934937T ATE224565T1 (de) 1995-10-20 1996-10-18 Chipkartenleser
DE69623752T DE69623752T2 (de) 1995-10-20 1996-10-18 Chipkartenleser
US08/849,428 US6098888A (en) 1995-10-20 1996-10-18 Integrated circuit card reader with coupling circuit to limit the function of microprocessor of the reader

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9512403A FR2740240B1 (fr) 1995-10-20 1995-10-20 Lecteur de carte a puce
FR95/12403 1995-10-20

Publications (1)

Publication Number Publication Date
WO1997015895A1 true WO1997015895A1 (fr) 1997-05-01

Family

ID=9483774

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1996/001634 WO1997015895A1 (fr) 1995-10-20 1996-10-18 Lecteur de carte a puce

Country Status (9)

Country Link
US (1) US6098888A (fr)
EP (1) EP0800682B1 (fr)
JP (1) JP3902231B2 (fr)
AT (1) ATE224565T1 (fr)
CA (1) CA2208252A1 (fr)
DE (1) DE69623752T2 (fr)
ES (1) ES2183975T3 (fr)
FR (1) FR2740240B1 (fr)
WO (1) WO1997015895A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1503559A1 (fr) * 2003-07-28 2005-02-02 Canal + Technologies Procédé de détection automatique de protocole de transmission pour objet portable de type carte à puce ou clé à puce
US7792122B2 (en) 2003-07-28 2010-09-07 Nagra Thomson Licensing Transmission protocol automatic detection method for a portable object such as a chip card or a chip key

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2774196B1 (fr) * 1998-01-27 2000-03-17 Gemplus Card Int Carte a memoire asynchrone
JP2001094550A (ja) * 1999-09-17 2001-04-06 Toshiba Corp 信号処理装置
FR2803059B1 (fr) * 1999-12-22 2004-01-02 Ascom Monetel Sa Lecteur de cartes a puces synchrones
US6928569B2 (en) * 2002-07-19 2005-08-09 Texas Instruments Incorporated Automatic output delay timing adjustment for programmable glitch filter
KR100562505B1 (ko) * 2003-10-09 2006-03-21 삼성전자주식회사 중앙 처리 장치의 개입없이 널 바이트 정보를 자동적으로전송할 수 있는 집적회로 카드
FR2888365B1 (fr) * 2005-07-06 2007-10-05 Ingenico Sa Unite de commande et de communication entre un terminal et une carte a microcircuit
US20110103807A1 (en) * 2009-10-30 2011-05-05 Cachia Joseph M Replacement smart card with a microcontroller
US8554090B2 (en) * 2009-10-30 2013-10-08 Ui Technologies, Inc. Replacement printer cartridge chip with a microcontroller with an encrypted memory device
US9324065B2 (en) 2014-06-11 2016-04-26 Square, Inc. Determining languages for a multilingual interface
US10496975B2 (en) 2014-07-23 2019-12-03 Square, Inc. Point of sale system with secure and unsecure modes
US11080674B1 (en) 2014-09-19 2021-08-03 Square, Inc. Point of sale system
US9286494B1 (en) 2014-11-20 2016-03-15 Square, Inc. Card reader having discriminator contact
US10783508B1 (en) 2014-12-16 2020-09-22 Square, Inc. Processing multiple point-of-sale transactions
US10318952B1 (en) 2015-05-23 2019-06-11 Square, Inc. NFC base station and passive transmitter device
US11080675B1 (en) 2015-09-08 2021-08-03 Square, Inc. Point-of-sale system having a secure touch mode
US9721123B1 (en) 2015-12-11 2017-08-01 Square, Inc. Microcontroller intercept of EMV card contact switch
US10607200B2 (en) 2015-12-28 2020-03-31 Square, Inc. Point of sale system having a customer terminal and a merchant terminal
US10504092B2 (en) 2016-06-21 2019-12-10 Square, Inc. Transaction interface control
US10402816B2 (en) 2016-12-31 2019-09-03 Square, Inc. Partial data object acquisition and processing
US9858448B1 (en) 2017-01-31 2018-01-02 Square, Inc. Communication protocol speedup and step-down
US10621590B2 (en) 2017-02-22 2020-04-14 Square, Inc. Line-based chip card tamper detection
US10438189B2 (en) 2017-02-22 2019-10-08 Square, Inc. Server-enabled chip card interface tamper detection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0202622A2 (fr) * 1985-05-18 1986-11-26 Hitachi Maxell Ltd. Dispositif de lecture et d'écriture pour carte à C.I.
EP0670556A1 (fr) * 1994-03-04 1995-09-06 Gemplus Card International Dispositif portable pour mise en liaison fonctionnelle d'une carte à puce avec une unité centrale

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4079237A (en) * 1975-11-12 1978-03-14 Unit Process Assemblies, Inc. Card controlled beta backscatter thickness measuring instrument
US4367414A (en) * 1979-10-30 1983-01-04 General Electric Company Method and apparatus for controlling distributed electrical loads
US4423480A (en) * 1981-03-06 1983-12-27 International Business Machines Corporation Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations
US5332889A (en) * 1992-12-18 1994-07-26 Datacard Corporation Integrated circuit card programming device
US5477215A (en) * 1993-08-02 1995-12-19 At&T Corp. Arrangement for simultaneously interrogating a plurality of portable radio frequency communication devices
KR960032232A (ko) * 1995-02-25 1996-09-17 김광호 메모리 카드와 스마트카드 겸용 가능한 카드 리드/라이트 장치
US5679945A (en) * 1995-03-31 1997-10-21 Cybermark, L.L.C. Intelligent card reader having emulation features

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0202622A2 (fr) * 1985-05-18 1986-11-26 Hitachi Maxell Ltd. Dispositif de lecture et d'écriture pour carte à C.I.
EP0670556A1 (fr) * 1994-03-04 1995-09-06 Gemplus Card International Dispositif portable pour mise en liaison fonctionnelle d'une carte à puce avec une unité centrale

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PATRICK GUEULLE: "Le coupleur de carte à puce CCU 910 COREL", ELECTRONIQUE RADIO PLANS, no. 541, December 1992 (1992-12-01), PARIS,FR, pages 43 - 47, XP000323501 *
PATRICK GUEULLE: "L'interface de cartes à puce TDA8000 PHILIPS", ELECTRONIQUE RADIO PLANS, no. 543, February 1993 (1993-02-01), PARIS, FR, pages 35 - 39, XP000332002 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1503559A1 (fr) * 2003-07-28 2005-02-02 Canal + Technologies Procédé de détection automatique de protocole de transmission pour objet portable de type carte à puce ou clé à puce
WO2005015873A1 (fr) * 2003-07-28 2005-02-17 Canal+ Technologies Procédé de détection automatique de protocole de transmission pour objet portable de type carte à puce ou clé à puce
US7792122B2 (en) 2003-07-28 2010-09-07 Nagra Thomson Licensing Transmission protocol automatic detection method for a portable object such as a chip card or a chip key

Also Published As

Publication number Publication date
ES2183975T3 (es) 2003-04-01
DE69623752D1 (de) 2002-10-24
EP0800682B1 (fr) 2002-09-18
US6098888A (en) 2000-08-08
ATE224565T1 (de) 2002-10-15
FR2740240A1 (fr) 1997-04-25
DE69623752T2 (de) 2003-06-05
JP3902231B2 (ja) 2007-04-04
EP0800682A1 (fr) 1997-10-15
FR2740240B1 (fr) 1997-11-21
CA2208252A1 (fr) 1997-05-01
JPH10511491A (ja) 1998-11-04

Similar Documents

Publication Publication Date Title
EP0800682B1 (fr) Lecteur de carte a puce
EP0168077B1 (fr) Circuit d&#39;interface du type esclave fonctionnant avec un bus série
EP0889429B1 (fr) Lecteur de cartes à puces à protocole de transmission rapide
EP0626664B2 (fr) Système de communication avec cartes à puce
FR2806505A1 (fr) Procede de communication entre une carte a puce et une station hote
FR2503899A1 (fr) Procede et dispositif de transmission de donnees numeriques
EP3317819B1 (fr) Entité électronique et procédé mis en oeuvre dans une telle entité électronique
FR2606905A1 (fr) Systeme de traitement d&#39;appareil electronique portable
EP0472472B1 (fr) Dispositif pour le dialogue à distance entre une station et un ou plusieurs objets portatifs
EP0926619B1 (fr) Interface de communication avec une carte à puce et dispositif équipé d&#39;une telle interface
EP0850449A1 (fr) Procede et appareil de telechargement rapide de fonctions dans une memoire volatile
EP2585982B1 (fr) Procede de gestion de la communication entre un dispositif electronique et un appareil de communication
FR2686997A1 (fr) Carte a puce a deux contacts et procede de communication avec un lecteur de carte.
EP0129487A1 (fr) Installation de calcul à commutation automatique de périphériques et périphérique propre à de telles commutations
WO2006106192A1 (fr) Procede de gestion d&#39;une pluralite de lecteurs de jetons a puce electronique et equipements de mise en oeuvre dudit procede.
FR2860891A1 (fr) Carte a circuit integre apte a transmettre automatiquement une information d&#39;octet nul sans intervention de l&#39;unite centrale
CA2067902C (fr) Procede et dispositif de detection et de controle du gabarit de messages numeriques transmis a un dispositif de reception
EP1038256B1 (fr) Microcircuit a logique cablee comportant une interface de communication numerique
EP3945467A1 (fr) Transpondeur sans contact
FR2757979A1 (fr) Procede d&#39;interpretation dynamique de donnees pour une carte a puce
FR2757335A1 (fr) Procede et appareil electrique pour l&#39;echange de donnees, et carte a puce pour la mise en oeuvre du procede
FR2803059A1 (fr) Lecteur de cartes a puces synchrones
FR2786580A1 (fr) Circuit generateur de signature
FR2808100A1 (fr) Interface de connexion entre des lecteurs de cartes a puce et systeme de connexion entre des lecteurs comprenant une telle interface
FR2536883A1 (fr) Procede et dispositif de coordination des transferts d&#39;informations numeriques entre des unites de traitement de donnees emettrice et receptrice interconnectees par un canal de transmission asynchrone

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 08849428

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2208252

Country of ref document: CA

Ref country code: CA

Ref document number: 2208252

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1996934937

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1996934937

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1996934937

Country of ref document: EP