Académique Documents
Professionnel Documents
Culture Documents
Application de l'AN10E40
d'application
006
Tête de lecture de carte magnétique Amplificateur
Introduction
De temps en temps, une technologie facile à utiliser, robuste et s'adaptant à de nombreuses applications voit le jour.
Les bandes de données magnétiques sont l'une de ces technologies. L'exemple le plus évident est celui de la carte de
crédit. Mais il existe bien d'autres exemples : billets d'avion en papier, cartes de club de shopping, cartes d'identité de
magasins de location de vidéos, permis de conduire, cartes de débit de distributeurs automatiques, et la liste n'est pas
exhaustive.
Cette note d'application décrit brièvement comment un réseau analogique programmable de terrain (FPAA) Anadigm
peut être utilisé pour construire un amplificateur/décodeur de lecture de bande magnétique complet et comment il peut
être facilement interfacé à un processeur hôte. La note décrit également les avantages de l'analogique programmable
par rapport à la fonction fixe dans une telle application.
La carte standard
"Ce qui est bien avec les normes, c'est qu'il y a tellement de choix. C'est vrai. Il existe un grand nombre de normes à
prendre en compte dans le cadre des technologies de bande magnétique, et je ne m'efforcerai pas de les énumérer
toutes ici. Il suffit de dire que la spécification la plus souvent citée est l'ISO/IEC-7811. Je me contenterai d'en présenter
les grandes lignes, étant entendu que nous utilisons une tête de lecture et un boîtier destinés à des applications de
lecture de bandes magnétiques de cartes plastiques. Il existe de nombreux fournisseurs de qualité, mais dans ce cas-
ci, ce sont les produits Magtek qui ont été utilisés.
Si l'on regarde la carte comme indiqué ci-dessus, les données sont codées de droite à gauche. L'encodage commence
toujours par le bit le moins significatif (le bit le plus à droite est le LSB du premier caractère de la bande). (Le bit le plus
à droite est le LSB du premier caractère de la bande.) La définition de chaque piste est différente et est résumée dans
le tableau ci-dessous.
La bande magnétique
Signal de tête de
lecture
Conversion vers
F2F
En d'autres termes, chaque bit occupe la même longueur physique sur la bande. Un bit comportant une transition de
flux "supplémentaire" au milieu de sa longueur est appelé "un". Encore une fois, la polarité de ces transitions est
arbitraire, c'est l'espace relatif entre les transitions qui signifie un ou zéro.
Pour les processeurs équipés d'un périphérique de temporisation, il est possible de connecter la sortie du FPAA (qui
basculera entre 0 et 5 V pendant le passage de la carte) à la broche d'entrée du port de temporisation. Des
interruptions seront générées à chaque transition et le stockage des valeurs de la minuterie dans un tableau est tout ce
qui est requis de la part de la routine de service d'interruption. Un rapide post-traitement du tableau de valeurs permet
de déchiffrer facilement les uns et les zéros.
Pour les processeurs moins coûteux, vous devrez plutôt connecter la sortie du FPAA à une broche d'entrée à usage
général sur le processeur. Une fois qu'une première transition est détectée (généralement sous la forme d'une
interruption), le processeur doit se consacrer entièrement au suivi du temps, à l'interrogation de la broche d'entrée à
intervalles réguliers et à l'enregistrement du moment où les transitions se produisent. Là encore, le post-traitement de
l'ensemble des horodatages permet de déchiffrer les uns et les zéros.
N'oubliez pas que la carte peut avoir été glissée à l'envers. L'inversion des données est facilement gérée par un
logiciel.
Maintenant que vous disposez d'une chaîne de Un et de Zéros, vous devez savoir d'où viennent les données et
comment les interpréter. Pour une introduction à cette partie du processus, veuillez consulter l'addendum de cette note.
IO CellK 0 V Cellule
Lire I (VMR) IO
Tête -1.25 V
-2.5 V
En regardant le schéma de circuit à gauche. Les tensions sont indiquées en gras et les gains des amplificateurs sont
indiqués entre crochets. Les amplificateurs sont représentés avec une bulle sur leurs sorties pour rappeler visuellement
qu'il s'agit d'amplificateurs inverseurs. Supposons qu'aucune carte n'est présente et que toutes les tensions des nœuds
sont celles indiquées. (Rappel : Tous les traitements de signaux analogiques au sein du FPAA sont effectués par
rapport à la tension à mi-chemin (VMR) et, par convention, cette tension est désignée par 0 V. La VMR est en fait 2,5 V
au-dessus de la masse de la puce... donc pour le diagramme de gauche ci-dessus, un processeur verrait la sortie de
+2,5 V comme +5 volts (logique haute) et une sortie de -2,5 V comme 0 volt (logique basse)).
Examinez un instant les tensions des nœuds et vous verrez que le circuit est dans un état stable. La sortie est un
niveau logique élevé.
Considérons maintenant ce qui se passe lorsqu'une carte passe devant la tête de lecture. Dans l'exemple ci-dessus à
droite, un champ de flux S-S passe au-dessus de l'espace dans la tête de lecture. Cela a induit un petit signal négatif
allant jusqu'à une pointe. Les étages d'entrée à gain élevé convertissent cette petite pointe en un signal de rail complet.
(Tout signal d'entrée dont l'amplitude est supérieure à 25 mV se traduira simplement par un signal écrêté, comme
illustré). Cette impulsion positive présentée à la borne négative du comparateur supérieur entraîne un changement
d'état, comme le montre la forme d'onde de sortie descendante. C'est exactement le contraire qui se produit sur le
comparateur inférieur, alors que l'ensemble du circuit passe à son autre état stable. La sortie est maintenant un niveau
logique bas.
La figure ci-dessus est une vue d'ensemble du circuit en action. Dans ce cas particulier, une tête de lecture a été
interfacée directement avec un AN10E40. La trace supérieure montre l'entrée brute de la tête de lecture, avec le bruit
et tout le reste. La trace inférieure montre le signal de sortie du circuit (une forme d'onde logique F2F de 0 à 5V). Aucun
autre composant n'a été utilisé. Il n'y a rien à faire, c'est aussi simple que cela avec l'analogique programmable.
Le circuit présenté ci-dessus n'utilise que 9 des 20 CAB disponibles dans un AN10E40. En fait, les deux amplificateurs
en série dans la partie inférieure du circuit ne sont pas vraiment nécessaires, à condition que la borne négative du
comparateur inférieur soit connectée à VMR, ce qui réduit la consommation de CAB par deux. L'AN10E40 dispose de
suffisamment d'espace pour accueillir un second canal de lecture.
La réponse évidente est le nombre de composants. Aucun composant supplémentaire n'a été utilisé dans cette
application. La tête de lecture était directement reliée au FPAA. Cependant, les avantages réels ne deviennent évidents
que lorsque vous sortez le circuit du laboratoire et que vous l'exposez à la lumière crue du monde réel.
Dans le monde réel, les lecteurs de cartes de crédit construits sans analogique programmable ne sont pas ce qu'ils
devraient être. Vous en avez eu la preuve si souvent que vous en êtes probablement devenu insensible. Prenez un
moment et rappelez-vous toutes les techniques de "glissement" des caissiers dont vous avez été témoin. Le coup "lent
et délibéré". Le "fast swipe". Le coup de la "marche à l'envers". La technique de l'aller-retour (l'une de mes préférées).
Le "nettoyage de la carte et l'essai à nouveau". L'opération "enveloppez la carte dans un sac en plastique et essayez-la
à nouveau". La technique "essayez l'autre lecteur de cartes". Et puis, bien sûr, il y a l'ultime plan de secours : le caissier
tient la carte devant la lumière, juste comme il faut, pour que les chiffres en relief, très usés, puissent être reconnus et
saisis à la main (généralement en partageant avec vous un regard dégoûté).
La saleté, l'usure, la température et l'exposition à des champs magnétiques involontaires sont autant de facteurs qui
rendent les cartes à bande magnétique difficiles à lire. De même, la saleté, l'usure et la corrosion rendent les têtes de
lecture de moins en moins efficaces. Comment l'analogique programmable peut-il remédier à cette situation ? Le
processeur hôte peut télécharger une nouvelle configuration complète de circuit sur un AN10E40 en moins de 125
microsecondes. Ainsi, lorsqu'un balayage échoue, vous pouvez ajuster le gain des amplificateurs d'entrée en une
fraction de seconde. En fait, dans un système soigneusement conçu, il est possible d'ajuster les amplificateurs de
lecture pendant les bits d'horloge principaux ! Un deuxième passage n'est pas nécessaire.
Le circuit peut également être adapté à la lecture de cartes dont la coercivité de la bande magnétique est différente.
Bien que cela ne soit généralement pas important pour les têtes de lecture, il est essentiel d'ajuster les signaux de
commande des têtes d'écriture pour tenir compte de ces différences de coercivité.
Ce sont là quelques-uns des avantages de l'application de l'analogique programmable dans les applications de cartes
standard. Dans les applications personnalisées, l'utilisation de l'analogique programmable présente encore plus
d'avantages. Pour les applications de haute sécurité, le FPAA peut être configuré pour gérer différentes techniques
d'encodage de données, y compris la génération de tonalités et le décodage. Fonctions de lecture et d'écriture, etc.
Addendum - Normes de codage des pistes et des données des cartes de crédit
La récupération des données d'une simple bande magnétique comporte de nombreuses étapes. Jusqu'à présent, nous
avons couvert l'amplification de la tête de lecture, la génération d'une forme d'onde F2F et son interprétation en une
chaîne de uns et de zéros. L'étape suivante du processus de récupération consiste à convertir les données binaires en
données de caractères, généralement ASCII. Les règles d'interprétation des données varient en fonction de la piste que
vous lisez.
Les caractères Start Sentinel (SS), End Sentinel (ES) et Logitudnal Redundancy Check (LRC) sont également communs
à toutes les pistes. Sur la piste 1, les caractères SS et ES sont respectivement % et ? Sur les pistes 2 et 3, les
caractères SS et ES sont respectivement ; et ? Les séparateurs de champs (FS) sont communs aux pistes 1 et 2.
Si, dans un premier temps, vous ne reconnaissez pas une Start Sentinel, il y a de fortes chances que la carte ait été
glissée à l'envers. Vous devrez adapter votre algorithme de décodage en conséquence.
Le LRC est la somme de tous les bits Bn précédents pour tous les caractères précédents sur la bande (le dépassement
est ignoré). Le bit de parité impair associé à chaque caractère ne signalera un problème que si un nombre impair de bits
(comme 1) est erroné pour ce caractère. Il est peu probable qu'il y ait deux erreurs de bits dans un seul caractère, mais
si c'est le cas, la vérification de la parité impaire ne reconnaîtra pas l'événement. Le travail de la CRL consiste alors à
ajouter une couche supplémentaire de contrôle des erreurs pour le flux de données associé à l'ensemble de la piste.
zeros | SS | FC | Primary Acct (19 caractères max) | Name (26 caractères max) | FS | other data | ES | LRC | zeros
zeros | SS | Acte primaire (19 caractères max.) | FS | autres données | ES | LRC | zeros
Piste 3
Les utilisations non standard de la piste 3 sont trop nombreuses pour être énumérées ici. Il suffit de dire qu'il s'agit en
grande partie d'une piste abandonnée et que c'est donc là que la plupart des systèmes spécialisés ou personnalisés
encoderont les données. L'intention initiale était d'utiliser cette piste comme une piste de lecture/écriture et de
transporter ici des informations cryptées sur le solde de votre compte bancaire. Cela permettait aux guichets
automatiques non reliés à un réseau de distribuer de l'argent sans savoir avec certitude quel était votre solde réel au
moment du retrait. Il n'a pas fallu longtemps au secteur bancaire pour comprendre qu'il valait mieux mettre en réseau les
distributeurs de billets et abandonner l'idée de données dynamiques sur votre carte de distributeur. La piste 3 est
désormais orpheline.
Jeu de caractères de la voie 1 - Alpha 6 bits avec parité impaire
Caractère P B6 B5 B4 B3 B2 B1 ASCII Caractère P B6 B5 B4 B3 B2 B1
ASCII
L'espa 1 0 0 0 0 0 0 20 40
ce
(non 21 A 1 1 0 0 0 0 1 41
défini)
22 B 1 1 0 0 0 1 0 42
(OG) 1 0 0 0 0 1 1 23 C 0 1 0 0 0 1 1 43
$ 0 0 0 0 1 0 0 24 D 1 1 0 0 1 0 0 44
%(SS) 1 0 0 0 1 0 1 25 E 0 1 0 0 1 0 1 45
26 F 0 1 0 0 1 1 0 46
27 G 1 1 0 0 1 1 1 47
( 0 0 0 1 0 0 0 28 H 1 1 0 1 0 0 0 48
) 1 0 0 1 0 0 1 29 I 0 1 0 1 0 0 1 49
2A J 0 1 0 1 0 1 0 4A
2B K 1 1 0 1 0 1 1 4B
2C L 0 1 0 1 1 0 0 4C
- 0 0 0 1 1 0 1 2D M 1 1 0 1 1 0 1 4D
. 0 0 0 1 1 1 0 2E N 1 1 0 1 1 1 0 4E
/ 1 0 0 1 1 1 1 2F O 0 1 0 1 1 1 1 4F
0 0 0 1 0 0 0 0 30 P 1 1 1 0 0 0 0 50
1 1 0 1 0 0 0 1 31 Q 0 1 1 0 0 0 1 51
2 1 0 1 0 0 1 0 32 R 0 1 1 0 0 1 0 52
3 0 0 1 0 0 1 1 33 S 1 1 1 0 0 1 1 53
4 1 0 1 0 1 0 0 34 T 0 1 1 0 1 0 0 54
5 0 0 1 0 1 0 1 35 U 1 1 1 0 1 0 1 55
6 0 0 1 0 1 1 0 36 V 1 1 1 0 1 1 0 56
7 1 0 1 0 1 1 1 37 W 0 1 1 0 1 1 1 57
8 1 0 1 1 0 0 0 38 X 0 1 1 1 0 0 0 58
9 0 0 1 1 0 0 1 39 Y 1 1 1 1 0 0 1 59
3A Z 1 1 1 1 0 1 0 5A
3B 5B
3C 5C
= 1 0 1 1 1 0 1 3D 5D
3E ^(FS) 0 1 1 1 1 1 0 5E
(ES) 0 0 1 1 1 1 1 3F 5F
Pour convertir en valeur ASCII, ignorez le P (bit de parité) et ajoutez la valeur hexagonale de B[6:0] à 20 hex.
Par exemple, pour le caractère /, 0F + 20 = 2F
WEB
http://www.anadigm.com/
ÉTATS-UNIS
Anadigm Inc. Tel : +1 408 996 2091
21615 Stevens Creek Blvd Fax : +1 408 996 2093
Cupertino
CA 95014
ROYAUME-UNI
Anadigm Ltd. Tel : +44 (0) 1270 531990
Maison Scott Fax : +44 (0) 1270 531999
Westmere Drive
Crewe
CW1 6ZG
ALLEMAGNE
Anadigm Ltd.
Tel : +49 (0) 8142 4485830
Gottlieb-Daimler Str. 6
Fax : +49 (0) 8142 4485840
82140 Olching