14
Leitor RFID por Roberto Alcântara - Última modificação 18/10/2008 17:42 Cartões RFID são normalmente usados para controle de acesso e tickets de ônibus e metrôs. Eles são convenientes porque não precisam de contato direto para transferir informações de/para o cartão. Como estes cartões são alimentados pelos próprios leitores, dispensam o uso de baterias que precisariam ser recarregadas. Para os meus experimentos estou usando catrões da HID ISProx. Estes cartões são os mais simples de toda a linha de cartões RFID, que somente armazenam um número de série e não usam criptografia. A frequência da portadora é de 125kHz. O primeiro passo é descobrir como desenvolver um leitor simples. Nós sabemos que o cartões RFID é alimentado pelo campo magnético emitido pelo leitos. As tags ¹ RFID transferem informação de volta ao leitor consumindo este campo magnético, que é detectado pelo leitor como uma variação no campo. ¹ São chamados de " tags " RFID todos os elementos que armazenam informações e são móveis, como o cartão, neste caso específico.

Leitor RFID

Embed Size (px)

DESCRIPTION

Fabricação de RFID passo a passo

Citation preview

Leitor RFIDpor Roberto Alcntara - ltima modificao 18/10/2008 17:42 Cartes RFID so normalmente usados para controle de acesso e tickets de nibus e metrs. Eles so convenientes porque no precisam de contato direto para transferir informaes de/para o carto. Como estes cartes so alimentados pelos prprios leitores, dispensam o uso de baterias que precisariam ser recarregadas.

Para os meus experimentos estou usando catres da HID ISProx. Estes cartes so os mais simples de toda a linha de cartes RFID, que somente armazenam um nmero de srie e no usam criptografia. A frequncia da portadora de 125kHz.

O primeiro passo descobrir como desenvolver um leitor simples. Ns sabemos que o cartes RFID alimentado pelo campo magntico emitido pelo leitos. As tags RFID transferem informao de volta ao leitor consumindo este campo magntico, que detectado pelo leitor como uma variao no campo. So chamados de "tags" RFID todos os elementos que armazenam informaes e so mveis, como o carto, neste caso especfico.

O projeto mais comum de um leitor RFID faz uso de um circuito ressonante srie. Ele consiste de um indutorsimples e um capacitor, excitados por uma fonte de tenso de baixa impedncia. Se o Q do circuito for alto o suficiente, a tenso no ponto de amostragem (Vsample) vai exceder a tenso de alimentao. Quando o RFID alimentado por este campo magntico o Q do circuito cai. O resultado uma pequena alterao na tenso de amostragem (Vsample no circuito mostrado).

Eu criei um leitor simples com componentes encontrados em minha sucata. Usando um gerador de funo como fonte de sinal e um osciloscpio no ponto de amostragem, eu pude sintonizar a frequncia at encontrar o ponto ressonante do circuito. Eu continuei substituindo os capacitores neste circuito at encontrar a frequncia que eu estava procurando. O clculo da frequncia este:

Por alguma razo eu me confundi e iniciei o projeto tendo em mente a frequncia de 150kHz ao invs de 125kHz. As tags RFID respondem bem a uma frequncia mais alta, ento eu mantive assim para evitar voltar a trs e redesenhar todo o circuito. :-)Com um ajuste simples eu verifiquei quais alteraes aconteciam quando a tag RFID era submetida a 4 ou 5 ciclos de frequncia da portadora. Uma vez que o sinal precisa ser AC e no DC, eu assumi que a frequncia de transmisso seria 150kH/8 = 18.75kHz ou 150kHz/10 = 15kHz. Este detalhe eu encontrei em um site que foi realmente til por conter boas informaes sobre RFID: http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/s2006/cjr37/Website/index.htm.A tag aparentemente codifica o dado usando FSK. As duas frequncias representam o 0 e 1 lgicos.Com esta informaes em mos, eu avancei e iniciei o projeto do meu prprio indutor-antena. Uma vez que eu mantive a idia de usar 150kHz como frequncia da portadora, eu fiz o clculo e fiquei com uma indutncia de 160uH e um capacitor de 10nF. Eu utilizei a seguinte equao para estimar o nmero de voltas que precisaria em minha bobina:

Onde x, y so o comprimento e a largura da bobina, h a altura e b a espessura da parte condutora. Eu utilizer x=y=6cm, h=1cm e b=0.3cm. O nmero encontrado foi 34. Eu enrolei a bobina em uma caixa de papel que encontrei, de onde eu extrai o x e y. Depois de enrolada, a bobina foi extrada e presa com fita adesiva.

Para um ajuste fino da frequncia ressonante do sistema todo eu decidi brincar com o valor da capacitncia. Usando o gerador de funo para variar a frequncia e visualizando o pico da sada com um osciloscpio, eu variei os valores dos capacitores at que o pico da resposta ressonante fosse a 150kHz. O capacitor final foi de 0.056uF. Uma vez que o meu capacitor precisa ser um valor de mercado, a bobina que eu constru precisa ter uma indutncia maior que 160uH.

