Vous êtes sur la page 1sur 8

Nota

Aplicarea AN10E40
aplicației 006
Amplificator cap de citire cu bandă magnetică
Introducere
Din când în când apare o tehnologie ușor de utilizat, robustă și adaptată la multe aplicații. Benzile magnetice de date
sunt o astfel de tehnologie. Exemplul evident este cardul de credit. Dar există multe alte exemple, inclusiv: bilete de
avion de hârtie, carduri de club de cumpărături, carduri de identitate ale magazinelor de închiriere video, permise de
conducere, carduri de debit ale automatelor și lista continuă.

Această notă de aplicație descrie pe scurt modul în care un Anadigm Field Programmable Analog Array (FPAA) poate fi
utilizat pentru a construi un amplificator / decodor complet de citire a benzii magnetice și cum poate fi ușor interfațat cu
un procesor gazdă. Nota descrie, de asemenea, beneficiile funcției fixe programabile a versetelor analogice într-o astfel
de aplicație.

Cardul standard
"Lucrul frumos despre standarde este că există atât de multe dintre care să alegi." Cât de adevărat. Există o mulțime
de standarde din care puteți alege atunci când discutați despre tehnologiile cu bandă magnetică și nu mă voi strădui să
le enumăr pe toate aici. Este suficient să spunem că specificația cea mai des menționată este ISO / IEC-7811. Voi
surprinde doar cele mai importante momente aici, înțelegând că folosim un cap de citire și o carcasă destinate
aplicațiilor de citire a benzii magnetice cu card de plastic. Există mulți furnizori de calitate ai acestora, în acest caz au
fost utilizate produse Magtek.

Pentru această discuție, figura din stânga reprezintă spatele unui


card de credit tipic din plastic. Cu banda magnetică deasupra, așa
cum se arată, prima pistă (de sus) este codificată într-un format
stabilit de Asociația Internațională de Transport Aerian, această
pistă are de obicei numele tău codificat pe ea.

A doua piesă (și acesta este adevăratul cal de povară al grupului)


este într-un format definit de Asociația Bancherilor Americani.
Acesta conține numărul cardului dvs. de credit. Al treilea format de
pistă se numește THRIFT și a fost inițial destinat utilizării cu
bancomate (ATM-uri). Spre deosebire de piesele doar în citire 1 și
2, pista THRIFT a fost destinată aplicațiilor de citire și scriere. Acest
lucru nu a prins niciodată cu adevărat și pista nu este adesea folosită, cu excepția acelor aplicații în care cerința de a
scrie date face parte din proiectare. Exemplele tipice includ cardurile de debit ale copiatoarelor și automatelor.

Vizualizarea cardului așa cum se arată mai sus, datele sunt codificate de la dreapta la stânga. Codificarea începe
întotdeauna cu bitul cel mai puțin semnificativ. (Partea cea mai dreaptă este LSB-ul primului caracter pentru dungă.)
Definiția pentru fiecare piesă este diferită și este rezumată în tabelul de mai jos.

Alfa - 6 Date + 1 Paritate (impar) 210


BCD - 4 Date + 1 Paritate (impar) 75
BCD - 4 Date + 1 Paritate (impar) 210
Biți pe caracter biți pe inch
Pista 1 - IATA
Pista 2 - ABA
Pista 3 -
Cumpătare
De la banda mag la tipul ASCII ...
Există o serie de pași necesari pentru a ajunge de la semnalul magnetic al capului de citire la datele ASCII digerabile
de majoritatea procesoarelor. Următoarea diagramă arată acești pași de traducere pe măsură ce trecem de sus în jos.
Capul de citire trece peste bandă în această direcție.

Banda magnetică

]SN21NS 2 SN 2NS2SN] NS ] SN ] NS ] SN2NS ] SN ] NS3 Bandă magnetică

Semnal de citire a
capului

Conversia la F2F

