Wydział Inżynierii Mechanicznej i Mechatroniki Laboratorium z podstaw automatyki Budowa i analiza układów logicznego sterowania 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. Budowa i minimalizacja funkcji logicznych - metoda siatek Karnaugh'a... 8 V. Mikroarchitektura mikrosystemu... 11 VI. Przebieg ćwiczenia... 12 VII. Sprawozdanie... 14 VIII. Literatura... 15 IX. Indywidualne zestawy danych... 16 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. Budowa i minimalizacja funkcji logicznych - metoda siatek Karnaugh'a Budując skomplikowane układy logiczne można zastosować metody minimalizacji funkcji logicznych. Jedną z tych metod jest Metoda siatek Karnaugh a. Karnaugh a zaproponował, że automat po rusza się po liniach siatki. Z tą ważną uwagą, że automat może jedynie poruszać się pomiędzy sąsiednimi kratkami. Współrzędne pionowe i poziome każdej kratki opisane są za pomocą kodu Graya - rys. 6. Rys. 6 Siatka Karnaugh a Powyższy opis siatki odpowiada zakodowaniu pól stanów - rys. 7 Rys. 7 Kodowanie pól stanów dla siatki Karnaugh a 8
Litery a oraz b to nazwy zmiennych logicznych. Należy zwrócić uwagę, że przeskakując po sąsiednich kratkach, poruszamy się w ten sposób po sąsiadujących ze sobą stanach kodu Graya. W przypadku z trzema zmiennymi, (3 sygnały wejściowe) mamy 8 możliwych kombinacji stanów. Siatka Karnaugh a dla układu z trzema sygnałami wejściowymi została przedstawiona na rys. 8. Rys. 8 Przypadek siatki Karnaugh a z trzema zmiennymi Minimalizacja funkcji logicznych metodą siatek Karnaugh a. Dla stworzonych siatek Karnaugh, możliwe jest dokonanie minimalizacji funkcji logicznych. Jednak niezbędne jest pamiętania o kilku zasadach: 1. Tworzymy siatki o rozmiarze takim by ilość opisujących je zmiennych była równa ilości sygnałów wejściowych. 2. Tworzymy tyle siatek, ile układ posiada wyjść. 3. Wewnątrz kratek danej siatki wpisujemy stany wewnętrzne jakie mają pojawiać się na danym wyjściu przy odpowiadającej im kombinacji sygnałów wejściowych opisujących siatkę. Trzy podstawowe zasady informują projektanta układu, czym należy się kierować podczas budowania siatki oraz jak należy kodować w nich stany wyjść. Na podstawie tak zbudowanej siatki Karnaugh'a, możliwe jest opisanie funkcji logicznej. Zakodowane w siatce stany należy zakreślić w grupy. W zależności od tego czy zakreślamy grupy jedynek czy grupy zer otrzymujemy funkcję logiczną w postaci sumy iloczynów lub iloczynu sum - przykład rys. 9. Rys. 9 Przykład zakreślania siatki Karnaugh'a (3) 9
Jedynki wpisane zostają w te miejsca siatki, w których dla sygnałów wejściowych (a,b,c,d) ma występować jedynka na wyjściu Y. Funkcja wyjściowa została opisana przez równanie (X). Metoda polega na analizie współrzędnych zakreślonej grupy i do wyrażenia iloczynowego wchodzą tylko te zmienne, które w obrębie grupy nie zmieniają swojej wartości z 0 na 1 lub z 1 na 0. Każda zakreślona grupa jedynek jest jednym iloczynem w postaci kanonicznej. Zakreślona grupa jedynkowa nosi fachową nazwę implikantu. Natomiast grupy zerowe nazywamy implicentami. Nie wolno zakreślać implikantów i implicentów w dowolny sposób. Aby układ miał szansę działać poprawnie musimy pilnować kilku następujących reguł: 1. Ilość zakreślonych w jednej grupie kratek musi wynosić zawsze 2^k, czyli wolno zakreślać tylko 1, 2, 4, 8, 16, 32 jedynki.... 2. Zakreślona grupa musi być symetryczna względem jednej z głównych (bądź podrzędnych) osi siatki Karnaug a. Analizując drugi punkt warto przeanalizować poprawnie zakreślone grup jedynek - rys. 10, oraz te nie poprawnie - rys. 11. Rys. 10 Przykładowe poprawne zakreślenia grup w siatkach dla 4 zmiennych Możliwe jest zakreślenie dwóch skrajnych stanów - rys. 10.c. Rys. 11 Przykładowe błędnie wykonane zakreślenia w siatce 5 zmiennych. 10
Na rys. 12 zostały oznaczam główne i podrzędne osie symetrii większej siatki. Rys. 12 Główne i podrzędne osie symetryczności siatki 3. Kolejną zasadą zakreślania jest tworzenie implikantów (bądź implicentów) o jak największej ilości jedynek lub zer. Wykonując tą czynność należy pamiętać o pierwszym warunku mówiącym o ilości zakreślonych kratek. Im liczniejszą grupę zakreślimy tym mniej zmiennych zgodnie z zasadą tworzenia funkcji, wejdzie do wyrażenie logicznego opisującego wyjście układu. V. 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 informacji cyfrowej, łącznie z wymianą informacji z określonym otoczeniem. Ogólny schemat mikrokomputera został przedstawiony na rys. 13. 11
Rys. 13 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. VI. Przebieg ćwiczenia Uruchomienie skrzyżowania poprzez wykorzystanie sterownika logicznego. Zadaniem studenta w tym ćwiczeniu, jest zaprojektowanie układu logicznego, który na podstawie działania jednego zestawu świateł - sterowanego przez blok sterownika. Będzie sterował ruchem samochodów w kierunku prostopadłym do poprzedniego - rys. 14. Rys. 14 Schemat skrzyżowania ze światłami drogowymi 12
Zadania do wykonania W ramach ćwiczenia należy wykonać zadania dotyczące: 1. Wykorzystanie funkcji IF/ELSE w programowaniu mikrokontrolerów (Poprzednie ćwiczenie laboratoryjne). 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) 2. W ramach tej części ćwiczenia należy podjąć próbę budowy sterownika logicznego: a) w sposób bezpośredni wykorzystując bramki logiczne. b) stosując siatki Karnaugh'a. c) stosując minimalizację w siatkach Karnaugh'a. 3. 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? 4. 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? 13
VII. 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. 14
VIII. Literatura 1] 2] 3] 4] 5] 6] 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. N. A., Mikroprocesory, mikrokomputery, mikrosystemy, Warszawa: Wydawnictwo szkolne i pedagogiczne, 1988. H. P., Projektowa systemów mikroprocesorowych, Warszawa: Wyd. BTC, 2004. 15
IX. 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 16