星期三, 九月 17, 2014

Un lecteur de badges magnétiques à usage général

Cet appareil est capable de lire et de reconnaître les données mémorisées dans la seconde piste des cartes magnétiques et il peut fonctionner de manière autonome (pour réaliser un système de contrôle d’accès) ou relié à un PC se chargeant de la gestion des événements. Il est doté de deux relais afin de gérer des dispositifs externes et d’un port RS232 pour la liaison à l’ordinateur.



Les systèmes de contrôle des accès remportent depuis toujours beaucoup de succès auprès de nos lecteurs, c’est pourquoi ont vous propose régulièrement des montages s’y rapportant et basés sur les diverses technologies. Ainsi avons-nous présenté des appareils utilisant des transpondeurs, des cartes à puce et récemment, grâce au circuit intégré novateur Sensory VE-IC, la voix pour identifier les différents usagers désirant accéder à une ressource précise.

Notre réalisation
Cet article propose la construction d’un lecteur de badges magnétiques dont l’atout principal est, nous semble-t-il, l’universalité de son emploi. Comme tous les appareils de ce genre, notre circuit est en mesure de lire les codes écrits à l’intérieur des traces présentes dans les cartes magnétiques.
De plus, il est doté de deux relais qu’il peut activer ou relaxer selon les codes lus. Les deux relais peuvent être reliés à des dispositifs de contrôle de portes, à des serrures électriques ou à des systèmes d’alarme de façon à réaliser un système de gestion des accès des plus fiables. L’appareil est en outre muni d’un port sériel RS232 à travers lequel il est possible de le relier à un ordinateur ou un autre périphérique : nous le verrons, ce port est mis à profit par le circuit pour transmettre vers l’extérieur les codes lus ou pour recevoir certaines commandes concernant les actions à accomplir. L’interface est enfin complétée par une LED bicolore signalant à l’extérieur certaines informations (par exemple, si la lecture d’une carte a bien été effectuée ou non, si l’appareil est activé, etc.) et d’un buzzer pour compléter cette signalisation.
Entrons un peu plus profondément dans les spécifications du système en précisant tout d’abord que le circuit est caractérisé par deux modes, Clé et PC Link, chacun d’eux se subdivisant en deux sous-modes, Clé Normal/Clé Auto-apprentissage pour le premier et PC Link Direct/PC Link “On Demand” pour le second. La sélection des quatre sous-modes se fait par le paramétrage d’un dip-switch à deux micro-interrupteurs présent dans le circuit, comme le montre la figure 3.
Le mode Clé Normal a été conçu pour réaliser un système autonome de gestion des entrées : en effet, quand le code écrit à l’intérieur d’une carte est lu, si ce code a été préalablement mémorisé dans l’EEPROM du microcontrôleur constituant le circuit (autrement dit si ce code est habilité), RL1 est activé et peut, par exemple, commander l’ouverture d’une entrée.
Si en revanche ce code n’est pas habilité (pas mémorisé dans l’EEPROM du PIC), c’est le RL2 qui est activé et qui peut, par exemple, déclencher une alarme. Les codes des cartes à habiliter sont mémorisés dans la mémoire du microcontrôleur grâce au mode Clé Auto-apprentissage : quand une carte passe par la fente du lecteur, le code est écrit dans la mémoire du PIC pour être ensuite utilisé à des fins de comparaison (bien sûr, si le code est déjà présent dans la mémoire, il n’est pas mémorisé une seconde fois).
Notez que les codes sont écrits dans une EEPROM et que donc les informations sont mémorisées selon une technique non volatile (par conséquent, même si l’alimentation est coupée, les données restent en mémoire et sont disponibles dès la mise sous tension suivante) et que les cellules peuvent être effacées et récrites plusieurs fois.
Le mode PC Link a été conçu, lui, afin de permettre de relier, par une liaison sérielle RS232, le lecteur de cartes magnétiques à un second appareil (typiquement un PC), ce dernier s’occupant de gérer l’habilitation ou non des entrées. Dans ce mode, on voit toute l’universalité d’emploi du circuit : selon vos propres besoins il est en effet possible d’étendre le système en reliant au PC de nouveaux périphériques ou en gérant de façons différentes les deux relais du circuit.
En sous-mode PC Link Direct l’appareil travaille comme un simple lecteur de badges magnétiques : le circuit se contente alors de lire les codes écrits dans les cartes et à les transmettre par le port sériel au PC. Afin d’éviter d’avoir à laisser l’ordinateur toujours allumé, le sous-mode PC Link “On Demand” est en outre disponible : là le circuit fonctionne encore comme lecteur de badges magnétiques, mais au lieu de transmettre immédiatement les codes lus, il les mémorise temporairement en EEPROM et c’est seulement après une interrogation de sa part qu’il les transmet à l’ordinateur. En dehors de la demande d’envoi des données mémorisées, l’ordinateur peut encore commander au circuit l’exécution de certaines opérations (par exemple, l’allumage de LED de signalisation, l’activation des relais ou du buzzer, etc.) ou prendre en compte certains paramètres de fonctionnement (par exemple, la durée d’activation des deux relais). Pour la communication entre lecteur et PC, un protocole particulier est utilisé (voir figure 6) : il a été conçu justement pour vous permettre d’écrire simplement un logiciel qui, tournant sur PC, soit capable de gérer le lecteur. Avant de conclure la présentation, ouvrons une parenthèse à propos des badges magnétiques : le standard ISO7811, avec lequel le lecteur est compatible, prévoit que, dans les cartes, les codes sont écrits à l’intérieur de trois traces.
Notre circuit est en mesure de lire seulement la trace 2 laquelle, selon les spécifications, peut contenir quarante caractères numériques (chaque caractère étant constitué de quatre bits d’information plus un bit de parité). Il n’est pourtant pas nécessaire que les quarante caractères soient écrits, les cartes peuvent en contenir moins.
En mode Clé le circuit ne considère que les dix premiers caractères de chaque carte (ce qui, pour la plupart des applications, suffit à une identification univoque) : exécutant un rapport entre la dimension de la mémoire du PIC et les octets nécessaires pour les dix caractères de chaque carte, le circuit a une capacité de mémorisation maximale de vingt cartes.
En mode PC Link, en revanche, le circuit prend en compte tous les caractères qu’il trouve écrits dans la trace 2 : selon la carte lue, les codes obtenus se caractérisent par différentes dimensions.
En sous-mode PC Link Direct cela n’implique aucune considération particulière (des flux de longueurs différentes sont simplement transmis par voie sérielle), en revanche, en sous-mode PC Link “On Demand”, il n’est pas possible de définir a priori la capacité maximale (en nombre de cartes mémorisées) de l’appareil, mais cela dépend des divers cas effectivement rencontrés.

