Mikroprocesorowy zamek szyfrowy
Przedstawiamy nowoczesną konstrukcję zamka szyfrowego zbudowanego w oparciu o mikroprocesor. Kod zabezpieczający może składać się z cyfr i liter od 0 do F. Liczba znaków kodu może być zawarta od 1 do 40. Przy maksymalnej liczbie znaków równej 40 urządzenie posiada 2160 kombinacji. Jeżeli weźmiemy pod uwagę, że istnieje tylko jedna możliwość wprowadzenia poprawnego kodu, to okaże się, że przypadkowe trafienie na właściwy szyfr zabezpieczający jest w praktyce niemożliwe.
Całe urządzenie składa się z następujących bloków funkcjonalnych:
jednostki centralnej CPU,
bloku wyświetlaczy sekwencyjnych,
bloku klawiatury,
bloku kodowania cyfr z przełącznikiem typu Hexadecimal,
układów wykonawczych sterowania ryglem i alarmem,
układu zatwierdzania wprowadzanej cyfry.
Opis układu
Schemat całego układu jest przedstawiony na rys.1. Jak widzimy mikroprocesor US1 jest sercem całej konstrukcji i jedynym użytym do budowy zamka układem scalonym. Wszystkie funkcje wykonywane przez układ są realizowane w sposób programowy. Port P1 mikroprocesora jest wykorzystany do obsługi wyświetlaczy sekwencyjnych, odczytu stanu klawiatury, i transmisji do układu kodu poszczególnych cyfr ustawionych na przełączniku Hexadecimal. Poszczególne linie portu P3 spełniają funkcję pomocniczą przy obsłudze wyświetlaczy, klawiatury, i przełącznika kodującego, oraz do obsługi układów wykonawczych z przekaźnikami PK1, i PK2. Jedyne wykorzystane w układzie przerwanie INT0 służy do zatwierdzania poszczególnych cyfr wprowadzanych kolejno za pomocą przełącznika kodującego. Obsługa układu jest niezwykle prosta. Po włączeniu napięcia zasilającego wyświetlacz pokazuje numer kolejny cyfry do wprowadzenia (na początku 1), cyfrę tą ustawiamy gałką obrotową przełącznika Hexadecimal zgodnie z oznaczeniami na obwodzie gałki. Następnie naciskamy klawisz SW5 w celu potwierdzenia ustawionej cyfry. Wskazanie wyświetlacza zwiększa się o 1 wskazując numer kolejny następnej wprowadzanej cyfry. Po wprowadzeniu ostatniej cyfry kodu wyświetlacz znowu pokazuje wartość początkową 1. Należy wtedy nacisnąć klawisz SW2. Jeżeli wprowadziliśmy poprawny kod to nastąpi zadziałanie przekaźnika PK2 sterowanego za pośrednictwem tranzystora T4 przez linię P3.5 z portu mikroprocesora. W przypadku wprowadzenia błędnego kodu zabezpieczającego następuje zadziałanie przekaźnika PK1 służącego do uruchomienia instalacji alarmowej. Jednocześnie na wyświetlaczu pojawiają się dwie migające litery EE sygnalizujące przejście układu do stanu zablokowania. W stanie tym układ nie reaguje na dalsze naciskanie klawiszy klawiatury. Wyjście z tego stanu można zrealizować dzięki ukrytemu kontaktronowi KT1, który należy umieścić na chwilę w polu magnetycznym magnesu np. z uszkodzonego głośnika. Nastąpi wtedy zresetowanie układu i powrót do stanu początkowego. Jeżeli w trakcie wprowadzania kodu zabezpieczającego zorientujemy się, że popełniliśmy błąd to istnieje możliwość ponownego wprowadzenia prawidłowego kodu zabezpieczającego po naciśnięciu przycisku SW1, jeszcze zanim zechcemy otworzyć rygiel przyciskiem SW2. Układ pozwala wtedy wprowadzać cyfry kodu od początku, wskazanie wyświetlacza zmienia się na 1.
Montaż układu
Montaż rozpoczynamy od wykonania płytki drukowanej przedstawionej na rys.2 i rys.3. Jak widzimy jest to płytka dwustronna zaprojektowana w taki sposób aby nie wymagała metalizacji otworów i tym samym aby istniała możliwość odwzorowania jej w warunkach amatorskich. Płytkę należy wykonać metodą fotochemiczną przy pomocy powszechnie dostępnych w handlu odczynników w aerozolu. Wyjątkowo cierpliwi i staranni czytelnicy mogą pokusić się o wykonanie tej płytki pisakiem "do druku" z końcówką 0,5 mm. Jeżeli mamy zamiar wykonać płytkę metodą fotochemiczną to należy na początku wykonać w laminacie kilka otworów lutowniczych w miejscach punktów lutowniczych pod podzespoły. Otwory te będą później służyć do właściwego zorientowania matryc wykonanych do naświetlania płytki z dwóch stron. Jeżeli płytka będzie wykonywana pisakiem to należy na początku powiercić wszystkie punkty lutownicze, i dopiero potem prowadzić między nimi ostrożnie ścieżki. Przy wywoływaniu i trawieniu płytki należy ją umieścić w kąpieli w pozycji pionowej ze względu na obecność z dwóch stron warstw miedzi. Wykonaną i powierconą płytkę możemy zabezpieczyć roztworem kalafonii w rozpuszczalniku nitro. Teraz przychodzi kolej na montaż elementów. W miejscu mikroprocesora lutujemy podstawkę, natomiast pozostałe podzespoły montujemy bezpośrednio na płytce zgodnie z rozmieszczeniem elementów przedstawionym na rys.4. Po całkowitym zmontowaniu układu możemy przystąpić do jego uruchomienia.
Uruchomienie układu
Uruchomienie rozpoczynamy od dokładnego sprawdzenia montażu mechanicznego. Jeżeli nie wykryjemy żadnych pomyłek ani defektów przy montażu i wykonaniu, to możemy przystąpić do zaprogramowania mikroprocesora. W tym celu należy posłużyć się jakimś programatorem np. opisanym w Radioelektroniku 7 i 8/2001. Niezbędny program możemy pobrać z witryny naszego miesięcznika Radioelektronik http://www.radioelektronik.pl , lub z witryny autora tego artykułu http://bc107.republika.pl . Po pobraniu programu zamek.asm, zamek.hex, możemy przystąpić de edycji pliku zamek.asm w celu ustalenia ilości cyfr szyfru zabezpieczającego i samego szyfru. W tym celu ustalamy stałą LIMIT EQU dla potrzebnej liczby cyfr kodu np. dla stałej LIMIT EQU 10H liczba cyfr będzie wynosić 16. Następnie dla stałych LICZBA1 EQU ... LICZBA40 EQU, podstawiamy kolejne cyfry kodu, w takiej ilości cyfr jaka wynika z wcześniej ustalonej stałej LIMIT. Pozostałe niewykorzystane pozycje powinny być wyzerowane tzn. podstawiamy EQU 0H. Proszę pamiętać że wszystkie stałe są zapisane w programie w heksach, jednak istnieje możliwość zapisania ich również w postaci dziesiętnej jeżeli kompilator którym dysponujemy zezwala na taką możliwość. Trzeba w tym miejscu zwrócić uwagę czytelników na ważny fakt dotyczący przełącznika kodującego poszczególne cyfry szyfru. Jeżeli zastosujemy przełącznik hexadecimal complementary, lub BCD complementary, to jedna z linii programu oznaczona odpowiednio w kodzie źródłowym, znajdująca się pomiędzy dwoma wierszami gwiazdek, powinna być opatrzona średnikiem „ ; ” jako komentarz. W przypadku przełączników hexadecimal , lub BCD pozostawiamy tą linię programu bez zmian. W dalszej kolejności po wykonaniu wszystkich modyfikacji przystępujemy do skompilowania i zlinkowania naszego programu tak aby uzyskać kod wynikowy w formacie Intel Hex. Następnie posługując się programatorem zapisujemy uzyskany kod wynikowy w układzie AT89C2051 lub 4051, i umieszczamy go w podstawce przygotowanej wcześniej w tym celu na płytce drukowanej urządzenia. Po włączeniu napięcia zasilającego na wyświetlaczu powinna zapalić się cyfra 01. Teraz w celu sprawdzenia konstrukcji naciskamy klawisz SW5. Układ powinien przechodzić do odczytu kolejnych cyfr kodu. Po odczytaniu ostatniej pozycji wyświetlacz pokaże znowu 01. Jeżeli po kilku naciśnięciach klawisza SW5 naciśniemy klawisz SW1, to zamek powinien przejść do początku wprowadzania kodu pokazując na wyświetlaczu 01. Zatwierdzanie kolejno wprowadzanych cyfr wygląda następująco: wyświetlacz pokazuje na początku 01 i oczekuje na wprowadzenie pierwszej cyfry kodu, którą ustawiamy przełącznikiem hexadecimal, a następnie zatwierdzamy tą cyfrę klawiszem SW5. Wyświetlacz po zatwierdzeniu cyfry pokazuje kolejną wartość 02 i oczekuje na ustawienie i zatwierdzenie kolejnej cyfry szyfru. Postępujemy tak aż do zatwierdzenia ostatniej cyfry, po której wyświetlacz pokaże znowu 01. Teraz możemy nacisnąć klawisz SW2 aby otworzyć rygiel sterowany za pośrednictwem przekaźnika PK2. Jeżeli kod został wprowadzony poprawnie to nastąpi zadziałanie układu wykonawczego na kilka sekund po czym układ przejdzie do ustawień początkowych. Czas otwarcia rygla można modyfikować przez korekcję wartości stałej dla pętli opóźnienia zadeklarowanej w programie jako CZEK EQU 04H. Aby ponownie otworzyć rygiel i uzyskać dostęp do chronionego obszaru należy powtórnie wprowadzić kod zabezpieczający. Jeżeli natomiast kod będzie błędny np. w wypadku niepożądanych prób dostępu przez osoby trzecie to układ się zablokuje i nastąpi załączenie układów wykonawczych sterowanych przekaźnikiem PK1. Można to wykorzystać do uruchomienia alarmu bądź do wykonania pechowemu delikwentowi, który zechce pomajstrować przy naszym zamku np. zdjęcia podłączonym aparatem fotograficznym, kamerą, lub utrwalić go dzięki systemowi telewizji przemysłowej, jeżeli takowy istnieje w chronionym obiekcie. Zablokowany układ w celu odblokowania należy zresetować. Służy do tego ukryty kontaktron KT1, jednak pomysłowi czytelnicy mogą zastosować inny system resetowania np. za pomocą radiolinii, lub łącza podczerwieni. Jeżeli w trakcie odwzorowania układu nie popełnimy żadnych błędów to wszystkie próby techniczne powinny wypaść pomyślnie. Pozostanie nam wtedy jedynie przemyślane włączenie naszego zamka do większego systemu security. Na koniec należy jeszcze wspomnieć o przyciskach SW3 i SW4. Nie są one do niczego wykorzystane w programie obsługi zamka i zostały przewidziane jedynie jako opcja dla tych czytelników którzy zechcą we własnym zakresie zmodyfikować program obsługi urządzenia rozszerzając jego możliwości. W pozostałych przypadkach można zrezygnować z ich montażu.
Mariusz Janikowski