4 biți de blocare (zerouri Start Sentinal ";"


inițiale)
Înțelegerea procesului de conversie începe cu cunoașterea modului în care sunt stocate datele pe card. Imaginați-vă
un lanț lung de magneți de bare, unii au o lungime de o unitate (și se găsesc întotdeauna în perechi), restul au o
lungime de două unități. Mai mult, fiecare dintre acești magneți bară este aranjat contrar stării pe care ar prefera-o,
astfel încât nordul atinge întotdeauna nordul, iar sudul atinge întotdeauna sudul. În aceste zone în care polii
asemănători sunt învecinați, există concentrații mari de linii de flux magnetic.

Semnalul capului de citire


Banda magnetică este glisată a trecut capul citit. Un curent va fi indus pe măsură ce trece fiecare dintre aceste regiuni
cu concentrație mare de flux. N-N va induce un curent într-o direcție, iar S-S va induce un curent în direcția opusă.
După cum se dovedește, polaritatea semnalului capului de citire nu contează. Doar spațierea în timp a tranzițiilor este
relevantă pentru conversia într-o formă de undă F2F.

F2F sau Aiken Biphase


Pentru moment, vom amâna discuția despre cum să creăm forma de undă F2F din semnalul capului de citire și, în
schimb, ne vom concentra doar pe ceea ce este codificarea F2F. Cunoscută și sub numele de Aiken Biphase,
codificarea F2F utilizează spațiul dintre tranzițiile de flux pentru a codifica un pic. Un magnet cu două bare unitate
reprezintă un Zero, iar o pereche de bare unitate reprezintă un Unu.

Cu alte cuvinte, fiecare bit ocupă aceeași lungime fizică pe bandă. Un bit cu o tranziție de flux "extra" la mijlocul lungimii
sale se numește Unu. Din nou, polaritatea acestor tranziții este arbitrară, spațiul relativ dintre tranziții este cel care
semnifică un Unu sau un Zero.

Conversia de la datele cardului la ASCII


Fiecare piesă începe și se termină cu "biți de ceas". Biții de blocare nu sunt altceva decât un șir de zerouri. După cum
se dovedește, o glisare manuală a cardului este un eveniment de viteză destul de constant. Astfel, o perioadă de biți de
la începutul unei glisări este foarte apropiată de o perioadă de biți la sfârșitul unei glisări. "Bitii de ceas" sunt examinati
pentru lungime (perioada de biti) si stabilesc ritmul glisarii particulare. Un zero este recunoscut dacă timpul scurs între
tranzițiile de flux este aproape de o perioadă de biți. Unul este recunoscut dacă timpul scurs între tranzițiile de flux este
aproape de o jumătate de perioadă de biți.

Pentru procesoarele echipate cu un periferic cu temporizator, este posibilă conectarea ieșirii FPAA (care va comuta
între 0 și 5 V în timpul glisării cardului) la pinul de intrare al portului temporizatorului. Întreruperile vor fi generate cu
fiecare tranziție, iar stocarea valorilor temporizatorului într-o matrice este tot ceea ce este necesar pentru rutina
serviciului de întrerupere. Un pic rapid de postprocesare pe matricea de valori descifrează cu ușurință unu și zero.

Pentru procesoarele cu costuri mai mici, va trebui să conectați ieșirea FPAA la un pin de intrare de uz general de pe
procesor. Odată ce o primă tranziție este detectată (de obicei ca o întrerupere), procesorul trebuie să se dedice
complet urmăririi timpului, sondării pinului de intrare la intervale regulate și înregistrării când au loc tranzițiile. Din nou,
postprocesarea matricei de mărci de timp va descifra cele și zerourile.
Reține că este posibil ca respectivul card să fi fost glisat înapoi. Răsturnarea datelor este ușor de gestionat în software.

Acum că aveți un șir de unu și zero, trebuie să recunoașteți de unde au început datele și cum să le interpretați. Pentru
o introducere în această parte a procesului, consultați Anexa acestei note.

Aplicarea AN10E40 ca amplificator magnetic al capului de citire și generator F2F


