
Korzystając z okazji posiadania 2 transponderów RFID ( ISO 11784/11785) zainstalowanych w futrzakach postanowiłem pobawić się tym nieco. Wymyśliłem sobie detektor na podstawie układu opublikowanego w EdW 08/20006. Właściwie do detekcji obecności tranpondera wystarczy głośniczek podłączony do części analogowej ww. układu. Dźwięk przy sprzężeniu chipa z anteną przypomina transmisję danych z kaseciaka do ZX spectrum. Niestety trzeba czymś generować pole zasilające a pakowanie scalaka o 16 wyprowadzeniach (w oryginale CD4060 - ile to wiercenia) tylko do tego celu wydało mi się bez sensu więc użyłem Tiny-2313-20SU. W efekcie powstał raczej czytnik niż detektor, tyle, że bez wyświetlacza. (No bo mając już procek czemu nie zdekodować bi-phase i policzyć CRC.) Odczytany numer identyfikacyjny można sobie zapisać do eproma i odczytać przez SPI albo można dołożyć MAX232 i pchać UART-em do PC-ta.
Urządzenie składa się, jak to zwykle bywa, z 2 bloków – analogowego i cyfrowego. Blok analogowy jest modyfikacją wspomnianego już układu z EdW z dość dziwnymi wartościami elementów. Te wartości wzięły się z błędu w sofcie podczas uruchamiania ustrojstwa. Ponieważ tor analogowy wydał ni się najbardziej podejrzany, zacząłem w nim grzebać i zmieniać elementy. W końcu znalazłem prawdziwą przyczynę i maszynka zaczęła działać więc, zgodnie z zasadą nienaprawiania niepopsutego, zostawiłem wszystko jak jest. Przyznam też, że gdybym wiedział przed zrobieniem PCB, że układ U2270B jest dostępny w TME, to zrobiłbym ten blok na nim. Antena została nawinięta na korku od rury kanalizacyjnej fi = 50mm. Zawiera 55 zwojów drutu DNE 0.35 (3 warstwy: 20 + 20 + 15zw izolowane folią plastikową) pochodzącego z cewki rozmagnesowującej starego monitora. Antenę dobrze jest dostroić do rezonansu na 129kHz dobierając C3 na max U DC na C5.(właściwie, według ISO 134kHz ale starsze transpondery, niezgodne z normą, pracują na 125 kHz więc wybrałem wartość pośrednią)
Część cyfrowa jest trywialna, procek, cztery LED, jeden przycisk (drugi jest niewykorzystany) i głośniczek ze starego modemu. Soft napisałem w C na „edukacyjną” kopię kompilatora ICCAVR więc siłą rzeczy nie będzie hex-a. Po włączeniu układ generuje pole zasilające w cyklu 100mS praca i 100 mS przerwy. To dla oszczędzania baterii bo przy generacji pola układ wciąga 100 mA. (prosi się step-down w miejsce 7805) Dodatkowo F jest naprzemiennie zmieniana ( 125 kHz / 134 kHz ) celem dopasowania się do różnych typów transponderów. Przyciskiem można włączyć głośniczek, dzięki czemu jest możliwe wykrycie, metodą na ucho, obecności innych, niekompatybilnych z ISO 11784/11785, transponderów LF, których program nie zdekoduje. Głośniczek jest domyślnie wyłączony ponieważ wzbudzał niepokój futrzaków doświadczalnych. Po zdekodowaniu generator pola jest wyłączany i zapala się niebieski LED. W tym trybie naciśniecie przycisku powoduje zapis odczytanych 8 bajtów do eproma, co sygnalizuje LED żółty. Aby powrócić do trybu skanowania trzeba wykonać twardy reset zasilaniem.
Norma ISO 11784/11785 opisuje 2 niekompatybilne typy transponderów – FDX i HDX. Z informacji wygrzebanych z netu wynika, że typ HDX jest transponderem krowio – owczym pracującym z modulacją FSK. ( Nie jestem pewien czy udałoby się demodulować FSK w tym układzie, np. na zboczu obwodu wejściowego. Nie mam też dostępu do tego typu chipów, żeby empirycznie sprawdzić więc HDX sobie odpuściłem. ) Typ FDX jest transponderem kocio - psim pracującym z modulacją ASK. Enkoding transmisji: biphase space. Data rate Fclk / 32. Dekodowanie bi-phase ułatwia fakt, że nie potrzeba odtwarzać zegara z przychodzącej transmisji bo właśnie tym zegarem jest generowane pole zasilania. Pattern przesyłanych informacji opisuje norma ISO 11784 (opisany w notach aplikacyjnych układów EM 4005/4105 i ATA5577). Mój program ignoruje bity od 102 do 128 (obecnie raczej nie wykorzystywane). W programie kolejne bity są zapisane tak jak przychodzą w celu ułatwienia obliczania CRC. Również bity w bajtach zapisanych do epromu są uporządkowane w kolejności nadejścia. (czyli zasadniczo niewłaściwej) Do zdekodowania numeru identyfikacyjnego konieczne jest odwrócenie kolejności bitów w każdym bajcie. Uznałem, że wygodniej mi będzie to robić w zewnętrznym programie bo i tak urządzenie nie ma gdzie tego wyświetlać. Oczywiście można toto rozbudować o wyświetlacz, o ile procedury obsługi zmieszczą się do flasha. Program zajmuje 56% pamięci. Całość wsadziłem do kawałka rury kanalizacyjnej fi = 50, co może pięknie nie wygląda ale jest dość poręczne.

Maszynka podczas testów

Dzielne "króliki" doświadczalne. (Podnoszą średni poziom estetyki)


Referencje:
1. John Wiley - RFID Handbook Fundamentals and Applications in Contactless Smart Cards and Identification Second Edition
2. Datasheet EM 4005/4105
3. Atmel Application Note - Using ATA5577 in Animal ID Application
3. http://maxmicrochip.com/
Cool? Ranking DIY