Wydział Inżynierii Mechanicznej i Mechatroniki Laboratorium z podstaw automatyki Podstawy budowy, zasada działania i sterowania mikrokontrolerów. Kierunek studiów: Transport, Stacjonarne pierwszego stopnia Prowadzący: dr hab. inż. Arkadiusz Parus mgr inż. Mateusz Saków Szczecin 2015 r.
Spis treści: I. Cel ćwiczenia... 3 II. Wprowadzenie - technika cyfrowa... 3 III. Parametry techniczne układów cyfrowych... 6 IV. Mikroarchitektura mikrosystemu... 8 V. Przebieg ćwiczenia... 9 VI. Sprawozdanie... 13 VII. Literatura... 14 VIII. Indywidualne zestawy danych... 15 2
I. Cel ćwiczenia Celem ćwiczenia jest poznanie możliwości mikrokontrolerów i zasad tworzenia oprogramowania do sterowania w układach automatyki. II. Wprowadzenie - technika cyfrowa Teoria układów cyfrowych, traktowanych jako układy logiczne, oparta jest na dwuelementowej algebrze Boole'a. Poprzez zastosowanie zasad i praw tej algebry możliwe jest wykonanie syntezy skomplikowanych funkcji logicznych oraz budowa odpowiadającym im schematów logicznych układów cyfrowych. Funkcją logiczną (1) nazywana jest funkcja, której argumenty - zmienne, oraz sama funkcja przybierają tylko dwie wartości: prawda reprezentowana przez wartość logiczną 1, fałsz reprezentowany przez wartość logiczną 0. (1) gdzie, są liczbami naturalnymi. W dalszej części skryptu argumenty funkcji - zmienne logiczne oznaczane będą wielkimi literami np. A, B, C..., którego mogą przyjmować wartości 0 lub 1. W celu tworzenia funkcji logicznych wykorzystuje się operatory logiczne. Operatorami logicznymi nazywa się wszystkie spójniki klasycznego rachunku zdań. Operatory logiczne oznacza się zazwyczaj jako - tabela 2: Tabela 1 Operatory logiczne i ich oznaczenia Operator logiczny Przykładowe oznaczenia Iloczyn logiczny Suma logiczna Negacja *, ^, AND +, v, OR!, ~, NOT 3
Operatory logiczne i działania tworzone dzięki nim, podlegają zależnościom algebry Boole'a - tabela 2: Tabela 2 Podstawowe zależności algebry Boole'a Operator logiczny Przemienność Łączność Rozdzielność Prawa de Morgana Podwójna negacja Przykładowe oznaczenia A * B = B * A A + B = B + A A + (B + C) = (A + B) + C A * (B * C) = (A * B) * C A * (B + C) = (A * B) + (A * C) A + (B * C) = (A + B) - (A + C) NOT(A + B) = NOT(A) * NOT(B) NOT(A * B) = NOT(A) + NOT(B) NOT(NOT(A)) = A oraz własnościom jednej zmiennej ze stałymi 0, 1 - tabela 3. Tabela 3 Wartości jednej zmiennej ze stałymi 0,1. A + 0 = A A * 0 = 0 A + 1 = A A + A = A A * 1 = A A * A = A A + NOT(A) = 1 A * NOT(A) = 0 Wartości argumentów funkcji logicznej odpowiadają stanom wejść układu cyfrowego, natomiast wartości samej funkcji - stanom wyjść tego układu. Funkcja logiczna może być zadana za pomocą: opisu słownego, tablicy funkcji (tablicy prawdy), analitycznie w postaci wyrażenia algebraicznego (równanie boolowskie) oraz graficznie za pomocą symboli logicznych. Podstawowe symbole graficzne zostały przedstawione na rys. 1. 4
Rys. 1 Bramki logiczne - interpretacja graficzna Bramki AND, OR, NOT pozwalają na tworzenie tzw. funkcjonalnie pełnych zestawów elementów. Oznacza to, że można z nich zbudować dowolnie złożony układ logiczny. Ponieważ, każdą funkcję logiczną można zapisać jako sumę składników składających się z iloczynu czynników - zmiennych i ich negacji. Zatem funkcja (2): (2) może zostać przedstawiona przez graficzną reprezentację funkcji logicznej - rys. 2: Rys. 2 Interpretacja graficzna funkcji logicznej 5
Innym przykładem są bramki NAND i NOR, za udziałem tych bramek także można zrealizować dowolnie złażoną funkcję stosując tylko jeden rodzaj bramek NAND lub OR, w tym również funkcje podstawowe AND, OR, NOT. Ze względu na ten fakt bramki NAND i NOR zalicza się osobno do tzw. minimalnego zestawu funkcjonalnego. III. Parametry techniczne układów cyfrowych Do podstawowych parametrów technicznych układów cyfrowych można zaliczyć: Obciążalność logiczną bramki (N) - maksymalna liczba bramek, jaka może być równolegle sterowana z wyjścia pojedynczej bramki. Napięcie poziomów logicznych (HIGH, LOW) - zakres napięć wejściowych oraz wyjściowych, które układ realizuje jako gwarantowany stan 1 oraz gwarantowany stan 0. Margines zakłóceń (UNM) - określa dopuszczalną wartość napięcia sygnału zakłócającego, nie powodującego nieprawidłowej pracy układu - rys. 3. Rys. 3 Napięcia poziomów logicznych HIGH -1, LOW 0, na tle marginesów zakłóceń. Czas propagacji (Td) - określa czas opóźnienia odpowiedzi układu na sygnał sterujący i jest podstawową miarą szybkości działania układu cyfrowego. Moc strat na bramkę (Pd) - określa moc pobieraną przez układ ze źródła zasilania. W układach logicznych w wyniku nieidealnej pracy elementów logicznych może wystąpić zjawisko hazardu. Przez nieidealną pracę elementów logicznych rozumiemy występowanie opóźnień w zmianie stanu sygnałów wyjściowych tych elementów w odniesieniu do zmiany sygnałów wejściowych. W automatach stykowych przyczyną zjawiska hazardu jest nierównoczesna zmiana stanu styków zwieranych i rozwieranych tego samego przekaźnika. W automatach bezstykowych przyczyną tego zjawiska jest różnica opóźnień dróg, po których sygnał wejściowy i jego negacja sterują tym samym elementem logicznym. 6
Hazardem nazywamy możliwość nieprzewidzialnej reakcji wyjścia automatu na zmianę jego stanu wejścia spowodowaną występowaniem opóźnień w zmianie stanu pracy elementów logicznych. Ze względu na stan wyjścia układu przed i po występowaniu zjawiska hazardu, hazardy dzielimy na: statyczny, dynamiczny. Hazardem statycznym nazywamy chwilową zmianę stanu wyjściowego układu występującą przy zmianie stanu jego wejścia wtedy, gdy wyjście to powinno zostać niezmienione. Chwilowa zmiana wyjścia 1-0-1 wtedy, gdy wyjście to powinno zostać niezmienione w stanie 1 nazywa się hazardem w warunkach działania, lub "hazardem jedynki". Chwilowa zmiana wyjścia 0-1-0 wtedy, gdy wyjście to powinno pozostać niezmienione w stanie 0 nazywa się hazardem w warunkach niedziałania, lub "hazardem zera" - rys. 4. Hazardem dynamicznym nazywamy kilkukrotną zmianę stanu wyjścia przy zmianie stanu wejścia wtedy, gdy wyjście to powinno zmieniać swój stan tylko jeden raz i w nim pozostać np. przy zmianie 1-0 następuje zmiana 1-0-1-0, lub przy zmianie 0-1 następuje zmiana 0-1-0-1. Hazard może doprowadzić do chwilowego przekłamania pracy automatu lub do trwałego przekłamania. W automatach kombinacyjnych w wyniku zjawiska hazardu może wystąpić tylko chwilowe przekłamanie stanu wyjścia, natomiast w układach sekwencyjnych hazard jest często przyczyną trwałych przekłamań stanów wyjścia - rys. 5. Przykłady hazardów statycznych i dynamicznych Rys. 4 Hazard statyczny: (1) - układ przekaźnikowy, (2) - układ na elementach NAND, (3) - przebiegi funkcji pracy przy założeniu, że są idealne tzn. nie wnoszą żadnego opóźnienia, (4) - rzeczywista funkcja pracy 7
Rys. 5 Hazard dynamiczny: (1) - układ na elementach NAND, (2) - przebiegi funkcji pracy przy założeniu, że są idealne tzn. nie wnoszą żadnego opóźnienia, (3) - rzeczywista funkcja pracy IV. Mikroarchitektura mikrosystemu Mikrosystemem (systemem mikroprocesorowym) określa się jako cyfrowy, scalony element elektroniczny o stosunkowo dużej skali integracji zwany również mikrokontroler lub procesorem sygnałowym, ale także układ złożony z elementów o dużej skali integracji, w skład której wchodzą: mikroprocesor (CPU ang. Central Processing Unit), pamięć min. przechowująca rozkazy dla mikroprocesorów (ROM - Read-Only Memory), ale również wyniki danych operacji RAM (Random Acces Memory), porty wejść/wyjść - zwane również układami peryferyjnymi, umożliwiające wprowadzanie do pamięci rozkazów i danych, oraz wyprowadzanie wyników w tym komunikację z otoczeniem, magistrale (szyny systemowe - ang. bus) - zespoły linii sygnałów binarnych organizujące pracę mikrokomputera. Mikrokomputer stanowi kompletny programowalny system do przetwarzania informacji cyfrowej. Od układów analogowych (Elektronicznych, Elektrycznych) odróżniają go cechy programowalności oraz kompletności. Programowalność determinuje sposób przetwarzania informacji cyfrowej. Związane jest to z tym, że przetwarzanie informacji cyfrowej odbywa się poprzez ciągi rozkazów zawartych w pamięci mikrokomputera zwanych programem. Kompletność oznacza możliwość realizacji wszystkich zadań składających się na przetwarzanie 8
informacji cyfrowej, łącznie z wymianą informacji z określonym otoczeniem. Ogólny schemat mikrokomputera został przedstawiony na rys. 6. Rys. 6 Architektura magistralowa mikrokomputera Zadaniem mikroprocesora jest szeregowe przetwarzanie danych poprzez kolejne wykonywanie rozkazów zapisanych przez użytkownika, w postaci programu umieszczonego w pamięci komputera. Program operuje na danych, które również znajdują się w pamięci komputera. Istotną cechą, z punktu widzenia użytkownika jest tzw. lista rozkazów. Lista rozkazów określa zbiór elementarnych operacji. Program użytkownika zapisany w pamięci składać się może tylko z rozkazów zawartych w liście rozkazów danej jednostki centralnej. Mikroprocesorem (CPU) nazywa się cyfrowy układ scalony o wielkiej skali integracji, przeznaczony do realizacji operacji arytmetyczno - logicznych na wektorach informacji cyfrowej zwanych rozkazami, które mikroprocesor probiera z pamięci. Wyniki wykonywanych operacji mogą być przekazane przez mikroprocesor do pamięci lub rejestrów układów wejścia - wyjścia. V. Przebieg ćwiczenia W ramach tego ćwiczenie student zobowiązany jest do wykonania dwóch ćwiczeń. Analizy hazardu statycznego i dynamicznego, oraz programowanie mikrokontrolera na przykładzie świateł drogowych. Hazard statyczny Należy zbudować schemat układu logicznego z rys. 4, wykorzystujący bramki logiczne NAND w środowisku Matlab Simulink - rys. 7. 9
Rys. 7 Schemat układu do analizy hazardu statycznego W ramach analizy należy sprawdzić wpływ wielkość wartości czasu propagacji bramki Td_s na jakość pracy układu logicznego rys. 7. Proszę pamiętać aby zmienić Solver symulacji na Dyskretny, oraz ustawić maksymalny krok symulacji na wartość 1e-5. Czas symulacji powinien być dobrany odpowiednio do wartość czasu propagacji bramki tak, aby zmiany pochodzące od zjawiska hazardu były dobrze widoczne. Hazard dynamiczny Należy zbudować schemat układu logicznego z rys. 5, wykorzystujący bramki logiczne NAND w środowisku Matlab Simulink - rys. 8. Rys. 8 Schemat układu do analizy hazardu dynamicznego W ramach analizy należy sprawdzić wpływ wielkość wartości czasu propagacji bramki Td_d na jakość pracy układu logicznego rys. 8. Proszę pamiętać aby zmienić Solver symulacji na Dyskretny, oraz ustawić maksymalny krok symulacji na wartość 1e-5. Czas symulacji powinien być dobrany odpowiednio do wartość czasu propagacji bramki tak, aby zmiany pochodzące od zjawiska hazardu były dobrze widoczne. Ustawienia "Pulse Generatora" zostały przedstawione na rys. 9. 10
Rys. 9 Ustawienia "Pulse Generatora" Programowanie mikrokontrolera z wykorzystanie funkcji IF/ELSE, na przykładzie świateł drogowych. Dla przygotowanego przez prowadzące modelu w środowisku Matlab Simulink, należy wykorzystując funkcję IF/ELSE zaprogramować światła tak, aby zapalana była odpowiednia kombinacja świateł, dla poszczególnego przedziału czasowego. Schemat modelu symulacyjnego - rys. 10. Rys. 10 Schemat świateł drogowych 11
Zadania do wykonania W ramach ćwiczenia należy wykonać zadania dotyczące: 1. Hazardu statycznego. a) Dokonać analizy pracy układu dla czasu propagacji bramek logicznych b) Dokonać analizy pracy układu dla czasu propagacji bramek logicznych c) Odpowiedzieć na pytania: i) Jaki wpływ na pracę układu logicznego ma czas propagacji bramki? ii) Czy we wszystkich układach logicznych wystąpi zjawisko Hazardu statycznego? iii) Jak zmiana czas propagacji bramki wpływa na zachowania się układu logicznego? 2. Hazardu dynamicznego. a) Dokonać analizy pracy układu logicznego dla czasu propagacji bramek logicznych b) Dokonać analizy pracy układu logicznego dla czasu propagacji bramek logicznych c) Odpowiedzieć na pytania: i) Jaki wpływ na pracę układu logicznego ma czas propagacji bramki? ii) Czy we wszystkich układach logicznych wystąpi zjawisko Hazardu dynamicznego? iii) Jak zmiana czas propagacji bramki wpływa na zachowania się układu logicznego? 3. Wykorzystanie funkcji IF/ELSE w programowaniu mikrokontrolerów. a) Należy zaprogramować blok sterownika, tak aby zapalał światła w kolejności [zielone, żółte, czerwone, żółte + czerwone], pracując w pętli. Przedstawić przebiegi symulacji, dotyczące pracy układu z dobranymi kolorami charakterystyk. b) Należy zaprogramować blok sterownika, tak aby zapalał światła w kolejności [zielone, żółte, czerwone, żółte + czerwone], a dodatkowo sterownik przełączał się co pewien czas w tryb nocny, z zapalającym się oscylacyjnie tylko żółtym światłem. Przedstawić przebiegi symulacji, dotyczące pracy układu z dobranymi kolorami charakterystyk. (ZADANIE DODATKOWE) 12
VI. Sprawozdanie W sprawozdanie ma mieć formę podobną do skryptu. Wymagane jest aby zawierało: 1. Stronę tytułową (grupa dziekańska, podgrupa laboratoryjna, imię i nazwisko, datę oddania, temat laboratorium, nazwę laboratorium). 2. Odpowiednie rozdziały zgodnie ze skryptem: a) Cel ćwiczenia b) Przebieg ćwiczenia (wymagane jest aby zostały zamieszczone modele zgodnie z wymaganiami co do tej części sprawozdania) c) Wnioski - ogólne wnioski dotyczące ćwiczenia 3. Na laboratorium przewidziane są dwie godziny. 4. Sprawozdanie należy złożyć przed rozpoczęciem kolejnego ćwiczenia w formie papierowej, w przeciwnym wypadku ocena ze sprawozdania będzie obniżana co dwa tygodnia o wartość 1. Sytuacji dotyczy także sprawozdań odrzuconych z powodu negatywnej oceny. 5. Każdy ze studentów posiada swój własny zestaw danych (Parametrów m,h,k) udostępniony w rozdziale VII skryptu. 6. Oceny: a) 2 - brak oddania sprawozdania w terminie (pkt. 4) lub sytuacja, w której zwłoka w oddaniu sprawozdania obniżyła ocenę do poziomu <3. Student dopuścił się oszustwa lub skorzystał z danych innych niż zostały mu przydzielone. b) 2,5-3,5 - Student wykonał wszystkie polecenia jednak nie odpowiedział na żadne z pytań postawionych w skrypcie. Student nie przedstawił także sensowych wniosków. O cenie waży jakość i poprawność wykonanych zadań ze skryptu. (2,5 nie zalicza sprawozdania). Sprawozdanie zostało oddane w terminie pkt. 4. c) 4-4,5 - Student wykonał wszystkie polecenia, odpowiedział na każde z pytań postawionych w skrypcie. Ilość odpowiedzi, które będą miały sens, bądź będę poprawne zaważy o ocenie. Sprawozdanie zostało oddane w terminie pkt. 4. d) 5 - Student wykonał wszystkie polecenia, odpowiedział na każde z pytań postawionych w skrypcie. Szczątkowa ilość odpowiedzi była niepoprawna. Student prawidłowo sformułował wnioski z ćwiczenia laboratoryjnego. Sprawozdanie zostało oddane w terminie pkt. 4. 13
VII. Literatura [1] [2] [3] [4] A. Dębowski, automatyka podstawy teorii, Warszawa: WNT, 2012. Z. Trzaska, Modelowanie i symulacja układów elektrycznych, Warszawa: Wydawnictwo Politechniki Warszawskiej, 1993. C. Anna, Modele dynamiki układów fizycznych dla inżynierów, Warszawa: WNT, 2008. W. D. Henryk Urzędniczok, Laboratorium podstaw automatyki oraz wybór przykładów do ćwiczeń audotoryjnych, Gliwice: Wydawnictwo Politechniki Śląskiej, 2012. 14
VIII. Indywidualne zestawy danych W tabeli 1. zostały przedstawione indywidualne dane dla każdego ze studentów. Tab. 1 Zawiera unikalne parametry modelu dla studentów Parametr Grupa dziekańska 1 Parametr Grupa dziekańska 2 Lp. Td_s Td_d Lp. Td_s Td_d 1 0,00053 0,00198 1 0,00147 0,00118 2 0,0007 0,00133 2 0,00056 0,00125 3 0,00128 0,00095 3 0,00085 0,00086 4 0,00086 0,00145 4 0,00155 0,00068 5 0,00056 0,00194 5 0,00117 0,00116 6 0,00177 0,00074 6 0,00082 0,00163 7 0,00065 0,00131 7 0,00159 0,00051 8 0,00107 0,00101 8 0,00186 0,00193 9 0,00099 0,0016 9 0,00167 0,0017 10 0,00073 0,00156 10 0,00134 0,0013 11 0,001 0,00157 11 0,00103 0,00062 12 0,00132 0,0016 12 0,0019 0,00074 13 0,00139 0,00166 13 0,00164 0,00137 14 0,00136 0,0005 14 0,00144 0,00104 15 0,00151 0,00147 15 0,00116 0,00157 16 0,00181 0,00097 16 0,00154 0,00082 17 0,0006 0,00074 17 0,00054 0,00176 18 0,0015 0,00072 18 0,00064 0,00067 19 0,00112 0,0016 19 0,00185 0,00084 20 0,00096 0,00148 20 0,00087 0,00141 21 0,00093 0,0015 21 0,0006 0,00057 22 0,00138 0,00126 22 0,00152 0,00195 23 0,0006 0,00175 23 0,0006 0,00141 24 0,00148 0,00164 24 0,00197 0,00191 25 0,00115 0,0016 25 0,00149 0,00066 26 0,00117 0,00123 26 0,00192 0,00187 27 0,00081 0,00184 27 0,00195 0,00063 28 0,00173 0,002 28 0,002 0,00115 29 0,00113 0,00068 29 0,00178 0,00057 30 0,00151 0,00173 30 0,00056 0,00105 31 0,00085 0,00109 31 0,00066 0,0009 32 0,00199 0,002 32 0,00075 0,0011 33 0,0013 0,00052 33 0,00182 0,00092 34 0,00147 0,00073 34 0,00195 0,00127 35 0,00086 0,00053 35 0,00106 0,00098 36 0,00177 0,00109 36 0,00104 0,00103 37 0,00122 0,00173 37 0,00132 0,00124 38 0,00069 0,00115 38 0,00065 0,00102 39 0,00071 0,00135 39 0,00091 0,00132 40 0,00154 0,00153 40 0,00059 0,0006 15