Mikroprocesory i kontrolery 1. Materiały do wykładu. Tom II MIKROKONTROLERY. Mikroprocesory i kontrolery 2. dr hab. inż.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Mikroprocesory i kontrolery 1. Materiały do wykładu. Tom II MIKROKONTROLERY. Mikroprocesory i kontrolery 2. dr hab. inż."

Transkrypt

1 Mikroprocesory i kontrolery 1 Mikroprocesory i kontrolery Materiały do wykładu Tom II MIKROKONTROLERY Mikroprocesory i kontrolery 2 dr hab. inż. Zbigniew Czaja Gdańsk 2015

2 Mikroprocesory i kontrolery 3 Definicja, budowa i zastosowania mikrokontrolerów Definicja mikrokontrolera: Mikrokontroler to: układ cyfrowy z wyspecjalizowanym mikroprocesorem i niezbędnymi do jego samodzielnej pracy urządzeniami zawartymi w jednym układzie scalonym (dzięki którym nie wymaga urządzeń zewnętrznych, takich jak np. kontrolery magistral, przerwań, generatory sygnałów taktujących mikroprocesor, itp.), jest zdolny do autonomicznej pracy, tzn. w najprostszych zastosowaniach nie wymaga przyłączenia zewnętrznych układów pomocniczych (peryferyjnych), został zaprojektowany do pracy w systemach kontrolno-pomiarowych oraz komunikacyjnych, stąd posiada rozbudowany system komunikacji z otoczeniem, z reguły pracuje w czasie rzeczywistym. Mikroprocesory i kontrolery 4 Zdjęcie mikrokontrolerów w obudowach PDIP Rys. 1. Uproszczona budowa mikrokontrolera Cechy techniczne jednostki centralnej (CPU) mikrokontrolera (w skrócie mk): szerokość szyny danych. Może być ona 8-bitowa, 16-bitowa lub 32-bitowa. Na podstawie tej szerokości określa się typ mk, np. mk 8-bitowy, częstotliwość sygnału taktującego (zegarowego), Mk ukierunkowane są na zastosowania w układach kontrolno pomiarowych i komunikacyjnych. W wielu tego typu zastosowaniach daje się określić wymaganą minimalną prędkość przetwarzania danych przez jednostkę centralną. Nie obowiązuje przy tym zasada wzięta z mikroprocesorów, że im większa prędkość przetwarzania danych tym lepiej. rozbudowane układy przerwań.

3 Mikroprocesory i kontrolery 5 Rys. 2. Uszczegółowiona budowa mk Mikroprocesory i kontrolery 6 Funkcje bloków mk: Jednostka centralna (dokładniej zawarty w niej mikroprocesor) realizuje program zawarty w pamięci programu (typu FLASH).. Pamięć programu typu FLASH służy do przechowywania kodu programu oraz stałych. Zmienne programu przechowywane są w pamięci danych RAM. Jednostka centralna jak i pozostałe wewnętrzne bloki mk są taktowane sygnałem zegarowym (clock), generowanym i rozprowadzanym przez system zegarowy. Częstotliwość sygnału zegarowego może być stabilizowana np. zewnętrznym oscylatorem kwarcowym. W stan początkowy mk wprowadzany jest sygnałem RESET generowanym przez układ resetu. Układy peryferyjne umożliwiają odczyt sygnałów wejściowych cyfrowych, jak i również analogowych (przetworniki A/C) oraz generację sygnałów wyjściowych stosowanych do sterowania układami mse. Komunikacja z otoczeniem mk odbywa się za pośrednictwem linii portów we/wy.

4 Mikroprocesory i kontrolery 7 Mk posiada następujące cechy (11 cech mikrokontrolera): 1. zamknięcie magistrali danych i adresowej wewnątrz układu scalonego, 2. stała struktura pamięci ROM/RAM, 3. stałość programu sterującego, 4. dostęp do rejestrów procesora i układów we-wy poprzez mechanizm adresowania pamięci RAM (memory mapped registers and I/O), 5. rejestrowa struktura jednostki centralnej, 6. procesory boolowskie wykonujące operacje na pojedynczych bitach w pamięci, rejestrach i układach we-wy, 7. bogaty zestaw urządzeń we-wy, 8. rozbudowane i szybkie układy przerwań we-wy, 9. różnorodne tryby i środki redukcji mocy pobieranej, 10. rozbudowane mechanizmy kontroli i detekcji nieprawidłowych stanów mk, 11. zawarcie w jednej strukturze układów cyfrowych (sterujących) i analogowych (pomiarowych). Trzy pierwsze cechy dotyczą mk zamkniętych, które będą omówione w dalszej części wykładu. Mikroprocesory i kontrolery 8 Rys. 3. Przykładowe obszary zastosowań mikroprocesorów i mikrokontrolerów

5 Mikroprocesory i kontrolery 9 Rys. 4. Przykładowe zastosowania mikrokontrolerów w technice samochodowej Mikroprocesory i kontrolery 10 Przykładowe, wybrane zastosowania komputerów (mikrokontrolerów) w medycynie: zaawansowane systemy komputerowe: tomograf, ultrasonograf, itd., miniaturowe urządzenia diagnostyczne umożliwiające wszechstronną kontrolę medyczną, np.: elektroniczne urządzenie pomiaru ciśnienia krwi umożliwia bezpieczne wykonanie badania, dostępne również dla osób cierpiących na arytmię serca, komputerowa przystawka BCTS (Bronchical Control Treatment System) po podłączeniu do komputera osobistego pozwala na dokładne dozowanie leków przeciw astmie, niewielkie urządzenie mikroprocesorowe generujące bodźce elektryczne łagodzące ból, temperaturę ciała najdokładniej zmierzy mikroprocesorowy termometr douszny (precyzyjny pomiar temperatury błony bębenkowej, najbardziej miarodajnego wskaźnika ciepłoty ciała), chorzy na cukrzycę mogą za pomocą komputerowego miernika dokładnie oceniać poziom cukru we krwi, w użyciu są miniaturowe, przenośne aparaty EKG, osoby mające problemy ortopedyczne są wspomagane przez inteligentne protezy reagujące na bieżąco na dziesiątki bodźców związanych z dynamiką chodu.... Obecnie systemy mikroprocesorowe, w tym systemy czasu rzeczywistego znajdują liczne zastosowania w diagnostyce i pielęgnowaniu pacjentów.

6 Mikroprocesory i kontrolery 11 Jednostka centralna (CPU) mikrokontrolera Najważniejszą częścią mk jest jednostka centralna (w skrócie jc). Często określa się ją jako procesor rdzeniowy lub w skrócie procesor. Właściwości jc (czyli właściwości mikroprocesora): należy do grupy układów cyfrowych, określanych jako układy synchroniczne i sekwencyjne, synchroniczność oznacza, że wszystkie operacje wykonywane przez jc odbywają się w rytm sygnału zegarowego, sekwencyjność oznacza, że stan wyjść jc zależy nie tylko od stanu jej wejść, ale i od poprzednich stanów tego układu, posiada własną pamięć (rejestry) potrzebną np. do przechowywania argumentów rozkazów niezbędnych do wykonania na nich określonej operacji. Mikroprocesory i kontrolery 12 Architektury procesorów rdzeniowych można sklasyfikować: według typu mapy pamięci według typu listy instrukcji. Mapa pamięci (memory map) w sposób graficzny przedstawia rozmieszczenie poszczególnych pamięci w przestrzeni adresowej jc. Oprócz adresów obszarów RAM, ROM i innych rodzajów pamięci, mapa ta podaje usytuowanie rejestrów uniwersalnych, adresów procedur obsługi przerwań, rejestrów układów we/wy (dostępne przez adresowanie pamięci RAM). W zależności od typu struktury mapy pamięci, procesory rdzeniowe mogą mieć następującą architekturę: architekturę harwardzką, architekturę Von-Neumanna. Podział architektur procesorów mk korzystając z kryterium typu listy instrukcji: architekturze RISC (reduced instruction set computer), architekturze CISC (complex instruction set computer).

7 Mikroprocesory i kontrolery 13 Rys. 5. Schemat blokowy mk rodziny Xmega firmy Atmel (typu Harward, RISC) Mikroprocesory i kontrolery 14 Rys. 6. Mapa pamięci dla architektury harwardzkiej (mk rodziny Xmega)

8 Mikroprocesory i kontrolery 15 Rys. 7a. Organizacja wewnętrznej i zewnętrznych pamięci mk 80C51/52 Rys. 7b. Schemat blokowy mk 8051 o architekturze CISC Mikroprocesory i kontrolery 16 Wewnętrzne pamięci mikrokontrolerów W mk ze względu na pełniące funkcje można wyróżnić następujące typy pamięci: pamięć programu (zawierająca kod programu, tablice stałych, wektor resetu i przerwań), pamięć danych (przechowująca zmienne), stos sprzętowy (obsługi przerwań i wywołań funkcji odkładają na niego bieżącą wartość licznika rozkazów i po zakończeniu działania zdejmują ją), pamięć EEPROM (przechowuje zmienne lub tablice stałych, które po wyłączeniu zasilania nie mogą ulec skasowaniu). Pamięć programu jest wykonana w technologii FLASH (była w technologiach ROM, EPROM). Natomiast pamięć danych najczęściej jest typu SRAM.

9 Mikroprocesory i kontrolery 17 Tabela 1. Przegląd podstawowych układów pamięci względem technologii wykonania Własności pamięci Zawartość pamięci nie zanika wraz z wyłączeniem napięcia zasilania. Z pamięci można czytać, lecz nie można do niej wpisywać danych. Umieszczanie danych w pamięci wymaga specjalnego procesu, zwanego programowaniem. Zawartość pamięci zanika wraz z wyłączeniem napięcia zasilania. Z pamięci można zarówno czytać, jak i wpisywać do niej dane. Stosowane typy pamięci ROM (Read Only Memory) programowanie zawartości pamięci następuje w procesie produkcyjnym i nie może być przeprowadzone przez użytkownika. EPROM (Erasable Programmable ROM) pamięci z możliwością kasowanie dotychczasowej zawartości promieniami ultrafioletowymi i prowadzania nowej zawartości za pomocą zewnętrznego programatora. Umieszczane są w obudowach z okienkiem kwarcowym w celu umożliwienia kasowania. OTP (One Time Programmable) pamięci typu EPROM umieszczane w obudowach bez okienka kwarcowego. Dlatego możliwe jest tylko jednokrotne zaprogramowanie pamięci bez możliwości skasowanie jej zawartości. FLASH (Bulk Erasable Non-Volatile Memory) pamięci z możliwością kasowanie zawartości i programowania bezpośrednio w systemie mikroprocesorowym. SRAM (Static Random Access Memory) pamięci RAM statyczne. Są to pamięci o krótkich czasach dostępu, prostsze w obsłudze przez jednostkę centralną, ale droższe. DRAM (Dynamic Random Access Memory) pamięci RAM dynamiczne. Są to pamięci tańsze, ale ich obsługa przez jednostkę centralną jest bardziej skomplikowana. Polega to na konieczności wykonywania w krótkich odstępach czasu określonych operacji na pamięci (tzw. odświeżaniu). W przeciwnym razie dane zawarte w pamięci dynamicznej zanikają. Mikroprocesory i kontrolery 18 Struktury systemów mikrokontrolerowych Ze względu na sposób korzystania przez mk z zewnętrznych pamięci możemy wyróżnić: mk udostępniające szyny systemowe (szyna danych, adresowa i sterująca) poprzez wyprowadzenia portów, mk udostępniające bezpośrednio szyny systemowe, mk zamknięte (embedded).

10 Mikroprocesory i kontrolery 19 Rys. 8. Budowa mse z mk udostępniającym szyny systemowe jako alternatywne wyprowadzenia portów, na przykładzie mk 80C51 Mk udostępniające szyny systemowe poprzez wyprowadzenia portów w tej strukturze systemu: Szyny systemowe są dostępne dla użytkownika jako alternatywne funkcje wyprowadzeń portów. Mk daje zatem możliwość podłączenia układów pamięci zewnętrznej, którą podłącza się do odpowiednich portów mk. Wadą tego rozwiązania jest rezygnacja z części portów. Np. na rys. 8 widać, iż należy skorzystać z portów P0 i P2 oraz części wyprowadzeń portu P3. Zatem nie można korzystać z linii tych portów jako we/wy sygnałów sterujących. Mikroprocesory i kontrolery 20 Rys. 9. Budowa mse z mk udostępniającym szyny systemowe jako alternatywne wyprowadzenia portów interfejs EBI (External Bus Interface) dla mikrokontrolerów rodziny XMEGA A niemultipleksowane połączenie pamięci SRAM

11 Mikroprocesory i kontrolery 21 Rys. 9a. Budowa mse z mk udostępniającym szyny systemowe jako alternatywne wyprowadzenia portów interfejs EBI (External Bus Interface) dla mikrokontrolerów rodziny XMEGA A multipleksowane połączenie pamięci SRAM z użyciem sygnału ALE1 Mikroprocesory i kontrolery 22 Mk udostępniające bezpośrednio szyny systemowe w tej strukturze: Szyny systemowe mk są dostępne dla użytkownika bezpośrednio jako wyprowadzenia układu scalonego bez funkcji alternatywnych przypisanych tym wyprowadzeniom. Mk daje zatem możliwość przyłączenia układów pamięci zewnętrznych, bez potrzeby rezygnacji z niektórych portów mk. Najczęściej mk te nie posiadają wewnętrznych pamięci programu lub danych. Np. mk AT91X40 (rys. 10). Podejście takie umożliwia korzystanie ze znacznie większych pamięci. Stąd tego typu struktura jest stosowana przeważnie dla mk 16 i 32-bitowych. Rys. 10. Sterowanie czterema pamięciami (każda do 16 MB) przez mk AT91X40

12 Mk zamknięte w tej strukturze systemu: szyny systemowe nie są dostępne dla użytkownika. Mk korzysta wyłącznie z wewnętrznej pamięci. Mikroprocesory i kontrolery 23 Oczywiście można do niego podłączać zewnętrzne urządzenia peryferyjne poprzez jego porty. Tego typu struktura jest stosowana najczęściej w przypadku prostych mk 8-bitowych (które są głównym tematem tej części wykładu). Rys 11. Budowa mse z mk nie udostępniającym szyn systemowych zamkniętym, na przykładzie mk XMEGA A Mikroprocesory i kontrolery 24 Zalety mk zamkniętych: Zwiększenie niezawodności mikrosterownika. Magistrala jest jednym z najczulszych na zakłócenia systemem interfejsowym. Zamknięcie magistrali wewnątrz układu scalonego, odseparowanie jej od zacisków we-wy powoduje znaczący wzrost niezawodności systemu. Jądro systemu w postaci procesora rdzeniowego uzyskało w ten sposób bardzo dobrą izolację od pozostałej części systemu. Nastąpiło zmniejszenie i ograniczenie długości magistrali co ma znaczenie ze względu na rosnące wymagania na kompatybilność elektromagnetyczną układu Zmniejszenie poboru mocy. Magistrala uniwersalna jest jednym z najbardziej energochłonnych systemów komunikacyjnych. Bez względu na ilość aktualnie odbierających informację odbiorników (zwykle 1) nadajnik musi ją nadać w takiej formie fizycznej, aby mogły ją odbierać wszystkie możliwe do podłączenia odbiorniki. Ograniczenie dostępu do magistrali do znanej liczby urządzeń o określonych parametrach pozwala na przeprowadzenie optymalizacji energo-czasowej, czego efektem jest znaczący spadek poboru mocy przez mk zamknięte przy zachowaniu bardzo dobrych parametrów czasowych. Zwiększenie szybkości pracy. Precyzyjnie zdefiniowana i niezmienna magistrala wewnętrzna mk pozwala na optymalizację jego parametrów czasowych. mk wyposażone są w rozległe i programowalne układy dystrybucji sygnałów zegarowych wewnątrz układu scalonego, pozwalające na osiągnięcie dużych szybkości wykonania programu bez znaczącego wzrostu poboru mocy. Zmniejszenie liczby zacisków zewnętrznych i zwiększenie ich elastyczności. Zadaniem zacisków zewnętrznych jest zapewnienie przepływu sygnałów pomiędzy otoczeniem a układem we-wy wbudowanymi w mk. Ponieważ układy te w większości zastosowań wykorzystywane są w sposób sekwencyjny, możliwe jest dołączenie do jednego zacisku fizycznego kilku wewnętrznych układów we-wy. Pozwala to na dynamiczną rekonfigurację funkcji zacisków w takich mk.

13 Mikroprocesory i kontrolery 25 Model warstwowy mikrokontrolera Rys. 12. Warstwowy logiczny model mk zamkniętego Mikroprocesory i kontrolery 26 W mk, w skład procesora rdzeniowego, poza samym procesorem przetwarzającym instrukcje i pamięciami, znajdują się również inne urządzenia niezbędne do funkcjonowania mk. Są to między innymi: oscylator i układ dystrybucji sygnałów zegarowych, układ resetu (często bardzo rozbudowany), układy nadzorujące (często traktuje je się jako układy peryferyjne mk), system przerwań. Rys. 13. Fragment schematu blokowego mk ATmega16

14 Mikroprocesory i kontrolery 27 Układ oscylatora i układy dystrybucji sygnałów zegarowych W mk można wyróżnić dwa źródła sygnału zegarowego: sygnał zegarowy generowany wewnątrz mk (wewnętrzny układ RC), sygnał zegarowy generowany z wykorzystaniem zewnętrznych elementów. Każdy mk posiada dedykowane dwie końcówki służące wyłącznie do podłączenia zewnętrznych elementów wykorzystywanych do generacji (stabilizacji) sygnału zegarowego: Jedna z nich jest wejściem (najczęściej oznaczana OSC1 lub XTAL1), druga wyjściem (OSC2 lub XTAL2) wewnętrznego układu generatora. Mikroprocesory i kontrolery 28 a) z rezonatorem kwarcowym/ceramicznym b) z rezonatorem RC (najtańszy ale najgorsze parametry generowanego przebiegu) c) z podaniem zewnętrznego sygnału prostokątnego na wejście OSC1 d) z wewnętrznym rezonatorem RC Rys. 14. Sposoby generowania sygnału zegarowego

15 Mikroprocesory i kontrolery 29 e) z wykorzystaniem pośredniej syntezy częstotliwości PLL (Phase Locked Loop) Rys cd. Sposoby generowania sygnału zegarowego Mikroprocesory i kontrolery 30 Wyróżnia się następujące tryby pracy oscylatorów kwarcowych/ceramicznych: LP generowanie niskich częstotliwości dla zapewnienia minimalnego poboru mocy (Low Power Crystal), XT generowanie średnich częstotliwości (Crystal/Resonator), HS generowanie wysokich częstotliwości (Hight Speed Crystal/Resonator). Tabela 2. Wartości kondensatorów w zależności od trybu pracy oscylatora kwarcowego dla mk PIC18F452

16 Mikroprocesory i kontrolery 31 Metodę generacji sygnału zegarowego jak i tryb pracy oscylatora wybiera się na etapie programowania mk, czyli wprowadzania kodu programu do jego pamięci FLASH. Służą do tego bity zawarte w rejestrze konfiguracyjnym mk. Rys. 15. Fragment rejestru konfiguracyjnego mk PIC18F452 Mikroprocesory i kontrolery 32 Układy generacji i dystrybucji sygnałów zegarowych. Rys. 16. Układ dystrybucji sygnałów zegarowych w mk ATXmaga32A4

17 Mikroprocesory i kontrolery 33 Rys. 17. Układ generacji i dystrybucji sygnałów zegarowych mk ST72215G Mikroprocesory i kontrolery 34 Rys. 18. Funkcje spełniane przez CSS i SO (Save OSC) Rys. 18. Funkcje spełniane przez CSS i SO

18 Mikroprocesory i kontrolery 35 Techniki redukcji mocy i tryby specjalne mk. Wyróżnia się następujące techniki redukcji mocy w mk: Elastyczne sterowanie szybkością pracy w zależności od aktualnych potrzeb, gdyż zależność poboru mocy układów CMOS zależy od częstotliwości pracy. Służy do tego sieć dystrybucji sygnałów zegarowych w mk (dokładniej preskalery). Korzystanie z kilku oscylatorów. Jeden z nich pracuje z maksymalną częstotliwością główny oscylator (np. 32 MHz), a drugi z częstotliwością niską np. 32,768 khz. Wybór danego oscylatora jako generatora sygnału zegarowego dla mk, np. przejście z oscylatora 32 MHz do oscylatora 32,768 khz powoduje spadek pobieranej mocy o około trzy rzędy. Rys.19. Układ wyboru sygnału zegarowego i preskalery mk ATXmaga32A4 Mikroprocesory i kontrolery 36 Rys. 20. Układ wyboru sygnału zegarowego mk PIC18F6585

