Vous êtes sur la page 1sur 9

Nota de

Aplicación del AN10E40


aplicación
Amplificador del cabezal de lectura006
de banda magnética
Introducción
De vez en cuando aparece una tecnología fácil de usar, robusta y que se adapta a muchas aplicaciones. Las bandas
magnéticas son una de estas tecnologías. El ejemplo obvio es la tarjeta de crédito. Pero hay muchos otros ejemplos:
billetes de avión en papel, tarjetas de clubes de compras, tarjetas de identificación de videoclubs, permisos de
conducir, tarjetas de débito de máquinas expendedoras, y la lista continúa.

Esta nota de aplicación describe brevemente cómo se puede utilizar una matriz analógica programable en campo
(FPAA) de Anadigm para construir un amplificador/decodificador de lectura de banda magnética completo y cómo se
puede interconectar fácilmente con un procesador host. La nota también describe las ventajas de la función analógica
programable frente a la fija en una aplicación de este tipo.

La tarjeta estándar
"Lo bonito de las normas es que hay muchas para elegir". Qué cierto. Hay montones de normas entre las que elegir a
la hora de hablar de tecnologías de banda magnética, y no me esforzaré en enumerarlas todas aquí. Baste decir que la
especificación a la que se hace referencia con más frecuencia es la ISO/IEC-7811. Me limitaré a resumir los aspectos
más destacados, teniendo en cuenta que estamos utilizando un cabezal de lectura y una carcasa diseñados para
aplicaciones de lectura de bandas magnéticas de tarjetas de plástico. Hay muchos proveedores de calidad de este
tipo, en este caso se utilizaron productos Magtek.

Para este debate, la figura de la izquierda representa el reverso de


una típica tarjeta de crédito de plástico. Con la banda magnética en
la parte superior como se muestra, la primera pista (superior) está
codificada en un formato establecido por la Asociación
Internacional de Transporte Aéreo, esta pista normalmente tiene su
nombre codificado.

La segunda pista (que es la que realmente funciona) tiene un


formato definido por la American Bankers Association. Contiene el
número de su tarjeta de crédito. El tercer formato de pista se
denomina THRIFT, y se pensó originalmente para su uso con
cajeros automáticos (ATM). A diferencia de las pistas de sólo
lectura 1 y 2, la pista THRIFT estaba pensada para aplicaciones de lectura y escritura. Esto nunca llegó a ponerse de
moda y la pista no se utiliza a menudo, excepto en aquellas aplicaciones en las que el requisito de volver a escribir
datos forma parte del diseño. Ejemplos típicos son las tarjetas de débito de fotocopiadoras y máquinas expendedoras.

Viendo la tarjeta como se muestra arriba, los datos se codifican de derecha a izquierda. La codificación comienza
siempre por el bit menos significativo. (El bit más a la derecha es el LSB del primer carácter de la banda.) La definición
para cada pista es diferente y se resume en la tabla siguiente.

Alfa - 6 Datos + 1 Paridad (impar) 210


BCD - 4 datos + 1 paridad (impar) 75
BCD - 4 datos + 1 paridad (impar) 210
Bits por carácter Brocas por
Tema 1 - IATA pulgada
Tema 2 - ABA
Pista 3 - Thrift
De Mag Stripe a ASCII Type...
Hay una serie de pasos necesarios para pasar de la señal del cabezal magnético de lectura a datos ASCII digeribles
por la mayoría de los procesadores. El siguiente diagrama muestra estos pasos de traducción a medida que nos
desplazamos de arriba a abajo.
La cabeza lectora pasa sobre la banda en esta dirección.

La banda magnética

SN21NS2SN2NS2SN ] NS ] SN ] NS ] SN2NS ] SN ] NS3Banda magnética

Señal de cabeza
de lectura

Conversión a F2F

4 Bits de reloj (ceros a la Inicio Sentencia


izquierda)
Para entender el proceso de conversión hay que saber cómo se almacenan los";" datos en la tarjeta. Imagine una larga
cadena de barras magnéticas, algunas tienen una unidad de longitud (y siempre se encuentran por parejas) y el resto
tienen dos unidades. Además, cada una de estas barras magnéticas está dispuesta de forma contraria al estado que
preferirían, de manera que el Norte siempre toca al Norte, y el Sur siempre toca al Sur. En estas zonas en las que los
polos afines están contiguos, se producen grandes concentraciones de líneas de flujo magnético.

La señal de la cabeza lectora


La banda magnética se pasa por el cabezal de lectura. Se inducirá una corriente al paso de cada una de estas
regiones de alta concentración de flujo. N-N inducirá una corriente en una dirección, y S-S inducirá una corriente en la
dirección opuesta. Resulta que la polaridad de la señal de la cabeza lectora no importa. Lo único relevante para la
conversión a una forma de onda F2F es el espaciado temporal de las transiciones.

