Vous êtes sur la page 1sur 9

Note

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.

Dans le cadre de cette discussion, la figure de gauche représente


le verso d'une carte de crédit en plastique classique. La première
piste (supérieure) est encodée dans un format établi par
l'Association internationale du transport aérien (IATA) et porte
généralement votre nom.

La deuxième piste (qui est le véritable cheval de bataille du groupe)


se présente sous un format défini par l'American Bankers
Association. Il contient le numéro de votre carte de crédit. Le
troisième format de piste, appelé THRIFT, était à l'origine destiné
aux distributeurs automatiques de billets (DAB). Contrairement aux
pistes en lecture seule 1 et 2, la piste THRIFT était destinée aux
applications de lecture et d'écriture. Cela n'a jamais vraiment été adopté et la piste n'est pas souvent utilisée, sauf dans
les applications où la nécessité de réécrire les données fait partie de la conception. Les cartes de débit des
photocopieurs et des distributeurs automatiques en sont des exemples typiques.

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.

Alpha - 6 données + 1 parité 210


(impair)
BCD - 4 données + 1 parité (impair) 75
BCD - 4 données + 1 parité (impair) 210
Bits par caractère Bits par
Piste 1 - IATA pouce
Piste 2 - ABA
Piste 3 - Thrift
De la bande magnétique au type ASCII...
Un certain nombre d'étapes sont nécessaires pour passer du signal de la tête de lecture magnétique à des données
ASCII assimilables par la plupart des processeurs. Le diagramme suivant illustre ces étapes de traduction, de haut en
bas.
La tête de lecture passe sur la bande dans cette direction.

La bande magnétique

]SN21NS2SN2NS2SN ] NS ] SN ] NS ] SN2NS ] SN ] NS3Bande magnétique

Signal de tête de
lecture

Conversion vers
F2F

4 Bits d'horloge (zéros initiaux) Début de la


phrase " ;"
Pour comprendre le processus de conversion, il faut d'abord savoir comment les données sont stockées sur la carte.
Imaginez une longue chaîne de barres aimantées, dont certaines ont une longueur d'une unité (et se trouvent toujours
par paires) et dont toutes les autres ont une longueur de deux unités. De plus, chacune de ces barres aimantées est
disposée à l'inverse de l'état qu'elle préférerait, de sorte que le Nord touche toujours le Nord et le Sud touche toujours
le Sud. Dans ces zones où les pôles sont accolés, il y a de grandes concentrations de lignes de flux magnétiques.

Le signal de tête de lecture


La bande magnétique passe devant la tête de lecture. Un courant sera induit au passage de chacune de ces régions à
forte concentration de flux. N-N induit un courant dans une direction, et S-S induit un courant dans la direction opposée.
Il s'avère que la polarité du signal de la tête de lecture n'a pas d'importance. Seul l'espacement dans le temps des
transitions est pertinent pour la conversion en une forme d'onde F2F.

F2F ou Aiken Biphase


Pour l'instant, nous allons laisser de côté la discussion sur la manière de créer la forme d'onde F2F à partir du signal de
la tête de lecture et nous concentrer sur ce qu'est l'encodage F2F. Également connu sous le nom de biphase d'Aiken,
le codage F2F utilise l'espace entre les transitions de flux pour coder un bit. Une barre aimantée de deux unités
représente un zéro, et une paire de barres d'une unité représente un un.

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.

Conversion des données de la carte en ASCII


Chaque piste commence et se termine par des "bits d'horloge". Les bits d'horloge ne sont rien d'autre qu'une chaîne de
zéros. Il s'avère qu'un passage manuel de carte est un événement à vitesse relativement constante. Ainsi, une période
de bits au début d'un balayage est très proche d'une période de bits à la fin d'un balayage. Les "bits d'horloge" sont
examinés en fonction de leur longueur (la période du bit) et déterminent le rythme du balayage. Un zéro est reconnu si
le temps écoulé entre les transitions de flux est proche d'une période de bit. Un est reconnu si le temps écoulé entre les
transitions de flux est proche de la moitié d'une période de bit.

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.

Utilisation de l'AN10E40 comme amplificateur de tête de lecture magnétique et générateur F2F


Seuls les étages de gain G01 et les comparateurs C02 sont nécessaires. Le circuit présenté ici est une sorte de
"bascule analogique S-R". Les comparateurs et leurs chemins de retour forment un circuit bi-stable. Le circuit se
stabilise dans deux états seulement.
+2.5 V Logique
[-100] [-100] haute
0V Cellule IO -25 mV
IO Cellule>0 V Logique basse
+2.5 V
1 Cellule -I IO Cell>
IO>
+1.25 V

IO CellK 0 V Cellule
Lire I (VMR) IO
Tête -1.25 V

-2.5 V

[-10] [-10] [-10] [-10]

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.

Avantages de l'utilisation de l'analogique programmable


Le circuit décrit est assez simple et peut bien sûr être construit avec une vingtaine de composants standard. Pourquoi
l'analogique programmable ?

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.

Codage des données de la voie et paramètres

1 IATA 210 Alphanumérique 79 6 bits + parité impaire Lecture seule


2 ABA 75 BCD 40 4 bits + parité Lecture seule
3 L'argent 210 BCD 107 4 bits + parité Lecture et écriture (usage peu
de poche Caractère Numéro deimpaire
codage courant)
Voie Standard BPI Type Personnag Régime Commenta
es ires
Dispositions courantes des voies
Les "bits d'horloge" sont communs à toutes les pistes. Les bits d'horloge se trouvent aux deux extrémités de chaque
piste. Les bits d'horloge sont de courtes chaînes de zéros destinées à donner aux lecteurs de cartes à horloge
automatique la possibilité d'établir la vitesse de balayage et de définir la durée de la cellule de bits. Dans notre
application, le microprocesseur examinera les périodes de bits d'horloge comme première étape du décodage des
données binaires.

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.

Voie 1 Disposition spécifique

zeros | SS | FC | Primary Acct (19 caractères max) | Name (26 caractères max) | FS | other data | ES | LRC | zeros

Voie 2 - Disposition spécifique

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

Pistes 2 & 3 Jeu de caractères - BCD 4 bits avec parité impaire


Caractère P B4 B3 B2 B1 ASCII Caractère P B4 B3 B2 B1 ASCII
0 1 0 0 0 0 30 8 0 1 0 0 0 38
1 0 0 0 0 1 31 9 1 1 0 0 1 39
2 0 0 0 1 0 32 :(AS) 1 1 0 1 0 3A
3 1 0 0 1 1 33 ;(SS) 0 1 0 1 1 3B
4 0 0 1 0 0 34 < 1 1 1 0 0 3C
5 1 0 1 0 1 35 =(FS) 0 1 1 0 1 3D
6 1 0 1 1 0 36 > 0 1 1 1 0 3E
7 0 0 1 1 1 37 (ES) 1 1 1 1 1 3F
Pour convertir en valeur ASCII, ignorez le P (bit de parité) et ajoutez la valeur hexagonale de B[4:0] à 30
hex. Par exemple, pour le caractère ;, B + 30 = 3B

P = Bit de parité, FS = Séparateur de champs


généralement impair SS = AS = Séparateur de compte (voie 3 uniquement) OG = Graphique
Start Sentinel d'option
ES = End Sentinel
Informations sur le contact 1.00

Anadigm a le plaisir d'offrir à ses clients un


accès direct aux bureaux suivants :

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

Anadigm Inc. Tel : +1 480 545 6730


155 East Chilton Drive Fax : +1 480 545 2915
Suite 201
Chandler
AZ 85225-1115

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

Vous aimerez peut-être aussi