Porównaj architektury procesorów rdzeniowych: Harvard, mod Harvard, von Neumana. Podaj przykłady mikroprocesorów dla każdej architektury.
Powyższy podział jest podziałem ze względu na typ mapy pamięci. Mapa pamięci (memory map) w sposób graficzny przedstawia rozmieszczenie poszczególnych pamięci w przestrzeni adresowej jednostki centralnej. 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).
Architektura Harvardzka -
opiera się na użyciu dwóch oddzielne układów pamięci (osobny układ do operacji na rozkazach i osobny do operacji na danych) i dwóch magistral łączących te pamięci z procesorem, dzięki czemu w trakcie pobierania argumentów wykonywanej właśnie instrukcji można równocześnie zacząć pobieranie następnego słowa rozkazowego (pre-fetch). Skraca to cykl rozkazowy i zwiększa szybkość pracy. Obszary adresowe pamięci danych i programu (wewnętrznych i czasami zewnętrznych) są rozdzielone. Pociąga to za sobą niejednoznaczność adresów, ponieważ pod tym samym adresem jednostka centralna widzi pamięć RAM i ROM.
W tym przypadku stosuje się inne rozkazy dla pamięci programu i inne dla pamięci danych. Ponadto magistrala danych i rozkazów mają różną szerokość (długość słowa).
Separacja pamięci danych od pamięci rozkazów sprawia, że architektura harwardzka jest obecnie powszechnie stosowana w mikrokomputerach jednoukładowych, w których dane programu są najczęściej zapisane w nieulotnej pamięci ROM (EPROM/EEPROM), natomiast dla danych tymczasowych wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna).
W architekturze typu Harvard komputer ma możliwość jednoczesnego dostępu do danych oraz do rozkazów programu co bardzo zwiększa jego efektywność. Procesory o takiej strukturze stosowane są przede wszystkim w obróbce sygnałów, w tak zwanych procesorach DSP (Digital Signal Processing ).
Architektura harwardzka jest także stosowana przy dostępie procesora do pamięci cache.
Przykłady mikroprocesorów:
AVR
DSP
Architektura von Neumanna -
rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku przez Johna von Neumanna stworzonej wspólnie z Johnem W. Mauchly'ym i Johnem Presper Eckertem.
Polega na ścisłym podziale komputera na trzy podstawowe części:
procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna)
pamięć komputera (zawierająca dane i sam program)
urządzenia wejścia/wyjścia
System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien:
mieć skończoną i funkcjonalnie pełną listę rozkazów
mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych
dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora
informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.
Architektura Von-Neumanna cechuje się jednolitą przestrzenią adresową, w której wszystkie pamięci, rejestry i układy we/wy są umieszczone w jednej, wspólnej przestrzeni adresowej. W architekturze tej zakłada się, że podział przestrzeni adresowej na pamięć programu, pamięć danych oraz obszar we/wy jest czysto umowny i zależy wyłącznie od rozmieszczenia tych elementów w obszarze adresowym podczas projektowania systemu. Mk ma jedną szynę danych wspólną dla danych i programu
System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać.
Architektura von Neumanna tworzy w pewnym miejscu tzw. wąskie gardło ograniczające moc procesora. Tym miejscem jest szyna, czyli kanał, przez który procesor komunikuje się z pamięcią i urządzeniami zewnętrznymi. Rozważmy (często spotykaną) instrukcję procesora, która pobiera jedno słowo danych z pamięci. Taka instrukcja wymaga:
podania pamięci adresu tej instrukcji,
pobrania kodu operacji z pamięci,
podania pamięci adresu danej,
pobrania danej z pamięci,
podania pamięci adresu następnej instrukcji itd.
W architekturze harwardzkiej adres danej można podawać do pamięci danych już w czasie podawania adresu następnej instrukcji pamięci programu. Taka architektura ułatwia przetwarzanie potokowe.
Rozwiązaniem jest zastosowanie pamięci podręcznej cache.
Programowanie jest ułatwione, gdyż dostęp do danych, programu i urządzeń we/wy odbywa się przy użyciu zunifikowanych rozkazów wykorzystujących te same tryby adresowania. Zatem nie istnieje tu potrzeba wprowadzania specjalnych rozkazów pozwalających na przepływ danych pomiędzy pamięcią ROM i RAM.
Przykłady mikroprocesorów:
ARM
Zmodyfikowana architektura harwardzka -
jest rozwiązaniem pośrednim, starającym się połączyć zalety architektury harwardzkiej i Von-Neumanna. Obszary pamięci ROM i RAM są rozdzielone, ale charakteryzują się taką samą długością słowa. Wykorzystują one wspólne magistrale danych i adresową.
Dzięki multiplekserom MUX i odpowiedniej organizacji magistrali pamięci ROM i RAM możliwe jest z pewnymi ograniczeniami przesyłanie stałych z pamięci ROM do rejestrów i pamięci RAM. Jedynym rejestrem niewidocznym jako komórka pamięci RAM jest rejestr akumulatora A.
Przykłady mikroprocesorów:
rodzina mikrokontrolerów 8051
Porównaj architektury układów mikroprocesorowych na podstawie modelu pamięci.
Architektura von Neumanna
Architektura Harvard
Architektura zmodyfikowana Harvard
Opisz i porównaj CISC i RISC.
Podział na CISC i RISC jest podziałem, który można uzyskać korzystając z kryterium typu listy instrukcji.
RISC (Reduced Instruction Set Computers) -
Architektura RISC, czyli o zredukowanej liście instrukcji, odznacza się następującymi cechami:
• procesor jest zbudowany zgodnie z architekturą harwardzką,
• procesor wykorzystuje przetwarzanie potokowe (pipeling) w celu zwiększenia szybkości wykonywania programu,
• zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogonalności (symetrii).
W przetwarzaniu potokowym jednostka centralna dysponuje pobranymi na zapas instrukcjami, które będą kierowane do współbieżnego wykonania w jej poszczególnych jednostkach wykonawczych. W procesorze tego typu zamiast prostego rejestru instrukcji stosuje się pamięć FIFO (first-in first-out), która gromadzi kolejkę instrukcji. Instrukcje pobierane z pamięci programu do kolejki w cyklu pre-fetch opuszczają ją w takiej samej kolejności i są kierowane do poszczególnych układów wykonawczych.
Jej podstawowe cechy to:
Zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt, podczas gdy w procesorach CISC sięga setek. Upraszcza to znacznie dekoder rozkazów.
Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. Ponadto wprowadzono tryb adresowania, który ogranicza ilość przesłań - większość operacji wykonuje się wg schematu: [2].
Ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Przede wszystkim do przesyłania danych pomiędzy pamięcią, a rejestrami służą dedykowane instrukcje, które zwykle nazywają się load (załaduj z pamięci), oraz store (zapisz do pamięci); pozostałe instrukcje mogą operować wyłącznie na rejestrach. Schemat działania na liczbach znajdujących się w pamięci jest następujący: załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci.
Zwiększenie liczby rejestrów (np. 32, 192, 256, podczas gdy np. w architekturze x86 jest zaledwie 8 rejestrów), co również ma wpływ na zmniejszenie liczby odwołań do pamięci.
Dzięki przetwarzaniu potokowemu (ang. pipelining) wszystkie rozkazy wykonują się w jednym cyklu maszynowym[3], co pozwala na znaczne uproszczenie bloku wykonawczego, a zastosowanie superskalarności także na umożliwienie równoległego wykonywania rozkazów. Dodatkowo czas reakcji na przerwania jest krótszy.
Pojęcie ortogonalności oznacza unifikację instrukcji według następujących zasad:
każda instrukcja może operować na dowolnym rejestrze roboczym. Procesor nie ma więc wyróżnionych rejestrów, które są specjalizowane do wykonywania określonych rodzajów operacji,
każda instrukcja może wykorzystywać dowolny tryb adresowania argumentów, nie ma ukrytych związków między instrukcjami (efektów ubocznych), które powodowałyby nieprzewidziane reakcje systemu w zależności od kontekstu użycia rozkazów w programie,
kody rozkazów i formaty instrukcji są zunifikowane. W szczególności wszystkie instrukcje zajmują w pamięci programu taką samą liczbę bajtów.
Przykłady rodzin mikroprocesorów o architekturze RISC:
Intel 8086
Intel 8096
IBM 801
PowerPC
MIPS
Alpha
ARM
Motorola 88000
AMD 29000
SPARC
PA-RISC
Atmel_AVR
CISC (Complex Instruction Set Computers) -
nazwa architektury mikroprocesorów o następujących cechach:
Występowanie złożonych, specjalistycznych rozkazów (instrukcji) - które do wykonania wymagają od kilku do kilkunastu cykli zegara
Szeroka gama trybów adresowania
Przeciwnie niż w architekturze RISC rozkazy mogą operować bezpośrednio na pamięci (zamiast przesłania wartości do rejestrów i operowania na nich)
Powyższe założenia powodują iż dekoder rozkazów jest skomplikowany
Istotą architektury CISC jest to, iż pojedynczy rozkaz mikroprocesora, wykonuje kilka operacji niskiego poziomu, jak na przykład pobranie z pamięci, operację arytmetyczną i zapisanie do pamięci.
Przykłady rodzin procesorów o architekturze CISC to:
System/360
VAX
PDP-11
x86
Motorola 68000
Obecnie popularne procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez RISC-owy blok wykonawczy. W praktyce okazuje się że rozwiązanie takie (pomimo wielu znaczących wad) jest podejściem znacznie bardziej wydajnym (szczególnie że RISC-owy blok wykonawczy jest znacznie bardziej nowoczesny od architektury CISC widocznej dla programisty).
Pamięć wewnętrzna w 80C51
Mikrokontroler 8051 posiada obszar 4kB pamięci programu ROM programowanej maską i 256 bajtową przestrzeń adresową pamięci RAM. Wewnętrzna pamięć danych RAM podzielona jest na dwa bloki:
- dolna pamięć RAM zawierająca obszar czterech banków pamięci, obszar bitów adresowanych bezpośrednio i ciągły obszar pamięci RAM tzw. obszar użytkownika oraz
- górna pamięć RAM zawierająca obszar rejestrów specjalnych.
W obszarze zarezerwowanym dla czterech banków pamięci umieszczany jest stos programu. Może on być umieszczony w dowolnym miejscu, przez zapis odpowiedniego adresu do rejestru SP o adresie 81h, będącego wskaźnikiem stosu. Wykonanie resetu mikrokontrolera ustawia wartość początkową wskaźnika stosu SP równą 07h. SP należy do bloku rejestrów specjalnych, a jego
zawartość wskazuje na ostatnie zajęte słowo stosu. Wskaźnik stosu jest inkrementowany przed każdym zapisem na stos poleceniem: PUSH A i dekrementowany po każdym odczycie poleceniem POP A.
Pamięć programu przechowuje kody operacji przeznaczonych do wykonania przez mikroprocesor, może także służyć do przechowywania stałych używanych w programie. Pamięć
programu adresowana jest przez 16-bitowy licznik rozkazów (PC). Mikrokontroler 8051 może także korzystać z zewnętrznej pamięci programu o pojemności do 64kB. To, z której z tych pamięci
pobierane są rozkazy zależy od stanu wyprowadzenia /EA. W przypadku korzystania tylko z wewnętrznej pamięci programu, wyprowadzenie /EA musi być ustawione w stan wysoki, przed
połączenie tego wyprowadzenia z zasilaniem układu (przed rozpoczęciem pracy układu). Jeśli pojemność wewnętrznej pamięci programu jest niewystarczająca, część programu może być
umieszczona w pamięci zewnętrznej. Wówczas dopóki wartość licznika rozkazów nie przekracza rozmiaru wewnętrznej pamięci programu, rozkazy pobierane są z pamięci wewnętrznej.
Przekroczenie przez licznik rozkazów wartości 0FFFH powoduje pobieranie rozkazów z zewnętrznej pamięci programu. Jeśli mikrokontroler ma korzystać wyłącznie z zewnętrznej pamięci programu, wyprowadzenie /EA musi być ustawione w stan niski, przez zwarcie tego wyprowadzenia z masą układu.
PC zawiera adres aktualnego rozkazu przeznaczonego do wykonania. Rozkaz ten jest pobierany z pamięci do rejestru rozkazów (istnieje możliwość odczytu wartości tego rejestru, ale nie jest on dostępny dla zapisu). Na podstawie zawartości rejestru rozkazów, dekoder rozkazów steruje wyborem źródła argumentu, miejsca umieszczenia wyniku, funkcjami jednostki arytmetyczno - logicznej itp. - w ten sposób mikroprocesor wykonuje zadaną operację. Jeżeli nie jest wykonywany rozkaz skoku, to zawartość licznika rozkazów jest inkrementowana po odczycie każdego bajtu z pamięci programu. Reset mikrokontrolera powoduje ustawienie licznika rozkazów w stan 0000h.
Mapy pamięci mikrokontrolera 8051 a) pamięci danych, b) pamięci programu.
Blok rejestrów specjalnych (SFR) znajduje się w obszarze pamięci danych mikrokontrolera o adresach 128 - 240 (80h - F0h). Obszar rejestrów SFR mikrokontrolera '51 jest wykorzystywany dwojako - z jednej strony umieszczone są w nim wszystkie (za wyjątkiem licznika rozkazów i czterech banków rejestrów R0 - R7) rejestry sterujące pracą mikrokontrolera lub wykorzystywane
bezpośrednio przy wykonywaniu programu; z drugiej zaś strony rejestry SFR stanowią rodzaj interfejsu pomiędzy mikroprocesorem a układami peryferyjnymi umieszczonymi wewnątrz mikrokontrolera. Wszystkie operacje sterowania wewnętrznymi układami peryferyjnymi oraz przesyłania danych między nimi a CPU, odbywają się właśnie za pośrednictwem rejestrów SFR. Dostęp do każdego z tych rejestrów możliwy jest wyłącznie w trybie adresowania rejestrowego.
Ważniejsze rejestry specjalne:
ACC - akumulator, jeden z najczęściej wykorzystywanych rejestrów, gdyż obsługuje większość operacji arytmetycznych, logicznych, skoków warunkowych i wiele innych
B - dodatkowy rejestr, wykorzystywany w trakcie operacji mnożenia (MUL) i dzielenia (DIV)
PSW - rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskaźników):
PSW.1=F1 - począwszy od 8052, flaga którą może zdefiniować użytkownik
PSW.2=OV (Overflow) - przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2)
PSW.3=RS0 (Register Bank Switch) młodszy bit numeru banku
PSW.4=RS1 (Register Bank Switch) starszy bit numeru banku
PSW.5=F0 - flaga ogólnego zastosowania
PSW.6=AC (Auxiliary Carry) - przeniesienie z młodszej do starszej tetrady (istotne w rozkazach arytmetycznych BCD)
PSW.7=CY (Carry) - przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu NKB)
Porty P0-P3 - wykorzystywane są do komunikacji ze światem zewnętrznym (wszelkimi urządzeniami peryferyjnymi), niektóre mają jeszcze dodatkowe funkcje
P0 i P2 - mogą zostać wykorzystanie jako wyprowadzenia szyny systemowej mikrokontrolera
P1 - portu ogólnego zastosowania
P3 - port posiada wyspecjalizowane linie (w SRF przedstawiane jako bity)
RD - odczyt pamięci danych
WR - zapis pamięci danych
T0,T1 - wejścia timerów zewnętrznych (zliczanie impulsów trybie pracy timerów jako liczniki)
INT0,INT1 - wejścia zewnętrznych przerwań
TxD, RxD - wysyłanie (Transmit) i odbieranie (Receive) danych (Data) przy transmisji szeregowej
Sterowanie przerwań
IE - zezwolenia dla przerwań (Interrupt Enable)
EA - ogólne zezwolenie dla przerwań
ES - zezwolenie dla przerwań od transmisji szeregowej
ET0, ET1 - zezwolenie dla przerwań od timerów
EX0, EX1 - zezwolenie dla przerwań zewnętrznych
IP - priorytety przerwań (Interrupt Priority)
PS - priorytet dla przerwań od transmisji szeregowej
PT0, PT1 - priorytet dla przerwań od timerów
PX0, PX1 - priorytet dla przerwań zewnętrznych
TCON - tylko młodsze 4 bity
IE0, IE1 - flagi przerwań zewnętrznych (zgłoszenie zewnętrznego przerwania)
IT0, IT1 - sposób zewnętrznego przerwania (0 - poziom niski, 1 - opadające zbocze)
DPTR - 16-bitowy wskaźnik adresu danych
DPH - starszy bajt wskaźnika
DPL - młodszy bajt wskaźnika
SP - wskaźnik stosu (Stack Pointer)
Opisz 8-bitowe ALU, wymień podstawowe mikrooperacje realizowane przez tą jednostkę.
Jednostka arytmetyczno-logiczna (z ang. Arithmetic and Logical Unit lub Arithmetic Logic Unit, ALU) to jedna z głównych części procesora, prowadząca proste operacje na liczbach całkowitych.
Typowy symbol ALU: A i B - operandy; R - wyjście; F - wejście z jednostki kontrolnej; D - status wyjścia
Z jednostką arytmetyczno - logiczną współpracują dwa rejestry bloku rejestrów specjalnych:
akumulator (ACC) - E0h i rejestr B - F0h. Akumulator najczęściej zawiera jeden z operandów i zapisywany jest w nim wynik operacji, rejestr B jest natomiast wykorzystywany przy operacjach mnożenia i dzielenia. Jednostka arytmetyczno - logiczna może wykonywać następujące operacje na argumentach ośmiobitowych: dodawanie, dodawanie z przeniesieniem, odejmowanie z pożyczką, inkrementacja, dekrementacja, mnożenie w naturalnym kodzie binarnym dające 16 - bitowy wynik, dzielenie w naturalnym kodzie binarnym dające 8 - bitowy wynik i 8 bitową resztę, iloczyn logiczny, suma logiczna, suma modulo 2, zerowanie i negacja akumulatora. Jednostka arytmetyczno - logiczna może wykonywać operacje logiczne również na pojedynczych bitach. Dla tych operacji akumulatorem jest bit przeniesienia C - D7h słowa stanu PSW - D0h. W skład tego rejestru wchodzi 8 bitów nazywanych znacznikami z których cztery informują o przebiegu wykonania operacji arytmetyczno - logicznych. I tak:
Tab. 1.1 Bity rejestru specjalnego PSW
PSW.0 (bit 0) - oznaczany jako P, to znacznik parzystości, ustawiany automatycznie w każdym cyklu maszynowym wskazuje na to czy liczba jedynek (na poszczególnych) pozycjach bitowych w akumulatorze A jest parzysta (P=1) czy nieparzysta (P=0).
PSW.2 (bit2) - oznaczany jako OV, to znacznik przepełnienia (nadmiaru), ustawiany w wyniku wykonania dodawania lub odejmowania, a przy operacji dzielenia ustawienie go wskazuje na dzielenie przez zero.
PSW.6 (bit 6) - oznaczany jako AC, to znacznik przeniesienia pomocniczego, do którego wpisywane jest przeniesienie lub pożyczka z bitu 3, wykorzystywany jest przy korekcji dziesiętnej liczb.
PSW.7 (bit 7) - znacznik przeniesienia oznaczany jako C, do którego następuje przeniesienie z najbardziej znaczącego bitu w wyniku wykonania operacji logicznych przesunięć liczb 8-bitowych lub w wypadku przekroczenia wyniku poza zakres liczb zapisanych w naturalnym kodzie dwójkowym (>255).
Mikrooperacja - elementarna czynność układu sekwencyjnego, którą układ ten może zrealizować bez potrzeby rozkładania na czynności prostsze.
Oznaczenia:
→ kier. transferu A → B
( ) część rejestru MBR(H), MBR(L)
: warunek f. sterującej P: A → B
, oddzielenie mikrooperacji A → B, PC ← PC + 1
პ Przesłanie wielobitowe
Mikrooperacje:
TRANSFERU
ARYTMETYCZNE
LOGICZNE
NA BITACH
PRZESUNIĘĆ
Omów system przerwań 80c51
Mikrokontroler 8051 jest wyposażony w priorytetowy, dwupoziomowy układ przerwań. Układ przerwań jest specjalizowaną strukturą logiczną, której zadaniem jest monitorowanie stanu
wskaźników przerwań i zgłaszanie faktu ustawienia określonego wskaźnika do układu sterowania. W mikrokontrolerze 8051 przerwanie może zostać wywołane przez jeden z pięciu wskaźników. Cztery ze wskaźników umieszczone są w rejestrze TCON - 88h.
Piątym źródłem przerwania jest układ transmisji szeregowej. Przerwanie to jest zgłaszane przez ustawienie dowolnego z bitów RI - 98h lub TI - 99h rejestru SCON - 98h.
Każde przerwanie ma przydzielony adres pod, którym powinna być umieszczona procedura obsługi.
Znaczniki te są umieszczone w rejestrach TCON i SCON:
W przypadku przerwań zewnętrznych i od układów czasowych, wskaźniki przerwania są sprzętowo zerowane po przyjściu zgłoszenia przerwania (za wyjątkiem sytuacji, gdy przerwanie zewnętrzne jest zgłaszane niskim poziomem). Wskaźniki przerwania z układu transmisji szeregowej muszą być zerowane programowo przez procedurę obsługi przerwania, gdyż sprzętowe zerowanie
uniemożliwiłoby określenie, który ze wskaźników (RI czy TI) przerwanie wywołał.
Naturalny priorytet przerwań 80c51:
Przyjęcie przerwania powoduje sprzętową generację rozkazu LCALL z adresem procedury obsługi przerwania, właściwym dla każdego przerwania. Przyjęcie przerwania jest możliwe jednak tylko wtedy, gdy obecnie nie jest wykonywane przerwanie o równym lub wyższym priorytecie, trwa aktualne wykonywanie jakiegoś rozkazu (układ obsługi
przerwania musi poczekać do zakończenia wykonywania tego rozkazu) lub jeżeli jest wykonywany adres powrotu z procedury obsługi przerwania RETI, rozkaz dostępu do rejestrów IE i IP, lub jakikolwiek rozkaz po nich wykonywany.
Budowa pamięci wewnątrzprocesorowych. Organizacja pamięci danych w 80C51
Opisz środowisko pracy mikrokontrolera 80C51 zawierające oprócz pamięci dekoder adresu i inne układy we/wy.
Porty 8051
P0:
Wykonanie dostępu do pamięci zewnętrznej powoduje zapisanie samych jedynek do rejestru P0, niszcząc tym samym przechowywaną w nim informację. Z tego powodu korzystanie z pamięci zewnętrznej wyklucza w zasadzie możliwość korzystania z P0 jako wejścia - wyjścia. Każdą linię portu P0 można obciążyć ośmioma wejściami TTL-LS.
P1:
Port P1 jak i porty P2 i P3 posiadają wewnętrzne, stałe wartości rezystorów pullup, przez co nazywane są portami pseudo - dwukierunkowymi. Kiedy porty skonfigurowane są jako wejścia,
rezystory pullup stają się źródłem prądowym dla przyłączonego obciążenia. Wszystkie zatrzaski portów po resecie ustawiane s& w stan 1. Gdy do zatrzasku portu zostanie zapisana warto'$ 0,
zatrzask ten należy ponownie ustawić w stan 1 - by port mógł nadal pracować jako wejście. Linie układu P1 nie pełnią żadnych dodatkowych funkcji. Można je obciążać czterema wejściami TTL-LS.
P2:
Zasada działania linii portu P2 jest taka sama jak portu P1, pod warunkiem, że nie są wykorzystywane dodatkowe funkcje tego układu (stan niski na linii sterowanie). Podczas dostępu do
pamięci zewnętrznej, port P2 pełni rolę bardziej znaczącej części szyny adresowej (A8-A15). W przypadku realizacji dostępu do zewnętrznej pamięci danych przy użyciu rejestrów indeksowych R0 i R1 mikroprocesor ustawia tylko młodsze osiem bitów adresu, a stan portu P2 nie zmienia się. Linie portu P2 można obciążać czterema wejściami TTL-LS.
P3:
W zależności od tego czy realizowana funkcja dodatkowa jest wyjściem (TXD, /RD, /WR), czy wejściem (pozostałe oprócz RXD) lub pełni obie funkcje (RXD), różna jest struktura linii portu.
Linie portu P3 można obciążać czterema wejściami TTL-LS.
Opisz budowę (narysuj schemat blokowy) i sposób konfiguracji Timerów, podaj przykład dla Timera 1 w trybie 0 , sterowany z zewnętrznie i odmierzający czas 20ms.
Ustawić timer0 w tryb 1 aby odliczał 50ms i narysować schemat blokowy
Timery - budowa i sposób sterowania. Przykład dla trybu 1, sterowanie wewnętrzne, praca jako licznik.
Timery - sterowanie, tryby pracy, schematy. Ustawić Timer 0 w trybie 1, tak aby odmierzał 50ms.
Timer1 w trybie 0, sterowany zewnętrznie odmierzający czas 20ms
Przyjmijmy f rezonatora = 11,0592 MHz.
Wzór:
Ponieważ w trybie 0 timer może liczyć do 8192 = 8,89ms nie można bezpośrednio odmierzyć 20 ms.
Ponieważ możemy dokładnie odmierzyć 5ms można zastosować pętlę, w której 4 razy odmierzymy 5ms.
Aby odliczyć 5ms timer musi liczyć do 4608. Wynik ten jest dokładny i można go zapisać jako 144 * 32. Aby timer odliczył wartość 4608, należy wpisać początkowe wartości:
- TH1 = 256 - 144
- TL1 = 0
Timer0 w trybie 1, 50ms
Pamięć Flash - budowa i działanie (polecenia read,write, delete) parametry statyczne i dynamiczne.
Pamiec ta posiada nastepujace własciwosci ( Am21F010 )
• pojedyncze zasilanie, 5V +-10% dla czytania, zapisu i operacji kasowania programu,
• maksymalny czas dostepu 45ns,
• niskie zuDycie energii, maksymalnie 30mA na odczyt i 50mA na programowanie oraz czyszczenie, mniej
niD 25A podczas trybu standby,
• elastyczna architektura oparta na sektorach, 8 zunifikowanych sektorów, wszystkie kombinacje sektorów
moga byc czyszczone,
• moDliwosc wymazania całego chipu,
• ochrona sektorów przed zapisem,
• wsparcie sprzetowe dla zablokowania i odblokowania programowania i czyszczenia dla wszystkich
kombinacji sektorów,
• wbudowany algorytm czyszczenia automatycznie przeprogramuje i czysci chip lub wszystkie kombinacje
wybranych sektorów,
• wbudowany algorytm programowania automatycznie programujacy i sprawdzajacy dane z zadanego
adresu,
• minimum 100000 gwarantowanych cykli programowania i czyszczenia,
• programowe metody detekcji konca cyklu programowania i czyszczenia.
Symbol logiczny pamiiecii FLASH
A0-A16 = 17 Adresses
Dqo-DQ7 = 8 Data Inputs/Outputs
CE# = Chip Enable
OE# = Output Enable
WE# = Write Enable
Vcc = +5.0 V Single Power
Supply
Vss = Device Ground
NC = Pin Not Connected
Internally
Sektorowa architektura pamieci pozwala na czyszczenie, czy ponowne programowanie
wybranych sektorów pamieci bez wpływu na pozostałe sektory. Sprzetowa ochrona danych
wykrywa niski poziom napiecia zasilania i wstrzymuje proces zapisywania podczas zmiany
napiecia. Pamiec moHna przełaczyc w tryb standby, w celu znacznej redukcji pobieranej mocy.
Szczególna zaleta pamieci błyskowych (FLASH) w stosunku do pamieci EEPROM jest krótki
czas kasowania i zapisu. Do programowania i kasowania pamieci byskowych potrzebne jest
podwyDszone napiecie ,5 - 3,5V, które w zalenoci od typu ukadu mo#e byc podawane z
zewnatrz lub wytwarzane przez wbudowana przetwornice.
• Pamiec ta posiada tryb autoselect - umo#liwia on identyfikacje urzdzenia oraz
producenta, a tak#e weryfikacje chronionych sektorów przez kody
identyfikacyjne podane na DQ7-DQ0.
• Ten tryb jest niezbedny dla urzadzen programujcych, aby mogły
wykorzystacdpowiedni algorytm programujacy. Ten tryb mo#e byc tak#e
wykorzystany w systemie przez rejestr komend.
• Programowanie pamieci składa sie z 4 cykli szyny (rozkaz PROGARM). Na
sekwencje rozkazowa składa sie rozkaz ustawiajacy tryb programowania
poprzedzony zapisem 2 cykli odblokowujacych. Dane i adres swysyłane w
nastepnej kolejnoci. Operacja ta inicjuje wykonanie wbudowanego algorytmu
programowania.
• Sekwencja kasowania pamieci składa sie z 6 cykli szyny. W jej skad wchodzi rozkaz
ustawienia (set-up) poprzedzony zapisem 2 cykli odblokowujacych. Po nich
nastepuja kolejne 2 cykle odblokowujace zapis i rozkaz kasowania, który
uruchamia wbudowany algorytm kasowania.
32