1. Mikroprocesor, mikrokomputer mikrokontroler - struktura sprzętowa, oprogramowanie, przeznaczenie
Mikroprocesor
procesor wykonany w postaci układu scalonego o bardzo dużym stopniu integracji. jednostka centralna uniwersalnego komputera,Przeznaczony do szybkiego przetwarzania operacji arytmetyczno-logicznych,przystosowany do wyk.ciagu operacji.W jego budowie wyrozniamy:Arytmometr(ALU)-jednostka arytm-logiczna;Zespół rejestrów(rozkazu i robocze);układ sterowania-ktory kontroluje przeplyw danych miedzy ALU a sys.rejstrow.
DZIALANIE procesora jest cykliczne(cykl rozkazowe uProc.):a)pobranie i dekodowanie rozkazu b)odczyt pamieci c)zapis do pamieci
ALU-przetwarza dane przechowywane w pamieci.Uklad sterujacy, steruje zespolem rejestrow i ALU(tj.ukladem operacyjnym), ktorego zadaniem jest nadzorowanie kolejności pobierania, wykonywania i interpretacji rozkazów oraz ich wykonywania w układzie ALU,rozpoznajac typ i ustalajac kolejnosc wykonywanych rozkazow.
Rozkazy(do systemu sterowania) i dane (do systemu rejestrow)zapisywane sa w tech.0-1.Liczba bitów w słowie jest równa liczbie linii jego magistrali danych,a slowo-to wektor informacji cyfrowej.Długość słowa procesora określa jego moc obliczeniowa.
Podstawowymi parametrami procesora są: długość słowa , szybkość działania , maksymalna pojemność jaką można dołączyć do mikroprocesora, lista rozkazów , tryby adresowania pamięci.
Mikrokomputer-shcemat ideowy
jest układem samodzielnym (Mikroprocesor) , lecz współpracujacy z pamięciami-ROM-programu;RAM-danych(przechoywanie wynikow koncowych i czastkowych) i układami wejścia –wyjścia,oraz sespol magistral lacacych wszystkie elem.ukomputera;
Oprogramowanie-Modyfikowalne w szerokim zakresie,Nie obowiązuje zasada pracy w czasie rzeczywistym.
Zastosowanie-Zadania obliczeniowe, laboratoryjne,w przemysłowych układach automatyki, urządzeniach powszechnego użytku,Charakteryzują się wysoką niezawodnością, małymi wymiarami systemu i niskimi kosztami projektowania i realizacji. W układach gdzie potrzebna jest duża pamięć operacyjna zalety te tracą swoje znaczenie.
Mikrokontroler- mikroprocesor z wbudowaną pamięcią typu RAM i ROM,wyposażane w układy wejścia-wyjścia służące komunikacji z otoczeniem (Przetworniki A/C C/A, porty); Struktura jak w mikrokomputerze
Oprogramowanie: budowane zwykle raz, dedykowane ściśle przeznaczeniu mikrokontrolera. Obowiązuje tryb pracy w czasie rzeczywistym (Real - Time Mode) rozbudowany układ przerwań.Charakteryzuje je różnorodna budowa, przystosowana do sterowania różnych typów grup obiektów technicznych.
MIKROKONTROLER rozni sie od MIKROPROCESORA tym ze posiada interfejs pomocniczy(np. Pobranie informacji z obiektu-zmierzenie wielkosci za pmoca przetwornika A/C) i interfejs sterujacy(czyl np. Przetworniki A/C i A/C itp.)
Droga przesylu sygnalu :
2. Struktura sprzętowa typowego mikroprocesora (charakterystyka podstawowych układów)
Podstawowe układy mikroprocesora wchodzą w skład trzech zespołów funkcjonalnych:
Jednostki arytmetyczno – logicznej ALU,
Układu sterowania CU wraz z rejestrami rozkazów REG i dekoderów rozkazów ID,
Zespół rejestrów jednostki centralnej ( m.in. akumulator ACC , rejestr stanu SR, rejestr danych DR, rejestr adresów AR, wskaźnik stosu SP, rejestry pomocnicze R0-R7)
Zespoły są połączone ze sobą wewnętrzną szyną (magistralą) danych.Przykłady standardów szyn: ISA, PCI, SCSI, PCMCIA. Komunikacja z układami współpracującymi (pamięć, układ I/O) odbywa się przez:
Magistralę adresową, przez którą mikroprocesor wysyła adres pamięci lub urządzenia I/O
Magistralą danych, po której są przesyłane informacje (kody rozkazów i liczby) między jednostką centralną a układami otoczenia,
Magistralę sterującą, po której przez mikroprocesor są przesyłane sygnały określające rodzaje operacji, jaką ma wykonać układ współpracujący (np. odczyt lub zapis pamięci).
Mikroprocesor zawiera rejestry niedostępne programowo dla użytkownika które są wykorzystywane tylko przez układ sterowania. Dla użytkownika ważne są rejestry Akumulator, Rejestry uniwersalne, Rejestry specjalne(licznik rozkazów, stos, rejestr stanu i adresów.
Uniwersalny, wykorzystywany jako pamięć podręczna do przechowywania wyników częściowych obliczeń
Akumulator (jak uniwersalny) zawiera jeden z argumentów operacji, oraz wynik operacji arytmetyczno logicznych wykonywanych przez mikroprocesor,
Licznik rozkazów po każdym pobraniu kodu rozkazów zawartość licznika zwiększa się o 1 Długość licznika wyznacza maksymalną pojemnosc pamieci.
Stos, przechowuje zawartosc licznika rozkazow-doraźne przechowywowanie informacji. Informacja odłożona na stos jest pobierana jako pierwsza, Charakteryzuje się szybkim dostępem LIFO-last infin.first out przejscie do kilkunastu bajtow)
Wskaźnik stosu to stos umieszczony w pamięci RAM.
Rejestr stanu to zespół przerzutników przechowywujących wskaźnik stanu.
.
Podzaial rejestrow na grupy:
-16 bitowe(globalne)
-8 -16bitowe(globalne)(hi i Lo-mniej znaczace)
-4 zestawy(banki)rejestrow 8 i 16 bitowych
3. Struktura sprzętowa typowego mikrokontrolera (charakterystyka podstawowych układów).
Jednoukładowy (single chip microcomputer), posiadający CPU, urządzenia I/O, RAM, ROM, magistrale Adresową Danych, Sterującą, zdolny do samodzielnej pracy
MIKROKONTROLER charakteryzuje się:
wysoką niezawodnością działania
małymi wymiarami systemu
niskimi kosztami projektowania i realizacji systemów użytkowych.
Podstawowe rodzaje układów pamięci
PAMIECI POLPRZEWODNIKOWE dziela sie na:
RAM ( zapisywalne ) statyczna i dynamicznapmiec RAM (SRAM-o krotkim czasie dostepu i DRAM-tansze,ale obslug.proprzez jedn centralna-skomplikowana) jest to pamięć o dostępie swobodnym . Przechowywanie danych pomiarowych, programów, częściowych wyników obliczeń. Mikroprocesor może zapisywać i odczytywać z niej informacje. Zapisana a niej informacja znika po odłączeniu zasilania. Niemożliwe jest w układach mikroprocesorowych stosowanie tylko takich pamięci, ponieważ każdy zanik napięcia powodowałby wymazanie programu.
Elementarna komórka pamięci RAM stanowi dwu stabilny przerzutnik
prosty zbudowany z dwóch tranzystorów MOS.
Zapisywanie informacji 0 lub 1 polega na wprowadzeniu przerzutnika w odpowiedni stan przez podanie sygnału o niskim potencjale na jedną linie zapisu.
ROM, jest to pamięć stała, nie traci informacji po wyłączeniu zasilania, niezmazywalna programowo pamięć , ustalanie zawartości pamięci , jest integralnym składnikiem procesu produkcyjnego.
pamięć PROM, programowalne jednokrotnie Raz zapisany program niemożliwy jest do usunięcia
pamięć EPROM, programowalna wielokrotnie, za pomocą specjalnego programatora – kasowanie UV
pamięć EEPROM.-OTP, programowalna wielokrotnie – kasowanie elektryczne bit by bit
pamięć EEPROM-FLASH., programowalna wielokrotnie – kasowanie elektryczne 1 impuls
Podstawowe parametry:
pojemność –liczba bitów informacji jaką można wpisać,
organizacja –sposób rozłożenia bitów w słowie.
czas dostępu –charakteryzuje szybkość działania pamięci.
5. Mapa pamięci oraz rodzaje struktur mapy pamięci (architektura von Neumana i Harwardzka)
graficzne przedstawienie rozmieszczenia poszczegolnych pamieci w przestrzeni adresowej,usytuowaie rejestrow uniwersalnych;adresow obslugi przerwan;jesterow uk we/wy
a)Von Neumana
W architekturze Von Neumanna jest wolna realizacja trybu rozkazowego ponieważ istnieje wspólna szyna dla pamięci programudanych.
Przykladowa struktura mapy pamicimikrokontrolera z jednobitowa przestrzenia adresow
B) W architekturze Harwardzkiej szybkość jest znacznie większa ponieważ komunikacja z pamięcią programu i pamięcią danych następuje poprzez dwie osobne Magistrale.
Pamięć w architekturze harwardzkiej dizlei się na:
zewnętrzna pamięć danych (Dane, Układy zewnętrzne I/O, obszar niewykorzystany o…ooH-F…FFH), ewnętrznej pamięci danych (rejestry, dane, stos 0H - YH, pamięć danych adresowany pośrednio, rejestr specjalny SFR adresowany bezpośrednio Y+1H - ZH), pamięć programu (wewnętrzna i zewnętrzna pamięć programu0H-XH, zewnętrzna pamięć programu H+1H – FH).
6. Podstawowe tryby adresowania pamięci (sposoby ich wykorzystania w
programowaniu mikroprocesorów)
-adresowanie rejestrowe:bezposrednie( MOV A,00H) i posrednie(MOV A,@R0)
Tryby adresowania -sposob wskazywania na argumenty w trakcie wykonywnia instrukcji;określają miejsce gdzie umieszczony jest adres argumentu lub sposób w jaki jest on obliczany:
Implikowane -sklada sie tylko z kodu rozkazu(ograniczonymala iloscia rejestrow)(wewnetrzne)-dotyczny 1-bajtowych instrucji, dla ktorych operant jak i miejsce wyniku znajduje sie w stosie(wylacznie do wewnetrzych rejestrow-glownie do akumulatora)
bezpośrednie –w kodzie rozkazu zawarty jest rejest w ktorym przechowywany jest argument
pośrednie –kod rozkazu zawiera okreslenie rejestru lub rejestrow, w ktorych znajduje sie adres komorki
natychmiastowe=proste –operant jest podany w jasnej postaci w kodzie instrukcji.Trzeba znac wartosc argumentu-wylacznie dla wartosci stalych.
indeksowe -adres argumentu otrzymuje się przez dodanie adresu bezpośredniego, umieszczonego za rozkazem, do zawartości rejestru procesora np. RI. Zastosowanie przy adresowaniu tablic umieszczonych w pamięci
bazowe –nazwa używana dla innego sposobu użycia adr. indeksowego (przesunięcie w rejestrze indeksowym umieszczone zostaje za rozkazem).
Mapa pamięci oraz tryby adresowania mikrokontrolera SAB 80535,
graficzne przedstawienie rozmieszczenia poszczegolnych pamieci w przestrzeni adresowej,usytuowanie rejestrow uniwersalnych;adresow obslugi przerwan;jesterow uk we/wy
---- posrednio
!!!! bezposrednio
W mikrokontrolerze SAB80C535 można wyróżnić obszary pamięci:
– wewnętrzna pamięć ROM o pojemności 8/16 kB stała nie zmazywalna, ustalanie jej zawartości, jest integralnym składnikiem procesu produkcyjnego
– wewnętrzna pamięć danych RAM (górna i dolna) o pojemności łącznej 256B. jest to pamięć o dostępie swobodnym
– rejestry specjalne SFR (80H…FFH)
– zewnętrzna pamięć danych RAM (0000H…FFFFH)--64KB
– obszar pamięci CODE(najczesciej ROM -tylko do odczytu)
Pamięć programu może być zapisana jedynie gdy pokrywa się z obszarem zewnętrznej pamięci danych RAM. Przy czym obszar 03H do 93H w pamięci programu jest używany do programowania obsługi przerwań.
Tryby adresowania:
Adresowanie przez nazwę rejestrów dotyczy: Akumulatora A; Rejestrów roboczych R0..R7; Wskaźnika danych DPTR
Adresowanie bezpośrednie obszary pamięci: RAM o adresach 0H...7FH; SFR o adresach 80H...FFH; MOV A,#20
Adresowanie pośrednie zawartością rejestru cały obszaru pamięci użytkowej RAM (adresy 0H...FFH, przy czym adres zawarty jest w rejestrach R0 lub R1 z aktywnego banku rejestrów. MOV @R0,A
Adresowanie bitowe (bezpośrednie bitów) RAM o adresie 20H...2FH; części rejestrów specjalnych SFR
Adresowanie pośrednio – pamiec zewnetrzna RAM zawartością rejestru adresowego DPTR (MOV DPTR, #0110H lub MOV DPH,#01H i MOV DPL,#10#),. Istnieje też możliwość adresowania indeksowego.
Sposoby przedstawiania liczb ujemnych w mikroprocesorze.
Do reprezentacji liczb calkowitych stosowane sa kody stalopozycyjne:A)zapis znak-modol i B)zpis U2
AdA) Zapis znak-modol tworzy sie tak przez dodanie przed MSB(najbardziej znaczacym bitem) dodatkowego bitu znaku do zapisu NKB:0-liczba dodatnia ,a 1-liczb ujemna.
”0” ma podwojna reprezentacje 1000...000 lub 0000...000
AdB) Kod uzupełnienia do dwóch U2:
Zmiana znaku liczby polega na zanegowaniu wszystkich bitów i dodaniu arytmetycznie jedynki (np. 7=0111, -7=1001); „0” ma pojedyncza reprezentacje: 0000...000
Najbardziej znaczący bit liczby ma wagę -2n-1 i określa jej znak. Jeśli an-1=0, czyli liczba jest dodatnia,
zapis w kodzie uzupełnienia nie różni się od zapisu w kodzie binarnym. W 8-bitowym rejestrze można
umieścić liczbę w kodzie uzupełnienia z przedziału (-27=128 do 27-1=+127).
Zapis w tym kodzie ma kilka cech, które powodują, że jest on powszechnie stosowany w technice komputerowej, a mianowicie:
działania na liczbach w zapisie uzupełnienia do dwóch są analogiczne do liczb w kodzie binarnym;
zmiana znaku liczby polega na zanegowaniu wszystkich bitów i dodaniu jedynki (np. 7=0111, -7=1001);
liczby dodatnie mają podobną postać jak w kodzie binarnym.
Naturalny kod binarny, kod uzupełnień do dwóch, kod dwójkowo-dziesiętny (definicje, zastosowania, przykłady).
Kod binarny: Liczba jest zapisywana za pomocą 0 lub 1 jako ciąg o postaci: bn...bi...b1b0,
Wartość tak zapisanej liczby można wyznaczyć jako:
Pojedynczą cyfrę dwójkową nazywa się bitem. Bit b0 jest bitem najmniej znaczącym LSB zaś bit bn bitem najbardziej znaczącym MSB.
Kod BCD: binarno - dziesiętny w których porcjom czterech kolejnych bitów przyporządkowuje się cyfry dziesiętne od 0 do 9. Zastosowanie kodu BCD dla liczby dziesiętnej polega na zastępowaniu każdej cyfry dziesiętnej odpowiadającej jej porcji 4-bitowej, np. typ 8421
Kod uzupełnienia do dwóch:w kodzie tym liczby można zapisywać liczby całkowite ze znakiem. Liczbę n -bitową w tym kodzie można zapisać następująco:
najbardziej znaczący bit liczby ma więc wagę -2n-1 i określa jej znak. Jeśli an-1=0, czyli liczba jest dodatnia, zapis w kodzie uzupełnienia nie różni się od zapisu w kodzie binarnym.
10. Programowanie systemów mikroprocesorowych (cykl tworzenia
oprogramowania, języki i środowiska programowe, sposoby uruchamiania programów).
Etapy projektowania:
Projekt koncepcyjny
Określenie ogólnej koncepcji systemu
Podział zadań miedzy oprogramowanie i sprzęt
Schemat blokowy programu
Projekt techniczny sprzętu i oprogramowania
Schematy ideowe i montażowe mikrokontrolera i układów współpracujących
Opracować algorytmy w postaci sieci działań podprogramów
Napisać programy w assemblerze (najwięcej błędów)
Implementacja sprzętu i oprogramowania
Montaż układu (typowe rozwiązania – mało błędów)
Tłumaczenie programu na język wewnętrzny i wstępne uruchomienie (najwięcej błędów wychodzi)
Wpisanie programów do pamięci stałej
Uruchamianie systemu
Połączenie sprzętu i oprogramowania w jeden działający poprawnie układ
Testowanie systemu
Opracowanie dokumentacji systemu
Języki: Środowiska programowe
Wewnętrzne – zrozumiałe tylko dla danego mikroprocesora (binarny)
Symboliczne – stosuje symboliczne kody rozkazów i adresy mikroprocesora w postaci skrótów, przy uwzględnieniu jego struktury i listy rozkazów. Jego instrukcje to: instrukcje właściwe – tłumaczone na instrukcje mikroprocesora, pseudoinstrukcje – służą do sterowania procesem tłumaczenia assemblera na język wewnętrzny, makroinstrukcje – składające się z ciągu instrukcji wykonujących często spotykane polecenia. Pozwalają na optymalizację programu ze względu na budowę procesora, ale są żmudne.
wyższego poziomu (proceduralne) – stosowane do procesorów minimum 16-bitowych takie jak BASIC, C, PASCAL, gdzie instrukcja języka wysokiego poziomu jest reprezentowana przez ciąg instrukcji niskopoziomowych o parametrach (np. dot. Zarządzania pamięcią) dobieranych automatycznie. Ułatwia to znacznie pracę, umożliwia dedykowanie języka do konkretnych zastosowań, ale znacznie mniejsza wydajność pracy programu.
Sposoby uruchamiania programów
symulacja software-owa układu docelowego.
uruchamianie na systemie projektowo uruchomieniowym.
11.Rodzaje przerwań oraz zasady ich realizacji w systemie mikroprocesorowym.
Przerwanie jest to sposób pracy procesora polegający na tym, że pod wpływem sygnału zewnętrznego lub
pochodzącego z układu wewnętrznego procesora, procesor przerywa wykonywany aktualnie program
i przechodzi do wykonywania podprogramu związanego z sygnałem wywołującym przerwanie.
Po wykonaniu podprogramu obsługi przerwania procesor powraca do wykonywania przerwanego programu.
Aby móc powrócić do przerwanego programu, przed wejściem do programu obsługi przerwania, procesor przesyła na stos adres rozkazu, który ma być wykonywany po powrocie z przerwania.
Schemat obslugi przerwan:
-zdefiniowanyie syg.potwierdzajacego przyjecie przerwaniami
-zapamiet. Stanu jednostki centralnej(zawartosc akumulatora) i rejestr stanu
-zapamietanie adresu instrukcji, przy ktorej przrwano programatora
-pobranie do licznika programu adresu obslugi przerwanego
-wykonanie procedury obslugi przerwaniami-odtorzenie stanu CPU oraz zawartosci licznik prgramu
Czas reakcji na przerwanie uKontrol. Zalezy od mocy obliczeniowej
PODZIAL przerwan:
-sytuacje wyjatkowe(exception inteupts)o najwiekszym znaczeniu dla poprawnego dzialania systemu,ktorych obslugi nie można odlozyc na poniej(np. Dzielenie przez zero lub rzadanie obslugi przez urzadzenie zewnetrzne podlaczone do wejsca przerwan niemaskownych)
-maskowane przerwania sprzetowe(event interrupts)-generowane rzez urzadzenia peryferyjne(w ukladzie scalonym uk. Mikrokontrol.jak i przylaczone do niego z zewnatrz)MOga byc blokowane(maskowane) progamwo poprzez ustawienie specjalnego bitu
-przerwania programowe(za pomoca rozkazu)(software interrrups)-wykozystuja, w rozbudowanych uKontrolerach, system piorytetowej obslugi
-pulapki(traps).procedura obslugi polega na wyprowadzeniu zwartosci rejestrow i wybranych obszarow pamieci (moga byc softwerowe).zastosowanie.wywolaie procedur gobalnych dostepnych w calym programie
W przypadku jednoczesnego zgłoszenia kilku przerwań, obsługiwane jest przerwanie o najwyższym priorytecie związanym z określoną kolejnością obsługi.
Mikroprocesory mają więcej niż jedno wejście przerywające, część z nich może być nie maskowana.
13.Budowa i programowanie przetwornika A/C
Przetwornik a/c jest wewnętrznym układem mikrokontrolera przeznaczonym do przetwarzania sygnałów z postaci analogowej 0..+5V DC na cyfrową 8-bitową.
Wejście przetwornika a/c stanowi analogowy multiplekser umożliwiający pomiar napięciowego sygnału analogowego na 8 różnych kanałach z szybkością 13-15 cykli maszynowych Cp=19,5mV
Zmiana wartości mierzonego napięcia na odpowiadający kod cyfrowy dokonywana jest metodą kompensacji wagowej z wykorzystaniem matrycy kondensatorów .Struktura wewnętrzna przetwornika kompensacyjnego zawiera komparator porównujący mierzone napięcie Ux i napięcie wzorcowe UREF oraz źródło napięcia wzorcowego UREF. Cykl przetwarzania związany jest ze zmianą napięcie wzorcowe UREF i porównania w komparatorze jego wartości z mierzonym napięciem Ux .
Przetwornik a/c programujemy przy użyciu trzech rejestrów specjalnychSFR
.
gdzie
BD,CLK –nie używane podczas programowania
BSY –flaga stanu, tylko do odczytu, zmienianym sprzętowo. BSY=0 –gotów;1 –zajęty.
ADM –określa rodzaj przetwarzania. ADM=1 –tryb ciągłego pomiaru; ADM=0 –pomiar pojedynczy, każdy pomiar musi być uruchamiany programowo.
MX2...MX0 –wybór numeru kanału pomiarowego.
W rejestrze ADDAT przechowywana jest całkowita wielokrotność poziomów kwantowania.DAPR (adres 0DAH) - wybór zakresu przetwarzania.
$include(reg517.inc)
org 100h
anl adcon0,#11110000b ;ustawienie adcon
orl adcon0,#00000110b
start:
mov dapr,#0 ;ustawienie zakresu pomiarowego
jb bsy,$ ;oczekiwanie na zakonczenie programu
mov a,addat
cpl a
mov p1,a
sjmp start
end
Przetwornik A/C poprzedzony jest 8-wejściowym, analogowym multiplekserem ,co oznacza możliwość pomiaru napięcia w 8 różnych kanałach.
14. Zasady współpracy mikroprocesora z urządzeniami zewnętrznymi (zasada
przeglądania rejestrów stanu, współpraca inicjowana przerwaniami, tryb bezpośredniego dostępu do pamięci).Sposoby realizacji wymiany danych pomiędzy procesorem/pamięcią i I/O:
programowe sterowanie I/O z przeglądanie rejestrów (ang. polling),
obsługa I/O w przerwaniu,
bezpośredni dostęp do pamięci przez kanał DMA (ang. Direct Memory Access).
15Liczniki w układach mikroprocesorowych
Liczniki mogą pracować zarówno jako liczniki zliczające impulsy zewnętrzne, doprowadzone do wejść układu (rejestrator zdarzeń), jak i czasomierze (także programowalne) zliczające wewnętrzne impulsy zegarowe (programowalny rejestrator impulsów).
Jeśli liczniki pracują jako czasomierze (zliczają impulsy wewnętrzne), to zawartość licznika w każdym cyklu maszynowym zwiększana jest o 1.
Jeśli natomiast liczniki realizują funkcje zliczania impulsów zewnętrznych, to odpowiednie wejście próbkowane jest w trakcie każdego cyklu maszynowego. Jeśli przy dwóch kolejno po sobie następujących próbkach wykryta zostanie zmiana poziomu z 1 na 0, to w czasie następnego cyklu maszynowego zawartość licznika zwiększona zostanie o 1.
Ponadto w tym trybie pracy spełnione musza być następujące warunki:
-każdy stan logiczny zliczanych impulsów musi trwać przez co najmniej jeden cykl maszynowy,
-Maksymalna częstotliwość zliczanych impulsów nie może być większa niż fosc/24 (w SAB537) (ponieważ do wykrycia zmiany na wejściu potrzebne są dwa cykle maszynowe).
Przy pomocy liczników można zbudować także modulator szerokości impulsów PWM.