Figure 1 : Les deux modes.

Le lecteur de cartes magnétiques peut fonctionner selon deux modes : Clé ou PC Link (direct ou “On Demand”). Le premier mode peut être utilisé, par exemple, pour réaliser un système de gestion des accès complet et indépendant (photo ci-contre) : quand une carte passe dans le lecteur, si elle a été préalablement mémorisée (par auto-apprentissage), le circuit active un relais 1 pouvant, par exemple, commander l’activation d’une serrure électrique. Si en revanche la carte ne figure pas parmi celles habilitées, le dispositif active un relais 2 pouvant être relié à une sirène ou à un système d’alarme.
Le mode PC Link direct (en bas) prévoit la transmission par l’appareil, au moyen d’une connexion sérielle RS232, de tous les codes des cartes lues à un ordinateur : c’est donc le logiciel tournant sur ce PC qui, en fonction d’une logique propre, commande les éventuels périphériques externes. En mode PC Link “On Demand” (en bas), le lecteur peut mémoriser certains accès et ne les envoyer au PC que si celui-ci les demande. En plus, le PC peut faire exécuter par le lecteur certaines commandes (par exemple l’activation des deux relais, l’activation du buzzer, etc.).

Le schéma électrique
Le schéma électrique complet de l’appareil est donné figure 2 : le coeur du lecteur est évidemment le microcontrôleur U1 PIC16F876-EF500, déjà programmé en usine. En effet, il gère directement tous les dispositifs composant le circuit.
À travers les ports RC4 et RC5 (broches 15 et 16) est gérée l’activation/ relaxation des relais RL1 et RL2, à travers les ports RC1 et RC2 (broches 12 et 13) est commandée la LED bicolore LD1, à travers RB6 et RB7 (broches 27 et 28) sont lus les états des deux micro-interrupteurs du dipswitch DS1 utilisés pour sélectionner un des quatre sous-modes de fonctionnement, le buzzer BZ1 est, lui, géré à travers le port RC3 (broche 14). La connexion vers le port sériel est confiée aux ports RC6 et RC7 (broches 17 et 18) : pour convertir les niveaux de tension de +/–12 V (liaison RS232) en 0/+5 V (dispositifs TTL) on se sert de la puce U2 MAX232.
Enfin la liaison vers le lecteur LSB12 externe est réalisée à travers les ports RA0 à RA2 (broches 2 à 4).
L’inter face de sortie du lecteur de carte à fente se compose de cinq fils : deux (– et +) servent à porter la masse et le +5 Vdc d’alimentation, les trois autres marqués B (CLS), Y (RCL) et D (RDT) servent à signaler qu’une carte est présente dans le lecteur et à transmettre le code vers l’extérieur. En particulier la broche CLS (“Card Loading Signal”) est mise à l’état logique bas quand une carte est physiquement présente dans le lecteur (de telle façon que le microcontrôleur puisse lancer la lecture), les broches RCL (“Read Clock”) et RDT (“Read Data”) sont en revanche utilisées pour transmettre vers l’extérieur les codes lus. En détail : RCL est à l’état logique bas quand le lecteur lit un bit sur la bande de la carte, ce bit informatif est disponible également sur la broche RDT.
Le logiciel du microcontrôleur gère la communication avec le lecteur selon la logique suivante : il teste continûment l’état logique de son port RA0, s’il le trouve bas il utilise le signal présent sur la broche RA1 pour se synchroniser sur la transmission du lecteur LSB12 et lit les bits présents sur le port RA2.
En fonction des bits lus il exécute deux opérations : il contrôle l’exactitude de la lecture (au moyen du bit de parité composant chaque caractère) et, en cas d’issue positive, il construit les octets constituant le code entier de la carte.
Quant à la section d’alimentation, elle commence par l’entrée PWR à laquelle on doit fournir une tension d’environ +12 V continu (niveau utilisé par les deux relais et le buzzer), puis le régulateur U2 7805 la stabilise en +5 V utilisé pour alimenter tous les dispositifs TTL.


Figure 2 : Schéma électrique du lecteur de badges magnétiques.

Liste des composants
R1 = 4,7 k
R2 = 4,7 k
R3 = 4,7 k
R4 = 390
R5 = 390
R6 = 4,7 k
C1 = 100 nF multicouche
C2 = 470 μF 25 V électrolytique
C3 = 100 nF multicouche
C4 = 470 μF 25 V électrolytique
C5 = 100 nF multicouche
C6 = 100 nF multicouche
C7 = 1 μF 100 V électrolytique
C8 = 1 μF 100 V électrolytique
C9 = 1 μF 100 V électrolytique
C10 = 1 μF 100 V électrolytique
C11 = 10 pF céramique
C12 = 10 pF céramique
LD1 = LED 3 mm bicolore
D1 = 1N4007
D2 = 1N4007
D3 = 1N4007
Q1 = quartz 20 MHz
U1 = PIC16F876-EF500 déjà programmé en usine
U2 = MAX232
U3 = 7805
T1 = BC547
T2 = BC547
T3 = BC547
DS1 = dip-switch à deux microinterrupteurs
BZ1 = buzzer avec électronique
RL1 = relais miniature 12 V
RL2 = relais miniature 12 V

Divers :
1 prise d’alimentation
1 connecteur DB9 femelle
2 borniers trois pôles
1 lecteur de cartes magnétiques LSB12
1 barrette mâle à 8 pôles
1 fil trois pôles 10 cm
1 support 2 x 14
1 support 2 x 8
1 boulon 3MA 8 mm
4 vis autotaraudeuse 5 mm

