Programator kart chipowych cz. II.pdf

(196 KB) Pobierz
Czytnik-programator kart chipowych, część 2 - AVT-468
Czytnik−programator kart chipowych
P R O J E K T Y
Czytnik−programator kart
chipowych, część 2
kit AVT−468
KoÒczymy prezentacjÍ
konstrukcji czytnika -
programatora kart chipowych.
W†tej czÍúci artyku³u
przedstawimy listÍ rozkazÛw
wykorzytywanych do sterowania
prac¹ karty chipowej oraz
sposÛb wymiany informacji
pomiÍdzy mikrokontrolerem
obs³uguj¹cym kartÍ,
a†programem terminalowym.
SkrÛtowo przedstawimy takøe
bardzo efektown¹, przyk³adow¹
aplikacjÍ czytnika.
Rozkazy steruj¹ce prac¹
karty X76F640
Jak wspomniano w†pierwszej
czÍúci artyku³u transfer danych
do i†z†karty odbywa siÍ poprzez
dwuprzewodow¹ magistralÍ, ktÛra
jest funkcjonalnie bardzo podobna
do znanego standardu I2C.
W†identyczny sposÛb generowane
s¹ przez Mastera warunki Start
i† Stop , w†taki sam sposÛb prze-
biega transmisja kaødego bitu,
nieco inaczej za to odbierane jest
potwierdzenie ACK .
Pomocny w†wyjaúnieniu prob-
lemu bÍdzie rys. 11 . Wykonanie
jakiegokolwiek polecenia przez
wewnÍtrzny automat steruj¹cy
karty chipowej jest uwarunkowa-
ne podaniem przez uøytkownika
uprawnionego has³a o†d³ugoúci
64 bitÛw. Has³o jest wysy³ane
zawsze po bajcie polecenia (rys.
11). Kaødy wpis has³a do karty
powoduje uruchomienie cyklu
zapisu matrycy EEPROM, ktÛry
trwa ok. 5†ms. Dopiero po tym
czasie karta jest w†stanie odpo-
wiedzieÊ uøytkownikowi, czy po-
dane has³o jest prawid³owe, czy
teø nie. Zastosowanie tak d³ugie-
go czasu odpowiedzi zosta³o po-
dyktowane chÍci¹ utrudnienia
øycia potencjalnym w³amywa-
czom. Pojawienie siÍ sygna³u
ACK oznacza, øe has³o by³o
prawid³owe. Jeøeli w†ci¹gu 10
ms karta nie wygeneruje po-
twierdzenia naleøy uznaÊ, øe
has³o by³o b³Ídne.
Podanie b³Ídnego has³a powo-
duje automatyczne zwiÍkszenie
stanu licznika b³Ídnych prÛb! Je-
øeli nieuprawnione prÛby bÍd¹
ponawiane, to po Ûsmej karta
zostaje zablokowana!
Sterowanie prac¹ karty umoø-
liwia 12 rozkazÛw o†kodach po-
danych w† tab. 1 . PokrÛtce je
omÛwimy:
- READ ARRAY 0/1 . Polecenia
odczytu zawartoúci komÛrki wy-
branej matrycy pamiÍciowej
o†adresie podanym w†dwÛch ko-
lejnych (po haúle) bajtach. Kar-
ta po odebraniu tego polecenia
wysy³a w†odpowiedzi wskazany
bajt danych. Moøliwe jest takøe
losowe odczytanie dowolnej
z†256 kolejnych komÛrek pa-
miÍci poprzez wys³anie do kar-
ty mniej znacz¹cej czÍúci adre-
Elektronika Praktyczna 10/98
63
30538319.003.png
Czytnik−programator kart chipowych
Rys. 11. Format ramki danych podczas zapisu sektora.
su. Adres ten musi zostaÊ po-
przedzony generowanym przez
Mastera warunkiem START .
W†przypadku pominiÍcia wa-
runku START kolejne takty ze-
garowe wysy³ane do karty spo-
woduj¹ wysy³anie przez ni¹
bajtÛw o†kolejnych adresach.
Tak wiÍc moøliwy jest odczyt
zawartoúci kilku komÛrek pa-
miÍci po jednokrotnym podaniu
adresu, bez koniecznoúci dodat-
kowego adresowania kaødego
odczytu.
- SECTOR WRITE 0/1 . Rozkaz
umoøliwiaj¹cy zapis informacji
do matrycy pamiÍciowej pod
wybrany adres. Podobnie jak
w†przypadku polecenia odczy-
tu, jako nastÍpne musi zostaÊ
przes³ane do karty has³o dostÍ-
powe. Moøliwy jest jednoczes-
ny wpis 32 bajtÛw danych,
ktÛre zapisywane s¹ w†matrycy
EEPROM w†jednym cyklu pro-
gramowania. Kaøda transmisja
bloku danych wpisywanych do
pamiÍci musi byÊ zakoÒczona
znakiem STOP .
- CHANGE READ 0/1 PAS-
SWORD . Polecenie umoøliwia-
j¹ce zmianÍ dotychczasowego
has³a zabezpieczaj¹cego obydwie
matryce kart przed odczytem.
Zmiana kaødego z†tych hase³
wymaga podania poprzedniego
has³a, co zapobiega moøliwoúci
nieuprawnionego dostÍpu do za-
wartoúci karty.
- CHANGE WRITE 0/1 PAS-
SWORD . Polecenie podobne do
poprzedniego, z†t¹ rÛønic¹, øe
dotyczy has³a zabezpieczaj¹cego
kartÍ przed zapisem.
- CHANGE RESET PASSWORD .
Rozkaz umoøliwiaj¹cy zmianÍ
dotychczasowego has³a dostÍpu
do polecenia zerowania zawar-
toúci karty.
- RESET PASSWORD . Rozkaz po-
woduj¹cy wyzerowanie zawar-
toúci rejestrÛw hase³ oraz oby-
dwu matryc pamiÍciowych Ar-
ray0 i† Array1 . Wys³anie tego
polecenia do karty jest najpros-
tszym sposobem jej szybkiego,
ca³kowitego wyzerowania.
- RESET DEVICE . Rozkaz umoø-
liwiaj¹cy uruchomienie karty po
zablokowaniu jej przez licznik
nieuprawnionych prÛb dostÍpu.
Przy pomocy tego polecenia
moøna takøe wyzerowaÊ ten licz-
nik, przed przekroczeniem do-
puszczalnego limitu prÛb (8).
- ACK POLLING . Polecenie koÒ-
cz¹ce procedurÍ zapisu do pa-
miÍci has³a (rys. 11). Moøna je
takøe wykorzystaÊ do kontroli
aktualnego stanu karty (czy zo-
sta³ zakoÒczony proces zapisu
matrycy EEPROM).
Kody instrukcji, ktÛre nie zo-
sta³y wymienione w†tab. 1†s¹ nie-
legalne i†nie powinny byÊ stoso-
wane.
przy pomocy ktÛrego bez trudu
moøna kartÍ zaprogramowaÊ lub
odczytaÊ jej zawartoúÊ, wykorzys-
tuj¹c standardowe programy ter-
minalowe.
Sk³adnia tego jÍzyka jest bar-
dzo prosta - szczegÛ³y przedsta-
wiamy poniøej.
Odczyt matryc
pamiÍciowych
Array0 i† Array1
Sk³adnia polecenia:
Rd a : xxxxxxxxxxxxxxxx : AAAA
a - numer matrycy 0 lub 1;
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na has³o READ0/1 ;
A - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na adres pocz¹tko-
wy (zakres 0000..1FFFh).
W†odpowiedzi na takie polece-
nie sterownik odeúle (jeøeli has³o
dostÍpu by³o poprawne!) zawar-
toúÊ wybranej komÛrki pamiÍci.
Odczyt zawartoúci blokÛw
matryc pamiÍciowych
Array0 i† Array1
Sk³adnia polecenia:
Ra a : xxxxxxxxxxxxxxxx : AAAA
a - numer matrycy 0 lub 1;
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na has³o READ0/1 ;
A - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na adres pocz¹tko-
wy (zakres 0000..1FFFh).
W†odpowiedzi na takie pole-
cenie sterownik odeúle (jeøeli
has³o dostÍpu by³o poprawne!)
256 kolejnych bajtÛw wybranej
matrycy pamiÍciowej, pocz¹wszy
od podanego adresu. Jeøeli adres
pocz¹tkowy AAAA bÍdzie wiÍk-
szy od 1F00h wys³ane zostan¹
takøe kolejne bajty pocz¹wszy od
adresu 0.
Sterowanie czytnika -
programatora
Wymienione wczeúniej rozkazy
umoøliwiaj¹ bezpoúredni¹ komu-
nikacjÍ z†kart¹, stanowi¹c najniø-
sz¹ warstwÍ komunikacji.
Zastosowanie w†programatorze
mikrokontrolera zwalnia uøytkow-
nika w†znacznym stopniu z†ko-
niecznoúci poznania szczegÛ³Ûw
dotycz¹cych transmisji danych
oraz wszelkich niuansÛw wynika-
j¹cych ze specyfikacji producen-
ta. Z†tego teø powodu powsta³
jÍzyk nieco wyøszego poziomu,
64
Elektronika Praktyczna 10/98
30538319.004.png 30538319.005.png 30538319.006.png
Czytnik−programator kart chipowych
Tab. 1.
Bajt
Hasło
Starszy bajt Młodszy bajt Opis
polecenia
(64 bity) dodatkowy
dodatkowy
10000000
READ0
Adres MSB
Adres LSB
Odczyt matrycy Array0
10001000
READ1
Adres MSB
Adres LSB
Odczyt matrycy Array1
10010000
WRITE0
Adres MSB
Adres LSB
Zapis sektora w matrycy Array0
10011000
WRITE1
Adres MSB
Adres LSB
Zapis sektora w matrycy Array1
10100000
READ0
00000000
00000000
Zmiana hasła READ0
10101000
READ1
00000000
00000000
Zmiana hasła READ1
10110000
WRITE0
00000000
00000000
Zmiana hasła WRITE0
10111000
WRITE1
00000000
00000000
Zmiana hasła WRITE1
11000000
RESET
00000000
00000000
Zmiana hasła RESET
11100000
RESET
brak
brak
Zerowanie rejestrów haseł oraz
obydwu matryc pamięciowych
11101000
RESET
brak
brak
Zerowanie licznika błędnych
prób dostępu i ew. zawartości
matryc oraz rejestrów haseł
11110000
brak
brak
brak
Sygnalizacja końca wpisu hasła.
Polecenie wykorzystywane przez
procedurę ACK Polling
Zapis sektora matryc
pamiÍciowych
Array0 i† Array1
Sk³adnia polecenia:
Wr a : xxxxxxxxxxxxxxxx : AAAA
a - numer matrycy 0 lub 1;
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na has³o WRITE0/1 ;
A - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na adres pocz¹tko-
wy (zakres 0000..1FFFh).
Wys³anie takiego ci¹gu zna-
kÛw do programatora prze³¹cza
go w†tryb oczekiwania na dane
- kolejne 32 bajty (jeøeli nie
bÍdzie to ci¹g znakÛw RST )
zostan¹ wpisane po zadany ad-
res.
a - numer matrycy 0 lub 1;
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na dotychczasowe
has³o WRITE0/1 ;
y - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na nowe has³o
WRITE0/1.
Polecenie umoøliwia zmianÍ
dotychczasowego has³a zabezpie-
czaj¹cego matryce Array0 i† Array1
przed zapisem.
Zmiana hase³ odczytu
Sk³adnia polecenia:
Cr a : xxxxxxxxxxxxxxxx : yyyyyy-
yyyyyyyyyy
a - numer matrycy 0 lub 1;
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na dotychczasowe
has³o READ0/1 ;
y - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na nowe has³o
READ0/1 .
Polecenie umoøliwia zmianÍ
dotychczasowego has³a zabezpie-
czaj¹cego matryce Array0 i† Array1
przed odczytem.
Anulowanie ostatniego
polecenia
Sk³adnia polecenia:
RST
Wys³anie polecenia RST powo-
duje natychmiastowy powrÛt kon-
trolera programatora do stanu
oczekiwania (logicznego wyzero-
wania). DziÍki temu moøna np.
anulowaÊ ostatnio wys³ane pole-
cenie zapisu matrycy pamiÍcio-
wej.
Polecenie to nie ma øadnego
wp³ywu na kartÍ.
Zmiana has³a
zabezpieczaj¹cego dostÍp
do poleceÒ RESET
Sk³adnia polecenia:
Crr: xxxxxxxxxxxxxxxx : yyyyyy-
yyyyyyyyyy
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na dotychczasowe
has³o RESET ;
y - znaki szesnastkowe 0..F
Zmiana hase³ zapisu
Sk³adnia polecenia:
Cw a : xxxxxxxxxxxxxxxx : yyyyy-
yyyyyyyyyyy
Elektronika Praktyczna 10/98
65
30538319.001.png
Czytnik−programator kart chipowych
sk³adaj¹ce siÍ na no-
we has³o RESET .
Polecenie umoøli-
wia modyfikacjÍ has-
³a zabezpieczaj¹cego
dostÍp do poleceÒ
zerowania rejestrÛw
hase³, licznika b³Íd-
nych prÛb i†matryc
pamiÍciowych.
Zerowanie
matryc
pamiÍciowych
oraz rejestrÛw
hase³
Sk³adnia polece-
nia:
DRS: xxxxxxxxxxxxxxxx
x - znaki szesnastkowe 0..F
sk³adaj¹ce siÍ na has³o RESET .
Polecenie umoøliwia wyzero-
wanie licznika b³Ídnych prÛb,
obydwu matryc pamiÍciowych
oraz rejestrÛw hase³.
Rys. 12. Okno programu wyświetlającego
zdjęcie użytkownika karty.
jestracji i†identyfikacji osÛb
wchodz¹cych do chronionego po-
mieszczenia.
Mniejsz¹ matrycÍ pamiÍciow¹
Array0 wykorzystano do przecho-
wywania numeru identyfikuj¹ce-
go posiadacza karty. MatrycÍ pa-
miÍciow¹ Array1 wykorzystano
do przechowywania zdjÍcia uøyt-
kownika karty. Plik zawieraj¹cy
zdjÍcie musi mieÊ objÍtoúÊ 8192B
i†powinien byÊ zapisany w†stan-
dardzie JPG. Przy pomocy osob-
nego okna prezentowanego pro-
gramu moøliwy jest zapis iden-
tyfikatora oraz zdjÍcia do karty
chipowej.
Prezentowane oprogramowanie
bÍdzie wchodzi³o w†sk³ad zesta-
wu AVT-468.
Piotr Zbysiński, AVT
Poprawne wykonanie polece-
nia sygnalizowane jest przez pro-
gramator tekstowym potwierdze-
niem ìOK...î. W†przypadku b³Ídu
sk³adni polecenia wysy³any jest
komunikat o†przypuszczalnym b³Í-
dzie.
Przy pomocy zestawu pole-
ceÒ przedstawionego powyøej
moøliwe jest wykonanie prak-
tycznie wszystkich operacji na
karcie z†poziomu programu ter-
minalowego. Implementacja tych
poleceÒ w†dowolnym programie
narzÍdziowym, napisanym spe-
cjalnie z†myúl¹ o†wspÛ³pracy
z†czytnikiem umoøliwia osi¹g-
niÍcie bardzo interesuj¹cych
efektÛw - przyk³adem niech bÍ-
dzie program obs³uguj¹cy stero-
wany elektronicznie zamek
z†identyfikacj¹ osÛb wchodz¹-
cych.
Autor zastrzega moøliwoúÊ
modyfikacji programu steruj¹-
cego prac¹ czytnika - progra-
matora. Informacje o†wpro-
wadzonych modyfikacjach bÍ-
d¹ do³¹czane do zestawÛw
AVT-468.
Przyk³adowa aplikacja
DziÍki uniwersalnej konstruk-
cji karty chipowe mog¹ znaleüÊ
ca³y szereg zastosowaÒ. Jednym
z†najbardziej oczywistych jest
elektroniczna kontrola dostÍpu.
W†laboratorium AVT powsta³o
proste oprogramowanie dla kom-
putera PC (Windows 95) steru-
j¹ce prac¹ czytnika ( rys. 12 ),
ktÛre moøna wykorzystaÊ do re-
Trwaj¹ prace nad prostym,
autonomicznym czytnikiem
kart chipowych, ktÛre bÍdzie
moøna stosowaÊ jako stacjo-
narne sterowniki zamkÛw
elektromagnetycznych. Projekt
takiego urz¹dzenia przedsta-
wimy w†jednym z†najbliø-
szych numerÛw EP.
66
Elektronika Praktyczna 10/98
 
30538319.002.png
Zgłoś jeśli naruszono regulamin