Vous êtes sur la page 1sur 9

Nota do

Aplicação do AN10E40
aplicativo
006
Amplificador de cabeça de leitura de banda magnética
Introdução
De vez em quando surge uma tecnologia fácil de usar, robusta e que se adapta a muitas aplicações. As tarjas
magnéticas são uma dessas tecnologias. O exemplo óbvio é o cartão de crédito. Mas há muitos outros exemplos,
incluindo: bilhetes de avião em papel, cartões de clube de compras, cartões de identificação de locadora de vídeo,
carteiras de motorista, cartões de débito de máquinas de venda automática, e a lista continua.

Esta nota de aplicação descreve brevemente como um Anadigm Field Programmable Analog Array (FPAA) pode ser
usado para construir um amplificador/decodificador de leitura de banda magnética completo e como ele pode ser
facilmente interligado a um processador host. A nota também descreve os benefícios da função fixa de versos
analógicos programáveis em tal aplicação.

O Cartão Standard
"O bonito dos padrões é que há muitos para escolher." Que verdade. Há muitos padrões para escolher quando se
discute tecnologias de tarja magnética, e não vou me esforçar para enumerá-los todos aqui. Basta dizer que a
especificação mais frequentemente referenciada é ISO/IEC-7811. Vou apenas capturar os destaques aqui com o
entendimento de que estamos usando uma cabeça de leitura e caixa destinadas a aplicações de leitura de tarja
magnética de cartão plástico. Existem muitos fornecedores de qualidade de tal, neste caso os produtos Magtek foram
utilizados.

Para esta discussão, a figura à esquerda representa o verso de um


típico cartão de crédito de plástico. Com a tarja magnética no topo
como mostrado, a primeira faixa (superior) é codificada em um
formato estabelecido pela Associação Internacional de Transporte
Aéreo, esta faixa geralmente tem seu nome codificado nela.

A segunda faixa (e esta é o verdadeiro cavalo de batalha do grupo)


está em um formato definido pela American Bankers Association.
Ele contém o número do seu cartão de crédito. O terceiro formato
de faixa é chamado de THRIFT, e foi originalmente destinado ao
uso com caixas automáticos (ATMs). Ao contrário das faixas
somente leitura 1 e 2, a trilha THRIFT foi projetada para aplicativos
de leitura e gravação. Isso nunca pegou de verdade e a faixa não é usada com frequência, exceto naqueles aplicativos
em que a exigência de gravar dados de volta faz parte do projeto. Exemplos típicos incluem a máquina de cópia e os
cartões de débito da máquina de venda automática.

Visualizando o cartão como mostrado acima, os dados são codificados da direita para a esquerda. A codificação
sempre começa com o bit menos significativo. (O bit mais à direita é o LSB do primeiro caractere para a listra.) A
definição para cada faixa é diferente e está resumida na tabela abaixo.

Alpha - 6 Dados + 1 Paridade 210


(ímpar)
BCD - 4 Dados + 1 Paridade 75
BCD - 4 Dados + 1 Paridade 210
(ímpar) Bits por caractere Bits por
Faixa 1 - IATA polegada
Trilha 2 - ABA
Faixa 3 -
Thrift
De Mag Stripe a ASCII Type...
Há uma série de etapas necessárias para obter do sinal da cabeça de leitura magnética para os dados ASCII
digeríveis pela maioria dos processadores. O diagrama a seguir mostra essas etapas de tradução à medida que
passamos de cima para baixo.
A cabeça de leitura passa por cima da faixa nessa direção.

A tarja magnética

]SN21NS 2 SN 2NS2SN] NS ] SN ] NS ] SN 2NS ] SN ] NS3 Banda Magnética

Sinal de Cabeça
de Leitura

Convertendo para
F2F

