Un transpondeur polyvalent pour port sériel

Ce lecteur de transpondeurs est caractérisé par son universalité d’emploi : il est en mesure de fonctionner comme système indépendant (“Stand Alone”) ou relié à un ordinateur avec lequel il instaure une communication (“PC link”). Il est doté de deux relais pour gérer les dispositifs externes et d’un port sériel pour la liaison à l’ordinateur.


A nouveau, dans cet article, nous traitons des transpondeurs : ces dispositifs permettent l’identification d’un usager à partir d’un objet bien reconnaissable le caractérisant de manière univoque (comme dans l’Antiquité les tessères d’hospitalité) et pouvant être lu et reconnu par un appareil. Autrefois nous avons déjà présenté quelques montages de ce type : "Une pointeuse pour PC avec liaison radio ou filaire", utilise des badges à transpondeurs. Ceux-ci ne sont qu’un type d’objets utilisés pour l’identification automatique mais, nous semble-t-il, ils résolvent mieux les problèmes que les autres : en effet, par rapport à la carte à puce ou magnétique, ils permettent d’éliminer tout contact physique avec le lecteur et donc tout phénomène d’usure ou de démagnétisation.

Notre réalisation
Le montage que vous propose cet article est un lecteur très polyvalent : vous pouvez l’utiliser dans de nombreuses applications.
Non seulement il reconnaît les codes inscrits dans les badges, mais il peut encore gérer l’ouverture de deux portes, de deux serrures ou commander la mise sous tension de deux systèmes électroniques par des relais pilotés via logiciel. Le système est aussi doté d’un port sériel RS232 grâce auquel il est possible de le relier à un ordinateur et par conséquent gérer les accès, mémoriser les horaires et éventuellement commander d’autres périphériques, par PC.
Le transpondeur peut fonctionner selon deux modes : “Stand Alone” (en solitaire), le lecteur est en mesure de commander les deux relais d’activation sans être relié à aucun autre dispositif ou “PC link” (le lecteur de transpondeurs est relié à un port sériel d’ordinateur), le dispositif fonctionne alors comme un lecteur des codes inscrits dans les badges, ces codes sont envoyés à l’ordinateur dans lequel tourne un logiciel pouvant les mémoriser ou du moins en gérer l’arrivée. La sélection d’un mode se fait par le dipswitch DIP1. En plus, pour chacun des deux modes, il est possible de choisir, grâce à DIP2, deux autres sous-modes : en solitaires on a le choix entre Normal (les badges sont reconnus et comparés avec ceux déjà mémorisés) et Autoapprentissage (où en revanche ils sont mémorisés pour la première fois, la capacité étant de 20 codes différents), en liaison avec le PC on a le choix entre Direct (le transpondeur fonctionne simplement comme lecteur de badges et envoie les codes à l’ordinateur) et “On Demand”, ou Requête (l’ordinateur peut envoyer des commandes au dispositif).
Le mode solitaire permet typiquement de réaliser un contrôle de deux serrures électroniques, par exemple : en effet, en sous-mode Normal, si l’on passe un badge à proximité du lecteur (le dispositif est en mesure de détecter et lire les codes à une distance maximale de 7 cm) et s’il est reconnu comme un de ceux mémorisés, un premier relais activé peut, par exemple, commander l’ouverture d’une serrure électrique et donc permettre l’entrée des usagers. Si en revanche le code n’est pas reconnu, le dispositif excite un second relais pouvant, par exemple, déclencher une sirène d’alarme indiquant l’anomalie.
Bien sûr, rien n’empêche de relier les deux relais à d’autres dispositifs afin d’obtenir le fonctionnement du système le mieux adapté à votre cahier des charges. Pour mémoriser un nouveau badge, soit pour habiliter un nouvel usager, c’est le sous-mode Autoapprentissage que l’on utilise : en paramétrant DIP1 = ON et DIP2 = OFF et en approchant le badge du lecteur, le badge est lu et son code est mémorisé.
Le mode lien avec l’ordinateur, en revanche, a été conçu pour des applications plus complexes mettant à profit les possibilités d’un ordinateur. Par exemple, en sous-mode Direct avec un programme adapté, on peut utiliser le dispositif comme une pointeuse mémorisant l’heure d’entrée et de sortie du personnel d’une société. Ou bien, à l’intérieur d’un atelier de mécanique il est possible de munir chaque instrument de travail de son badge et ainsi de mémoriser ses mouvements.
De plus, si on n’a pas la possibilité de laisser l’ordinateur toujours allumé, il est possible de faire travailler le dispositif en sous-mode Requête : avec cette technique, le transpondeur est en mesure de mémoriser un nombre maximum de 20 accès, bien que le PC soit éteint et de les charger ensuite par le port sériel quand l’ordinateur est allumé.
Avant d’analyser le schéma électrique de notre système, rappelons brièvement comment fonctionnent les transpondeurs. Ils mettent à profit le principe d’induction d’une force électromotrice par une première série de spires (une self) parcourues par un courant (dans le lecteur) sur une seconde série de spires (seconde self) placée cette fois dans le badge à reconnaître. Dans la première self, on fait passer un courant alternatif à 125 kHz, ce courant alternatif produit un champ électromagnétique dans l’espace environnant. Quand la seconde self vient à se trouver immergée dans ce champ, il se produit à ses extrémités une tension induite utilisée pour alimenter le circuit présent dans le badge, dans lequel il y a une mémoire ROM contenant le code univoque du badge. Le contenu de la ROM est lu de façon sérielle et, selon la valeur du bit lu, est envoyé ou non dans la self du badge un courant supplémentaire.
Cette variation de courant modifie le champ électromagnétique, ce que détecte la self du lecteur comme variation de charge du générateur 125 kHz. L’information est ainsi transmise par le badge au lecteur : évidemment elle doit être filtrée et élaborée avant de pouvoir être envoyée à la logique interne du dispositif.



