Pobierz najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

System sygnalizacji włamania i napadu zaprojektowany z wykorzystaniem mikrokontrolerów (cz. 1)

Printer Friendly and PDF

leadW niniejszej części artykułu przedstawiono dane charakteryzujące mikrokontroler ATmega 328 i moduł ARDUINO UNO. Zostaną one wykorzystane w celu zaprojektowania i wykonania stanowiska dydaktyczno-badawczego systemu sygnalizacji włamania i napadu. Opracowywane stanowisko będzie wykorzystywane przez studentów zdobywających wiedzę z zakresu inżynierii systemów bezpieczeństwa. Umożliwi zapoznanie się z urządzeniami alarmowymi w praktyce i z zasadami ich współpracy z centralą.

1. Wprowadzenie

Norma europejska EN 50131-1:2006 Alarm systems – Intrusion and hold-up systems – Part 1: System requirements, która ma jednocześnie status Polskiej Normy PN-EN 50131-1:2009 Systemy alarmowe – Systemy sygnalizacji włamania i napadu – Część 1: Wymagania systemowe podaje, iż centrale alarmowe stanowią wyspecjalizowane urządzenia, których zadaniem jest:

  • odbieranie sygnałów informacyjnych (analogowych lub cyfrowych) poszczególnych urządzeń,
  • przetwarzanie tych sygnałów zgodnie z wcześniej zaprogramowanymi ustawieniami (instalatora lub producenta),
  • sterowanie innymi fragmentami systemu poprzez podanie odpowiednich sygnałów wyjściowych,
  • obrazowanie zaistniałych zdarzeń na odpowiednich urządzeniach wchodzących w skład systemu sygnalizacji włamania i napadu,
  • przekazywanie informacji do innych systemów (np. alarmowego centrum odbiorczego – ang. alarm receiving centre, w skrócie ARC) [2].

Systemy sygnalizacji włamania i napadu zawierają najczęściej następujące części składowe: centrala alarmowa, jedna lub więcej czujek, jeden lub więcej sygnalizatorów i (lub) systemów transmisji sygnałów alarmowych, jeden lub więcej zasilaczy [5].

Zazwyczaj centrala SSWiN jest wyspecjalizowanym urządzeniem elektronicznym zaprojektowanym przez producenta systemów zabezpieczeń [3,4]. Bardzo często ma ona certyfikat zgodności z odpowiednimi normami dotyczącymi bezpieczeństwa. Mimo iż na rynku dostępnych jest bardzo dużo tego typu urządzeń, powstają coraz to nowsze rozwiązania. Część z nich jest tworzona przez osoby mające dużą wiedzę z zakresu elektroniki analogowej [7] i cyfrowej [6]. Zazwyczaj są to rozwiązania prototypowe, które znajdują zastosowanie w obiektach domowych lub są wykorzystywane w inny, specyficzny sposób [1].

2. Mikrokontrolery

Dzięki połączeniu klasycznej elektroniki układowej z częścią programistyczną technika cyfrowa jest coraz częściej wykorzystywana w sprzęcie powszechnego użytku. Coraz niższe koszty produkcji oraz duża skala miniaturyzacji pozwalają na stworzenie niewielkich układów elektronicznych, których funkcjonalność jest bardzo duża.

fot1

Rys. 1. Opis i rozmieszczenie elementów na płytce ARDUINO UNO

Układy pracujące w czasie rzeczywistym są samodzielnymi jednostkami potrafiącymi zbierać dane wejściowe, przetwarzać je i realizować zaprogramowane funkcje wyjściowe. Takie układy działają autonomicznie, dlatego w większości przypadków nie jest potrzebne sterowanie centralne czy dostęp do sieci komputerowych. Wykorzystuje się je w sprzęcie powszechnego użytku, między innymi w zabawkach, ale także w sprzęcie profesjonalnym, w skomplikowanych systemach sterowania ruchem lub produkcją.

Podstawowym elementem RTOS (ang. Real Time Operation System – system pracujący w czasie rzeczywistym) jest mikrokontroler. Na rynku dostępnych jest wiele mikrokontrolerów różnych producentów, jednak wszystkie te produkty bazują na sprawdzonych, wcześniej opracowanych standardach.