19 Mikroprocesory i kontrolery 37 Specjalne tryby pracy mk: tryb pełnej aktywności (RUN), tryb, w którym nie pracuje procesor, a pracują wszystkie urządzenia peryferyjne (WAIT lub SLEEP) inaczej tryb uśpienia, tryb, w którym nie pracuje procesor, a pracują niektóre urządzenia peryferyjne (układ przerwań, porty równoległe, przetworniki A/C zasilane zewnętrznym sygnałem zegarowym), tryb pełnego wstrzymania (zamrożenia) pracy mk zatrzymany układ oscylatora, zatem żadne urządzenie nie pracuje, stan rejestrów i pamięci RAM jest zamrożony (STOP lub HALT). Przy wchodzeniu w tryby specjalne mk istotne jest aby przez zaciski we/wy nie płynął prąd, gdyż wartość tego prądu może być np. o kilka rzędów większa niż jego pobór przez sam mk w stanie STOP. Wejście w specjalny tryb pracy mk można uzyskać w następujący sposób: wykonując odpowiednią, przeznaczoną do tego celu instrukcję (np. SLEEP w Atmega16 i PIC18F452, WFI, HALT w ST72215G), ustawiając odpowiednie bity w rejestrze sterującym trybami uśpienia (np. w CTRL- Sleep Control Register dla mk XMEGA A). Mikroprocesory i kontrolery 38 Tabela 3. Źródła sygnału zegarowego oraz wybudzania mk XMEGA A w trybach obniżonego poboru mocy Tryb aktywności (Vcc = 3 V): 13 ma (32 MHz), 75 µa (32 khz). Tryb idle (Vcc = 3 V): 4,8 ma (32 MHz), 4,8 µa (32 khz). Tryb power-down (Vcc = 3 V): 0,1 µa.

20 Mikroprocesory i kontrolery 39 Rys. 21. Specjalne tryby pracy dla mk ST72215G Mikroprocesory i kontrolery 40 Są następujące sposoby wyjścia z trybu uśpienia: pojawienie się przerwania zewnętrznego lub przerwania od urządzeń peryferyjnych (przerwania te muszą być wcześniej odblokowane), reset zewnętrzny mk, reset wywołany przez niezablokowany, aktualnie pracujący układ watchdog. Często jest tak, że mk obudzony przez przerwanie dokonuje jego obsługi, a następnie ponownie przechodzi w tryb uśpienia. Ze stanu zatrzymania mk można wyjść wyłącznie na dwa sposoby: reset zewnętrzny mk, reset wywołany przez niezablokowany, aktualnie pracujący układ watchdog. W tym przypadku układ watchdog musi być taktowany własnym generatorem (najczęściej jest to generator RC wbudowany w strukturę mk).

21 Mikroprocesory i kontrolery 41 Układ resetu mikrokontrolera Sygnał RESET służy do: Generalnie do inicjalizacji pracy mk, czyli wprowadzenia go w stan początkowy. Inicjalizacja polega najczęściej na ustawieniu licznika rozkazów na początek kodu programu (do licznika rozkazów wpisywany jest wektor resetu). Urządzenia peryferyjne mk i rejestry sterujące są ustawiane w tryb standardowy (spoczynku). Uniwersalne końcówki we/wy są ustawione jako wejścia o wysokiej impedancji, aby minimalnie wpływać na otoczenie mk (w dokumentacji każdego mk znajduje się informacja o stanie wszystkich rejestrów i portów po resecie mk). Ponadto, służy on do wprowadzenia mk w tryb programowania lub testowania. Możemy wyróżnić następujące źródła resetu: reset po włączeniu zasilania, reset wywołany zewnętrznym sygnałem RESET, reset programowy wywołany przez ustawienie odpowiedniego bitu, reset wywołany przez układ watchdog, reset wywołany przez układy nadzorujące poprawność pracy mk (np. od układu wykrywającego spadek napięcia zasilania LVD (Low Voltage Detector) w ST72215G, BOR (Brown-out Reset) w PIC16F873) Mikroprocesory i kontrolery 42 Każdy mk posiada dedykowaną końcówkę (pin) do której przypisany jest zewnętrzny sygnał resetu. Sygnał ten umożliwia asynchroniczny reset mk. Najczęściej jest on aktywny poziomem niskim (z wyjątkiem mk 80C51). Rys. 22. Prosty układ resetu

22 Mikroprocesory i kontrolery 43 Rys. 23. Układ resetu mk XMEGA A Mikroprocesory i kontrolery 44 Rys. 24. Układ resetu mk PIC18F4550

23 Mikroprocesory i kontrolery 45 Rys. 25. Przebiegi sygnałów w układzie resetu mk PIC18F4550 Mikroprocesory i kontrolery 46 Rys. 26. Rejestr kontrolny układu reset mk PIC18F4550

24 Mikroprocesory i kontrolery 47 Rys. 27. Przebiegi sygnałów V DD i RESET dla układu LVD mk ST72215G Układ LVD generuje sygnał resetu dopóki V DD podczas narastania nie osiągnie założonego napięcia V IT+ oraz gdy to napięcie spadnie poniżej V IT- podczas opadania. Mikroprocesory i kontrolery 48 Układy nadzorujące układ watchdog Do układów nadzorujących poprawność pracy mk można zaliczyć: autonomiczne liczniki watchdog (licznik nadzorcy), monitory sygnału zegarowego, układy detekcji zaniku i powrotu napięć zasilających, układy detekcji przyczyn awarii systemowych. Rys. 28. Struktura programu użytkownika w mk

25 Mikroprocesory i kontrolery 49 Zasada pracy układu watchdog jest następująca: Poprawnie pracujący mk charakteryzuje się pewną sygnaturą częstotliwościową lub czasową zawierającą się w ściśle określonych granicach. Wynika to z zasady pisania oprogramowania na mk: Program użytkownika, po części inicjalizacyjnej, jest wykonywany w niekończącej się pętli od czasu do czasu przerywanej przez obsługę przerwań. Program ten jest jedynym programem jaki znajduje się w mk Zatem mk wykonuje tylko to co napiszemy. Stąd aby mk działał prawidłowo nasz program musi pracować w nieskończonej pętli. Pętla ta jest wykonywana z określoną częstotliwością możliwą do obliczenia przez programistę (znamy częstotliwość oscylatora, z dokumentacji wiemy ile cykli zegarowych potrzebuje każda instrukcja i oczywiście wiemy ile jest tych instrukcji w pętli). Czyli jak program pracuje prawidłowo to rozkaz zerujący watchdog umieszczony w odpowiednim miejscu pętli głównej programu jest wykonywany cyklicznie z założoną częstotliwością, tym samym watchdog jest zerowany i nie zresetuje mk. Jeżeli w jakimś momencie pętla ta zawiesi się (np. błąd w programie) lub będzie wykonywana zdecydowanie wolniej niż powinna (np. nieprawidłowa praca urządzeń peryferyjnych) jest to równoważne z wykryciem sytuacji alarmowej. Gdy autonomiczny licznik watchdog wykryje tę sytuację (czyli nastąpi jego przepełnienie, bo instrukcja jego zerowania nie zostanie wykonana na czas) wysyła sygnał reset zerujący mk oraz ustawia odpowiednie bity w rejestrze przechowującym informację o przyczynach wyzerowania procesora. Mikroprocesory i kontrolery 50 Rys. 29a. Układ watchdog mk PIC18F4550 Rys. 29b. Układ watchdog mk ATmega16

26 Mikroprocesory i kontrolery 51 System przerwań w mikrokontrolerze Współpraca jc z urządzeniami peryferyjnymi i zewnętrznymi jest realizowana na dwa sposoby: przez programowe testowanie (odpytywanie, przeglądanie) stanu urządzeń (polling), w systemie przerwań. System (układ) przerwań umożliwia natychmiastowe, czasowe wstrzymanie aktualnie wykonywanej sekwencji programu użytkownika i przejście do innej sekwencji programu związanej z obsługą określonego zdarzenia (przerwania), zaistniałego w urządzeniach peryferyjnych. Możemy wyróżnić następujące źródła przerwań: przerwanie zewnętrzne (wywołane sygnałem o odpowiednim zboczu: narastającym lub opadającym lub poziomie (najczęściej niskim) na dedykowanym pinie), przerwanie od urządzeń wewnętrznych (np. portów, liczników, komparatorów, przetworników A/C), przerwanie programowe (ustawienie odpowiedniego bitu, wykonanie rozkazu np. TRAP w mk ST72215G lub INTR w mk COP880). Mikroprocesory i kontrolery 52 Przerwania mogą być: maskowalne, tzn. można je zablokować zerując przypisane im bity maskujące, niemaskowalne (najczęściej jest nim przerwanie programowe). Można wyróżnić następujące systemy przerwań: system przerwań z programowym przeglądaniem urządzeń, system przerwań z automatyczną detekcją źródła przerwania system przerwań wektoryzowany. Do obsługi przerwań przeważnie używane są trzy rejestry: rejestr z flagami przerwań, z maskami poszczególnych przerwań i maską globalną, rejestr poziomu priorytetów.

27 Mikroprocesory i kontrolery 53 Rys. 30. Fragment schematu układu przerwań mk PIC18F system przerwań z programowym przeglądaniem urządzeń Mikroprocesory i kontrolery 54 Rys. 31. Schemat układu przerwań mk PIC18F4550

28 Mikroprocesory i kontrolery 55 Cechy systemu przerwań z programowym przeglądaniem urządzeń: Jc nie zna źródła (przyczyny) przerwania. Zatem jc musi programowo przejrzeć (przepytać) flagi przerwań wszystkich urządzeń tak, jak przy programowym testowaniu stanu urządzeń, z tą różnicą, iż wykonuje ona tę czynność tylko w trakcie obsługi przerwania. Flagi poszczególnych przerwań nie są kasowane sprzętowo przy wejściu w obsługę przerwania, zatem należy je kasować programowo w trakcie jego obsługi. Najczęściej obsługa wszystkich przerwań jest pod jednym wspólnym adresem, zwanym wektorem przerwań (np. 0008h). Kolejność priorytetu przerwań zależy od przyjętej kolejności odpytywania flag przerwań poszczególnych urządzeń. Zaletą tego systemu przerwań jest prostota struktury sprzętowej potrzebnej do jego realizacji. Jego główną wadą jest długi czas potrzebny na identyfikację źródła przerwania. org 00008h goto IntVector... ; Interrupt vector Mikroprocesory i kontrolery 56 ;********************************************************************** ; Interrupt Service Routine IntVector ; save context (WREG and STATUS registers) if needed. btfss INTCON,INT0IF ; Did INT0 cause interrupt? goto OtherInt1 ; No, some other interrupt bcf INTCON,INT0IF... goto ISREnd ; Clear INT0 Interrupt Flag ; go to end of ISR, restore context, return OtherInt1 btfss PIR1,ADIF ; Did A/D cause interrupt? goto OtherInt2 ; No, check other sources bcf PIR1,ADIF... goto ISREnd ; Reset A/D int flag ; return from ISR OtherInt2 btfss PIR1,RCIF ; Did USART cause interrupt? goto OtherInt3 ; No, some other interrupt... movf RCREG,W ; Get input data goto ISREnd ; go to end of ISR, restore context, return...

29 OtherInt3... goto $ Mikroprocesory i kontrolery 57 ; Find cause of interrupt and service it before returning from ; interrupt. If not, the same interrupt will re-occur as soon ; as execution returns to interrupted program. ISREnd... ; Restore context if needed. retfie Listing.1. Przykładowy kod obsługi przerwań dla mk PIC18F4550 Mikroprocesory i kontrolery 58 #include <p18f4550.h> // Deklaracje rejestrow ukladu PIC18F void interrupt InterruptServices (void) { if(intconbits.int0if) // Czy przerwanie od INT0? { // obsluga przerwania od INT0 INTCONbits.INT0IF = 0; // zeruj flage aby nie wywolac ponownie tego przerwania... } if(intcon3bits.int1f) // Czy przerwanie od INT1? { // obsluga przerwania od INT1 INTCON3bits.INT1F = 0; // zeruj flage aby nie wywolac ponownie tego przerwania... } if(intcon3bits.int2f) // Czy przerwanie od INT2? { // obsluga przerwania od INT2 INTCON3bits.INT2F = 0; // zeruj flage aby nie wywolac ponownie tego przerwania... } // miejsce na obsługę innych źródeł przerwań } Listing 2. Przykładowy kod obsługi przerwań dla mk PIC18F4550 w języku C

30 Mikroprocesory i kontrolery 59 Najbardziej zaawansowanym i często stosowanym w mk jest system przerwań wektoryzowanych. W systemie tym : Na sygnał potwierdzenia przyjęcia przerwania przez jc urządzenie, które zgłosiło przerwanie, podaje na szynę danych kod identyfikacyjny, który jest traktowany jako numer elementu w wektorze przerwań. Wektor przerwań reprezentuje listę adresów obsługi przerwań. Zatem każde źródło przerwania ma przypisany adres obsługi przerwania w pamięci programu, zwany wektorem przerwania. Każdemu przerwaniu jest przypisany na stałe priorytet. o Jeżeli pojawi się w tym samym czasie kilka przerwań to najpierw obsługiwane jest to o najwyższym priorytecie, a następnie według ważności priorytetów kolejne przerwania. o Często przerwanie o wyższym priorytecie może przerwać obsługę przerwania o niższym (nigdy nie odwrotnie). o Istnieje również możliwość zmiany kolejności priorytetów. Służy do tego celu rejestr poziomu priorytetów, np. rejestr IP dla mk AT89C51. Wejście w obsługę danego przerwania zeruje sprzętowo jego flagę przerwania. Mikroprocesory i kontrolery 60 Tabela 4. Wektory przerwań i resetu mk ATmega16 Wektor, nr Adres pamięci programu Źródło 1 $000 RESET Opis przerwania Pin zewnętrzny, Power-on reset, Brown-out reset, Watchdog reset, JTAG reset 2 $002 INT0 Zewnętrzne przerwanie INT0 3 $004 INT1 Zewnętrzne przerwanie INT1 4 $006 TIMER2 COMP Timer / Licznik 2 dopasowanie porównania 5 $008 TIMER2 OVF Timer / Licznik 2 przepełnienie 6 $00A TIMER1 CAPT Timer / Licznik 1 zdarzenie przechwycenia 7 $00C TIMER1 COMPA Timer / Licznik 1 dopasowanie porównania A 8 $00E TIMER1 COMPB Timer / Licznik 1 dopasowanie porównania B 9 $010 TIMER1 OVF Timer / Licznik 1 przepełnienie 10 $012 TIMER0 OVF Timer /Licznik 0 przepełnienie 11 $014 SPI, STC Zakończona transmisja szeregowa 12 $016 USART, RXC USART, Rx 13 $018 USART, UDRE USART, pusty rejestr danych 14 $01A USART, TXC USART, Rx 15 $01C ADC Zakończona konwersja ADC 16 $01E EE_RDY EEPROM gotowy 17 $020 ANA_COMP Komparator analogowy 18 $022 TWI Interfejs szeregowy TWI (I2C) 19 $024 INT2 Zewnętrzne przerwanie INT2 20 $026 TIMER0 COMP Timer / Licznik 0 dopasowanie porównania 21 $028 SPM_RDY Store Program Memory Ready

31 ;Address Labels Code Comments $000 jmp RESET ; Reset Handler $002 jmp EXT_INT0 ; IRQ0 Handler $004 jmp EXT_INT1 ; IRQ1 Handler $006 jmp TIM2_COMP ; Timer2 Compare Handler $008 jmp TIM2_OVF ; Timer2 Overflow Handler $00A jmp TIM1_CAPT ; Timer1 Capture Handler $00C jmp TIM1_COMPA ; Timer1 CompareA Handler $00E jmp TIM1_COMPB ; Timer1 CompareB Handler $010 jmp TIM1_OVF ; Timer1 Overflow Handler $012 jmp TIM0_OVF ; Timer0 Overflow Handler $014 jmp SPI_STC ; SPI Transfer Complete Handler $016 jmp USART_RXC ; USART RX Complete Handler $018 jmp USART_UDRE ; UDR Empty Handler $01A jmp USART_TXC ; USART TX Complete Handler $01C jmp ADC ; ADC Conversion Complete Handler $01E jmp EE_RDY ; EEPROM Ready Handler $020 jmp ANA_COMP ; Analog Comparator Handler $022 jmp TWSI ; Two-wire Serial Interface Handler $024 jmp EXT_INT2 ; IRQ2 Handler $026 jmp TIM0_COMP ; Timer0 Compare Handler $028 jmp SPM_RDY ; Store Program Memory Ready Handler ; $02A RESET: ldi r16,high(ramend) ; Main program start Mikroprocesory i kontrolery 61 $02B out SPH,r16 ; Set Stack Pointer to top of RAM $02C ldi r16,low(ramend) $02D out SPL,r16 $02E sei ; Enable interrupts $02F <instr> xxx Listing. 3. Typowa konfiguracja resetu i systemu przerwań w mk ATmega16 Mikroprocesory i kontrolery 62 #include <avr/io.h> #include <avr/interrupt.h>... // external interrupt 0 ISR(PORTD_INT0_vect) { loop_until_bit_is_set(portd_in,0); // czekaj na puszczenie klawisza SW0... // kod obsługi przerwania } // ADC A CH0 interrupt - odczytanie wyniku i... ISR(ADCA_CH0_vect) { v_res = ADCA_CH0RES; // odczyt wyniku pomiaru napięcia na kanale CH0... // kod obsługi przerwania } // UART receive interrupt ISR(USARTE0_RXC_vect) // odczyt odebranej danej { usart_data = USARTE0_DATA;... // kod obsługi przerwania } // UART transmit interrupt ISR(USARTE0_TXC_vect) {... // kod obsługi przerwania } Listing 4. Przykładowy kod obsługi przerwań dla mk ATxmega32A4 w języku C

32 Mikroprocesory i kontrolery 63 Porty równoległe mk warstwa multiplekserów i zacisków we/wy Do równoległej transmisji danych cyfrowych służą w mk zespoły linii we/wy zwane portami równoległymi (parallel ports lub I/O ports). W przeważającej liczbie przypadków porty składają się z 8 linii dla mk 8-bitowych, mogą zatem transmitować dane bajtami. Liczba portów i ich wyprowadzeń (pinów) jest ograniczona przez liczbę wyprowadzeń obudowy mk. Za transport informacji wewnątrz mk odpowiedzialna jest wewnętrzna szyna danych. Rys. 32. Schematyczna budowa pojedynczej linii portu równoległego Mikroprocesory i kontrolery 64 Operacje wykonywane przez port mk: Czytanie danych (pobieranie) podawanych z zewnątrz na wyprowadzenia portu (jego piny) przez port polega na doprowadzeniu chwilowych stanów napięć na tych wyprowadzeniach (tzn. istniejących w momencie operacji czytania) do wewnętrznej szyny danych układu. Jest to realizowane przez uaktywnienie trójstanowego bufora sygnałem czytanie, jak pokazano na rys. 34. Wpisywanie danych (wprowadzenia) danej do portu powoduje, że chwilowy stan wewnętrznej szyny danych zostaje zapamiętany w elementach zapamiętujących poszczególnych linii (najczęściej są nimi przerzutniki typu D) i wystawiany na wyprowadzeniach portu za pośrednictwem aktywnego bufora trójstanowego. Stan wyprowadzeń portu pozostaje niezmienny, dopóki nie nastąpi kolejna operacja wpisania do portu. Linia portu równoległego jest linią wejściową, gdy bufor trójstanowy jest w stanie wysokiej impedancji. Uaktywnienie bufora trójstanowego sygnałem kierunek, ustawia linię jako wyjściową. Wówczas 1 na wyjściu przerzutnika odpowiada stan wysoki (około V cc napięcie zasilania mk) na wyprowadzeniu portu, a 0 stan niski (około 0 V). Wyróżnia się trzy rodzaje linii portów (zacisków we/wy): dwukierunkowe (quasi-bidirectional), z otwartym obwodem drenu tranzystora (open dren), o zwiększonej obciążalności (push-pull output).

33 Mikroprocesory i kontrolery 65 Rys. 33. Pełny schemat blokowy pojedynczej linii portu we/wy mk ATxmega32A4 Do obsługi dwukierunkowego portu równoległego służy kilka rejestrów: Mikroprocesory i kontrolery 66 Np. dla mk ATmega16 rejestr danych wyjściowych (PORTx), rejestr kierunku przepływu danych (DDRx), rejestr danych wejściowych (PINx). Np. dla mk ATxmega32A4 rejestr kierunku przepływu danych (PORTx_DIR), rejestr kierunku przepływu danych (PORTx_DIRSET) indywidualne ustawianie linii jako wyjściowych, rejestr kierunku przepływu danych (PORTx_DIRCLR) indywidualne ustawianie linii jako wejściowych, rejestr kierunku przepływu danych (PORTx_DIRTGL) zmiana kierunku linii na przeciwny, rejestr danych wyjściowych (PORTx_OUT), rejestr danych wyjściowych (PORTx_OUTSET) indywidualne ustawienie stanu wysokiego na linii, rejestr danych wyjściowych (PORTx_OUTCLR) indywidualne ustawienie stanu niskiego na linii, rejestr danych wyjściowych (PORTx_OUTTGL) zmiana stanu linii na przeciwny, rejestr danych wejściowych (PORTx_IN), rejestry: INTCTRL, INT0MASK, INT1mASK, INTFLASG, PINnCTRL.

34 Mikroprocesory i kontrolery 67 Przykładowe parametry elektryczne linii portów równoległych: dla ATmega16 pojedynczy pin portu może przejąć w stanie niskim prąd 20 ma, ale suma prądów wpływająca przez wszystkie piny mk nie może przekroczyć 200 ma. dla PIC18F4550 pojedynczy pin portu może przejąć w stanie niskim i wysokim prąd 25 ma, ale suma prądów wpływająca przez wszystkie piny mk nie może przekroczyć 200 ma. dla ATxmega32A4 pojedynczy pin portu może przejąć w stanie niskim i wysokim prąd 20 ma, ale suma prądów wpływająca przez wszystkie piny mk nie może przekroczyć 200 ma. Ważna uwaga: każda linia układu cyfrowego będąca wyjściem, zatem i mk, jest w stanie przejąć znacznie większy prąd w stanie niskim niż wysokim. Wynika to z technologii układów CMOS. Mikroprocesory i kontrolery 68 Rys. 34. Schemat blokowy portu A linii RA3:0 i RA5 mk PIC18F4550 wraz z kodem inicjującym pracę portu A

