Une serrure électronique à ChipCard (carte à puce)

Active un dispositif électronique ou ouvre une porte / un portail à serrure électrique, mais seulement si une carte à puce habilitée est insérée. Le système prévoit la possibilité d’enregistrer jusqu’à seize groupes d’usagers. Le circuit peut être utilisé comme programmateur de carte à puce et comme serrure électronique à proprement parler.


Les ChipCards (cartes à puces) jouent un rôle de plus en plus important dans le domaine professionnel comme dans la vie de tous les jours : les SIM des téléphones mobiles, les cartes de crédit et débit genre Moneo, les cartes prépayées…certaines contiennent même des informations protégées par un code de sécurité. Elles sont très pratiques (vous êtes d’ailleurs de plus en plus nombreux à les utiliser tous les jours), sûres, fiables et leur puce (“chip”), souvent bien visible, vous est devenue familière. On les utilise comme moyen de transport d’informations et comme système d’identification.

Notre réalisation
C’est cet important developpement des Chips Cards dans de nombreux domaines qui nous a inspiré le présent article. Nous vous proposons de construire une serrure (entendez par là : un contrôle d’ouverture) électronique à carte à puce fonctionnant de manière totalement autonome et disposant d’un relais s’excitant pendant une certaine durée ou en mode bistable quand la carte est introduite dans le lecteur et qu’elle est reconnue valide. La caractéristique principale du circuit, outre qu’il sert de serrure électronique, tient dans ce qu’il permet aussi de programmer les cartes à puces en clés d’accès qui seront ensuite utilisées pour commander l’ouverture (c’est comme si la serrure était en même temps serrurier) : cette programmation consiste à formater chaque carte afin de la rendre, au moment de la lecture, conforme aux attentes du système.
Ce circuit permet encore de créer des cartes ayant des codes différents, de façon à rendre sélectif l’accès à la commande du relais : autrement dit, au moment de sa programmation, nous pouvons attribuer des cartes à puces à un groupe dont les membres, à certaine période, ne pourraient pas jouir du libre accès. Chaque fonction est gérée manuellement et localement au moyen de deux dip-switchs et d’un poussoir, avec signalisation par deux LED.
Avant d’entrer dans le détail du fonctionnement, voyons sommairement comment le circuit agit ; deux moments : la création du groupe avec l’habilitation du lecteur et la programmation des cartes, le fonctionnement normal comme serrure électronique (voir figure 1).
Le premier prévoit trois procédures dont deux regardent les cartes : d’abord la préparation de l’attribution des deux données (le code du groupe et le code de sécurité correspondant, mot de passe ou PSC) ; ensuite la réinitialisation à l’état vierge d’une ou plusieurs cartes quand on veut reprogrammer une carte attribuée à un groupe afin de la rendre utilisable par un autre groupe ou un autre système. La procédure restante est également importante, elle concerne le circuit en lui-même et non plus les cartes : il s’agit ici de gérer les groupes d’usagers. En effet, s’il est vrai que programmer une carte en lui attribuant un code de sécurité et un groupe la rend compatible avec le système, en utilisation normale (fonction serrure) néanmoins, le circuit est à configurer avec l’information relative aux groupes pouvant activer le dispositif. Pour qu’une carte puisse activer le relais, il ne suffit pas qu’elle ait été configurée pour l’utilisation avec la serrure, il faut en outre “dire” au circuit si le groupe auquel elle appartient peut ou non accéder à la commande d’ouverture. Or cela se fait justement au moyen de la procédure de définition des groupes. L’habilitation d’un groupe est faite avant d’initialiser les cartes ; l’exclusion ou la réhabilitation d’un ou plusieurs groupes d’usagers peut être opérée quand on le souhaite et aussi souvent que nécessaire.
Voyons cela en partant des cartes utilisées, basées sur la mémoire protégée Siemens SLE4442 de capacité 2 kbits : il s’agit d’une EEPROM répartie en plusieurs zones et dans laquelle l’écriture et la lecture des données est sécurisée par un code d’accès préalablement introduit. Plus exactement, dans la zone protégée, les opérations de lecture/écriture ne peuvent être faites qu’après vérification d’un mot de passe de 24 bits (PSC=Personal Security Code, à 6 chiffres hexadécimaux, dont chacun vaut 4 bits binaires). Dans l’aire non protégée, seule l’écriture est soumise à la vérification du code ; les données contenues (parmi lesquelles il n’y a pas, bien sûr, le PSC) peuvent en revanche être lues librement. Durant la programmation des cartes pour l’utilisation avec notre système nous écrivons des données dans la mémoire protégée, données pouvant être lues seulement après vérification du code de sécurité ; les informations sur le groupe de chaque carte sont en revanche situées dans la zone non protégée.
Quand, en utilisation normale (serrure) on introduit une carte dans le lecteur, le circuit l’interroge et vérifie à quel groupe elle appartient ; quand cela est fait, s’il s’agit d’un groupe actuellement habilité, il est procédé à la comparaison du code (PSC) afin de s’assurer que la carte a effectivement été initialisée dans le système. Deux cas de figure peuvent alors se présenter : dans le premier, la comparaison du code étant positive, le relais est activé ; dans le second, la comparaison est négative car le PSC que le circuit s’attend à trouver dans la carte ne correspond pas avec celui défini pour le groupe auquel il devrait appartenir. Le circuit ne va pas plus loin et attend que la carte soit retirée et réintroduite dans le lecteur.
Ce mode de fonctionnement assure un degré de sécurité élevé et pour plusieurs raisons : en mode serrure le dispositif n’accepte que les cartes initialisées par lui (et contenant dans la mémoire libre les informations sur le groupe) ; si au cours de l’interrogation il ne les trouve pas, il ignore la carte. S’il les trouve, elles doivent être celles d’un groupe habilité, sinon il ne fait rien. Enfin, si la carte est d’un groupe habilité, l’accès à la commande de sortie est subordonné à la comparaison du PSC de la carte : si une carte est d’un groupe habilité mais si son PSC est erroné, l’accès est refusé. De plus, si quelqu’un tente d’accéder, non seulement il n’obtiendra aucune commande du relais, mais en outre, après trois tentatives, la carte deviendra inutilisable. En effet, grâce à un mécanisme de protection des cartes à puces Siemens, la comparaison du PSC décompte d’une unité l’état d’un compteur d’erreur à trois bits : chacun passe de 1 à 0 à chaque comparaison, positive ou négative et donc après trois comparaisons, si le compteur n’est par remis à zéro, c’est-à-dire si ses trois bits ne sont pas remis au niveau logique 1, la carte devient inaccessible. Le fait est que l’instruction de remise à zéro (ou réinitialisation) ne peut être donnée à la carte qu’après avoir introduit le PSC exact (comparaison positive) et non dans le cas inverse, pour des motifs évidents de sécurité.

