\
/
U2
LCD 16*2
Pfrio>
RST |
WR |
FC |
0x00 |
0xCO |
0x00 |
GkOC |
adres jcRC| CM | dane zatażie ud «xnerrfy |
1 |
2 |
3 |
4 |
5 |
e |
7 | 8 | 9 1 10 | 11 | 12 | 13 | 14 | - | 40 | 41 | 42 | 43 |
RST - soKw*ooa resetu niqo*ana przaz Mastera MR - Matoh ROMiOxS5)
FC • Family Coda [OxM - dta czytnika)
CM - komenda (Tabela 1)
Rys. 5
Tabela 1
kod |
opis |
0x0F |
write scratchpad |
0xAA |
read sera ten pad |
0xCQ |
otwórz na D1 sekund |
(D1=0 - zamknij D1=0xFF - otwórz na stałe) | |
0xC7 |
wczytaj A raport/ od D1 włącznie (32 bajty) |
0xC3 |
dodaj klucz (D1-D32) |
0xC9 |
modyfikuj klucz o numerze Dl |
0xCE |
wykasuj wszystkie klucze i raport |
0xCF |
wykasuj raport |
Dxx dana dodatkowa |
napięcia +5V do układu. W czytniku przewidziano możliwość dołączenia zasilania awaryjnego w postaci baterii 9V, na wypadek zaniku prądu. Dzielnik złożony z rezystorów R30 i R3l umożliwia kontrolę obecności napięcia zasilania. Sercem całego układu jest mikrokontroler AVR ATmegaló. Dołączono do niego S-przyciskową klawiaturę, wyświetlacz tekstowy LCD, dwukolorową diodę sygnalizacyjną, bnzzer oraz układ pamięci AT24C256. Dodatkowo przewidziano możliwość zastosowania interfejsu RS485 poprzez, układ MAX485. Mikroprocesor taktowany jest z zewnętrznego kwarcu X2, dodatkowo dołączono kwarc zegarkowy niezbędny do poprawnej pracy wbudowanego zegara czasu rzeczywistego.
Elementem wykonawczym układu jest przekaźnik małej mocy wystarczający do otwarcia eleklrozaczepu.
Program na mikroprocesor został napisany w języku C i skompilowany za pomocą kompilatora AVR GCC w bezpłatnym środowisku AVRSide. Kod wynikowy programu zajmuje ponad l2kB, z czego dosyć dużo miejsca poświęcone jest na komunikację z użytkownikiem poprzez klawiaturę i LCD. Pełny kod źródłowy dostępny jest w Elportalu EdW. Mikroprocesor po inicjałizacji wyświetlacza, interfejsów, itp. przechodzi do nieskończonej pętli, w której oczekuje na przyłożenie trans-pondera bądź wejście do menu. Obsługa interfejsu lwire oparta jest o przerwanie zewnętrzne. Co 1 sekundę wywoływana jest
Rys. 4
MR30 i |
[D7 | |
Um | ||
+ |
Ba( | |
9V | ||
R31 |
PM |
OND |
AU |
procedura obsługi przerwania odpowiedzialna za odliczanie czasu.
W czytniku zrezygnowano z kontroli bitów parzystości, więc układ odbiera kolejne 64 bity, dekoduje je, znajduje początek ramki i w takiej postaci zapisuje, a następnie porównuje z kluczami już zarejestrowanymi. Numery tych kluczy wraz z dodatkowym bajtem umożliwiającym wyłączenie klucza oraz z opisem przechowywane są w wewnętrznej pamięci EEPROM mikrokontrolera. W pamięci tej umieszczone są także ustawienia czytnika. Natomiast cała zewnętrzna pamięć EFPROM została przeznaczona na dziennik zdarzeń systemu. Zainteresowanych odsyłam do kodu źródłowego, który starałem się dosyć dukładiue komentować.
Czytnik nie jest całkowicie zgodny ze specyfikacją interfejsu lwire. Aktualnie nie obsługuje na przykład polecenia Search ROM. Wprowadzonu natomiast możliwość współpracy wielu masterów na jednej linii i zaimplementowano zabezpieczenie przed jednoczesnym dostępem do interfejsu kilku masterów. Więcej o detekcji kolizji zastosowanej w systemie znajduje się w opisie interfejsu lwire o PC
Lista poleceń obsługiwanych prze/ czytnik przedstawiona jest w tabeli 1. Na rysunku 5 przedstawiono pełną ramkę służącą do
sterowania czytnikiem. W tabeli 2 zaprezentowano pozycję poszczególnych bajtów, do których możemy uzyskać dostęp poleceniami Read Scralchpad (OxAA) oraz Write Scratch-pad (OxOF). Urządzeniu została przypisana wartość Family Codę 0xA4.
Na rysunku 6 przedstawiono wzór płytki drukowanej. Jest to druk jednostronny, co pociągnęło za sobą konieczność zastosowania wielu zwor zarówno w postaci rezystorów o wartości OO, jak i zwor typowych Zaleca się ich montaż na początku, a pozostałe elementy montujemy typowo, zaczynając od najmniejszych. Większość elementów stosowanych w układzie należy przylutować od strony druku (montaż SMD) Wyświetlacz LCD można połączyć z płytką za pomocą złącz goldpin lub przewodu wielożyłowego, co umożliwi bezproblemowe ustawienie odpowiedniej wysokości przy montażu w obudowie. Przyciski należy zamontować tak, aby wystawały około 0,5-1 mm ponad obudowę. Konieczne może być przy lutowanie dodatkowych odcinków drutu w celu przedłużenia wyprowadzeń. Na płytce znajduje się miejsce na elementy do interfejsu RS232 oraz RS485, które w wersji podstawowej nie muszą być montowane. Pamiętać należy o odpowiednim przygotowaniu mikroprocesora do pracy poprzez ustawienie taktowania z zewnętrznego oscylatora kwarcowego oraz wyłączenie interfejsu JTAG.
Do poprawnej pracy niezbędna jest antena wykonana jako 40 zwojów emaliowanego drutu 0,l-0,3mm nawiniętych na średnicy około 5cm Płytka została zaprojektowana do montażu w obudowie Z-38 Otwór pod wryświetlacz należy w'ykonać
■