35 Mikroprocesory i kontrolery 69 Wewnętrzne urządzenia peryferyjne mk Podstawową cechą mk jest zawarcie w ich strukturze dodatkowych urządzeń, zwanych urządzeniami peryferyjnymi. Stanowią one warstwę programowalnych urządzeń we/wy w modelu warstwowym mk zamkniętego. W mk urządzenia peryferyjne są zintegrowane z układami we/wy (czyli składają się z układów we/wy i właściwych urządzeń peryferyjnych w przeciwieństwie do systemów mikroprocesorowych, w których te dwa bloki były oddzielne). Wszystkie układy peryferyjne mk mają właściwości: Są programowalne - zadania przekazywane są im do wykonania odpowiednimi rozkazami, dokładniej mówiąc przez ustawienie odpowiednich bitów w rejestrach konfiguracyjnych (sterujących), przez wpisanie danych do rejestrów danych. Charakteryzują się dużym stopniem autonomii w stosunku do procesora rdzeniowego. Przekazane im zadania wykonywane są samodzielnie, bez zaangażowania czasu procesora. Od strony procesora układy peryferyjne, czyli układy we/wy programowane są za pośrednictwem magistrali wewnętrznej. Układom tym zazwyczaj przypisane są: rejestry robocze (czyli rejestry danych zawierające wyniki ich działania), rejestry konfiguracyjne/sterujące służące do konfiguracji i sterowania urządzeniem peryferyjnym, rejestry statusu zawierające aktualny stan urządzenia: flagi przerwań, komunikaty o błędach, itp. O zakończeniu wykonywania zadań procesor informowany jest ustawieniem odpowiedniego bitu w rejestrze stanu urządzenia (najczęściej flagi przerwania) lub wysłaniem sygnału żądania przerwania o ile jest ono odblokowane. Mikroprocesory i kontrolery 70 Rys. 35. Obszar rejestrów urządzeń peryferyjnych SFR umieszczony w górnej połówce banku 15 mapy pamięci danych mk PIC18F4550, adresy: F60h FFFh

36 Mikroprocesory i kontrolery 71 Rys. 36. Obszar rejestrów urządzeń peryferyjnych mk ATxmega32A4 typedef unsigned char uint8_t; Mikroprocesory i kontrolery 72 // plik stdint.h #define _MMIO_BYTE(mem_addr) (*(volatile uint8_t *)(mem_addr)) #define _SFR_MEM8(mem_addr) _MMIO_BYTE(mem_addr) // plik sfr_defs.h /* PORTA - Port A */ #define PORTA_DIR _SFR_MEM8(0x0600) #define PORTA_DIRSET _SFR_MEM8(0x0601) #define PORTA_DIRCLR _SFR_MEM8(0x0602) #define PORTA_DIRTGL _SFR_MEM8(0x0603) #define PORTA_OUT _SFR_MEM8(0x0604) #define PORTA_OUTSET _SFR_MEM8(0x0605) #define PORTA_OUTCLR _SFR_MEM8(0x0606) #define PORTA_OUTTGL _SFR_MEM8(0x0607) #define PORTA_IN _SFR_MEM8(0x0608) #define PORTA_INTCTRL _SFR_MEM8(0x0609) #define PORTA_INT0MASK _SFR_MEM8(0x060A) #define PORTA_INT1MASK _SFR_MEM8(0x060B) #define PORTA_INTFLAGS _SFR_MEM8(0x060C) #define PORTA_PIN0CTRL _SFR_MEM8(0x0610) #define PORTA_PIN1CTRL _SFR_MEM8(0x0611) #define PORTA_PIN2CTRL _SFR_MEM8(0x0612) #define PORTA_PIN3CTRL _SFR_MEM8(0x0613) #define PORTA_PIN4CTRL _SFR_MEM8(0x0614) #define PORTA_PIN5CTRL _SFR_MEM8(0x0615) #define PORTA_PIN6CTRL _SFR_MEM8(0x0616) #define PORTA_PIN7CTRL _SFR_MEM8(0x0617) Listing 5. Przykład deklaracji rejestrów urządzeń peryferyjnych dla mk ATxmega32A4 w języku C fragment pliku iox32a4.h

37 // Register: PORTB extern volatile unsigned char 0xF81; #ifndef _LIB_BUILD asm("portb equ 0F81h"); #endif // bitfield definitions typedef union { struct { unsigned RB0 :1; unsigned RB1 :1; unsigned RB2 :1; unsigned RB3 :1; unsigned RB4 :1; unsigned RB5 :1; unsigned RB6 :1; unsigned RB7 :1; }; struct { unsigned INT0 :1; unsigned INT1 :1; unsigned INT2 :1; unsigned :2; unsigned PGM :1; unsigned PGC :1; unsigned PGD :1; }; struct { unsigned :3; unsigned CCP2_PA2 :1; }; } PORTBbits_t; extern volatile PORTBbits_t 0xF81; Mikroprocesory i kontrolery 73 Listing 6. Przykład deklaracji rejestrów urządzeń peryferyjnych dla mk PIC18F4550 w języku C fragment pliku pic18f4550.h Mikroprocesory i kontrolery 74 Układy peryferyjne można podzielić na następujące grupy funkcyjne (zachowano oryginalne nazwy angielskie): 1. Układy nadzorujące CPU (właściwie przypisane jc, ale wymienione tutaj): Watchdog Timer (WDT), Power-on Reset (POR), Brown-out Reset (BOR), Fail-Safe Clock Monitor, Clock security system (CSS). 2. Układy czasowe: Timer/Counter (PWM, Capture/Compare, AWeX), Real Time Clock (RTC). 3. Sterowniki komunikacji szeregowej: USART (IRCOM), Serial Peripheral Interface (SPI), (I 2 S), 1-Wire, I 2 C, Two Wire Interface (TWI), Controller Area Network (CAN), Univelsal Serial Bus (USB), MII & Ethernet PHY, 2.4 GHz Radio Transceiver. 4. Łącza równoległe: Ports, Streaming Parallel Port (SPP), External Bus Interface (EBI), Touch sensing controller (TSC). 5. Układy pomiarowe: Analog-to-Digital Converter (ADC), Digital-to-Analog Converter (DAC), Analog Comparator (AC). 6. Układy specjalizowane: Direct Memory Access Controller (DMA), Event System, Interrupt Controller, Battery Backup Module, Crypto Engine, EEPROM.

38 Mikroprocesory i kontrolery 75 Układy licznikowe/czasowe Współpraca mk z otoczeniem w czasie rzeczywistym wymaga odliczania czasu lub generowania złożonych sekwencji binarnych. Jest to realizowane przez specjalizowane bloki nazywane licznikami (counters) lub układami czasowymi (timers) z dokładnością oscylatora kwarcowego mk. Liczba liczników stosowanych w mk i ich długość wyrażona w bitach, różnią się dla konkretnych typów mk. Większość mk ma przynajmniej dwa liczniki 16-bitowe, każdy mk posiada choćby jeden licznik 8-bitowy. Rys. 37. Schematyczna budowa układu czasowego Mikroprocesory i kontrolery 76 Najprostsze układy czasowe mogą pracować w dwóch podstawowych konfiguracjach: jako właściwe układy czasowe (timers) Są wtedy taktowane wewnętrznym sygnałem zegarowym rozprowadzanym przez układ dystrybucji sygnałów zegarowych. Timery wykorzystywane są w programie użytkownika jako wzorce czasu. W celu generowania wzorców czasu o różnej długości wewnętrzny sygnał zegarowy, przed doprowadzeniem do układu czasowego, przechodzi przez programowalny dzielnik częstotliwości. jako liczniki (counters) Są one wtedy taktowane zewnętrznymi sygnałami doprowadzanymi poprzez linie wejściowe portów (czyli zliczają impulsy zewnętrzne) i wykorzystywane w programie użytkownika np. jako liczniki zmian poziomów sygnałów zewnętrznych. Kolejna właściwość liczników to sposób zliczania impulsów. Liczniki mogą zliczać impulsy: w górę, tzn. inkrementować, w dół czyli dekrementować.

39 Mikroprocesory i kontrolery 77 Liczniki wyposażone w bardziej rozbudowane układy są używane zazwyczaj do realizacji następujących funkcji: określenia (mierzenia) odstępów czasu między zdarzeniami zachodzącymi na zewnątrz mk, sygnalizowanymi przez impulsy elektryczne doprowadzone do mk. Funkcja ta bywa nazywana rejestracją zdarzeń (input event capture), generowania impulsów (sekwencji impulsów) w odstępach czasu o zaprogramowanej wartości (output compare) lub przebiegu okresowego o zadanej częstotliwości, generowania sygnałów impulsowych o określonym czasie trwania lub sygnałów okresowych o zadanym współczynniku wypełnienia (PWM pulse width modulation), sterowania szybkością transmisji w portach szeregowych, zarówno w trybie synchronicznym, jak i asynchronicznym (baut rate generator), realizacji zadań licznika nadzorcy watchdoga, omówionych w poprzednim podrozdziale. Mikroprocesory i kontrolery 78 Rys. 38. Schematyczna budowa układu generatora sygnału zegarowego zegara

40 Mikroprocesory i kontrolery 79 Rys. 39. Licznik w konfiguracji rejestratora zdarzeń Zadaniem licznika w konfiguracji rejestratora zdarzeń jest określenie czasu wystąpienia zdarzenia zewnętrznego sygnalizowanego przez impuls elektryczny podany na wejście. Czas ten jest mierzony w sposób względny, tzn. w stosunku do chwili zezwolenia na rozpoczęcie zliczenia w n-bitowym liczniku sterowanym impulsami zegara wewnętrznego. Mikroprocesory i kontrolery 80 Zasada działania rejestratora zdarzeń: Przed uruchomieniem zliczania program zeruje licznik i określa zbocze sygnału zewnętrznego, które ma spowodować rejestrację zdarzenia. Natępnie następuje uruchomienie licznika. Od tego momentu licznik zlicza kolejne impulsy przychodzące od zegara czyli, dokładniej mówiąc, po każdym zliczonym impulsie następuje inkrementacja zawartości n-bitowego rejestru roboczego licznika. Po wystąpieniu aktywnego zbocza sygnału zewnętrznego aktualna zawartość licznika jest przepisywana do rejestru zatrzaskowego rejestratora zdarzeń. Układ może równocześnie wygenerować przerwanie informujące jc o zarejestrowaniu zdarzenia, jeśli wcześniej ustawiono zezwolenie przerwania. W tym układzie odczyt rejestru zatrzaskowego musi nastąpić przed wystąpieniem kolejnego zdarzenia, ponieważ pracujący cały czas licznik przy następnym sygnale zewnętrznym zmieni zawartość rejestru zatrzaskowego. Rejestrując czas wystąpienia kolejnych zboczy można łatwo określić częstotliwość sygnału okresowego lub szerokość impulsów. W pierwszym przypadku rejestruje się dwa następujące po sobie zbocza o tej samej polaryzacji, natomiast w drugim dwa zbocza o różnej polaryzacji.

41 Mikroprocesory i kontrolery 81 Rys. 40. Licznik w układzie programowalnego generatora impulsów Szczególne zastosowanie tej konfiguracji polega na generowaniu impulsów o programowalnym czasie opóźnienia w stosunku do zewnętrznych impulsów odniesienia. W tym przypadku układ pracuje w mieszanym trybie rejestrator generator. Po zarejestrowaniu zdarzenia licznik odmierza zaprogramowaną liczbę impulsów i generuje sygnał wyjściowy. Mikroprocesory i kontrolery 82 W konfiguracji programowanego generatora impulsów licznik pracuje zgodnie z poniższą zasadą: Jc wpisuje do rejestru komparatora liczbę k określającą chwilę wygenerowania impulsu (liczbę impulsów zegara, po których nastąpi wygenerowanie impulsu), po czym zeruje i uruchamia licznik. Po upływie zaprogramowanej liczby k cykli zegara o okresie t c, komparator wykrywa zrównanie się zawartości licznika i z zawartością rejestru komparatora. Gdy to wykryje generuje sygnał wyjściowy o zaprogramowanej wartości. Jednocześnie licznik może wysyłać do jc przerwanie, o ile zostało odblokowane.

42 Mikroprocesory i kontrolery 83 Rys. 41. Licznik w trybie PWM (k < m) W konfiguracji PWM licznik pracuje jako generator fali prostokątnej o programowanym współczynniku wypełnienia. Mikroprocesory i kontrolery 84 Zasada pracy generatora PWM jest następująca. Jc wpisuje do rejestru szerokości impulsu liczbę k określającą czas trwania impulsu (τ = k t c ), a do rejestru okresu liczbę m definiującą długość okresu (T = m t c ), przy czym powinno być: k < m. Następnie program zeruje licznik i ustawia poziom wysoki na wyjściu rejerstru zatrzaskowego początek trwania impulsu na wyjściu PWM, po czym uruchamia licznik. W czasie zliczania kolejnych impulsów zegara zawartość licznika jest porównywana z zawartością rejestru szerokości impulsów i rejestru okresu sygnału. Jeśli zawartość licznika osiągnie zaprogramowaną liczbę k określającą czas trwania impulsu, to pierwszy komparator zeruje przerzutnik wyjściowy koniec trwania impulsu na wyjściu PWM. Następnie po osiągnięciu przez licznik zaprogramowanej liczby m drugi komparator ustawia przerzutnik wyjściowy (początek trwania następnego impulsu na wyjściu PWM) i zeruje licznik od tego momentu rozpoczyna się generacja kolejnego impulsu. Zatem sygnał od tego komparatora określa początek kolejnego impulsu, a zarazem okres generowanego przebiegu. Rozdzielczość wyjściowa układu PWM jest określona przez częstotliwość sygnału zegara i długość słowa licznika. Rejestr sterujący PWM zawiera dodatkowo wydzielone bity, które pozwalają na wyjściu uzyskać sygnał stały na poziomie 0 lub 1.

43 Mikroprocesory i kontrolery 85 Rys. 42. Schemat blokowy licznika TIMER0 w trybie 8-bitowym mk PIC18F452 Należy pamiętać, iż maksymalna częstotliwość sygnału zewnętrznego podawanego na wejście licznika nie może być większa niż F OSC /4. Wynika to z faktu, iż licznik próbkuje poziom napięcia na wejściu z częstotliwością F OSC. Jeżeli stwierdzi zmianę poziomu np. po próbkach 0 i 0 pojawią się próbki 1 i 1, to traktuje to jako zbocze narastające sygnału wejściowego, zatem zliczy pojedynczy impuls. Mikroprocesory i kontrolery 86 Rys. 43. Schemat blokowy preskalera dla układów Timer/Counter0 i Timer/Counter1 mk ATmega16

44 Mikroprocesory i kontrolery 87 Rys. 44. Schemat blokowy układu Timer/Counter1 mk ATmega16 Mikroprocesory i kontrolery 88 W skład licznika Timer/Counter1 wchodzą następujące bloki: Programowalny preskaler, który zapewnia podział wewnętrznego sygnału zegarowego przez 8, 64, 256 lub 1024 oraz synchronizuje zewnętrzny sygnał podawany na wejście T1 z wewnętrznym sygnałem zegarowym jc (rys. 2.45). Blok licznika składający się z bloku sterującego, 16-bitowego rejestru TCNT1 oraz stowarzyszonej z nim flagi przepełnienia TOV1 umożliwiającej generację przerwania. Blok rejestratora zdarzeń (Input Capture Unit) składający się z toru zbudowanego z pinu ICP1, multipleksera wybierającego źródło sygnału przechwytywanego, układu redukcji szumów (Noise Canceler), układu wyboru aktywnego zbocza (Edge Detect), które spowoduje zapisanie bieżącej wartości licznika TCNT1 do 16-bitowego rejestru ICR1 i ustawienie flagi przerwania ICF1. Blok Output Compare składający się z dwóch torów A i B. W skład każdego toru wchodzi 16-bitowy rejestr OCR1A/B wraz z komparatorem porównującym zawartość tego rejestru z zawartością licznika, układ generacji sygnału wyjściowego (Waveform Generation) i flaga przerwania OC1A/B oraz pin wyjściowy OC1A/B. Dwa rejestry konfiguracyjne TCCR1A i TCCR1B, rejestr masek czterech przerwań licznika TIMSK oraz rejestr przerwań TIFR.

45 Mikroprocesory i kontrolery 89 Tryby pracy licznika Timer/Counter1 mk ATmega16: 16-bitowy counter/timer sterowany bitami CS10-CS12 rejestru TCCR1B. Przy pomocy tych bitów wybiera się tryb czasomierza (timer) z odpowiednio ustawionym preskalerem lub licznika (counter) z możliwością wyboru aktywnego zbocza. Do zliczania służy para rejestrów TCNT1H i TCNT1L stanowiąca 16-bitowy licznik TCNT1. W zależności od wybranego trybu pracy zawartość licznika może być zerowana, inkrementowana lub dekrementowana przez impuls zegarowy. Flaga przepełnienia TOV1 może być ustawiona, gdy licznik osiągnie maksymalną lub minimalną wartość (zero). Rys. 45. Schemat bloku licznika Tryb rejestratora zdarzeń (Input Capture). Mikroprocesory i kontrolery 90 Rys. 46. Schemat bloku rejestratora zdarzeń W tym trybie zmiana poziomu napięcia (zdarzenie) na pinie wejściowym ICP1 lub na wyjściu ACO komparatora analogowego, jeżeli jest zgodna ze zmianą wykrywaną (ustawioną jako aktywna) przez Edge Detector, powoduje przepisanie aktualnej wartości licznika TCNT1 do 16-bitowego rejestru ICR1 i ustawienie flagi ICF1, i jeśli maska przerwania TICIE1 jest ustawiona generację przerwania. Układ Noise Canceler służy do redukcji zakłóceń pojawiających się na jego wejściu. Gdy jest aktywowany sygnał wejściowy jest opóźniony o cztery impulsy zegarowe zegara systemowego.

46 Mikroprocesory i kontrolery 91 Tryb Output Compare. Rys. 47. Schemat bloku Output Compare Mikroprocesory i kontrolery bitowy komparator cały czas porównuje zawartość pracującego licznika TCNT1 z wpisaną wartością do16- bitowego rejestru OCR1A/B. Jeżeli wartości w TCNT1 i w OCR1A/B zrównają się to 16-bitowy komparator sygnalizuje warunek zrównania się (generuje sygnał match ). Flaga przerwania OCF1A/B ustawiana jest w następnym cyklu zegarowym licznika, i jeśli ustawiona jest maska OCIE1A/B, jest generowane przerwanie. Układ Waveform Generator korzysta z sygnału match do generacji przebiegów na wyjściu OC1A/B. Tryb generacji przebiegów na wyjściu OC1A/B zależy od ustawienia bitów WGM13:0 i COM1A/B1:0. Za pomocą bitów WGM13:0 i COM1A/B1:0 można wybrać następujące tryby pracy licznika Timer/Counter1 mk ATmega16 (zachowano oryginalne nazewnictwo): Compare Output Mode and Waveform Generation. Normal Mode. Clear Timer on Compare Match (CTC) Mode. Fast PWM Mode. Phase Correct PWM Mode. Phase and Frequency Correct PWM Mode.

47 Mikroprocesory i kontrolery 93 Wbudowane przetworniki analogowo-cyfrowe (A/C) Przetworniki A/C stosowane w mk wykorzystują najczęściej metodę sukcesywnej aproksymacji SAR (successive approximation) (stosuje się również przetworniki A/C z przetwarzaniem potokowym np. rodzina AVR XMEGA) przetwarzania napięcia na odpowiadającą mu miarę liczbową. Zaletą metody SAR jest krótki czas konwersji, wynoszący minimalnie 13 do 16 cykli zegara dla przetwornika 10- bitwowego. W praktyce tego typu przetworniki A/C stosowane w mk nie przekraczają rozdzielczości 12 bitów (obecnie typowe mk posiadają przetworniki 10-bitowe). Wynika to z faktu, iż umieszczone w jednej strukturze z rozbudowanym układem cyfrowym mk nie zapewniałyby należytej dokładności przetwarzania. Gdy wymagana jest większa precyzja pomiaru napięć, używa się zewnętrznych przetworników A/C. Przetworniki A/C konstruowane są jako bloki w pełni autonomiczne, mogące pracować niezależnie od procesora rdzeniowego. Posiadają własne układy sterowania, generatory (lub niezależne dzielniki) sygnałów zegarowych. Z reguły współpracują z 8 16-kanałowymi multiplekserami i układami próbkująco-pamiętającymi S&H (sample-andhold). Mikroprocesory i kontrolery 94 Przetwornik A/C oparty na metodzie SAR składa się z: z układu próbkująco-pamiętającego, komparatora, rejestru aproksymacyjnego (zawierającego wynik konwersji), układu sterowania realizującego algorytm metody SAR (zawiera on rejestry sterujące), przetwornika C/A (najczęściej drabinka R-2R), multiplekserów analogowych, źródła napięcia odniesienia, niekiedy oddzielnego układu zasilania części analogowej (w celu wyeliminowania zakłóceń).