Mikrokontroler jest jednoukładowym systemem mikroprocesorowym zawierającym w swojej strukturze jednostkę centralną CPU (mikroprocesor), pamięć operacyjną RAM, pamięć programu ROM, układy komunikacyjne oraz programowalne porty wejściowo-wyjściowe. Dzięki tym cechom mikrokontroler może stanowić całkowicie integralny system mikroprocesorowy, którego funkcjonowanie nie wymaga ingerencji człowieka. Rozbudowany układ portów wejściowo-wyjściowych umożliwia podłączenie wielu różnych urządzeń peryferyjnych, dzięki którym mikrokontroler może analizować zdarzenia wejściowe i realizować funkcje wyjściowe zgodnie z ciągiem instrukcji zapisanych w oprogramowaniu.

Mikrokontrolery znajdują zastosowanie w układach automatyki przemysłowej, robotach produkcyjnych czy urządzeniach kontrolujących przebieg procesów przemysłowych. Postęp technologiczny i związany z nim wzrost skali integracji układów scalonych umożliwia produkcję coraz mniejszych mikrokontrolerów, a w związku z tym wykorzystanie ich w urządzeniach powszechnego użytku. Obecnie mikrokontrolery wbudowywane są w takie urządzenia jak np. aparaty fotograficzne, pralki, lodówki, kuchenki mikrofalowe, odtwarzacze muzyki i filmów oraz ładowarki kontrolujące napięcie i prąd ładowania akumulatorów.
Obecnie na rynku możemy wyróżnić kilkanaście rodzin mikrokontrolerów, produkowanych przez kilka firm. Do najbardziej popularnych zaliczamy:

  • mikrokontrolery z serii 8051 oraz ARM,
  • mikrokontrolery z serii AVR firmy ATMEL,
  • mikrokontrolery z serii M68 firmy Motorola,
  • mikrokontrolery z serii PIC firmy Microchip,
  • mikrokontrolery z serii MSP4130 firmy Texas Instruments.

Różnice pomiędzy poszczególnymi mikrokontrolerami polegają na:

  • rodzaju zastosowanej architektury (von Neumanna lub Harvard),
  • rodzaju adresacji (8-bitowa, 16-bitowa, 32-bitowa),
  • pojemności pamięci wewnętrznych RAM i ROM,
  • częstotliwości zegara wewnętrznego,
  • liczby portów wejściowych/wyjściowych,
  • składni języka Assembler,
  • sposobach komunikacji z urządzeniami zewnętrznymi.

Po roku 2002 pojawiły się dość liczne opracowania dotyczące mikrokontrolerów dla sektora hobbystycznego. Dzięki temu amatorskie wykonanie prostego systemu RTOS stało się możliwe nawet dla średnio zaawansowanego elektronika. Zaczęły pojawiać się platformy edukacyjne wykorzystujące różne mikrokontrolery – od najbardziej rozpowszechnionego 8051 do zaawansowanych układów AVR.

3. Stanowisko dydaktyczno-badawcze

Ze względu na doświadczenia autorów artykułu z zakresu elektroniki analogowej i cyfrowej postanowiono zastosować platformę edukacyjną bazującą na popularnym mikrokontrolerze ATmega 328 firmy ATMEL. Jako układ bazowy wykorzystany został moduł ARDUINO UNO. Jest to układ elektroniczny wykonany na płytce z dwuwarstwowymi obwodami drukowanymi, na której umieszczony jest mikrokontroler ATmega 328 oraz oscylator kwarcowy. Na zewnętrznych krawędziach płytki umieszczone są złącza wielostykowe, na których wyprowadzone zostały wszystkie końcówki mikrokontrolera. Dzięki temu użytkownik może dołączać dowolne urządzenia peryferyjne i przeprowadzać doświadczenia z mikrokontrolerem.

Stanowisko dydaktyczne składa się z układu elektronicznego z wbudowanym mikrokontrolerem, uniwersalnej matrycy połączeniowej, zestawu okablowania i kilku urządzeń peryferyjnych potrzebnych do ćwiczeń. Do tworzenia programu sterującego pracą stanowiska wykorzystywany jest pakiet oprogramowania Arduino IDE (ang. Integrated Development Environment – zintegrowane środowisko programistyczne) przeznaczony do instalacji na komputerze PC. Pakiet pozwala na  stworzenie kodu źródłowego programu, przetworzenie go na kod maszynowy i natychmiastowe wprowadzenie tego kodu do pamięci mikrokontrolera.

3.1. Specyfikacja platformy Arduino

