Przejdz do strony glownej  

Sterowanie czytnikiem niebieskiego urmeta - Shadows - 2000-02-27

Pobierz wersje spakowana


 >> 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