Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Emulator tagów RFID wyłącznie na układach serii 74xx

Kubald 07 Aug 2013 22:11 7449 0
Altium Designer Computer Controls
  • Emulator tagów RFID wyłącznie na układach serii 74xx

    Poniższy projekt jest kolejnym urządzeniem zgłoszonym do konkursu „7400 competition” w 2012 roku. Autor pragnął zaprezentować urządzenie, na którego widok pierwszą myślą jest „wow” albo „to jest obłędne!”. Tak też powstała idea stworzenia tagu RFID z wykorzystaniem jedynie układów logicznych z serii 74xx.

    Tag RFID wysyła unikalny kod z wykorzystaniem fali nośnej. Większość tagów to układy pasywne, więc nie zawierają żadnych źródeł zasilania i wysyłają jedynie dane dotyczące numeru identyfikatora. Większość tagów korzysta z protokołu EM4100; a tagi kompatybilne z tym protokołem oferowane są w różnych odmianach, które różnią się sposobem kodowania i szybkością transmisji. Ogólnie tagi cechują się następującymi parametrami:
    -nośna: 125 kHz, 13,56 MHz, 433 MHz etc.; modulacja AM
    -kodowanie: Manchester, różnicowe, PSK
    -szybkość transmisji: 1 k, 2 k, 4 k, …
    -unikalny identyfikator – jedynie do odczytu, niektóre tagi mają dodatkową pamięć umożliwiającą odczyt i zapis
    -sumy kontrolne transmisji bazują na wykorzystaniu parzystości i CRC

    Transpondery EM4100 wykorzystują nośną 125 kHz z modulacją AM. Dostępne są rozmaite warianty kodowania, ale kod Manchester i szybkość transmisji 2 kbs to najczęściej spotykane parametry. Transponder wysyła 65 bity danych, które zawierają 32-bitowy, unikalny identyfikator, 8 bitów zawierających identyfikator wersji/producenta, 9 bitów nagłówka, 14 bitów rozproszonej sumy kontrolnej i jeden bit wskazujący koniec transmisji. Dane tagu są kodowane tak, że konieczny jest pewien wzór do synchronizacji strumienia danych. Transpondery EM4100 wysyłają 9 bitów zawierających same logiczne jedynki, sekwencja ta może pojawić się jedynie na początku transmisji.

    Cele projektowe obrano na podstawie specyfikacji RFID:
    -nośna: 135 kHz
    -modulacja: AM z kodowaniem Manchester
    -transmisja: 2 kbs / zmienna
    -możliwość ustalenia bitów danych
    -ustalona sekwencja nagłówka/zakończenia transmisji
    -automatyczne obliczanie sumy kontrolnej
    -preferowane zasilanie pasywne

    Zasilanie

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Główną cechą transponderów jest możliwość zasilania pasywnego z wykorzystaniem pola elektromagnetycznego generowanego przez czytnik. Dobrym pomysłem byłoby zasilanie tagu na układach serii 74xx w podobny sposób.

    Autor dokonywał pomiarów wydajności prądowej takiego sposobu zasilania wykorzystując cewkę i równolegle włączony kondensator. Mostek prostowniczy na diodach Schottky’ego został połączony z cewką (ok. 3,3 mH, 470 pF) i kondensatorem 10 µF, który rozładowywano przez oporniki 4,7; 12 i 47 kΩ. Największą moc osiągnięto przy prądzie około 700 µA, gdzie maksymalne napięcie wynosiło 19 V. Innymi słowy, z pola elektromagnetycznego można czerpać moc rzędu 13 mW. Maksymalny prąd, prz naładowaniu kondensatorów powyżej 3,3 V, wyniósł 2 mA. Jest to wartość stanowczo wystarczająca dla kilkunastu układów serii 74xx.

    Układy pracujące w urządzeniu to seria HC. Są to układy CMOS, ich prąd spoczynkowy jest praktycznie zerowy. Wytracają one jedynie moc w czasie zmiany stanu na wejściach lub wyjściach, dokładne dane zawarte są w każdej karcie katalogowej układu. Biorąc pod uwagę parametry pracy: 3,3 V, 700 µA i 125 kHz to obwód rezonansowy może zasilić układy o całkowitej pojemności 1700 pF (UC = It). W przypadku tagów o wyższej częstotliwości nośnej – np. 13,56 MHz – zasilanie jest o wiele trudniejsze.

    Autor dodaje, że układy serii HCT nie mogą pracować w urządzeniu – mają one stosunkowo duży prąd spoczynkowy i pobierają więcej prądu w czasie pracy, ze względu na zgodność ze specyfikacją TTL.

    Ważny jest również czynnik Q dla analogowego obwodu rezonansowego. Większa wartość Q przy stałości częstotliwości rezonansowej oznacza spadek prądu, który może być pobrany. Mała cewka o zmniejszonej ilości zwojów ma mniejszą wartość indukcji. Jednakże duża wartość czynnika Q ułatwia modulację, która jest niczym innym, jak zmianą równoległej rezystancji w obwodzie RLC, co skutkuje zmianą wartości Q: Q = R√(C/L). Dlatego też istotne jest odpowiednie dobranie wartości L, C i R – najlepiej na drodze doświadczalnej.

    Projekt tagu

    Każdy tag EM4100 zawiera rejestr danych, obwody zegarowe, zasilające, modulujące i sterujące. Każdy obwód niniejszego urządzenia zaprojektowano tak, aby nie pobierał za dużo prądu i był jak najbardziej elastyczny.

    Schemat całości można zobaczyć poniżej:

    1. Rejestr przesuwny 64-bitowy, obwód wyliczania parzystości:

    Emulator tagów RFID wyłącznie na układach serii 74xx

    2. Obwody zasilania, zegar, logika sterująca, obwód ustalania identyfikatora tagu:

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Tag EM4100 przechowuje 64 bity danych, więc głównym celem projektu było stworzenie 64-bitowego rejestru przesuwnego z wykorzystaniem 8 8-bitowych układów 74HC165. Rejestr jest czyszczony co każde 64 operacje. Dane wprowadzane są za pomocą szyny równoległej rejestru:

    Nagłówek: 9 bitów, logiczne 1, synchronizacja transmisji
    ID wersji/producenta: 2 bloki po 5 bitów, w każdym 4 bity danych i bit parzystości
    Identyfikator: 8 bloków po 5 bitów, w każdym 4 bity danych i bit parzystości
    Suma kontrolna: 4 bity sumy kontrolnej z parzystością
    Bit stopu: zawsze ‘0’.

    Zgodnie ze specyfikacją protokołu EM4100 najpierw przesyłane są bity najbardziej znaczące. W układzie użytkownik ma możliwość zmiany 40 bitów (8 + 32), które ustalane są za pomocą przełączników. Większość czytników RFID ignoruje jednak ID wersji/producenta i przedstawia jedynie 32-bitowy unikalny identyfikator, przekonwertowany na wartość dziesiętną.

    Obliczanie parzystości wiersza (RPx) dokonywane jest dla każdych 4 bitów (półbajtu). Parzystość wyrażona jest jako n-wejściowa funkcja XOR:
    RPx = D0⊕D1⊕D2⊕D3 = (D0⊕D1)⊕(D2⊕D3)
    Funkcja może być obliczona z wykorzystaniem bramek XOR układu 74HC86. Parzystość kolumny wyliczana jest podobnie, z wykorzystaniem 10-bitowych operacji łańcuchowych XOR, realizowanych przez układy 74HC280 dla pierwszych 9 bitów i układ 74HC86 dla ostatniego bitu.

    Cenną zaletą tagów RFID jest fakt, że suma kontrolna nie zależy od ID tagu (ustalanego w urządzeniu za pomocą przełączników).

    Sercem obwodu zasilania jest układ rezonansowy, składający się z cewki i kondensatora. Sygnał jest prostowany na mostku z diod Schottky’ego i podawany na kondensator podtrzymujący. Parametry obwodu są wystarczające do chwilowego zasilania urządzenia. Diody LED i Zenera obniżają maksymalne napięcie do 12 V, a regulator LDO wymaga zaledwie 0,4 V, aby generować napięcie wyjściowe rzędu 3,3 V. Przy pełnym poborze prądu układ jest w stanie zasilać urządzenie przez 20 ms.

    Możliwe jest także zasilanie układu z baterii i wyłączenie regulatora LDA – jest to cenne w przypadku, kiedy poprawne zasilenie układu jedynie z czytnika RFID nie jest możliwe.

    Autor zdecydował się na zasilanie napięciem 3,3 V, mimo że układy HC pracują poprawni już od 2 V – powodem jest konieczność poprawnego działania pętli fazowej. Generator przestrajany napięciem w układzie 74HC4046 wymaga do pracy napięcia minimum 3 V. Jeśli jednak nie mamy zamiaru korzystać z pętli fazowej, napięcie może być spokojnie obniżone do 2 V.

    Obwód rezonansowy dostosowano do nośnej 125 kHz, jest to także częstotliwość odniesienia dla całego tagu. Sprzężony pojemnością bocznik z przerzutnikiem Schmitta 74HC14, który także usuwa z sygnału zakłócenia spowodowane częstotliwością sieci – 50/60 Hz.

    Opcjonalna pętla fazowa na układzie 74HC4046 służy do synchronizowania nośnej z wewnętrznym sygnałem zegarowym. Jest ona wymagana tylko wtedy, kiedy fala nośna okresowo zanika – niektóre czytniki RFID stosują takie rozwiązanie. PLL może powodować problemy w przypadku nieoryginalnych, tanich czytników, które generują nośną cechującą się dużymi fluktuacjami.

    Na podstawie głównego sygnału zegarowego MCLK generowanych jest kilka sygnałów pomocniczych. Dostępne są tagi o różnych prędkościach transmisji: MCLK/16, MCLK/32 oraz MCLK/64, przy czym wersja pracująca z szybkością MCLK/64 (2 kbs) jest najszerzej rozpowszechniona. Wyboru prędkości można dokonywać za pomocą preskalera zrealizowanego na układzie 74HC393, który generuje sygnał DCLK. Układ 74HC393 służy także do generowania wszystkich pozostałych sygnałów zegarowych (CCLK, PCLK, SCLK) – rejestr przesuwny wykorzystuje sygnał SCLK. Cała sekwencja taktowania przedstawiona jest na schemacie.

    Rejestr danych ma rozmiar 64 bitów – aby uniknąć problemów z błędnym przesuwaniem danych wykorzystano układ 74HC40103, który jest licznikiem modulo 128, zliczającym od 127 do 0 przy taktowaniu równym dwukrotności szybkości transmisji. Sygnał generowany przez licznik (MOD128) jest nieznacznie przesunięty w czasie, aby uniknąć pokrywania się z sygnałem SCLK. Za pomocą przerzutnika flip-flop 74HC74 generowany jest też sygnał PLOAD.

    W większości tagów wykorzystano kodowanie Manchester. Główną zaletą kodu Manchester jest prostota jego generowania. Kod Manchester powstaje w wyniku operacji XOR pomiędzy taktowaniem szybkości transmisji a strumieniem danych. Operacja ta wykonywana jest przez układ 74HC86.

    Dane podawane przez rejestr przesuwny (SOUT) opóźnione są o jedno przesunięcie (sygnał SDELAY). Kiedy rejestr jest przeładowywany, to sygnał SOUT natychmiast zmienia się z ‘0’ na ‘1’ (bit stopu na bit startu). Aby uniknąć przypadkowych zmian stanu całość jest synchronizowana sygnałem SCLK.

    Sygnał kodu Manchester zawiera krótkie piki odpowiadające zmianom 0->1 i 1->0 strumienia danych. Impulsy te są jednak na tyle krótkie, że modulator ignoruje je, a odbiornik bez problemu poradzi sobie z ich filtracją.

    Innym, łatwym do zrealizowania kodowaniem jest kodowanie różnicowe. Sygnały PCLK i SCLK mnożone są na bramkach NAND 74HC00. Multipleksowany sygnał wyjściowy próbkowany jest z częstotliwością równą CCLK, co eliminuje obecność jakichkolwiek szpilek w sygnale, i może być podany na licznik asynchroniczny 74HC393. Finalnie sygnał jest dzielony przez dwa dzięki układowi 74HC74.

    Wybór kodowania odbywa się za pomocą przełącznika.

    W końcu, zakodowany sygnał musi być podany na cewkę, aby został przesłany do czytnika RFID. Modulacja amplitudy uzyskiwana jest dzięki tranzystorom MOSFET łączącym końce cewki z masą.

    Budowa prototypu

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Prototyp wyposażono w 40 przełączników DIP-switch (czerwonych), które służą do wyboru identyfikatora i 4 przełączniki (niebieskie) do konfigurowania preskalera. Górny rząd układów to kości 74HC86 (bramki XOR) realizujące obliczanie parzystości. Środkowy rząd układów to 8 rejestrów przesuwnych 74HC165. W dolnym rzędzie umieszczono układy 74HC280 i 74HC86. Pozostałe układy to liczniki, układ PLL i przerzutnik Schmitta.

    Zlutowanie całości pochłonęło około 6 godzin – ilość połączeń jest bardzo duża. W prototypie wykorzystano jedynie kodowanie Manchester.

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Zaprojektowanie całości wymagało także uporania się z szeregiem błędów. Kłopoty sprawiał obwód pętli fazowej, czułość różnych czytników RFID, problemy z licznikiem modulo 128 i właściwą generacją sygnału z kodowaniem Manchester.

    Po pokonaniu wszystkich kłopotów i sprawdzenia działania prototypu autor zaprojektował płytkę drukowaną dla urządzenia – dwustronną, o wymiarach 50 x 100 mm.

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Wykorzystano jedynie elementy SMD. Na płytce znajduje się 412 przelotek o rozmiarze 0,3 mm, a odstępy obrano na 7 mil. Za pomocą przełączników można wybierać identyfikator, uaktywniać pętlę fazową, wybierać pomiędzy kodowaniem Manchester/różnicowym oraz określać szybkość transmisji.

    Zmiany, które wprowadzono w ostatecznej wersji to między innymi:
    - Użycie jednego układu 74HC40103 w miejsce dwu układów 74HC163 w obwodzie licznika modulo 128.
    - Ograniczenie napięcia wejściowego za pomocą dwu diod Zenera.
    - Zastosowanie układu 74HC1G14 w miejsce „dużej” kości 74HC14.
    - Zastosowanie regulatora LDO z możliwością wyłączania.
    - Przełącznik służący do aktywowania pętli fazy.

    Koszt elementów niezbędnych do budowy zamknął się poniżej 30 dol. (nie licząc płytki i cewki).

    Cewkę należy wykonać samodzielnie – ma ona 89 zwojów wykonanych 0,4-mm drutem SWG 26 i przeciętną średnicę 50 mm. Cewka może mieć dowolny kształt (np. prostokątny lub trójkątny).

    Autor przestrzega, że emulacja tagu jest rzeczą trywialną – lecz mimo tego urządzenie nie może być wykorzystywane niezgodnie z prawem. Za takie zachowania nie bierze on odpowiedzialności.

    Całość urządzenia zamykana jest w zaprojektowanej przez autora obudowie:

    Emulator tagów RFID wyłącznie na układach serii 74xx

    Gotowe płytki i zmontowany układ prezentują się następująco:

    Emulator tagów RFID wyłącznie na układach serii 74xx Emulator tagów RFID wyłącznie na układach serii 74xx Emulator tagów RFID wyłącznie na układach serii 74xx

    Podsumowanie





    Wiele osób myśli, że układy wykorzystujące kości z serii 74xx to rozwiązania „retro”. Są częściowo w błędzie – rodzina 74HC jest całkiem nowa, a konieczność bardzo rozsądnego podejścia do kwestii zasilania niniejszego układu także nie jest przestarzałym rozwiązaniem. Wreszcie, układy logiczne zawierające w obudowie jedną bramkę są także nowym wynalazkiem. Dowodzi to, że wykorzystanie układów logicznych wcale nie straciło na znaczeniu – ale można łatwo je przeoczyć w gąszczu współczesnych możliwości.

    Zaprojektowanie części analogowej było także dużo trudniejsze od realizacji części cyfrowej. Pokazuje to, że wiedza w tej kwestii nadal powinna być poważana w dobie rozwiązań cyfrowych.

    Na stronie źródłowej można znaleźć wszystkie pliki projektu, obszerniejszą wersję opisu urządzenia, sposobu eliminacji błędów, rozważania projektowe i wiele innych, cennych informacji.

    Cool? Ranking DIY
    About Author
    Kubald
    Level 15  
    Offline 
    Has specialization in: spektroskopia exafs/xanes, uc, it
    Kubald wrote 188 posts with rating 102. Live in city Kraków. Been with us since 2004 year.
  • Altium Designer Computer Controls