Académique Documents
Professionnel Documents
Culture Documents
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.
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.
A tarja magnética
Sinal de Cabeça
de Leitura
Convertendo para
F2F
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.
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.
IO CellK 0 V Célula
Ler I (VMR) de E/S
Cabeça -1,25 V
-2,5 V
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.
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.
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.
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
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
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
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