FONCTION PROGRAMMATION

Figure 1 : Fonctions de programmation et serrure.

Phase 1 : création du groupe.
Sans insérer de carte dans le lecteur, paramétrer les deux micro-interrupteurs de DS2 sur ON.
Quant à DS1, définir avec les micro-interrupteurs 7 à 10 le groupe (d’appartenance de la carte) à créer et habiliter, dont le code de sécurité (PSC) doit être établi avec les micro-interrupteurs 1 à 6. Presser ensuite le poussoir du circuit.

Phase 2 : attribution de carte.
Insérer la carte dans le lecteur, paramétrer DS2 de telle façon que le premier micro-interrupteur soit sur OFF et le second sur ON. Quant à DS1, il faut seulement définir, avec les micro-interrupteurs 7 à 10, le groupe d’appartenance de la carte à programmer ; nul besoin de paramétrer le PSC car le microcontrôleur l’a en mémoire et, si on presse le poussoir du circuit, il l’écrit dans la carte. L’opération est confirmée par un éclair de la LED jaune.

FONCTION SERRURE
Pour faire fonctionner le circuit en serrure électrique, il faut mettre sur OFF les micro-interrupteurs de DS2 ; DS1 ici ne sert pas. Si la carte insérée dans le lecteur a été programmée de façon à appartenir à un groupe habilité avec la procédure ci-dessus, le relais de sortie du circuit s’excite et la serrure électrique est activée.