Sauf spécification contraire, toutes les résistances sont des 1/4 W à 5 %.

Figure 3 : Sélection du mode de fonctionnement.

Le lecteur de badges magnétiques est caractérisé par deux modes de fonctionnement différents : Clé ou PC Link. Dans le premier cas, il peut être utilisé de manière autonome pour contrôler des portes, serrures électriques, portails, etc. Avec le second mode, en revanche, le lecteur est relié, à travers le port RS232, à un ordinateur. Dans ce dernier cas l’éventuelle mémorisation des accès et la gestion des autres périphériques sont demandées par un logiciel spécifique tournant dans l’ordinateur.
Le sélecteur de l’un ou de l’autre mode de fonctionnement se fait par le dip-switch DS1 selon la logique suivante : DIP1 = ON, le fonctionnement Clé est sélectionné, DIP1 = OFF, le fonctionnement PC Link est sélectionné. En outre, pour les deux modes, il est possible de sélectionner, par DIP2, les deux autres sous-modes de fonctionnement.
Si DIP1 = ON (mode Clé) et DIP2 = ON le sous-mode Normal est sélectionné, le circuit lit les codes écrits dans les cartes qui passent et, si le numéro de la carte figure dans la mémoire du microcontrôleur, la LED s’allume en vert et le RL1 est activé pendant une certaine durée. Si au contraire le numéro de la carte n’y figure pas, la LED s’allume en rouge et le RL2 est activé. Il faut préciser que les durées d’activation des relais et de la LED peuvent être modifiées par voie logicielle, en reliant au moyen du port RS232 l’appareil à un ordinateur. Les durées spécifiées sont mémorisées à l’intérieur de l’EEPROM du PIC et utilisées pour les accès suivants. Par défaut les deux durées valent une seconde.
Si en revanche on sélectionne DIP1 = ON et DIP2 = OFF, le lecteur travaille en sous-mode “auto-apprentissage”, utilisé pour insérer dans le PC les numéros des cartes devant être habilitées. Si l’on active ce mode de fonctionnement et si une carte passe dans la fente de lecture, son code est mémorisé dans le PIC comme habilité (à titre de rétroaction pour l’usager, le buzzer émet un son de confirmation et la LED orange s’allume un instant). Bien sûr, si une carte est déjà mémorisée, elle ne l’est pas à nouveau (la LED rouge clignote cinq fois). Le PIC dispose d’une capacité maximale de vingt cartes. Si la mémoire est pleine, il n’est plus possible d’ajouter de nouveaux codes (signalé par dix clignotements de la LED en orange). Enfin, il est possible d’effacer complètement la mémoire du microcontrôleur : c’est ce qui arrive lorsque, à la mise sous tension, on a DIP1 = ON et DIP2 = OFF (signalé par des éclairs rouges de la LED).
En ce qui concerne le mode PC Link, DIP1 = OFF, il est possible de distinguer entre Direct, DIP2 = OFF, le dispositif fonctionne alors comme un lecteur de cartes transparent : tout code détecté est envoyé à l’ordinateur par le port sériel et le programme tournant dans celui-ci gère correctement les événements.
Si maintenant on a DIP1 = OFF et DIP2 = ON, le mode de fonctionnement “On Demand” est sélectionné. Avec ce sous-mode il est possible de mémoriser dans l’EEPROM du microcontrôleur un certain nombre d’accès, comme le montre la figure 7 et de les charger ensuite, au moyen du port sériel, dans le PC. En outre, il est possible de commander par voie logicielle l’exécution par le circuit de certaines commandes : l’appareil envoie continûment à l’ordinateur le flux INSÈRE COMMANDE et attend environ 500 ms son envoi. Les commandes peuvent être utilisées pour activer les deux relais, pour lire une ou toutes les cellules de mémoire, etc., comme le montre la figure 6.



Figure 4a : Schéma d’implantation des composants de la platine du lecteur de badges magnétiques.


Figure 4b : Dessin, à l’échelle 1, du circuit imprimé du lecteur de badges magnétiques.


Figure 5 : Photo d’un des prototypes de la platine du lecteur de badges magnétiques.

La réalisation pratique
Nous pouvons maintenant passer à la construction de l’appareil. Le circuit tient sur un circuit imprimé : la figure 4b en donne le dessin à l’échelle 1. Vous pouvez le réaliser vous-même.
Quand vous avez devant vous le circuit imprimé gravé et percé, montez-y tous les composants dans un certain ordre (en ayant constamment sous les yeux les figures 4a et 5 et la liste des composants).
Commencez par monter les deux supports des circuits intégrés : soudezles et vérifiez vos soudures (pas de court-circuit entre pistes et pastilles ni soudure froide collée).
Montez ensuite les six résistances sans les intervertir (triez-les d’abord par valeurs). Montez les diodes D1 à D3 1N4007 en orientant soigneusement les bagues repère-détrompeurs comme le montre la figure 4a. Montez les condensateurs (en ayant soin de respecter la polarité des électrolytiques, leur patte la plus longue est le + et le – est imprimé sur le côté du boîtier). Montez le quartz couché, pattes repliées à 90°, les transistors T1 à T3 BC547, méplats repère-détrompeurs orientés comme le montre la figure 4a et le régulateur 7805 couché et fixé par un boulon 3MA.
Montez le dip-switch DS1 à deux micro-interrupteurs, chif fres vers le bas, le buzzer BZ1 avec électronique en respectant bien la polarité +/– de ses broches et les deux relais miniatures 12 V pour circuit imprimé. Montez le connecteur DB9, la prise jack d’alimentation et les deux borniers à trois pôles de sortie des relais. Montez enfin le connecteur barrette mâle à huit broches pour la liaison par connecteur femelle à cinq trous au lecteur proprement dit et par soudures aux trois pattes de la LED bicolore externe (attention à la polarité) située dans le lecteur.
Vérifiez que vous n’avez rien oublié et contrôlez encore une fois toutes vos soudures et insérez le circuit intégré U1 dans son support, repère-détrompeur en U orienté vers R3 et U2 dans le sien, repère-détrompeur vers C7.
Le montage de la platine étant terminé, passons maintenant aux connexions avec le lecteur LSB12. La barrette à huit pôles est reliée par câble et connecteur aux deux connecteurs du lecteur externe : le câble comporte 5 + 3 fils (les cinq pour le lecteur et les trois pour commander une éventuelle LED présente dans le LSB12).
Attention au sens d’insertion du connecteur femelle à cinq trous : repérezvous grâce aux couleurs des fils.
Le lecteur LSB12 ne prévoit pas cependant la présence d’une LED de signalisation interne : l’opération d’insertion est de toute façon immédiate.
Faites un trou de 3 mm dans le couvercle du lecteur, insérez la LED et soudez convenablement les trois pattes au fil triple et au connecteur femelle à trois pôles. Si vous décidez de vous passer de la LED, vous n’avez aucune modification du circuit à prévoir : laissez seulement libres les trois broches de la barrette mâle à huit pôles.
Si vous voulez insérer le circuit dans un boîtier plastique, faites des trous latéraux, d’un côté pour le passage des connecteurs DB9, d’alimentation et de sortie de commande des relais et de l’autre pour celui du câble à huit fils du lecteur.
En un sens le LSB12 peut être vu comme un périphérique externe au circuit, c’est pourquoi il peut être monté autrement que nous l’avons fait, à quelque distance de la platine : le lecteur peut très bien être placé à l’extérieur d’une porte d’entrée et la platine à l’intérieur du local, près de la serrure électrique, afin d’éviter tout sabotage ou des dommages dus aux intempéries.
Si vous choisissez cette solution, il faudra prolonger quelque peu les huit fils de couleur : ne dépassez pas toutefois 50 cm de longueur au risque de produire une atténuation excessive préjudiciable au bon fonctionnement général.