48 Mikroprocesory i kontrolery 95 Rys. 48. Uproszczony schemat blokowy przetwornika A/C pracującego na zasadzie SAR Mikroprocesory i kontrolery 96 Cykl konwersji A/C dla metody SAR: Zaczyna się od pobrania próbki mierzonego napięcia wejściowego i zapamiętania jej w pojemności C. Rejestr aproksymacyjny jest zazwyczaj inicjowany w taki sposób, że ma ustawiony najbardziej znaczący bit MSB, a pozostałe bity wyzerowane. Zawartość rejestru reprezentuje zatem napięcie równe połowie maksymalnego napięcia (zakresu pomiarowego). Wartość ta jest zmieniana przez przetwornik C/A na napięcie i porównywana z napięciem mierzonym. W zależności od wyniku porównania układ sterowania pozostawia najbardziej znaczący bit rejestru niezmieniony albo go neguje. Pierwszy przypadek ma miejsce, gdy napięcie mierzone jest większe od połowy napięcia zakresowego, drugi gdy jest mniejsze. Po określeniu wartości najbardziej znaczącego bitu rejestru aproksymacyjnego przetwornik ustawia w rejestrze kolejny bit i powtarza opisaną wyżej procedurę, aż do ostatniego najmniej znaczącego bitu LSB.

49 Mikroprocesory i kontrolery 97 Ze względu na problemy natury technologicznej wewnętrzne przetworniki A/C nie osiągają zwykle rozdzielczości większej niż bitów. W takim przypadku wystarcza, by charakterystyka przetwornika spełniała wymagania: monotoniczności (monotonicity) niewystępowanie efektów brakujących kodów wraz ze wzrostem napięcia wejściowego od zera do napięcia maksymalnego przetwornik musi dawać na wyjściu wszystkie kolejne liczby od 0 do 2 n-1, gdzie n rozdzielczość przetwornika. Przy zmniejszaniu napięcia przetwornik generuje natomiast liczby malejące o jedność od wartości 2 n-1 do zera. W praktyce parametry przetwornika A/C określone są przez: długość słowa (najczęściej 8 lub 10 bitów), czas konwersji (typowo od kilku do kilkunastu µs), rozdzielczość (zwykle 1 LSB ~ 20 mv lub 1 LSB ~ 5 mv przy napięciu referencyjnym 5V), błąd całkowity (zwykle 1,5 2 LSB). Mikroprocesory i kontrolery 98 Natomiast w skład błędu całkowitego wchodzą następujące składniki: błąd kwantyzacji (quantization error), błąd przesunięcia zera (zero-offset error), błąd skalowania przetwornika (full-scale error), błąd nieliniowości całkowitej (integral nonlinearity error), błąd nieliniowości różniczkowej (differential nonlinearity error). Rys. 49. Charakterystyka przejściowa idealnego, 10-bitowego przetwornika A/C

50 Mikroprocesory i kontrolery 99 Rys. 50. Schemat blokowy przetwornika A/C mk ST72215G Mikroprocesory i kontrolery 100 Aby dokonać pomiaru napięcia przetwornikiem A/C mk ST72215G należy wykonać następujące kroki: wybrać kanał konwersji bity CH[3:0] w rej. ADCCSR, pin, z którego będzie brany sygnał analogowy musi być ustawiony jako wejście bez pull-up i bez przerwania, ustawić bit ADON w rej ADCCSR aby rozpocząć konwersję, konwersja kończy się ustawieniem bitu COCO w rej. ADCCSR, wyik konwersji znajduje się w rej. ADCDR, nie jest generowane przerwanie. Zapis do rej. ADCCSR (z ustawionym bitem ADON) przerywa bieżącą konwersję, resetuje bit COCO i rozpoczyna nową konwersję.

51 Mikroprocesory i kontrolery 101 Aby dokonać pomiaru napięcia należy wykonać następujące kroki: Rys. 51. Schemat blokowy przetwornika A/C mk ATmega16 wybrać źródło referencyjne bity REFS1:REFS0 w rej. ADMUX ustalić sposób justowania wyniku konwersji w lewo lub w prawo bit ADLAR w rej. ADMUX, wybrać kanał konwersji, ewentualnie wzmocnienie kanału dla trybu różnicowego bity MUX4:0 w rej. ADMUX, ustawić podział sygnału zegarowego taktującego konwersją bity ADSP2:0 w rej. ADCSRA, włączyć przetwornik bit ADEN i odblokować przerwanie bit ADIE od końca konwersji w rej. ADCSRA, ustawić bit ADON w rej. ADCCSR aby włączyć przetwornik A/C, jeżeli bit ADATE (ADC Auto Triger Enable) w rej. ADCCSR jest wyzerowany, to konwersję rozpoczyna się ustawiając bit ADSC w rej. ADCCSR, konwersja kończy się ustawieniem flagi ADIF w rej. ADCCSR, co generuje przerwanie, wynik konwersji znajduje się w parze rej. ADCH/ADCL. Mikroprocesory i kontrolery 102 Rys. 52. Przebieg czasowy procedury pojedynczej konwersji A/C dla mk ATmega16

52 Mikroprocesory i kontrolery 103 Wewnętrzne komparatory analogowe mk Komparator analogowy (komparator napięcia) służy do porównywania analogowego sygnału u(t) z napięciem progowym (referencyjnym) U: w przypadku idealnym wyjście komparatora przyjmuje tylko dwie wartości napięcia, wysoką H (high) dla u(t)<u i niską L (low) dla u(t)>u. Przejście od jednego stanu do drugiego zachodzi dla u(t) = U, to jest dla punktu, w którym charakterystyka wyjściowa wykazuje nieciągłość (rys. 53). Rys. 53. Schemat komparatora analogowego i jego zasada działania, gdzie: + - końcówka nieodwracająca, - - końcówka odwracająca Czyli zadaniem analogowego komparatora napięcia jest wytworzenie sygnału logicznego 0 lub 1 na wyjściu w zależności od znaku różnicy napięć wejściowych. Mikroprocesory i kontrolery 104 Zatem (jeszcze raz wyjaśnienie pracy komparatora): Jeżeli napięcie wejściowe u(t) podane na końcówkę nieodwracającą komparatora jest mniejsze od napięcia odniesienia U podawanego na końcówkę odwracającą, to napięcie wyjściowe przyjmuje poziom niski. Natomiast, gdy napięcie wejściowe u(t) ma wartość większą niż wartość napięcia odniesienia U, wówczas napięcie wyjściowe przyjmuje poziom wysoki. Czyli komparatory analogowe są szczególnym przypadkiem przetworników A/C. Są one najprostszym blokiem pozwalającym na dokonanie 1-bitowej konwersji sygnału z postaci analogowej na cyfrową, czyli sprawdzenia czy napięcie na wejściu komparatora jest powyżej, czy poniżej progu komparacji. W komparatorach analogowych wbudowanych w mk można ustawić parametry: Próg komparacji (poziom komparacji), czyli zewnętrzne napięcie podawane na jedno z wejść komparatora traktowane jako napięcie odniesienia (napięcie progowe). Warunek komparacji, tzn. co się stanie w przypadku, gdy napięcie wejściowe wzrośnie powyżej progu komparacji (gdy ustawiliśmy taki warunek) lub zmaleje poniżej jego. Spełnienie warunku komparacji powoduje ustawienie odpowiedniej flagi i generację przerwania, o ile nie zostało zablokowane.

53 Mikroprocesory i kontrolery 105 Rys. 54. Schemat blokowy komparatora analogowego mk ATmega16 ACD - ACBG - ACO - ACI - ACIE - ACIC - Mikroprocesory i kontrolery 106 Rejestr ACSR Bit ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0 Dostęp R/W R/W R R/W R/W R/W R/W R/W Odłączenie komparatora analogowego. Wpisanie 1 do tego bitu odłącza zasilanie od komparatora analogowego. Wybranie źródła referencyjnego (Bandgap). Wyjście komparatora analogowego. Flaga przerwania komparatora analogowego. Odblokowanie przerwania komparatora analogowego. Funkcja Input Capture z komparatora analogowego. Wpisanie do tego bitu 1, pozwala aby aktualizacja rejestru ICR1 (Input Capture licznika 1). ACIS1:0 - Wybór sposobu wywołania przerwania komparatora analogowego. ACI ACI S1 S0 Tryb przerwania komparatora 0 0 Przerwanie od przełączenia wyjścia 0 1 Zarezerwowane 1 0 Przerwanie od zbocza opadającego na wyjściu 1 1 Przerwanie od zbocza narastającego na wyjściu

54 Mikroprocesory i kontrolery 107 Rys. 55. Komparatory analogowe w trybie okna mk ATXmega32A4 Mikroprocesory i kontrolery 108 Wewnętrzne pamięci EEPROM W nieulotnej pamięci danych typu EEPROM zaimplementowanej w mk można trzymać np. dane pomiarowe, zmienne konfiguracyjne, które nie mogą ulec skasowaniu po wyłączeniu zasilania lub w trakcie resetu mk. Zaletą tej pamięci jest możliwość kasowania jej zawartości i wpisu nowych danych przez program użytkownika zawarty w mk. Najczęściej pamięć ta ma wymiar 256, 512 bajtów lub 1, 2 kb. Zapis, jak i odczyt z pamięci EEPROM odbywa się za pośrednictwem rejestrów: rejestru sterującego, w którym uruchamia się procedurę odczytu lub zapisu do pamięci, rejestru danych przechowującego daną, która ma być wpisana pod adres wskazywany przez rejestry adresu lub zawiera daną odczytaną spod wybranego adresu, jednego lub dwóch rejestrów adresu zawierających adres komórki pamięci EEPROM, na której będzie wykonana operacja zapisu lub odczytu. Stąd pamięć EEPROM posiada własny obszar adresowania niezależny (oddzielny) od obszarów adresowania pamięci danych i programu. Czyli zapis i odczyt do/z tej pamięci odbywa się w identyczny sposób jak zapis i odczyt do/z rejestrów urządzeń peryferyjnych.

55 Mikroprocesory i kontrolery 109 Ogólnie odczyt z pamięci EEPROM przebiega według następującej procedury: do rejestrów adresu wpisuje się adres bajtu w pamięci EEPROM, spod którego chcemy pobrać daną, ustawiamy bit uruchamiający proces odczytu w rejestrze sterującym, czekamy, aż ustawi się flaga informująca o zakończeniu odczytu (najczęściej sprzętowe wyzerowanie bita uruchamiającego proces odczytu), w rejestrze danych znajduje się już nasza dana. Ogólnie zapis danej do pamięci EEPROM najczęściej przebiega według następującej procedury: czekamy aż zakończy się poprzedni cykl zapisu (zapis trwa około od 2ms do 4ms), testując flagę informującą o zakończeniu zapisu (najczęściej czekając na wyzerowanie bita uruchamiającego proces zapisu). do rejestrów adresu wpisuje się adres bajtu w pamięci EEPROM, do którego chcemy wpisać daną, do rejestru danych wprowadzamy naszą daną, odblokowujemy zapis do pamięci EEPROM ustawiając odpowiedni bit lub wykonując odpowiednią sekwencję wpisów do rejestrów sterujących (warto przedtem zablokować wszystkie przerwania), ustawiamy bit uruchamiający proces zapisu do EEPROM, Mikroprocesory i kontrolery 110 Przykład obsługi pamięci EEPROM (mk ATmega16): Mk posiada pamięć EEPROM o rozmiarze 512 bajtów (producent gwarantuje cykli poprawnego zapisu / kasowania). Rejestry dostępu do EEPROM u znajdują się w przestrzeni adresowej we/wy. Czas dostępu przy zapisie zależy od napięcia zasilania i wynosi 2,5 4 ms. Kiedy następuje dostęp do pamięci EEPROM, jc jest zatrzymywana przez dwa takty zegara, a następnie kontynuuje wykonywanie programu. Operacje dotyczące dostępu do pamięci EEPROM wykonuje się korzystając z rejestrów: adresowych EEARH, EEARL, danych EEDR, sterującego EECR.

56 Mikroprocesory i kontrolery 111 Rejestr sterujący EECR Bit EERIE EEMWE EEWE EERE 3 : EERIE Maska przerwania informującego o gotowości pamięci EEPROM do wykonania kolejnej operacji. 2 : EEMWE Ogólny dostęp do zapisu, jedynka oznacza, że wpisanie jedynki do EEWE spowoduje zapis do pamięci EEPROM. Bit EEMWE zeruje się automatycznie po upływie 4 cykli od ustawienia. 1 : EEWE Wpis do pamięci EEPROM. Wpisanie jedynki przy ustawionym EEMWE dokonuje wpisu zawartości rejestru EEDR pod adres EEAR. Bit EEWE zeruje się po czasie około 8,5 ms od ustawienia. Przez 4 cykle od ustawienia CPU jest zatrzymany. Procedura wpisu danej do pamięci EEPROM: 1. Czekaj aż bit EEWE = 0 w rej. EECR. 2. Czekaj aż bit SPMEN = 0 w rej. SPMCR (w przypadku gdy dokonujemy zapisów do pamięci Flash mk). 3. Wpisz nowy adres do rej. EEARL i EEARH. 4. Wpisz daną do rej. EEDR. 5. Wpisz 1 do bita EEMWE w rej. EECR. 6. W ciągu 4 cykli wpisz 1 do bita EEWE w rej. EECR. Zwraca się uwagę na konieczność wyłączenia przerwań na czas wykonywania wpisu, gdyż obsłużenie przerwania może zakłócić powyższą procedurę. 0 : EERE Odczyt z EEPROM u. Wpisanie 1 powoduje zatrzymanie CPU na cztery cykle zegarowe i przesłanie danej spod adresu (EEARH, EEADRL) do rejestru EEDR. Zakończenie odczytu jest sygnalizowane sprzętowym wyczyszczeniem bitu EERE. Przed odczytem należy testować ten bit czy na pewno zawiera 0. EEPROM_write: sbic EECR,EEWE rjmp EEPROM_write out EEARH, r18 out EEARL, r17 out EEDR,r16 sbi EECR,EEMWE sbi EECR,EEWE Mikroprocesory i kontrolery 112 ; Wait for completion of previous write ; Set up address (r18:r17) in address register ; Write data (r16) to data register ; Write logical one to EEMWE ; Start eeprom write by setting EEWE ret Listing. 7. Procedura zapisu do pamięci EEPROM mk ATmega16 EEPROM_read: sbic EECR,EEWE rjmp EEPROM_read out EEARH, r18 out EEARL, r17 sbi EECR,EERE in r16,eedr ; Wait for completion of previous write ; Set up address (r18:r17) in address register ; Start eeprom read by writing EERE ; Read data from data register ret Listing. 8. Procedura odczytu z pamięci EEPROM mk ATmega16

57 Mikroprocesory i kontrolery 113 Kontrolery (sterowniki) interfejsów szeregowych Sterowniki komunikacji szeregowej służą do wymiany informacji pomiędzy mk, a jego otoczeniem. Przesyłanie danych odbywa się w sposób szeregowy. Rys. 56. Schematyczna budowa sterownika komunikacji szeregowej Mikroprocesory i kontrolery 114 Sterownik komunikacji szeregowej realizuje dwie funkcje: Funkcję nadajnika (transmiter ) wysyłanie zawartości określonego rejestru, tzw. bufora nadajnika, w postaci szeregowej poprzez określone wyprowadzenia portu. Oznacza to, że na wyjściu linii portu pojawia się ciąg binarny odpowiadający zawartości wysyłanego rejestru. W funkcji odbiornika (receiver) sterownik komunikacji szeregowej potrafi przetworzyć ciąg binarny doprowadzony do wejścia określonej linii portu na zawartość rejestru, zwanego buforem odbiornika. Sterownik komunikacji szeregowej (potocznie: port szeregowy lub interfejs szeregowy) nazywa się dwukierunkowym (fullduplex), jeśli może równocześnie odbierać i nadawać dane. Jest to możliwe, gdy jest wyposażony w dwie oddzielne linie do nadawania i do odbioru. Gdy dane są przesyłane na jednej linii, wówczas interfejs szeregowy nazywa się jednokierunkowym (halfduplex), gdyż w danej chwili może transmitować dane tylko w jednym kierunku. Wyróżnia się dwa rodzaje transmisji szeregowej: asynchroniczną, synchroniczną.

58 Mikroprocesory i kontrolery 115 Dane przesyłane asynchronicznie nie są związane z żadnym sygnałem synchronizującym, w szczególności nie towarzyszy im sygnał zegara. Transmisja przebiega zwykle bajtami przesyłanymi szeregowo w postaci ciągów bitów. Np. oprócz ośmiu bitów danych przesyła się dodatkowo bit startu oraz opcjonalnie bit parzystości do detekcji błędów i bit stopu. Pomiędzy nadajnikiem, a odbiornikami musi być ustalona częstotliwość przesyłania danych. Odbiornik z ustaloną częstotliwością próbkuje swoją linię wejściową danych. Po wykryciu bitu startu (najczęściej stan niski) odczytuje ustaloną liczbę bitów. Transmisja kończy się bitem stopu ustawiającym linię danych w stan nieaktywny (pasywny). Rys. 57. Przebiegi czasowe transmisji asynchronicznej na linii danych Mikroprocesory i kontrolery 116 Przy transmisji synchronicznej Równolegle z ciągiem bitów danych przesyła się sygnał synchronizujący (zegarowy), który określa chwile, w których stan linii danych odpowiada ważnym wartościom kolejnych bitów. Moment ważności danej bitowej może być ustalony dla określonego stanu linii zegarowej np. stanu wysokiego (np. interfejs I 2 C) lub dla wybranego (tzw. aktywnego) zbocza sygnału zegarowego (np. interfejs SPI). Po każdym bajcie może być dodatkowo przesłany bit parzystości. Rys. 58. Przebiegi czasowe transmisji synchronicznej na linii danych i sygnału synchronizującego (zegarowej)

59 Mikroprocesory i kontrolery 117 Można wyróżnić między innymi następujące interfejsy szeregowe stosowane w mk: UART (Universal Asynchronous Receiver/Transmitter), SPI (Serial Peripherial Interface), 1-Wire, I 2 C (Inter-Integrated Circuit), CAN (Controller Area Network), USB (Universal Serial Bus), MII (Media Independent Interface) i Ethernet, 2,4 GHz Radio Transceiver. Mikroprocesory i kontrolery 118 Interfejs szeregowy standardu UART Interfejs UART przewidziany jest zazwyczaj do zapewnienia łączności mk z komputerem PC lub innym mk. Mk zawierają często rozbudowane układy UART posiadające: własne generatory sygnałów odniesienia, bufory na dane wysyłane i odbierane, dekodery kodów sterujących, pozwalające na pracę w trybie dwukierunkowym z protokołem potwierdzeń sprzętowych (Xon/Xoff). Port szeregowy UART kontaktuje się ze światem zewnętrznym za pomocą dwóch wyprowadzeń: wejścia odbiornika (oznaczanego najczęściej RxD) wyjścia odbiornika (TxD). Interfejs UART jest interfejsem asynchronicznym, najczęściej posiada swój własny generator taktujący.

60 Mikroprocesory i kontrolery 119 Rys. 59. Format danych dla standardu UART Transmisja danych w standardzie UART: zaczyna się od bitu startu, po którym następuje osiem bitów danej (czasami dziewięć, gdzie dziewiąty bit jest najczęściej bitem parzystości), przesyłanych od najmłodszego D0 do najstarszego D7 bita, jednego bitu stopu (w skrócie: 8N1). Przedstawiony na rys. 59 format danych interfejsu UART oznacza się w skrócie: 8N1 czyli 8 bitów danej, bez bita parzystości, 1 bit stopu. Mikroprocesory i kontrolery 120 Rys. 60. Schematyczna budowa interfejsu UART w mk

61 Mikroprocesory i kontrolery 121 Ogólna obsługa interfejsu UART jest następująca: Należy najpierw ustalić prędkość transmisji wpisując odpowiednią wartość do rej. generatora prędkości transmisji. Wybrać 8 lub 9 bitowy format danych w rej. konfiguracyjnym. Odblokować przerwania od nadajnika (koniec wysyłania danej) i od odbiornika (zakończony odbiór danej). Włączyć nadajnik i odbiornik (lub jeden z tych układów). Jeśli chcemy wysłać daną, to w celu uruchomienia transmisji wprowadzamy ją do rejestru danych interfejsu UART (bufor równoległy zapisu). Gdy dana ma być 9 bitowa, to przed tą operacją należy ustawić 9 bit danej znajdujący się w rejestrze konfiguracyjnym. Przed wysłaniem danej należy sprawdzić czy poprzednia operacja wysyłania danej przez UART została zakończona (testowanie flagi koniec wysyłania danej). Gdy interfejs odebrał daną, ustawiona jest flaga zakończony odbiór danej i generowane jest przerwanie. Odebrana dana znajduje się w rejestrze danych (bufor równoległy odczytu). W układzie nadajnika układu UART transmisja jest inicjowana przez wpis danej do rejestru danych (bufora zapisu) Mikroprocesory i kontrolery 122 Rys. 61. Schemat blokowy układu UART w mk ATmega16

62 Mikroprocesory i kontrolery 123 Rys. 62. Schemat blokowy układu nadajnika UART w mk AT90S8515 Mikroprocesory i kontrolery 124 Rys. 63. Schemat blokowy układu odbiornika UART w mk AT90S8515

63 Mikroprocesory i kontrolery 125 Rys. 64. Sposób próbkowania odbieranych bitów przez interfejs UART mk ATxmega32A4 Mikroprocesory i kontrolery 126 Tabela 6. Wybór prędkości transmisji dla interfejsu UART mk ATmega16