Le schéma électrique

Figure 2 : Schéma électrique du programmateur de ChipCard / serrure électronique.

Un coup d’oeil au schéma électrique de la figure 2 révèle, une fois de plus, un coeur formé du microcontrôleur Microchip PIC16F876-EF578 déjà programmé en usine : sa mémoire programme est de 8 kbits (mot à 14 bits permettant la programmation en PicBasic), son EEPROM à 256 octets et sa fréquence de travail à 20 MHz. Il est programmé avec les routines de gestion des cartes à puces et il inclut la procédure d’accès.
Son programme résident prévoit initialement de vérifier, dans l’aire de mémoire non protégée de la carte, la présence des données sur le groupe ; puis de comparer le PSC et, si la comparaison est positive, d’envoyer les commandes de “reset” au compteur d’erreur (réinitialisation à 111). L’EEPROM est utilisée dans sa totalité pour mémoriser le PSC des groupes habilités. Un poussoir, deux dip-switchs et trois cavaliers, sont reliés aux ports d’E / S, configurés comme entrées, afin de permettre la gestion des groupes d’usagers ; on voit que, pour les broches du port B, il n’est pas nécessaire de monter un réseau résistif de tirage, car nous avons paramétré par voie logicielle les résistances de tirage internes. L’horloge est produite par l’oscillateur du micro et le quartz externe de 20 MHz, associé aux condensateurs reliés aux broches OSC1 et OSC2.
Le relais, commandant les dispositifs électriques ou électromécaniques faisant suite à ce montage, est piloté par un transistor géré par le bit 1 du port A, configuré en sortie. La diode en parallèle sur son enroulement supprime les tensions inverses dues à la commutation.
LD2 a une utilité diagnostique : elle fournit un code d’erreur (voir tableau figure 9) en cas d’anomalie. L’alimentation est stabilisée à 5 V par le régulateur 7805 : c’est la tension nécessaire au fonctionnement correct du microcontrôleur. D1 protège le circuit contre une inversion accidentelle de la polarité ; les condensateurs en aval de sa cathode filtrent les tensions impulsionnelles parasites et les résidus de courant alternatif du redresseur ou de l’alimentation secteur 230 V reliée aux points + et –PWR. L’allumage de LD1 indique la présence de la tension d’alimentation.
La “SmartCard” est accessible par le connecteur vertical à 10 broches où est reliée la platine d’interface-lecteur ET237 ; cette platine contient le connecteur ISO7816 où s’insèrent les cartes et son brochage est le suivant : 1 et 2 permettent de détecter la présence de la carte (ce sont des électrodes normalement fermées s’ouvrant quand la carte est insérée), 3 est réservé à l’alimentation de la carte en 5 V stabilisé (contact 1 de la carte), 4 est la masse (électrode 5 de la carte) et 5 est relié au contact de “reset” (2 de la carte) ; 6 ne sert pas et 7 correspond à la ligne d’horloge (électrode 3 de la carte). Enfin, la broche 8 est reliée à la ligne d’E / S (contact 7 de la carte) et 9 et 10 ne servent pas, du moins avec ce type de carte.
Si vous souhaitez renoncer à la platine, vous pourrez relier les contacts du lecteur aux broches correspondantes de l’OUT C du circuit imprimé, selon la disposition indiquée.
La structure du circuit étant expliquée, voyons maintenant les opérations à accomplir.