Figure 6 : Développement d’un logiciel de gestion.
On l’a vu, le lecteur de badges magnétiques peut fonctionner soit en mode PC Link direct (il lit et transmet immédiatement les codes présents dans les cartes), soit en mode PC Link “On Demand” (il peut alors mémoriser certains codes et attendre la demande de l’ordinateur avant de les transmettre). Dans ce second mode, le PC peut aussi réclamer au lecteur l’exécution de certaines commandes. Pour chacun des deux modes il est donc nécessaire d’écrire un logiciel permettant au PC de dialoguer avec l’appareil. Nous expliquons ici le protocole adopté par le système pour communiquer, ce qui rend donc disponibles toutes les informations permettant de gérer la communication entre un logiciel et le lecteur.
L’envoi et la réception des données se fait par le port sériel avec une vitesse de transmission de 19 200 bps et un codage 8-N-1 sans contrôle de flux. En outre, pour recevoir les commandes et pour envoyer ses réponses, le système utilise toujours des caractères majuscules au format ASCII et il ajoute à la fin des réponses les caractères spéciaux AU DÉBUT et ENVOI (valeurs numériques décimales 13 et 10) pour indiquer la fin des flux.
À 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 une carte est lue, le circuit envoie le flux CODE LU ->x<- où, à la place de x, on trouve les octets du code : les caractères “->” et “<-” ont été insérés pour faciliter la reconnaissance du code par le logiciel à l’intérieur de la réponse. Cette même technique a déjà été utilisée dans les autres cas où il est nécessaire de repérer la position du code à l’intérieur d’un flux.
En revanche, en mode “On Demand” l’appareil continue à envoyer le flux INSÈRE COMMANDE et attend 500 ms l’envoi de celle-ci. Le tableau suivant indique les formats et les significations des commandes et des réponses.



Figure 7 : Capacité de mémorisation.
Les cartes badges mémorisent les codes dans leur bande magnétique : dans le standard ISO 7811 ces bandes sont divisées en trois différentes traces employées en fonction de l’application finale. Le lecteur manuel LSB12 utilisé dans notre appareil est en mesure de lire les données numériques mémorisées dans la trace numéro 2 : à l’intérieur de cette trace peuvent être mémorisés jusqu’à 40 caractères numériques (chaque caractère est représenté par quatre bits informatifs plus un bit de parité) contenus entre les deux symboles spéciaux de “Start Sentinel” et “End Sentinel” indiquant respectivement le début et la fin du champ des données. Notez qu’il n’est pas obligatoire que les 40 caractères soient présents : à l’intérieur de certaines cartes il peut y en avoir moins.
Selon le mode d’utilisation (Clé ou PC Link), le lecteur considère seulement certains caractères : dans le premier mode seuls les dix premiers caractères, pour chaque carte, sont lus et mémorisés (c’est suffisant pour une identification univoque), en mode PC Link tous les caractères écrits dans la trace 2 sont pris en compte. C’est pourquoi en mode Clé l’appareil a une capacité de mémorisation constante de vingt cartes (donnée du rapport entre la dimension de l’EEPROM du PIC divisée par la dimension des dix caractères). En mode PC Link “On Demand”, en revanche, la longueur du code de chaque carte n’a pas une dimension fixe, mais varie selon le nombre des caractères écrits dans la trace magnétique. C’est pourquoi il n’est pas possible de définir a priori une capacité maximale de mémorisation, cela dépend en effet des différents cas rencontrés pratiquement.