Sunt necesare numai trepte de câștig G01 și comparatoare C02. Circuitul demonstrat aici este un fel de "flip-flop
analogic S-R". Comparatorii și căile lor de reacție formează un circuit bi-stabil. Circuitul se va stabiliza în doar două
stări.
+2,5 V Logică
[-100] [-100] înaltă
0V Celulă IO -25 mV
Celulă IO> 0 V Logică scăzută
+2,5 V
1 IO Cell> —I IO Cell>
+1,25 V

IO CellK 0 V Celula
Citi I (VMR) IO
Cap -1,25 V

-2,5 V

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

Privind diagrama circuitului din stânga. Tensiunile sunt afișate cu caractere aldine, iar câștigurile amplificatorului sunt
afișate între paranteze pătrate. Amplificatoarele sunt afișate cu o bulă pe ieșirile lor doar pentru a servi ca un memento
vizual că toate acestea sunt amplificatoare inversoare. Să presupunem că nu există niciun card prezent și că toate
tensiunile nodului sunt așa cum se arată. (Un memento: Toată procesarea semnalului analogic în FPAA se face în
raport cu Voltage Mid-Rail (VMR), iar prin convenție aceasta este etichetată ca 0 V. VMR este de fapt la 2,5 V
deasupra solului cipului ... deci pentru diagrama din stânga sus, un procesor ar vedea ieșirea de +2,5 V ca +5 volți
(logic ridicat) și o ieșire de -2,5 V ca 0 volți (logic scăzut).)

Examinați tensiunile nodului pentru un moment și veți vedea că circuitul este într-o stare stabilă. Rezultatul este un
nivel logic ridicat.

Acum, ia în considerare ce se întâmplă atunci când un card este glisat trecut capul de citire. Pentru exemplul din
dreapta sus, un câmp de flux S-S a trecut peste spațiul din capul de citire. Acest lucru a indus un mic semnal negativ
mergând spike. Treptele de intrare cu câștig ridicat transformă acest mic vârf într-un semnal feroviar complet. (Orice
semnal de intrare cu o amplitudine mai mare de 25 mV va avea ca rezultat pur și simplu un semnal întrerupt, așa cum
se arată.) Acest impuls pozitiv prezentat la terminalul negativ al comparatorului superior îl va determina să-și schimbe
starea, așa cum arată forma de undă de ieșire în scădere. Exact opusul se întâmplă pe comparatorul inferior, pe
măsură ce întregul circuit trece la cealaltă stare stabilă. Rezultatul este acum un scăzut logic.

Figura de mai sus este o imagine a circuitului în acțiune. În acest caz, un cap de citire a fost interfațat direct la un
AN10E40. Urma de sus arată intrarea brută a capului de citire... zgomot și toate. Urma inferioară arată semnalul de
ieșire al circuitului (o formă de undă logică F2F 0 - 5V). Nu au fost utilizate alte componente. Nimic; Este atât de ușor
cu analogul programabil.
Circuitul, așa cum s-a arătat mai sus, a consumat doar 9 din cele 20 de cabine disponibile într-un AN10E40. De fapt,
amplificatoarele din cele două serii din partea inferioară a circuitului nu sunt necesare, cu condiția ca terminalul negativ
al comparatorului inferior să fie conectat la VMR, ceea ce reduce consumul CAB cu două. Există o mulțime de spațiu
într-un AN10E40 pentru un al doilea canal de citire, cu spațiu liber.

Avantajele utilizării analogului programabil


Circuitul descris este suficient de simplu și poate fi, desigur, construit folosind aproximativ douăzeci de componente
standard. Deci, de ce analog programabil?

Răspunsul evident este numărul de componente. Nu au existat componente suplimentare de niciun fel utilizate în
această aplicație. Capul de citire a fost interfațat direct la FPAA. Cu toate acestea, avantajele reale nu devin evidente
până când nu scoateți circuitul din laborator și intrați în lumina dură a lumii reale.

