FR 2868647 A1 20051007 FR 0502983 A 20050325 INTERFACE DE TRANSMISSION L'invention concerne une interface de transmission de données pour l'échange de données entre un appareil de lecture et une carte à puce, notamment des cartes à puce qui sont liées à l'appareil de lecture par l'intermédiaire de contacts. On entend par une carte à puce un support en forme de carte qui comporte un circuit intégré. Le circuit intégré est muni d'une interface qui permet une communication de données avec l'appareil de lecture. Le circuit io intégré, appelé de manière brève puce, peut y être une puce de mémoire dans laquelle des données sont mises en mémoire, ou un microprocesseur qui peut traiter et gérer des données. Les cartes à puce comportant des puces de mémoire sont utilisées, par exemple, comme cartes téléphoniques, cartes d'assurance maladie et cartes pour le paiement sans argent liquide. Les cartes à puce plus complexes comportant des microprocesseurs sont utilisées principalement pour des codages, comme par exemple pour l'authentification d'un module SIM dans le système de radiocommunication mobile GSM et peuvent réaliser des opérations de calcul complexes. Simultanément, on forme aussi de plus en plus des combinaisons des deux types de cartes à puce. Une interface unitaire est indispensable pour une large diffusion de cartes à puce. La norme ISO 7816 est la norme d'interface la plus largement diffusée pour des cartes à puce à contact et définit des propriétés mécaniques et électriques de la carte à puce afin d'assurer une compatibilité. Pour relier la carte à puce à l'appareil de lecture, cette norme prévoit des surfaces de contact qui sont représentées à la Figure 1. Un contact Cl sert à amener un potentiel VDD d'alimentation, un contact C2 sert à amener le signal RST de remise à l'état initial, un contact C3 sert à amener le signal CLK d'horloge, un contact C4 est réservé pour des applications futures, un contact C5 sert à amener le potentiel GND de masse, un contact C6 sert à amener un potentiel VPP de programmation, un contact C7 sert à amener un signal I/O de données et le contact C8 est réservé à des fins futures, comme le contact C4 (RFU, reserved for future use). Des huit contacts, six sont définis de manière fixe dans leur fonction et deux sont laissés libres pour des extensions futures. Comme seulement six contacts sont nécessaires, on trouve, outre des cartes à puce à huit contacts, aussi des cartes à puce qui ne comportent que six contacts pour des raisons de coût. La Figure 2 illustre la transmission de données entre carte à puce et appareil lecteur suivant ISO 7816. Parmi les liaisons nécessaires des contacts 1 de cartes à puce et de contacts 2 d'appareils de lecture, il n'est représenté que la liaison pour le signal I/O de données entre les contacts C7. Par l'intermédiaire de ces liaisons, des informations sont échangées entre la carte à puce et l'appareil de lecture sous forme numérique, bit par bit. Comme il n'y a qu'une ligne, soit l'appareil de lecture émet et la carte à puce reçoit, io soit la carte à puce émet et l'appareil de lecture reçoit. Ce genre de transmission de données est connu comme communication sérielle en demi-duplex. Les données traitées par octet par le processeur de la carte à puce doivent être converties en un courant de données sérielles de bits. Chaque octet est subdivisé en ses huit bits individuels, ceux-ci sont envoyés ensuite l'un après l'autre par l'intermédiaire de la ligne. La durée d'un bit de données de ce genre est fixée par un diviseur qui définit le nombre de signaux d'horloge que dure un bit de données. Comme la carte à puce n'a pas de signal d'horloge propre, on utilise le signal CLK d'horloge, appliqué de manière externe, de l'appareil de lecture. Le débit de transmission de données est ainsi directement proportionnel au signal CLK d'horloge externe et au diviseur. Le volume de données à transmettre entre carte à puce et appareil de lecture augmente avec l'accroissement de la fonctionnalité des cartes à puce. Afin de maximiser la vitesse de transmission de données, on a utilisé ces derniers temps des diviseurs de plus en plus petits et des séquences de plus en plus grandes. Pour une fréquence d'horloge maximale de 10 Mhz et un diviseur minimal de 32, on obtient la limite supérieure actuelle du débit de transmission de données de 10 MHz/32 = 312,5 kbits/sec. Pour ces grands débits de transmission de données, la durée dont dispose le système d'exploitation de la carte à puce pour commander l'émission et la réception et pour le traitement ultérieur de données est de plus en plus courte. Afin de décharger le système d'exploitation et le microprocesseur de la carte à puce, l'échange de données est de plus en plus soutenu par du matériel spécial pour la transmission de données. A l'aide d'un module d'interface, le module appelé UART (Universal Synchronous Receiver Transmitter), on peut augmenter les débits de transmission de données indépendamment de la puissance du processeur de carte à puce et réduire la dépense en logiciel pour l'échange de données. La communication entre appareil de lecture et carte à puce suivant ISO 7816 est commandée par l'appareil de lecture. Après que la carte à puce a été introduite dans l'appareil de lecture et que les contacts 1 de l'appareil de lecture ont été reliés aux contacts 2 de la carte à puce, les contacts sont activés du point de vue électrique en une succession prescrite. La carte à puce effectue alors automatiquement un Power-OnReset et émet io un message Answer-To-Reset (ATR) à destination de l'appareil de lecture. Cet ATR contient diverses informations sur l'ensemble des fonctions de la carte à puce et les paramètres de transmission de données ou le protocole de transmission. Après que I'ATR a été exploité par l'appareil de lecture, l'appareil de lecture peut émettre encore en option à destination de la carte à puce une commande Protocol-Type-Selection (PTS) par laquelle les paramètres du protocole de transmission de la carte à puce peuvent être réglés. Après l'établissement de l'interface de transmission de données, l'appareil de lecture peut émettre des instructions à destination de la carte à puce. La carte à puce traite l'instruction et envoie une réponse à l'appareil de lecture. Ce dernier émet l'instruction suivante, qui est traitée de manière analogue suivant le principe maître-esclave. La communication lors de laquelle l'appareil de lecture est maître et la carte à puce est esclave se poursuit jusqu'à ce que la liaison soit supprimée. L'échange de données entre carte à puce et appareil de lecture a lieu suivant ISO 7816 par l'intermédiaire d'une interface sérielle dans le procédé en semi-duplex, le débit de transmission de données maximum étant de 312,5 kbits/sec. Si ces débits de transmission de données étaient autrefois suffisants, ils s'avèrent être un goulot d'étranglement dans la communication entre carte à puce et appareil de lecture avec l'accroissement de puissance de mémoire et de processeur. Si l'échange de données n'est commandé que par le logiciel du système d'exploitation, la vitesse du processeur met ici des limites supplémentaires, si bien que le débit de transmission de données maximum ne peut être atteint que par utilisation d'un UART. Afin d'obtenir une vitesse de transmission encore plus grande, on travaille à des efforts de normalisation qui prévoient de diminuer encore plus le facteur du diviseur et d'augmenter la fréquence d'horloge. On envisage aussi comme solution une multiplication interne de signal d'horloge. Une toute autre voie de solution prévoit d'utiliser une interface supplémentaire, comme par exemple un UST (Universal Serial Bus) qui comporte un débit de transmission de données plus grand de 1,5 Mbit/sec à 12 Mbits/sec (US 6 439 464 B1). Un inconvénient dans cette solution est toutefois que l'on a besoin non seulement d'une interface supplémentaire, mais aussi encore d'un protocole supplémentaire pour transmettre les données. Tout le matériel et logiciel pour la commande de données doit être étendu en conséquence. C'est pourquoi l'invention vise à augmenter le débit de transmission de données entre carte à puce et appareil de lecture. Suivant l'invention, on y parvient par le fait que l'interface de transmission de données pour l'échange de données entre la carte à puce et l'appareil de lecture comporte un nombre variable de canaux. Pour le procédé, on y parvient par le fait que la transmission de données s'effectue par l'intermédiaire d'un nombre variable de canaux. De manière avantageuse, l'interface de transmission de données comporte au moins deux canaux. On peut ainsi tirer parti de manière optimale du matériel présent pour une maximisation du débit de transmission de données. Dans un mode de réalisation supplémentaire de l'invention, le nombre des canaux pour la transmission de données est déterminé par le débit de transmission de données à transmettre. De plus, le nombre des canaux pour la transmission de données peut être déterminé par le matériel présent dans l'appareil de lecture et dans la carte à puce. Un perfectionnement de l'interface de transmission de données suivant l'invention prévoit d'utiliser une partie des canaux présents pour la transmission de données de l'appareil de lecture à la carte à puce, et l'autre partie pour la transmission de données simultanée de la carte à puce à l'appareil de lecture. Cela a l'avantage qu'une transmission de données peut avoir lieu en mode Full-Duplex. Dans une variante de réalisation préférée, la transmission de données s'effectue suivant la norme ISO 7816. On s'assure ainsi de la 35 compatibilité avec l'infrastructure présente d'appareil de lecture. De manière avantageuse, l'interface de transmission de données comporte une unité de communication. La transmission de données peut être accélérée par celle-ci. Suivant un mode de réalisation avantageux, le nombre des canaux de l'interface de transmission de données est déterminé en fonction du matériel présent des participants à l'échange de données. Suivant un mode de réalisation avantageux, le nombre de canaux de l'interface de transmission de données est déterminé en fonction des données à transmettre. lo Suivant un mode de réalisation avantageux, le nombre des canaux de l'interface de transmission de données est déterminé en fonction d'une quantité de données. Suivant un mode de réalisation avantageux, le nombre des canaux de l'interface de transmission de données est déterminé en fonction 15 du sens de transmission de données. Suivant un mode de réalisation avantageux, le nombre des canaux de l'interface de transmission de données est déterminé en fonction d'un débit de transmission de données. L'invention est explicitée plus en détail dans ce qui suit sur un exemple de réalisation, à l'aide des dessins. La Figure 1 représente les contacts d'une interface suivant ISO 7816. La Figure 2 représente la transmission de données sérielles entre carte à puce et appareil de lecture suivant ISO 7816. La Figure 3 représente une variante possible de réalisation de l'interface de transmission de données suivant l'invention pour l'échange de données entre une carte à puce et un appareil de lecture. La Figure 4 représente un mode de réalisation possible pour la préparation de données dans une UART pour l'échange de données par l'intermédiaire de l'interface de transmission de données suivant l'invention. La Figure 5 représente un déroulement possible pour l'établissement de l'interface de transmission de données pour l'échange de données entre appareil de lecture et carte à puce. La Figure 3 représente un mode de réalisation de l'interface de 35 transmission de données. Il est représenté, comme à la Figure 2, les contacts 1 de cartes à puce et les contacts 2 d'appareils de lecture. Il est essentiel pour l'invention que, pour la transmission de données, outre la liaison par l'intermédiaire du contact 7 de signal de données, de plus encore les trois contacts C4, C6 et C8 de la carte à puce soient reliés à ceux de l'appareil de lecture. On dispose maintenant, au lieu de seulement une ligne sérielle, de quatre lignes parallèles. Le débit de transmission de données maximum peut ainsi être augmenté du facteur quatre. Pour une fréquence d'horloge de 10 MHz et un diviseur de 32, on obtient donc une vitesse de transmission de 1,25 Mbit/s. io La paire C7 de contacts est utilisée comme auparavant pour la transmission de données. L'utilisation des paires C4 et C8 de contacts n'est pas fixée suivant ISO 7816, les paires de contacts peuvent être utilisées par conséquent aussi pour la transmission de données. On a besoin des paires de contacts C6 pour la première génération de cartes à puce afin de transmettre de l'appareil de lecture à la carte à puce les grands courants et tensions nécessaires pour la programmation de la EPROM. Les EEPROM aujourd'hui utilisées peuvent cependant, contrairement aux EPROM, être programmées par une tension qui est produite sur la puce par une pompe de charge. Les contacts C6 ne sont par conséquent plus utilisés et peuvent être utilisés également pour la transmission de données. La Figure 4 représente une configuration supplémentaire du mode de réalisation du côté de la carte à puce. Il est prévu un UART, qui représente une unité de réception et d'émission, qui commande la transmission de données et qui décharge ainsi le processeur de la carte à puce. Des données qui sont transmises par bits par l'intermédiaire de l'interface sérielle du contact C7 à I'UART y sont réunies en octets ou en blocs de données et ensuite transmises à la CPU. Non seulement le contact C7 (ligne en trait plein), mais aussi de plus les contacts C4, C6 et C8 (lignes en tirets) sont reliés à l'UART. Il est déterminé par l'intermédiaire d'un circuit 3 de sélection le nombre de ces contacts qui sont retransmis à l'unité 4 de conversion. Les bits de données à transmettre peuvent ainsi être envoyés en parallèle à l'unité 4 de conversion. Dans cette unité, ils sont retransmis au processeur CPU de cartes à puce en étant traités et réunis en parallèle en octets ou en blocs de données. C'est un grand avantage dans ce dispositif que l'on ne doive changer ni de matériel ni de logiciel du processeur CPU de carte à puce. La seule modification nécessaire s'effectue dans I'UART. Au lieu que les données soient réunies bit par bit en octets ou en blocs de données, elles sont maintenues reçues et retransmises en parallèle par l'UART. Le nombre des canaux utilisés pour la transmission de données parallèle est donc variable. S'il n'est utilisé qu'un canal, on a une compatibilité totale avec la norme ISO 7816. Cela est notamment important si l'un des deux participants à l'interface, l'appareil de lecture ou la carte à puce, n'assiste pas une transmission de données parallèle. Toute la transmission de données a io alors lieu comme d'habitude par l'intermédiaire du contact C7. Pour une carte à puce n'ayant que six contacts, les contacts C4 et C8 ne sont pas disponibles pour la transmission de données. On arrive malgré tout à établir deux canaux pour la transmission de données en utilisant, en plus du contact C7 connu, de plus le contact C6 pour la tension de programmation. Une transmission de données parallèle par trois ou quatre canaux n'est possible que pour des cartes à puce ayant huit contacts. Il est prévu ici de sélectionner le nombre des canaux utilisés en fonction du matériel à disposition dans l'appareil de lecture et dans la carte à puce. Cela peut s'effectuer automatiquement pendant le Answer-to-Reset (ATR) et, le cas échéant, la phase de Protocol- Type-Selection (PTS). Comme plusieurs canaux sont disponibles pour la transmission de données, on n'est plus lié au protocole semi-duplex. Bien au contraire, on peut déterminer le nombre de canaux et le sens dans lequel des données doivent être transmises. On peut ainsi utiliser, par exemple, tous les quatre canaux pour transmettre des données de l'appareil de lecture à la carte à puce. Il est aussi possible d'échanger des données en même temps entre l'appareil de lecture et la carte à puce. Pour ce fonctionnement en FullDuplex, on peut subdiviser de manière égale les canaux. Pour en tout quatre canaux, on peut utiliser deux canaux pour la transmission de données de l'appareil de lecture à la carte à puce et, à nouveau, deux canaux pour la transmission de données de la carte à puce à l'appareil de lecture. Outre cette subdivision égale, on peut aussi imaginer de n'utiliser qu'un canal pour la transmission de données de l'appareil de lecture à la carte à puce et trois canaux pour la transmission de données de la carte à puce à l'appareil de lecture. Cette constellation est similaire à un raccordement DSL asymétrique à des bits de transmission Uplink et Downlink différents. Si on ne dispose que de deux canaux, comme par exemple pour une carte à puce n'ayant que six contacts, on peut utiliser les canaux en parallèle dans le fonctionnement semi-duplex ou individuellement pour une transmission en Full-Duplex. La sélection du nombre des canaux dans son ensemble et du nombre que l'on utilise dans un sens peut être effectuée par I'UART, en fonction des instructions à réaliser et de l'échange de données qui y est lié. La Figure 5 représente un diagramme de déroulement des étapes individuelles pour l'établissement une interface de transmission de io données entre un appareil de lecture et une carte à puce. Les trois premières étapes dans le diagramme de déroulement correspondent à la façon usuelle de procéder et s'effectuent selon la norme ISO 7816. L'appareil de lecture envoie d'abord une instruction de connexion et remise à l'état initial à la carte à puce. La carte à puce y réagit par une réponse à la remise à l'état initial (ATR). Cette remise à l'état initial contient en l'occurrence les paramètres pour la transmission de données qui sont mises en mémoire dans la carte à puce. Ensuite, l'appareil de lecture envoie une instruction (PTS) sélection du type de protocole à la carte à puce. Par l'intermédiaire de l'instruction PTS, une modification de paramètres de protocole de transmission de données est demandée. En fonction du matériel présent dans l'appareil de lecture et dans la carte à puce, il est décidé si une transmission de données parallèle est possible. Si la carte à puce ou l'appareil de lecture n'est pas conçu pour cela, il se produit une communication sérielle suivant la norme ISO 7816 dans laquelle les données sont transmises de manière sérielle bit par bit. Si le protocole déterminé à l'aide du matériel présent montre qu'une transmission de données parallèle entre la carte à puce et l'appareil de lecture est possible, il suit à l'étape suivante une détermination du nombre des canaux qui devront être utilisés en parallèle. Cette sélection peut s'effectuer, par exemple, en fonction du volume de données à transmettre. A l'étape suivante, on détermine le nombre des canaux qui seront utilisés pour la transmission de données de la carte à puce à l'appareil de lecture et le nombre qui sera utilisé pour la transmission de données de l'appareil de lecture à la carte à puce. Si l'on doit émettre, par exemple, d'assez grandes quantités de données de la carte à puce, il est judicieux de réunir plusieurs canaux pour ce canal. Il est ainsi possible d'optimiser la transmission de données entre appareil de lecture et carte à puce d'une manière correspondant à la situation et à l'exigence associée. Après que l'interface de données a été établie, les données sont transmises. L'interface de données est à nouveau supprimée lorsque l'on met fin à la communication. Par la possibilité de choisir si l'on doit établir une interface sérielle ou parallèle, il est possible d'effectuer des transmissions de données compatibles et rapides dans un univers hétérogène d'appareils de lecture. La description qui précède des exemples de réalisation suivant la présente invention ne sert qu'à des fins d'illustration et non pas à des fins lo de limitation de l'invention. Dans le cadre de l'invention, diverses variations et modifications sont possibles sans quitter la portée de l'invention ainsi que ses équivalents io Liste des signes de référence 1 Contacts de cartes à puce 2 Contacts d'appareils de lecture 3 Circuit de sélection 4 Unité de conversion Cl Tension VDD d'alimentation C2 Signal RST de remise à l'état initial C3 Signal CLK d'horloge C4 Contact pour application RFU future C5 Masse GND C6 Tension VPP de programmation C7 Signal I/O de données C8 Contact pour application en RFU future CPU Microprocesseur sur carte à puce UART Module universel asynchrone d'émission et réception Il REVENDICATIONS 1. Interface de transmission de données pour l'échange de données entre un appareil de lecture et une carte à puce, caractérisée en ce que l'interface de transmission de données comporte un nombre variable de canaux. 2. Dispositif suivant la revendication 1, caractérisé en ce que l'interface de transmission de données comporte au moins deux canaux. 3. Dispositif suivant la revendication 1 ou 2, caractérisé en ce que le nombre des canaux pour la transmission de données est 15 déterminé par le débit de transmission de données à transmettre. 4. Dispositif suivant la revendication 1 ou 2, caractérisé en ce que le nombre des canaux pour la transmission de données est déterminé par le matériel présent dans l'appareil de lecture et la carte à puce. 5. Dispositif suivant l'une des revendications précédentes, caractérisé en ce que une partie des canaux présents est utilisée pour la transmission de données de l'appareil de lecture à la carte à puce et l'autre partie est utilisée pour la transmission simultanée de données de la carte à puce à 25 l'appareil de lecture. 6. Dispositif suivant la revendication 1, caractérisé en ce que la transmission de données s'effectue suivant la norme ISO i0 7816. 7. Dispositif suivant l'une des revendications précédentes, caractérisé en ce que l'interface de transmission de données comporte une unité (UART) de communication. 8. Procédé pour l'échange de données par l'intermédiaire d'une interface de transmission de données, caractérisé en ce que la transmission de données s'effectue par l'intermédiaire d'un nombre variable de canaux. 9. Procédé suivant la revendication 8, caractérisé en ce que le nombre des canaux de l'interface de transmission de données est déterminé en fonction du matériel présent des participants à l'échange de données. 10. Procédé suivant la revendication 8, caractérisé en ce que le nombre des canaux de l'interface de transmission de données est déterminé en fonction des données à transmettre. 11. Procédé suivant la revendication 10, caractérisé en ce que le nombre des canaux de l'interface de transmission de données est déterminé en fonction d'une quantité de données. 12. Procédé suivant la revendication 10, caractérisé en ce que le nombre des canaux de l'interface de transmission de données est déterminé en fonction du sens de transmission de données. 13. Procédé suivant la revendication 10, caractérisé en ce que le nombre des canaux de l'interface de transmission de données 30 est déterminé en fonction d'un débit de transmission de données.