Elektronika i techniki mikroprocesorowe Technika mikroprocesorowa - podstawy Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2
PLAN WYKŁADU Mikroprocesor - budowa, podstawy Wykonywanie programu Sterownik mikroprocesorowy - idea Sterownik modułowy i dedykowany Mikrokontroler - idea, parametry Mikrokontroler - rodzina MCS51 MCS51 - opis właściwości Struktura programu, asembler a język C Transmisja szeregowa W7: Technika mikroprocesorowa 2
Mikroprocesor Mikroprocesor - miniaturowe urządzenie do przetwarzania informacji w sposób określony przez uŝytkownika, wykonany w postaci pojedynczego, niepodzielnego układu scalonego W7: Technika mikroprocesorowa 3
Mikroprocesor - pojęcia podstawowe CPU - jednostka centralna, jej zadaniem jest wykonywanie programu oraz sterowanie pozostałymi blokami systemu mikroprocesorowego ALU - jednostka arytmetyczno-logiczna, wykonuje operacje arytmetyczne i logiczne - jest częścią CPU rejestr pomocniczy - wewnętrzny blok pamięci mikroprocesora zbudowany z przerzutników, wykorzystywany do chwilowego przechowywania i przetwarzania danych rejestr specjalny - rejestr sterujący działaniem wewnętrznych układów mikroprocesora (np. przetwornikiem A/C) zegar układ tworzący z zewnętrznym rezonatorem generator sygnału prostokątnego decydujący o szybkości pracy mikroprocesora W7: Technika mikroprocesorowa 4
Mikroprocesor - pojęcia podstawowe magistrala adresowa - wszystkie linie którymi mikroprocesor przesyła adres do pamięci i urządzeń wejścia/wyjścia magistrala danych - wszystkie linie, którymi mikroprocesor przesyła dane do pamięci i urządzeń wejścia/wyjścia magistrala sterująca - linie, którymi mikroprocesor przesyła sygnały określające rodzaj operacji układy peryferyjne - wszystkie elementy otoczenia mikroprocesora wspomagające jego pracę i połączone z nim za pomocą magistral długość słowa - szerokość słowa danych, którym posługuje się w operacjach mikroprocesor przestrzeń adresowa - liczba komórek pamięci, które moŝe zaadresować mikroprocesor W7: Technika mikroprocesorowa 5
Wykonywanie programu w procesorze sekwencyjne potokowe W7: Technika mikroprocesorowa 6
Przykład Sterownika µp - umiejscowienie przekształtnik energoelektroniczny odbiornik sieć zasilająca obwody główne M proces technologiczny sterownik µp sterownik nadrzędny operator komputer nadrzędny W7: Technika mikroprocesorowa 7
Sterownik mikroprocesorowy - funkcje komunikacja z uŝytkownikiem sterowanie wzmacniaczem mocy, pomiary (np. napięcia, prądu, momentu, prędkości obrotowej, temperatury) regulacja (np. napięcia, prądu, momentu, prędkości obrotowej, temperatury) sprzęŝenie ze sterownikiem nadrzędnym i procesem technologicznym W7: Technika mikroprocesorowa 8
Sterownik mikroprocesorowy - zalety jest bardziej elastyczny (dzięki programowej realizacji algorytmu), pozwala na realizację skomplikowanych algorytmów sterowania (w tym algorytmy nieliniowe) pozwala na łatwą modyfikację algorytmu sterowania ułatwia obsługę, diagnostykę i automatyzację procesu pomiarowego w fazie uruchamiania i testów pozwala na łatwe powiązania w systemach sterowania hierarchicznego mają bardziej zwartą strukturę w porównaniu z, odpowiadającymi ich funkcjom, sterownikami analogowo-cyfrowymi eliminuje dryft przebiegów W7: Technika mikroprocesorowa 9
Tworzenie układu mikroprocesorowego sformułowanie zadania symulacje MATLAB, NAP, MATHCAD, SPICE, TCAD postawienie zadania sterowania sterownik modułowy dedykowany czy modułowy? sterownik dedykowany dobór systemu mikroprocesorowego wykonanie schematu sterownika wykonanie projektu obwodu drukowanego SYSTEM DORADCZY OrCAD, Protel, PCAD realizacja obwodu drukowanego W7: Technika mikroprocesorowa 10
Sterownik modułowy owy - przykład d SPACE 1104 Główny Procesor MPC8240, PowerPC 603e rdzeń, 250 MHz 32 kb wewnętrznej pamięci typu cache Liczniki (32-bitowy licznik zliczający w dół, 4 32-bitowe liczniki uniwersalne, pomiar czasu z rozdzielczością 64 bitów) Pamięć 32 MB synchroniczna pamięć dynamiczna RAM (SDRAM) 8 MB pamięć programu typu Flash Kontroler systemu przerwań Przerwania z liczników, układu transmisji szeregowej, slave DSP, enkoderów inkrementalnych, przetworników A/C, z komputera PC i 4 zewnętrznych wejść) W7: Technika mikroprocesorowa 11
d SPACE 1104 W7: Technika mikroprocesorowa 12
Sterownik dedykowany sterownik przemiennika częstotliwości na bazie uk Intel 80C196KC W7: Technika mikroprocesorowa 13
Tworzenie układu mikroprocesorowego sprawdzenie poprawności wykonania obwodu drukowanego montaŝ elementów sprawdzenie podstawowych funkcji sterownika tworzenie oprogramowania sterownika testowanie oprogramowania programy testujące programy:makroasembler kompilator 'C' (Archimedes, Keil, Intel) emulator układowy i EPROM-ów programator EPROM-ów model układu układ rzeczywisty oscyloskop, próbnik stanów logicznych N OK? T wykonanie dokumentacji końcowej komputer, drukarka, ploter W7: Technika mikroprocesorowa 14
Struktura systemu mikroprocesorowego W7: Technika mikroprocesorowa 15
Mikrokontroler mikrokontroler - mikroprocesor + elementy peryferyjne (wykonany w jednej obudowie) procesor sygnałowy - mikroprocesor o architekturze harwardzkiej, z zaimplementowaną jednostką pozwalającą na szybkie wykonywanie operacji mnoŝenia i rotacji mikrokontroler sygnałowy - DSP + układy peryferyjne Pamięci RAM Pamięci ROM, FLASH Kontroler przerwań Przerwania zewnętrzne MAGISTRALA WEWNĘTRZNA µp - mikroprocesor Watchdog Układy PWM Układy czasowo - licznikowe Wejścia, wyjścia cyfrowe UART W7: Technika mikroprocesorowa 16
Mikrokontroler - parametry wewnętrzny generator taktujący (zewnętrzny kwarc) pamięć wewnętrzna (RAM, EPROM, EEPROM, FLASH) kontroler przerwań przetworniki A/C i C/A (8-24b) liczniki i układy czasowo-licznikowe porty równoległe (8-bitowe) porty szeregowe (UART, I2C, SPI, Microwire, USB, CAN) licznik kontrolny - watchdog tryby redukcji mocy układ kontroli napięcia zasilania W7: Technika mikroprocesorowa 17
Mikrokontroler - przykład Intel 80C51 jeden z pierwszych mikrokontrolerów - 1980 rodzina mikrokontrolerów MCS-51 jedno napięcie zasilania 8-bitowy, 64kB pamięci programu, 64kB pamięci danych peryferia wersje z wewnętrzną pamięcią EPROM, Flash, produkowanych przez wiele firm: Atmel, Philips, Dallas, Siemens W7: Technika mikroprocesorowa 18
MCS-51 architektura W7: Technika mikroprocesorowa 19
MCS51 - charakterystyka ALU dla MCS-51, wewnętrzny zegar pamięć programu (opcja) pamięć danych min 128B układy liczników (min. 2) układy we/wy cyfrowych (min. 4 porty 8-bitowe) układ transmisji szeregowej UART priorytetowy układ przerwań 111 róŝnego rodzaju rozkazów W7: Technika mikroprocesorowa 20
MCS51 - przestrzeń adresowa W7: Technika mikroprocesorowa 21
MCS51 - lista rozkazów transmisji danych (MOV, np. MOV A,#102) arytmetyczne (ADD, SUBB, MUL, DIV) logiczne (AND, OR, XOR, NOT) rotacji bitów ( RL, RR,SWAP) skoki i wywołania podprogramów (JMP, JC, JNZ, CJNE,LCALL) rozkazy na pojedynczych bitach (transmisja, operacje logiczne, SETB bit, CPL bit, CLR bit) W7: Technika mikroprocesorowa 22
MCS51 - układy peryferyjne Liczniki T0, T1 W7: Technika mikroprocesorowa 23
MCS51 - układy peryferyjne Układy wejść/wyjść cyfrowych - 4 porty 8-bitowe Port P0 (piny P0.0-P0.7) - (typu otwarty kolektor), przy pracy z zewnętrzną pamięcią programu lub danych multipleksowana magistrala adresów-danych Port P1 (piny P1.0-P1.7) Port P2 (piny P2.0-P2.7), przy pracy z zewnętrzną pamięcią programu osiem bardziej znaczących bitów adresu Port P3 (piny P3.0-P3.7), alternatywnie: P3.0 - RXD: wejście szeregowe; P3.1 - TXD: wyjście szeregowe, P3.2,P3.3 - wejścia przerwań zewnętrznych; P3.4,P3.5 - wejścia zegarowe liczników; P3.6 - WR - wyjście zapisu do zewnętrznej pamięci danych; P3.7 - RD - odczyt z zewnętrznej pamięci danych; Aby piny pracowały jako wejścia - naleŝy do nich wpisać 1 W7: Technika mikroprocesorowa 24
MCS51 - układy peryferyjne UART - transmisja szeregowa W7: Technika mikroprocesorowa 25
MCS51 - rejestry sterujące PSW - rejestr stanu programu TMOD - rejestr wyboru trybu pracy układu liczników TCON - rejestr sterujący układem liczników i przerwaniami zewnętrznymi IE - maska przerwań IP - rejestr sterujący priorytetem przerwań SCON - rejestr sterujący portem szeregowym PCON - rejestr sterujący trybem zasilania W7: Technika mikroprocesorowa 26
MCS51 - system przerwań Idea przerwania - pewne zadania w mikroprocesorze muszą być wykonywane w określonych chwilach czasowych, bądź przy zajściu konkretnego zdarzenia. Wtedy program główny jest przerywany i wykonywana jest część programu (obsługa przerwania), a po jej zakończeniu układ wraca do wykonywania programu głównego. MCS51 - źródła przerwań: - wejścia zewnętrzne: INT0, INT1 - układ czasowo-licznikowy: przepełnienie liczników T0, T1 - port szeregowy: koniec nadawania (TI) lub odbierania (RI) znaku W7: Technika mikroprocesorowa 27
MCS51 - system przerwań Blokowanie przerwań - poszczególne źródła przerwań mogą być indywidualnie maskowane (bity w rejestrze IE) 1-przerwanie odblokowane, 0 - zablokowane. Najstarszy bit - blokada wszystkich przerwań. Priorytetowy system przerwań - rodzina MCS51 posiada dwupoziomowy system przerwań. Poziom przerwania jest ustawiany przez odpowiedni bit w rejestrze IP. Wartość 1 - wyŝszy priorytet, 0 - niŝszy. Przerwania na jednym poziomie są przyjmowane w kolejności: INT0, T0, INT1, T1, RITI przerwanie1 - niŝszy priorytet Obsługa programu z przerwaniami przerwanie2 - wyŝszy priorytet program główny obsługa przerwania 1 obsługa przerwania 2 kontynuacja obsługi przerwania 1 kontynuacja programu głównego W7: Technika mikroprocesorowa czas28
Struktura programu INICJALIZACJA: ustawienie rejestrów sterujących, wartości początkowe parametrów, wartości początkowe dla liczników, ustawienie przerwań, odblokowanie liczników i przerwań PROGRAM GŁÓWNY: wykonywanie zadań niezaleŝnych od czasu, obsługa wyświetlaczy, obsługa klawiszy, OBSŁUGA PRZERWANIA: wykonywanie zadań zaleŝnych od czasu, bądź od stanów wejść przerywających W7: Technika mikroprocesorowa 29
Przykładowe procedury ;opoznienie MOV A,#0 DELAY: INC A CJNE A,#100,DELAY ; - wartość początkowa ; - początek procedury ; - zwiększ akumulator o1 ; - sprawdź warunek czy A=100 ;ustawianie wyjsc USTAW_WY: MOV P0,#01010101B LCALL DELAY MOV P1,#10101010B LCALL DELAY ;odczyt wejscia ODCZYT_WE: MOV P0, #11111111B MOV C, P0.4 ; - początek procedury ; - zapisz wartość do portu P0 ; - odczekaj określony czas ; - zapisz wartość do portu P1 ; - odczekaj określony czas ; - początek procedury ; - ustaw port P0 jako wejścia ; - odczytaj stan pinu 4 portu P0 W7: Technika mikroprocesorowa 30
Przykładowe procedury ;ustawienia licznika T0 TIMER0: MOV P0,#10101010B MOV TMOD,#00010000B MOV TL0, #10 MOV TH0, #100 SETB TR0 MOV A,#10 CZAS: JNB TF0,$ MOV TL0,#10 MOV TH0,#100 CLR TF0 DJNZ A,CZAS MOV A,P0 CPL A MOV P0,A ; - początek procedury ; - zapisz wartość do portu P0 ; - ustaw tryb pracy licznika ; - ustaw wartość początkową licznika ; - ustaw wartość początkową licznika ; - odblokuj licznik ; - wpisz mnoŝnik dla czasu licznika ; - początek procedury ; - poczekaj na koniec odliczania czasu ; - ustaw wartość licznika ; - ustaw wartość licznika ; - skasuj przepełnienie licznika ; - jeśli A=0 - dalej, inaczej zmniejsz A ; - odczytaj port P0 ; - zaneguj akumulator ; - zapisz wartość do portu P0 W7: Technika mikroprocesorowa 31
Asembler ; x w rejestrze R0 ; wynik w rejestrze R1 OBLICZ: MOV A,#5 MOV B,R0 MUL AB XCH A,B ADD A,#15 MOV R1,A Asembler a język j C y = 5*x+15 Zalety: - moŝliwość maksymalnego wykorzystania mikroprocesora pod kątem czasowym; - moŝliwość kontroli przepływu programu; Wady: - potrzeba poznania duŝej ilości rozkazów; - język nie jest intuicyjny i prosty; Język C int x = 0; int y; void oblicz(void) { y=5*x+15; } Zalety: - ograniczona liczba rozkazów oraz łatwy (zbliŝony do matematycznego ) ich wygląd i uŝycie; Wady: - brak moŝliwości pełnej kontroli mikroprocesora i wykonywania programu - optymalizacja programu zaleŝy od kompilatora W7: Technika mikroprocesorowa 32
Transmisja szeregowa - standardy układowe parametr RS232 RS423 RS422 RS485 rodzaj transmisji niesymetryczna niesymetryczna róŝnicowa róŝnicowa max. liczba nadajników i odbiorników 1 nadajnik 1 odbiornik 1 nadajnik 10 odbiorników 1 nadajnik 10 odbiorników 32 nadajniki 32 odbiorniki max. długość połączenia 15m 1200m 1200m 1200m max szybkość transmisji 20kb/s 100kb/s 10Mb/s 10Mb/s max. napięcie wspólne ±25V ±6V -0,25V do +6V -7V do +12V wyjście nadajnika (obciąŝone) ±5V do ±15V ±3,6V ±2V ±1,5V obciąŝenie nadajnika 3k..7k 450Ω min 100 54 rezystancja wejściowa odbiornika 3k..7k 4k 4k 12k czułość odbiornika ±3V ±200mV ±200mV ±200mV szybkość zmian napięcia na wyjściu 30V/µs sterowana W7: Technika mikroprocesorowa 33
RS485 - driver MAX481 transmisja półdupleksowa pojedyncze zasilanie 5V moŝliwość przełączenia w 3 stan dopuszcza podłączenie do 128 nadajników/odbiorników W7: Technika mikroprocesorowa 34
MODBUS - przykład standardu programowego W7: Technika mikroprocesorowa 35
Modbus - opis standardu ramka W7: Technika mikroprocesorowa 36
KONIEC WYKŁADU NR 6 W7: Technika mikroprocesorowa 37