În lumea reală, cititoarele de benzi pentru carduri de credit construite fără analog programabil nu sunt tot ceea ce ar
trebui să fie. Ați văzut dovezi ale acestui lucru de atât de multe ori încât probabil ați devenit amorțiți de el. Ia-ți un
moment și amintește-ți toate tehnicile de "glisare" ale casierului la care ai asistat. Glisarea "lentă și deliberată".
"Glisarea rapidă". Glisați "rulați-l înapoi". Tehnica "rulează-l înainte și înapoi și înainte și înapoi" (una dintre preferatele
mele personale). "Curățați cardul și încercați din nou, glisați". "Înfășurați cardul într-o pungă de plastic și încercați-l din
nou, glisați". Tehnica "încercați celălalt cititor de carduri". Și apoi, desigur, există planul final de urgență în care casierul
ține cardul la lumină exact cum trebuie, astfel încât numerele ridicate prost uzate să poată fi recunoscute și tastate
manual (de obicei în timp ce vă împărtășesc o privire dezgustată).

Murdăria, uzura, temperatura și expunerea la câmpuri magnetice neintenționate conspiră pentru a face cardurile cu
bandă magnetică dificil de citit. De asemenea, murdăria, uzura și coroziunea lucrează pentru a face capetele de citire
din ce în ce mai puțin eficiente. Deci, cum poate analogul programabil să remedieze situația? Procesorul gazdă poate
descărca o configurație complet nouă a circuitului pe un AN10E40 în mai puțin de 125 microsecunde. Astfel, atunci
când o glisare eșuează, puteți ajusta câștigul amplificatoarelor de intrare în doar o fracțiune de secundă. De fapt, într-
un sistem proiectat cu atenție, puteți regla amplificatoarele de citire în timpul biților de ceas principali! O a doua glisare
nu va fi necesară.

Circuitul poate fi, de asemenea, ajustat pentru carduri de citire cu coercivitate diferită a benzii magnetice. Deși, de
obicei, nu este important pentru capetele de citire, reglarea semnalelor de acționare a capului de scriere este esențială
pentru a se adapta unor astfel de diferențe de coercivitate.

Acestea sunt câteva avantaje ale aplicării analogice programabile doar în aplicațiile standard de carduri. În aplicațiile
personalizate, există și mai multe avantaje în utilizarea analogică programabilă. Pentru aplicații de înaltă securitate,
FPAA poate fi configurat pentru a gestiona diferite tehnici de codificare a datelor, inclusiv generarea tonurilor și
decodarea. Funcții de citire și scriere și multe altele.
Addendum - Standarde de codificare a pistelor și date pentru carduri de credit
Există o mulțime de pași implicați în recuperarea datelor de pe o bandă magnetică simplă. Până acum am acoperit
amplificarea capului de citire, generarea unei forme de undă F2F și interpretarea acesteia într-un șir de unu și zero.
Următorul pas în procesul de recuperare este de a converti datele binare în date de caractere, de obicei ASCII. Regulile
pentru interpretarea datelor variază în funcție de pista pe care o citiți.

Urmăriți codificarea datelor și parametrii

1 IATA 210 Alfanumeric 79 6 biți + paritate Numai în citire


2 ABA 75 BCD 40 4 biți +impară
paritate Numai în citire
3 Cumpăta 210 BCD 107 4 biți + paritate Citire și scriere (utilizare neobișnuită)
re Numărul de caractere alimpară
codificării
Urmăriți tipul BPI standard Caractere Schemă Comentarii
Configurații comune ale liniilor
Comune fiecărei piese sunt "biții de ceas". Bitii de blocare se gasesc la ambele capete ale fiecarei piste. Biții de blocare
sunt șiruri scurte de zerouri destinate să ofere cititoarelor de carduri cu ceas automat șansa de a stabili viteza de glisare
și de a seta o durată de timp a celulei de biți. În aplicația noastră, microprocesorul va examina perioadele de biți de ceas
ca prim pas în decodarea datelor binare.

De asemenea, comune fiecărei piese sunt caracterele Start Sentinel (SS), End Sentinel (ES) și Logitudnal Redundancy
Check (LRC). Pe pista 1, caracterele SS și ES sunt % și, respectiv, ?. Pe pistele 2 și 3, caracterele SS și ES sunt ; și,
respectiv, ?. Separatoarele de câmp (FS) sunt comune pistelor 1 și 2.