La gestion des groupes
La première consiste à définir les groupes de cartes habilitées et leurs mots de passe (PSC) ; la procédure correspondante implique de fermer les deux micro-interrupteurs de DS2 et ne réclame pas l’insertion d’une carte.
En revanche, il est nécessaire d’entrer avec DS1 l’identifiant du groupe et le PSC qu’on souhaite lui attribuer ; toutes les cartes d’un groupe auront donc le même PSC. Dans cette procédure, la fonction du dip-switch à dix micro-interrupteurs est de paramétrer les groupes d’usagers (maximum 16) habilités et le code d’accès correspondant, lequel sera mémorisé dans le micro ; plus exactement, les broches 7 à 10 définissent le groupe en nombre binaire, en partant de zéro et en considérant le micro-interrupteur 7 comme bit le moins significatif (LSB), comme le montre le tableau 1 de la figure 3.
Pour donner un exemple, si nous voulons attribuer la carte au groupe 4, il faut fermer les micro-interrupteurs 7 et 8, laisser ouverts les 9 et 10. Les micro-interrupteurs 1 à 6 définissent le PSC de la carte à puce : chacun concerne quatre bits contigus du PSC, lequel est en fait formé de six chiffres hexadécimaux. Comme avec les micro-interrupteurs nous ne pouvons définir que les valeurs binaires, nous prenons comme convention : ouvert vaut 0 hex et 1 signifie F (15 hexadécimal). Notez que le code 111111 (micro-interrupteurs 1÷6 ON) est celui prédéfini pour les cartes et qu’il ne doit jamais être choisi par l’usager, car il est utilisé, en manutention (gestion des groupes), pour supprimer un groupe de la mémoire.
Pour éclaircir cela, supposons que nous voulions habiliter le groupe 1 et définir pour lui le mot de passe 101010 : paramétrons avec DS1 la configuration “101010-0000” (le bit de gauche correspond au micro-interrupteur 1, celui de droite au micro-interrupteur 10 ; n’oubliez pas que par convention 1 correspond à micro-interrupteur ON et 0 à micro-interrupteur OFF). Les micro-interrupteurs de DS2 doivent être ON (tableau 2, figure 4). La procédure se termine par une pression sur le poussoir : le micro sauvegarde dans son EEPROM le PSC associé au groupe ainsi créé.
La réussite de l’opération est signalée par LD2, sinon la LED donne une des signalisations indiquées par le tableau de la figure 9. Si la procédure aboutit, le groupe 1 est habilité à l’accès et les cartes attribuées peuvent activer le relais.
Avec la procédure de gestion des groupes, il est également possible de retirer un groupe de la mémoire du microcontrôleur, ce qui déshabilite les cartes appartenant à ce groupe. Pour ce faire, il faut paramétrer le numéro du groupe à retirer avec les micro-interrupteurs 7÷10 de DS1, mettre sur ON les deux micro-interrupteurs de DS2 et les micro-interrupteurs 1÷6 de DS1.
Par exemple, pour retirer le groupe 1, nous devons paramétrer sur DS1 la configuration “111111-0000” et presser le poussoir ; le code du groupe est alors retiré du micro et en lecture le PIC ignorera la carte. Là encore la LED jaune signale l’exécution par un éclair. Le fait de retirer un groupe rend les cartes qui lui correspondent inutilisables pour commander le relais de sortie.
À tout moment il est possible de recréer un groupe supprimé, en suivant la procédure de la première création ; toutefois, pour y réussir, c’est-à-dire pour être sûr que les cartes qui lui étaient associées avant la suppression fonctionneront à nouveau, il est nécessaire de noter les PSC attribués aux groupes au fur et à mesure qu’on les crée.
Ainsi, pour définir un groupe, il suffit de paramétrer le numéro avec les micro-interrupteurs 7÷10 de DS1 et le PSC d’origine avec les micro-interrupteurs 1÷6 de ce même DS1. Rien n’interdit de redéfinir un groupe en lui attribuant un PSC différent de celui attribué à l’origine ; toutefois les cartes programmées après la première création ne seront pas compatibles avec les nouvelles.
En d’autres termes, si nous recréons le groupe 2 déjà défini une première fois avec le code 101101, puis retiré et si nous attribuons cette fois un PSC 111000 habilitant la serrure (mode lecture), le circuit ne reconnaîtra que les cartes configurées avec 111000.
Si nous insérons dans le lecteur une carte originairement créée (101101), non seulement aucune commande ne sera donnée au relais, mais à la troisième tentative la carte deviendra inutilisable. Il est possible de “convertir” une carte avec une procédure d’initialisation et nouvelle attribution, toutefois cela implique que l’on connaisse le PSC avec lequel elle a été programmée.
Donc, notez le groupe et le PSC attribué durant la configuration (par exemple en siglant chaque carte et en écrivant sur une feuille ou dans un fichier d’ordinateur quel groupe et quel PSC sont associés à chaque sigle), car il n’est pas possible de lire le code d’une carte, même avec un lecteur de SmartCard.