F2F o Aiken Bifásico


Por ahora, dejaremos de lado la discusión sobre cómo crear la forma de onda F2F a partir de la señal de la cabeza
lectora y nos centraremos únicamente en qué es la codificación F2F. También conocida como Aiken Biphase, la
codificación F2F utiliza el espacio entre transiciones de flujo para codificar un bit. Una barra imantada de dos unidades
representa un Cero, y un par de barras de una unidad representa un Uno.

Dicho de otro modo, cada bit ocupa la misma longitud física en la banda. Un bit con una transición de flujo "extra" en
mitad de su longitud se denomina Uno. De nuevo, la polaridad de estas transiciones es arbitraria, es el espacio relativo
entre transiciones lo que significa un Uno o un Cero.

Conversión de datos de tarjeta a ASCII


Cada pista comienza y termina con "bits de reloj". Los bits de reloj no son más que una cadena de ceros. Resulta que
el paso manual de una tarjeta es un evento de velocidad bastante constante. Así, un periodo de bits desde el principio
de un barrido es muy parecido a un periodo de bits al final de un barrido. Los "bits de reloj" se examinan en función de
su longitud (el periodo de bit) y marcan el ritmo del barrido concreto. Se reconoce un Cero si el tiempo transcurrido
entre transiciones de flujo es próximo a un periodo de bit. Se reconoce un Uno si el tiempo transcurrido entre
transiciones de flujo se aproxima a la mitad de un periodo de bit.

Para los procesadores equipados con un periférico de temporizador, es posible conectar la salida del FPAA (que
oscilará entre 0 y 5 V durante el paso de una tarjeta) al pin de entrada del puerto de temporizador. Las interrupciones
se generarán con cada transición y el almacenamiento de los valores del temporizador en una matriz es todo lo que se
requiere de la rutina de servicio de interrupción. Un rápido postprocesado de la matriz de valores permite descifrar
fácilmente los unos y los ceros.

Para procesadores de menor coste, tendrás que conectar la salida de la FPAA a un pin de entrada de propósito
general del procesador. Una vez detectada la primera transición (normalmente como una interrupción), el procesador
tiene que dedicarse por completo a controlar el tiempo, sondear el pin de entrada a intervalos regulares y registrar
cuándo se producen las transiciones. También en este caso, el postprocesado de la matriz de marcas de tiempo
descifrará los Unos y los Ceros.
Tenga en cuenta que la tarjeta puede haber sido pasada al revés. Los programas informáticos permiten dar la vuelta a
los datos fácilmente.

Ahora que tiene una cadena de Unos y Ceros, necesita reconocer dónde empezaron los datos y cómo interpretarlos.
Para una introducción a esta parte del proceso, consulte la Adenda de esta nota.

Aplicación del AN10E40 como amplificador de cabeza de lectura magnética y generador F2F
Sólo se necesitan las etapas de ganancia G01 y los comparadores C02. El circuito que se muestra aquí es una
especie de "flip-flop S-R analógico". Los comparadores y sus vías de realimentación forman un circuito biestable. El
circuito se estabilizará sólo en dos estados.
+2.5 V Lógico Alto
[-100] [-100]
0V Celda IO -25 mV
IO Celda>0 V Lógico bajo
+2.5 V
1 celda -I IO Cell>
IO>
+1.25 V

IO CellK 0 V Célula
Leer I (VMR) IO
Cabeza -1.25 V

-2.5 V

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

Mirando el diagrama del circuito de la izquierda. Las tensiones se muestran en negrita y las ganancias del amplificador
entre corchetes. Los amplificadores se muestran con una burbuja en sus salidas sólo para servir como recordatorio
visual de que todos ellos son amplificadores inversores. Supongamos que no hay ninguna tarjeta presente y que todas
las tensiones de los nodos son las indicadas. (Un recordatorio: Todo el procesamiento de señales analógicas dentro
de la FPAA se realiza con respecto al Voltage Mid-Rail (VMR), y por convención esto se etiqueta como 0 V. VMR es en
realidad 2,5 V por encima de la tierra del chip... por lo que para el diagrama de arriba a la izquierda, un procesador
vería la salida de +2,5 V como +5 voltios (lógica alta) y una salida de -2,5 V como 0 voltios (lógica baja)).

Examina por un momento las tensiones de los nodos y verás que el circuito se encuentra en un estado estable. La
salida es un alto lógico.

