system bezstykowej kontroli.pdf

(426 KB) Pobierz
System bezstykowej kontroli dostępu - AVT-886
System bezstykowej kontroli dostêpu
System bezstykowej
kontroli dostêpu
kit AVT-886
Mamy nadziejê, ¿e ten
projekt i artyku³ spodoba siê
Czytelnikom zainteresowanym
systemami kontroli dostêpu.
S¹dzimy, ¿e znajd¹ co dla
siebie zarówno praktycy
chc¹cy samodzielnie
uruchomiæ taki minisystem
jak i Czytelnicy, którzy
pragn¹ jedynie o nim
poczytaæ. Ponadto, pisz¹cy
oprogramowanie dla
sterowników procesorowych
znajd¹ wskazówki, jak
poradziæ sobie z sortowaniem
du¿ych baz danych.
Zadaniem systemu kontroli do-
stêpu jest identyfikacja obiektu
(osoby lub przedmiotu), a nastêp-
nie podjêcie okrelonego dzia³ania.
Za tak ogóln¹ definicj¹ mog¹ siê
kryæ bardzo ró¿ne sposoby dzia-
³ania i zastosowania systemu. Mo-
¿e on pe³niæ rolê elektronicznego
stró¿a przy drzwiach (wpuszczam
tego kogo znam), dyskretnego nad-
zorcy rejestruj¹cego poruszanie siê
osób wewn¹trz obiektu (biura, za-
k³adu przemys³owego, chronionego
obiektu), elektronicznego sprze-
dawcy, który mo¿e wydawaæ lub
wypo¿yczaæ towar obliczaj¹c na-
le¿noæ, a nawet nieub³aganego
kadrowca, który pod koniec przed-
stawi dok³adne zestawienie czasu
pracy ka¿dego pracownika, bezli-
tonie karz¹c spónialskich.
¯eby móc pe³niæ ka¿d¹ z tych
ról, uk³ad musi najpierw rozró¿-
niaæ osoby i ich uprawnienia, a na-
stêpnie wykonywaæ okrelone
czynnoci, np. zwalniaæ rygiel
drzwi i ewentualnie zapamiêtywaæ
dane wchodz¹cego. Chocia¿ ludzi
¿yj¹cych na Ziemi jest coraz wiê-
cej, uk³ad powinien mieæ mo¿li-
woci bezb³êdnej identyfikacji oso-
by. Najnowoczeniejsze systemy
analizuj¹ w tym celu osobiste i nie-
powtarzalne cechy, z którymi ka¿-
dy z nas przychodzi na wiat.
Mo¿e to byæ rysunek linii papi-
larnych naszego palca, wzór tê-
czówki oka, a w przysz³oci mo¿e
fragment sekwencji kodu genetycz-
nego. Mniej skomplikowane syste-
my ¿¹daj¹ od kontrolowanej osoby
przedstawienia specjalnego identy-
fikatora, w którym ukryte jest has-
³o dostêpu, najczêciej niepowta-
rzalny wielocyfrowy numer. Ze
wzglêdu na wygodê, obecnie tê
rolê pe³ni¹ plastykowe karty iden-
tyfikacyjne znane np. posiadaczom
kont bankowych. W kartach tych
oprócz dodatkowych informacji za-
pisany jest tzw. PIN-kod, którego
jednoczesne odczytanie z karty
i wpisanie przez u¿ytkownika
umo¿liwia np. dostêp do swojego
konta i korzystanie z us³ug banko-
matu. Podobnego rodzaju karty
i sposób ich stosowania spotykany
jest przy ró¿nego typu zamkach
szyfrowych. Jednak je¿eli uk³ad
kontroli dostêpu mia³by byæ zasto-
sowany w miejscach, gdzie prze-
p³yw ludzi jest bardzo du¿y, to
taki system nie jest najlepszy.
Mo¿na sobie wyobraziæ t³um ki-
biców pi³karskich przed wejciem
na stadion, gdy ka¿dy z wchodz¹-
10
Elektronika Praktyczna 10/2000
P R O J E K T Y
32058617.051.png
System bezstykowej kontroli dostêpu
cych musi przeci¹gn¹æ kartê przez
szczelinê czytnika, a potem jeszcze
wystukaæ na klawiaturze PIN-kod,
który w³anie zapomnia³. Awantu-
ry i bitwy ze s³u¿bami porz¹dko-
wymi s¹ pewne. W takim przypad-
ku lepiej skorzystaæ z kart trans-
ponderowych przekazuj¹cych kod
za pomoc¹ pola elektromagnetycz-
nego. Takie karty wymagaj¹ jedy-
nie zbli¿enia karty w okolicê czyt-
nika bez koniecznoci potwierdza-
nia kodu. Identyfikacja wchodz¹-
cych jest równie skuteczna, a prze-
p³yw ludzi du¿o wiêkszy.
Ze wzglêdu na sposób dzia³a-
nia, czytnik mo¿e prawid³owo
zidentyfikowaæ kartê z odleg³oci
kilku, kilkunastu centymetrów.
Dystans ten zwiêksza siê do metra
lub wiêcej w przypadku kart, któ-
re do swojego zasilania wykorzys-
tuj¹ wewnêtrzne miniaturowe ba-
terie. Zazwyczaj ze wzglêdu na
oszczêdny sposób korzystania
z energii, karty takie mog¹ praco-
waæ przez kilka lat, jednak po
wyczerpaniu siê baterii nie mo¿na
ju¿ ich dalej wykorzystywaæ.
ró¿nych formatach. Funkcje po-
szczególnych wyprowadzeñ czyt-
nika s¹ nastêpuj¹ce:
1. GND.
2. Kod karty odczytywany w forma-
cie 1-Wire DS1990 firmy Dallas.
3. Kod karty w formacie transmisji
RS232 o parametrach:
- prêdkoæ 2400bd,
- 8 bitów danych,
- 1 bit stopu,
- bez kontroli parzystoci.
4. Kod karty w formacie 40 impul-
sów o ró¿nym czasie trwania.
Bitowi 0 odpowiada ujemny im-
puls o d³ugoci 120µs a bitowi
1 impuls 30µs.
5. Pojedynczy ujemny impuls
o czasie trwania 120µs poprzed-
zaj¹cy pocz¹tek nowej transmis-
ji 40-bitowego kodu.
6. Zasilanie +5V (redni pobór
pr¹du 35mA).
Karta transponderowa
W sposób schematyczny budo-
wê karty transponderowej pokaza-
no na rys. 1 . G³ównymi elemen-
tami karty s¹: miniaturowy uk³ad
elektroniczny i do³¹czona do nie-
go pêtla anteny. Do dzia³ania
karty niezbêdne jest zewnêtrzne
zmienne pole elektromagnetyczne.
Pole wzbudza w antenie zmienny
pr¹d, który po wyprostowaniu
i odfiltrowaniu zasila uk³ad karty.
Z kolei uk³ad poprzez modulacjê
pola, z którego pobiera energiê,
mo¿e przes³aæ do czytnika zako-
dowan¹ informacjê, np. swój nu-
mer. Jak z tego widaæ, ca³y proces
wymiany danych zachodzi pomiê-
dzy antenami czytnika i karty za
pomoc¹ pola elektromagnetyczne-
go wytwarzanego przez czytnik.
Zazwyczaj czêstotliwoæ genero-
wanego pola wynosi 125kHz, cho-
cia¿ s¹ systemy, w których ta
czêstotliwoæ wynosi kilkanacie
megaherców.
Systemy wewnêtrznej elektro-
niki karty wytwarzane s¹ maso-
wo przez kilku wielkich wytwór-
ców. Chipy uk³adów elektronicz-
nych s¹ po przetestowaniu ³¹czo-
ne z uzwojeniem anteny, a na-
stêpnie ca³oæ zalewana jest elas-
tycznym ¿elem. Tak przygotowane
uk³ady wysy³ane s¹ do koñcowe-
go producenta, który opakowuje
uk³ady w plastikowe wafle. Na
tych plastikowych ochronnych
p³ytkach mog¹ byæ nadrukowane
dane identyfikacyjne odbiorcy,
a nawet nazwisko i fotografia koñ-
cowego u¿ytkownika karty.
Sposób budowy karty czyni j¹
znacznie odporniejsz¹ na znisz-
czenie ni¿ karty z paskiem mag-
netycznym. Najczêciej, nawet po
przypadkowym zagiêciu karta mo-
¿e byæ jeszcze odczytana.
Karta i czytnik
z rodziny UNIQUE
W projekcie naszego minisyste-
mu kontroli dostêpu jako element
identyfikuj¹cy u¿yte zosta³y karty
transponderowe z rodziny UNI-
QUE. S¹ to karty tylko do odczytu,
tzn. ¿e informacjê, zakodowan¹ na
etapie produkcji w miniaturowej
koci ka¿dej z kart, u¿ytkownik
mo¿e tylko odczytywaæ. Pod wp³y-
wem pola elektromagnetycznego
czytnika karta wysy³a swój 64-
bitowy kod. Sk³ada siê on z 9
bitów nag³ówka, 40 bitów numeru
i 15 bitów kontrolno-korekcyjnych,
wykorzystywanych do eliminacji
b³êdów transmisji. Jak gwarantuje
producent, 40-bitowy numer jest
unikatowy, co znaczy, ¿e nie mog¹
pojawiæ siê dwie karty o takim
samym numerze. Dziêki takiemu
za³o¿eniu posiadacz karty mo¿e
byæ bezb³êdnie zidentyfikowany,
a potencjalna pojemnoæ bazy nu-
merów gwarantuje, ¿e nawet gdy-
by obdarowano kartami wszystkich
mieszkañców planety, i tak wiele
numerów pozosta³oby jeszcze nie
wykorzystanych.
W zaprojektowanym systemie
do odczytu kart wykorzystano zin-
tegrowany czytnik, w którym na
jednej, zabezpieczonej przed
wp³ywami atmosferycznymi p³ytce
znajduje siê elektronika oraz wy-
trawione zwoje anteny nadawczo-
odbiorczej. (Dostêpne s¹ tak¿e czyt-
niki bez anteny, któr¹ jako zewnêt-
rzny, samodzielnie wykonany ele-
ment do³¹cza siê do czytnika.)
Na rys. 2 pokazano schema-
tycznie wygl¹d czytnika i rozk³ad
jego wyprowadzeñ. Do dwóch z 6
wyprowadzeñ pod³¹cza siê zasila-
nie czytnika (+5V), a na pozosta-
³ych po odczycie karty pojawia
siê jej 40-bitowy kod w kilku
Za³o¿enia techniczne
i schemat uk³adu
Do stworzenia chocia¿by naj-
prostszego systemu kontroli dostê-
pu sam czytnik jednak nie wy-
starcza. Potrzebny jest jeszcze
uk³ad sterownika, który bêdzie
decydowa³, co nale¿y zrobiæ po
odczycie numeru karty oraz ste-
rowa³ uk³adami wykonawczymi.
Przy opracowaniu konstrukcji ta-
kiego sterownika przyjêto nastê-
puj¹ce za³o¿enia:
1. Sterownik bêdzie wspó³pra-
cowaæ z zewnêtrznym programem,
za pomoc¹ którego bêdzie mo¿na
ustalaæ parametry pracy uk³adu
kontroli dostêpu. Jednoczenie kon-
strukcja sterownika powinna umo¿-
liwiæ samodzieln¹ pracê uk³adu.
2. Sterownik powinien posia-
daæ blok pamiêci nieulotnej,
w której by³aby przechowywana
baza danych o kartach, ich upra-
wnieniach, a tak¿e gromadzone by
by³y informacje o odczytanych
w czasie pracy czytnika kartach.
3. Sterownik wspó³pracuj¹cy
z czytnikiem kart powinien po
ka¿dym odczycie porównywaæ da-
Rys. 1. Budowa karty transpondero-
wej.
Elektronika Praktyczna 10/2000
11
32058617.060.png
System bezstykowej kontroli dostêpu
ne karty z informacjami zapisany-
mi w swojej bazie, a nastêpnie
sterowaæ urz¹dzeniem wykonaw-
czym, np. ryglem zamka. Informa-
cja o odczytanej karcie powinna
byæ zapamiêtywana do póniejsze-
go wykorzystania przez u¿ytkow-
nika systemu kontroli dostêpu.
Na rys. 3 pokazano schemat
sterownika uk³adu kontroli dostê-
pu, spe³niaj¹cy przyjête wczeniej
za³o¿enia. Centraln¹ czêci¹ ste-
rownika jest procesor U2, który
za porednictwem uk³adu U8
i gniazda Zl1 mo¿e wymieniaæ
dane z zewnêtrznym programem
zainstalowanym na komputerze
PC. Wszystkie dane gromadzone
w czasie pracy systemu przecho-
wywane s¹ w pamiêci RAM U3.
Nawet je¿eli uk³ad nie jest zasi-
lany, zawartoæ pamiêci podtrzy-
mywana jest dziêki baterii BT1.
Uk³ad U11 pe³ni rolê inteligent-
nego prze³¹cznika zasilania. Nie-
przerwanie monitoruje napiêcie
+5V zasilaj¹ce sterownik. W mo-
mencie zaniku zasilania, gdy jego
wartoæ spadnie poni¿ej 4,62V,
uk³ad b³yskawicznie prze³¹cza za-
silanie pamiêci na podtrzymanie
bateryjne, jednoczenie podaj¹c
na wejcie CS pamiêci U3 poziom
wysoki. Dziêki temu zablokowana
jest mo¿liwoæ przypadkowego za-
pisu b³êdnych danych, co mog³o-
by siê zdarzyæ w czasie zaniku
napiêcia zasilania, gdy dzia³anie
procesora mo¿e ju¿ byæ zak³óco-
ne. Gdy napiêcie zasilania po-
nownie przekroczy poziom 4,62V,
bateria zostaje od³¹czona, napiêcie
+5V podane na uk³ad pamiêci,
a mo¿liwoæ zapisu do pamiêci
ponownie jest przywracana. Do
prawid³owej pracy uk³adu nie-
zbêdne jest, aby napiêcie baterii
podtrzymuj¹cej mieci³o siê
w przedziale od +2,5V do +4V.
Z czytnikiem, który przekazuje
dane odczytanych kart transpon-
derowych, procesor komunikuje
siê za porednictwem z³¹cza JP1.
O odczycie nowej karty procesor
jest informowany przez pojawie-
nie siê pojedynczego impulsu na
z³¹czu JP1-5, poprzedzaj¹cego po-
cz¹tek ka¿dej transmisji. Nastêp-
nie ujemne zbocza impulsów stro-
buj¹cych (JP1-4) wyznaczaj¹ mo-
ment odczytu przesy³anych szere-
gowo bitów danych lini¹ JP1-3.
Procesor mo¿e sterowaæ ze-
wnêtrznymi uk³adami wykonaw-
czymi, np. ryglem drzwi lub
sygnalizacj¹, za porednictwem
gniazda JP2. Kiedy odczytana kar-
ta posiada odpowiednie uprawnie-
nia, procesor poprzez tranzystor
T1 wymusza na wyjciu JP2-1
poziom niski o czasie trwania
0,5s. Oczywicie, sterowanie ryg-
lem zamka, który do swojej pracy
potrzebuje du¿ego pr¹du, nie jest
mo¿liwe przy u¿yciu jedynie tran-
zystora T1. Potrzebny jest wiêc
uk³ad porednicz¹cy np. przeka-
nik lub uk³ad Darlingtona (np.
ULN2002). Je¿eli odczytana karta
nie ma uprawnieñ do wejcia, na
JP2-2 przez ok. 3s wystêpuje
poziom niski, który w podobny
sposób jak opisany przed chwil¹
impuls zezwolenia mo¿na wyko-
rzystaæ do sterowania ostrzegaw-
czym sygna³em wietlnym lub
dwiêkowym.
Na p³ytce sterownika zamonto-
wany jest tak¿e uk³ad U9, bêd¹cy
zegarem czasu rzeczywistego,
z którego mo¿na równie¿ odczy-
tywaæ aktualn¹ datê. Zegar, po-
dobnie jak pamiêæ danych, jest
w czasie zaniku napiêcia zasilania
podtrzymywany bateryjnie.
Z kolei uk³ad U10 chroni pro-
cesor przed zak³óceniami wynika-
j¹cymi z niebezpiecznego obni¿e-
nia siê napiêcia zasilania. Gdy
spadnie ono poni¿ej wartoci kry-
tycznej, procesor jest zerowany.
Uk³ad, zarówno funkcjonalnie, jak
i rozk³adem nó¿ek, odpowiada po-
dobnemu uk³adowi zeruj¹cemu
DS1812.
Uk³ad kontroli dostêpu mo¿e
byæ zasilany zarówno napiêciem
sta³ym, jak i zmiennym podawa-
nym za porednictwem gniazda
JP4. Wartoæ tego napiêcia powin-
na mieciæ siê w granicach 8..12V.
Napiêcie mo¿e byæ nawet wy¿sze,
jednak ze wzglêdu na pobierany
przez uk³ad pr¹d ok. 100mA ko-
nieczny bêdzie radiator przykrêca-
ny do uk³adu stabilizatora U12.
Rys. 2. Wygl¹d czytnika i rozk³ad
jego wyprowadzeñ.
docznego dla u¿ytkownika spo-
wolnienia szybkoci dzia³ania.
Praktyka pokazuje, ¿e najwiêk-
sze k³opoty sprawia przeszukiwa-
nie bazy numerów zarejestrowa-
nych w systemie kart. Im baza jest
wiêksza, tym napotykane k³opoty
s¹ wiêksze.
Podstawowym problemem jest
czas potrzebny na porównanie
numeru odczytanej karty z nume-
rami w bazie, aby stwierdziæ, czy
jej w³aciciel posiada prawo do
otwarcia drzwi. Dla ilustracji naj-
lepiej pos³u¿yæ siê przyk³adem.
Opisywany system kontroli ma
mo¿liwoæ zapamiêtania do 256
kart w swojej bazie. Przeciêtny
czas trwania porównania odczyta-
nego przez czytnik 5-bajtowego
numeru karty z numerem na ko-
lejnej pozycji w bazie trwa ok.
2 tysiêcy cykli, co przy zastoso-
wanym kwarcu procesora daje
w przybli¿eniu czas 2ms. Je¿eli
ca³a baza zostanie zapisana, a nu-
mer odczytanej karty bêdzie za-
rejestrowany na ostatniej pozycji,
to przy przeszukiwaniu bazy me-
tod¹ kolejnych porównañ nale¿y
ca³y cykl powtórzyæ 256 razy, co
daje w sumie czas trwania ca³ej
operacji równy ok. 0,5s. Nie jest
to wiele, a w dodatku mo¿na by
spróbowaæ zoptymalizowaæ ca³¹
procedurê i jeszcze trochê ten
czas skróciæ. Co jednak zrobiæ,
gdy kart w bazie jest 1000 lub
20000 (a po pewnych zmianach
konstrukcyjnych czytnik jest
w stanie tak¹ bazê kart obs³ugi-
waæ)? Za³o¿enie, ¿e wchodz¹cy na
reakcjê urz¹dzenia bêdzie czeka³
4 lub wiêcej sekund jest nie do
przyjêcia. Mo¿na co prawda
zwiêkszyæ szybkoæ taktowania
Sortowanie bazy danych
Nadszed³ czas, ¿eby wspomnieæ
o oprogramowaniu procesora za-
rz¹dzaj¹cego prac¹ systemu.
Wbrew pozorom jego obowi¹zki
s¹ spore, musi bowiem wspó³pra-
cowaæ z czytnikiem kart, obs³ugi-
waæ port szeregowy RS232, prze-
szukiwaæ bazê danych i sterowaæ
urz¹dzeniami wykonawczymi.
A wszystko jednoczenie, bez wi-
12
Elektronika Praktyczna 10/2000
32058617.061.png
System bezstykowej kontroli dostêpu
procesora, ale w pewnym momen-
cie i taka mo¿liwoæ nie wystar-
czy, tym bardziej, ¿e mamy do
czynienia z ma³ymi procesorami
jednouk³adowymi, a nie potê¿ny-
mi procesorami do komputerów
klasy PC. Jedynym wyjciem jest
zastosowanie specjalnej procedury
sortuj¹cej, która znacz¹co skróci
czas wyszukiwania i porównywa-
nia numerów kart. W czytniku
zastosowana zosta³a metoda wy-
szukiwania z podzia³em przez pó³.
Metoda ta jest znana od daw-
na i stosowana tak¿e w kompute-
rach PC do przeszukiwania baz
danych. Na pocz¹tku wymaga
tylko przyjêcia jednego za³o¿enia:
numery kart przechowywane
w bazie bêd¹ w sposób uporz¹d-
kowany tzn. od najmniejszego do
najwiêkszego albo odwrotnie,
przy czym numery nastêpuj¹cych
po sobie w bazie kart nie musz¹
byæ numerami kolejnymi. Wa¿ne,
aby numer karty w bazie by³ np.
starszy od numeru go poprze-
dzaj¹cego, a m³odszy od nume-
ru nastêpnego. Gdybymy przy-
k³adowo przyjêli bazê o pojem-
noci 200 numerów 1-bajtowych,
to mog³aby ona wygl¹daæ nastê-
puj¹co: 3, 4, 10, 16, 17, 44 itd.
Przystêpuj¹c do sprawdzenia, czy
np. numer 17 wystêpuje w bazie
nale¿y jedynie wiedzieæ, ile nu-
merów jest ju¿ w bazie zapisa-
nych. Kolejne kroki wyszukiwa-
nia numeru bêd¹ wygl¹da³y na-
stêpuj¹co:
1. Zmiennej lim_l nale¿y przy-
pisaæ najm³odszy adres w bazie,
czyli 0, a zmiennej lim_h najstar-
szy wykorzystany adres w bazie.
2. Nale¿y obliczyæ adres ele-
mentu, który bêdzie pobrany z ba-
zy do porównañ compare . Adres
ten zostanie wyznaczony ze wzo-
ru compare = (lim_h - lim_l)/2 .
Oczywicie, gdy wyst¹pi czêæ
u³amkowa wynik nale¿y zaokr¹g-
liæ w górê lub w dó³ tak, aby
otrzymaæ liczbê ca³kowit¹.
3. Z bazy nale¿y pobraæ numer
spod adresu compare . Nastêpnie
numer ten nale¿y porównaæ z nu-
merem szukanym.
4. Gdy numery s¹ identyczne
koñczymy procedurê w tym miej-
scu.
5. Jeli numer pobrany z bazy
jest wiêkszy od numeru szukane-
go, nale¿y wykonaæ nastêpuj¹ce
operacje:
a.Przypisaæ zmiennej lim_h war-
toæ compare , czyli lim_h =
compare .
b.Obliczyæ nowy adres compare
korzystaj¹c ze wzoru compare =
lim_l + (lim_h - lim_l)/2 .
c.Skoczyæ do punktu 3 kontynu-
uj¹c porównania.
6. Jeli numer pobrany z bazy
jest mniejszy od numeru szuka-
nego, nale¿y wykonaæ nastêpuj¹ce
operacje:
a.Przypisaæ zmiennej lim_l war-
toæ compare , czyli lim_l =
compare .
b.Obliczyæ nowy adres compare
korzystaj¹c ze wzoru compare =
lim_l + (lim_h - lim_l)/2 .
c.Skoczyæ do punktu 3 kontynu-
uj¹c porównania.
Wykorzystuj¹c taki algorytm,
z zawê¿aniem przeszukiwanego
obszaru w ka¿dym kroku o po³o-
wê, w ca³kowicie zape³nionej ba-
zie 200-elementowej szukany nu-
mer zidentyfikujemy po maksy-
malnie 8 krokach. Dla bazy o po-
jemnoci 2000 elementów potrze-
ba maksymalnie 11 kroków, a wiêc
oszczêdnoci czasowe s¹ znaczne.
Algorytm ten mo¿na prze³o¿yæ
na fragment programu procesora.
Najwygodniej bêdzie to zrobiæ po-
s³uguj¹c siê zapisem w jêzyku C.
if (wynik == 0) return compare;
if (wynik > 0)
{
lim_h = compare;
compare = lim_l + (lim_h - lim_l)/2;
}
if (wynik < 0)
{
lim_l =compare;
compare = lim_l + (lim_h - lim_l)/2;
}
}
}
//Procedura porównania numeru z bazy
//z numerem szukanym
//parametr wejciowy: adres elementu z bazy
//u¿yty do porównañ z numerem szukanym
//parametr wyjciowy:
// 0 - numery s¹ sobie równe
// -1 - numer w bazie jest mniejszy od numeru
// szukanego
// 1 - numer w bazie jest wiêkszy od numeru
// szukanego
signed char ProceduraPorownania(unsigned char
compare)
{
if (baza[compare] == szukany_adres) return 0;
if (baza[compare] < szukany_adres) return -1;
if (baza[compare] > szukany_adres return 1;
}
Przedstawiony fragment progra-
mu wymaga kilku s³ów komenta-
rza. Ca³a procedura sk³ada siê
z dwóch podprogramów: Procedu-
raSzukania() ProceduraPorowna-
nia() . Drugi z podprogramów do-
konuje porównania wartoci zapi-
sanej w bazie z szukan¹ wartoci¹
i zwraca taki parametr, jak to
opisano w komentarzu. Procedury
porównañ u¿yte na pocz¹tku pod-
programu ProceduraSzukania() ma-
j¹ za zadanie ustalenie, czy szu-
kany numer nie jest wpisany na
pierwszej lub na ostatniej pozycji
bazy. Jeli za wartoæ szukanego
numeru jest mniejsza od wartoci
numeru zapisanego na pierwszej
pozycji bazy lub wartoæ ta jest
wiêksza od wartoci numeru za-
pisanego na ostatniej pozycji bazy,
to wiadomo, ¿e szukanego numeru
w bazie nie ma.
Oprogramowanie procesora ste-
ruj¹cego uk³adem kontroli dostê-
pu, w czêci zwi¹zanej z przeszu-
kiwaniem bazy danych kart, jest
zbli¿one do przedstawionego po-
wy¿ej. Ró¿nice polegaj¹ na doda-
niu kilku zabezpieczeñ, np. pusta
baza nie jest przeszukiwana.
I oczywicie numery kart s¹ 5-
bajtowe, przechowywane w ze-
wnêtrznej pamiêci RAM.
// zmienne globalne
unsigned char baza[200];
unsigned char najstarszy_adres_bazy;
unsigned char szukany_adres;
//Procedura odszukania w bazie pozycji
//adresu szukany_adres
//parametr wyjciowy: odszukana pozycja
//w bazie lub 0xFF gdy element nie wystêpuje /
/w bazie
unsigned char ProceduraSzukania(void)
{
unsigned char compare, lim_l, lim_h;
lim_l = 0;
lim_h = najstarszy_adres_bazy;
wynik = ProceduraPorownania(lim_l);
if (wynik == 0) return lim_l;
//szukany numer wpisany jest na 0 pozycji bazy
if (wynik == 1) return 0xFF;
// w bazie nie ma szukanego elementu
wynik = ProceduraPorownania(lim_h);
if (wynik == 0) return lim_h;
//szukany numer wpisany jest na ostatniej
//pozycji bazy
if (wynik == -1) return 0xFF;
//w bazie nie ma szukanego elementu
compare = (lim_h - lim_l)/2;
while (compare != 0)
{
wynik = ProceduraPorownania(compare);
Elektronika Praktyczna 10/2000
13
 
System bezstykowej kontroli dostêpu
Transmisja pomiêdzy
sterownikiem
a programem steruj¹cym
Normalnie uk³ad kontroli do-
stêpu dzia³a jako autonomiczne
urz¹dzenie, które odczytuje nu-
mer zbli¿onej do czytnika karty
i odpowiednio do sytuacji steruje
urz¹dzeniami wykonawczymi. ¯e-
by jednak tak funkcjonowaæ,
uk³ad musi byæ najpierw
nakarmiony danymi. Dane o nu-
merach kart uprawnionych, ogra-
niczeniach dostêpu czy chocia¿-
by ustawienia zegara czasu
rzeczywistego pochodz¹ z progra-
mu steruj¹cego i przekazywane s¹
za porednictwem portu szerego-
wego RS232. Program steruj¹cy
zainstalowany na komputerze kla-
sy PC zarz¹dza centraln¹ baz¹
kart, która w postaci pliku prze-
chowywana jest w tym samym
katalogu co program. W bazie tej
ka¿dy numer zarejestrowanej kar-
Rys. 3. Schemat elektryczny sterownika uk³adu kontroli dostêpu.
14
Elektronika Praktyczna 10/2000
32058617.001.png 32058617.002.png 32058617.003.png 32058617.004.png 32058617.005.png 32058617.006.png 32058617.007.png 32058617.008.png 32058617.009.png 32058617.010.png 32058617.011.png 32058617.012.png 32058617.013.png 32058617.014.png 32058617.015.png 32058617.016.png 32058617.017.png 32058617.018.png 32058617.019.png 32058617.020.png 32058617.021.png 32058617.022.png 32058617.023.png 32058617.024.png 32058617.025.png 32058617.026.png 32058617.027.png 32058617.028.png 32058617.029.png 32058617.030.png 32058617.031.png 32058617.032.png 32058617.033.png 32058617.034.png 32058617.035.png 32058617.036.png 32058617.037.png 32058617.038.png 32058617.039.png 32058617.040.png 32058617.041.png 32058617.042.png 32058617.043.png 32058617.044.png 32058617.045.png 32058617.046.png 32058617.047.png 32058617.048.png 32058617.049.png 32058617.050.png 32058617.052.png 32058617.053.png 32058617.054.png 32058617.055.png 32058617.056.png 32058617.057.png 32058617.058.png 32058617.059.png
Zgłoś jeśli naruszono regulamin