Le schéma électrique du transpondeur
Nous pouvons maintenant analyser le circuit en nous penchant sur le schéma électrique de la figure 1. En dehors des dispositifs externes (deux relais RL1 et RL2, un buzzer BZ1 et la LED LD1 tricolore), il est constitué principalement de 5 blocs fonctionnels : un étage d’alimentation, formé de U1 et U2, un générateur de champ électromagnétique avec détecteur de réponse des badges, composé de U6 (un U2270), une interface sérielle transformant les niveaux de tension typiques des dispositifs TTL (0 et +5 V) en niveaux du port sériel, constituée par U5 (un MAX232), un bloc formé de deux FLIP-FLOP U3a et U3b (dont l’utilité sera expliquée ultérieurement) et enfin un étage composé de U4 (microcontrôleur PIC16F876) gérant tout le fonctionnement du circuit. Le microcontrôleur vérifie par conséquent la validité des codes lus, active les relais, allume la LED, pilote le buzzer et commande la communication avec le PC.
Le circuit est alimenté sous 14 à 15 V, le premier régulateur U1 produisant le 12 V nécessaire aux relais, au buzzer et à une partie du circuit, le second U2 fournissant le 5 V aux dispositifs logiques TTL. Le système consomme environ 50 mA quand les relais sont au repos et la LED éteinte et environ 120 mA relais excités et LED allumée.
Analysons maintenant U6, un U2270 : cette puce est capable d’émettre, à travers L1, le champ électromagnétique à 125 kHz, elle peut en outre détecter la présence de badges dans le voisinage et d’en recevoir les codes.
Dans le cas où aucun badge n’est présent, se trouve aux bornes de C18 une tension continue provenant du redresseur D6. Grâce au filtrage de C16, ce signal n’arrive pas à la broche 4 de U6. Si, en revanche, on approche un badge, il envoie son code, ce qui provoque une variation d’amplitude de la tension aux extrémités de D6. En particulier, si le bit transmis est 1, on a une variation d’amplitude pendant toute la durée de l’émission du bit, si le bit transmis est 0, on n’a aucune variation. En fait, ajoutée à la tension continue, il y a une onde rectangulaire (constituant le code du badge) BF. C16 bloque la composante continue mais laisse passer l’onde rectangulaire, le code est ensuite acheminé sur la broche 4 de U6. A l’intérieur du U2270 le signal est amplifié et mis en quadrature, les fronts de montée et de descente sont redressés de manière à pouvoir relier directement la broche de sortie 2 au microcontrôleur.
Le microcontrôleur contrôle la validité du code reçu et prend les mesures qui s’imposent selon le mode choisi. Il peut donc activer ou désactiver les relais (grâce aux broches RC4 et RC5), déclencher le buzzer (RC3), allumer ou éteindre la LED à 3 couleurs (broches RA3 et RA5) et, selon le niveau logique de ces lignes, il peut lui donner la couleur rouge, verte, orange ou la laisser éteinte.
Il peut enfin envoyer les données du badge lu au PC par le bloc U5.
Voyons maintenant pourquoi sont utilisés deux FLIP-FLOP U3a et U3b.
On l’a dit, la lecture des codes est basée sur la présence du champ électromagnétique à 125 kHz. Ce champ est produit par la puce U2270 grâce à un oscillateur commandé en tension (VCO). Dans les montages précédents, la détermination de la fréquence était toujours effectuée par le réglage d’un trimmer, augmentant ou diminuant la tension appliquée à la broche HF 15 du circuit intégré.
Ce réglage était exécuté manuellement et était généralement peu précis, à moins de disposer d’un oscilloscope.
Dans ce circuit-ci, nous avons en revanche utilisé un contrôle automatique de la fréquence (CAF). Les deux FLIP-FLOP, en effet, ont la charge de reporter la fréquence des oscillations de la self (mise en quadrature et divisée par 4 afin de permettre au PIC de réaliser un contrôle plus précis) à l’entrée du microcontrôleur.
Celui-ci la compare à une fréquence interne et, par le bit 2 du port C (broche RC2), il commande le niveau de la tension appliquée au VCO de la puce U6. Plus précisément, le microcontrôleur produit un signal rectangulaire PWM avec rapport cyclique inversement proportionnel à la fréquence lue : ce signal est transformé en une tension continue par D5 et C11. Cette tension est ensuite ajoutée à celle déjà présente et elle commande donc la variation de la fréquence. Ce type de réglage logiciel est exécuté chaque fois que la mise sous tension a lieu : on peut ainsi garantir une fréquence d’oscillation entre 124,80 et 125,20 kHz, tolérance acceptable pour notre application.