4 Clocking Bits (zeros à Iniciar Sentinal


esquerda)
Entender o processo de conversão começa com saber como os dados são ";" armazenados no cartão. Imagine uma
longa cadeia de ímãs de barra, alguns têm uma unidade de comprimento (e sempre encontrados em pares) todos os
demais têm duas unidades de comprimento. Além disso, cada um desses ímãs de barra é disposto de forma contrária
ao estado que eles prefeririam, de modo que o Norte sempre toca o Norte, e o Sul sempre toca o Sul. Nessas áreas
onde polos semelhantes são encostados, há grandes concentrações de linhas de fluxo magnético.

O sinal da cabeça de leitura


A tarja magnética é passada pela cabeça de leitura. Uma corrente será induzida à medida que cada uma dessas
regiões de alta concentração de fluxo passar. N-N induzirá uma corrente em uma direção, e S-S induzirá uma corrente
na direção oposta. Como se vê, a polaridade do sinal da cabeça de leitura não importa. É apenas o espaçamento no
tempo das transições que é relevante para converter para uma forma de onda F2F.

F2F ou Aiken Bifásico


Por enquanto, vamos adiar a discussão sobre como criar a forma de onda F2F a partir do sinal da cabeça de leitura e,
em vez disso, nos concentraremos apenas no que é a codificação F2F. Também conhecida como Aiken Biphase, a
codificação F2F usa o espaço entre as transições de fluxo para codificar um pouco. Um ímã de barra de duas
unidades representa um Zero, e um par de barras de uma unidade representa um Um.

Dito de outra forma, cada bit ocupa o mesmo comprimento físico na listra. Um pouco com uma transição de fluxo
"extra" no meio de seu comprimento é chamado de Um. Novamente, a polaridade dessas transições é arbitrária, é o
espaço relativo entre as transições que significa um Um ou um Zero.

Convertendo de dados de cartão para ASCII


Cada faixa começa e termina com "clocking bits". Os bits de clock nada mais são do que uma sequência de zeros.
Como se vê, um deslizamento manual do cartão é um evento de velocidade bastante constante. Assim, um pequeno
período desde o início de um deslizamento é muito próximo de um período de pouco no final de um deslize. Os "bits
de clocking" são examinados quanto ao comprimento (o período de bits) e definem o ritmo do gesto de percorrer em
particular. Um Zero é reconhecido se o tempo decorrido entre as transições de fluxo for próximo a um período de bits.
Um Um é reconhecido se o tempo decorrido entre as transições de fluxo é próximo de meio período de bits.

Para processadores equipados com um periférico de temporizador, é possível conectar a saída FPAA (que estará
alternando entre 0 e 5 V durante um deslize de cartão) ao pino de entrada da porta do temporizador. As interrupções
serão geradas a cada transição e armazenar os valores de timer em uma matriz é tudo o que é necessário para a
rotina de serviço de interrupção. Um rápido pós-processamento na matriz de valores decifra facilmente os Uns e
Zeros.

Para processadores de custo mais baixo, você terá que conectar a saída FPAA a um pino de entrada de uso geral no
processador. Uma vez que uma primeira transição é detectada (geralmente como uma interrupção), o processador
então tem que se dedicar completamente a manter o controle do tempo, sondar o pino de entrada em intervalos
regulares e gravar quando as transições ocorrem. Aqui, novamente, o pós-processamento da matriz de carimbos de
data/hora decifrará os Uns e os Zeros.
Lembre-se de que o cartão pode ter sido deslizado para trás. Inverter os dados é facilmente manipulado no software.

Agora que você tem uma cadeia de caracteres de Uns e Zeros, precisa reconhecer onde os dados começaram e como
interpretá-los. Para uma introdução a esta parte do processo, consulte o Adendo desta nota.

Aplicando o AN10E40 como amplificador de cabeça de leitura magnética e gerador F2F


Apenas os estágios de ganho G01 e os comparadores C02 são necessários. O circuito demonstrado aqui é uma
espécie de "flip-flop S-R analógico". Os comparadores e seus caminhos de feedback formam um circuito bi-estável. O
circuito vai se estabilizar em apenas dois estados.
+2,5 V Alta lógica
[-100] [-100]
0V Célula IO -25 mV
Célula IO> 0 V Lógica Baixa
+2,5 V
1º Célula —Eu Célula
de E/S> de E/S>
+1,25 V