64 Mikroprocesory i kontrolery 127 Obsługa interfejsu UART składa się z trzech etapów: inicjalizacji interfejsu UART (ustawiamy prędkość transmisji, liczbę bitów danej i bitów stopu, kontrolę parzystości, aktywowanie przerwań, itd.), odczytu danej odebranej z rej. UDR (najczęściej w obsłudze przerwania), zapisu danej do rej. UDR i uruchomieniu transmisji Listing. 7. // konfiguracja interfejsu szeregowego UART na porcie E USARTE0_BAUDCTRLA = 0x67; USARTE0_BAUDCTRLB = 0x00; USARTE0_CTRLA = 0x14; USARTE0_CTRLC = 0x03; USARTE0_CTRLB = 0x18; // daje 9600 b/s przy 16 MHz sygnału taktującego CPU // Low level interrupt Rx i TX odblokowane // Tryb asynchroniczny, 8-bit dana // Włączenie układów odbiornika RX i nadajnika TX Listing 9. Fragment w języku C z procedurą inicjalizacyjną interfejsu UART dla mk ATxmega32A4 volatile unsigned char usart_data;... // UART receive interrupt - odczyt odebranei danej ISR(USARTE0_RXC_vect) { usart_data = USARTE0_DATA; //? na wykładzie... // kod obsługi przerwania } Listing 10. Fragment w języku C z procedury odczytu danej z interfejsu UART dla mk ATxmega32A4 Mikroprocesory i kontrolery 128 volatile unsigned char end_transmit;... // UART transmit interrupt - ustawienie flagi końca wysyłania bajta ISR(USARTE0_TXC_vect) { end_transmit = 0; }... void sendbyte(unsigned char usart_data) /* funkcja wysyła bajt przez interfejs USART E */ { while(end_transmit == 1){}; // czekaj na zakończenie transmisji USARTE0_DATA = usart_data; end_transmit = 1; // uruchmienie transmisji } return; Listing 11. Fragment w języku C procedury zapisu i wysłania danej przez interfejs UART dla mk ATxmega32A4

65 Mikroprocesory i kontrolery 129 Rys. 65. Realizacja sprzętowa standardu RS232C Mikroprocesory i kontrolery 130 Rys. 66. Aplikacja układów typu 232

66 Mikroprocesory i kontrolery 131 Szeregowy synchroniczny interfejs SPI Interfejs SPI (Serial Peripherial Interface),służy do dwukierunkowej (full-duplex), synchronicznej, szeregowej transmisji danych pomiędzy mk, a zewnętrznymi układami peryferyjnymi. Jest interfejsem trójżyłowym, składa się z: dwóch linii synchronicznie przesyłających dane w przeciwnych kierunkach MISO (Master Input Slave Output) i MOSI (Master Output Slave Input), linii z sygnałem zegarowym SCK synchronizującym ten transfer, dodatkowo mk wyposażone są w czwartą linię SS służącą do wyboru trybu pracy interfejsu SS = 1 układ master, SS = 0 układ slave. Rys. 67. Przykład połączenia interfejsu ISP pomiędzy układem master i slave Mikroprocesory i kontrolery 132 Rys. 68. Idea transmisji danych w interfejsie SPI Z rysunku widać, że protokół transmisji (w najprostszej postaci) wymaga dwóch rejestrów przesuwnych (shift register) połączonych w licznik pierścieniowy (wejście jest połączone z wyjściem). W tym interfejsie dane są wpisywane (odbierane) do rejestru szeregowego jednym zboczem zegarowym, a przesuwane (wyprowadzane na zewnątrz nadawane) drugim.

67 Mikroprocesory i kontrolery 133 Opis interfejsu SPI: Układ generujący sygnał zegara jest określony jako nadrzędny (master), bez względu na to czy dane są przez niego nadawane czy odbierane. Wszystkie pozostałe układy na magistrali są określone jako podrzędne (slave). Sygnał zegara nie jest ciągły, nadawany jest jedynie w czasie trwania transmisji. Umożliwia to odbiór poszczególnych bitów danych bez konieczności testowania bitów startu i stopu, charakterystycznego dla transmisji asynchronicznej. Kiedy układ nadrzędny nadaje dane na linii MOSI do układu podrzędnego, to układ podrzędny odpowiada, wysyłając do układu nadrzędnego dane na linii MISO. Implikuje to dwukierunkową transmisję z jednoczesnym wysyłaniem i odbieraniem danych przez oba układy, synchronizowanym tym samym sygnałem zegarowym. Zatem bajt transmitowany jest od razu zastępowany bajtem odbieranym. Dzięki temu nie ma pustych transmisji: raz aby wysłać bajt, drugi aby go odebrać. Do wysłania bajta i jego odebrania wystarczy osiem impulsów zegarowych na linii SCK Najczęściej szybkość transmisji dla mk nie przekracza 1-4 Mbit/s. Dane są wpisywane (odbierane) do rejestru szeregowego jednym zboczem zegarowym, a przesuwane (wyprowadzane na zewnątrz nadawane) drugim. Zwiększa to czas podtrzymania danych odbiornika do ½T CLK - t d, gdzie T CLK - okres zegara, t d - opóźnienie magistrali. Mikroprocesory i kontrolery 134 Właściwości układu SPI z punktu widzenia interfejsu mogą być opisane przy pomocy 3 funkcji interfejsowych: Talker (nadajnik) wprowadzenie danej (bajta) z wewnętrznej magistrali równoległej do rejestru szeregowego, przesuwanie i wysyłanie bit po bicie danej z rejestru szeregowego. Listener (odbiornik) odczyt bit po bicie danej odbieranej i kompletowanie jej w rejestrze szeregowym, następnie po zebraniu całego bajta równoległy jego odczyt przez wewnętrzną magistralę mk. Repeater (pośredniczenie w transmisji) - dane wejściowe są bit po bicie wpisywane do rejestru szeregowego z linii wejściowej, przesuwane i od razu bit po bicie wysyłane na linię wyjściową. Rys. 69. Schemat funkcjonalny układu z interfejsem SPI

68 Mikroprocesory i kontrolery 135 Aby transmisja pomiędzy mk, a urządzeniem peryferyjnym przebiegała prawidłowo muszą być spełnione następujące warunki: zachowanie jednakowej długość danej (najczęściej 8 bitów lub wielokrotność tej liczby), taka sama kolejność wysyłania bitów (najczęściej od MSB do LSB, niektóre mk mają możliwość programowej zmiany tej kolejności), zgodna polaryzacja i faza sygnału zegarowego. Polaryzacja sygnału zegarowego jest określona przez wartość logiczną sygnału zegara w stanie spoczynkowym (poza czasem transmisji): CPOL=0 sygnał zegara w stanie spoczynku jest w stanie niskim Lo, CPOL=1 sygnał zegara w stanie spoczynku jest w stanie wysokim Hi. Faza sygnału zegarowego definiuje zależność pomiędzy zboczami sygnału zegarowego, a momentami próbkowania danych wejściowych; przesuwania zawartości rejestru (wysłania danych wyjściowych): CPHA=0 pierwsze zbocze sygnału zegarowego próbkuje dane wejściowe, drugie zbocze przesuwa dane w rejestrze wyprowadza je z rejestru (dane są próbkowane, a następnie przesuwane i wysyłane), CPHA=1 pierwsze zbocze sygnału zegarowego przesuwa dane w rejestrze wyprowadza je z rejestru, drugie zbocze próbkuje dane wejściowe (dane są przesuwane i wysyłane, a następnie próbkowane i wpisywane do rejestru). Mikroprocesory i kontrolery 136 Stąd można wyróżnić cztery warianty pracy interfejsu SPI (strobowania/przesuwania informacji): (1): CPHA=0 i CPOL=0, (2): CPHA=0 i CPOL=1, (3): CPHA=1 i CPOL=0, (4): CPHA=1 i CPOL=1. Rys. 70. Przebiegi czasowe interfejsu SPI dla sygnału zegarowego o CPHA=0

69 Mikroprocesory i kontrolery 137 Rys. 71. Przebiegi czasowe interfejsu SPI dla sygnału zegarowego o CPHA=1 Mikroprocesory i kontrolery 138 Rys. 73. Schemat blokowy układu interfejsu SPI mk

70 Mikroprocesory i kontrolery 139 Interfejs SPI w mk składa się (rys. 73) z: bloku z 8-bitowym rejestrem przesuwnym danych, rejestru kontrolnego, rejestru statusowego współpracującego z układem sterującym interfejsem SPI, generatora sygnału zegarowego uruchamianego w trybie master, prostego układu generacji żądania przerwania korzystającego z maski przerwania zawartej w rejestrze kontrolnym i flag przerwań z rejestru statusu. Mikroprocesory i kontrolery 140 Generalnie za pomocą interfejsu SPI można utworzyć dwie konfiguracje magistralowe: system z pojedynczym układem master (single master system), system z wieloma układami master (multimaster system). Rys. 74. System z pojedynczym układem master oparty na interfejsie SPI

71 Mikroprocesory i kontrolery 141 Wymiana danych za pomocą interfejsu SPI mk pracującego w trybie master pomiędzy mk, a zewnętrznym urządzeniem peryferyjnym generalnie przebiega według następującej procedury: najpierw należy odpowiednio skonfigurować interfejs SPI mk: tryb master, poprawnie skonfigurowane piny interfejsu (pin SCK ma być wyjściem), ustawić częstotliwość sygnału zegarowego, SPI_MasterInit: ; Set MOSI and SCK output, all others input ldi r17,(1<<dd_mosi) (1<<DD_SCK) out DDR_SPI,r17 ; Enable SPI, Master, set clock rate fck/16 ldi r17,(1<<spe) (1<<MSTR) (1<<SPR0) out SPCR,r17 ret Listing 12. Funkcja inicjalizacji interfejsu SPI w mk ATmega16 w trybie master Mikroprocesory i kontrolery 142 urządzenie peryferyjne musi być uaktywnione (przygotowane na odbiór danych) najczęściej służy do tego dodatkowa linia mk podłączona do wejścia CS (Chip Select ) urządzenia peryferyjnego, aby rozpocząć transmisję wpisuje się daną do rejestru przesuwnego, po czym czeka się na zakończenie transmisji, testując flagę informującą o zakończeniu transmisji lub czeka się na przerwanie od układu SPI, o ile jest odblokowane, na zakończenie z rejestru przesuwnego można odczytać daną odebraną. SPI_MasterTransmit: ; Start transmission of data (r16) out SPDR,r16 Wait_Transmit: ; Wait for transmission complete sbis SPSR,SPIF rjmp Wait_Transmit ret Listing 13. Funkcja obsługi transmisji interfejsu SPI w mk ATmega16 w trybie master

72 Mikroprocesory i kontrolery 143 W trybie slave procedura postępowania jest następująca: najpierw należy odpowiednio skonfigurować interfejs SPI mk: tryb slave, poprawnie skonfigurowane piny interfejsu (pin SCK ma być wejściem), SPI_SlaveInit: ; Set MISO output, all others input ldi r17,(1<<dd_miso) out DDR_SPI,r17 ; Enable SPI ldi r17,(1<<spe) out SPCR,r17 ret Listing 14. Funkcja inicjalizacji interfejsu SPI w mk ATmega16 w trybie slave Mikroprocesory i kontrolery 144 następnie wpisuje się daną, którą chcemy wysłać do rejestru przesuwnego, jeśli jest to wymagane, ustawia się odpowiedni bit w rejestrze sterującym SPI włączający interfejs, urządzenie peryferyjne musi być aktywne i pracować w trybie master, po czym czeka się na zakończenie transmisji, które wywołuje przerwanie, o ile jest odblokowane, na zakończenie z rejestru przesuwnego można odczytać daną odebraną. SPI_SlaveReceive: ; Wait for reception complete sbis SPSR,SPIF rjmp SPI_SlaveReceive ; Read received data and return in r16,spdr ret Listing 15. Funkcja obsługi transmisji interfejsu SPI w mk ATmega16 w trybie slave

73 Mikroprocesory i kontrolery 145 Interfejs SPI (jak i I 2 C) służy do komunikacji między mk a zewnętrznym urządzeniem peryferyjnym będącym elementem składowym elektronicznych systemów wbudowanych i pełniącym zadaną funkcję zgodną z jego aplikacją. Podział układów peryferyjnych z interfejsem SPI ze względu na ich zastosowanie (zachowano oryginalne angielskie nazewnictwo): Memories: EEPROM (AT kbit, M95M01 1 Mbit, 25AA Mbit), FLASH (AT25DF Mbit), SRAM (23A Kbit), F-RAM (FM25H20 2 Mbit). Interfaces: Ethernet (ENC28J60), CAN (MCP2510), USB (MAX3420E USB peripheral controller, MAX3421E USB peripheral / host controller), Wireless (AT86RF230 transceiver for IEEE , ZigBee), I/O expanders (MAX7317, MAX7301, MCP23S17 16 bit I/O Expander). Analog to Digital Converters: A/D Converters (AD7920, AD7495, MCP3201, MCP ), Capacitance to Digital Converters (AD7142 programmable controller for capacitance touch sensor), Temperature to Digital Converters (AD bit, ADT bit), Touch-Screen Controllers (AD7879, MAX11800 for resistive touch-screen panels), Mikroprocesory i kontrolery 146 Digital to Analog Converters: Audio D/A Converters (AD channel DAC with PLL and single-ended outputs, 192 khz, 24 bits), D/A Converters (AD bit, 1 voltage output, AD bit, 16 voltage outputs, AD bit, 1 voltage output, DAC bit, 1 voltage output), Digital Potentiometers (AD pos., 1 channel, AD pos., digital rheostat), Digital Capacitors (PE bit 32-state Digitally Tunable Capacitor, MHz). Amplifiers: Instrumentation Amplifiers (AD8231 I 2 C, AD8250 I 2 C), Gain Programmable Line Drivers (AD8321), Variable Gain Amplifiers (ADL5592, MCP6S21/2/6/8, MAX9939), Switches/Multiplexers (MAX395 8-channel SPST switch, ADN x 16 digital crosspoint switch, ADG738 analog CMOS multiplexer). MEMS: Low g Sensor Accelerometers (ADIS16003 dual axis accelerometer, ADIS dual axis accelerometer/inclinometer), High g Sensor Accelerometers (ADIS16204 dual axis accelerometer), Gyroscopes (ADIS16130, ADIS16251 angular rate sensors), Internal Measurement Units (ADIS16400 high precision tri-axis gyroscope, accelerometer, magnetometer), Clock and Timing: Clock Generation and Distribution (AD9520 multi-output clock generator, AD9512 clock driver, AD9549 clock generator synchronizer), Real-Time Clocks (RTC) (MAX6902 compatible RTC in a TDFN, DS1394 RTC with trickle charger, DS1305 serial alarm RTC), Mixed Signal Memory Devices (DS28DG02 2 Kbits EEPROM with PIO, RTC, reset, battery monitor and watchdog), Direct Digital Sintesis (DDS) (AD9833 programmable waveform generator).

74 Mikroprocesory i kontrolery 147 Power Management: Energy Measurement (MCP3901 two channel analog front end, ADE7878 polyphase multifunction energy metering), Impedance Analyzers (AD bit impedance I 2 C converter network analyzer), LED drivers: o LED Display Drivers (MAX and 8-digit LED display driver), o Tri-Color LED Drivers (MAX16825, NLSF595DTR2), Micro-Stepping Motor Drivers (AMIS-30521, NCV70521). Optoelectronic Devices: LCD Display Devices (MAX7231 tripled LCD decoder/driver, SCD558XA 8 character, 5x5 dot matrix, MAX9697 programmable gamma reference system for TFT-LCD displays), Vacuum-Fluorescent Display Drivers (MAX6852), Light Sensors (SFH5712 I 2 C digital ambient light sensor, S11059 I 2 C color sensor). Mikroprocesory i kontrolery 148 Rys. 75. Schemat ogólny układu peryferyjnego z interfejsem SPI Wszystkie układy peryferyjne z interfejsem SPI składają się z dwóch części: bloku interfejsu SPI służącego do komunikacji z układem (wysyłanie i odbiór danych, wysyłanie rozkazów i odbiór danych statusowych), bloku warstwy aplikacji realizującej zadania zgodne z przeznaczeniem układu.

75 Mikroprocesory i kontrolery 149 Blok interfejsu SPI składa się z: Rejestru szeregowego, do którego w takt sygnału zegarowego CLK są na linii wejście danych SDI szeregowo bit po bicie wprowadzane dane (najczęściej 8-bitowe czyli bajty). Dane z układu szeregowo są wystawiane na linii wyjście danych SDO. Transmisja odbywa się, gdy na linii wyboru układu CS jest stan aktywny (najczęściej stan niski). Układ kontrolny steruje interfejsem SPI za pośrednictwem linii CS oraz podłączonych do niego cyfrowych sygnałów sterujących, których występowanie (liczba i pełnione funkcje) zależą od zastosowania układu (warstwy aplikacji). Zarządza również komunikacją między rejestrem szeregowym a blokiem aplikacji. Postać bloku warstwy aplikacji i liczby oraz funkcji dołączonych do niego linii analogowych i cyfrowych zależy od zastosowania układu. Np. dla układów pamięci blok ten składa się z matrycy komórek pamięci i obsługujących ją bloków, dochodzą do niego tylko dwie cyfrowe linie sterujące. Natomiast przetworniki A/C posiadają ustaloną liczbę wejść Mikroprocesory i kontrolery 150 Przykład układów sterowanych interfejsem SPI a przetworniki A/C pracujące na zasadzie SAR AD7475 i AD7495 są szybkimi (1 MSPS miliona próbek na sekundę), o niskim poborze mocy (10,5 mw dla 1 MSPS i zasilania 5 V, pobór prądu w trybie uśpienia: 1 µa), pojedynczymi 12-bitowymi przetwornikami analogowo-cyfrowymi z pojedynczym zasilaniem, operującym w zakresie napięć zasilania od 2,7V do 5,25V. a) b) Rys. 76. Schemat blokowy układów firmy Analog Devices przedstawicieli przetworników pracujących na zasadzie SAR: a) AD7475, b) AD7495

76 Mikroprocesory i kontrolery 151 a) b) Rys. 77. Rozmieszczenie pinów układów: a) AD7475, b) AD7495 Rys. 78. Przebiegi czasowe interfejsu SPI dla układów AD7475 i AD7495 Mikroprocesory i kontrolery 152 Rys. 79. Typowa aplikacja układu AD7475

77 Mikroprocesory i kontrolery 153 Przykład układów sterowanych interfejsem SPI układ MEMS Rys. 80. Schemat blokowy czujnika przyśpieszenia i nachylenia ADIS16201 Mikroprocesory i kontrolery 154 Rys. 81. Wyprowadzenia układu ADIS16201

78 Mikroprocesory i kontrolery 155 Interfejs szeregowy standardu 1-Wire Interfejs 1-Wire jest przeznaczony do przesyłania informacji pomiędzy układem nadrzędnym master (mk) i układami podrzędnymi slave (np. termometry, układy identyfikacji, pamięci SRAM i EEPROM, programowalne klucze). Transmisja odbywa się w obu kierunkach z wykorzystaniem jednego przewodu sygnałowego (oprócz masy), który jednocześnie może być wykorzystany do zasilania układów do niego podłączonych. Dane przesyłane są z prędkością od bliskiej 0 do 16,3 kbps w trybie standard oraz do 115 kbps w trybie overdrive. Każde z urządzeń podłączonych do magistrali musi mieć wyjście typu otwarty dren, a linia sygnałowa DQ jest połączona do zasilania przez rezystor podciągający o wartości około 5 kω. Magistrala nie ma ustalonego formatu danych, jednak najczęściej dane są wysyłane w paczkach 8-bitowych.. Zawsze jednak jako pierwszy jest przesyłany bit najmniej znaczący. Mikroprocesory i kontrolery 156 Rys. 82. Schemat połączeń interfejsem 1-Wire Do jednej linii danych może być podpiętych wiele urządzeń typu slave. Każde z nich posiada bowiem unikalny 64-bitowy numer identyfikacyjny, czyli adres, zawarty w swojej pamięci ROM. Najmniej znaczący bajt określa typ urządzenia, kolejne 48-bitów reprezentuje unikalny numer seryjny, a najbardziej znaczący bajt zawiera sumę kontrolną CRC obliczoną z pierwszych 56 bitów pamięci ROM. Rys bitowy identyfikator zawarty w pamięci ROM czujnika temperatury DS18B20

79 Mikroprocesory i kontrolery 157 Protokół wymiany danych poprzez magistralę 1-Wire składa się z czterech podstawowych sekwencji inicjowanych przez układ master: inicjalizacja (zerowanie magistrali) realizowana przez układ master, wysłanie (zapis do układu podrzędnego) zera przez układ master, wysłanie (zapis do układu podrzędnego) jedynki przez układ master, odczyt bita przez układ master z układu podrzędnego. Rys. 84. Przebiegi sekwencji inicjalizacji dla magistrali 1-Wire Mikroprocesory i kontrolery 158 Rys. 85. Transmisja logicznych 0 i 1 na magistrali 1-Wire

80 Mikroprocesory i kontrolery 159 Rys. 86. Odczyt bita z układu slave przez układ master na magistrali 1-Wire Przy emulacji programowej interfejsu 1-Wire, na czas generowania impulsów (zwłaszcza dla 1 ) warto wyłączać wszystkie przerwania mk, gdyż wystąpienie przerwania w trakcie generacji impulsu może doprowadzić do jego wydłużenia poza dopuszczalne granice, a co za tym idzie do zafałszowania transmisji. Mikroprocesory i kontrolery 160 Interfejs szeregowy standardu I 2 C Standard interfejsu I 2 C został opracowany przez firmę Philips. Jest stosowany w urządzeniach powszechnego użytku, zwłaszcza audio-video, telekomunikacji i systemach elektroniki przemysłowej. Transmisja danych odbywa się (Interfejs synchroniczny, halfduplex): szeregowo, w dwóch kierunkach, przy użyciu dwóch linii: SCL (serial clock line) impulsy zegarowe synchronizujące transmisję, SDA (serial data line) dwukierunkowa linia danych. Przemysłowa norma magistrali I 2 C zakłada możliwość taktowania transmisji sygnałem zegarowym SCL o częstotliwości od 0 do 100 khz. Wymaga się przy tym, by stan niski impulsów zegarowych trwał przynajmniej 4,7 µs, natomiast stan wysoki był nie krótszy niż 4 µs.