Figure 1 : Schéma électrique du lecteur de transpondeurs.

Liste des composants
R1 = 4,7 kΩ
R2 = 4,7 Ω
R3 = 4,7 kΩ
R4 = 470 Ω
R5 = 470 Ω
R6 = 4,7 kΩ
R7 = 330 Ω
R8 = 68 kΩ
R9 = 4,7 kΩ
R10 = 47 kΩ
R11 = 39 kΩ
R12 = 10 kΩ
R13 = 470 kΩ
R14 = 330 Ω
R15 = 10 kΩ
R16 = 4,7 kΩ
C1 = 470 μF 25 V électrolytique
C2 = 100 nF multicouche
C3 = 220 μF 16 V électrolytique
C4 = 100 nF multicouche
C5 = 220 μF 16 V électrolytique
C6 = 100 nF multicouche
C7 = 220 nF 63 V polyester
C8 = 220 μF 16 V électrolytique
C9 = 100 nF multicouche
C10 = 100 nF multicouche
C11 = 2,2 μF 50 V électrolytique
C12 = 10 pF céramique
C13 = 10 pF céramique
C14 = 47 μF 25 V électrolytique
C15 = 2,2 nF multicouche
C16 = 680 pF céramique
C17 = 100 nF multicouche
C18 = 1500 pF céramique
C19 = 1 μF 100 V électrolytique
C20 = 1 μF 100 V électrolytique
C21 = 1 μF 100 V électrolytique
C22 = 1 μF 100 V électrolytique
RL1 = Relais miniature 12 V
RL2 = Relais miniature 12 V
D1 = 1N4007
D2 = 1N4007
D3 = 1N4007
D4 = 1N4148
D5 = 1N4148
D6 = 1N4148
LD1 = LED 5 mm bicolore
Q1 = Quartz 16 MHz
U1 = 7812
U2 = 7805
U3 = 4013
U4 = PIC16F876-EF483 programmé
U5 = MAX232
U6 = U2270
T1 = MPSA13
T2 = BC547
T3 = BC547
T4 = BC547
DS1 = Dip-switch à 2 micro interrupteurs
BZ1 = Buzzer avec électronique
L1 = Self pour transpondeur X9