O prximo estgio era projetar o circuito analgico. Eu usei o confivel AMPOP TL062 (eu j possuia vrios desses em casa). As frequncias envolvidas neste circuito so relativamente baixas, ento a baixa peformace em frequncia deste AMPOP no problema. Eu havia decidido evitar um circuito complexo, ento elegi o circuito mais simples que poderia ser usado.Ento, a idia usar um simples diodo detector. Este detector de tenso passar por um primeiro AMPOP configurado como amplificador inversor com uma resposta em frequncia passa baixa. Isso remover uma boa parte do volume da portadora. O prximo estgio do circuito analgico extrair o sinal FSK. O circuito mais simples que me veio a mente foi um filtro ressonante passa banda com frequncia central em torno de 17kHz. Isso s me custaria um AMPOP. Este circuito foi desenhado no SPICE e o grfico da frequncia de resposta mostrado no final desta pgina.A sada do passa banda um sinal que pode ser diretamente conectado um microcontrolador PIC. Eu escolhi para este projeto o bom e velho microcontrolador PIC16F628A. Com o comparador interno eu posso receber o sinal diretamente do AMPOP e extrair o sinal digital.A decodificao do sinal FSK feita por software, o que realmente interessante para no aumentar a nossa lista de componentes.Para decodificar o sinal FSK eu implementei trs subrotinas que usam o TMR0 para marcar o tempo passado entre as mudanas detectadas na sada do comparador. Nenhuma interrupo usada. Ao invs disso, as rotinas foram colocadas em loop at que um estado de mudana detectado. O loop que faz a deteco leva em torno de trs ciclos de CPU para rodar; assim, dependendo de quando a mudana ocorre, o erro mximo de 3 ciclos.Algum que conhece como o hardware do PIC funciona poderia me perguntar porque eu no usei o mdulo CCP (Compare and Capture). Infelismente eu utilizei o mdulo PWM para gerar a portadora de 150kHz. Como o CCP compartilha recursos com o mdulo PWM, apenas um deles pode ser ativado por vez.Para ter uma idia geral de como o sinal FSK aparece depois de digitalizado, eu adicionei um modo debug onde ele ir capturar um nmero de ciclos de CPU ocorridos entre cada mudana no sinal de entrada.Devido s limitaes da memria on-chip, somente 80+64 pontos de dados foram capturados. Isso no grande o sufuciente para decodificar o dado, mas suficiente para ns desenharmos uma viso geral de como o sinal se parece.

Sada do modo Debug, logo aps o final do contador de ciclos Neste grfico, os nmeros no eixo Y representam o tempo (em ciclos de CPU) entre cada mudana de estado no sinal de entrada. Eu decidi que 85 era um nmero bom para saber se o sinal de entrada era zero ou um. No futuro eu acabei decidindo alterar a rotina de decodificao para contar o tempo gasto entre cada borda de subida do sinal (uma vez que o sinal no possui componente DC, isto economizaria memria j que eu s guardaria um bit ao invs de dois). Assim, a constante utilizada no firmware do PIC cresceu e eu estou usando 170 (2x 85).A sequncia decodificada dos dados se parece com:0000000000000000000000001111111111111111000001111110000001111100000011111000000111111 ... ...111111000001111110000001111100000011111111110000000000001111111111100000011111000000000000 ...0000001111110000001111111111000000111111000000000000000000000000111111111111111100000

Voc pode ver que o dado inicia com vrios zeros, seguidos de alguns nmeros 1 que so o dado atual. A sequncia inteira continua a se repetir.Eu conheo o sinal codificado em Manchester, ento, a partir do sinal, eu posso chegar seguinte concluso: 1. A sinal inicia com uma sequencia de zeros, superior a vinte zeros. 2. A segunda sequncia tambm sempre uma sequncia de 1 com pelo menos 15 bits. 3. Para cada bit existem entre 10 e 12 nmeros zero ou um. 4. O bit zero se no existe nenhuma mudana no sinal durante o tempo de um bit.

Um grfico rpido pode ser desenhado:111111000001111110000001111100000011111111110000000000001111111111100000011111000000000000-----------|-----------|----------|_________|___________|__________|----------|___________ 1 1 1 0 0 0 1 0

Com essas regras em mente, eu adicionei a funo para decodificar o dado. Como um resumo de todo o sistema eu adicionei os seguintes diagramas:

Diagrama de blocos

Esquemticos:

Analgico

Microcontrolador

Simulao Passa-Faixa:

Concluso

Atualmente eu ajustei o Vcc para 10V. A tenso se +5V extrada a partir de um regulador de tenso 78L05. O Vref setado pata a metade da tenso de alimentao, 2,5V. Isso feito utilizando um simples divisor resistivo de 4,7k ohm.

O cdigo fonte pode ser baixado logo abaixo. Existem duas verses:

Reviso 1: 1 de Maio de 2007 - Lanamento inicial

Reviso 2: 5 de Maio de 2007 - Reviso 2 Recursos adicionados: Auto start, iniciado quando o pino PB7 colocado em nvel alto; Suporte a um buzzer, sada no pino 4 Deteco automtica do carto