81 Mikroprocesory i kontrolery 161 Rys. 87. Połączenie urządzeń z magistralą I 2 C Układy współpracujące z magistralą I 2 C muszą być wyposażone w wyjścia z otwartym drenem dla linii SCL i SDA. Każda z tych linii jest połączona ze źródłem napięcia zasilającego U CC przez rezystor 10 kω. Do jednego układu master można przyłączyć dowolną liczbę układów slave (rys. 87), jednak pod warunkiem, że pojemność połączeń nie przekroczy maksymalnej wartości równej 400 pf. W transmisji interfejsem I 2 C uczestniczy układ nadrzędny (master) oraz jeden lub więcej układów podrzędnych (slave). Mikroprocesory i kontrolery 162 Rys. 88. Protokół transmisji szeregowej standardu I 2 C Pełna sesja składa się z: bloku Start, przynajmniej jednego cyklu przesłania danych (adresu, bajta), bloku Stop. Liczba bajtów przesłanych w jednej sesji, to jest między stanem Start i Stop, jest nieograniczona.

82 Mikroprocesory i kontrolery 163 Przykład interfejsu I 2 C Układ MSSP (Master Synchronous Serial Port) mk PIC18F452 może pracować jako interfejs SPI oraz interfejs I 2 C. Układ ten w pełni implementuje wszystkie funkcje master i slave interfejsu I 2 C. Zapewnia on sprzętową realizację przerwań na pojawienie się sekwencji Start i Stop. Umożliwia adresowanie 7-mio i 10-bitowe oraz może pracować przy dwóch prędkościach 100 khz i 400 khz. Do obsługi interfejsu wykorzystuje się sześć rejestrów: rejestr sterujący SSPCON (SSP Contorl Register), rejestr sterujący drugi SSPCON2 (SSP Contorl Register2), rejestr statusowy SSPSTAT (SSP Status Register), bufor odbioru/wysyłania danej SSPBUF (Serial Receive/Transmit Buffer), rejestr przesuwny SSPSR (SSP Shift Register) bezpośrednio nie dostępny, rejestr adresu SSPADD (SSP Address Register). Rej. SSPCON służy do kontroli pracy interfejsu. Pozwala na wybór jednego z czterech trybów pracy interfejsu: tryb slave (adres 7-bitowy), tryb slave (adres 10-bitowy), tryb master, prędkość transmisji jest równa f OSC /(4 * (adres SSPADD+1)), tryby firmware (aby zapewnić kompatybilność z innymi produktami średniej klasy). Mikroprocesory i kontrolery 164 Rys. 89. Schemat blokowy układu MSSP pracującego jako interfejs I 2 C w trybie master

83 Mikroprocesory i kontrolery 165 Rys. 90. Schemat blokowy układu MSSP pracującego jako interfejs I 2 C w trybie slave Mikroprocesory i kontrolery 166 Rys. 91. Przebieg czasowy transmisji (7-bitowy adres) dla interfejsu I 2 C w trybie master

84 Mikroprocesory i kontrolery 167 Szeregowy interfejs CAN (Controller Area Network) Interfejs CAN stosuje się głównie w motoryzacji, w lotnictwie, a także w sterownikach przemysłowych. Założenia projektowe CAN koncentrują się na trzech właściwościach systemu transmisyjnego: szybkości przesyłania danych łączem szeregowym, odporności transmisji na zakłócenia elektromagnetyczne, możliwości dzielenia wspólnych danych przez rozproszone mk realizujące cząstkowe funkcje sterowania. Szyna CAN jest asynchroniczną szyną transmisji szeregowej z tylko jedną linią transmisyjną. Ma strukturę otwartą, tzn. może być rozszerzana o nowe węzły (odbiorniki/nadajniki), oraz liniową, czyli nie zawiera pętli. Rys. 92. Przykład dołączenia węzłów do magistrali CAN Mikroprocesory i kontrolery 168 Właściwości interfejsu CAN: Interfejs asynchroniczny, half-duplex. Ma strukturę otwartą, tzn. może być rozszerzany o nowe węzły (odbiorniki/nadajniki). Poszczególne węzły są przyłączone do szyny interfejsu na zasadzie funkcji zwarty iloczyn (wired-and). Minimalna konfiguracja CAN składa się z dwóch węzłów. Liczba węzłów w trakcie pracy szyny może się zmieniać bez wpływu na działanie szyny. Właściwość ta oznacza możliwość dynamicznego konfigurowania węzłów, na przykład wyłączenia węzłów, które w wyniku działania procedur diagnostycznych zostały uznane za niesprawne. Składa się tylko z jednej linii transmisyjnej. Najpopularniejszym sposobem sprzętowej realizacji szyny (tej linii sygnałowej) jest użycie pary skręconych przewodów oznaczonych symbolami CAN_H i CAN_L. Linie te przyłącza się do węzłów bezpośrednio lub za pośrednictwem buforów/nadajników/odbiorników. Konfiguracja liniowa, czyli nie zawiera pętli, Po obu stronach linii dołącza się rezystory, tzw. terminatory rezystorowe (rys. 2.75). Przy braku sterowania szyna znajduje się w stanie nazywanym recesywnym R (recessive), któremu odpowiada stan logiczny 1. Stan ten może być zmieniony na stan logiczny 0, jeśli choć jeden węzeł wymusi na szynie poziom dominujący D (dominant). Dane przesyłane szyną są transmitowane metodą NRZ (Non Return to Zero). Ponieważ interfejs składa się wyłącznie z jednej linii konieczny jest arbitraż szyny. Wykonuje się go metodą CSMA/CD z opcją NDA (carrier sense multiple access / collision detection with non-destructive arbitration). Adresy odbiorników (identyfikatory) są przesyłane jako integralna część przekazu. Specyfika standardu CAN przewiduje 11-bitowe identyfikatory, czyli umożliwia współpracę 2048 węzłów. Najnowsza specyfikacja 2.0B (extended CAN) posiada identyfikator 29-bitowy, co daję teoretycznie możliwość adresowania 536 milionów współpracujących ze sobą urządzeń.

85 Mikroprocesory i kontrolery 169 Układy obsługujące system CAN można podzielić na trzy grupy: układy nadawczo-odbiorcze (trasceiver), kontrolery współpracujące z mikroprocesorami, mikrokontrolerami, procesorami DSP, mk z zaimplementowanym kontrolerem CAN. Rys. 93. Koncepcje budowy węzła CAN Mikroprocesory i kontrolery 170 Rys. 94. Schemat blokowy kontrolera interfejsu CAN mk PIC18F6585

86 Mikroprocesory i kontrolery 171 Rys. 95. Standardowa ramka danych dla interfejsu CAN Ramka (jeden z pięciu typowych formatów) składa się z następujących pól: 11-bitowy identyfikator, pole kontrolne z bitami sterującymi i długością pola danych, pole danych składające się z 8N bitów, 15-bitowa suma kontrolna CRC, pole kończące ramkę. Mikroprocesory i kontrolery 172 Szeregowy interfejs USB Interfejs USB został opracowany jako uniwersalny interfejs szeregowy wbudowany w architekturę komputerów PC. Jego przeznaczeniem jest współpraca komputerów z urządzeniami: przemysłowymi, urządzeniami powszechnego użytku oraz integracja z sieciami telekomunikacyjnymi. Prędkość transferu danych wynosi: 1,5 lub 12 Mbit/s dla standardu USB 1.1, dla standardu USB 2.0 jest ona równa 480 Mbit/s, (dla standardu USB 3.0 ma wynosić 4,8 Gbit/s). Przyjęto następującą topologię systemu z interfejsem USB: jeden host (komputer zarządzający) połączony z pierwszym Hubem, do którego można podłączyć na zasadzie drzewa kolejne Huby lub urządzenia. Cechy interfejsu USB: prostemu i znormalizowanemu okablowaniu, izolacji elektrycznej, samoidentyfikacji urządzeń, automatycznej konfiguracji ich sterowników oraz automatycznej rejestracji w systemie, niskich kosztów sprzętu i okablowania.

87 Mikroprocesory i kontrolery 173 Podstawowym elementem systemu są Huby. Hub posiada port do połączenia z hostem (Upstream Port) oraz do siedmiu portów do podłączenia urządzeń lub innych Hubów (Downstream Port), z których każdy może być indywidualnie konfigurowany i kontrolowany poprzez komputer host. Huby składają się z dwóch części: Hub Controller, Hub Repeater. Hub Repeater jest protokołem kontrolującym połączenie pomiędzy Upstrem Port i Downstream Port. Dostarcza on rejestr służący do komunikacji z hostem. Wszystkie elementy systemu połączone są magistralą składającą się z czterech linii: Vbus, przewód zasilania +5 V, D+, przewód symetrycznej skrętki sygnałowej, D-, przewód symetrycznej skrętki sygnałowej, GND, przewód masy zasilania. Typowym kablem sygnałowym jest skrętka ekranowana o impedancji charakterystycznej 90 Ω +-15 % i maksymalnej długości 5 m. Maksymalne opóźnienie sygnału między punktami końcowymi, tzn. hostem i urządzeniem musi być mniejsze od 70 ns. Mikroprocesory i kontrolery 174 Rys. 96. Połączenie urządzeń w standardzie USB 2.0 Do identyfikacji standardu w jakim pracuje urządzenie służy rezystor R pu. Gdy łączy on linię D+ z zasilaniem to urządzenie jest identyfikowane jako zgodne z USB 2.0, gdy linia D- jest przez niego dołączona do zasilania to obsługiwany jest standard USB1.1.

88 Mikroprocesory i kontrolery 175 Stosuje się trzy sposoby zasilania urządzeń podłączonych do interfejsu USB: zasilanie pobierane wyłącznie z interfejsu USB (rys. 97a), urządzenia z własnym zasilaniem (rys. 97b), urządzenia z podwójnym zasilaniem (rys. 97c). a) b) c) Rys. 97. Sposoby zasilania urządzeń podłączonych do interfejsu USB Mikroprocesory i kontrolery 176 Do transmisji danych interfejsem USB wykorzystuje się kodowanie danych NRZI (Non-Return to Zero Inver on ones). Kodowanie to polega na braku zmiany poziomu dla jedynki logicznej i zmianie poziomu dla zera logicznego. Rys. 98. Sposób kodowania danych metodą NRZI Rys. 99. Warstwowy logiczny model urządzenia USB

89 Mikroprocesory i kontrolery 177 Każde z urządzeń USB posiada następujące deskryptory: Device Descriptor tylko jeden, dostarcza ogólną informację o urządzeniu taką jak producent, numer produktu, numer seryjny, klasa urządzenia i liczba konfiguracji. Configuration Descriptor zawiera informację dotyczącą wymagań związanych z zasilaniem urządzenia i ile różnych interfejsów jest przypisanych danej konfiguracji. Urządzenie może posiadać więcej niż jedną konfigurację (np. konfiguracje low-power i high power). Interface Descriptor określa liczbę przypadających mu Endpointów, jak również klasę interfejsu. Endpoint Descriptor identyfikuje typ transferu i kierunek danych, jak również inne parametry Endpointu. Urządzenie może mieć wiele Endpointów, które mogą być współdzielone przez różne konfiguracje. String Descriptor dostarcza tekstowej informacji dla użytkownika kodowanej w formacie unicode. Dane oraz komunikaty przesyłane są po magistrali USB w postaci pakietów mieszczących się w 1 ms oknach czasowych. Wyróżnia się trzy rodzaje pakietów: token, data, handshake, (oraz czwarty: special). Mikroprocesory i kontrolery 178 a) b) c) Dane są przesyłane od LSB do MSB. Rys Formaty pakietów na magistrali USB: a) token, b) data, c) handshake O typie pakietu decydują cztery pierwsze bity pola PID (Packet Identifier) wysyłanego od razu po 32-bitowym polu SYNC służącym do synchronizacji transmisji między nadajnikiem a odbiornikiem. W typie token wyróżnia się cztery podtypy pakietów: OUT, IN, SOF, SETUP: pole ADDR pakietu token zawiera 7-bitowy adres urządzenia, pole ENDP 4-bitowy numer Endpointu urządzenia, 5-bitowa suma kontrolna CRC5 jest obliczana z pól ADR i ENDP.

90 Mikroprocesory i kontrolery 179 Typ data jest podzielony na cztery podtypy: DATA0, DATA1, DATA2, MDATA. Wielkość pola danych DATA, z którego obliczna jest 16-bitowa suma kontrolna CRC16, może zmieniać się w zakresie od 0 B do 1024 B. Dane dla każdego bajta są przesyłane od najmłodszego do najstarszego bita. Ostatni typ handshake dzieli się na podtypy ACK, NAK, STALL, NYET. Pakiet składa się tylko z pola PID. Służy do raportowania i sterowania transakcją wymiany danych. Komunikacja między urządzeniami z interfejsem USB przebiega w następujący sposób: Urządzenie fizyczne zostaje zidentyfikowane przez oprogramowanie typu klient, zainstalowane na komputerze (host). Następnie zostaje zainicjowane połączenie pomiędzy urządzeniem a hostem, umożliwiające przesyłanie komunikatów i danych. Dane odebrane z urządzenia zostają sformatowane zgodnie z wymaganiami protokołu USB i przekazane do hosta dzięki współpracy oprogramowania systemu USB, oprogramowania hosta oraz współpracującego sprzętu. Mikroprocesory i kontrolery 180 Rys Schemat blokowy kontrolera USB mk PIC18F87J50

91 Mikroprocesory i kontrolery 181 System zdarzeń System zdarzeń (Event System) służy do zapewnienia bezpośredniej komunikacji (przesyłanie sygnałów wyzwalania i synchronizacji) między urządzeniami peryferyjnymi mikrokontrolera bez udziału obsług przerwań, układu DMA czy procesora rdzeniowego (oprogramowania). Rys Idea działania systemu zdarzeń Mikroprocesory i kontrolery 182 Warunek wystąpienia zmiany stanu w urządzeniu peryferyjnym to zdarzenie. Sygnały zdarzeń są przesyłane między urządzeniami peryferyjnymi za pomocą dedykowanej sieci połączeń zwanej siecią routowania zdarzeń. Urządzenia peryferyjne, które generują zdarzenia to generatory zdarzeń, a które odbierają te zdarzenia to użytkownicy zdarzeń. Rys Przykład konfiguracji systemu zdarzeń z podziałem na generator zdarzeń, użytkownika (odbiorcy) zdarzeń oraz obsługiwanych akcji

92 Mikroprocesory i kontrolery 183 Rys Schemat blokowy systemu zdarzeń w mk rodziny Xmega A Mikroprocesory i kontrolery 184 Rys Przykładowe wykorzystanie systemu zdarzeń mikrosystem pomiarowy zbudowany z zasobów wewnętrznych mk ATxmega32A4

93 Mikroprocesory i kontrolery // Event System EVSYS_CH7MUX = 0xC4; // TCC0 TCC0_CTRLA = 0x00; TCC0_CTRLB = 0x30; TCC0_INTCTRLB = 0x04;... // Source - Capture or Compare A (TCC0_CCA) // TCC0 stop // Compare enable for A, B channels, Normal Mode // Timer Compare B - low level interrupt // ADC A ADCA_CTRLB = 0x00; // Unsigned result, 12-bit resolution ADCA_REFCTRL = 0x20; // External reference from AREF pin on PORT A ADCA_EVCTRL = 0xFE; // ADC cannels 0, 1, 2 and 3; Event channel 7 // as selected inputs. Event channel 7 triggers // conversions on all active channels ADCA_CH3_INTCTRL = 0x01; // Low level interrupt on CH3... ADCA_CTRLA = 0x01; // ADC A enable... Listing 16. Fragmenty inicjalizacji systemu zdarzeń, licznika i przetwornika A/C w mk ATxmega32A4 Mikroprocesory i kontrolery 186 Typy obudów mk Scalone struktury mk są zamykane w obudowach rozmaitych typów, zarówno plastikowych, jak i ceramicznych. Ich klasyfikację podano na rys Wyróżniono następujące typy obudów: DIP (dual in-line package) dwurzędowe płaskie; najstarszy, tradycyjny typ obudowy zarówno do wlutowywania jak i montażu w podstawkach; wytwarzane jako plastikowe i ceramiczne, S-DIP (shrink dual in-line package) dwurzędowe płaskie; o zmniejszonych gabarytach, plastikowe, SK-DIP - (skinny dual in-line package) dwurzędowe płaskie, miniaturowe, PGA (pin grid array), ze szpilkowymi wyprowadzeniami rozmieszczonymi na obwodzie prostokątnej (lub kwadratowej) matrycy, DFP (dual flat package) do montażu powierzchniowego, z wyprowadzeniami po dwóch stronach obudowy, QFP (qual flat package) do montażu powierzchniowego, z wyprowadzeniami z czterech stron obudowy, TQFP (thin qad flat package) do montażu powierzchniowego, miniaturowa wersja QFP, CC (chip carier) obudowy z kontaktami na krawędzi obudowy, produkowane w dwóch podstawowych odmianach: PLCC (plastic leaded chip carier) oraz LCC (leadless chip carier).

94 Mikroprocesory i kontrolery 187 Rys Klasyfikacja obudów mk Mikroprocesory i kontrolery 188 a) b) c) Rys Przykładowe typy obudów mk PIC16F87x

95 Mikroprocesory i kontrolery 189 Rys Widoki obudów mk ST72215G Mikroprocesory i kontrolery 190 Rys Obudowa SDIP mk ST72215G

96 Mikroprocesory i kontrolery 191 Rys Obudowa DIP pamięci SRAM K6T1008C2E firmy Samsung Mikroprocesory i kontrolery 192 Definicja rodziny mikrokontrolerów: Rodziny mk Rodziną mikrokontrolerów nazywamy grupę mk bazującą na tym samym procesorze rdzeniowym ale zawierającą różne zestawy urządzeń peryferyjnych. Czyli w skład rodziny mk wchodzą mk o różnych parametrach, ale zachowujące między sobą kompatybilność programową, tzn. posiadają tą samą jc, czyli tą samą listę instrukcji. Modyfikacja członków danej rodziny odbywa się na kilku poziomach: na poziomie jc, dotyczy ona zmiany: rozmiaru pamięci programu, rozmiaru pamięci danych RAM, maksymalnej szybkości pracy. na poziomie urządzeń peryferyjnych. Modyfikacje w tej warstwie stanowią podstawowy wyróżnik danego typu mk. Użytkownik otrzymuje do dyspozycji całą, niekiedy dość liczną rodzinę mk różniących się kombinacjami wbudowanych w układ scalony układami we/wy. na poziomie warstwy zacisków zewnętrznych i typu obudowy. Dotyczy głównie parametrów elektrycznych zacisków mk oraz stosowanego typu obudowy mk.

97 Mikroprocesory i kontrolery 193 Rys Najpopularniejsze architektury mikrokontrolerów funkcjonujące na rynku krajowym (10/2010 rok wg Elektronik Magazyn Elektroniki Profesjonalnej ) Rys Najpopularniejsi w Polsce producenci mikrokontrolerów (10/2010 rok wg Elektronik Magazyn Elektroniki Profesjonalnej ) Mikroprocesory i kontrolery 194 Tabela 7. Udział w rynku elektroniki wybranych grup mikrokontrolerów, źródło: (1/2015 rok wg Elektronik Magazyn Elektroniki Profesjonalnej )