Les essais
Pour faciliter cette opération, on a prévu pour les quatre sous-modes de fonctionnement de l’appareil l’utilisation du port sériel afin d’envoyer à l’extérieur certaines informations de signalisation.
Ces informations peuvent être visualisées sur un quelconque ordinateur doté d’un système d’exploitation Windows 98 ou supérieur, dont on utilise l’Hyper Terminal. Une fois le programme lancé, sélectionnez le port sériel utilisé (COM1 ou COM2), paramétrez la vitesse de transmission à 19 200 bits/s, huit bits de données, aucune parité, un bit de stop et aucun contrôle de flux.
Alimentez le lecteur de badges magnétiques : à l’écran apparaît “SYSTEM STARTUP”. Passez en mode Clé Normal et mettez une carte dans le lecteur. Si tout fonctionne normalement, le code est visualisé (limité aux dix premiers caractères) pour chaque carte lue et en même temps la signalisation confirme que la carte est habilitée ou non. Si une erreur de lecture a lieu (par exemple parce que la carte est passée trop vite dans la fente ou dans le mauvais sens) l’écran affiche “VÉRIFIER LE SENS DE PASSAGE”.
Passez ensuite au mode Clé Autoapprentissage et essayez de mémoriser de nouvelles cartes : nous vous conseillons d’essayer aussi de passer des cartes déjà mémorisées afin de voir si elles sont reconnues comme telles. Essayez en outre de couper l’alimentation et de remettre le circuit sous tension, de façon à effacer complètement la mémoire.
Ensuite passez en mode PC Link Direct et essayez de glisser des cartes : vérifiez que les codes sont lus correctement et envoyés au PC et surtout qu’ils ne sont pas tronqués (vous pouvez le vérifier car des cartes différentes sont représentées par des codes de longueurs différentes).
Enfin, passez en mode PC Link “On Demand” : tout d’abord vérifiez que le dispositif envoie bien, à inter valles d’environ 500 ms, le flux INSÈRE COMMANDE.
Essayez d’envoyer les commandes d’allumage de la LED, du buzzer ou des relais (pour envoyer une commande il suffit de la composer sur le clavier du PC, comme le montre la figure 6).
Ensuite essayez de passer des cartes dans le lecteur et vérifiez que les codes sont mémorisés dans l’EEPROM du PIC : alors, au moyen de la commande correspondante, demandez le “download” (chargement) des données et vérifiez qu’elles correspondent avec celles précédemment mémorisées.
Dernier conseil : nous l’avons vu, selon le mode sélectionné le circuit considère et mémorise tout ou seulement les dix premiers caractères composant le code. C’est pourquoi, afin d’éviter tout problème, à la première mise sous tension du circuit et avant de passer du mode Clé au mode PC Link et vice versa, nous vous conseillons d’exécuter l’effacement complet de la mémoire (commande */C).

星期一, 七月 14, 2014

Un système GSM d’écoute à distance à module Sony Ericsson GM47

Ce système d’écoute à distance, de petites dimensions, est très facile à dissimuler. En raison de sa conception, il pourra être installé dans un véhicule, ou dans tout autre lieu, pour une écoute discrète. Le système prévoit la possibilité de régler, depuis le poste distant, la sensibilité du microphone, le déclenchement de l’alarme avec appel au moyen d’un détecteur de mouvement (ou autre capteur) et un accès protégé par mot de passe. Son principal intérêt réside dans sa portée, seulement limitée par la zone de couverture du réseau GSM !


Dans de nombreuses situation, un système permettant d’écouter à distance une conversation ou ce qui se passe à l’intérieur d’un lieu donné est des plus utiles : par exemple, on peut l’installer dans une voiture ou un appartement à des fins de sécurité ou dans n’importe quel local à surveiller.

Notre réalisation
Le système proposé dans cet ar ticle se constitue autour d’un circuit utilisant un module GSM Sony Ericsson GM47, il permet d’écouter à distance, à partir de tout téléphone (fixe ou portable), des signaux audio provenant d’un milieu défini.
Le fait que le système emploie, pour l’envoi des données, un module GSM, permet de l’utiliser pratiquement quelle que soit la distance à couvrir (même si, on le comprend, le plus grand intérêt concerne des distances importantes).

Bien sûr, la condition sine qua non de fonctionnement du système est que le circuit se trouve dans une zone de couverture du réseau GSM. Le boîtier protégeant le circuit d’interface est de petites dimensions (environ 90 x 55 x 22 mm) et il peut donc être facilement dissimulé à l’intérieur d’un habitacle de voiture ou dans un coin (armoire, coffret, etc.) de pièce d’un appartement, ou encore dans un objet mobile (valise, sac, etc.). Le microphone est une capsule microphonique préamplifiée, elle aussi de petites dimensions et, pour une réception optimale, elle peut être placée à quelques mètres de la source sonore (par exemple dans la garniture en haut du pare-brise ou à l’intérieur d’un objet qui s’y prête) sans pour autant attirer l’attention.
Le circuit est doté d’une entrée d’alarme définie pouvant, par exemple, être reliée à notre capteur de mouvement au gaz de mercure, comme le montre la figure 8 : cette entrée a été conçue pour savoir quand le circuit subit des déplacements. Quand cette condition est vérifiée, le système envoie des SMS afin d’aviser qu’un mouvement a eu lieu. L’application typique de cette entrée concerne la sécurité antivol des véhicules : elle informe l’usager que le véhicule qu’il surveille se déplace afin qu’il puisse commencer l’écoute.