DEFINIR GROUPES AU MOYEN DE DS1
ATTRIBUTIONmint10mint9mint8mint7
GROUPE 1OFFOFFOFFOFF
GROUPE 2OFFOFFOFFON
GROUPE 3OFFOFFONOFF
GROUPE 4OFFOFFONON
GROUPE 5OFFONOFFOFF
GROUPE 6OFFONOFFON
GROUPE 7OFFONONOFF
GROUPE 8OFFONONON
GROUPE 9ONOFFOFFOFF
GROUPE 10ONOFFOFFON
GROUPE 11ONOFFONOFF
GROUPE 12ONOFFONON
GROUPE 13ONONOFFOFF
GROUPE 14ONONOFFON
GROUPE 15ONONONOFF
GROUPE 16ONONONON
Figure 3 : Tableau 1.

Les micro-interrupteurs 7 à 10 définissent le groupe ; en programmation ils sont paramétrés pour attribuer une carte à un groupe, en manutention (gestion groupes) leur combinaison dit au micro à quel groupe attribuer le PSC défini par les micro-interrupteurs 1 à 6 ou les groupes auxquels interdire la commande du relais.

CHOISIR LE MODE D’EXERCICE AVEC DS2
FONCTIONNEMENT12
MODE SERRUREOFFOFF
MODE PROGRAMMATION CARTESREOFFON
INITIALISATION CARTES (retour à l’état vierge)ONOFF
GESTION GROUPESONON
Figure 4 : Tableau 2.

Les attributions au système
Pour pouvoir fonctionner avec notre serrure électronique, les cartes sont initialisées et attribuées à un groupe ; on part de la fermeture du micro-interrupteur 2 de DS2 (programmation cartes). Puis il faut indiquer au circuit à quel groupe attribuer la carte insérée dans le lecteur (voir ce qu’on a dit pour la création des groupes), à condition que le groupe soit actuellement habilité ; s’il a été créé mais retiré, la procédure n’aura aucun effet.
Pas besoin de donner le PSC, car durant la création ou la réhabilitation des groupes le micro associe et mémorise le code de chacun.
Quand les micro-interrupteurs sont paramétrés, on presse le poussoir pour “dire” au PIC de programmer la carte ; la LED jaune doit clignoter une fois pour signaler l’exécution correcte de la commande. La carte peut être retirée du lecteur. Le nouveau PSC est adressé dans l’octet 20H de la mémoire protégée de la carte ; dans la zone non protégée, les quatre premiers bits à zéro indiquent que la carte a été initialisée et les quatre suivant le groupe.
Le logiciel prévoit que les cartes à initialiser aient un PSC égal à FFFFFF ; dans le cas contraire, la procédure échoue et, si on réessaye trois fois, la carte insérée devient inutilisable. Cela parce que, bien que l’appartenance du groupe soit écrite dans la zone non protégée de la mémoire SLE4442, l’écriture suppose la comparaison du PSC.

Figure 5 : La ChipCard SLE4442.