Divers :
1 Prise d’alimentation
1 Connecteur DB9 femelle
1 Support 2 x 14
1 Support 2 x 8
1 Support 2 x 7
2 Borniers 3 pôles
2 Boulons 3MA 8mm
4 Vis auto taraudeuses 5 mm

Les résistances sont des 1/4 de watt à 5 %.


Figure 2a : Schéma d’implantation des composants du lecteur de transpondeurs.

Figure 2b-1 : Photo d’un des prototypes du lecteur de transpondeurs.

Figure 2b-2 : Photo d’un des prototypes (détail : avant de souder les deux fils de la self, il faut gratter l’émail des extrémités et les étamer).

Figure 2c : Dessin, à l’échelle 1, du circuit imprimé du lecteur de transpondeur.

Figure 3 : Brochage et fonctions des broches du circuit intégré U2270. (Voir tableau suivant)



La réalisation pratique du transpondeur
Arrivés à ce point, il ne nous reste plus qu’à envisager de construire le système et de le faire fonctionner. Tout d’abord, il faut réaliser ou vous procurer le circuit imprimé. Vous trouverez le dessin à l’échelle 1 figure 2c et vous pourrez le réaliser par la méthode préconisée et décrite dans l'article : "Comment fabriquer vos circuits imprimés facilement ?" (pour vous procurer la “pellicule bleue”, voir les publicités des annonceurs). Une fois en possession, d’une manière ou d’une autre, du circuit imprimé gravé et percé, servez-vous de la figure 2 a et b avec la liste des composants et vous avez peu de chance de vous tromper.
Insérez et soudez les 3 supports de circuits intégrés et le dip-switch à deux micro-interrupteurs (dans le bon sens, chiffres en bas). Vérifiez la qualité de vos soudures (ni court-circuit entre pistes ni soudure froide collée).
Montez de même, en bas, le connecteur DB9 femelle et, à côté, la prise d’alimentation.
Montez toutes les résistances puis les 6 diodes (avec les bagues orientées dans le bon sens indiqué par le schéma d’implantation des composants figure 2a). Montez ensuite tous les condensateurs (pour les électrolytiques, prenez garde de ne pas inverser la polarité, la patte la plus longue étant le +).
Montez le quartz Q1 debout et bien enfoncé. Montez les régulateurs couchés, pattes repliées à 90° et immobilisés par un petit boulon 3MA (n’intervertissez pas U1 7812 et U2 7805 et n’oubliez pas de souder leurs pattes).
Montez les 4 transistors en boîtier plastique demie lune sans raccourcir leurs pattes, méplats tournés dans le bon sens montré par la figure 2a. Montez le buzzer et la LED LD1 (en respectant sa polarité, là encore la patte la plus longue, l’anode, va au +). La LED est à monter verticalement et de façon qu’elle puisse affleurer sous la surface du boîtier plastique.
Montez les deux relais miniatures 12 V et les deux borniers à 3 pôles. Montez enfin la self de lecture des transpondeurs : pas de polarité mais, pour isoler les divers enroulements des spires, elle utilise du fil protégé sous émail et aux extrémités cet émail isolant doit être gratté sur un cm environ, puis le fil doit être étamé (figure 2b-2).
Retournez alors la platine côté cuivre et, avec beaucoup de délicatesse et sans vous tromper de sens (repère-détrompeur en U vers le haut ou C11), soudez U6 U2270 directement sans support. Positionnez-le bien au centre des pastilles qui lui sont destinées et faites un premier point de soudure pour l’immobiliser : procédez ensuite à de bonnes soudures sans oubli, sans surchauffe ni court-circuit entre pistes ou pastilles ni soudure froide collée (à vérifier plusieurs fois attentivement).
Retournez à nouveau la platine et enfoncez doucement, sans crainte de dommage thermique ou électrostatique, les circuits intégrés dans leurs supports (prenez garde de ne pas les intervertir et de les orienter, grâce à leurs repère-détrompeurs en U, dans le bon sens indiqué par la figure 2a).
Vérifiez une ultime fois que vous n’avez rien oublié, que rien n’est interverti et qu’aucun composant polarisé n’est inversé.

