Čítačka RFID (125kHz)

Roman Mego, UREL, FEKT, VUT Brno
xmegor00@stud.feec.vutbr.cz

Obsah

  1. Úvod
  2. Tagy EM4100 a s nimi kompatibilné
  3. Obvod pre čítanie RFID tagov
  4. Program pre MCU
  5. Záver

Úvod

Bezkontaktná technológia identifikácie RFID sa v  posledých rokoch rozšírila do rôznych oblastí. Využíva sa napríklad  prístupových systémoch, správe majetku, logistike alebo aj platobných termináloch. Cieľom tohto projektu je vytvoriť čítačku pre jedny z jednoduchých a ľahko dostupných tagov pracujúcich na frekvencií 125kHz.

Tagy EM4100 a s nimi kompatibilné

Tieto tagy patria medzi jedny z najrozšírenejších. Ide o pasívny tag, čo znamená že energiu potrebnú pre svoju funkciu získava z elektromagnetického poľa ktoré sa nachádza v blízkosti čítačky. Ich pracovná frekvencia sa môže pohybovať v rozsahu 100kHz až 150kHz. Majú 64-bitovú pamäť ktorá obsahuje jedinečný 40-bitový kód. Zvyšné bity sú buď redundantné pre identifikáciu správneho príjmu alebo obsahuje štart a stop bity. Rozloženie obsahu pamäte je zobrazené na obrázku 1.

1 1 1 1 1 1 1 1 1
        V0 V1 V2 V3 P0
        V4 V5 V6 V7 P1
        D0 D1 D2 D3 P2
        D4 D5 D6 D7 P3
        D8 D9 D10 D11 P4
        D12 D13 D14 D15 P5
        D16 D17 D18 D19 P6
        D20 D21 D22 D23 P7
        D24 D25 D26 D27 P8
        D28 D29 D30 D31 P9
        PC0 PC1 PC2 PC3 0

Obrázok 1: Pamäť RFID tagu (Prevzaté z [1])

Tieto dáta môžu byť odosielané v kóde Manchester, Bi-phase alebo PSK. Rýchlosť odosielania môže byť 16, 32 alebo 64 periód taktovacieho signálu na bit. Najčastejšie je možné stretnúť sa s verziou Manchester 64 T/bit.

Obvod pre čítanie RFID tagov

Pre čítanie RFID tagov je možné zakúpiť už hotové moduly ako napríklad ID-12 od firmy Innovations ktoré obsahujú aj vstavanú anténu a ich výstup je riešený pomocou UART-u. Takéto riešenie však nie je  cieľom projektu.

Pre konštrukciu je možné použiť napríklad obvody EM4095 alebo U2270, ktoré slúžia ako budič antény a súčasne demodulátor prijímaného signálu. Pre tento projekt bol vybraný obvod EM4095. Pre spracovanie prijatých dát bol vybraný mikrokontrolér PIC16F628A ktorý odosiela kód uložený na karte do PC cez obvod FT232RL. Schéma zapojenia je na obrázku 2.



Obrázok 2: Schéma zapojenia

Pre zapojenie FT232 a PIC nie je potrebný žiadny komentár.  Zapojenie demodulátora vychádza z odporúčaného zapojenia výrobcom ktoré je uvedené v aplikačnej poznámke [2]. Tu je tiež možné nájsť postup výpočtu súčiatok. Anténa je vytvorená na plošnom spoji. Jej približná hodnota indukčnosti bola vypočítaná pomocou vzťahu uvedenom v [3]. Keďže tu uvedené vzťahy platia pre cievky vinuté vo vduchu, je potrebné po osadení spoja skontrolovať na akej frekvecnií rezonuje obvod a prípadne ho doladiť zmenou kapacity C_RES.



Obrázok 3: Návrh plošného spoja

Program pre MCU

Vytvorený program má nasledujúce úlohy:

Uvedený program nevyužíva akustickú signalizáciu, takže nie je potrebné osádzať piezo-menič.

Kód Manchester

Pre jednoduchosť je program tvorený pre najčastejší typ tagov, ktorý bol spomenutý vyššie. Pre dekódovanie Manchestru je použitý capture modul, ktorým sa merajú dĺžky impulzov a tie sú následne vyhodnocované nasledujúcim postupom:

Zmena hodnoty bitu nie je problematická, pretože hlavičku tvorí 9 bitov s hodnotou 1. Pri tomto spôsobe dekódovania je dôležité, aby bola pri začiatku prenosu prvá polovica bitu ignorovaná. Bližšie informácie je možné nájsť v [4]



Obrázok 4: Dekódovanie kódu Manchester

V tomto konkrétnom zapojení vzniká problém, pretože čítač nie je synchronizovaný s rezonančnou frekvenciou modulu. Preto sa nevyhodnocuje presná dĺžka impulzov ale rozptyl hodnôt v ktorom sa môžu nachádzať. Tiež sa na výstupe nachádzajú signály aj počas doby keď k anténe nie je priložená žiadny tag. Tie majú pravdepodobne pôvod v okolitom rušení a sú ľahko rozoznateľné, pretože ich dĺžka je niekoľkonásobne dlhšia ako celý prenos dát z tagu.

Testovanie správnosti prenosu

Po prijatí obsahu pamäte je potrebné skontrolovať či pri prenose nedošlo k chybe. To je vykonané testovaním paritných bitov v riadkoch ako aj v stĺpcoch podľa obrázka 1. Do parity v stĺpcoch sa hlavička nezapočítava. Tiež je kontrolovaná hlavička ako aj stop bit.

Prenos cez UART

Ak je prijatý kód v poriadku tak je odoslaný do PC. Pred samotným prenosom je tento kód prevedený do ASCII podoby a je k nemu pripojený kontrolný súčet. Formát je vidieť na obrázku 5.

0x02 Číslo karty (10b) CRC (2b) 0x0D 0x0A 0x03 0x00

Obrázok 5: Formát odoslanej správy


Obrázok 6: Fotografia realizovanej čítačky

Záver

V tomto projekte bola vytvorená jednoduchá čítačka RFID. Zapojenie je plne funkčné, ale medzi nevýhody patrí to, že anténa musí byť naladená blízko frekvencie 125kHz. To by sa dalo vyriešiť prepojením signálu RDY/CLK na vstup čítača mikrokontroléra. Ako vylepšenie by molo možné pridať funkcie pre zápis na iné typy kariet využitím pinu MOD.

V prípade že by bolo potrebné vytvoriť zapojenie s iným typom mikrokontroléra, je možné využiť súbory em4095.h a em4095.c s malými úpravami ktoré sú uvedené v komentároch.

Súbory na stiahnutie

Literatúra

[1] EM Microelectronic-Marin SA. EM4100 Read Only Contactless Identification Device. [Online] 2004. [Cit.: 9. 4. 2011] <http://www.mikroe.com/eng/downloads/get/1084/em4100_datasheet.pdf>

[2] EM Microelectronic-Marin SA. EM4095 Application Note. [Online] 2002. [Cit.: 9. 4. 2011] <http://www.emmicroelectronic.com/webfiles/product/rfid/an/an404.pdf>

[3] Microchip Technology Inc. Antenna Circuit Design for RFID Applications. [Online] 2003. [Cit.: 9. 4. 2011] <http://ww1.microchip.com/downloads/en/AppNotes/00710c.pdf>

[4] Atmel Corporation. Manchester Coding Basics. [Online] 2009. [Cit.: 9. 4. 2011] <http://www.atmel.com/dyn/resources/prod_documents/doc9164.pdf>