Il s’agit d’une carte ISO7816 contenant une mémoire intelligente de 2 048 bits (2 Kbits) Siemens SLE4442, accessible par introduction et comparaison d’un code de sécurité. La mémoire est une EEPROM, même si une partie sert de PROM, permettant d’enregistrer des données qui ensuite ne pourront plus être modifiées ; elle dispose d’un espace de mémoire de 256 octets dont une grande partie est disponible pour mémoriser des informations à utiliser à volonté et une autre partie constituée de petites aires réservées aux fonctions de protection. La première partie de l’EEPROM, de l’octet d’adresse 0 à celui d’adresse 31, constitue la mémoire permanente qui, si l’on configure le bit de protection adéquat, peut être destinée à la seule lecture, de telle façon que les données écrites une fois pourront seulement être lues mais non modifiées ou effacées (fonction PROM) ; l’adressage initial (octet 0) est habituellement réservé à l’écriture du Manufacturer Code. À partir de l’adresse 32 et suivantes, la mémoire est lisible sans aucun problème ni limitation et pour pouvoir écrire il faut introduire et comparer le Personal Security Code (PSC) contenu dans un aire supplémentaire de l’EEPROM nommée Security Memory : cette dernière se compose de 4 adresses qui contiennent l’état de l’Error Counter (bit 0÷2) et le code d’accès proprement dit, habituellement décomposé et exprimé en autant de groupes de chiffres de type AA AA AA, ou FF FF FF. La séquence d’accès à l’écriture et à l’effacement de l’EEPROM consiste à introduire le PSC et à effectuer la comparaison avec celui résidant dans la carte : si la comparaison est positive, on peut exécuter les opérations d’effacement / écriture, alors que dans le cas contraire l’accès est refusé ; après trois comparaisons du code de sécurité, l’Error Counter est porté à zéro et il n’est plus possible de changer l’état de l’EEPROM qui ne peut donc plus qu’être lue. À chaque opération réclamant la comparaison du PSC il faut donc remettre à 0 l’Error Counter, soit remettre au niveau logique 1 les trois bits qui le représentent, à l’aide d’une commande spéciale.
Notez que, pour toutes les sections du “chip” (puce), effacer un bit signifie le mettre au niveau logique 1, écrire le mettre au niveau logique 0. Remarquez aussi que dans le cas de l’Error Counter les 3 bits qui le composent ne donnent pas 8 possibilités (2 au cube) mais seulement trois, vu que chacun d’eux est mis au niveau logique bas à chaque comparaison du PSC. L’opération de passage 0/1 d’un bit se nomme mise à zéro ou “erase” (efface). La méthode utilisée pour accéder au contenu de la mémoire implique un bus à deux fils plus un pour l’horloge (input, C3) : le premier constitue la ligne des données (E / S, contact C7 de la carte) bidirectionnelle utilisée pour envoyer et recevoir les informations au format série, au niveau TTL ; l’envoi des commandes et des données d’E / S se fait toujours durant le front de descente du signal d’horloge.
Il y a ensuite le “RESET” (input localisé au point C2) qui est géré par le dispositif de communication externe avec lequel la puce s’interface.

Le formatage des cartes
Le PIC peut rétablir à FFFFFF le PSC d’une carte qu’il a déjà programmée ; pour cela, il faut paramétrer avec DS1 le numéro du groupe auquel la carte insérée appartient, mettre respectivement sur ON et OFF les micro-interrupteurs 1 et 2 de DS2, puis presser le poussoir. La LED jaune émet un éclair pour signaler l’exécution de la commande.
Après cette confirmation, la carte peut être extraite du lecteur. Cette procédure n’aboutit qu’avec des cartes déjà initialisées par le circuit ; cela car le remplacement du code nécessite sa comparaison avec celui existant. Lors de la réinitialisation à l’état vierge, le PIC demande le groupe car il a en EEPROM la correspondance entre le numéro du groupe et le PSC.
Avec des cartes étrangères (au système) il ne saurait que faire. Si le groupe d’une carte que l’on tente de réinitialiser a été retiré ou retiré et recréé, quand on l’associe à un PSC différent, la procédure échoue (voir figure 9 le tableau des signalisations de LD2) ; afin d’éviter de rendre la carte inutilisable, il convient, respectivement, de recréer le groupe avec le même PSC, c’est-à-dire le retirer et le recréer avec le PSC d’origine.

