Brevet FR2674060A1 — publié le 19920918

PROCEDE DE PROGRAMMATION POUR MEMOIRE INTEGREE, NOTAMMENT POUR CARTE A MEMOIRE. La présente invention se rapporte aux procédés qui permettent de programmer les mémoires intégrées, notamment celles prévues pour les cartes à mémoire, pour y inscrire des données binaires de nature diverses. Les cartes à mémoire, connues aussi sous le nom de cartes "à puce", sont des cartes au format carte de crédit, dans lesquelles est inséré au moins un circuit intégré comportant une mémoire et des circuits logiques d'exploitation pouvant éventuellement constituer un microprocesseur. Une partie au moins de la mémoire est programmée pour constituer une mémoire à lecture seule du type ROM, afin par exemple de personnaliser la carte. Pour cela, on programme la mémoire, puis on claque un fusible qui permet d'interdire toute inscription dans la zone ainsi programmée. On pourra ainsi lire cette zone, mais on ne pourra pas la reprogrammer. Le claquage d'un fusible permet en principe une protection très sure, puisque normalement un fusible ne se reconstitue pas. Cependant, dans la pratique, on constate parfois, sinon la reconstitution, tout au moins le retour à un état relativement conducteur du fusible claqué, ce qui peut alors permettre une possibilité de reprogrammation de la zone normalement protégée. Le phénomène à l'origine de cet effet n'est pas très connu, et l'on pense qu'il y a des particules d'éléments conducteurs qui viennent reconstituer à plus ou moins long terme la connexion détruite, en raison des dimensions minuscules de cette connexion. Ces dimensions très réduites font que, pour claquer les fusibles, on n'applique la tension de claquage que pendant une durée limitée comprise entre 5 et 10 ms et on limite l'intensité maximale du courant de claquage à environ 30 mA, afin de ne pas risquer d'endommager les connexions avoisinant celle qui doit être claquée. En outre les dispositifs actuellement utilisés pour claquer les fusibles sont très simples et essentiellement dédiés à un type de circuit. Ils ne permettent donc pas de modifier la tension de claquage à appliquer au circuit, ni la durée d'application de cette tension. Par ailleurs, pour respecter les limites précisées ci-dessus, le courant débité est faible. Enfin, le claquage n'est pas vérifié systématiquement. Pour obtenir une programmation sûre des cartes à mémoire, l'invention propose un procédé de programmation pour mémoire intégrée du type à protection par fusible, dans lequel on applique à un fusible pendant une durée déterminée une tension de claquage correspondant à un courant limité à une intensité déterminée, principalement caractérisé en ce que cette intensité est au moins égale à 1 Ampère. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante, faite à titre d'exemple non limitatif en regard des figures annexées, qui représentent - la figure 1, un schéma général d'un ensemble de programmation et de protection selon l'invention ; et - la figure 2, un schéma du dispositif de génération de la tension de claquage. Sur la figure 1, un lecteur 101 de carte à puce répondant aux normes connues ISO 7816-3 est relié à un organe de commande 102, du type ordinateur personnel (PC) par exemple, et à un module de claquage 103 qui délivre les tensions de claquage des fusibles. Pour cela, le lecteur comprend des circuits d'interface qui permettent de commander le module 103 à partir du PC 102 et d'appliquer la tension obtenue à l'interface, connue en elle-même du lecteur avec la carte. Ces circuits d'interface comprennent des liaisons et des circuits logiques assemblés selon des techniques courantes. Ils permettent simplement de faciliter la liaison avec le PC et on pourrait très bien utiliser une liaison directe avec celui-ci, ce qui aurait toutefois pour inconvénient de nécessiter une sortie supplémentaire sur le PC, plus couteuse que l'interface intégrée dans le lecteur. Le schéma du module de claquage est détaillé sur la figure 2. Un transformateur 201, alimenté par le secteur, est relié à un circuit de redressement 202 pour obtenir deux tensions continues, + et - 60 V. Ces tensions sont actuellement les tensions extrêmes nécessaires, selon l'invention, pour le claquage des fusibles des mémoires à protection par fusible. Si dans l'avenir il fallait utiliser des tensions supérieures, on les obtiendrait sans difficultés. La valeur de la tension à utiliser (dépendant du type de mémoire) arrive du PC, via le lecteur 101, sous la forme d'un mot binaire qui est appliqué à un convertisseur numérique analogique 203. Celui-ci délivre la tension de référence choisie par le PC à un transistor commutateur 204. Ce transistor commutateur 204 est ouvert pendant la durée nécessaire, par une impulsion de validation de temps appliquée sur sa grille. Cette impulsion provient elle-même du lecteur 101, dans lequel elle a été calibrée à partir par exemple d'un autre mot binaire délivré par le PC. Comme ni le convertisseur, ni le transistor commutateur, ne peuvent délivrer l'intensité nécessaire, la tension de référence est appliquée à un amplificateur de puissance 205, alimenté par le redresseur 202. Cet amplificateur délivre alors l'impulsion de claquage désirée vers la carte à puce, via le lecteur 101. La résistance de sortie de cet amplificateur est par exemple inférieure à 1 ohm et l'amplificateur est muni de moyens de limitation de courant, par exemple une résistance extérieure de réglage 206. En outre, si la tension de référence n'est égale qu'à une fraction de la tension de claquage, en raison par exemple des limitations du convertisseur 203, l'amplificateur 205 est muni de moyens de réglage de son gain, par exemple une résistance extérieure 207. Tous ces moyens sont connus en eux-mêmes. Selon l'invention, la limitation du courant de claquage, et éventuellement la durée de l'impulsion, sont considérablement supérieures aux valeurs maximales couramment utilisées. Typiquement, on limite le courant à 2A et on applique la tension pendant 1 à 100 ms, de préférence pendant 30 à 100 ms. On obtient ainsi un claquage totalement irréversible des fusibles, sans provoquer aucun dégât dans les cellules avoisinant le fusible qui est claqué, contrairement aux craintes qui jusqu'à maintenant avaient mené aux limitations de l'art connu. Ce courant de 2A est généralement obtenu avec une tension de 50 V, qui se situe dans la gamme prévue plus haut. Les programmes d'adressage des cellules de la mémoire et de commande (par tout ou rien) du claquage sont connus et il suffit de compléter le mot binaire qui commande le claquage par un nombre suffisant de bits, ou éventuellement par d'autres mots binaires, pour déterminer la durée et la tension de l'impulsion de claquage utilisée. Ceci ne présente aucune difficulté pour l'homme de l'art connaissant déjà le programme de claquage utilisé auparavant. En outre, le programme pourra être complété par des instructions permettant de lire le contenu de la mémoire après sa programmation, ce qui est facile puisque le lecteur 101 permet justement cette lecture, sur commande du PC 102 Les valeurs de courant et de durée qui ont été indiquées ci-dessus sont des valeurs courantes pour des mémoires utilisées habituellement. Compte tenu des différents modèles de mémoire, et de l'évolution des techniques, il est intéressant de pouvoir procéder à des tests afin de déterminer les valeurs optimales correspondant à un type particulier de mémoire, existant actuellement ou à venir. Pour cela, selon l'invention, on programme le PC 102 afin de claquer dans une, ou plusieurs, cartes à mémoire d'essai un nombre suffisamment significatif de fusibles, avec des tensions et des durées variées s'échelonnant au dessus et au dessous des valeurs indiquées ci-dessus. On claquera par exemple une dizaine de fusibles avec des valeurs variées de couples tension/temps. Une fois la mémoire ainsi protégée, on procède à la l'écriture/lecture de son contenu (comme dans un test de mémoire), toujours par programmation du PC 102, pour vérifier que les fusibles claqués sont bien claqués, que les informations enregistrées dans la zone protégée n'ont pas été perturbées par l'opération, et que les zones non protégées ne sont pas détériorées. On répète cette opération d'écriture/lecture à plusieurs reprises à quelques jours d'intervalle afin de vérifier la stabilité des claquages. Finalement on choisit les valeurs de tension et de durée qui conviennent le mieux en fonction des résultats obtenus. C'est en fait par cette méthode que les inventeurs sont parvenus aux valeurs décrites plus haut, qui conviennent dans les cas les plus courants actuellement. REVENDICATIONS 1 - Procédé de programmation pour mémoire intégrée du type à protection par fusible, dans lequel on applique à un fusible pendant une durée déterminée (204) une tension de claquage correspondant à un courant limité (206) à une intensité déterminée, caractérisé en ce que cette intensité est au moins égale à 1 Ampère. 2 - Procédé selon la revendication 1, caractérisé en ce que la durée déterminée est comprise entre 1 et 100 ms. 3 - Procédé selon la revendication 1, caractérisé en ce que la durée déterminée (204) est au moins égale à 30 ms. 4 - Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'intensité (206) est sensiblement égale à 2 Ampères. 5 - Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la durée déterminée (204) est sensiblement égale à 100 ms. 6 - Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'on utilise un ordinateur (102) pour commander la durée et la tension de l'impulsion de claquage. 7 - Procédé selon la revendication 6, caractérisé en ce que l'on contrôle le claquage du fusible en effectuant une écriture/lecture de la mémoire à l'aide de l'ordinateur (102). 8 - Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que l'on détermine un couple tension/durée (203,204) optimal de l'impulsion pour un modèle déterminé de fusible en claquant un ensemble de fusibles avec des couples tension/durée variables et en contrôlant par des écritures/lectures étalées dans le temps que les informations inscrites dans la zone protégée y sont toujours présentes et protégées. 9 - Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que la mémoire est placée dans une carte à puce.