Documente Academic
Documente Profesional
Documente Cultură
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.
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.
Banda magnetică
Semnal de citire a
capului
Conversia la F2F
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.
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.
IO CellK 0 V Celula
Citi I (VMR) IO
Cap -1,25 V
-2,5 V
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.
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.
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ă.
zerouri | SS | FC | Cont principal (maximum 19 caractere) | Nume (maximum 26 de 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
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
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