IO CellK 0 V Célula
Ler I (VMR) de E/S
Cabeça -1,25 V

-2,5 V

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

Olhando para o diagrama do circuito à esquerda. As tensões são mostradas em negrito, e os ganhos do amplificador
são mostrados entre colchetes. Os amplificadores são mostrados com uma bolha em suas saídas apenas para servir
como um lembrete visual de que todos estes são amplificadores invertedores. Suponha que não há nenhuma placa
presente e que todas as tensões do nó são como mostrado. (Um lembrete: Todo o processamento de sinal analógico
dentro do FPAA é feito com relação ao Voltage Mid-Rail (VMR), e por convenção isso é rotulado como 0 V. VMR é na
verdade 2,5 V acima do solo do chip... assim, para o diagrama esquerdo acima, um processador veria a saída de +2,5
V como +5 volts (lógica alta) e uma saída de -2,5 V como 0 volts (lógica baixa).)

Examine as tensões do nó por um momento e você verá que o circuito está em um estado estável. A saída é uma
lógica alta.

Agora considere o que acontece quando um cartão é passado pela cabeça de leitura. Para o exemplo mostrado acima
à direita, um campo de fluxo S-S passou por cima da lacuna na cabeça de leitura. Isso induziu um pequeno sinal
negativo indo para o pico. Os estágios de entrada de alto ganho convertem esse pequeno pico em um sinal de trilho
completo. (Qualquer sinal de entrada com uma amplitude superior a 25 mV resultará simplesmente num sinal cortado,
como mostrado.) Este pulso positivo apresentado ao terminal negativo do comparador superior fará com que ele mude
de estado como mostrado pela forma de onda de saída em queda. Exatamente o oposto está acontecendo no
comparador inferior à medida que todo o circuito faz a transição para seu outro estado estável. A saída agora é uma
lógica baixa.

A figura acima é uma foto do circuito em ação. Neste caso em particular, uma cabeça de leitura foi interfaceada
diretamente com um AN10E40. O rastreamento superior mostra a entrada bruta da cabeça de leitura... barulho e tudo.
O traço inferior mostra o sinal de saída do circuito (uma forma de onda lógica F2F de 0 - 5V). Nenhum outro
componente foi utilizado. Nada disso; é tão fácil com analógico programável.
O circuito como mostrado acima consumiu apenas 9 dos 20 CAB's disponíveis dentro de um AN10E40. Na verdade,
os dois amplificadores de série na perna inferior do circuito realmente não são necessários, desde que o terminal
negativo do comparador inferior seja conectado ao VMR, e isso reduz o consumo de CAB em dois. Há muito espaço
em um AN10E40 para um segundo canal de leitura com espaço de sobra.

Benefícios do uso do analógico programável


O circuito descrito é bastante simples e pode, é claro, ser construído usando cerca de vinte componentes padrão.
Então, por que analógico programável?

A resposta óbvia é a contagem de componentes. Não foram utilizados componentes extras de qualquer tipo nesta
aplicação. A cabeça de leitura foi interligada diretamente à FPAA. No entanto, as vantagens reais não se tornam
óbvias até que você tire o circuito do laboratório e entre na luz dura do mundo real.

No mundo real, leitores de tarja de cartão de crédito construídos sem analógico programável não são tudo o que
deveriam ser. Você já viu evidências disso tantas vezes que provavelmente ficou entorpecido com isso. Reserve um
momento e lembre-se de todas as técnicas de "furto" do caixa que você testemunhou. O deslize "lento e deliberado". O
"furto rápido". O "correr para trás" desliza. A técnica "corra para frente e para trás e para frente e para trás" (uma das
minhas favoritas). O "limpe o cartão e tente novamente deslizar". O "embrulhe o cartão em um saco plástico e tente
novamente deslizar". A técnica "experimente o outro leitor de cartões". E depois, é claro, há o plano de contingência
final, onde o caixa segura o cartão até a luz para que os números levantados mal desgastados possam ser
reconhecidos e digitados à mão (geralmente enquanto compartilha um olhar revoltado com você).

