quinta-feira, março 20, 2014

Mais um leitor de RFID 125KHz, Pulseiras com RFID e um mistério resolvido

Retomando, após mais de um ano, minhas experiências com tags e leitores de RFID 125KHz, examino aqui mais um modelo de leitor e tags em formato de pulseira. A notícia ruim é que este modelo de leitor foi descontinuado, a boa é que finalmente resolvi o mistério da identificação dos tags.




Anteriormente no DQSoft...

Como vimos no começo, os tags que estou usando possuem uma identificação de 32 bits (fixa na fábrica). Os cartões que eu comprei possuem uma marcação misteriosa, composta por dois blocos. O primeiro é um número com dez algarismos e o segundo um par de números, um com três dígitos e o outro com cinco.


Usando o leitor YET-125K eu obtenho oito dígitos, que correspondem ao segundo bloco da marcação dos cartões. O meu outro leitor fornece os dígitos correspondentes ao segundo bloco.

Decifrando o Mistério

A chave para a decifração da marcação foi o fato do leitor novo devolver a identificação em hexadecimal.

Os 32 bits de identificação podem ser expressos em um número hexadecimal com 8 dígitos ou em um número decimal de 0 a 4.294.967.295 (10 dígitos). Peguemos como exemplo o cartão que traz a marcações 0000472027 e 007,13275. A primeira marcação claramente possui a identificação completa em decimal. Esta identificação corresponde em hexadecimal a 000733DB. Ops,olha o 007 aí!. Convertendo o 33DB hexa para decimal obtemos... 13275!

Minha conclusão, confirmada pelos outros cartões, é que a marcação da direita corresponde aos três bytes menos significativos da identificação. O primeiro número é o terceiro byte em decimal (0 a 255) e o segundo número os outros dois bytes também em decimal (0 a 65535).

Conhecendo isto, podemos relacionar o valor lido pelos dois leitores. O leitor YET-125 retorna apenas parte da identificação (os três bytes menos significativos), mas provavelmente isto não vai atrapalhar ninguém.

O Leitor 125K RFID

Este leitor era fabricado e comercializado pelo SeeedStudio. É uma pena ele ter sido descontinuado, pois é o mais versátil e melhor documentado dos que eu examinei até agora.


O leitor possui dois conectores, uma para a antena e outro para alimentação e comunicação. Os fios da antena me pareceram um pouco frágeis. Um jumper permite escolher a forma de comunicação: serial assíncrona (UART) ou Wiegand. Até o momento utilizei somente o modo UART.


Como no YET-125K, a comunicação serial assíncrona, opera em nível TTL (0 corresponde a 0V, 1 corresponde a 5V), no formato 8N1 (8 bits de dados, 1 stop bits, sem paridade) com a velocidade de 9600 bps. Ao detectar um tag, o leitor envia uma única mensagem. Nenhuma mensagem é enviada enquanto o tag permanecer no alcance de leitura; para "ler" novamente o mesmo tag é necessário afastá-lo e reaproximá-lo.

O formato da mensagem é o seguinte:
  • Um byte com valor 0x02 (STX) indicando o início da mensagem
  • Dez dígitos hexadecimais, correspondendo à identificação do tag. Os primeiros dois dígitos devem ser descartados.
  • Dois dígitos hexadecimais contendo um checksum. Este checksum é o XOR dos cinco bytes da identificação do tag
  • Um byte com valor 0x03 (ETX) indicando o fim da mensagem.
Portanto este leitor fornece a identificação completa do tag (em hexadecimal), a partir da qual podem ser obtidos os números escritos nos cartões.

Pulseiras com RFID

A loja da  Tato possui pulseiras com tag RFID de 125KHz e portanto compatíveis com os leitores mencionados neste post. É uma opção interessante para aplicações onde é mais ágil ter o tag preso ao pulso do que ter que pegar um crachá ou chaveiro.





Nenhum comentário: