Brevet FR2888365A1 — publié le 20070112

UNITE DE COMMANDE ET DE COMMUNICATION ENTRE UN TERMINAL ET UNE CARTE A MICROCIRCUIT La présente invention se rapporte à une unité de commande et de communication entre un terminal et au moins une carte à microcircuit. Elle appartient au domaine des composants électroniques numériques. On connaît des unités de commande et de communication capables de gérer des échanges de données entre un terminal et une carte à microcircuit. En cas de détection d'une erreur pendant la transmission, les unités de commande et de communication classiques engendrent généralement une interruption. Cependant, le temps que l'interruption soit traitée, la transmission de données, qui se poursuit, ne peut plus être gérée et des données sont perdues. L'invention a pour but de remédier aux inconvénients de l'art antérieur. Dans ce but, la présente invention propose une unité de commande et de communication entre un terminal et au moins une carte à microcircuit, remarquable en ce qu'elle comporte: - un module de pilotage d'une pluralité de signaux d'entrée de la carte à microcircuit; - un module de génération d'une pluralité de diagrammes des temps relatifs à des protocoles de communication de la carte à microcircuit; - un module de génération de requêtes d'émission et de réception de caractères à partir d'informations reçues en provenance du module de pilotage, ces requêtes étant destinées à un module externe; et - un module de génération d'interruptions, adapté à engendrer une interruption en cas d'erreur dans un diagramme des temps ou sur un caractère reçu ou transmis, à partir d'informations reçues en provenance du module de pilotage, et à traiter cette interruption sans perte de caractère, la génération d'une interruption n'interrompant pas le processus de génération de requêtes. Ainsi, la présente invention permet de poursuivre la réception et l'émission de données entre le terminal et la carte même lorsqu'une erreur est détectée dans un diagramme des temps ou dans un caractère reçu ou transmis et qu'une interruption est engendrée, et ce sans perte de caractères. Par "caractère", on entend ici typiquement une suite de bits comprenant un bit de début, un certain nombre de bits de données (par exemple, un octet), un bit de parité et un bit de fin. En raison du traitement concomitant de la transmission de caractères et des interruptions, l'invention s'applique particulièrement bien aux systèmes temps réel. De plus, l'invention permet de s'affranchir des contraintes de précision sur le respect des diagrammes des temps par la carte, puisqu'un contrôle de ceux-ci est effectué par l'unité de commande et de communication pendant les échanges de caractères. En outre, l'unité centrale de traitement présente dans l'unité de commande et de communication conforme à l'invention n'intervient pas pendant les échanges de caractères entre le terminal et la carte, ce -qui allège considérablement sa charge de traitement. Selon une caractéristique particulière, le module de génération de diagrammes des temps est adapté à programmer des valeurs d'une pluralité de paramètres de la pluralité de diagrammes des temps et à configurer les diagrammes dans un état activé ou désactivé. Cela confère une grande capacité d'évolution à l'unité de commande et de communication, en fonction de l'évolution de la normalisation. Cela permet d'éviter d'avoir à changer le matériel dans des appareils installés sur le terrain lorsque la normalisation change. L'unité de commande et de communication proposée est notamment conforme, non seulement à la norme ISO 7816-3, mais également aux normes EMV 4.0 (2000) et EMV 3.1.1. Selon une caractéristique particulière, le module de génération d'interruptions est adapté à n'engendrer une interruption en cas d'erreur sur un caractère reçu ou transmis qu'après qu'un nombre prédéterminé de caractères a été reçu. Ainsi, une réponse peut être préparée sans attendre la fin d'une trame (c'est-à-dire d'un ensemble de caractères), ce qui est avantageux en termes de temps de réponse, si les caractères nécessaires pour cette réponse se situent en cours de trame. L'unité de commande et de communication conforme à la présente invention est avantageusement comprise dans un circuit intégré dédié à une application ou ASIC (en anglais "Application Specific Integrated Circuit") . En variante, elle peut être comprise dans un composant électronique programmable du type FPGA (réseau de portes programmable par l'utilisateur, en anglais "Field Programmable Gate Array") ou CPLD (puce logique programmable, en anglais "Complex Programmable Logic Device"). Dans le même but que celui indiqué plus haut, la présente invention propose également un module de commande et de communication, remarquable en ce qu'il comporte au moins deux unités de commande et de communication telles que ci-dessus, l'une des unités de commande et de communication pilotant une carte à microcircuit principale et les autres unités de commande et de communication pilotant chacune au moins une carte à microcircuit. Un tel module peut ainsi piloter simultanément une carte principale et plusieurs cartes SIM. Par exemple, dans le cas d'une transaction bancaire effectuée par un client chez un commerçant, la carte principale est par exemple la carte bancaire du client et les cartes SIM sont celles du commerçant et de la banque. Toujours dans le même but, l'invention propose en outre un terminal de lecture de cartes à microcircuit, remarquable en ce qu'il comporte un module de commande et de communication tel que ci-dessus. Un tel terminal présente les mêmes avantages que ceux mentionnés ci-dessus relativement à l'unité de commande et de communication et au module de commande et de communication. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit d'un mode particulier de réalisation, donné à titre d'exemple non limitatif. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 représente de façon schématique une unité de commande et de communication conforme à la présente invention, dans un mode particulier de réalisation; et - la figure 2 représente de façon schématique un module de commande et de communication comportant deux unités de commande et de communication du type de celle illustrée sur la figure 1, dans un mode particulier de réalisation. Comme le montre la figure 1, dans un mode particulier de réalisation, une unité de commande et de communication 10 conforme à la présente invention, qui peut être comprise dans un terminal de lecture de cartes à microcircuit, comporte un module de communication 12 qui gère un lien série bidirectionnel avec une carte à microcircuit (non représentée). Le module 12 participe à l'émission de caractères vers la carte et à la réception de caractères en provenance de celle-ci. A cet effet, il émet des requêtes en émission et en réception à destination d'un module externe du type DMA (en anglais "Direct Multiple Access") capable de lire et mémoriser des caractères reçus ou à émettre. La communication entre le module 12 et le DMA s'effectue via une interface de DMA 20. Le module 12 comporte un générateur de signal d'horloge 14 qui fournit un signal d'horloge de fréquence programmable pour commander la carte. Le module 12 a également pour rôle de détecter des erreurs éventuelles relatives à un caractère, telles qu'une erreur de parité, une erreur de bit d'arrêt ou encore un débordement de pile. II est en outre capable de gérer les demandes de répétition de caractères, en émission ou en réception, en cas d'erreur. De plus, le module 12 gère les interruptions liées aux caractères, qui peuvent être engendrées en cas d'erreur. On peut prévoir que le module 12 n'engendre une interruption en cas d'erreur sur un caractère que lorsqu'un certain nombre de caractères a été reçu. Ainsi, une réponse peut être préparée sans attendre la fin d'une trame (c'est-à-dire d'un ensemble de caractères), ce qui est avantageux si les caractères nécessaires pour cette réponse se situent en cours de trame. Le module de communication 12 et son générateur de signal d'horloge 14 sont reliés à un module de commande 16, qui participe aussi à l'émission et à la réception des caractères en commandant le module 12. Par ailleurs, le module 16 a notamment pour fonctions la génération d'une pluralité de diagrammes des temps relatifs à des protocoles de communication de la carte, la commande de la fourniture d'une alimentation en courant à la carte, la détection de la présence d'une carte dans le terminal de lecture de cartes, la désactivation de la carte en cas de retrait ou d'arrachement de celle-ci ou en cas de problème électrique, la commande de l'initialisation ou "reset" de la carte, la vérification des intervalles entre caractères et d'autres contraintes temporelles liées à l'émission et à la réception de caractères, la génération des interruptions et la gestion des interruptions liées aux diagrammes des temps. A titre d'exemples non limitatifs, le module 16 engendre des 15 diagrammes des temps relatifs aux paramètres suivants: - réponse au reset ("ATR Timing") : les valeurs minimale et maximale du délai de réponse au reset sont programmables et sont contrôlées par le module 16, qui engendre une interruption notamment si, lors de la transmission, l'une de ces valeurs sort d'une plage prédéterminée, sans toutefois que cela interrompe le traitement des caractères; - temps d'attente maximal entre une phase d'émission et une phase de réception ("Block Waiting Time") : la valeur maximale du temps d'attente est programmable et est contrôlée par le module 16, qui engendre une interruption si, lors de la transmission, cette valeur dépasse une valeur prédéterminée, sans toutefois que cela interrompe le traitement des caractères; - temps inter- caractères ("Character Waiting Time") : cette durée est programmable et est contrôlée par le module 16, qui engendre une interruption si, lors de la transmission, elle dépasse une valeur prédéterminée, sans toutefois que cela interrompe le traitement des caractères; - temps d'attente entre deux phases (réception ou émission, puis réception) ("Work Waiting Time") : cette durée est contrôlée par le module 16; - intervalle de garde minimal entre une phase d'émission et une phase de réception ("Block Guard Time") : cette durée est programmable et est contrôlée par le module 16, qui engendre une interruption si, lors de la transmission, cette durée est inférieure à une valeur prédéterminée, sans toutefois que cela interrompe le traitement des caractères; - durée de retournement (passage d'une phase de réception à une phase d'émission) ("Reverse Delay') : cette durée est programmable et est contrôlée par le module 16. En outre, le module 16 est adapté à configurer les divers diagrammes des temps dans un état activé ou désactivé, l'état désactivé signifiant que le paramètre défini par le diagramme des temps correspondant est absent. Le module de communication 12 et le module de commande 16 constituent des moyens de pilotage d'une pluralité de signaux d'entrée de la carte, dont principalement: signaux d'alimentation (tension Vcc et masse Gnd), signal d'horloge, reset et entrée/sortie de caractères. Le module de communication 12, son générateur de signal d'horloge 14 et le module de commande 16 sont reliés à un bus de communication via une interface de bus 18, pour communiquer avec le DMA. Le bus et l'interface 18 sont par exemple du type APB (ARM Bus Peripheral). Afin de pouvoir piloter simultanément plusieurs cartes à microcircuit, on peut prévoir d'intégrer une pluralité d'unités de commande et de communication du type de l'unité 10 de la figure 1 dans un module de commande et de communication. La figure 2 illustre le cas où un module de commande et de communication 22 comporte deux unités de commande et de communication 101 et 102. L'unité 101 pilote une carte à microcircuit dite principale (appelée "carte P" sur le dessin) et l'unité 102 pilote N cartes à microcircuit telles que des cartes SIM (module d'identification de l'abonné, en anglais "Subscriber Identification Module"). Pour permettre à l'unité 102 de piloter N cartes, le module 22 comporte une unité de multiplexage/démultiplexage 24. A titre d'exemple nullement limitatif, N = 4. Le module 22 est alors capable de piloter simultanément une carte principale et quatre cartes SIM grâce à deux unités de commande et de communication conformes à l'invention. Ne pas multiplier le nombre total de ces unités de commande et de communication à l'intérieur d'un même module de commande et de communication permet de conserver un encombrement réduit du composant électronique. De façon similaire à la structure d'une unité de commande et de communication 10, le module de commande et de communication 22 comporte en outre une interface 26 pour la communication avec un DMA, une interface de bus 28 pour la communication entre les différents éléments du module 22 et le DMA via un bus de communication et une interface 30 pour la gestion des interruptions. Le module de commande et de communication 22 peut être compris dans un terminal de lecture de cartes à microcircuit. REVENDICATIONS 1. Unité de commande et de communication (10) entre un terminal et au moins une carte à microcircuit, caractérisée en ce qu'elle comporte: -des moyens (12, 16) de pilotage d'une pluralité de signaux d'entrée de ladite au moins une carte à microcircuit; - des moyens (16) de génération d'une pluralité de diagrammes des temps relatifs à des protocoles de communication de ladite au moins une carte à microcircuit; - des moyens (12) de génération de requêtes d'émission et de réception de caractères à partir d'informations reçues en provenance desdits moyens de pilotage, lesdites requêtes étant destinées à un module externe; et - des moyens (16) de génération d'interruptions, adaptés à engendrer une interruption en cas d'erreur dans un diagramme des temps ou sur un caractère reçu ou transmis, à partir d'informations reçues en provenance des moyens de pilotage, et à traiter ladite interruption sans perte de caractère, la génération d'une interruption n'interrompant pas le processus de génération de requêtes. 2. Unité de commande et de communication (10) selon la revendication 1, caractérisée en ce que lesdits moyens (16) de génération de diagrammes des temps sont adaptés à programmer des valeurs d'une pluralité de paramètres de ladite pluralité de diagrammes des temps et à configurer lesdits diagrammes dans un état activé ou désactivé. 3. Unité de commande et de communication (10) selon la revendication 1 ou 2, caractérisée en ce que les moyens (16) de génération d'interruptions sont adaptés à n'engendrer une interruption en cas d'erreur sur un caractère reçu ou transmis qu'après qu'un nombre prédéterminé de caractères a été reçu. 4. Unité de commande et de communication (10) selon la revendication 1, 2 ou 3, caractérisée en ce qu'elle est conforme aux normes EMV 4.0 (2000), EMV 3.1.1 et ISO 7816-3. 5. Unité de commande et de communication (10) selon lune quelconque des revendications précédentes, caractérisée en ce qu'elle est comprise dans un circuit intégré dédié à une application ou ASIC. 6. Unité de commande et de communication (10) selon l'une quelconque des revendications 1 à 4, caractérisée en ce qu'elle est comprise dans un composant électronique programmable. 7. Module de commande et de communication (22), caractérisé en ce qu'il comporte au moins deux unités de commande et de communication (101, 102) selon l'une quelconque des revendications 1 à 6, l'une des unités de commande et de communication pilotant une carte à microcircuit principale et les autres unités de commande et de communication pilotant chacune au moins une carte à microcircuit. 8. Terminal de lecture de cartes à microcircuit, caractérisé en ce qu'il comporte un module de commande et de communication selon la revendication 7.