Sujeira, desgaste, temperatura e exposição a campos magnéticos não intencionais conspiram para tornar os cartões
de tarja magnética difíceis de ler. Da mesma forma, a sujeira, o desgaste e a corrosão trabalham para tornar as
cabeças de leitura cada vez menos eficientes. Então, como o analógico programável pode corrigir a situação? O
processador host pode baixar uma nova configuração de circuito completa para um AN10E40 em menos de 125
microssegundos. Assim, quando um deslize falha, você pode ajustar o ganho dos amplificadores de entrada em
apenas uma fração de segundo. Na verdade, em um sistema cuidadosamente projetado, você pode ajustar os
amplificadores de leitura durante os principais bits de clocking! Um segundo deslize não será necessário.

O circuito também pode ser ajustado para cartões de leitura com diferentes coercividades de tarja magnética. Embora
geralmente não seja importante para cabeças de leitura, ajustar os sinais de acionamento da cabeça de gravação é
essencial para acomodar essas diferenças de coercividade.

Estas são algumas das vantagens de aplicar analógico programável apenas em aplicações de cartão padrão. Em
aplicações personalizadas, há ainda mais vantagens em usar analógico programável. Para aplicações de alta
segurança, o FPAA pode ser configurado para lidar com diferentes técnicas de codificação de dados, incluindo
geração e decodificação de tons. Funções de leitura e escrita e muito mais.
Adendo - Codificação de Rastreamento de Cartão de Crédito e Padrões de Dados
Há muitas etapas envolvidas na recuperação de dados de uma simples tarja magnética. Até agora, cobrimos a
amplificação da cabeça de leitura, a geração de uma forma de onda F2F e sua interpretação em uma sequência de uns
e zeros. A próxima etapa no processo de recuperação é converter os dados binários em dados de caracteres,
geralmente ASCII. As regras para interpretar os dados variam com a faixa que você está lendo.

Controlar codificação de dados e parâmetros

1 IATA 210 Alfanumérico 79 6 bits + paridade Somente leitura


2 ABA 75 BCD 40 4 bits +ímpar
paridade Somente leitura
3 Economi 210 BCD 107 4 bits + paridade Read & Write (uso incomum)
a Número de caractere da ímpar
codificação
Rastrear Tipo BPI Padrão Caracteres Esquem Comentári
a os
Layouts de faixa comuns
Comum a todas as faixas são os "clocking bits". Bits de clock são encontrados em ambas as extremidades de cada
faixa. Os bits de clock são uma sequência curta de zeros destinados a dar aos leitores de cartões de auto-clock a
chance de estabelecer a velocidade de deslizamento e definir uma duração de tempo de célula de bits. Em nosso
aplicativo, o microprocessador examinará os períodos de bits de clock como um primeiro passo na decodificação dos
dados binários.

Também comuns a todas as faixas são os caracteres Start Sentinel (SS), End Sentinel (ES) e Logitudnal Redundancy
Check (LRC). Na Faixa 1, os caracteres SS e ES são % e ?, respectivamente. Nas faixas 2 e 3, os caracteres SS e ES
são ; e ?, respectivamente. Os Separadores de Campo (FS) são comuns às Faixas 1 e 2.

Se, no início, você não reconhecer um Start Sentinel, é provável que o cartão tenha sido deslizado para trás. Você terá
que ajustar seu algoritmo de decodificação de acordo.

O LRC é a soma de todos os bits Bn anteriores para todos os caracteres anteriores na faixa (estouro é ignorado). O bit
de paridade ímpar associado a cada caractere sinalizará apenas um problema: um número ímpar de bits (como 1)
estava em erro para esse caractere. É improvável que haja erros de 2 bits em um único caractere, mas se houver, a
verificação de paridade ímpar não reconhecerá o evento. O trabalho do LRC, então, é adicionar mais uma camada de
verificação de erros para o fluxo de dados associado a toda a trilha.

Layout específico da faixa 1

zeros | SS | FC | Acct primário (máximo de 19 caracteres) | Nome (máximo de 26 caracteres) | O FS | Outros Dados |
ES | LRC - Brasil | Zeros

