Przejdz do strony glownej |
>> Phreak It > strona glowna > newsy > o serwisie >> Automaty > mapy i spisy > niebieski [TSP91] > srebrny [TPE97] > jajko [CTP] > żółty [eXANTO] > Netia > Dialog > karty chipowe > klucze >> W eterze > GSM > tranking >> Stuff > teksty (FAQ) > narzędzia > elektronika > nagrywarki > strony Variego >> Inne > multimedia > phreak-muzeum > hacked > linki | STEROWANIE CZYTNIKIEM BLURMETA BY SHADOWS 27.02.2000 1. Wstep 2. Opis zlacza czytnika - przykladowy schemat podlaczenia do PC 3. Komunikacja z czytnikiem na poziomie podstawowym 4. Rozkazy dla czytnika 5. ... 1. Wstep ======== Na poczatku ten tekst mial byc bardzo lakoniczny, ale ostatnio rozmawialem z kumplem co ma duzo bystrych (to takie jednostki spostrzegawczosci) i dowiedzialem sie, ze mial problemy zeby go zrozumiec - to jest najlepszym dowodem na to, ze musialem cos schrzanic :(. Postaralem sie wiec dopisac cos wiecej tak, zeby ten tekscik stanowil kompletny opis: "Jak sterowac czytnikiem Blurmeta" 2. Opis zlacza czytnika - przykladowy schemat podlaczenia do PC =============================================================== Widok zlacza na plytce czytnika (od strony elementow) +------+ 1 - Wyjscie danych (DO) 1| o o |10 2,6 - NC | o o | 3,8 - Power (ladowanie akumulatora 3.6V) |o o | 4,7 - GND | o o | 5 - /Power on (wyjscie lub wejscie dla 5| o o | 6 podtrzymania zasilania) +------+ 9 - /RESET 10 - Wejscie danych (DI) Aby w pelni wykorzystac mozliwosci czytnika, wystarczy jak podlaczymy sie do koncowek 1,3,7,9,10. Sygnal /RESET (aktywny przy zwarciu do masy) wymaga dosc duzego pradu - powyzej 100mA, dlatego tym wejsciem nie mozna sterowac bezposrednio z PC. A oto przykladowy schemat podlaczenia czytnika do PC Port drukarki (LPT) Zlacze czytnika 20 o--------------------+ C ________| | / | 1 o---------| _ BC308 | B ||\ +----------o 7 E | +------------------o 9 +-------+ 7 o------------|33 Ohm |----------o 3 +-------+ 9 o-------------------------------o 10 10 o-------------------------------o 1 Akumulator w czytniku moze byc doladowywany przez rezystor 33 ohm (jak na schemacie) z LPT, ale przy czestym korzystaniu z czytnika to za malo. Trzeba wtedy dolaczyc zasilacz zewnetrzny (zamiast podlaczac sie do koncowki nr 7 w LPT). UWAGA!!! Czasami (albo nawet zawsze ;) ) moze tez sie okazac konieczne zwarcie rezystora R15 w czytniku, bo wejscia w PC maja zbyt mala rezystancje wejsciowa. 3. Komunikacja z czytnikiem na poziomie podstawowym =================================================== Najpierw trzeba czytnik wlaczyc, tzn. podac mu sygnal RESET - koncowke nr 9 zwieramy na chwile do masy (ok. 100 ms). Jednoczesnie na DI powinien byc podany sygnal niski. Czytnik wtedy przetestuje swoje uklady, zakreci bebnem i po kilku sekundach jest gotowy do pracy. Jesli w czasie gotowosci czytnika, na DI pozostanie niezmienny stan (niski lub wysoki) dluzej niµ ok. 0.5 s, to czytnik wylaczy sie (slychac tykniecie przekaznika). Wylaczenie jest poprzedzone ewentualnym zamknieciem drzwiczek i wyrzuceniem karty. Wtedy trzeba jeszcze raz przykladac sygnal RESET i zaczynac wszystko od nowa. Aby nie dopuscic do samoczynnego wylaczenia sie czytnika, nalezy co ok. 200ms (lub nieco czesciej) wysylac jakis rozkaz (najlepiej rozkaz nr 0 - odczyt stanu). Kazdy rozkaz do czytnika to impuls o odpowiednim czasie trwania. Aby "wydac" czytnikowi jakis rozkaz, postepujemy tak: a) na DI podajemy sygnal wysoki b) czekamy az czytnik odpowie nam sygnalem wysokim na DO - od tego momentu zaczynamy liczyc czas c) po uplywie czasu odpowiadajacego wysylanemu rozkazowi (w ms), podajemy stan niski na DI d) czekamy na potwierdzenie z czytnika, czyli na stan niski na DO Na tym konczy sie rozkaz wysylany do czytnika. Jedyny wyjatek stanowi rozkaz nr 9 (kasowanie jednostek). W tym wypadku do czytnika nalezy jeszcze przeslac 1 bajt danych (bit po bicie) wg nastepujacego przepisu: e) na DI podajemy najstarszy bit przesylanego bajtu f) czekamy na zmiane poziomu na DO g) podajemy na DI kolejny bit h) czekamy na zmiane DO i) kroki g i h powtarzamy jeszcze 6 razy (az do przeslania calego bajtu) j) na DI podajemy stan niski Czytnik po odebraniu kazdego rozkazu wysyla odpowiedz (od 1, 2 lub 11 bajtow). Procedura odbioru (jednego) bajtu z czytnika wyglada tak: a) czekamy (1 ms) b) z linii DO odczytujemy bit (za pierwszym razem - najstarszy) c) na linie DI podajemy stan wysoki d) czekamy (1 ms) e) z linii DO odczytujemy kolejny bit f) na linie DI podajemy stan niski g) kroki a..f powtarzamy jeszcze 3 razy Ilosc bajtow jakie musimy odebrac, zalezy od rozkazu jaki zostal wyslany i od wartosci pierwszego odebranego bajtu. Po rozkazie nr 9 (kasowanie jednostek) zawsze musimy odebrac dwa bajty. Po rozkazie nr 0 (odczyt stanu) i 4 (odczyt danych z karty) musimy odebrac lacznie 11 bajtow, jesli pierwszy z nich ma wartosc 3. W innych przypadkach odbieramy tylko jeden bajt. 4.Rozkazy dla czytnika ====================== Czytnik przyjmuje 13 roznych rozkazow: Numer rozkazu Czas trwania impulsu [ms] Operacja wykonywana ------------------------------------------------------------------------------- 0 10 odczyt stanu czytnika 1 40 anulowanie odczytu karty 2 55 wyrzuc karte, wyl. czytnik 3 70 przygot. do odczytu 4 95 odczyt danych z karty 5 125 zamykanie drzwiczek 6 140 NOP 7 155 otwieranie drzwiczek 8 170 nie niszcz nosnika 9 185 kasowanie jednostek 10 200 NOP 11 215 wyrzuc karte 12 230 NOP Opis rozkazow: Rozkaz nr 12: ------------- Nic nie robi Zwracana wartosc: 238 (0EEh) Rozkaz nr 11: ------------- Wyrzuca karte. Pozostawia czytnik wlaczony. Zwracana wartosc: 32 (20h) Rozkaz nr 10: ------------- Nic nie robi Zwracana wartosc: 31 (1Fh) Rozkaz nr 9: ------------ Kasowanie jednostek z karty Wysylana wartosc: 0..200 - ilosc jednostek do skasowania 201..253 - brak operacji 254,255 - po wykonaniu tych operacji, rozkaz "odczyt stanu" zwraca wartosc 23. Zwracana wartosc (1 bajt): 0..200 - ilosc faktycznie skasowanych jednostek (gdy drugi bajt rowny 27 lub 28) 0 - gdy drugi bajt rowny 29 - (2 bajt): 27 (1Bh) - proba skasowania wiekszej ilosci niz pozostalo 28 (1Ch) - kasowanie przebieglo poprawnie 29 (1Dh) - gdy wyslano >200, brak karty lub brak jednostek do kasowania Jesli transmisja nie zostanie zakonczona poprawnie (nie zostana odebrane 2 bajty), to jednostki nie sa kasowane. Rozkaz nr 8: ------------ Nie niszcz nosnika, otwieraj drzwiczki gdy przygotowany do odczytu Zwracana wartosc: 40 (28h) Rozkaz nr 7: ------------ Otwiera drzwiczki wejscia dla karty Zwracana wartosc: 81 (51h) Rozkaz nr 6: ------------ Nic nie robi Zwracana wartosc: 160 (0A9h) Zwracana wartosc obliczana jest na podstawie zawartosci EPROM'u: (($6401) shl 4) or (($6402) shr 4) or #$80) Rozkaz nr 5: ------------ Zamyka drzwiczki wejscia dla karty Zwracana wartosc: 80 (50h) Rozkaz nr 4: ------------ Odczyt danych z karty Zwracana wartosc: 0 - jesli w czytniku nie ma odczytanej karty 3 - jest karta - wtedy kolejnych 10 bajtow: A,B,C,D,E,F,G,H,IMP,CTR - dane z karty CTR:=3 xor A xor B xor ... xor H xor IMP Rozkaz nr 3: ------------ Przygotowanie czytnika do odczytu karty. Zwracana wartosc: 12 (0Ch) Rozkaz nr 2: ------------ Wyrzucenie karty lub wylaczenie czytnika. Zwracana wartosc: 10 (0Ah) Wyrzuca karte. Wylacza czytnik jesli nie bylo w nim karty. Rozkaz nr 1: ------------ Anulowanie odczytu karty. Zwracana wartosc: 9 Wyrzuca karte. Jesli uzyty po rozkazie nr 3 to otwiera drzwiczki (jesli byly zamkniete). Rozkaz nr 0: ------------ Odczyt stanu czytnika Zwracana wartosc: 1 - brak jakichkolwiek zdarzen 3 - odczytano prawidlowe dane z karty - dalej jak rozkaz nr 4 5 - karta zuzyta 6 - uszkodzenie 1,3 lub 4 czujnika karty gdy karta byla w czytniku 11 - do wejscia wsunieta jest karta 20 - ? 21 - ? 22 - uszkodzona co najmniej jedna z glowic, lub 2 czujnik karty 23 - po rozkazie "kasuj jednostki" z parametrem 254 lub 255 24 - karta zablokowana w czytniku 25 - ? 26 - ? 36 - karta nieczytelna 37 - blad przy operacji na drzwiczkach - uszkodzony silnik drzwiczek 38 - ? 39 - pomyslnie zakonczono operacje zamykania / otwierania drzwiczek 41 - ? 42 - proba sabotazu (usuniecia karty z wnetrza czytnika) 44 - skasowano cos z karty 45 - ? 46 - ? 5. ... ====== Niestety, ale nie udalo mi sie jak dotad wyczaic wszystkiego w temacie czytnika. Na przyklad nie wiem do czego moze byc uzywany rozkaz "kasuj jednostki" z parametrami 254 i 255, co oznaczaja niektore stany czytnika i pare innych rzeczy. Jesli ktos z was ma jakies informacje ktore moglyby przyczynic sie do uaktualnienia tego tekstu, to prosze o kontakt shadows@dione.ids.pl Pozdrowienia dla wszystkich czlonkow grupy URMET-DEVELOPERS, Thorina (wybacz jesli to nie tak sie pisze, dzieki za mozliwosc zbadania czytnika w praktyce). Pozdrawiam tez kumpli z miejscowosci w ktorej mieszkam, jedna taka kolezanke i dwie siostry ;). SHADOW |