98 Mikroprocesory i kontrolery 195 Wybrani producenci mikrokontrolerów: Atmel ( Microchip ( STMicroelectronics ( Freescale Semiconductor ( Renesas Technology (dawniej Hitachi Semiconductor), Texas Instruments ( NXP (wydzielony z Philips), Zilog, Rabbit Semiconductor, Dallas Semiconductor, Infineon, Analog Devices. Mikroprocesory i kontrolery 196 Podział mikrokontrolerów firmy Atmel: AVR 8- and 32-bit MCUs: 32-bit AVR UC3 MCUs AVR XMEGA MCUs megaavr MCUs tinyavr MCUs Battery Management MCUs Automotive AVR MCUs SMART ARM-based MCUs: SAMA5 MPUs SAM C MCUs, SAM D MCUs, SAM E MCUs, SAM G MCUs, SAM L MCUs, SAM S MCUs, SAM V MCUs SAM3N MCUs, SAM3S MCUs, SAM4L MCUs SAM4E MCUs, SAM4N MCUs, SAM4S MCUs SAM3U MCUs, SAM3A MCUs, SAM3X MCUs SAM7S/SE MCUs, SAM7X/XC MCUs SAM9XE MCUs, SAM9N/CN MPUs, SAM9R MPUs, SAM9G MPUs, SAM9X MPUs, SAM9M MPUs 8051 Architecture Flash ISP - Single Cycle Core Flash ISP (In-System Programmable) Flash (Reprogrammable) CAN Networking MCUs USB MCUs Lighting MCUs ROMless

99 Mikroprocesory i kontrolery 197 Przykłady mikrokontrolerów firmy Atmel Najmniejszy mk ATtiny4 posiada wymiary: 2 x 2 x 0,6 mm i masę nie przekraczającą 8 mg. Parametry elektryczne: napięcie zasilania: 1,8 do 5,5 V, częstotliwość oscylatora (zależna od napięcia zasilania): 0 do 12 MHz, niski pobór mocy: tryb aktywności: 200 µa dla 1MHz i 1,8 V, tryb uśpienia: 25 µa dla 1MHz i 1,8 V, tryb zatrzymania: < 0,1 µa dla 1,8 V. Rys Zdjęcie mk ATtiny4 Mikroprocesory i kontrolery 198 Rys Obudowa mk ATtiny 4 Wybrane cechy mk: 54 instrukcje (większość jednocyklowych), 16 x 8 rejestrów roboczych, 512/1024 bajtów pamięci programu FLASH, 32 bajty wewnętrznej pamieci SRAM, urządzenia peryferyjne: 16-bit Timer/Counter with Prescaler and Two PWM Channels, Programmable Watchdog Timer with Separate On-chip Oscillator, 4-channel, 8-bit Analog to Digital Converter, On-chip Analog Comparator.

100 Mikroprocesory i kontrolery 199 Rys Schemat blokowy ATtiny4 Mikroprocesory i kontrolery 200 Mk o najniższym napięciu zasilania (już od 0,7 V) ATtiny43U: Parametry elektryczne: napięcia zasilania: 0,7 1,8 V (z wykorzystaniem On-Chip Boost Converter), 1,8 5,5 V (Boost Converter Bypassed), częstotliwość oscylatora: korzystając z On-Chip Boost Converter: 0 4 MHz, zewnętrzne źródło zasilania: 0 4 MHz przy 1,8 5,5 V, 0 8 MHz przy 2,7 5,5 V, niskie zużycie energii: tryb aktywności, (bez Boost Converter) 400 µa przy 3V i 1 MHz, tryb zatrzymania (bez Boost Converter) 150 na przy 3V. Rys Schemat wykorzystania układu On-Chip Boost Converter

101 Mikroprocesory i kontrolery 201 Firma Microchip Rys Rodziny mk firmy Microchip Mikroprocesory i kontrolery 202 Przykłady mikrokontrolerów firmy Microchip Mikrokontrolery o super niskim poborze mocy z technologią nanowatt XLP? (extreme Low Power) zostały zaprojektowane do systemów bateryjnych, które spędzają nawet 90%-99% czasu swojej pracy w stanie uśpienia. Zalety najnowszej technologii nanowatt XLP? to m.in.: zużycie prądu w trybie uśpienia / wyłączenia spada do 13 na, zużycie prądu z aktywnym układem resetu z odcięciem zasilania spada do 45 na, zużycie prądu z aktywnym licznikiem watch-dog spada do 400 na, zużycie prądu z aktywnym zegarem czasu rzeczywistego / kalendarzem spada do 500 na, zużycie prądu w trybie aktywnym spada do 50 µa na 1 MHz. Tabela 8. Mikrokontrolery PIC w technologii nanowatt XLP?

102 Mikroprocesory i kontrolery 203 Firma STMicroelectronics Rys Podział mk firmy STMicroelectronics Mikroprocesory i kontrolery 204 Rys Podział mk STM32 firmy STMicroelectronics

103 Firma Texas Instruments Low-power MCUs (532) Ultra-low Power (327) MSP430F1x (32) MSP430F2x/4x (145) MSP430FRxx FRAM (92) MSP430G2x/i2x (59) MSP430L09x Low Voltage (3) Low Power + Performance (205) MSP430F5x/6x (203) MSP432P4x (2) Performance MCUs (274) Real-time Control (111) Piccolo F2802x/3x/5x/6x/7x (63) Delfino F2833x/F2837x (19) Fixed-point F280x/1x (29) Control + Automation (83) F28M3x (12) TM4C12x (71) Safety (80) Hercules RM (43) Hercules TMS570 (34) Hercules TMS470M (3) Mikroprocesory i kontrolery 205 Wireless MCUs (35) RF430 (4) CC430 (13) SimpleLink CC1x (2) SimpleLink CC2x (14) SimpleLink CC3x (2) ARM-Based Processor Platforms (212) Safety MCUs (64) ARM Cortex-R (64) RM MCUs (36) TMS570 MCUs (28) ARM Cortex-M MCUs ARM Cortex-M4 Core (73) MSP432P4x (2) ARM Cortex-M3 Core (15) F28M3x MCUs (12) TMS470M MCUs (3) Mikroprocesory i kontrolery 206 Firma NXP (Philips) Podział mk firmy NXP ze względu na użyty w mk procesor rdzeniowy: Cortex-M (32-bit) Cortex-M0/M0+ Cortex-M3 Cortex-M4/M4F Dual core Cortex-M0 & M4F Cortex-M0+ & M4F Other ARM (32-bit) ARM7 ARM9 8/16-bit 80C51

104 Mikroprocesory i kontrolery 207 Sposoby programowania i debugowania mikrokontrolerów z pamięcią FLASH Definicja programowania zagnieżdżonego: Tworzenie oprogramowania dla mse opartych na mk (i nie tylko) i ukierunkowanych na zadania pomiarowo-sterujące oraz komunikacyjne określa się w literaturze mianem programowania zagnieżdżonego (embeded programming). Oprogramowanie to jest ściśle związane z architekturą samego procesora i jego sprzętowego otoczenia. Można wyróżnić następujące cechy programów zagnieżdżonych: Program jednoznacznie ustala funkcję mse, tzn. użytkownik ma możliwość zmiany funkcji systemu zazwyczaj tylko w niewielkim zakresie przewidzianym przez program użytkowy. Ta właśnie cecha określana jest jako zagnieżdżenie programu. Działanie programu musi spełniać określone wymagania czasowe dotyczące przekraczania maksymalnego czasu reakcji na określone zdarzenia zewnętrzne oraz realizacji określonych zadań programowych w nieprzekraczalnym czasie. Ta cecha określana jest jako praca programu w czasie rzeczywistym. Są to programy działające na specyficznych zasobach sprzętowych warunkowanych ukierunkowaniem budowy sprzętowej mse na konkretne zadanie. Mikroprocesory i kontrolery 208 Cykl tworzenia oprogramowania dla mk jest zbliżony do cyklu tworzenia oprogramowania dla komputerów osobistych. Obejmuje on trzy fazy: napisanie kodu źródłowego, przetłumaczenie kodu źródłowego na kod maszynowy danego mk, uruchomienie programu w systemie docelowym (mse). Faza pierwsza i druga wykonywana jest najczęściej przy zastosowaniu standardowego komputera osobistego. Komputer osobisty w tej funkcji określany jest jako system rozwojowy (development system). Faza trzecia realizowana jest na rzeczywistym mse zawierającym mk. System ten określany jest jako system docelowy (target system). Środowisko programistyczne IDE (Integrated Development Enviroment) zawiera między innymi: specjalizowany edytor tekstowy, kompilator, linker, symulator programowy, debuger, oprogramowanie sterujące programatorem sprzętowym służące do programowania mk.

105 Mikroprocesory i kontrolery 209 Rys Struktura programu użytkownika na mk Po włączeniu napięcia zasilania w programie użytkownika musi się odbyć jednorazowa inicjalizacja, np. ustalenie trybu pracy urządzeń peryferyjnych. Właściwy program użytkownika jest realizowany częściowo w niekończącej się pętli głównej, a częściowo w obsługach przerwań. Mikroprocesory i kontrolery ; deklaracje zmiennych i stałych.org 0x00 ; wektor przerwania od resetu / początek programu jmp Reset... ; np. wektory przerwań Reset:... ; kod procedury inicjalizacji po resecie Program:... ; kod w pętli głównej programu rjmp Program ; powrót do początku programu... ; np. kody obsług przerwań i funkcji.exit Listing 17. Pętla główna programu na mk ATxmega32A4 w asemblerze

106 Mikroprocesory i kontrolery int main(void) { init(); // procedura inicjalizacji po resecie /* Program główny (głowna pętla programu) */ while(1) {... // kod programu } return(0); }... // np. deklaracje funkcji i funkcji obsługi przerwań Listing 18. Pętla główna programu na mk w języku C Mikroprocesory i kontrolery 212 Języki niższego poziomu asemblery Asembler jest językiem niższego poziomu. Operuje on bezpośrednio na liście rozkazów (instrukcji) danej jc. Każdy rozkaz z tej listy ma przyporządkowaną krótką nazwę zwaną mnemonikiem. Za ich pomocą programista tworzy kod źródłowy. Następnie program tłumaczący tłumaczy mnemoniki na odpowiadający im kod maszynowy. Stąd określenie język niższego poziomu. Program tłumaczący z języka asemblera określany jest jako asembler (assembler). ;adres kod maszynowy mnemonik argumenty 006a DC01 movw r26,r24 006c CB01 movw r24,r22 006e BF77 andi r27,0x7f 0070 BC01 movw r22,r CD01 movw r24,r26 Listing. 19. Fragment pliku z raportem (plik LST) po asemblacji dla mk ATmega16

107 Mikroprocesory i kontrolery 213 Programowanie w języku asemblera stosuje się w trzech przypadkach: gdy tworzona aplikacja jest bardzo prosta i zapis w języku asemblera nie sprawia kłopotu, gdy nie dysponujemy kompilatorem C/C++ lub jego koszt byłby niewspółmierny do skali projektu, gdy wymagania wobec szybkości działania programu i minimalizacji zajmowanej pamięci są szczególnie ostre. Do zalet programowania w języku asemblera należy zaliczyć: Możliwość pełnego panowania nad zasobami systemu. Programista ma nieograniczony dostęp do wszystkich bloków na poziomie rejestrów i pojedynczych bitów. Żadna z funkcji systemu nie jest ukryta, w szczególności możliwe jest dowolne, nawet nietypowe oddziaływanie na obszar stosu i mechanizm przerwań. Swobodne dysponowanie obszarem pamięci. Efektywny program wynikowy, szybszy i zajmujący na ogół znacznie mniej pamięci niż równoważny program zapisany w języku wysokiego poziomu. Możliwość swobodnego wyboru formatu danych i precyzji obliczeń. Programista może samodzielnie definiować wielobajtowe struktury danych do obliczeń o praktycznie dowolnej dokładności. Możliwość dopasowania algorytmu do indywidualnych cech architektury mk oraz optymalizacji programu wynikowego. Mikroprocesory i kontrolery 214 Rys Cykl projektowania w języku asemblera

108 Mikroprocesory i kontrolery 215 Jednym z najpopularniejszych formatów nie przemieszczalnych programów binarnych (non-relocatable code) jest format HEX opracowany przez firmę Intel (Intel-HEX). Przechowuje on kody instrukcji i dane (stałe) w postaci ciągu rekordów zapisanych w kodzie ASCII. Każdy z rekordów ma stały format: :llaaaatt[dd...]cc przy czym: : - znak dwukropka, identyfikator początku każdego nowego rekordu, ll długość pola danych (dd...) wyrażona w bajtach, aaaa 16-bitowy adres miejsca pamięci, do którego mają być załadowane dane zapisane w rekordzie, tt kod typu rekordu: 00 oznacza rekord danych, 01 oznacza rekord terminalny (kończący plik HEX), dd ciąg bajtów danych, cc suma kontrolna obliczana jako różnica: 00H-(suma wszystkich bajtów rekordu) mod 256. Podczas ładowania programu z pliku HEX do pamięci systemu wykonywane jest rozpakowanie kolejnych rekordów, sprawdzanie sumy kontrolnej oraz przesłanie pola danych pod wskazany adres. : B20030B2FD3231 : A801D2AF20000A90FE74 : E090F900F FB00E090F900F01A : E974 : FF Listing 20. Przykład pliku binarnego porty.hex dla mk P89V51RC2 Mikroprocesory i kontrolery 216 Rys Zawartość bufora po wgraniu pliku binarnego porty.hex

109 Mikroprocesory i kontrolery 217 Programowanie w językach wyższego poziomu Języki programowania wyższego poziomu są w zasadzie niezależne od listy instrukcji konkretnej jc. Programista operuje rozkazami wykonującymi bardziej złożone operacje niż język asemblera. Program tłumaczący z języka programowania wyższego rzędu na kod maszynowy nosi nazwę kompilatora (compiler). W języku wyższego poziomu każda linia programu tłumaczona jest na kilka, kilkanaście, a czasami nawet na kilkadziesiąt rozkazów asemblera. Ten ostatni przypadek ma miejsce np. wówczas, gdy w programie zastosowane są działania na liczbach zmiennoprzecinkowych, zaś jc nie wspiera operacji zmiennoprzecinkowych. Dominującym językiem wyższego poziomu jest język C. Obecnie obowiązuje jego standard ANSI C. Jednak większość kompilatorów zawiera dodatkowe rozszerzenia tego języka związane ze specyficznymi wymaganiami przy programowaniu mk. Najczęściej są to następujące rozszerzenia: wprowadzone są nowe typy zmiennych, np. zmienne bitowe, przy deklaracji zmiennych wprowadzane są mechanizmy umożliwiające umiejscowienie (alokację) zmiennej w określonym miejscu przestrzeni adresowej, wprowadzone są nowe słowa kluczowe języka C (np. słowo interrupt jest używane przy deklaracji funkcji wywoływanych przy wystąpieniu przerwania). Mikroprocesory i kontrolery 218 Zalecane jest aby pisząc program w języku C na mk stosować następujące rozwiązania: fragmenty kodu źródłowego związane z obsługą specyficznych układów peryferyjnych umieszczać w wydzielonych modułach, typy zmiennych deklarować nie bezpośrednio przy deklaracji zmiennych, ale poprzez słowo kluczowe typdef, alokacji zmiennych nie dokonuje się bezpośrednio przy deklaracji zmiennych, lecz za pomocą dyrektyw preprocesora, głównie przez użycie tzw. modelu pamięci, alokacja funkcji służących do obsługi przerwań (tzw. rozprowadzanie przerwań) odbywa się w wydzielonym zbiorze, często napisanym w języku asemblera. Tworzenie programu w języku C przebiega według tego samego schematu, co cykl projektowy programu w języku asemblera. Pliki źródłowe programu zwykle oznacza się rozszerzeniem C. Literatura dotycząca języka C: Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwo Naukowo-Techniczne, Warszawa 1994.

110 Mikroprocesory i kontrolery #define II volatile uint16_t DDSbuffer[II]; volatile register uint8_t ii asm ("r17"); volatile register uint8_t Tsvalue asm ("r18);... // The interrupt response time it takes 5 CPU clock cycles ISR (TCC0_CCD_vect) // 3 clock cycles { // 12 clock cycles TCC0_CCD += Tsvalue; // 10 clock cycles DACB_CH0DATA = DDSbuffer[ii]; // 15 clock cycles asm ("inc r17 \n" : : ); // - 1 clock cycle if(ii > II) asm("dec r17 \n" : : ); // - 3 clock cycles } // 23 clock cycles Listing 21. Fragment pliku C z obsługą przerwania dla TCC0 compare channel D interrupt dla mk ATxmega32A4 Mikroprocesory i kontrolery 220 ISR (TCC0_CCD_vect) { 25c: 1f 92 push r1 25e: 0f 92 push r0 260: 0f b6 in r0, 0x3f ; : 0f 92 push r0 264: 08 b6 in r0, 0x38 ; : 0f 92 push r0 268: eor r1, r1 26a: 18 be out 0x38, r1 ; 56 26c: 8f 93 push r24 26e: 9f 93 push r25 270: ef 93 push r30 272: ff 93 push r31 DACB_CH0DATA = DDSbuffer[ii]; // a new value at the DAC output 274: e1 2f mov r30, r17 276: f0 e0 ldi r31, 0x00 ; 0 278: ee 0f add r30, r30 27a: ff 1f adc r31, r31 27c: e0 50 subi r30, 0x00 ; 0 27e: f0 4e sbci r31, 0xE0 ; : ld r24, Z 282: ldd r25, Z+1 ; 0x01 284: sts 0x0338, r24 288: sts 0x0339, r25 TCC0_CCD += Tsvalue; // the next interrupt service for Ts 28c: e 08 lds r24, 0x082E 290: f 08 lds r25, 0x082F 294: 82 0f add r24, r18 296: 91 1d adc r25, r1 298: e 08 sts 0x082E, r24 29c: f 08 sts 0x082F, r25 asm ("inc r17 \n" : : ); 2a0: inc r17 // ii++; if(ii > II) asm ("dec r17 \n" : : ); // ii--; 2a2: 1b 3f cpi r17, 0xFB ; 251 2a4: 08 f0 brcs.+2 ; 0x2a8 < vector_19+0x4c> 2a6: 1a 95 dec r17 } 2a8: ff 91 pop r31 2aa: ef 91 pop r30 2ac: 9f 91 pop r25 2ae: 8f 91 pop r24 2b0: 0f 90 pop r0 2b2: 08 be out 0x38, r0 ; 56 2b4: 0f 90 pop r0 2b6: 0f be out 0x3f, r0 ; 63 2b8: 0f 90 pop r0 2ba: 1f 90 pop r1 2bc: reti Listing 22. Fragment pliku lss uzyskanego po kompilacji i asemblacji kodu z listingu 2.3

111 Mikroprocesory i kontrolery 221 Uruchamianie programu mk Definicja uruchamiania programów: Uruchamianie programów jest procesem eliminacji błędów i wprowadzania zmian do programu użytkowego w celu uzyskania bezbłędnej i zgodnej z założeniami pracy systemu w danym zastosowaniu. Uruchamianie prototypowych mse z mk jest trudnym procesem. Wynika to z dwóch podstawowych przyczyn: mk mają wiele wbudowanych bloków funkcjonalnych (pamięci i układów peryferyjnych), do których dostęp w czasie pracy systemu jest utrudniony lub niemożliwy, sterowniki z wbudowanymi mk są przeznaczone do pracy w czasie rzeczywistym. Testowanie systemu w czasie rzeczywistym, we współpracy z rzeczywistym otoczeniem, bez naruszenia relacji czasowych sygnałów, wymaga narzędzi diagnostycznych, które nie zakłócają pracy systemu. Zatem opracowano wiele metod stosowanych w tym celu. Metody te dzielą się na dwie grupy: bez wykorzystania systemu docelowego, z wykorzystaniem systemu docelowego. Mikroprocesory i kontrolery 222 W skład grupy metod z wykorzystaniem systemu docelowego wchodzą: metoda prób i błędów - polega na wielokrotnym programowaniu mk i za każdym razem obserwacji działania programu w mse i jego korekcji na podstawie tych obserwacji, aż do uzyskania prawidłowego działania mk, zastosowanie monitorów programowych (monitors) i programów śledzących (debuggers) są najczęściej stosowane. - Monitory są instalowane w pamięci programu mk i kontrolują wykonywanie właściwego programu użytkowego oraz komunikują się z systemem rozwojowym poprzez złącze szeregowe. - Natomiast debugery pracują w przyłączonych do systemu komputerach PC, zastosowanie emulatora sprzętowego mk (ICE in-circuit emulators) polega to na umieszczeniu, na czas uruchamiania programu, w podstawce na mk sondy połączonej ze specjalnym układem sprzętowym, który emuluje działanie mk. Emulator wiernie odtwarza wszystkie właściwości mk łącznie z jego wszystkimi układami peryferyjnymi oraz pamięcią, wykorzystanie specjalnych zasobów wewnętrznych mk niektóre mk zwłaszcza 32-bitowe posiadają specjalne zasoby sprzętowe przeznaczone do wspierania procesu uruchomiania programu. Zasoby te oferują w przybliżeniu wszystkie te możliwości co emulator sprzętowy, między innymi ustawienie pułapek oraz pracę krokową. Zasoby te komunikują się przez dedykowane wyprowadzenia mk. Są one dostępne wyłącznie na etapie uruchamiania programu, zatem nie są wykorzystywane przez normalny program użytkowy.

112 Mikroprocesory i kontrolery 223 Rys Symulator dla mk ADuC812 Mikroprocesory i kontrolery 224 Rys Środowisko IDE dla mk Rabitt 2000 i zestawu Rabbit 2000 TCP/IP

113 Mikroprocesory i kontrolery 225 Rys Środowisko do programowania mk ST72215G2 Mikroprocesory i kontrolery 226 Sposoby programowania mk z pamiecią FLASH Obecnie prawie wszystkie produkowane mk są dostępne w wersji z pamięcią programu typu FLASH. Zaletą pamięci FLASH (pamięć błyskowa) jest możliwość wielokrotnego jej programowania bezpośrednio w systemie docelowym (bez konieczności wyciągania mk z podstawki) ISP (In-System Programmable). Możemy wyróżnić dwa tryby programowania mk: tryb równoległy wymagający umieszczenia mk w programatorze, tryb szeregowy (ISP). Tryb równoległy Wadą trybu równoległego programowania jest konieczność wyciagnięcia mk z mse i umieszczenie go w programatorze. Zaletą, np. dla mk firmy Atmel, jest to, iż mk nie dające się z jakichkolwiek przyczyn zaprogramować w trybie ISP, dadzą się programować w trybie równoległym.

Układy czasowe / liczniki (timers/counters)

Układy czasowe / liczniki (timers/counters) Układy czasowe / liczniki (timers/counters) Współpraca MK z otoczeniem w czasie rzeczywistym wymaga odliczania czasu, zliczania zdarzeń lub generowania złożonych sekwencji binarnych. Funkcje te realizowane

Bardziej szczegółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:

Bardziej szczegółowo

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08 Pamięci Układy pamięci kontaktują się z otoczeniem poprzez szynę danych, szynę owa i szynę sterującą. Szerokość szyny danych określa liczbę bitów zapamiętywanych do pamięci lub czytanych z pamięci w trakcie

Bardziej szczegółowo

Układy czasowo-licznikowe w systemach mikroprocesorowych

Układy czasowo-licznikowe w systemach mikroprocesorowych Układy czasowo-licznikowe w systemach mikroprocesorowych 1 W każdym systemie mikroprocesorowym znajduje zastosowanie układ czasowy lub układ licznikowy Liczba liczników stosowanych w systemie i ich długość

Bardziej szczegółowo

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2 Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2 Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com.

Bardziej szczegółowo

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe Mikrokontroler ATmega32 System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe 1 Przerwanie Przerwanie jest inicjowane przez urządzenie zewnętrzne względem mikroprocesora, zgłaszające potrzebę

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Wykład 4 Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430 Mikrokontrolery PIC Mikrokontrolery PIC24 Mikrokontrolery PIC24 Rodzina 16-bitowych kontrolerów RISC Podział na dwie podrodziny: PIC24F

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Metody obsługi zdarzeń

Metody obsługi zdarzeń SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału

Bardziej szczegółowo

Hardware mikrokontrolera X51

Hardware mikrokontrolera X51 Hardware mikrokontrolera X51 Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Hardware mikrokontrolera X51 (zegar)

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC Wykład 2 Przegląd mikrokontrolerów 8-bit: -AVR -PIC Mikrokontrolery AVR Mikrokontrolery AVR ATTiny Główne cechy Procesory RISC mało instrukcji, duża częstotliwość zegara Procesory 8-bitowe o uproszczonej

Bardziej szczegółowo

Przerwania, polling, timery - wykład 9

Przerwania, polling, timery - wykład 9 SWB - Przerwania, polling, timery - wykład 9 asz 1 Przerwania, polling, timery - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykład 9 asz 2 Metody obsługi zdarzeń

Bardziej szczegółowo

Układy czasowo-licznikowe w systemach mikroprocesorowych

Układy czasowo-licznikowe w systemach mikroprocesorowych Układy czasowo-licznikowe w systemach mikroprocesorowych 1 W każdym systemie mikroprocesorowym znajduje zastosowanie układ czasowy lub układ licznikowy Liczba liczników stosowanych w systemie i ich długość

Bardziej szczegółowo

Wbudowane układy peryferyjne cz. 2 Wykład 8

Wbudowane układy peryferyjne cz. 2 Wykład 8 Wbudowane układy peryferyjne cz. 2 Wykład 8 Timery Timery (liczniki) 2 Timery informacje ogólne Mikrokontroler ATmega32 posiada 3 liczniki: Timer0 8-bitowy Timer1 16-bitowy Timer2 8-bitowy, mogący pracować

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Współpraca z układami peryferyjnymi i urządzeniami zewnętrznymi Testowanie programowe (odpytywanie, przeglądanie) System przerwań Testowanie programowe

Bardziej szczegółowo

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów...2 2. ISP...2 3. I/O Ports...3 4. External Interrupts...4 5. Analog Comparator...5 6. Analog-to-Digital Converter...6

Bardziej szczegółowo

Mikroprocesory i Mikrosterowniki

Mikroprocesory i Mikrosterowniki Mikroprocesory i Mikrosterowniki Wykład 1 Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Konsultacje Pn,

Bardziej szczegółowo

System mikroprocesorowy i peryferia. Dariusz Chaberski

System mikroprocesorowy i peryferia. Dariusz Chaberski System mikroprocesorowy i peryferia Dariusz Chaberski System mikroprocesorowy mikroprocesor pamięć kontroler przerwań układy wejścia wyjścia kontroler DMA 2 Pamięć rodzaje (podział ze względu na sposób

Bardziej szczegółowo

Wykład Mikroprocesory i kontrolery

Wykład Mikroprocesory i kontrolery Wykład Mikroprocesory i kontrolery Cele wykładu: Poznanie podstaw budowy, zasad działania mikroprocesorów i układów z nimi współpracujących. Podstawowa wiedza potrzebna do dalszego kształcenia się w technice

Bardziej szczegółowo

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1 Dodatek C 1. Timer 8-bitowy (Timer0) 1.1. Opis układu Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1 Rys. 1. Schemat blokowy timera Źródłem sygnału taktującego może być zegar

Bardziej szczegółowo

Kurs Elektroniki. Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26

Kurs Elektroniki. Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26 Kurs Elektroniki Część 5 - Mikrokontrolery. www.knr.meil.pw.edu.pl 1/26 Mikrokontroler - autonomiczny i użyteczny system mikroprocesorowy, który do swego działania wymaga minimalnej liczby elementów dodatkowych.

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Technika Mikroprocesorowa

Technika Mikroprocesorowa Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa

Bardziej szczegółowo

Układy zegarowe w systemie mikroprocesorowym

Układy zegarowe w systemie mikroprocesorowym Układy zegarowe w systemie mikroprocesorowym 1 Sygnał zegarowy, sygnał taktujący W każdym systemie mikroprocesorowym jest wymagane źródło sygnałów zegarowych. Wszystkie operacje wewnątrz jednostki centralnej

Bardziej szczegółowo

Mikroprocesory i Mikrosterowniki

Mikroprocesory i Mikrosterowniki Mikroprocesory i Mikrosterowniki Wykład 1 Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Konsultacje Pn,

Bardziej szczegółowo

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów2 2. ISP..2 3. I/O Ports..3 4. External Interrupts..4 5. Analog Comparator5 6. Analog-to-Digital Converter.6 7.

Bardziej szczegółowo

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie: Zaliczenie Termin zaliczenia: 14.06.2007 Sala IE 415 Termin poprawkowy: >18.06.2007 (informacja na stronie: http://neo.dmcs.p.lodz.pl/tm/index.html) 1 Współpraca procesora z urządzeniami peryferyjnymi

Bardziej szczegółowo

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów. Układy wejścia-wyjścia komputera Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs

Bardziej szczegółowo

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu. Jednostka centralna procesor (CPU, rdzeń) Schemat blokowy procesora rdzeniowego ATmega16 Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu. Zadania JC: dostęp do pamięci,

Bardziej szczegółowo

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA TIMERY w mikrokontrolerach Atmega16-32 Opracował:

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Struktura portów (CISC) Port to grupa (zwykle 8) linii wejścia/wyjścia mikrokontrolera o podobnych cechach i funkcjach Większość linii we/wy może pełnić dwie lub trzy rozmaite funkcje. Struktura portu

Bardziej szczegółowo

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8 3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8 Układ PCF 8583 jest pobierającą małą moc, 2048 bitową statyczną pamięcią CMOS RAM o organizacji 256 x 8 bitów. Adresy i dane są przesyłane szeregowo

Bardziej szczegółowo

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. PRZERWANIA 1. Obsługa zdarzeń, odpytywanie i Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. Istnieją dwie metody pozyskania informacji o zdarzeniach: 1. Cykliczne

Bardziej szczegółowo

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015 XMEGA Warsztaty CHIP Rok akademicki 2014/2015 Plan warsztatów: Wprowadzenie do Atmel Studio (20/11/2014) Porty I/O (20/11/2014) Przerwania (27/11/2014) Wykorzystana literatura: [1] Dokumentacja ATMEL(www.atmel.com):

Bardziej szczegółowo

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA TIMERY w mikrokontrolerach Atmega16-32 Opracował:

Bardziej szczegółowo

SYSTEM PRZERWAŃ ATmega 32

SYSTEM PRZERWAŃ ATmega 32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA SYSTEM PRZERWAŃ ATmega 32 Opracował: mgr inż.

Bardziej szczegółowo

Mikroprocesory i mikrosterowniki

Mikroprocesory i mikrosterowniki Mikroprocesory i mikrosterowniki Wykład 1 wstęp, budowa mikrokontrolera Wydział Elektroniki Mikrosystemów i Fotoniki Na prawach rękopisu. Na podstawie dokumentacji ATmega8535, www.atmel.com. Piotr Markowski

Bardziej szczegółowo

Mikrokontroler AVR ATmega32 - wykład 9

Mikrokontroler AVR ATmega32 - wykład 9 SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 1 Mikrokontroler AVR ATmega32 - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Mikrokontroler AVR ATmega32 - wykład 9 asz 2 CechyµC ATmega32 1.

Bardziej szczegółowo

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości Politechnika Lubelska Wydział Elektrotechniki i Informatyki PRACA DYPLOMOWA MAGISTERSKA Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości Marcin Narel Promotor: dr inż. Eligiusz

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia Przerwania w systemie mikroprocesorowym 1 Obsługa urządzeo wejścia/wyjścia W każdym systemie mikroprocesorowym oprócz pamięci programu i pamięci danych znajduje się szereg układów lub urządzeo wejścia/wyjścia,

Bardziej szczegółowo

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych Architektura Systemów Komputerowych Bezpośredni dostęp do pamięci Realizacja zależności czasowych 1 Bezpośredni dostęp do pamięci Bezpośredni dostęp do pamięci (ang: direct memory access - DMA) to transfer

Bardziej szczegółowo

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot, Charakterystyka mikrokontrolerów Przygotowali: Łukasz Glapiński, 171021 Mateusz Kocur, 171044 Adam Kokot, 171075 Plan prezentacji Co to jest mikrokontroler? Historia Budowa mikrokontrolera Wykorzystywane

Bardziej szczegółowo

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

Wykład Mikrokontrolery i mikrosystemy Cele wykładu: Wykład Mikrokontrolery i mikrosystemy Cele wykładu: Poznanie podstaw budowy, zasad działania i sterowania mikrokontrolerów i ich urządzeń peryferyjnych. Niezbędna wiedza do dalszego samokształcenia się

Bardziej szczegółowo

Temat: Pamięci. Programowalne struktury logiczne.

Temat: Pamięci. Programowalne struktury logiczne. Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w

Bardziej szczegółowo

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski Komunikacja w mikrokontrolerach Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski Treść kursu Programowanie mikrokontrolerów AVR (ATMEL) Orientacja na komunikację międzyukładową w C Literatura

Bardziej szczegółowo

Zastosowania mikrokontrolerów w przemyśle

Zastosowania mikrokontrolerów w przemyśle Zastosowania mikrokontrolerów w przemyśle Cezary MAJ Katedra Mikroelektroniki i Technik Informatycznych Współpraca z pamięciami zewnętrznymi Interfejs równoległy (szyna adresowa i danych) Multipleksowanie

Bardziej szczegółowo

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Programowanie mikrokontrolerów AVR z rodziny ATmega. Programowanie mikrokontrolerów AVR z rodziny ATmega. Materiały pomocnicze Jakub Malewicz jakub.malewicz@pwr.wroc.pl Wszelkie prawa zastrzeżone. Kopiowanie w całości lub w częściach bez zgody i wiedzy autora

Bardziej szczegółowo

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Wbudowane układy komunikacyjne cz. 1 Wykład 10 Wbudowane układy komunikacyjne cz. 1 Wykład 10 Wbudowane układy komunikacyjne UWAGA Nazwy rejestrów i bitów, ich lokalizacja itd. odnoszą się do mikrokontrolera ATmega32 i mogą być inne w innych modelach!

Bardziej szczegółowo

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8 Wykład 3 Przegląd mikrokontrolerów 8-bit: - 8051 - STM8 Mikrokontrolery 8051 Rodzina 8051 wzięła się od mikrokontrolera Intel 8051 stworzonego w 1980 roku Mikrokontrolery 8051 były przez długi czas najpopularniejszymi

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Wbudowane układy peryferyjne cz. 1 Wykład 7

Wbudowane układy peryferyjne cz. 1 Wykład 7 Wbudowane układy peryferyjne cz. 1 Wykład 7 Wbudowane układy peryferyjne UWAGA Nazwy rejestrów i bitów, ich lokalizacja itd. odnoszą się do mikrokontrolera ATmega32 i mogą być inne w innych modelach! Ponadto

Bardziej szczegółowo

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51 Architektura mikrokontrolera MCS51 Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Architektura mikrokontrolera

Bardziej szczegółowo

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51 Architektura mikrokontrolera MCS51 Ryszard J. Barczyński, 2018 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Architektura mikrokontrolera

Bardziej szczegółowo

Systemy wbudowane Mikrokontrolery

Systemy wbudowane Mikrokontrolery Systemy wbudowane Mikrokontrolery Budowa i cechy mikrokontrolerów Architektura mikrokontrolerów rodziny AVR 1 Czym jest mikrokontroler? Mikrokontroler jest systemem komputerowym implementowanym w pojedynczym

Bardziej szczegółowo

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Katedra Inżynierii Systemów, Sygnałów i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Bardziej szczegółowo

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy: Współpraca mikroprocesora z urządzeniami zewnętrznymi Urządzenia wejścia-wyjścia, urządzenia których zadaniem jest komunikacja komputera z otoczeniem (zwykle bezpośrednio z użytkownikiem). Do najczęściej

Bardziej szczegółowo

Mikrosterowniki. i mikrosystemy rozproszone MIKROSTEROWNIKI. Tom I. Materiały do wykładu. dr hab. inż. Zbigniew Czaja

Mikrosterowniki. i mikrosystemy rozproszone MIKROSTEROWNIKI. Tom I. Materiały do wykładu. dr hab. inż. Zbigniew Czaja Mikrosterowniki i mikrosystemy rozproszone Materiały do wykładu Tom I MIKROSTEROWNIKI dr hab. inż. Zbigniew Czaja Gdańsk 2015 Mikrosterowniki i mikrosystemy rozproszone 1 Spis treści Tom I 1. Wstęp...4

Bardziej szczegółowo

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

2. PORTY WEJŚCIA/WYJŚCIA (I/O) 2. PORTY WEJŚCIA/WYJŚCIA (I/O) 2.1 WPROWADZENIE Porty I/O mogą pracować w kilku trybach: - przesyłanie cyfrowych danych wejściowych i wyjściowych a także dla wybrane wyprowadzenia: - generacja przerwania

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Systematyczny przegląd. (CISC) SFR umieszczane są w wewnętrznej pamięci danych (80H 0FFH). Adresowanie wyłącznie bezpośrednie. Rejestry o adresach podzielnych przez 8 są też dostępne bitowo. Adres n-tego

Bardziej szczegółowo

Mikrokontrolery i mikrosystemy

Mikrokontrolery i mikrosystemy Mikrokontrolery i mikrosystemy Materiały do wykładu Tom I MIKROKONTROLERY dr hab. inż. Zbigniew Czaja Gdańsk 2015 Mikrokontrolery i mikrosystemy 1 Spis treści Tom I 1. Wprowadzenie...4 2. Mikrokontrolery...6

Bardziej szczegółowo

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33 Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry

Bardziej szczegółowo

Mikrokontrolery czyli o czym to będzie...

Mikrokontrolery czyli o czym to będzie... Mikrokontrolery czyli o czym to będzie... Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego PNPiM Poznamy: Cechy

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240 LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240 Strona 1 z 12 Opracował mgr inż. Jacek Lis (c) ZNE 2004 1. Mechanizm przerwań

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl Systemy wbudowane Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie definicja, zastosowania, projektowanie systemów wbudowanych Mikrokontrolery AVR Programowanie mikrokontrolerów

Bardziej szczegółowo

Programowanie Mikrokontrolerów

Programowanie Mikrokontrolerów Programowanie Mikrokontrolerów Wyświetlacz alfanumeryczny oparty na sterowniku Hitachi HD44780. mgr inż. Paweł Poryzała Zakład Elektroniki Medycznej Alfanumeryczny wyświetlacz LCD Wyświetlacz LCD zagadnienia:

Bardziej szczegółowo

2. Budowa układów procesorowych rodziny TMS320C

2. Budowa układów procesorowych rodziny TMS320C 3 Wstęp...8 1. Procesory sygnałowe DSC (Digital Signal Controllers)...11 1.1. Przegląd układów procesorowych czasu rzeczywistego...13 1.2. Procesory rodziny TMS320C2000 firmy Texas Instruments...15 2.

Bardziej szczegółowo

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling) Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie

Bardziej szczegółowo

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO! ćwiczenie nr 7 str.1/1 ĆWICZENIE 7 Wprowadzenie do funkcji specjalnych sterownika LOGO! 1. CEL ĆWICZENIA: zapoznanie się z zaawansowanymi możliwościami mikroprocesorowych sterowników programowalnych na

Bardziej szczegółowo

Mikrokontrolery i Mikrosystemy

Mikrokontrolery i Mikrosystemy Wykład Mikrokontrolery i Mikrosystemy autor: dr inż. Zbigniew Czaja Gdańsk 2005 2 Spis treści 1. Wprowadzenie... 5 2. Mikrokontrolery...7 2.1. Jednostka centralna...9 2.1.1. Architektury procesorów rdzeniowych

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM Strona 1 z 7 Opracował mgr inż. Jacek Lis (c) ZNE 2004 1.Budowa przetwornika ADC procesora

Bardziej szczegółowo

2.1 Porównanie procesorów

2.1 Porównanie procesorów 1 Wstęp...1 2 Charakterystyka procesorów...1 2.1 Porównanie procesorów...1 2.2 Wejścia analogowe...1 2.3 Termometry cyfrowe...1 2.4 Wyjścia PWM...1 2.5 Odbiornik RC5...1 2.6 Licznik / Miernik...1 2.7 Generator...2

Bardziej szczegółowo

Układy zegarowe w systemie mikroprocesorowym

Układy zegarowe w systemie mikroprocesorowym Układy zegarowe w systemie mikroprocesorowym 1 Przykładowa struktura systemu mikroprocesorowego IRQ AcDMA ReDMA Generator zegarowy fx fcpu fio fm System przerwań sprzętowych IRQ Bezpośredni dostęp do pamięci

Bardziej szczegółowo

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Poradnik programowania procesorów AVR na przykładzie ATMEGA8 Wersja 1.0 Tomasz Pachołek 2017-13-03 Opracowanie zawiera opis podstawowych procedur, funkcji, operatorów w języku C dla mikrokontrolerów AVR

Bardziej szczegółowo

dokument DOK 02-05-12 wersja 1.0 www.arskam.com

dokument DOK 02-05-12 wersja 1.0 www.arskam.com ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania

Bardziej szczegółowo

Systemy wbudowane. Mikrokontrolery cz. 1. Opracowano na podstawie (http://wazniak.mimuw.edu.pl/

Systemy wbudowane. Mikrokontrolery cz. 1. Opracowano na podstawie (http://wazniak.mimuw.edu.pl/ Systemy wbudowane Mikrokontrolery cz. 1 Opracowano na podstawie (http://wazniak.mimuw.edu.pl/ Architektury mikrokontrolerów Architektury mikrokontrolerów są to zespoły atrybutów widzianych przez programistę.

Bardziej szczegółowo

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro 1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik

Bardziej szczegółowo

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych. Ćwiczenie 9 Rejestry przesuwne i liczniki pierścieniowe. Cel. Poznanie właściwości i zasady działania rejestrów przesuwnych.. Poznanie właściwości i zasady działania liczników pierścieniowych. Wprowadzenie.

Bardziej szczegółowo

RODZAJE PAMIĘCI RAM. Cz. 1

RODZAJE PAMIĘCI RAM. Cz. 1 RODZAJE PAMIĘCI RAM Cz. 1 1 1) PAMIĘĆ DIP DIP (ang. Dual In-line Package), czasami nazywany DIL - w elektronice rodzaj obudowy elementów elektronicznych, głównie układów scalonych o małej i średniej skali

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń

Bardziej szczegółowo

Wykład 2. Mikrokontrolery z rdzeniami ARM

Wykład 2. Mikrokontrolery z rdzeniami ARM Wykład 2 Źródło problemu 2 Wstęp Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) jest 32-bitową architekturą (modelem programowym) procesorów typu RISC. Różne wersje procesorów

Bardziej szczegółowo

Podział układów cyfrowych. rkijanka

Podział układów cyfrowych. rkijanka Podział układów cyfrowych rkijanka W zależności od przyjętego kryterium możemy wyróżnić kilka sposobów podziału układów cyfrowych. Poniżej podam dwa z nich związane ze sposobem funkcjonowania układów cyfrowych

Bardziej szczegółowo

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania). Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów

Bardziej szczegółowo

Układy czasowo-licznikowe w systemach 80x86

Układy czasowo-licznikowe w systemach 80x86 Układy czasowo-licznikowe w systemach 80x86 Semestr zimowy 2014/2015, WIEiK-PK 1 Układy czasowo-licznikowe w systemach 80x86 W komputerach osobistych oprogramowanie w szczególności, jądro systemu musi

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści 1. Konfiguracja pinów...2 2. ISP...2 3. I/O Ports...3 4. External Interrupts...4 5. Analog Comparator...6 6. Analog-to-Digital Converter...6

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe System mikroprocesorowy 1. Przedstaw schemat blokowy systemu mikroprocesorowego.

Bardziej szczegółowo

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolerów. 8 listopada 2007 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik

Bardziej szczegółowo

Cyfrowe układy scalone

Cyfrowe układy scalone Cyfrowe układy scalone Ryszard J. Barczyński, 2010 2015 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Cyfrowe układy scalone Układy cyfrowe

Bardziej szczegółowo

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

4 Transmisja szeregowa, obsługa wyświetlacza LCD. 1 4 Transmisja szeregowa, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy, - ramka transmisyjna, - przeznaczenie buforów obsługi

Bardziej szczegółowo

(57) Tester dynamiczny współpracujący z jednej strony (13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1. (54) Tester dynamiczny

(57) Tester dynamiczny współpracujący z jednej strony (13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1. (54) Tester dynamiczny RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) 166151 (13) B1 Urząd Patentowy Rzeczypospolitej Polskiej (21) Numer zgłoszenia: 2 9 0 5 8 3 (22) Data zgłoszenia: 06.06.1991 (51) IntCl5: G01R 31/28

Bardziej szczegółowo

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca)

Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca) Funkcje sterowania cyfrowego przekształtników (lista nie wyczerpująca) tryb niskiego poboru mocy przełączanie źródeł zasilania łagodny start pamięć i zarządzanie awariami zmiana (nastawa) sygnału odniesienia

Bardziej szczegółowo