Le montage dans le boîtier plastique
Quand la platine est terminée, installez-la dans le boîtier plastique qui lui est destiné. Fixez-la au fond à l’aide de 4 vis autotaraudeuses en laissant sortir par les orifices rectangulaire et rond (photo d’entrée d’article) les connecteurs DB9 sériel et d’alimentation.
Fermez le couvercle en laissant affleurer la LED tricolore à travers un trou de 5,5 mm de diamètre préalablement percé. Le couvercle se solidarise du fond par 4 autres vis à insérer dans la partie inférieure. Le montage est alors terminé. Vous pouvez l’alimenter et procéder aux essais et à la mis au point.

La mise au point
L’appareil a été conçu pour la rendre la plus simple possible : en effet, en plus des fonctions normales de signalisation par buzzer et LED tricolore, il est prévu que pour tous les modes le lecteur envoie toujours via le port sériel des informations sur ce qui se passe. Ces informations peuvent être visualisées à partir de tout ordinateur tournant sous Windows 98 ou supérieur, utilisant simplement le programme HyperTerminal. Paramétrez dans le programme le port sériel utilisé (COM1 ou COM2), la vitesse de 19 200 bits/sec et un protocole prévoyant 8 bits de données, aucune parité, 1 bit de Stop (technique 8-N-1) et aucun contrôle de flux : ainsi il est possible de lire et de visualiser à l’écran les données arrivant au PC. A la mise sous tension est visualisé le flux “SYSTEM STARTUP” pour indiquer l’initialisation du dispositif. Il est possible que d’autres flux concernant la synchronisation de la fréquence de la self soient aussi visualisés.
A ce moment, par exemple, sélectionnons le mode solitaire Normal et approchons un badge à transpondeur : si le dispositif fonctionne correctement, son code est visualisé ainsi que l’indication Valide ou Non valide. Nous pouvons encore vérifier que le relais RL1 ou RL2 est activé et que la LED s’allume en vert ou en rouge (code Valide ou Non).
Avec DIP2 sur OFF, nous pouvons tester la mémorisation des nouveaux codes : rapprochons un badge de la self et contrôlons que le dispositif réponde bien que l’insertion a eu lieu. Il est conseillé d’essayer aussi de rapprocher un badge déjà mémorisé et de vérifier s’il n’est pas à nouveau mémorisé.
Vérifiez en outre que le PIC reconnaît l’état de mémoire pleine. Essayer également de couper et de rebrancher l’alimentation de façon à exécuter l’effacement complet de le mémoire.
Avec les DIP sur OFF, on sélectionne le mode lien PC Direct : on teste alors la reconnaissance des différents badges par le dispositif et le fait qu’il envoie bien les codes au PC, sans faire de distinction entre code mémorisé ou code non mémorisé. Enfin, on peut tester le mode lien PC Requête : on vérifie ici que le dispositif envoie à l’ordinateur le flux de requête “INSERE COMMANDE”.
Essayez de mémoriser de nouveaux badges et d’envoyer des commandes spécifiques au dispositif. On se souvient que, pour l’envoi des commandes par l’HyperTerminal, il suffit de presser les touches correspondantes du clavier.
Pour l’insertion des 3 premiers caractères de la commande, on dispose d’un temps de 500 ms environ, pour les caractères restants environ 2 secondes. Nous rappelons à ce propos que les commandes doivent être envoyées en majuscules (bloquez-les par la touche de gauche du clavier Cadenas A). On teste toutes les commandes disponibles et, si toutes sont exécutées correctement, on peut considérer que les essais sont terminés.
Dernier détail : le lecteur est en mesure de lire un seul badge à la fois. Si deux badges se superposent dans le champ du lecteur, ils transmettent leurs deux codes en même temps. Ces émissions aussi se superposent et la logique du lecteur les considère erronés. Cette situation est signalisée en sortie par le clignotement de la LED. En outre, le dispositif, afin d’éviter de lire plusieurs fois le même badge, déshabilite le lecteur pendant un certain temps après avoir reconnu comme correct un code.
Tant que la LED demeure allumée, le dispositif n’est pas prêt pour une nouvelle lecture, quand, en revanche, la LED clignote à nouveau, le lecteur est prêt. Si on laisse un badge toujours appuyé sur le lecteur, le badge continue à transmettre son code, lequel est lu continûment par le dispositif.
Nous conseillons enfin, avant d’utiliser le système, d’exécuter l’effacement complet de la mémoire du microcontrôleur : il est possible en effet qu’après la programmation du PIC, des données non significatives y soient restées mémorisées, or elles pourraient être indûment considérées comme valides.
L’opération d’effacement résout ce problème.