Dacă la început nu recunoașteți un Start Sentinel, atunci este posibil ca cardul să fi fost glisat înapoi. Va trebui să
ajustați algoritmul de decodare în consecință.

LRC este suma tuturor Bn biților anteriori pentru toate caracterele anterioare de pe bandă (depășirea este ignorată). Bitul
par impar asociat fiecărui caracter va semnala doar o problemă: un număr impar de biți (cum ar fi 1) au fost în eroare
pentru acel caracter. Este puțin probabil să existe erori de 2 biți într-un singur caracter, dar dacă există, verificarea
parității ciudate nu va recunoaște evenimentul. Sarcina LRC este apoi de a adăuga încă un strat de verificare a erorilor
pentru fluxul de date asociat cu întreaga pistă.

Piesa 1 Aspect specific

zerouri | SS | FC | Cont principal (maximum 19 caractere) | Nume (maximum 26 de caractere) | FS | Alte date | ES | LRC
| Zerouri

Aspectul specific piesei 2

zerouri | SS | Cont principal (maximum 19 caractere) | FS | Alte date | ES | LRC | Zerouri

Pista 3
Există prea multe utilizări non-standard ale pistei 3 pentru a le enumera aici. Este suficient să spunem că este în mare
parte o pistă abandonată și, prin urmare, este locul în care majoritatea sistemelor specializate sau personalizate vor
codifica datele. Intenția inițială a fost de a utiliza această piesă ca o piesă de citire / scriere și de a transporta de fapt
informații criptate despre soldul contului dvs. bancar aici. Acest lucru a permis bancomatelor fără rețea să distribuie bani
fără să știe cu adevărat sigur care era soldul real în momentul retragerii. Nu a durat foarte mult pentru ca industria
bancară să-și dea seama că este mult mai bine să conectați împreună bancomatele și să abandonați ideea datelor
dinamice pe cardul ATM. Pista 3 este acum orfană.
Set de caractere Track 1 - Alfa pe 6 biți cu paritate impară
Caracter P B6 B5 B4 B3 B2 B1 ASCII Caracter P B6 B5 B4 B3 B2 B1 ASCII
Spațiu 1 0 0 0 0 0 0 20 40
(nedefinit) 21 Un 1 1 0 0 0 0 1 41
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 Eu 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
Pentru a converti la valoarea ASCII, ignorați P (bitul de paritate) și adăugați valoarea hexazecimală a lui
B[6:0] la 20 hex. De exemplu, pentru caracterul /, 0F + 20 = 2F

Piese Set de caractere 2 și 3 - BCD pe 4 biți cu paritate impară


Caracter P B4 B3 B2 B1 ASCII Caracter 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
Pentru a converti la valoarea ASCII, ignorați P (bitul de paritate) și adăugați valoarea hexazecimală B[4:0]
la 30 hex. De exemplu, pentru ; caracter, B + 30 = 3B

P = Parity Bit, de obicei FS = Separator de câmp


impar SS = Start Sentinel AS = Separator de cont (numai pista 3) OG = Grafic de opțiuni
ES = santinelă finală
Informații de contact 1.00

Anadigm are plăcerea de a oferi clienților noștri


acces direct la următoarele birouri:

WEB
http://www.anadigm.com/

SUA
Anadigm Inc. Telefon: +1 408 996
21615 Stevens Creek Blvd 2091
Cupertino Telefax: +1 408 996
CA 95014 2093

Anadigm Inc. Telefon: +1 480 545


155 East Chilton Drive 6730
Suită 201 Telefax: +1 480 545
Chandler 2915
AZ 85225-1115

Regatul Unit
Anadigm Ltd. Telefon: +44 (0) 1270
Casa Scott 531990 Fax: +44 (0) 1270
Westmere Drive 531999
Crewe
CW1 6ZG

GERMANIA
Anadigm Ltd.
Telefon: +49 (0) 8142
Gottlieb-Daimler Str. 6
4485830 Fax: +49 (0) 8142
82140 Olching
4485840

Vous aimerez peut-être aussi