Consideremos ahora lo que ocurre cuando se pasa una tarjeta por el cabezal de lectura. En el ejemplo mostrado arriba
a la derecha, un campo de flujo S-S pasó por encima de un hueco en la cabeza lectora. Esto indujo un pequeño pico
de señal negativa. Las etapas de entrada de alta ganancia convierten este pequeño pico en una señal de carril
completa. (Cualquier señal de entrada con una amplitud superior a 25 mV simplemente resultará en una señal
recortada como se muestra). Este pulso positivo presentado al terminal negativo del comparador superior hará que
cambie de estado como muestra la forma de onda de salida descendente. En el comparador inferior ocurre justo lo
contrario, ya que todo el circuito pasa a su otro estado estable. La salida es ahora una lógica baja.

La figura anterior es una imagen del circuito en acción. En este caso concreto, se conectó una cabeza lectora
directamente a un AN10E40. El trazo superior muestra la entrada bruta del cabezal de lectura... con ruido y todo. La
traza inferior muestra la señal de salida del circuito (una forma de onda lógica F2F de 0 - 5V). No se utilizó ningún otro
componente. No hay nada que hacer; es así de fácil con el analógico programable.
El circuito mostrado arriba consume sólo 9 de los 20 CAB disponibles en un AN10E40. De hecho, los dos
amplificadores en serie de la pata inferior del circuito no son realmente necesarios, siempre que el terminal negativo
del comparador inferior se conecte en su lugar a VMR, lo que reduce el consumo de CAB en dos. En un AN10E40 hay
espacio de sobra para un segundo canal de lectura.

Ventajas del uso de analógicos programables


El circuito descrito es bastante sencillo y, por supuesto, puede construirse con una veintena de componentes estándar.
¿Por qué analógico programable?

La respuesta obvia es el recuento de componentes. En esta aplicación no se utilizaron componentes adicionales de


ningún tipo. El cabezal de lectura se conectó directamente a la FPAA. Sin embargo, las ventajas reales no se hacen
evidentes hasta que se saca el circuito del laboratorio y se expone a la dura luz del mundo real.

En el mundo real, los lectores de banda de tarjetas de crédito construidos sin analógico programable no son todo lo
que deberían ser. Ha visto pruebas de ello tantas veces que probablemente se haya insensibilizado. Tómese un
momento y recuerde todas las técnicas de "mangoneo" del cajero que ha presenciado. El golpe "lento y deliberado". El
"golpe rápido". El golpe de "correr hacia atrás". La técnica de "pasarlo de un lado a otro y de un lado a otro" (una de
mis favoritas). El "limpia la tarjeta e inténtalo de nuevo". El "envuelva la tarjeta en una bolsa de plástico e inténtelo de
nuevo". La técnica de "prueba con el otro lector de tarjetas". Y luego, por supuesto, está el plan de contingencia
definitivo, en el que el cajero sostiene la tarjeta al trasluz justo para que los maltrechos números en relieve puedan ser
reconocidos y tecleados a mano (normalmente mientras comparte una mirada de asco contigo).

La suciedad, el desgaste, la temperatura y la exposición a campos magnéticos involuntarios conspiran para dificultar la
lectura de las tarjetas de banda magnética. Asimismo, la suciedad, el desgaste y la corrosión hacen que las cabezas
lectoras sean cada vez menos eficaces. Entonces, ¿cómo puede arreglar la situación el analógico programable? El
procesador host puede descargar una nueva configuración de circuito completa a un AN10E40 en menos de 125
microsegundos. Así, cuando un golpe falla, puedes ajustar la ganancia de los amplificadores de entrada en sólo una
fracción de segundo. De hecho, en un sistema cuidadosamente diseñado, ¡se pueden ajustar los amplificadores de
lectura durante los bits principales de sincronización! No será necesaria una segunda pasada.

El circuito también puede ajustarse para leer tarjetas con distinta coercitividad de banda magnética. Aunque
normalmente no es importante para las cabezas de lectura, el ajuste de las señales de accionamiento de las cabezas
de escritura es esencial para acomodar estas diferencias de coercitividad.

Estas son algunas de las ventajas de aplicar analógicos programables sólo en aplicaciones de tarjetas estándar. En
aplicaciones personalizadas, el uso de analógicos programables ofrece aún más ventajas. Para aplicaciones de alta
seguridad, la FPAA puede configurarse para manejar diferentes técnicas de codificación de datos, incluida la
generación y descodificación de tonos. Funciones de lectura y escritura y mucho más.
Anexo - Codificación de la pista de la tarjeta de crédito y normas de datos
La recuperación de datos de una simple banda magnética requiere muchos pasos. Hasta ahora hemos cubierto la
amplificación de la cabeza lectora, la generación de una forma de onda F2F y su interpretación en una cadena de unos
y ceros. El siguiente paso en el proceso de recuperación es convertir los datos binarios en datos de caracteres,
normalmente ASCII. Las reglas de interpretación de los datos varían según la pista que se lea.

Codificación de datos de pista y parámetros

1 IATA 210 Alfanumérico 79 6 bits + paridad impar Sólo lectura


