Michał Kowalewski
PMIK
Dokumentacja do projektu układu realizującego zamek cyfrowy.
Układ będzie realizował zamek cyfrowy, czyli urządzenie, które przykładowo zezwala na otwarcie drzwi jakiegoś pomieszczenia, sejfu, szafy pancernej itp. Jego zadaniem jest ochrona dostępu, co gwarantuje dostęp do informacji (otworzenie zamka) osobie która jest do tego upoważniona (zna kod otwierający zamek).
Funkcje jakie ma spełniać układ:
• Czterocyfrowy kod dostępu (PIN) – będzie realizowany za pomocą potencjometru (o odpowiednio wyskalowanej podziałce w zakresie cyfr od 0 do 9.),
• Blokada zamka na czas określony po wprowadzeniu trzech błędnych kodów – w celach bezpieczeństwa aby ktoś niepożądany nie próbował złamać kodu. Oprócz domyślnego czasu blokady zamka będzie istniała możliwość zmiany tego czasu przez administratora (SU - Super User’a) czyli użytkownika posiadającego wyższe uprawnienia od zwykłego użytkownika.
• Możliwość otworzenia zamka tylko w odpowiednich godzinach – zdefiniowanych domyślnie z możliwością ich zmiany przez administratora (SU). Administrator będzie mógł zdefiniować możliwość dostępu z dokładnością do 1 godziny ( ustawienia te będą reprezentowane przez 24bitową tablice).
• Uwzględnienie tzw. „time out’u”(czasu zwłoki) – czyli czasu oczekiwania na wprowadzenie kolejnej cyfry kodu. Jeśli użytkownik przekroczy czas będzie musiał
wprowadzić kod od początku.
• Komunikacja z urządzeniem przy wykorzystaniu klawiatury i wyświetlacza LCD –
wszelkie komunikaty będą wyświetlane na wyświetlaczu LCD. Do komunikowania się z urządzeniem (wprowadzania ustawień) będzie służyła klawiatura.
• Komunikacja z urządzenie z wykorzystaniem RS-232 – urządzenie będzie wysyłało status zamka.
Administrator (Super User) – użytkownik posiadający większe uprawnienia niż zwykły użytkownik. Dodatkowe uprawnienia to możliwość wszelkich zmian w systemie: zmiana kodu (PIN) otwierającego zamek, czasu w jakim zamek może być otwierany, czasu blokady zamka po ustalonej liczbie błędnych prób wprowadzenia kodu, możliwość zmiany czasu zegara (spowodowane np. zmianą czasu zimowego/letniego). Identyfikacja SU będzie przebiegała poprzez podanie przez niego przypisanego mu pięciocyfrowego kodu za pomocą klawiatury, co pozwoli na dodatkowe fizyczne zabezpieczenie tego kluczowego konta.
Lista modułów wykorzystywanych w projekcie:
• Zegar czasu rzeczywistego (RT)
• Pamięć nie ulotna EEPROM
• Szyna I2C
• Wyświetlacz ciekłokrystaliczny LCD
• Klawiatura
Aby zwiększyć niezawodność programu (poprawne działanie) po każdym uruchomieniu będzie przeprowadzany test pamięci w postaci sprawdzania sumy kontrolnej. Układ będzie zawierał prosty interfejs do komunikacji z użytkownikiem. Będzie informował w jakim jest stanie (otwarty/zamknięty), umożliwiał wprowadzenia kodu, informował o ewentualnej blokadzie spowodowanej ograniczeniami czasowymi bądź błędnym wprowadzeniem kodu.
Po wprowadzeniu kodu przez Super User’a pojawi się menu umożliwiające wprowadzenie zmian w ustawieniach zamka.
Proponowany podział kodu na bloki funkcjonalne:
-Obsługa I2C
-Obsługa klawiatury
-Obsługa wyświetlacza LCD
-Odczyt nastawu potencjometru
-Obsługa menu ustawień administratora
-Obsługa zegaru czasu rzeczywistego
-Obsługa pamięci EEPROM
-Obsługa RS-232
W pamięci EEPROM trzymane będą nastepujące dane:
-hasło, timeout,delay, liczbe prób użytkownika i opóźnienie akceptacji nastawu potencjometru- każda po 1B => 5B
-godziny dostepu użytkownika – 3B
-hasło, timeout,delay, liczbe prób administratora każda po 1B => 4B
Łącznie 12 bajtów danych.
Plan pracy nad projektem:
1. Zapoznanie się z wykorzystywanymi w projekcie blokami (budowa, sposób działania, sposób komunikacji z nimi – sterowania blokami).
2. Oprogramowanie każdego bloku z osobna, sprawdzenie działania.
3. Próba połączenia działających osobno bloków, spełniających osobno funkcje wykorzystywane w projekcie.
4. Testowanie układu – poprawienie ewentualnych usterek.
5. Oprogramowanie interfejsu użytkownika.
6. Testowanie gotowego projektu.