Brevet FR2839798A1 — publié le 20031121

L' invention concerne de facon generale des systemes de developpement de puces. Des cartes a memoire ou a puce vent utilisees dans une diversite d' applications touj ours plus large. L'une de ces applications est l'utilisation de cartes a puce ou a memoire pour offrir une possibilite de paiement par credit/debit a une foule diutilisateurs de passage. Des cartes a memoire ont trouve des applications dans de nombreux autres domaines comprenant les telephones a paiement, la sante, l'identite et l'acces bancaire, la television a paiement, les jeux, le dosage et la vente. Le commerce de detail utilise des cartes a memoire pour favoriser la fidelisation, par exemple l'utilisation de cartes a memoire pour l'obtention d'un rabais sur une merchandise ou pour gagner des points qui peuvent etre echanges contre de l'argent ou des produits. Les cartes a memoire comportent generalement un ou plusieurs circuits integres (CI) places dans la masse de la carte pour recevoir et stocker de l 'information. Les CI peuvent etre du type uniquement a lecture ou peuvent avoir une capacite de lecture/ecriture. Les cartes a memoire reutilisable ayant une capacite de lecture/ecriture permettent a des utilisateurs d'ajouter du temps ou de la valeur a des cartes a memoire du type pour paiement, evitant ainsi l' inconvenient davoir a porter de l'argent liquide ou bien, dans le cas d'un transit de masse, le change exact, pour chaque usage. La carte a memoire peut egalement contenir une interface, laquelle depend selon que la carte a memoire est d'un type a contact ou sans contact. Les cartes sans contact peuvent contenir une structure d'antenne destinee a une communication avec une source RF, et elles peuvent egalement comprendre des circuits concus pour firer de l'energie de fonctionnement du signal RF. Les dispositifs connus de developpement de cartes a puce ou a memoire comprennent habituellement l'utilisation d'un dispositif d' emulation. En general, un tel dispositif demulation comprend une partie materielle pourvue d'un systeme de developpement a micro-ordinateur (MDS pour "Microcomputer Development System") et une plaquette d'emulation. Un environnement d'application est s habituellement en interface avec le dispositif d' emulation. Le systeme de developpement MDS correspond a la memoire centrale de ['unite CPU et fonctionne en tent que telle. Une puce cible pour une evaluation peut etre introduite dans la plaquette d'emulation. L'environnement d'applica t ion est material ise avec divers programmes de logiciels qui peuvent faciliter l'utilisation du dispositif d'emulation et qui vent destines a tester une puce cible. La figure 1 des dessins annexes et decrits ci-apres illustre un systeme classique de developpement de cartes a puce. Comme illustre, le systeme de developpement comprend a la fois un logiciel 100 et un materiel 110. Le logiciel comprend un assembleur 120, un compilateur 130, un editeur de liens 140, un debogueur 150 et un simulateur 160. Le materiel 110 comprend un systeme MDS 170 et une plaquette d'emulation 180 dans laquelle une puce cible 190 peut etre inseree. La plaquette d' emulation 180 est connectee a un terminal 200 par l'intermediaire d'une carte d' interface RS-232C 202. Le systeme MDS 170 est un microprocesseur qui commande/verifie le fonctionnement de 2s la puce cible l9o. Etant donne que le fonctionnement de la plupart des cartes a memoire classiques est determine de facon specifique et ne peut pas etre modifie par des processus de fabrication de semiconducteurs executes pour developper les puces utilisees sur les cartes, les systemes de developpement concus avec une combinaison d'un logiciel et diun materiel vent apses a traiter suffisamment ltensemble programmation/essai execute une seule fois et necessaire a l 'activation fonctionnelle des cartes a memoire. Cependant avec la pour-quite du perfectionnement et du developpement de la technologie des cartes a memoire, les parties materielles des systemes classiques de developpement doivent souvent etre redeveloppees et fabriquees, a un cout pouvant etre eleve. Un exemple d'une forme de realisation de ['invention s porte sur un systeme de developpement de puces. Un exemple diune forme de realisation de l' invention porte sur un systeme de developpement de puces a bibliotheque de fonctions incorporee. Un exemple de forme de realisation de linvention porte sur un systeme de developpement de puces comprenant un logiciel pour la simulation du fonctionnement de puces, et une bibliotheque de fonctions pour le traitement de fonctions de puce, la bibliotheque de fonctions pouvant etre attaquee par le logiciel de debogage. Un autre exemple de forme de realisation de l'inven tion porte sur un procede de developpement de puces, qui simule une fonctionnalite de puce en utilisant un logiciel, et traite des fonctions de puce sous la forme d'un logiciel. L' invention sera decrite plus en detail en regard des dessins annexes a titre d'exemple nullement limitatif et sur lesquels: la figure 1 illustre schematiquement un systeme classique de developpement de cartes a memoire; et 2s la figure 2 illustre schematiquement un systeme de developpement de cartes a memoire selon un exemple d'une forme de realisation de l 'invention. On decrira en detail ci-apres un systeme de developpe ment de puces. Le systeme de developpement de puces peut etre utilise en tent que systeme de developpement de cartes a memoire ou a puce. Cependant, il peut egalement etre utilise pour le developpement et le traitement de diverges autres puces, qui peuvent etre utilisees ou non conjointement avec des cartes a memoire. La figure 2 illustre un systeme de developpement de cartes a memoire selon un exemple de forme de real isat ion de ['invention. En reference a la figure 2, un systeme de developpement de cartes a memoire selon un exemple de forme de realisation de l' invention peut comprendre un logiciel 210 de debogage destine a simuler une operation effectuee par une carte a memoire, une bibliotheque 220 de fonctions, dans laquelle des fonctions de cartes a memoire vent traitees sous la forme d'un logiciel, un pilote 230 de dispositif destine a piloter la bibliotheque 220 de fonctions, une bibliotheque 240 de communication E/S en serie destinee a fournir un algorithme d'un protocole de communication entre le logiciel 210 de debogage et la bibliotheque 220 de fonctions, ainsi qutune plaquette 250 d'adaptation de carte destinee a supporter une communica- tion avec un terminal 260 qui manipule la carte a memoire. Le logiciel 210 de debogage peut comprendre un assem bleur 211, un compilateur 213, un editeur de liens 214, un debogueur 215 et un simulateur 216 pour l 'execution diun code developpe en utilisant le logiciel 210 de debogage. Ce logiciel 210 de debogage peut etre utilise pour compiler et deboguer des fichiers de la bibliotheque 220 de fonctions. L'assembleur 211 peut fonctionner de facon a traduire en code machine binaire un programme en langage d'assemblage. L'assembleur 211 rappelle des valeurs de symbole et des adresses d'elements de donnees. A la 2s difference dun langage de haut niveau, chaque instruction en langage assembleur correspond a une instruction machine. Le compilateur 213 peut etre un programme d'ordinateur qui lit des fichiers sources dun autre programme pour produire un fichier binaire, qui doit etre execute par un ordinateur. Les fichiers sources decrivent le programme en utilisant un langage d'ordinateur tel que C, C++, COBOL ou analogue. Le fichier binaire produit par le compilateur 213 peut contenir une serie d'instructions machine binaires pour un type particulier d'ordinateur. De plus, le compilateur 213 peut generer des messages de diagnostic lorequ'il detecte des erreurs dans les fichiers sources. Le compilateur 213 se distingue de l'assembleur 211 par le fait que chaque instruction d' entree ne correspond pas, en general a une instruction machine unique ou a une sequence fixe diinstructions. Un compilateur peut supporter des s caracteristiques telles qu'une affectation automatique de variables, des expressions arithmetiques arbitraires, des structures de commande telles que des boucles FOR et WHILE, une portee variable, des operations d' entree/sortie, des fonctions d'ordre superieur et une transferabilite d'un code source. Un fichier source peut contenir des directives de compilateur qui peuvent provoquer l' inclusion d'autres fichiers sources. Une unite de compilation (non representee) peut etre un fichier de programme source IS unique donne a un compilateur, plus tous les fichiers de programmes sources inclus directement ou indirectement par ce fichier. Un fichier binaire peut contenir des instructions machine provenant d'une ou plusieurs unites de compilation, et une unite de compilation peut provenir de multiples fichiers sources. Parfois, les instructions machine d'une unite de compilation unique vent sauvegardees dans un fichier binaire separe, appele fichier objet. Des fichiers objets vent alors combines par liediteur de liens 214 pour creer un fichier binaire final. 2s Une fois qu'un programme a ete compile et lie, il peut etre execute puis debogue. Etant donne que des erreurs logiques, egalement connues sous le nom de "bogues", vent introduites par des programmeurs, les erreurs peuvent etre detectees et comprises en utilisant le debogueur 215. Apres la correction de toutes erreurs decouvertes et une recompilation, le debogueur 215 peut etre utilise pour confirmer que les erreurs ont ete eliminees. D'autres utilisations du debogueur 215 comprennent le controle de programmes d'execution pour comprendre leur fonctionnement, 3s la surveillance de l'utilisation de la memoire, l 'instrumentation et l'essai de programmes, la verification de la justesse de la traduction du programme par le compilateur 213, et la verification de la justesse de fonctionnement d'autres programmes dependents. La bibliotheque 220 de fonctions comprend une memoire centrale 222 de cryptage dans laquelle des donnees d' information destinees a etre utilisees avec une carte a memoire peuvent etre stockees, un generateur 224 de nombres aleatoires destine a randomiser un code devant etre utilise avec une carte a memoire, et un generateur 226 d'horloge aleatoire destine a generer une horloge pour synchroniser les donnees d' information devant d'etre utilisees avec une carte a memoire. La memoire centrale 222 de cryptage peut comprendre une bibliotheque de cryptage ayant un algorithme pour le codage de documents ou d'informations de fichiers. La memoire centrale 222 de cryptage peut generer des codes de cryptage comprenant la norme de cryptage de donnees (DES pour "Data Encryption Standard"), la norme de cryptage RSA, la cryptologie de courbe elliptique (ECC pour "Elliptical Curve Cryptology), entre autres codes connus d'un specialiste de la technique. La memoire centrale 222 de cryptage n'est pas limitee aux techniques de cryptage indiquees. Le generateur 224 de nombres aleatoires et le generateur 226 d'horloge aleatoire peuvent etre commandes 2s de fa,con aleatoire afin de crypter diune maniere imprevisible des donnees d'information. Conformement a un exemple de forme de realisation de ['invention, la bibliotheque 220 de fonctions remplace generalement le materiel classique du systeme MDS et une plaquette d' emulation. Par consequent, loreque des modifications et des perfectionnements affectent la technologie des cartes a memoire, le systeme de developpement conforme aux exemples de formes de realisation de l 'invention peut etre mis a j our en cas de 3s besoin. De plus, etant donne qu'une serie de processus necessaires au montage ou au demontage d'une carte a memoire vent elimines, l 'emulation d'une carte a memoire peut etre rapidement realisee. Conformement aux exemples de formes de realisation de ['invention, le fonctionnement d'une puce peut etre verifie en utilisant la bibliotheque 220 de fonctions. En particulier, la bibliotheque 220 de fonctions peut traiter des fonctions de puce sous la forme d'un logiciel. Il est done possible de verifier et developper librement et aisement le fonctionnement de puces sans etre soumis aux limitations associees au systeme de developpement base sur du materiel. Ceci peut reduire le temps demande pour developper le fonctionnement d'une puce. Il va de soi que de nombreuses modifications peuvent etre apportees aux formes de realisation decrites et representees sans sortie du cadre de ['invention. REVENDICATIONS 1. Systeme de developpement de puces, caracterise en ce qu'il comporte un logiciel (210) destine a simuler le fonctionnement d'une puce; et s une bibliotheque (220) de fonctions pour le traitement de fonctions de puce, cette bibliotheque etant pilotee par le logiciel. 2. Systeme de developpement de puces selon la revendication 1, caracterise en ce que le logiciel comprend au moins l'un d'un assembleur (211), d'un compilateur (213), d'un editeur de liens (214), d'un debogueur (215) et d'un simulateur (216). 3. Systeme de developpement de puces selon la revendication 1, caracterise en ce que la bibliotheque de fonctions comprend une memoire centrale (222) de cryptage destinee a stocker les fonctions de puce, un generateur (224) de nombres aleatoires destine a randomiser un code, et un generateur (226) d'horloge aleatoire destine a generer un signal d'horloge de synchronisation. 4. Systeme de developpement de puces selon la revendication 3, caracterise en ce que la bibliotheque de fonctions comprend une fonctionnalite d' interface pour supporter une communication avec un terminal (260). 5. Systeme de developpement de puces selon la 2s revendication 1, caracterise en ce qu'il comporte en outre un terminal (260) en interface avec le systeme de developpement de puces, le terminal permettant une manipulation fonctionnelle du systeme. 6. Systeme de developpement de puces selon la revendication 1, caracterise en ce qu'il comporte en outre une bibliotheque (240) de communication destinee a fournir un algorithme de protocole de communication pour faciliter une communication entre le logiciel de debogage et la bibliotheque de fonctions. 3s 7. Systeme de developpement de puces selon la revendication 1, caracterise en ce qu'il comporte en outre un pilote (210) de pAriphrigue destind piloter la biblioLh6que de toncLions. 8. SystAme de d6veloement de puces selon la revendicaLion 1, caracLdris en ce que le foncLions de puce Ge pr6Gentent OuG la torme dinn logiciel. 9. Procd de d6velopement de puceG, CaraCtdris en ce qu'il comprend la simulation de la toncLionnaliLd d'Une puce en uLiliGanL on logiciel (210), eL le LraiLemenL des foncLions de puce GOUG la forme d'un logiciel. 10. Procd de dAveloppemenL de puces selon la revendicaLion 9, caracL4risA en ce que le logiciel comprend au moins l'un d'un aGGembleur (211), d'un compilaLeur (213), d'un Aditeuc de liens (214), d'un dbogueur (215) et