2 ABA 75 BCD 40 4 bits + paridad Sólo lectura
3 Tienda 210 BCD 107 4 bits + paridad Lectura y escritura (uso poco común)
impar
Carácter Número de codificación
Vía Estándar Tipo BPI Personajes Esquem Comentari
a os
Trazados comunes
Los "bits de sincronización" son comunes a todas las pistas. Los bits de reloj se encuentran en ambos extremos de
cada pista. Los bits de sincronización son cadenas cortas de ceros destinadas a dar a los lectores de tarjetas con
sincronización automática la oportunidad de establecer la velocidad de barrido y fijar la duración de la celda de bits. En
nuestra aplicación, el microprocesador examinará los periodos de bits de sincronización como primer paso para
descodificar los datos binarios.

También son comunes a todas las pistas los caracteres Start Sentinel (SS), End Sentinel (ES) y Logitudnal Redundancy
Check (LRC). En la pista 1, los caracteres SS y ES son % y ?, respectivamente. En las pistas 2 y 3, los caracteres SS y
ES son ; y ?, respectivamente. Los separadores de campo (FS) son comunes a las pistas 1 y 2.

Si al principio no reconoce un Start Sentinel, lo más probable es que la tarjeta se haya pasado al revés. Tendrá que
ajustar su algoritmo de descodificación en consecuencia.

El LRC es la suma de todos losbits Bn anteriores de todos los caracteres anteriores de la banda (se ignora el
desbordamiento). El bit de paridad impar asociado a cada carácter sólo indicará un problema si hay un número impar
de bits (como 1) erróneos para ese carácter. Es poco probable que haya 2 errores de bit en un solo carácter, pero si los
hay, la comprobación de paridad impar no reconocerá el evento. La función del LRC es añadir una capa más de
comprobación de errores para el flujo de datos asociado a toda la pista.

Pista 1 Disposición específica

ceros | SS | FC | Cuenta principal (19 caracteres máx.) | Nombre (26 caracteres máx.) | FS | otros datos | ES | LRC |
ceros

Pista 2 Disposición específica

ceros | SS | Cuenta principal (19 caracteres máx.) | FS | otros datos | ES | LRC | ceros

Pista 3
Hay demasiados usos no estándar de la Pista 3 como para enumerarlos aquí. Baste decir que se trata en gran medida
de una vía abandonada y, en consecuencia, es donde la mayoría de los sistemas especializados o personalizados
codificarán los datos. La intención original era utilizar esta pista como una pista de Lectura/Escritura y realmente llevar
información encriptada sobre el saldo de tu cuenta bancaria aquí. Esto permitía a los cajeros automáticos no
conectados a la red dispensar dinero sin saber con certeza cuál era el saldo real en el momento de la retirada. El sector
bancario no tardó mucho en darse cuenta de que era mucho mejor conectar en red los cajeros automáticos y
abandonar la idea de datos dinámicos en la tarjeta. La pista 3 es ahora huérfana.
Pista 1 Juego de caracteres - Alfa de 6 bits con paridad impar
Carácter P B6 B5 B4 B3 B2 B1 ASCII Carácter P B6 B5 B4 B3 B2 B1 ASCII
Espaci 1 0 0 0 0 0 0 20 40
o
(sin 21 A 1 1 0 0 0 0 1 41
definir)
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
? 0 0 1 1 1 1 1 3F 5F
Para convertir al valor ASCII, ignore la P (bit de paridad) y sume el valor hexadecimal de B[6:0] a 20 hex. Por
ejemplo, para el carácter /, 0F + 20 = 2F

Pistas 2 y 3 Juego de caracteres - BCD de 4 bits con paridad impar


Carácter P B4 B3 B2 B1 ASCII Carácter 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 ? 1 1 1 1 1 3F
Para convertir al valor ASCII, ignore la P (bit de paridad) y añada el valor hexadecimal de B[4:0] a 30 hex.
Por ejemplo, para el carácter ;, B + 30 = 3B

P = Bit de paridad, FS = Separador de campos


normalmente impar SS = AS = Separador de cuentas (sólo pista 3) OG = Gráfico de opciones
Centinela de inicio
ES = Centinela final
Información de contacto 1.00

Anadigm se complace en ofrecer a sus clientes


acceso directo a las siguientes oficinas:

WEB
http://www.anadigm.com/

EE.UU.
Anadigm Inc. Teléfono: +1 408 996
21615 Stevens Creek Blvd 2091
Cupertino Fax: +1 408 996 2093
CA 95014

Anadigm Inc. Teléfono: +1 480 545


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

REINO UNIDO
Anadigm Ltd. Tel: +44 (0) 1270 531990
Casa Scott Fax: +44 (0) 1270 531999
Westmere Drive
Crewe
CW1 6ZG

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

Vous aimerez peut-être aussi