Figure 4 : Format du code et protocole série.

Chaque badge à transpondeur est caractérisé par un code univoque inscrit dans sa mémoire. La ROM a une capacité de 64 bits dont les 9 premiers sont tous au niveau logique 1 et sont utilisés pour le synchronisme entre transpondeur et lecteur. Les 55 bits restants sont organisés de la manière suivante : 40 bits contiennent le code informatif proprement dit, les 15 restants sont utilisés pour le contrôle des erreurs d’émission selon une technique de parité aussi bien sur les lignes qu’en colonnes. Les bits informatifs en effet sont subdivisés en 10 lignes et 4 colonnes à partir desquelles on calcule la parité. Le bit de Stop ferme la séquence : c’est toujours un 0 logique. Tous les bits sont émis par le badge vers le lecteur en mode séquentiel. Le U2270 les reçoit et les envoie au microcontrôleur lequel se charge de se synchroniser sur la réception et de vérifier la validité des données.
Si les données ne sont pas valides, il les écarte et attend l’émission suivante. Pour l’envoi des codes du dispositif vers le PC, on utilise en revanche un système différent. Les 40 bits de données sont regroupés en 10 octets utilisant la séquence technique : chaque ligne de 4 bits du code est placé dans la partie la moins significative de l’octet, la partie la plus significative est en revanche à 0. Ainsi on obtient 10 octets lesquels, en décimal, peuvent prendre des valeurs comprises entre 0 et 15. Ces 10 octets sont ensuite envoyés au PC par l’interface constituée par la puce U5.

Figure 5 : Mode “PC Link-On Demand” (liste des commandes).

En mode “PC Link-On Demand”, il est possible d’envoyer du PC au lecteur de transpondeurs des commandes pour demander la réalisation de certaines fonctions. Le lecteur de transpondeurs envoie continûment au PC le flux “INSERE COMMANDE” et attend 500 msec qu’il s’exécute.
Chaque commande commence par les deux symboles “* /” suivis d’une majuscule qui l’identifie et par d’éventuelles options typiques. Pour envoyer les deux premiers caractères (* e /) et la lettre identifiant la commande, il faut 500 ms, pour envoyer les options restantes, il faut 2 autres secondes.


Figure 6 : Modes de fonctionnement.