Analysons plus en détail les caractéristiques techniques du montage : il s’agit d’un système d’écoute à distance permettant d’écouter, au moyen d’un appel téléphonique fixe ou mobile, tout ce qui se dit, ou d’éventuels autres signaux sonores, dans un lieu défini. A des fins de sécurité, avant de permettre l’accès au circuit, divers contrôles sont exécutés : certains concernent le numéro de téléphone essayant de se connecter au dispositif. En effet, le système est caractérisé par une liste (capacité maximale 50 numéros) de numéros de téléphone habilités pour l’accès à l’écoute à distance. Ainsi, on évite qu’un étranger puisse (tant intentionnellement que de manière erronée) se connecter au dispositif et écouter. Un autre contrôle de sécurité concerne l’obligation de spécifier un mot de passe donnant accès au paramétrage du système. Le mot de passe se compose des chiffres numéros 10 à 14 du code IMEI du module GSM constituant le circuit : seul le possesseur du circuit aura connaissance de ces informations et il sera donc le seul à être en mesure de modifier les paramètres (naturellement toutes les commandes envoyées avec un mot de passe erroné sont ignorées par le système).
Pour faciliter l’identification des cinq chif fres du mot de passe de l’IMEI, nous avons prévu qu’après avoir inséré une carte SIM dans l’appareil et mis le circuit sous tension, en première position de mémoire de la SIM (sous le nom de PASSWORD) sont sauvegardés les cinq chiffres correspondant au mot de passe du système, précédés, pour plus de clarté, du caractère “+”. Donc si vous enlevez la carte SIM et si vous l’insérez dans un quelconque portable, vous pourrez lire à l’écran du téléphone les cinq chiffres. Les paramètres modifiables du circuit touchent l’introduction et l’effacement des numéros de téléphone dans la liste d’habilitation, le réglage du volume d’écoute et l’habilitation/déshabilitation des entrées d’alarme.
Tous les paramétrages sont exécutés par l’envoi de SMS dont le texte doit respecter des règles précises, comme le montre la figure 6 : deux commandes permettent d’ajouter à la liste un numéro sans alarme (#A) et avec alarme (#H). Les deux commandes permettent d’habiliter un numéro de téléphone et d’accéder à l’écoute, la différence entre les deux étant le mode de gestion de l’entrée d’alarme.
En effet, si un numéro est inséré au moyen de la commande #H, si le capteur de mouvement enregistre des vibrations, le système envoie au numéro spécifié un SMS informant que le circuit a été déplacé (nous verrons d’ici peu que par la commande #S il est toujours possible d’habiliter ou déshabiliter l’entrée d’alarme).
On trouve aussi des commandes permettant d’effacer un seul numéro de la mémoire (#C) et d’exécuter son effacement complet (#Z, opération conseillée avant la première mise sous tension du système).
Outre ces commandes permettant de gérer la liste des numéros habilités se trouvent deux autres commandes permettant de régler le volume d’écoute (#V) et d’habiliter/déshabiliter l’entrée d’alarme (#S).
La première commande prévoit de spécifier un paramètre numérique indiquant le niveau du volume (0 = audio éteint, 5 = volume maximal), la seconde commande prévoit en revanche un “flag” indiquant le paramétrage de l’alarme (0 = entrée déshabilitée, 1 = entrée habilitée).

Toutes les commandes prévoient la présence d’un “flag” permettant d’indiquer si l’on désire recevoir des SMS de confirmation d’exécution de l’opération.

Une ultime précision touche la carte SIM à insérer dans le circuit : le système est compatible avec toutes les cartes vendues actuellement.

Bien sûr, c’est elle que détermine le numéro de téléphone de l’appareil (celui que l’on appelle pour écouter et auquel on envoie les SMS de programmation) et c’est sur elle que seront débités les SMS de réponse.



Figure 1 : Fonctionnement de l’ensemble du système.

Quand le dispositif a été installé dans le véhicule, ou autre lieu à surveiller, il suffit d’un appel (à partir d’un téléphone fixe ou d’un portable) pour écouter le signal audio capté par la capsule microphonique du système. La seule condition requise est que le circuit doit se trouver dans une zone couverte par le réseau GSM.


Figure 2 : Eléments composant le système d’écoute.

Le système que nous proposons se compose d’une l’interface contenant le module GSM Sony Ericsson GM47, d’une capsule microphonique préamplifiée, d’une antenne GSM plate bibande avec connecteur FME, d’un câble adaptateur de formats MMCX/FME, d’un capteur de mouvement au gaz de mercure, utilisé pour détecter tout mouvement imposé au véhicule par une intrusion et d’un connecteur allume-cigare, utilisé pour prélever l’alimentation directement sur la batterie de la voiture.

Le schéma électrique
Comme le montre la figure 3, le coeur du schéma électrique est le module GSM1 GM47 : il dispose de quelques ports d’I/O et d’un microcontrôleur interne pouvant être programmé (il n’est pas nécessaire d’utiliser un autre microcontrôleur externe). À travers ses broches 15 à 19, le module est relié à la carte SIM en utilisant la configuration suggérée par la note d’application du constructeur.
La connexion au capteur de mouvement se fait à travers la broche IO3 (numéro 23) et la R5 de “pull-up” : quand cette entrée est mise à la masse, le logiciel présent dans le module reconnaît cet état et exécute les subroutines prévues. La connexion entre la capsule microphonique et le module se fait par les broches ATMS et AGND (entrée audio analogique et masse analogique). Pour réduire au minimum le bruit capté par le microphone et sélectionner seulement les fréquences de la voix humaine, on a inséré en série dans la ligne d’entrée un étage filtrant (constitué de R9, R10, C10 et C11). Les broches 47 à 50, représentant la section audio numérique du module, sont reliées ensemble comme le veut ladite note d’application dans le cas où cette section n’est pas utilisée. Enfin, à travers deux sorties numériques (broches IO1 et IO2), le module commande aussi la LED bicolore de signalisation LD1.
Quelques considérations, maintenant, sur le logiciel, écrit en C, gérant le microcontrôleur présent dans le module. Dès que le module est activé, après les opérations préliminaires de paramétrage, il se met en attente d’un SMS de programmation ou d’un appel extérieur. Dans le premier cas, il contrôle le mot de passe inséré et, s’il est correct, il analyse les premiers caractères pour déterminer le type de commande. Ensuite, si le format de la commande est correct, il extrait les données insérées et exécute les opérations voulues (mémorise/efface un numéro de téléphone, modifie le niveau du volume, envoie les SMS de confirmation, etc.). En revanche, dans le cas d’un appel extérieur, le module extrait l’ID de l’appel et le recherche parmi ceux qui ont été préalablement mémorisés (capacité maximale 50 numéros de téléphone). Si l’ID de l’appel s’y trouve, il accepte l’appel en reliant l’entrée microphonique au téléphone distant, sinon il refuse la communication.
En outre, dans cet état, le module continue de vérifier si des SMS sont présents en entrée (une des caractéristiques du système étant que le volume peut être réglé pendant un appel). De plus, le GM47 teste continûment l’état de sa broche IO3 et, s’il passe de l’état logique haut à l’état logique bas, il envoie les SMS d’alarme à tous les numéros précédemment habilités avec la commande #H.

Figure 3 : Schéma électrique du système d’écoute.

Liste des composants
R1 = 200 kΩ 1 %
R2 = 100 kΩ 1 %
R3 = 1 kΩ
R4 = 1 kΩ
R5 = 22 kΩ
R6 = 330 Ω
R7 = 330 Ω
R8 = 1 kΩ
R9 = 33 kΩ
R10 = 22 kΩ
C1 = 100 nF multicouche
C2 = 1000 μF 16 V électrolytique
C3 = 100 nF multicouche
C4 = 1000 μF 16 V électrolytique
C5 = 100 nF multicouche
C6 = 1 μF 63 V électrolytique
C7 = 100 nF multicouche
C8 = 1 μF 63 V électrolytique
C9 = 100 nF multicouche
C10 = 3,3 nF 100 V polyester
C11 = 220 nF 63 V polyester
D1 = 1N4007
LD1 = LED 3 mm bicolore
U1 = 7805
U2 = MIC2941A
GSM1 SONY ERICSSON GM47-EF507

Divers :
1 porte-SIM
1 connecteur 60 pôles CMS CS60
1 connecteur d’antenne CVANT
3 entretoises 3MA 10 mm
4 entretoises 2MA 5 mm
4 boulons 2 MA 10 mm
2 dissipateurs TE19
5 boulons 3 MA 8 mm
1 microphone préamplifié

Sauf spécification contraire, toutes les résistances sont des 1/4 W à 5 %.

Figure 4a : Schéma d’implantation des composants de la platine du système d’écoute.


Figure 4b-1 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés du système d’écoute, côté composants.


Figure 4b-2 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés du système d’écoute, côté soudures.

La réalisation pratique
Nous pouvons maintenant passer à la construction de l’appareil. Le circuit tient sur un circuit imprimé double face à trous métallisés : la figure 4b-1 et 2 donne les dessins des deux faces (côté composant et côté soudures) à l’échelle 1. Vous pouvez le réaliser vous-même par la méthode indiquée dans le numéro 26 d’ELM : dans ce cas, n’oubliez pas de relier les deux faces avec des morceaux de fil de cuivre nu soudés des deux côtés, à la place des trous métallisés.
Quand vous avez devant vous le circuit imprimé gravé et percé, montez-y tous les composants dans un certain ordre (en ayant constamment sous les yeux les figures 4a, 5a et b et la liste des composants).
Commencez par monter le support du module GM47 : c’est un connecteur à deux lignes CS60 à 60 broches en CMS, soudez-le et vérifiez vos soudures (pas de court-circuit entre pistes et pastilles ni soudure froide collée). Le module, lui, se monte à la fin. Montez ensuite toutes les résistances sans les intervertir (triez-les d’abord par valeurs) : deux sont des 1 %, distinguez-les bien. Montez la diode D1 1N4007 en orientant soigneusement sa bague repère-détrompeur vers C1.
Montez les condensateurs (en ayant soin de respecter la polarité des électrolytiques, leur patte la plus longue est le +) : les électrolytiques C2 et C4 sont montés couchés, pattes repliées à 90°.
Montez les deux régulateurs U1 7805 et U2 MIC2941A sans les confondre, couchés dans leurs dissipateurs TE19 et fixés par de petits boulons 3MA. Montez le connecteur d’antenne CVANT.
Vérifiez que vous n’avez rien oublié et contrôlez encore une fois toutes vos soudures.
Retournez la platine et prenez-la, donc, côté soudures. Soudez bien en place (voir figure 5b) le porte-SIM, à gauche et la LED bicolore, à droite.
Installez les trois entretoises de fixation au boîtier : les écrous sont côté soudures.
Insérez le module GM47 dans son connecteur CS60.
Le montage de la platine étant terminé, passons maintenant aux connexions avec l’extérieur.
Dans notre prototype, nous avons monté, comme connecteur d’alimentation, une fiche mâle allume-cigare : cela nous a semblé être la meilleure solution pour une utilisation en voiture (vous me direz, pour la discrétion, on fait mieux !), mais rien n’empêche de se connecter directement sur un pôle permanent (c’est-à-dire clé de contact enlevée) du 12 V de la batterie du véhicule.

On peut aussi prévoir, pour une utilisation non embarquée, des piles ou une batterie rechargeable ou une alimentation secteur 230 V. Il suffit que la tension arrive aux pastilles PWR (avec respect de la polarité, bien sûr, bien que D1 protège contre les méfaits de toute inversion).
L’utilisation du capteur de mouvement n’est pas obligatoire : si vous ne voulez pas l’utiliser, il suffit de laisser ouverts les connecteurs correspondants ou bien leur relier un autre type de capteur (par exemple un détecteur de mouvement volumétrique, à infrarouges ou autre, ou un étage d’activation vocale se déclenchant lorsqu’une voix retentit à l’intérieur d’une zone à surveiller).
Ce qu’il est important de retenir, c’est que le système envoie des SMS d’alarme chaque fois qu’il détecte une transition de niveau logique haut à niveau logique bas sur l’entrée IO3 (broche 23 correspondant au S de l’entrée SENS) du GM47.

Dans cette même section, est en outre fournie la tension +12 V (borne +) et la masse (borne –). La troisième entrée va au microphone.

Figure 5a : Photo d’un des prototypes de la platine du système d’écoute vue du côté composants.

Figure 5b : Photo d’un des prototypes de la platine du système d’écoute vue du côté soudures.


Figure 6 : Comment programmer le système d’écoute par l’envoi de SMS.

Les numéros habilités à appeler le système d’écoute, le réglage du volume d’écoute et le paramétrage de l’habilitation d’alarme sont écrits à l’intérieur de la mémoire du module GM47 et peuvent être paramétrés par envoi de SMS.

Des commandes permettant d’ajouter un numéro sans alarme (#A) et avec alarme (#H), d’effacer un seul numéro (#C) ou toute la mémoire (#Z), de régler le volume d’écoute (#V) et d’habiliter ou déshabiliter l’entrée d’alarme (#S) sont disponibles.

Pour les commandes d’habilitation des numéros, la syntaxe générale du texte à envoyer est la suivante :
<#cmnd><rép><numéro de téléphone>*<pswd>#

où <cmnd> est une des quatre commandes, <rép> un flag indiquant si l’on désire un SMS de confirmation (0 = aucune réponse, 1 = avec réponse), <numéro de téléphone> le numéro à ajouter ou éliminer de la liste, numéro complet avec préfixe et extensions internationales (la commande #Z ne prévoit pas ce champ), enfin <pswd> est le code de sécurité correspondant aux chiffres 10 à 14 du code IMEI du module GM47 utilisé dans le circuit (sur l’étiquette illustrant cette figure, le code, surligné en jaune, est 39020).

Par exemple, pour effacer complètement la mémoire en demandant un SMS de confirmation, le flux à envoyer doit être :
#Z1*39020#

Pour habiliter le numéro 3401234567 à l’écoute sans alarme et demander au système l’envoi du SMS de confirmation, la commande est :
#A1+393401234567*39020#

En revanche, pour habiliter le numéro 3405555555 à l’écoute avec alarme et sans demander un SMS de confirmation, le texte à envoyer est :
#H0+393405555555*39020#

Pour effacer ce même numéro de la liste (avec demande d’un SMS de confirmation), la commande est :
#C1+393405555555*39020#

Il est possible en outre d’ajouter des numéros du réseau fixe, par exemple pour habiliter sans alarme le numéro 027654321 sans SMS de confirmation le texte à envoyer est :
#A0+39027654321*39020#

Pour régler le volume, le texte à envoyer doit respecter le format suivant :
#Vr#l*ppppp#

où r représente le “flag” de confirmation, l indique le niveau du volume d’écoute (peut prendre des valeurs entières de 0, correspondant à audio éteint, à 5, correspondant au volume maximal) et ppppp le mot de passe de sécurité.

Par exemple, la commande #V1#5*39020# règle le volume et réclame un SMS de confirmation.

Enfin, la commande d’habilitation ou de déshabilitation de l’alarme, est au format :
#Sr#a*ppppp#

où r est le “flag” de confirmation, a indique s’il faut déshabiliter (a=0) ou habiliter (a=1) l’entrée d’alarme et ppppp le mot de passe de sécurité.

Par exemple, la commande #S0#1*39020 permet d’habiliter l’entrée d’alarme sans réclamer l’envoi du SMS de confirmation.

Les réponses éventuelles aux diverses commandes sont envoyées par SMS au portable ayant demandé l’opération ainsi que, dans le cas d’une gestion des numéros habilités, au numéro inséré dans (ou éliminé de) la liste. Elles ont les formats généraux suivants :
- Le numéro <numéro de téléphone> a été habilité avec/sans alarme
- Le numéro <numéro de téléphone> est déjà présent
- Attention mémoire pleine
- Le numéro <numéro de téléphone> a été effacé
- La liste a été remise à zéro
- Réglage du volume effectué
- Entrée d’alarme habilitée/déshabilitée



En outre, en cas d’entrée d’alarme habilitée, le SMS signalant que l’entrée en question a subi une transition d’un niveau logique haut à un niveau logique bas est envoyé à tous les numéros habilités avec la commande #H et a le format :
- L’entrée d’alarme est active

Le montage dans le boîtier plastique
Il est de dimensions idéales pour recevoir le circuit, c’est à croire qu’on l’a voulu ainsi ! Sur les tétons plastiques du fond du boîtier se monte normalement la platine, mais nous avons dû procéder autrement : coupez donc ces tétons avec une pince coupante. Percez, comme le montre la figure 7, trois trous sur le côté, placez trois passe-fils et faites passer à travers les trois câbles de connexions avec l’extérieur. Faites un trou sur le côté opposé (avec passe-fil) pour l’entrée du câble d’antenne, comme le montre la figure 2.
La platine est fixée au boîtier plastique au moyen de trois entretoises et de trois vis venant s’insérer dans trois trous pratiqués dans le fond. Un dernier trou dans le couvercle permet de faire affleurer la LED bicolore, comme le montre la figure 2.

Figure 7 : Montage de l’interface dans le boîtier plastique (côté soudures).

L’interface contenant le module GSM Sony Ericsson GM47 comporte, côté soudures, le porte-SIM et la LED bicolore. Les trois câbles sortant des trous latéraux à travers des passe-fils et les trois écrous correspondant aux entretoises de fixation au boîtier sont également visibles sur cette photo (voir figure 5b).

Figure 8 : Le capteur de mouvement dans son boîtier plastique ouvert (côté composants).

Notre prototype utilise notre détecteur de mouvement activant l’entrée d’alarme du circuit lorsque la voiture se met à rouler ou quand quelqu’un entre dans l’habitacle. Ce capteur est typiquement utilisé dans des applications automobiles. Dans le cas où le système serait utilisé pour surveiller un appartement, on pourrait utiliser à la place un détecteur de mouvement volumétrique à infrarouges passifs ou similaire.

Les essais
Insérez une carte dans le porte-SIM (dans laquelle vous avez préalablement éliminé toutes les informations de la rubrique et dont vous avez déshabilité la demande de PIN) et mettez le circuit sous tension : la LED s’allume en orange pour indiquer que le module s’initialise et cherche le réseau GSM.
Attendez que la LED clignote en vert : le module est alors verrouillé au réseau.
Effacez complètement la mémoire en envoyant au circuit, à partir d’un quelconque portable, la commande #Z indiquant que vous désirez un SMS de confirmation (flag rép=1).

Attendez que la commande soit donnée au module, vérifiez que la LED s’allume en orange pour indiquer que la remise à zéro de la mémoire est en cours et attendez ensuite que le SMS de réponse soit envoyé au numéro ayant envoyé la commande. Si tous ces tests sont réussis, essayez d’ajouter de nouveaux numéros de téléphone à la liste de ceux habilités.

Nous vous conseillons d’insérer au moins deux numéros, en utilisant les commandes avec alarme (#A) et sans alarme (#H). Testez le fonctionnement de l’entrée d’alarme et vérifiez que le SMS est bien envoyé au numéro inséré avec la commande #H (si le SMS n’est pas envoyé, cela peut signifier que l’entrée d’alarme est déshabilitée, habilitez-la alors avec la commande #S). Appelez le circuit avec un des deux numéros mémorisés et vérifiez que le signal audio capté par le microphone est bien transmis.
Nous vous rappelons que pour permettre au module de reconnaître l’ID de l’appelant, il est nécessaire que le téléphone utilisé ait habilité la fonction permettant l’envoi de son numéro.

Enfin, par la commande #V, testez le réglage du volume, même si l’appel est en cours.