System Arduino został zaprojektowany we Włoszech w 2005 roku z wykorzystaniem otwartej platformy sprzętowej. Dzięki temu użytkownicy końcowi mogą wprowadzać wszelkiego typu modyfikacje – zarówno w sprzęcie, jak i w oprogramowaniu. System stworzono w celach edukacyjnych, z myślą o studentach uczelni technicznych oraz informatycznych. W jego skład wchodzi płytka z dwuwarstwowymi obwodami drukowanymi i mikrokontrolerem ATmega 328, a także środowisko programistyczne Arduino IDE przeznaczone do instalacji na komputerze PC, umożliwiające pisanie, kompilację i wprowadzanie gotowych programów do mikrokontrolera. Pełna interaktywność systemu pozwala na komunikację z urządzeniami peryferyjnymi, zarówno wejściowymi, jak i wyjściowymi. Z systemem Arduino może współpracować z wieloma różnymi sensorami. Dzięki zastosowaniu modułów sterujących jako urządzenia wykonawcze można zastosować serwomechanizmy, silniki, głośniki, diody LED oraz wiele innych podzespołów. System Arduino może komunikować się z komputerem PC przez złącze USB (lub – w przypadku zastosowania odpowiedniego modułu zewnętrznego – przez złącze szeregowe RS232). Oczywiście może także pracować niezależnie, jako system działający w czasie rzeczywistym.

Od strony programowej system zawiera wiele bibliotek sprzętowych, dzięki którym możemy łatwo podłączyć urządzenia peryferyjne. Przykładem takiego urządzenia jest wyświetlacz LCD 16×2, który w normalnych warunkach wymaga procesu inicjalizacji przed rozpoczęciem wyświetlania znaków. Dzięki bibliotece zawierającej instrukcje sterowania tego modułu programista nie musi koncentrować się na rozkazach dotyczących poprawnej inicjalizacji wyświetlacza. Wszystkie niezbędne procedury są zawarte w bibliotece. Użytkownikowi pozostaje tylko poprawne skonfigurowanie wejść wyświetlacza w programie. Biblioteki są w pełni edytowalne, co w danym przypadku oznacza, że jeśli chcemy wykorzystać inny wyświetlacz LCD, to – znając jego parametry – możemy stworzyć nową bibliotekę sprzętową, bazując na bibliotece dla wyświetlacza LCD 16×2.

Na rys. 1 przedstawiono płytkę ARDUINO UNO z zaznaczonymi kluczowymi elementami systemu.

Wejścia i wyjścia cyfrowe

Płytka ARDUINO UNO ma 14 portów cyfrowych, z których każdy może pracować jako wejście lub wyjście. Porty konfiguruje się w programie wprowadzanym do mikrokontrolera. Sześć portów cyfrowych (oznaczonych na płytce) jest przystosowanych do pracy w trybie PWM, to znaczy w trybie z regulacją szerokości impulsów. Dzięki temu w przypadku zastosowania odpowiednich modułów peryferyjnych ARDUINO UNO może sterować pracą silników lub pełnić rolę generatora częstotliwości akustycznych. Porty 0 i 1 z tej grupy wejść i wyjść cyfrowych mogą być wykorzystane do szeregowej transmisji danych (końcówka 0 do odbioru, zaś końcówka 1 do nadawania). Dane są transmitowane z zachowaniem poziomów logicznych TTL (ang. Transistor to Trasistor Logic – system przekazu sygnałów logicznych zasilany napięciem o wartości 5 V), więc do portów możemy dołączyć np. bramki logiczne. Do portów cyfrowych pełniących role wejść można podłączyć czujniki zewnętrzne, takie jak czujniki ruchu, fotodiody, włączniki, przełączniki itp. Do portów cyfrowych pełniących rolę wyjść można podłączać peryferyjne elementy wykonawcze sterowane logicznymi sygnałami UART (ang. Universal Asynchronous Receiver and Transmitter – system asynchronicznego przesyłania danych liniami Rx i Tx) z zachowaniem poziomów logicznych TTL.

Wejścia analogowe

Płytka ARDUINO UNO ma sześć wejść analogowych. Doprowadzane do tych wejść napięcie wejściowe może się zmieniać w zakresie od 0 do 5 V. W mikrokontrolerze znajduje się 10-bitowy przetwornik analogowo-cyfrowy, dzięki któremu wartości napięcia wejściowego mieszczące się w przedziale od 0 do 5 V są konwertowane na liczby mieszczące się w zakresie od 0 do 1023. Warto nadmienić, że wejścia analogowe są zabezpieczone aby napięcie nie przekroczyło 5 V i nie spadło poniżej zera. Urządzenia zewnętrzne pracujące w innym zakresie napięć (np. od -3 V do +3 V) muszą być dołączane poprzez specjalne konwertery powodujące zmianę zakresu napięć wyjściowych danego urządzenia (tzw. DC offset). Podłączenie takiego urządzenia bezpośrednio do wejścia analogowego może spowodować uszkodzenie mikroprocesora. Do wejść analogowych można podłączać sensory i takie urządzenia jak potencjometry, analogowe czujniki temperatury, ruchu i naprężeń mechanicznych, a także inne podzespoły spełniające warunek działania w zakresie napięć wyjściowych od 0 do 5 V.