PARAMÉTRER LA SORTIE DE LA SERRURE
ACTIVATION DU RELAISJ1J2J3
FONCTIONNEMENT BISTABLEOUVERTOUVERTOUVERT
FERMETURE PENDANT 0,5 secondeOUVERTOUVERTFERME
FERMETURE PENDANT 1 secondeOUVERTFERMEOUVERT
FERMETURE PENDANT 2,5 secondesOUVERTFERMEFERME
FERMETURE PENDANT 5 secondesFERMEOUVERTOUVERT
FERMETURE PENDANT 10 secondesFERMEOUVERTFERME
FERMETURE PENDANT 15 secondesFERMEFERMEOUVERT
FERMETURE jusqu’à extraction de la carteFERMEFERMEFERME
Figure 6 : Tableau 3.

L’utilisation normale
Pour utiliser la serrure électronique, il suffit d’ouvrir les deux micro-interrupteurs de DS2 (ici DS1 ne sert pas) ; quand on insère dans le lecteur une carte programmée pour un groupe habilité, le relais doit se déclencher pendant une durée et suivant le mode d’activation paramétré à l’aide des trois cavaliers.
À ce propos, remarquez que le mode bistable détermine l’ouverture de la serrure à partir du moment où la carte est extraite, jusqu’à l’insertion suivante et l’extraction d’une autre carte habilitée (le relais change d’état chaque fois qu’on introduit une carte valide dans le lecteur). Dans tous les modes LD2 s’allume à la fermeture du relais. Chaque fois qu’une carte valide est lue, le micro remet le compteur d’erreur à zéro : si on insère la carte d’un groupe non habilité, le PIC, qui reconnaît les correspondants binaires des seize groupes, “sait” que la carte est du système (retirer un groupe n’interrompt que la correspondance avec le PSC) mais n’essaye pas de comparer le code afin de ne pas endommager la carte.

Figure 7a : Schéma d’implantation des composants du programmateur de ChipCard / serrure électrique.

Figure 7b : Dessin, à l’échelle 1, du circuit imprimé du programmateur de ChipCard / serrure électrique.

Figure 8 : Photos d’un des prototypes de l’enregistreur de données de températures sur SD-card.

NOMBRE DE CLIGNOTEMENTSSIGNIFICATION DES CLIGNOTEMENTS DE LD2
1Opération exécutée correctement
2ATR (réponse initiale de la carte) non valide. Vérifier que la carte est bien une ChipCard et qu’elle a été insérée correctement
3En mode “serrure” une carte non initialisée a été insérée.
Initialiser la carte et réessayer
4En mode “serrure” une carte d’un groupe non habilité a été insérée (le code n’est pas actuellement dans l’EEPROM du micro).
Insérer le groupe en EEPROM et réessayer
5En mode “serrure” le “check” du PSC de la ChipCard a échoué (compteur des tentatives décompté). Si le PSC corrélé dans le micro avec le groupe auquel la carte appartient a été changé, il faut le reporter à la valeur initiale avant de procéder
6En mode “programmation cartes”, on n’a pas inséré une carte vierge mais une déjà initialisée
7En mode “programmation cartes”, on a tenté d’initialiser la carte d’un groupe non présent en EEPROM. Il faut d’abord insérer le groupe en mémoire
8En mode “programmation cartes”, on a tenté d’analyser une carte avec le PSC déjà paramétré et différent de FFFFFF (compteur des tentatives décompté)
9En mode “réinitialisation cartes”, on a tenté de réinitialiser une carte déjà vierge
10En mode “réinitialisation cartes”, on a tenté de réinitialiser une carte dont le groupe a été retiré de la mémoire. Il faut d’abord insérer à nouveau le groupe dans la mémoire, avec le PSC ayant servi à initialiser la carte
11En mode “réinitialisation cartes”, le PSC auquel on s’attend de la carte est différent de celui mémorisé en EEPROM (compteur des tentatives décompté). Si le PSC en EEPROM relatif au groupe auquel la carte appartient a été changé, avant de continuer il faut entrer dans la gestion des groupes, retirer le groupe et le recréer avec le PSC de la carte.
Figure 9 : Les codes d’erreur.

Figure 10 : Montage du lecteur de ChipCard sur sa platine ET237 (voir photo de début d’article).

Liste des composants
R1 ...... 2,2 k
R2 ...... 10 k
R3 ...... 10 k
R4 ...... 2,2 k
R5 ...... 4,7 k
R6 ...... 10 k
R7 ...... réseau de résistances SIL 9 x 10 k
R8 ...... 22 k
C1 ...... 100 nF multicouche
C2 ...... 470 μF 25 V électrolytique
C3 ...... 100 nF multicouche
C4 ...... 470 μF 16 V électrolytique
C5 ...... 10 pF céramique
C6 ...... 10 pF céramique
D1 ...... 1N4007
D2 ...... 1N4007
LD1 ..... LED verte 5 mm
LD2 ..... LED jaune 5 mm
T1 ...... BC547
Q1 ...... quartz 20 MHz
U1 ...... PIC16F876-EF578
U2 ...... 7805
RL1 ..... relais 12 V
DS1 ..... dip-switch à 10 micro-interrupteurs 2 positions
DS2 ..... dip-switch à 2 micro-interrupteurs 2 positions
P1 ...... micro-poussoir

Divers :
1 bornier 2 pôles
1 bornier 3 pôles
3 cavaliers
1 connecteur mâle 10 broches
1 boulon 3MA 10 mm
2 boulons 3MA 16 mm
2 entretoises M/F 18 mm
1 interface-lecteur pour ChipCard ET237
1 nappe à dix fils et deux connecteurs femelles

La réalisation pratique
La réalisation pratique de cette serrure électronique / programmateur de cartes à puces ne présente pas de difficulté (la complexité est logicielle, on vient de le voir !).
La platine est constituée d’un circuit imprimé simple face, dont la figure 7b donne le dessin à l’échelle 1. Insérez et soudez tous les composants (comme le montrent les figures 7a et 8), en commençant par le support du PIC, DS1 et DS2 et les trois cavaliers et en terminant par les “périphériques” : le connecteur mâle recevant la nappe (OUTC), le micropoussoir et les deux borniers à deux et trois pôles. Le régulateur U2 est monté couché sans dissipateur, fixé par un petit boulon ; le quartz Q1 est monté debout. Attention à l’orientation des composants polarisés : PIC repère-détrompeur en U vers R5 (ne l’insérez qu’à la fin du montage), diodes, transistor, LED, régulateur et électrolytiques. Une fois tout vérifié plusieurs fois (ni court-circuit entre pistes ou pastilles ni soudure froide collée), installez le PIC dans son support.
Reliez enfin cette platine au lecteur ET237 à l’aide d’une nappe adéquate : cette nappe à dix fils est munie de connecteurs femelles s’insérant dans les connecteurs mâles des deux platines ET578 et ET237, comme le montre la photo de première page.
En fonction de votre application particulière vous pouvez insérer l’ensemble dans un boîtier plastique adapté ou le dissimuler dans une paroi du local à contrôler. Quoi qu’il en soit, alimentez le système à partir d’une source électrique fournissant une tension continue de 12÷15 V pour un courant de 150 mA (autonome, à batterie rechargeable par un panneau solaire, par exemple, ou secteur).
Commentaires



Font Size
+
16
-
lines height
+
2
-