Le lecteur de transpondeur a été conçu pour travailler selon deux modes : “Stand Alone” ou “PC Link”. Le premier peut s’utiliser pour commander une porte, une serrure, un portillon, un tourniquet, etc. Avec le second en revanche, le lecteur est relié, par le port sériel RS232, à un PC. La mémorisation des accès et la gestion des autres périphériques sont par conséquent effectuées par le logiciel installé dans l’ordinateur. La sélection des modes se fait par le DIP1 : DIP1 = ON, le mode “Stand Alone” est sélectionné, DIP1 = OFF, le mode “PC Link” est sélectionné.
En outre, pour les deux modes, il est possible de sélectionner (par DIP2) deux autres sous-modes. Pour “Stand Alone” (DIP1 = ON) si DIP2 = ON, on sélectionne le sous-mode Normal pour lequel le lecteur de transpondeurs lit les badges voisins et, si le code du badge est présent en mémoire, la LED verte s’allume et RL1 est activé pendant une seconde. Si en revanche le code du badge n’est pas mémorisé, la LED rouge s’allume et le RL2 s’active pendant le même temps (les durées d’activation des relais et des LED peuvent être paramétrées par voie logicielle).
Si en revanche on sélectionne DIP1 = ON et DIP2 = OFF, le lecteur de transpondeurs travaille en mode Auto-apprentissage : ce mode s’utilise pour insérer dans la PIC les codes des badges devant être habilités. Si on approche un badge du lecteur, son code est mémorisé dans le PIC et considéré comme habilité (à titre de signalisation pour l’usager le buzzer émet un son de confirmation et la LED orange s’allume pendant 1 seconde). Evidemment, si le code d’un badge est déjà inséré, il n’est pas mémorisé à nouveau (situation signalisée par 5 éclairs rouges de la LED). Le PIC a une capacité maximale de 20 badges : si la mémoire est déjà pleine, il n’est plus possible d’ajouter un nouveau code (situation indiquée par 10 éclairs orange de la LED). Enfin, il est possible d’effacer complètement la mémoire du PIC. Cela arrive si à la mise sous tension le PIC trouve DIP1 = ON et DIP2 = OFF : cette condition est indiquée par 20 éclairs rapides rouges de la LED.
Quant au mode “PC Link” (DIP1 = OFF), il comporte le sous-mode Direct (DIP2 = OFF) pour lequel le lecteur de transpondeurs fonctionne seulement comme lecteur de badges. Tout code détecté par le lecteur est envoyé au port sériel du PC et le programme installé gère les événements. Si en revanche DIP1 = OFF et DIP2 = ON, on est en mode “On Demand” : il est alors possible de mémoriser jusqu’à 20 accès (avec la même procédure qu’en Auto-apprentissage).
En outre le lecteur de transpondeurs envoie continûment au PC le flux “INSERE COMMANDE” et attend 500 msec l’exécution. Les commandes sont utilisées pour réaliser par logiciel certaines procédures du lecteur de transpondeurs, comme l’activation des relais, l’effacement total de la mémoire, la lecture d’une seule cellule de mémoire, etc. (pour une liste plus complète des commandes, voir figure 5).

Figure 7 : Développement d’un logiciel de gestion.

On l’a vu, le lecteur de transpondeurs est en mesure de fonctionner en mode “PC Link” Direct où il agit comme lecteur de codes de badges ou bien en mode “PC Link On Demand” où il mémorise jusqu’à 20 accès divers et attend que l’ordinateur lui demande de les décharger. Pour chacune des deux options, il est donc nécessaire d’écrire un programme permettant au PC de dialoguer avec le lecteur et de mémoriser éventuellement les codes et l’heure de l’événement.
Nous vous expliquons donc le protocole adopté par le système pour communiquer avec le monde extérieur et vous donner toutes les informations pour gérer la communication entre un logiciel et le lecteur de transpondeurs.
L’envoi et la réception des données se fait par le port sériel à une vitesse de 19 200 bits/sec avec code 8-N-1 : nous avons déjà vu comment chaque code de 40 bits est envoyé en utilisant 10 octets dont les 4 les plus significatifs sont tous à 0. En outre, pour recevoir les commandes et pour envoyer les réponses, le système utilise toujours des caractères au format ASCII et, à la fin de la réponse, il ajoute des caractères spéciaux “AU DEBUT” et “ENVOI” (valeur numérique décimale 13 et 10) pour indiquer la fin des flux. A la mise sous tension, le système envoie le flux “SYSTEM STARTUP” pour indiquer qu’il est en cours d’initialisation.
En mode Direct, quand un badge est lu, le lecteur de transpondeurs envoie le flux “CODE LU ->x<-” où à la place du x se trouvent les octets du code. Si vous voulez le code seulement, vous devez ne considérer que les 15 premiers chiffres et les deux derniers octets du flux. En outre, les caractères “->” et “<-” ont été insérés justement pour faciliter la tâche de reconnaissance du code à l’intérieur de la réponse. Cette technique a été utilisée aussi dans les autres cas où il est nécessaire de distinguer la position du code au sein d’un flux.
En mode “On Demand”, en revanche, le dispositif continue à envoyer le flux “INSERE COMMANDE” pour indiquer qu’il est prêt. Nous avons déjà vu en quel format les commandes doivent être envoyées : le tableau suivant montre comment le dispositif leur répond.

0 commentaires:

Enregistrer un commentaire

Related Posts Plugin for WordPress, Blogger...