Top www
nie jest. oznacza to. że inny master rozpoczął wysyłanie danych i musimy się chwilowo wstrzymać z naszą transmisją. Jeżeli natomiast linia pozostaje stale w stanic wysokim, to możemy przystąpić do wystawienia impulsu RESET, a następnie swoich danych. Może się jednak zdarzyć, że dwa układy master jednocześnie zainicjalizują transmisję i żaden z nich nie wykryje obecności drugiego. Dlatego też każdy z nich musi sprawdzać rzeczywisty stan linii i wówczas, jeżeli jeden zechce wystawić logiczną 1, a drugi logiczne 0, to na linii ustali się stan logicznego 0. Wówczas master, który wystawił logiczną 1, musi chwilowo wstrzymać swoją transmisj, aż do zwolnienia linii. Bardzo podobny sposób arbitrażu wykorzystywany jest w magistrali I2C.
Prezentowany układ, w przypadku gdy nie jest możliwe wysłanie danych, ponawia próbę pięciokrotnie co Is. Załączona jest wówczas czerwono sekcja diody sygnalizacyjnej. Zainteresowanych szczegółami odsyłam do przeglądania kodu źródłowego programu.
Na rysunku 2 przedstawiono płytkę drukowaną. Mikroprocesor, układ MAX232 oraz rezystory i większość kondensatorów zastosowano w obudowach do montażu powierzchniowego. W interfejsie użyto złącza DB9F, co umożliwia bezpośrednie podłączenie układu do złącza na płycie głównej komputera. Konieczne jest jedynie wlutowanie zwory pomiędzy wyprowadzeniami 4 i 6 złą-
Listing 2 | |
Int1 wysl i (voł di | |
int l; | |
P0RTBI-(1«?B3>; |
//zaświeć zielona sekcje diody sygnalizacyjnej |
P0RTBŁ-- (l«P36l ; |
//zqaś sekcję czerwoną diody sygnalizacyjnej |
if(r©s«zlw O ==-l) |
//wyślij impuls RESET t jeżeli ni© rdałr. się to |
LetULIl -1, |
!/zwróć flagę Dłędu |
for(i-3; i<bjfor[01+3;l + 0 | |
ł if(piar‘w[bufor;i') |
=«=-l) //wyślij poszczególne bajty i jeżeli nie bedzie tc |
moiliwc to! | |
return -1; |
//zwróć flagę Dłędu |
delay_100us|1J; | |
d«lay_lms(bufor[2] ); |
//odrz?kaj czas określonej w ori:gim bajcie |
for (i-O; i<bufor( 1] ; i++) | |
delay_iv(150); | |
wyąlij_bajt(czytajlv(!); //odbierz dane z linii lwire i wyślij ie do komputera | |
PORTB&fy <L<;cPb5); |
//wyłącz diodę sygrtaiizayjtią |
PORTBi— (1«PB6) ; | |
return 1; } ) | |
Listing* | |
£or(i-0; i<1303; i ♦ ł) //1000-Jcrotne aprawdsenie czy inny MASTER ni© zaczął transmisji | |
if (bit_is_clear(PINSlw, PINlw)) | |
return -1; 1 | |
cza Z3. Dane wymieniane są z komputerem z szybkością 9600 baud. Układ powinien działać od pierwszego uruchomienia. Po podłączeniu napięcia zasilania powinna zaświecić | |
się zielona dioda na Is. |
Michał Waśkiewicz |
Wykaz elementów | |
R1-F3 .............. |
.............m |
C1.C4-C8.......... |
.............10QnF |
C2.C3.............. |
.........100pF/16V |
C9.C1C |
..............27pF |
D1............... |
. LED czerwoio-ziclona |
U: ................ |
.........AT90S2313 |
U2................. |
...........LM7805 |
U3................ |
............MAK232 |
X1................ |
.............8MHz |
Z3 ................ |
.............DB9F |
Z4 ................ |
......goldoir M 3*2 |
Ztacza ARK2.......... |
..............3szt. |
Komplet podzespołów z plyifci Je$i dostępny | |
w sieci handlowej AVT jako ® Szkolny AVT-2798 |
Ciiijf Uuhzy i FM W 8/06 .)Uvn \ 20.
Wysyłane komendy możemy ustawić w programie (wpisujemy bajty szesnastkowo, oddzielając je spać ami). Kolejność zapisywanych bajtów jest następująca:
1. Match ROM (0x55)
2. Family Codę
3. Adres - starszy bajt
4. Adres - młodszy bajt
5. CRC
6. Komenda
7. Dodatkowy 1 bajt
8. Dodatkowy II bajt
Jeżeli pierwszym bajtem będzie 0xFF, to ramka nic zostanie wysłana.
Przycisk z brązowym zegarkiem umożli
wia zsynchronizowanie czasu czytnika z aktualnym czasem w systemie operacyjnym.
Na drugiej zakładce mamy możliwość zarządzania kluczami zarejestrowanymi w czytniku. Program posiada własną listę zarejestrowanych kluczy (plik KFiD.ini), co umożliwia proste dodawanie kluczy do czytnika z listy. Ostatnia zakładka umożliwia wczytanie, a następnie zapisanie dziennika na dysku.
W układzie modelowym zastosowano mikroprocesor ATmega32. Umożliwia to ewentualną rozbudowę programu (32kB pamięci Flash) a także zapisanie większej liczby kluczy (lkB pamięci EEPROM). Jeżeli ktoś potrzebowałby większej pamięci przeznaczonej na dziennik,
może wymienić układ U3 na pojemniejszy lub dołożyć dodatkowe pamięci na szynę l2C.
W programie można dodać kontrolę bitów parzystości przy odczycie numeru transpon-dera, a także wprowadzić obliczanie CRC przy komunikacji z innymi urządzeniami czy komputerem za pomocą interfejsu lwire. Na płytce przewidziano również złącza do interfejsów RS232 bądź RS485, jednak aktualna wersja programu nie umożliwia komunikacji przyza ich pomocą.
W niektórych sytuacjach możliwa jest rezygnacja z montażu wyświetlacza LCD oraz klawiatury (nie są potrzebne wówczas również T5. R25 oraz PR1).
Michał YYaśkiewicz ni waskiewicz@op.pl
Elektronika cla Wszystkich Wrzesień 2006 47