Layout específico da faixa 2

zeros | SS | Acct primário (máximo de 19 caracteres) | O FS | Outros Dados | ES | LRC - Brasil | Zeros

Trilha 3
Há muitos usos não padrão da Faixa 3 para enumerar aqui. Basta dizer que é em grande parte uma trilha abandonada
e, consequentemente, é onde a maioria dos sistemas especializados ou personalizados codificará dados. A intenção
original era usar essa faixa como uma faixa de leitura/gravação e realmente carregar informações criptografadas sobre
o saldo da sua conta bancária aqui. Isso permitiu que caixas automáticos sem rede distribuíssem dinheiro sem saber ao
certo qual era o seu saldo real no momento do saque. Não demorou muito para o setor bancário perceber que é muito
melhor conectar caixas eletrônicos e abandonar a ideia de dados dinâmicos em seu cartão de caixa eletrônico. A faixa
3 agora está órfã.
Conjunto de Caracteres da Faixa 1 - Alfa de 6 Bits com Paridade Ímpar
Personage P B6 B5 B4 B3 B2 B1 ASCII Personage P B6 B5 B4 B3 B2 B1 ASCII
m Espaço 1 0 0 0 0 0 0 20 m 40
(indefinido 21 Um 1 1 0 0 0 0 1 41
)
22 B 1 1 0 0 0 1 0 42
(GO) 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
2º K 1 1 0 1 0 1 1 4º B
2º L 0 1 0 1 1 0 0 4º
- 0 0 0 1 1 0 1 2D M 1 1 0 1 1 0 1 4D
. 0 0 0 1 1 1 0 2º N 1 1 0 1 1 1 0 4º
/ 1 0 0 1 1 1 1 2º 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
3º 5º B
3º 5º
= 1 0 1 1 1 0 1 .3D 5D
3º ^(FS) 0 1 1 1 1 1 0 5º
? (ES) 0 0 1 1 1 1 1 3F 5º
Para converter para o valor ASCII, ignore o P (bit de paridade) e adicione o valor hexadecimal de B[6:0] a 20
hex. Por exemplo, para o caractere /, 0F + 20 = 2F

Faixas 2 & 3 Conjunto de caracteres - 4 bits BCD com paridade ímpar


Personage P B4 B3 B2 B1 ASCII Personage P B4 B3 B2 B1 ASCII
m 0 1 0 0 0 0 30 m8 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 3º
4 0 0 1 0 0 34 < 1 1 1 0 0 3º
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 3º
7 0 0 1 1 1 37 ? (ES) 1 1 1 1 1 3F
Para converter para o valor ASCII, ignore o P (bit de paridade) e adicione o valor hexadecimal de B[4:0] a
30 hex. Por exemplo, para o ; caractere, B + 30 = 3B

P = Parity Bit, geralmente FS = Separador de Campo


SS ímpar = Start Sentinel AS = Separador de Conta (Somente Faixa 3) OG = Gráfico de Opção
ES = Sentinela Final
Informações de Contato 1.00

A Anadigm tem o prazer de oferecer aos


nossos clientes acesso direto aos seguintes
escritórios:

TEIA
http://www.anadigm.com/

EUA
Anadigm Inc. Telefone: : +1 408 996
21615 Stevens Creek Blvd 2091
Cupertino Telefone: +1 408 996
CA 95014 2093

Anadigm Inc. Telefone: : +1 480 545


155 East Chilton Drive 6730
Suíte 201 Telefone: +1 480 545
Chandler 2915
AZ 85225-1115

Reino Unido
Anadigm Ltda Telefone: : +44 (0) 1270
Casa Scott 531990 Fax: +44 (0) 1270
Unidade Westmere 531999
Crewe
CW1 6ZG

ALEMANHA
Anadigm Ltda
Telefone: : +49 (0) 8142
Gottlieb-Daimler Str. 6,
4485830 Fax: +49 (0) 8142
82140 Olching
4485840

Vous aimerez peut-être aussi