Wejścia/wyjścia służące do transmisji danych

Oprócz portów służących do komunikacji szeregowej UART z zachowaniem poziomów logicznych TTL mikrokontroler Atmega 328 jest w stanie obsługiwać porty wykorzystujące protokoły I2C oraz SPI. By możliwe było wykorzystanie tych trybów transmisji danych, w trakcie pisania programu konieczne jest zastosowanie odpowiednich, ogólnie dostępnych bibliotek, jednakże w praktyce najczęściej stosuje się bezpośrednią transmisję danych w trybie RS232, z zachowaniem poziomów logicznych TTL, lub transmisję danych z wykorzystaniem konwertera RS232/USB ze złącza USB. Niektóre moduły nowszej generacji, takie jak na przykład układ scalony realizujący funkcję zegara czasu rzeczywistego, wymagają jednak zastosowania transmisji I2C.

Komunikacja I2C jest doskonałym rozwiązaniem komunikacyjnym dla urządzeń mikrokontrolerowych ze względu na możliwość podłączenia wielu urządzeń do tej samej linii transmisyjnej. Łącze I2C wymaga zastosowania tylko dwóch przewodów do transmisji danych. Jednym z nich przesyłane są dane (SDA), a drugim sygnał zegarowy (SCL). Każde podłączone urządzenie ma swój adres i reaguje na kod adresowy, który jest generowany przez protokół zarządzający komunikacją w trybie I2C.

Mikrokontroler Atmega umożliwia także transmisję danych za pośrednictwem łącza SPI (ang. Serial Peripherial Interface) pomiędzy nim a urządzeniami peryferyjnymi i wewnętrznymi, takimi jak przetworniki A/C i C/A. System pracuje w konfiguracji master – slave (nadrzędny – podrzędny), co oznacza, że podczas dwukierunkowej komunikacji zawsze jedno urządzenie pełni rolę nadrzędną.

Łącze SPI wymaga zastosowania trzech linii do transmisji danych. Dwie z nich służą do przesyłania informacji w układzie full duplex, natomiast trzecia jest wykorzystywana przez zegar taktujący, synchronizujący transmisję danych. Sygnał zegarowy jest generowany przez układ nadrzędny (master) niezależnie od tego, czy układ nadrzędny odbiera czy wysyła dane. Zaletą łącza SPI podobnie jak I2C jest możliwość współpracy wielu urządzeń podrzędnych z urządzeniem nadrzędnym. Urządzenia te mogą być na stałe podłączone do modułu nadrzędnego.

W niniejszej części artykułu scharakteryzowano mikrokontroler ATmega 328 i moduł ARDUINO UNO. Podano ich parametry i funkcje. Opracowywanie stanowiska dydaktyczno-badawczego SSWiN z wykorzystaniem wymienionych układów zostanie opisane w części drugiej.


inż. Maciej Wieczorek
dr inż. Adam Rosiński
Politechnika Warszawska
Wydział Transportu
Zakład Telekomunikacji w Transporcie

Bibliografia

    1. M. Buczaj Systemy sterowania i nadzoru szyte na miarę, Zabezpieczenia nr 6(88)/2012, Warszawa 2012.
    2. Norma PN-EN 50131-1:2009: Systemy alarmowe – Systemy sygnalizacji włamania i napadu – Wymagania systemowe.
    3. A. Rosiński Możliwości stosowania czujek magistralowych w bazach logistycznych, Logistyka nr 4/2012, Poznań 2012.
    4. A. Rosiński Programowanie systemów sygnalizacji włamania i napadu, 13th International Conference Computer systems aided science, industry and transport TRANSCOMP 2009, Zakopane 2009.
    5. W. Szulc, A. Rosiński Systemy sygnalizacji włamania. Część 1 – konfiguracje central alarmowych, Zabezpieczenia nr 2(66)/2009, Warszawa 2009.
    6. W. Szulc, A. Rosiński Wybrane zagadnienia z elektroniki cyfrowej dla informatyków (część II – cyfrowa), Warszawa 2012.
    7. W. Szulc, A. Rosiński Wybrane zagadnienia z miernictwa i elektroniki dla informatyków (część I – analogowa), Warszawa 2012.

 

 

Zabezpieczenia 6/2014

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony