Współczesne technologie informacyjne
Przetwarzanie:
sekwencyjne
współbieżne
równobieżne
rozproszone
zespołowe
Przetwarzanie z punktu widzenia wykorzystania procesora i
innych zasobów komputera
sekwencyjne: instrukcja po instrukcji zgodnie z ich kolejnością
w programie
równolegle: 2 rodzaje przetwarzania równoległego na
poziomie instrukcji:
równoległość danych
równoległość funkcji
inne sposoby zrównoleglania obliczeń:
przetwarzanie potokowe
przetwarzanie wektorowe
strumieniowe: jednostrumieniowe
wielostrumieniowe
wątkowe: proces nadrzędny generuje watki wykonywane
współbieżnie w przestrzeni
zasobów procesu
Sprzęt: architektura fizycznaklasyczny model von Neumana:
procesor(jednostka centralna)
pamięć
obsługa we/wy
sterowanie(obsługa zdarzeń)
Podstawowe definicje:
System mikroprocesorowy to sprzęt (jednostka centralna, układy
komunikacji i sterowania) i oprogramowanie.
Mikroprocesor
Układ scalony techniki mikroprocesorowej, służący do
przetwarzania danych jako jednostka centralna komputera.
Mikroprocesor komunikuje się z otoczeniem (innymi podzespołami)
system mikroprocesorowego) za pomocą trzech zbiorów linii(do
przekazywania sygnałów cyfrowych) zwanych szynami
(magistralami). Są to:
szyna danych (data bus),
szyna adresowa (address bus),
szyna sterująca (control bus).
Razem tworzą one magistrale systemowa (rys. 1uproszczony
schemat procesora z magistrala systemowa (CU – jednostka
sterująca). Na rys.: Rejestry ALU<>szyna danych
CU<
>
Szyna ster. Szyna adres.
Mikrokontroler to układ scalony tworzący kompletny system
mikroprocesorowy. W jego strukturze są integrowane:
jednostka centralna
pamięć
urządzenia peryferyjne (porty do komunikacji szeregowej,
równoległej, sterownik przerwań, układy czasowe itp.)
Inna nazwa: mikrokomputer jednoukładowy.
Mikrokontroler komunikuje się z otoczeniem za pośrednictwem
urządzeń peryferyjnych.
Określenie związane z szerokością szyny danych – definicja typu
mikroprocesora/mikrokontrolera: 4, 8, 16, 32bitowy.
Podstawowe zastosowania
Mikroprocesory – technika obliczeniowa, przetwarzanie danych,
komputery osobiste, serwery, itp.
Mikrokontrolery – układy kontrolnopomiarowe, komunikacyjne
(np. sterownik klawiatury, dysków, itp.) systemy wbudowane
(sterowniki urządzeń), kontrola procesów przemysłowych itp. –
realizują zadania niezbyt złożone pod względem obliczeniowym, ale
często wymagające szybkiej reakcji.
Klasyfikacja procesorów pod względem architektury:
CISC – Complex Instruction Set Komputer
RISC – Reduced Instruction Set Komputer
SISC – Single Instruction Set Computer
Transputery – systemy wieloprocesorowe o architekturze różnej
od von Neumanna
Podstawowe własności jednostki centralnej:
Mikroprocesor to układ synchroniczny i sekwencyjny.
Synchroniczny – bo wszystkie operacje są wykonywane w rytmie
narzuconym prze zewnętrzny sygnał zegarowy.
Sekwencyjny – bo stan wyjść nie zależy tylko od wejść, ale od
poprzednich stanów (automat z pamięcią). Ta pamięć to rejestry
własne procesora.
Działanie jednostki centralnej to realizacja cyklu rozkazowego. Zbiór
wszystkich możliwych operacji to zbiór rozkazów.
Koncepcje konstrukcyjne mikroprocesorów:
Szyny adresowe i danych oraz pamięci.
Szyny rozdzielające całkowicie – architektura Harwardzka –
niezależne adresowanie
danych i instrukcji programu – pamięci fizycznie rozdzielone.
Szyny rozdzielone całkowicie lub multipleksowana szyna danych
z mniej znaczącą częścią szyny adresowej – architektura klasyczna
von Neumanna – wspólna przestrzeń adresowa pamięci programu i
danych.
Operacje we/wy i wykonywanie programu:
Rozdzielone oddzielne instrukcje we/wy (IN, OUT), które są
identyfikowane na poziomie sterowania wykonywaniem programu –
niezależne adresowanie we/wy (0n),
Jednolite – rejestry sterujące i danych urządzeń zewnętrznych są
umieszczone w przestrzeni adresowej programu i/lub danych – brak
instrukcji we/wy, a przesyłanie poleceń i danych odbywa się za
pomocą typowych instrukcji procesora (najczęściej MOV).
Podstawowe pojęcia architektury procesora (ALU):
słowo rozkazowe
adres, adres efektywny
dana (źródło, przeznaczenie)
operand
bit, bajt, słowo pamięci
Rejestr to najmniejsza pamięć w komputerze położona w
bezpośredniej bliskości procesora, o długości słowa maszynowego
lub jego wielokrotności.
Podstawowe rejestry:
A (ang. Accumulator) – akumulator
PC (Program Counter); LR – licznik rozkazów
SP (Stach Counter) – wskaźnik stosu
IR (Instruction Pointer); RR – rejestr rozkazów (często umowny)
rejestry bazowe (segmentowe)
I – rejestry indeksowe
rejestry adresowe
rejestry pomocnicze
Rozkaz (ang. Instruction) typowych mikro komputerów składa się z
dwóch części: kodu operacji, określającego jego działanie i adres
(lub adresów) argumentów, przy czym każdy adres określa
położenie w pamięci argumentów, na których mają być
wykonywane operacji.
Liczba rozkazów w dostępnych procesorach wynosi od
kilkudziesięciu (dla prostych mikroprocesorów 8bitowych) do
kilkuset (np. 32bitowy VAX).
Przy czym zbiór instrukcji o dużej liczności wcale nie musi być
przypisany procesorom o większej mocy obliczeniowej.
Grupy rozkazów sklasyfikowane pod względem funkcjonalnym
1. rozkazy sterowania pracą procesora, np. HALT, WAIT, NOP
2. rozkazy sterowania przebiegiem programu, np. JMP, CALL, RET,
INT
3. rozkazy przesyłania danych i operandów, np. MOV, LEA, STA
4. rozkazy operacji arytmetycznych, np. ADD, INR, DCR, SUB,
MUL, DIV
5. rozkazy operacji logicznych, np. ORA, ANA, XRA
6. rozkazy porównania, np. CMP
7. rozkazy badania warunków, np. TST
Na ogół rozkazy realizowane przez procesory są klasyfikowane do
trzech poniższych grup [4]:
A. Rozkazy manipulacji danymi:
MOV X, Y ;[Rejestr (X)] [Rejestr (Y)]
MOV X, AdrPam ;[Rejestr (X)]<[Pamięć (Z)]
MOV AdrPam, X ;[Pamięć (Z)]<[Rejestr (X)]
MOV X, = ‘17’ ;[Rejestr (X)]<Dana
MOV AdrPam, = ‘17’ ;[Pamięć (Z)]<Dana
ADD X, Y ;[Rejestr (X)]<[Rejestr (X)] + [Rejestr
(Y)]
ADD X, AdrPam ;[Rejestr (X)]<{Rejestr (X)] +
[Pamięć (Z)]
ADD X, = ‘17’ ;[Rejestr (X)] {Rejestr (X)] + Dana
B. Rozkazy we/wy
IN X, Urządzenie nr 3 ;[Rejestr (X)]<
[Urządzenie (3)]
OUT 12, AL.
C. Rozkazy sterujące wykonywaniem programu
JMP TAM ;[PC]<_AdrPam TAM
JMPZ TUTAJ ;Jeśli <ostatni wynik = 0>,
To [PC] AdrPam TUTAJ
Jeśli nie, [PC]<[PC] +1
Ponadto z punktu widzenie wykorzystania i adresowania
rejestrów (0,1,2 rejestry) rozkazy można podzielić na:
bezadresowe
jednoadresowe
dwuadresowe
Spotyka się również podział ze względu na długość rozkazów:
z rozkazami o stałej długości (dla tych architektur kod maszynowy
dla wszystkich instrukcji ma taką samą liczbę bajtów),
z rozkazami o zmiennej długości (np. w uP Intel 8086 kody
maszynowe rozkazów mogą mieć długość od jednego do 6 bajtów).
Należy zaznaczyć, iż wymienione powyżej podziały nie są jedynymi
spotykanymi podziałami rozkazów dla produkowanych procesorów.
Tryby adresowania
Obliczanie adresu efektywnego argumentu rozkazu (danej) to
obliczenie ostatecznej lokalizacji tej danej w pamięci komputera.
Tryby adresowania – obliczanie adresu efektywnego
Adr. Efektywny=adr. Argumentu+modyfikator+…+modyfikator
Gdzie:+ to dowolna operacja (także podstawienie),
Modyfikator to zawartość dowolnego rejestru lub komórki
pamięci. Sposoby obliczania adresu efektywnego nazywa się
trybami adresowania.
1.
Wbudowanie – kod rozkazu jednoznacznie
wskazuje argument
2.
Bezpośrednie – argument występuje bezpośrednio
za kodem rozkazu lub jest częścią rozkazu
Kod nazwa rejestru kod adres
Kod znacznik kod Adres H
Adres L
Adres = argument, operand
3.
Natychmiastowe
Kod argument
4.
Pośrednie
a)
Rejestrowe
Kod R
Adres = ®
Rejestr zawiera adres miejsca
pamięci zawierającej argument
b)
Pamięciowe
Kod
Adres H
Adres L
Adres = (adres H, Adres L) – adres
w kodzie rozkazu wskazuje adres
miejsca pamięci zawierającej
argument
5.
Indeksowe
Kod
P(rzesunięcie)
Adres = (I) + P – adres argumentu to suma
zawartości rejestru indeksowego I i przesunięcia w
kodzie rozkazu
Indeksowe z bazą
Adres = (B) + (I) + (P) – adres argumentu to suma
zawartości rejestru bazowego B, zawartości
rejestru indeksowego I i przesunięcia w kodzie
rozkazu
Dalsze możliwości adresowania indeksowego:
Autoinkrementacja (zwiększenie o 1) lub auto
dekrementacja (zmniejszenie o 1) zawartości
rejestru indeksowego w dwóch możliwych
wariantach:
przed pobraniem zawartości rejestru indeksowego
albo
po pobraniu zawartości rejestru indeksowego
Kombinacje z adresowaniem pośrednim
Kod
Adres pośredni
a.
Adresowanie pośrednie indeksowe
Adres = Adres = (adres pośredni) + (I) – adres
argumentu to suma adresu bazowego wskazanego
przez pośredni w rozkazie i zawartość rejestru
indeksowego I
b. Adresowanie indeksowe pośrednie
Adres=(Adres pośredni+ I) – adres argumentu jest wskazany przez
sume zawartosi rejestru indeksowego I i adresu pośredniego w
kodzie rozkazu.
6. Względne
Kod Przesuniecie
Adres = (LR)+p – adres argumentu to suma zawartości rejestru
licznika rozkazowPC (LR) i przesuniecia w kodzie rozkazu.
UWAGA: Licznik rozkazow w momencie wykonaniarozkazu
wskazuje nastepny rozkaz do wykonania.
Adresowanie z wykorzystaniem stosu
Stos w procesorze tworzy kolejke Lifo
Włożenie na stos z automatyczna (pre)dekrementacja
PUSH AX – wykonanie SP < SP2 < AX
Zdjecie ze stosu z automatyczna (post)inkrementacja
POP AX – wykonanie : AX < (SP), SP < SP+2
Przerwania
Przerwanie to sygnal o niespodziewanym zdarzeniu. Przerwanie
wywoluje zwykle jakas akcje programu w [przyszłości (czasem
zadna). Powstaje ono w wyniku, zdarzenia którego czas
wystapienia jest nieznany4. Przerwanie powoduje wywolanie
programowej procedury obsługi przerwania w niedalekiej
przyszłości.
Obsluga przerwania – procedura (dzialanie) skladajaca sie z trzech
zasadniczych krokow (wykonania wtedy, kiedy ustawiny jest
warunek zezwalający na obsługę przerwania):
automatyczne zapamiętanie tzw. Sladu programu (PC, A, rejestr
warunku, niekiedy inne rejestry) i przejscie do programu obsługi
przerwania wskazywanego przez tzw. Wektor przerwania
wykonanie podprogramu obsługi przerwania najczęściej
zakończone odblokowaniem możliwości przyjmowania przerwan
powrot z obsługi przerwania do miejsca przerwania programy
głównego – automatyczne odtworzenie zapamiętanego wczesniej
sladu programu
Cykl rozkazowy i
przerwania
Cykl rozkazowy :
cykl pobrania rozkazu
cykl wykonania rozkazu
przerwanei i jego obsluga
Hierarchia pamieci w komputerze
(klasyfikacja pod katem odległości od proca) Procesor
Rejestry
Pameic podreczna (notatnikowa) – ciche (często wielopoziomowa –
kolejka rozkazow i Ew. naczesciej uzywane dane i fragmenty
programu)
Pamiec operacyjna (roznne technologie mogą występować razem
np. : RAM, ROM EPROM, FLASH)
Bufory pamieci zewnętrznych zorganizowane w pamieci
operacyjnej i/lub w sterowniku pamieci zewnętrznej (cacek
dyskowy)
Pamieci dyskowe i optyczne, macierzy dyskowe
Pamieci tasmowe
MIKROPROCESOR 8080 – ch
styka ogolna
Mikroprocesor 8080 zawiera :
8bitowy rejestr rozkazow
8bitowy akumulator
szesc 8bitowych rejestrow ogolnego przeznaczenia B, C, D, E, H,
L. Rejestry te można łączyć w pary 16bitowe BC, DE, HL. Ich
przeznaczenia jest dowolne, lecz z listy rozkazow wynikaja
najczestsze zastosowania :
HL podstawowy rejestr pośredniego adresowania danych –
wskaźnik danych
DE – pomocniczy rejestr pośredniego adresowania danych
BC – jeden 16bitowy lub dwa 8bitowe liczniki
Ponadto rejestr flag, zawierajacy następujące znaczniki :
Bit nr.7
S Z X AC X P X CY
S – znak wyniku
Z – wynik zerowy
AC – przeniesienie pomocnicze (z mniej znaczącej cyfry BCD)
P – parzystość wyniku
CY – przeniesienie lub pozyczka;
X – oznacza bit niewykorzystany
Do obiektow zewmetrznych (pamiec, podsystem we/wy) jednostka
centralna jest dolaczona poprzez trzy szyny :
8bitowa, dwukierunkowa, trojstanowa szyna danych
16bitowa trojstanowa szyna adresowa
5bitowa sygnalowa szyna sterujaca, w której sklad wchodza
następujące sygnaly strobujace, aktywne niskim stanem TTL,
oznaczające :
MEMR – czytanie danyczh z pameici
MEMW – wpisywanie danych do pamieci
IOR – czytanie danych z urzadzenia wejsciowego
IOW – zapis danych do urzadzenia wyjściowego
INTA – odczyt instrukcji bedacej potwierdzeniem przerwania
Lista rozkazow mikroprocesora I8080 obejmuje 78 instrikcji. Ich
nazwy mnemotechniczne oraz odpowiadające im kode
heksadecymalne dostępne SA w katalogach firmy Intel.
Do realizacji operacji arytmetycznych i logicznych służy 8 – bitowa
równoległa jednostka arytmetyczno – logiczna ALU z układem
korekcji dziesiętnej oraz związany z nią 8 – bitowy rejestr
pomocniczy i 5 – bitowy rejestr wskaźników warunków.
Do adresowania rozkazów pamięci programu służy 16 – bitowy
licznik rozkazów (LR, PC – Program Counter) zwany licznikiem
programu, 16 – bitowy wskaźnik stosu SP(Stack Pointer). Służą do
organizowania i adresowania stosu.
Pracę mikroprocesora inicjalizuje i kontroluje układ sterujący, który w
oparciu o dwufazowy zegar zewnętrzny (
1
,
2
) generuje właściwy
sygnał sterowania wewnętrznego i zewnętrzne sygnały sterujące.
Przeznaczenie poszczególnych wyprowadzeń jest następujące:
GDN, +5V, +12V, 5V – doprowadzenie masy i napięć zasilających;
D – D ośmiobitowa, dwukierunkowa, trójstanowa szyna danych;
A A 16 bitowa, trójstanowa szyna adresowa;
RESET – sygnał zerowania wymusza przejście mikroprocesora w
określony stan początkowy;
1
,
2
dwufazowy sygnał zegarowy wysokonapięciowy MOS;
SYNC – wyjście sygnału synchronizującego stan aktywny
identyfikuje początek, każdego cyklu maszynowego i związaną z nim
emisję słowa stanu na szynie danych;
DBIN – wyjście sygnału strobującego zapis danych lub rozkazu
przez mikroprocesor – szyna danych pracuje w trybie odczyt;
WR – wyjście sygnału strobującego zapis danych przez
mikroprocesor – szyna danych pracuje w trybie zapis;
READY – wejście synchronizujące szybkość pracy mikroprocesora z
zewnętrznymi wolniejszymi układami; pozwala wstrzymać pracę
mikroprocesora na poziomie cykli maszynowych;
WAIT – aktywny stan tego wejścia sygnalizuje przejście w stan
oczekiwania wymuszony sygnałem
READY;
HOLD – wejście sygnału wymuszającego przejście mikroprocesora
w stan wstrzymania; wymusza stan wysokiej impedancji na szynach
adresowych i danych;
HLDA – wyjście sygnału potwierdzającego stan HOLD
mikroprocesora;
INTE – wyjście sygnalizujące stan wewnętrznego przerzutnika
zezwalającego na przyjęcie przerwania;
INT – wejście sygnału zgłoszenia przerwania.
Początek każdego cyklu maszynowego w mikroprocesorze 8080
identyfikowany jest aktywnym stanem wyjścia SYNC. Jednocześni
na szynie danych pojawia się słowo stanu procesora (status word).
Na podstawie tego słowa zewnętrzne układy identyfikują rodzaj cyklu
maszynowego jaki wykonuje aktualnie mikroprocesor oraz dokonuje
selekcji zasobów zewnętrznych mikroprocesora do współpracy. Na
podstawie słowa stanu można zidentyfikować zasoby, które są
aktualnie adresowane przez szynę adresową i pamięć, stos, wejście,
wyjście, system przerwań.
Linie szyny danych
Status
Pobranie rozkazu
Czytaj pamiec
Pisz
do pamieci
Czytaj ze stosu
Pisz na stos
Czytaj
ukl. I/O
Pisz do ukl I/O
Potwierdzenie przerwania
Potwierdzenie wykonania rozkazu HLTPotwier
dzenie przerwania podczas HL
Nr cyklu
1 2 3 4 5 6 7 8 9 10
D0
INTA
0 0 0 0 0 0 0 1 0 1
D1
WO
1 1 0 1
0 1 0
1 1 1
D2
STACK
0 0 0 1
1 0 0
0 0 0
D3
HLTA
0 0 0 0
0 0 0 0
1 1
D4
OUT
0 0 0 0
0 0 1
0 0 0
D5
M1
1 0 0 0
0 0 0
1 0 1
D6
INP
0 1 0 0
0 1 0
0 0 0
D7
MEMR
1 0 0 1
0 0 0
0 1 0
Przeznaczenie poszczególnych bitow w slowie stany jest
następujące :
D0 (INTA) zadanie dostepu do systemu przerwan; potwierdza
przyjecie przerwania
D1 (WO) “I” identyfikuje cykla czytania do mikroproca
„O” oznacza pisanie danych na zewnatrz
D2 (STACK) oznacza ze szyna adresowa zawiera adreskomorki
stosu
D3 (HLTA) stan potwierdzenia instrukcji HLT
D4 (OUT) aktualny cykla maszynowy jest operacja wyjscia; na
szynie sygnalizuje ze
processor jest w stanie FETCH, odczytany na szynie
danych bajt bedzie
potraktowany jako kod instrukcji
D5 (M1) wskazuje, że mikroprocesor znajduje się w cyklu pobierania
pierwszego bajtu (kod
operacji) rozkazu;
D6 (INP) aktualny cykl maszynowy jest operacją wejścia; na
szynie adresowej znajduje się
numer urządzenia wejściowego;
D7 (MEMR) oznacza, że szyna danych będzie służyła do czytania
danych z pamięci
Procesor 8086/8080/8088
Podstawowe układy (1) układ wykonawczy EU (execution unit),
(2) układ sterowania magistralą systemową
BIU (bus interface
unit).
Cykle pracy procesorów 8086/8088 Praca w dwóch cyklach: (1)
minimalny – do pracy w systemach jednoprocesorowych; w
trybie tym układ BIU generuje sterujące sygnały magistrali
zewnętrznej; )(2) maksymalny – dla systemów
wieloprocesorowych; w trybie tym zewnętrzny sterownik szyny
sterującej (8288) generuje sygnał sterowania systemem.
Cykle(max 4): (1) pobieranie (fetch) pobranie rozkazu z pamięci
do procesora; (2) odczyt (read) jeżeli wymagany jest argument –
zostaje obliczony jego adres, następnie arg jest odczytywany i
wprowadzany do procesora; (3) wykonanie (execute) – operacja
zdefiniowana rozkazem jest wykonana; (4) zapis (write) – jeżeli
wynik ma byc zapisany w pamięci, zostaje obliczony adres i
wykonany zapis do pamięci; (5) EU i BIU mogą pracować
niezależnie co zwiększa szybkość pracy systemu.
Możliwe sekwencje cyklu pracy
: (1) pobieranie + wykonanie;
(2) pobieranie + odczyt + wykonane; (3) pobieranie + wykonanie
+ zapis; (4) pobieranie + odczyt + wykonane + zapis
Rejestry dostępne programowo
: Ogólnego przeznaczenia: (1)
AX – akumulator; (2) BX – rejestr bazowy; (3) CX – rejestr
zliczający; (4) DX rejestr danych
Rejestry wskaźnikowe i indeksowe: (1) SP – wskaźnik stosu –
przy operacjach standardowych; (2) BP – wskaźnik bazy – przy
operacjach niestandardowych; (3) SI – rejestr indeksowy źródła;
(4) DI – rejestr indeksowy przeznaczenia
Znaczniki stanu:
(1) CF przeniesienie; (2) PF – parzystość; (3)
AF – przeniesienie pomocnicze; (4) ZF – zero; (5) SF – znak; (6)
OF – przepełnienie
Znaczniki kontrolne: (1) TF – praca krokowa; (2) IF –
zezwolenie na przerwanie; (3) DF – znacznik kierunku – jest
wykorzystywany do działań na łańcuchach
Organizacja pamięci operacyjnej: (1) 20 linii adresowych – co
umożliwia zaprogramowanie 2^20 [bit]=1MB; (2) 8088 – 8bit
szyna danych / 8086 – 16bit szyna danych
Rejestry segmentowe – rejestry do adresowania pamięci
operacyjnej. Generowane przez: (1) CS – rejestr segmentowy
programu; (2) DS – rejestr segmentowy stosu > miejsce w
którym zapamiętywane są dane; (3) ES – rejestr segmentowy
dodatkowy > dodatkowy segment danych; (4) SS – rejestr
segmentowy stosu > miejsce gdzie umieszczono stos
Wskaźniki rozkazów: (1) IP – rejestr – wskaźnik rozkazu; (2) CS
– rejestr – wskaźnik kolejnego rozkazu
Segmentacja pamięci: Segment – ciągły obszar pamięci
operacyjnej w wielkości nie większej niż 64 kB. Każdy segment
jest niezależny od innych segmentów i jest programowo
zdefiniowany przez adres początku segmentu. Adres ten
określają rej. segm. CS, DS, SS, ES. Wszystkie rozkazy muszą
być umieszczone w co najmniej jednym segmencie. Rozkazy
obecnie wykonywane muszą mieć swój adres w CS.
Obliczenie adresu fizycznego: (1) Rejestr segmentu kody CS:
wszystkie rozkazy są pobierane w stosunku do tego rejestru
pomnożonej przez 16 z przesunięciem o zawartość rejestru IP
(PC). (2)
Rejestr segmentu danych DS: wszystkie odwołania do
danych w programie odbywają się w stosunku do zawartości tego
rejestru pomnożonej przez 16 i są przesunięte o efektywny adres
argumentu. (3)
Rejestr segmentu stosu SS: wszystkie
odwołania do pamięci wykonywane z przesunięciem określonym
przez wskaźnik stosu SP dotyczą zawartości segmentu SS
pomnożonej przez 16. (4)
Rejestr segmentu ekstra ES:
wszystkie odwołania do danych przy operacjach na łańcuchach,
w których dla obliczenia efektywnego adresu łańcucha używa się
rejestru indeksowego przeniesienia DI, odbywają się w stosunku
do zawartości ES pomnożonej przez 16.
Wejście – wyjście: Każdy moduł I/O jest dołączony do magistrali
systemowej lub centralnego przełącznika i steruje jednym lub
wieloma urządzeniami peryferyjnymi. Zawiera on układ logiczny
umożliwiający komunikację miedzy urządzeniami peryferyjnymi a
magistralą.
Z powodu: (1) Istnieje znaczna różnorodność urządzeń
peryferyjnych; (2) Szybkość transferu danych jest wiele mniejsza
niż procesorpamięć. (3) Urządzenie peryferyjne wykorzystuje
inne formaty danych i długości słowa niż komputery do których są
podłączone
nie łączy się urządzenia peryferyjnego bezpośrednio
z magistralą systemową. Stąd moduł I/O pełni
dwie role: (1)
interfejsu z procesorem i z pamięcią poprzez magistralę
systemową lub centralnego przełącznika; (2) interfejsu z jednym
lub wieloma urządzeniami peryferyjnymi przez dostosowanie
łącza danych .
Klasyfikacja urządzeń peryferyjnych: (1) przeznaczone do
odczytu przez człowieka; (2) do odczytu przez maszyną; (3)
odpowiedzialne za komunikowanie się z odległymi urządzeniami.
Moduł wejściawyjścia
jest składnikiem komputera
odpowiedzialnym za sterowanie jednym lub wieloma
urządzeniami zewnętrznymi oraz za wymianę danych między
między tymi urządzeniami a pamięcią główna i/lub rejestrami
procesora. podstawowe zadanie modułu: BUFOROWANIE
DANYCH.
Główne funkcje modułu I/O: (1) sterowanie i taktowanie; (2)
komunikacja z procesorem; (3) komunikacja z urządzeniem; (4)
buforowanie danych; (5) wykrywanie błędów.
Działanie modułu: procesor żąda od modułu I/O sprawdzenia
stanu dołączonego urządzenia > moduł udziela odpowiedzi >
jeśli wszystko OK, procesor zgłasza zgłasza zapotrzebowanie na
przesłanie danych > moduł otrzymuje jednostkę danych (816
bitów) z urządzenia zewnętrznego >dane sa przenoszone z
modułu do procesora.
komunikacja modułu I/O z procesorem: (1) dekodowanie
rozkazu; (2) przesyłanie danych; (3) przesyłanie informacji; (4)
rozpoznawanie adresu.
MIKROKONTROLERY 8BITOWE AVR ATMELA
INFO OGÓLNE
mikrokontroler zawiera
niezbędne elementy systemy
mikroprocesorowego, samodzielna praca możliwa z wykorzystaniem
wewnętrznego oscylatora lub zewnętrznego rezonatora kwarcowego
(116 MHz); jest zasilany napięciem (2,75,5 V); pobierany prąd
zależy od rozmiaru procesora, napięcia VCC i f zegara;
minimalna
konfiguracja: + układ V6340 do sterowania sygnałem reset oraz
złącze do programowania szeregowego; do złącz powinny być
doprowadzone: MISO, MOSI, SCK, RESET, GND;
dalsza
rozbudowa: zewnętrzne układy I/O, dodatkowa pamięć, układy
towarzyszące używanym interfejsom; architektura harvardzka,
pamięć programu (FLASH organizacja 16 bit) oraz pamięć danych
(RAM) w rozdzielonych przestrzeniach adresowych, różne rozkazy
pamięci, pozwala to na równoległe wykonywanie i pobieranie
kolejnego, większość rozkazów w jednym cyklu zegara;
REJESTRY A)licznik rozkazów PC: dotępny tylko rozkazami skoku,
po reset ustawiany na zero lub na początek sektora ładującego ,
rozmiar zależny od rozmiary pamięci FLASH
B) rejestr statusu –
flags obszar portów we/wy P63(5fH) od lewej bity: I (przerwania) T
(pamięć kopiowanego bitu) H (przeniesienie pomocnicze) S (znak) V
(przepełnienie) N (ujemny wynik) Z (zero) C (przepełnienie)
C)
wskaźnik stosu składa się z 2 części, dostępny w obszarze portów
we/wy P62 i P61; rozmiar zależy od rozmiaru pamięci RAM, niektóre
procesory nie mają starszej części
D) rejestry indeksowe XH,XL
YH,YL ZH,ZL: do adresowania pośredniego pamięci RAM, zależnie
od ilości RAM używane są albo części dolne albo całości.
DOSTĘP DO EPPROM: pojemność zależna od typu procesora,
trwałość 100000 cykli zapisu lub kasowania, dostęp do tej pamięci za
pomocą rejestrów we/wy;
rejestry adresu EEARH i EEARL; danych
EEDR;
sterujący EECR; EEPROM nie może być zapisywany
podczas zapisu do pamięci FLASH
RESETOWANIE: 4 przyczyny: A) spadek napięcia zasilania poniżej
Vpot
B) stn niski na wejściu RESET C) przekroczenie okresu
pobudzania Watchdoga
D) spadek napięcia poniżej ustalonego
progu Vbot wykryty przez wewnętrzny detektor (Brownout Detector)
działanie: podczas stanu reset wszystkie rejestry I/O są ustawiane
na ich inicjalne wartościgdy przyczyny resetu nieaktywne
uruchamiany licznik opóźniający (zapewnienie ustalenia się
warunków zasilania) po zakończeniu reseta program jest
wykonywany od wektora reset, który znajduje się od adresu 0000
(sektor aplikacji) albo na początku sektora ładującego
WATCHDOG: jego timer jest sterowany poprzez rejestr I/O WDTCR
(P33); zegar brany z wewnętrznego oscylatora (f=1MHz).
OBSŁUGA LINII WEJŚCIOWO WYJŚCIOWYCH: za ich pomocą
komunikacja z urządzeniami zewnętrznymi, są pogrupowane w
8bitowe porty ( A B C ...) każda linia może być zaprogramowana
oddzielnie jako wyjście lub jak wejście ( w tym wypadku włączenie
rezystora do Vcc utrzymuje stan 1 na wejściu)
REJESTRY STERUJĄCE PORTAMI: DDRa (steruje kierunkiem linii
portu A, do odczytu i zapisu, każda pozycja ustawia odpowiednią
linię na wejście lub na wyjście)
PORTa (sterowanie stanem linii
wyjściowych i rezystorami PULL UP dla linii wejściowych , dostępny
do odczytu i zapisu, odczyt zwraca wartość ostatnio zapisaną)
PINa
(tylko do odczytu, zwraca stan linii wejściowych)
PROGRAMOWANIE
RÓWNOLEGŁE koniecznie przed wlutowaniem o urządzenia;
wejście w ten tryb: A) włączenie Vcc= 4,55,5V B) Ustawienie
wejścia RESET na 0, zmiana stanu wejścia XTAL1 conajmniej 6 razy
C) wejścia PAGEL XA1 XA0 BS1 na ‘0’ i odczekanie 100ns D)
podanie napięcia 11,512,5 V na wejście RESET, utrzymanie wejść
PAGEL XA1 XA0 BS1 na ‘0’ przez 100ns;
wyjście: A) wyłączenie
Vcc
B) wyłączenie napięcia na wejściu RESET
PROGRAMOWANIE SZEREGOWE: wejście w ten tryb: A)
włączenie Vcc= 4,55,5V gdy wejścia RESET i SCK są na ‘0’
B)
odczekanie 20ms
C)wywołanie przez SPI polecenia ‘zezwolenie na
programowanie’; wyjście: podanie stanu ‘1’ na wejście RESET
DANE DOSTĘPNE PODCZAS SZEREGOWEGO: bajty: A)
sygnatury (rodzaj mikrokontrolera i ilość pamięci Flash), odczyt B)
kalibracji (używane gdy wybrany wewnętrzny oscylator,
odczytywane przez programator i zapisywane w wybranym miejscu
pamięci FLASH lub EEPROM), odczyt
C) FUSE low, odczyt i zapis
D) FUSE high, odczyt i zapis; pamięci (oba FUse do wyboru
pewnych parametrów pracy)
E) LOCK (zabezpieczanie programu i
danych w EEPROM przed zapisem i odczytem) , odczyt i zapis
F)
FLASH, odczyt i zapis G) EEPROM, odczyt i zapis
PROGRAMOWANIE PAMIĘCI FLASH:
A)mniejsze
mikrokontrolery: bajt po bajcie, przed programowaniem należy
wysłać polecenie kasowania pamięci i odczekać określony czas,
przed programowaniem następnego bajtu trzeba sprawdzić czy
poprzedni jest zaprogramowany, albo można poczekać odpowiedni
odcinek czasu
B) większe mikrokontrolery: pamięć FLASH
podzielona na strony, 128 stron po 32 słowa, dwa etapy
programowania: najpierw ładowana strona bajt po bajcie, potem
zapisanie całej strony, następnie sprawdzamy poprawność zapisu
lub czekamy 4,5 ms
PROGRAAMOWANIE PAMIĘCI EEPROM: bajto po bajcie przed
programowaniem kolejnego sprawdzamy czy poprzedni jest zapisany
albo czekamy 9ms
PO FLASHU I EEPROMIE: programowane są bajty FUSE, potem
weryfikacja wszystkich zaprogramowanych elementów,
programowanie bajtów LOCK;
PRZERWANIA I WYJĄTKI 80286,80386 I i486
Wystąpienie przerwania lub wyjątku powoduje przekazanie
sterowania do adresu, który nie wynika z aktualnie wykonywanych
instrukcji, lub do innego fragmentu programu, a po jego wykonaniu
wraca do miejsca gdzie zostało wywołane, wiec przerwanie lub
wyjątek jest obsługiwany przez tzw.
Procedurę obsługi, która
obejmuje: procedury w ścisłym sensie, tzn. wykonujące się w
obrębie aktualnego zadania, odrębne zadania, samodzielnie
obsługujące przerwania i wyjątki.
PRZERWANIE jest powodowane przez zdarzenie zew. W stosunku
do procesora, chwila jego wystąpienia jest nieokreślona i nie ma
żadnego związku z aktualnie wykonywanymi instrukcjami programu.
Źródła przerwań to sygnały ITR i NMI.
INTR –służy do zgłaszania przerwań maskowanych, przyjmowane
są, gdy ustawiony jest bit IF w rejestrze znaczników. (przeciwny
przypadek IF=0 przerwania maskowane są blokowane)
NMI – obsługa przerwań niemaskowalnych, nie może być
maskowane programowo, natomiast, jeśli jest właśnie obsługiwane
to zgłoszenia kolejne są zapamiętywane.(wewnętrzne blokowanie
ich)
WYJĄTEK –jest generowany wewnętrznie przez procesor i jest
związany z aktualnie wykonywaną instrukcją. Przyczyną
wygenerowania może być dzielenie przez zero(przy instrukcji DIV ,
IDIV), przekroczenie zakresu indeksu tablicy (przy instrukcji
BOUND), nieobecność segmentu lub strony podczas wykonywania
instrukcji. Wyjątek jest następstwem wykonania instrukcji INT oraz
INTO.
Każde przerwanie i każdy wyjątek ma przydzielony 8bitowy numer
wiążący przerwanie(wyjątek) z jego procedurą obsługi. Umożliwia to
rozróżnienie 256 przerwań(wyjątków) Powiązanie numerów i
procedur realizowane jest za pomocą
TABLICY PRZERWAŃ (w
trybie rzeczywistym) w niej jest 256 pól, w których skład wchodzi
Selektor i Przemieszczenie, co stanowi wskaźnik do procedury
obsługi przerwań i wyjątków. Tablica ta zawiera logiczne adresy tych
procedur. Każdy element tablicy zawiera 4 byte ( dwa selektor i dwa
przemieszczenie), więc, tablica zajmuje 256*4=1KB pamięci. Numer
przerwania jest numerem elementu tablicy. Położenie tablicy
przerwań określa zawartość rejestru tablicy deskryptorów
IDTR
Dla 80286 (skład:Adres bazowy(liczba 0..2
24
) i wielkość(0…2
16
1))
Dla 80386 i I486(skład:Adres bazowy(liczba 0...2
32
1) i wielkość(0…
2
16
1)). Tablica przerwan jest umieszczona na początku przestrzeni
adresowej, co pozwala zachować zgodność z 8086/88 i 80186/188.
W TRYBIE WIRTUALNYM tablica przerwań także informuje o
położeniu procedur obsługi. Tu jednak elementami tablicy są
deskryptory. I tablica przerwań zwana jest w tym przypadku tablica
deskryptorów przerwań
IDT zawiera do 256 deskryptorów, więc ma
rozmiar 2KB. Rodzaje deskryptorów: furtki przerwań, furtki
potrzasku, furtki zadania. Także w trybie wirtual. Tablica IDT jest
wskazywana jedynie przez rejestr ITR.
Wyjątki w momencie obsługi przerwań konieczne jest zachowanie
adresu powrotu. Do tego służą:
stos gdy przerwanie jest
obsługiwane przez procedurę,
segment TSS przerwanego
zadania w przypadku obsługi przez odrębne zadanie.
Istnieje podobieństwo pod względem zachowania adresu powrotu z
funkcja CALL. Przez zachowanie adresu powrotu rozumiemy
umieszczenie zawartości CS i IP na stosie lub w TSS przerwanego
zadania.
Niektóre rodzaje wyjątków umieszczają na stosie tez
kod błędu,
określający przyczynę wystąpienia go. Dla
80286: to 16 bitów 0 EX
wyjątek spowodowany przez zdarzenie zewnętrzne, 1 I wyjątek
związany z deskryptorem w IDT, 2 TI wskaźnik tablicy, 3…15
numer deskryptora.
Dla
80386 i I486: to 32 bity 0 EX wyjątek spowodowany przez
zdarzenie zewnętrzne, 1 I wyjątek związany z deskryptorem w IDT,
2 TI wskaźnik tablicy, 3…15numer deskryptora, 16…31 bity
nieokreslone
ROZDZIAL 3 (wyklad drugi)
UART wprocesorach AVR Atmel
****************************************
REJESTRY:
•
dzielnika zegara transmisji 011bitow (inicjalnie
same 0)
•
danych (zapis dla nadajnika i odczyt dla odbiornika)
07bitow (inicjalnie same 0)
•
statysu i sterujacy A (inicjalnie same 0)
* RxC glowny odbior
* TxC zakonczone nadawanie
* UDRE pusty rejestr danych nadajnika
* FE blad ramki
* OR/DOR blad utraty znaku
* PE blad parzystosci
* U2X podwojna predkosc
*MPCM tryb komunikacji wieloprocesorowej
•
statysu i sterujacy B
* RxCIE zezwolenie na przerwanie odbiornika
* TxCIE zezwolenie na przerwanie po zakonczeniu nadawania
* UDRIE zezwolenie na przerwanie nadajnika
* RxEN zezwolenie na odbior
* TxEN zezwolenie na nadawanie
* CHR9 ramak 9cio bitowa
* RxB8 odebrany bit 8
* TxB8 bit 8 dla nadajnika
•
statatusu i sterujacy C (obcjonalny)
* URSEL zapis do rejestru UBRRHI/UCSRC
* UMSEL tryb asynchroniczny/ synchroniczny
* UPM1
* UPM0 razem z UPM1 decyduja o parzystosci
* USBS 1/2 (lub) bity stopu
* USCZ1
* USCZ0 razem z USCZ1 i USCZ2 decyduja o ilosci danych
* UCPOL nadawanie/odbieranie
•
timerow liczka (starszy i mlodszy)
•
do porownania stanu licznika (starszy i mlodszy)
•
do zatrzasniecia stanu licznika (starszy i mlodszy)
•
sterujacy timera1 A w trybie generowania
impulsow PWM
Stan tego rejestru (OCR1) okresla wypelnie impulsow wyjsciowych.
•
sterujacy timera 2
•
maski przerwan timerow
•
rejestr zgloszonych przerwan timerow
•
do porownywania stanu licznika timera2
•
statusu asynchronicznej pracy timera 2
•
funkcji specjalnych
sterujacy interfejsu SPI
•
danych interfejsu SPI
interfejs SPI sluzy do komunikacji miedzy mikroprocesorami w
zaleznosci MASTER SLAVE
pin
kierunek MASTER
mosi
wedlug DDRB.3 (wyjscie)
miso
wejscie
sck
wedlug DDRB.5 (wyjscie)
ss
wedlug DDRB.2
ss w ukl. MASTER moze byc normalnym wyjsciem, moze sterowac
wejsciem ukl. SLAVE
dla ukl. SLAVE automatycznie staje sie wejsciem sterujacym
•
sterujacy MCU sluzy do sterowania poborem
mocy
system poboru mocy stany:
*tryb bezczynnny zatrzymanie CPU, chodza SPI, USART,
komparator analogowy,przetwornik A/C interface TWI, timery,
watchdog, system przerwan
*redukcja szumow dla przetwornika A/C zatrzymanie
CPU,chodza przetwornik A/C, timer2, watchdog,porownanie
adresu dla interface TWI
*wylaczenie zasilania zatrzymanie zew oscylatora, dzialaja zew
przerwania, watchdog, porownanie adresu dla interface TWI
(konsekwencja sa rozne czasy budzenia)
*oszczedzanie zasilania rozni sie od wylaczenia zasilania
obslugo timera2
*zasilanie rezerwowe od wylaczenia zasilania ten tryb rozni sie
tym ze dziala zew oscylator
M68HC11:~8bit procesor; RAM(do1kB)ROM(do24kB)EEPROM
(do8,5kB)
~5portów do kom. z otoczeniem: A(równoległy,układy:
akumulatora impulsów,generacji impulsów,nadzorujący,generator
przerwań okresowych);
B(transmisja równoległawyjście lub ½
adresu w trybie rozszerzonym);
C(tr.równoległawe/wy lub ½
adresu w trybie r.);
D(I/O ogólnego przeznaczenia lub
układy:transmisji synchronicznej i asyn. SCI);
E(I/O ogólnego
przeznaczenia lub przetwornik A/D)
~Układy przerwań(3 poziomy);
~Generator taktów sterujących i układ selekcji trybu pracy.
TRYBYPRACY:normalne(SingleChip,Expanded),specjalne
(Bootstrap,Test);wyborem steruje stan logiczny nóżek MODA i
MODB odczytany przed narastającym zboczem RESET(brak
opóżnienia odczytu w stosunku do rozpoczęcia pracy po resecie);
REJESTRYPODSTAWOWE:A,B(2akumulatory 8bitowe lub 16
bit akumulator D);
IX,IY(16 bit indeksowe);SP(16bit wskaźnik
stosu);
PC(16bit licznik rozkazów);CCR(8bit rejestr
wskaźników:C,Z,V,N,I,H,X,S)
TRYBYADRESOWANIA:wbudowane(kod
rozkazu
jednoznacznie wskazuje argument;);
bezpośrednie(argument
bezpośrednio za kodem rozkazu, adres=argument, operand);
pośrednie(tryb rejestrowy lub pamięciowy);indeksowy pośredni
(adres ef.=(rej.indeks.)+offset); oraz
względny(adr=(PC)
+2+offset);
REJESTRYKONFIGURACYJNE:(okr. działanie po resecie):
umieszczone od adresu $1000, przemieszczanie poprzez
ustawienie rejestru INIT, część może być ustawiana tylko po
resecie;
HPRIO(03 priorytet przerwań maskowanych, 47 tryb
pracy);
CONFIG(03 konfiguracja);INIT(03 położenie bloku
rejestrów konfiguracji w pamięci, 47 poł. RAM w pamięci);
TMSK2(01 wybór współczynnika skali timera, 47 konf. timera i
akumulatora);
OPTION(01 współczynnik skali timera COP, 27
różne funkcje konfiguracyjne)
ŹRÓDŁA RESET: PowerOn (włączenie zasilania lub chwilowe
obniżenie i powrót do wymaganego poziomu)
Zewnętrzny
(przycisk)
Computer Operates Properly Watchdog (wykrycie
zapętleń programu, zlicza wstecz impulsy zegarowe, co pewien
czas musi być ustawiany)
Clock Monitor (wykrywa zanik zegara
systemowego)
WYNIK RESETU podzespoły, rejestry, porty w stan początkowy
(blokada przerwań, blokada możliwości zatrzymania procesora,
porty jak wejściowe lub I/O, bity statusowe wskazują na brak
transmisji, generacji i przechwyceń impulsów, blok
programowania EEPROM)
PRZYJĘCIEPRZERWANIA : A) obsłużone jest gdy nie jest
obsługiwane przerwanie o wyższym priorytecie lub nie ma stanu
reset oraz bity I,X nie są ustawione na blokowanie przerwań (na
1);
B) w momencie rozpoczęcia obsługi bit I na 1 ( oraz X gdy
niemaskowalne) co oznacza blokadę oraz na stos wszystkie
rejestry oprócz SP;
C) wyznaczenie wektora przerwań i pobranie
adresu programu obsługi przerwania;
D) na koniec rozkaz RTI
(odtwarza ślad rejestrów ze stosu)
TRANSMISJA SZEREGOWA SYNCHRONICZNA SCI: format
danych ( bezczynność = stan wysoki linii transmisyjnej; bit startu
= 0, sygnalizuje początek kolejnego znaku; dane nadawane i
odbierane od najmniej znaczącego bitu; bit stopu = 1, sygnalizuje
koniec ramki złożonej z ‘0’, 89 bitów danyc, ‘1’; występuje
przerwa, stan logiczny 0 przez wiele ramek)
NADAJNIK REJESTRY: SCDR (równoległy danych nadawanych)
SCSR (statusowy) SCCR1 (pierwszy sterujący) SCCR2 (drugi
sterujący)
BAUD (ustawianie dzielnika prędkości transmisji)
DZIAŁANIE: po wpisaniu danej do SCDR sterowanie czeka aż
rejestr przesuwny opuści ostatni bit nadawanego znaku, wówczas
dane z SCDR do przesuwnego, ewentualnie przepisanie 9 bitu
danej z SCCR1 i uzupełnienie znakiem startu i stopu, potem
wysyłanie w linię bit po bicie
ODBIORNIK: odwrotnie do nadajnika, przesuwny gromadzi bity
odbieranego znaku, po skompletowaniu przesyła do SCDR i
ewentualnie wykorzystuje 9 bit danej do ‘budzenia’ dobiornika,
może sygnalizować błędy.
TRANSMISJA SZEREGOWA SYBCHRONICZNA SPI: format
danych (jednoczesne nadawanie i odbieranie, sygnał zegara
synchronizuje pobieranie i próbkowanie danych na linii transmisji
szeregowej w nadajniku i odbiorniku, sygnały MOSI oraz MISO
sygnalizują obecność danej w linii)
REJESTRY: SPCR (sterujący, ustawia tryb pracy, blokadę
przerwań, oprogramowanie może dzięki niemu ustalić format fazy
i polaryzacji zegara)
SPSR (statusowy, sygnalizuje koniec
transmisji każdego bajtu oraz błędy)
SPDR ( 8bitowy danych)
DZIAŁANIE: synchroniczne nadawanie niezależnych bajtów,
rozpoczęcie transmiji poprzedzane jest ustawieniem linii Slave
Select w stan niski, jest możliwość czterech formatów polaryzacji i
fazy zegara SCK przy użyciu dwóch bitów CPOL i CPHA rejestru
SCPR
PODSYSTEM GENERACJI UZALEŻNIEŃ CZASOWYCH: pięć
ciągów dzielników sygnałów głównego zegara mikrokontrolera;
podstawowe sygnały są generowane dla następujących układów:
A) podzielony przez 2,4,16 lub 32 sygnał zegara taktującego
transmisję synchroniczną układu SPI
B) przez 1,3,4 lub 13 a
następnie przez 1,2,4, .., 128 sygnał zegara taktującego odbiornik
i podzielony przez 16 sygnał dla nadajnika układu SCI do
asynchronicznej
C) różnie wyskalowany zegar używany przez
akumulator impulsów jako podstawa czasu
D) wyskalowany i
podzielony do generowania przerwań zegarowych oraz układu
COP
E) podzielony przez 1,4,8,16 sygnał zegara głównego
timera.
PRZETWORNIK ANALOGOWO CYFROWY: układ wykorzystujący
rozkład ładunków do uzyskania cyfrowego odpowiednika sygnału
analogowego; system ten jest 8 kanałowy, 8 bitowy przetwornik z
multipleksowanym wejściem działającym z dokładnością do najmniej
znaczącego bitu;
bloki funkcjonalne: multiplekser, przetwornik
analogowy, blok sterowania, rejestr danej wynikowej;
konwersja to
porównanie napięcia wejściowego w obrębie macierzy
kondensatorów z użyciem komparatora i rejestru SAR; każda
konwersja składa się z 8 operacji porównania , określających wartośc
kolejnych bitów w SAR; wyniki z SAR do rejestrów wynikowych
ADR1ADR4; łącznie można dokonać przetworzenia 16 sygnałów
analogowych (8 wejściowych, 4 wewnętrznych odniesienia i 4
rezerwy)
MCS 51****************************************
Maja podobna architekture do MCS48. Koncepcja architektury
harwardowskiej (oddzielne pamieci do programu i danych).
Wszystkie z wyjatkiem serji 8032 maja wbudowana pamiec wew
programu( wew pamiec danych maja wszystkie), orocz tego mozna
podlaczyc do nich moduly pamieci zew. Dostep do tych pamieci maj
inne rozkazy.
•
Organizacja wew pamieci danych:
(0FFh 080h) obszar pamieci danych dostepnej adresowaniem
bezposrednim (moze byc stos), grupa rejestrow specjalnych tylko do
adresowania bezposredniego
(07Fh) pamiec danych 007F dostepna adresowaniem posrednim i
bezposrednim
(02Fh 020h) Obszar pamieci sdresowanej bitowo Bity o numerach
007F
(01Fh 018h) zbior 3 rejestrow R00 R07
(017h 010h) zbior 2 rejestrow R00 R07
(00Fh 008h) zbior 1 rejestrow R00 R07
(007h 000h) zbior 0 rejestrow R00 R07
•
Organizacja wew pamieci programu
(000h) Start programu po RESET
(003h00Ah) wejscie przerwania INT0
(00Bh012h) wejscie przerwania T0
(013h01Ch) wejscie przerwania INT1
(01Bh022h) wejscie przerwania T1
(023h02Ah) wejscie przerwania z portu szeregowego
(02Bh032h) wejscie przerwania T2 (tylko seria 32/52)
(033h03Ah) reszta strony 0 pamieci programu
(800h0FFFh) strona 1 pamieci programu
(1000h17FFh) strona 2 pamieci programu
.................
(F800hFFFFh) strona 31 pamieci programu
SYSTEM PRZERWAN:
Mikroprocesory serji 51/31 obslugija 5 przerwan a serji 32/52 6
przerwan. Przerwania sa konfigurowane (wylaczane) w rejestrze IE.
Mozna im przypisywac rozne priorytety (tylko przerwania o wyzszym
priorytecie moga przerwac dane przerwanie) do ustawiania
priorytetow sluzy rejestr IP. Jezeli przerwania maja ten sam priorytet
to najpier wykonane bedzie przerwanie nizej umieszczone w
tablicyprzerwan.
CYKL PRZYJECIA PRZERWANIA:
ustawienie wew przerzutnika przerwan (sa takie 2)
wyzerowanie znacznika przyjetego przerwania
zapisanie na stosie licznika rozkazow (nie zapisuje PSW)
wpisanie do licznika rozkazow adresu poczatku programu
obslugujacego przerwanie.
Program obslugi przerwania musi byc zakonczony rozkazem RETI
ktory przywraca procesorowi licznik rozkazow ze stosu i wyzerowuje
przeprzutnik poziomu przerwania.
SYGNALY STERUJACE:
cykl maszynowy dzieli sie na 6 stanow, ktore dziela sie na 2 fazy
pojednym takcie zegara kazda
•
S1 pobieranie kodu rozkazu
•
S2 dekodowanie rozkazu
•
S3 zwiekszanie licznika rozkazow o 1
•
S4 pobieranie ewentualne 2 giego bajtu rozkzu
STRUKTURA WEW PORTOW WEJ/WYJ
Podstawe elementy kazdego portu to przerzutnik typu D pamietajavy
stan wpisany do portu araz bramka trojstanowa jako bufor
wejsciowy. Jezeli linia ma proacowac jako wejscie to do przerzutnika
musi byc wpisana 1, wtedy porty moga byc modyfikowane sygnalami
zew. Porty P1,P2,P3 maja wew uklad polaryzujacy (pull up)
wymuszajacy stan wysoki nakoncowce linii. LInie portu P0 nie maja
ukladu polaryzujacego, mozna go sworzyc dolaczajac zewnetrzny
oprnik (np .10kOhm) aby wymusic stan wysoki.
Przerwania i cykl rozkazu.
W systemie mogą istnieć sytuacje gdy procesor jest gotowy do
przekazywania danych a urzadzenie zewn. jeszcze nie może ich
przyjac lub na odwrot.Można to rozwiazac 1 z 3 metod:
zastosowanie petli programowej, która okresowo sprawdza stan
urzadzen zewn. badajaac, czy sa gotowe wysylac lub odbierac
dane.Np., jeśli procesor wysyla dane na drukarke to z wyslaniem
kolejnego znaku musi czekac, az zakonczy się drukowanie
poprzedniego. Metody polegajace na zastosowaniu stalych petli
testujacych sa okreslane jako procedury odpytywania.
wykorzystanie systemu przerwanjeśli urzadzenie zewn. jest gotowe
do przekazywania danych, wysyla do jednostki centralnej specjalny
sygnal żądania obsługi IRQ. Po odebraniu takiego sygnalu procesor
konczy wykonywanie biezacego rozkazu i przechodzi do
podprogramu obslugi przerwania, w którym sa wykonywane operacje
przekazywania danych z i do urzadzenia zewn. Przed
rozgałęzieniem do podprogramu obslugi przerwania, procesor
automatycznie zachowuje wartosc licznika rozkazow i rejestru stanu.
Podprogram obslugi przerwania konczy się rozkazem powrotu RTI,
która powoduje przywrocenie zachowanych wartosci rejestrow
procesora. W wiekszosci procesorow 16 i 32bitowych przerwania
sa okreslane jako sytuacje wyjatkowe lecz sposób ich dzialania
pozostaje ten sam. Powyzsza forma przerwania to przerwanie
niemaskowalne NMI, a podprogram obslugi przerwania jest
uruchamiany zawsze, ilekroć sygnal pzrerwania pojawi się na linii
wejscia NMI. Istnieje także przerwanie maskowalne uruchamiane
zwykle przez sygnal na wejsciu IRQ. Gdy wystapi taki sygnal w
rejestrze stanu zostaje ustawiony bit maskowania, co z kolei blokuje
wejscie IRQ tak, ze wszystkie dalsze sygnaly przerwan sa
ignorowane przez caly czas obslugi aktualnego przerwania. Po
zakonczeniu podprogramu przerwania przywracane jest poczatkowe
ustawienie bitu maskowania i wejscie IRQ ponownie staje się
aktywne.
stosowane sa także przerwania programowe SWI lub operacje
pulapki(TRAP), gdy odpowiedni rozkaz programu powoduje przejscie
do podprogramu obslugi przerwania. Różnica niedzy pulapka a
wykonaniem zwyklego podprogramu polega na tym, ze przy
wywolaniu podprogramu okresla się adres, do którego ma skoczyc
program, a pulapka tego nie realizuje.
Wiekszosc procesorow obsluguje przerwania korzystajac z tzw.
tablicy wektorow przerwan lub sytuacji wyjatkowych. Gdy pojawia się
przerwanie lub sytuacja wyjatkowa, adres startowy podprogramu
obslugi jest czytany z zapisanej w pamieci tablicy wektorow. Pozycja
adresu w tej tablicy zalezy od rodzaju przerwania, z którym mamy do
czynienia.
W wiekszosci systemow mikroprocesorowych roznym typom
przerwan lub sytuacji wyjatkowych sa przyporzadkowane rozne
poziomy priorytetu. W takiej organizacji podprogram obslugi
przerwania może sam by przerwany, gdy pojawi się nowe przerwanie
o wyzszym priorytecie. Najwyzszy priorytet jest zwykle nadawny
przerwaniu RESET, które uruchamia podprogram inicjalizacji
systemu.Przerwanie niemaskowalne NMI ma zawsze wyzszy
priorytet niż zwykłe pzrerwanie maskowalne.
Przerwania lub cykle rozkazu(nie jestem pewien do czego sa te
punkt bo nie było tutulu na stronie):
programowe generowane przez warunek bedacy wynikiem
wykonywania rozkazu, taki jak przepelnienie arytmetyczne, dzielenie
przez zero, proba wykonania niedozwolonego rozkazu oraz
odniesienie do przestrzeni pamieci zarezerwowanej dla uzytkownika.
generowane przez wewnetrzny zegar procesora; umozliwia
wykonanie pewnych funkcji przez system operacyjny.
wejscia/wyjsciagenerowane przez sterownik wewy w celu
zasygnalizownia normalnego zakonczenia operacji lub w celu
zasygnalizowania roznych warunkow bledu.
uszkodzenie sprzetugenerowane przez uszkodzenie, takie jak
defekt zasilania lub blad parzystosci pamieci.
Przeplyw danych.
Dokladna sekwencja zdarzen podczas cyklu rozkazu zalezy od
projektu procesora. Załóżmy, ze procesor dysponuje rejestrem
adresowym pamieci(MAR), rejestrem buforowym pamieci(MBR),
licznikiem programu(PC) i rejestrem rozkazu(IR). Podaczas cyklu
pobierania nastepuje odczytanie adresu z pamieci. Licznik PC
zawiera adres nastepnego rozkazu przewidzianego do pobrania.
Adres ten jest przenoszony do rejestru MAR i umieszczany na
szynie adresowej. Jednostka sterujaca zglasza zapotrzebowanie na
odczyt z pamieci, a wynik jest umieszczany na szynie danych ,
kopiowany do MBR, a nastepnie przenoszony do IR. W tym samym
czasie PC przyrasta o 1, co stanowi przygotowanie do pobrania
nastepnego rozkazu.Gdy cykl pobierania jest zakonczony jednostka
sterujaca bada zawartosc Irw celu stwierdzenia czy zawiera on
specyfikator argument wykorzystujacy adresowanie posrednie. Jeśli
tak to przeprowadzany jest cykl posredni. Do rejestru MAR jest
przenoszonych N najbardziej znaczacych bitow rejestru MBR
zawierajacych odniesienie do adresu. Nastepnie jednostka sterujaca
zglasza zapotrzebowanie na odczyt z pamieci w celu wprowadzenia
pozadanego adresu argumentu do rejestru MBR.
Cykl rozkazu przybiera wiele postaci, ponieważ postac ta zalezy od
tego, który z roznorodnych rozkazow maszynowych znajduje się w
rejestrze IR. Może obejmowac przesylanie danych miedzy
rejestrami, odczytanie lub zapisanie w pamieci, operację wewy oraz
wywołanie ALU.
Cykl przerwania jest także prosty i przewidywalny. Bieżąca
zawartosc licznika PC musi być zapisana, żeby procesor mógł
wznowić normalną działalość po przerwaniu. Zawartość licznika PC
jest przenoszona do rejestru MBR w celu zapisania w pamieci.
Zawartos specjalnej zarezerwowanej do tego celu lokacji pamieci jest
ladowana do MAR przez jednostke sterujaca. Do licznika PC
ladowany jest adres procedury przerwania. W rezultacie rozpoczyna
się nastepny cykl rozkazu przez pobranie odpowieniego rozkazu.
Procesory Sieciowe NP(Network Processors)
specjalizowany, programowalny układ scalony wysokiej skali
integracji, zoptymalizowany do pracy w sprzęcie
telekomunikacyjnym, umożliwia przetwarzanie danych z prędkością
pasma(wire speed), 100Mbps, OC3, OC12, 1GE, OC48, OC
192,10GE, szeroki wachlarz zastosowań
ZALETY: uniwersalność zastosowań, niskie koszty produkcji i
uruchamiania systemu, relatywnie krotki czas implementacji
dowolnej aplikacji
WADYwysoka cena jednostkowa, stosunkowo młoda technologia,
może nie być optymalnie wykorzystany, dużo zależy od zdolności
programistów.
MIKROCORE: wieloprocesorowy(multi uENGINE, wielowątkowy
(multi THREAD), odpowiedzialny za wykonanie programu,
uENGINE na bazie RSC, specjalizowany zestaw instrukcji,
architektura 32bit / 64bit.
PAMIEC PROGRAMU / ZEWNETRZNA PP
1k4k instrukcji, rozdzielna z inna pamięcią, dostepna z
poziomu CPU
PAMIEC LOKALNA: rejestry,globalne,lokalne, sąsiednie,
transferowe,semafory,pamiec podręczna
PAMIEC ZEWNETRZNA:SRAM, DRAM, CAM, dostęp (64bit /
48bit / 32bit / 16bit / 8bit)
BUFORY ODBIORCZE / NADAWCZE:
programowalna wielkość buforów, odpowiedzialne za
przechowywanie danych odebranych z wejścia oraz gotowych do
nadania na wyjście przydzielone do kanałów I/O,
PACKET PROCESSING ENGINE: wykonuje sekwencyjnie
polecenia MIKROENGINE dotyczące rożnych operacji na
odebranych pakietach, informuje MIKROENGINE o odbiorze /
nadawaniu pakietu (status operacji)
INTERFEJS DO UKŁ. ZEWNĘTRZNYCH:
CPU (PCI / przestrzeń adresowa), Switch Fabric (CSIX), PHY
(framer / MAC), koprocesor(XMS)
MIEJSCE I FUNKCJE NP: pojedynczy NP, ukł.Szeregowy
(pipeline), ukł.Równoległy(parallel), ukł.Mieszany
ZASTOSOWANIE NP: Fast Processing Path: L2L7
switching/routing, Qos, VoIP, MPLS, enkrypcja/dekrypcja,
kompresja/dekompresja, VPN, DSLAM.
–Obniżenie cen NP
skłania producentów do stosowania ich w sprzęcie
produkowanym masowo(switch/router do biura do domu)
Uklad 8253 – programpwalny modul czasowy; 3 rejestry 16bitowe
liczniki w kodzie 2kowym lub BCD; niezalezne programow. 6
trybow pracy; wej. zegarowe( < 2MHz) i bramkujace GATE; wej.
Sygn. zalezne od trybu pracy; Rejestr sterujacy b7...b0: b7b6
wybor liucznika; b5b4stan licznika; b3b2b1wybor trybu pracy;
b0wybor sposobu zliczania; Mozliwe tryby pracy: 0generator
przerwania po odliczeni; 1generator pojedynczego impulsu o
zadanej dl.; 2licznik modulo n; 3generator impulsow o zadanej
czest.; 4programowy generator opoznionego poj. Impulsu; 5
sprzetowy generator opoznionego poj. Impulsu;
Uklad 8251 USART – przyjmuje dane w postaci rownoleglej i
wysyla szeregowo, a przy odbiorze dziala odwrotnie. Nozki
ukladu:mikroprocesor(d0...d7,CS,C/D,WR,RD,RESET,CLK)
odbiornik(SYNDET,RxRDY,RxD,RxC)nadajnik
(TxE,TxRDY,TxD,TxC)modem(DTR,DSR,RTS,CTS)Formaty
transmisji:synchr.,asynchr.Budowa
ukl.:rejestry(sterujacy,
odbiornika RArownolegly ,odbiornika RBszer.rownol., nadajnika
TArownolegly i TBrownol.szeregowy)Odczyt bufora danych
oznacza odczyt rej. RA, zapois bufora danych oznacza wpis do
rej. TA.Slowo statusowe:s7stan sygnaly DSR, s6stan sygnalu
SYNDET, s5blad bitu STOP, s4blad przepelnienia, s3blad
parzystosci, s2stan sygnalu TxE, s1stan sygnalu RxRDY, s0
stan sygnalu TxRDY. Programowanie:wpis slow MODE(tryb
pracy) i CONTROL(sterowanie)
Uklad 8255 – programowalny uklad we/wy, rownolegle(8bitowe)
dwukierunkowe przesylanie danych w 3 mozliwych trybach pracy,
przystosowany do wspolp[racy z magistrala uPRO 8080 z
kontrolerem magistrali 8228. Cechy:3 rejestry 8bitowe we/wy:A,
B, C, oraz rejestr sterujacy. Wybor rejestru bitami adresu a1a0.
Rejestry A i B moga pracowac jako rej. we/wy o
funkcjachzaleznych od trybu pracy, rej. C moze byc uzywany jako
2 niezaleznie sterowane rej. 4Bitowe.Tryb pracy: b7zawsze 1,
b6b5tryb pracy rejestru, b4funkcja rejestru A(0ukl.we, 1ukl.
wy), b3f.gornej czesci rej. C(0wy, 1we), b2tryb pracy rej. B, b1
f.rej. B, b0f. dolnej czesci rej. C. Po sygnale RESET wszystkie
rej. sa ukl. Wej. Sygnaly: STBsygnal strobu zapisu do rej. wej.,
IBFsygnal zajetosci w efekcie wpisania danej do rejestru wejsc.,
INTRprzerwanie generowane w chwili przejscia sygnalu STB:
0>1, INTR i IBF sa kasowane po odczycie danej z rejetru przez
procesor. Przy pracy rejestru jako wyjsciowy: WRwpis danej do
rejstru i wtedy jest generowany sygnal, OBFslowo gotowe do
odczytania przez urzadzenie zewn., ACKsygnal potwierdzenia
po odczycie ze strony urzadzenia zewnetrzn. generuje
przerwanie INTR
Uklad 8214 – uklad kontroli przerwan priorytetowych wspolpraca
z uPRO 8080. Linie we/wy: r0...r7sygnaly wej. zadania
przerwania, b0b1b2sygnaly wej.okreslaja poziom maskowania
przerwan, SGSsygnal wej.rejestru sterujacego, ECS
sygn.wej.zapis slowa do rej.sterujacego, INTE
sygn.wej.zezwalajacy na przyjecie przerwania, ELRsygn.wej.
Blokujacy
uklad
kontroli
przerwania,
ETLG
sygn.wej.umozliwiajacy wlaczenie modulu w lancuch przerwan,
ENLGsygn.wyj.blokujacy nastepne moduly w lancuchu przerwan,
a0a1a2sygn.wyj.okreslaja kod biezacego przerwania, INT
sygn.wyj.zadania przerwania.
Modul zawiera:8bitowy
rej.zgloszen zadania przerwania, 4bitowy rej.poziomu
maskowania przerwan, 3bitowy rej.priorytetowy wspolpracujacy z
rej.zgloszen, 3bitowy komparator priorytetow.
Uklad 8259 –
programowalny sterownik przerwan,
mozliwosci:programowane maskowanie sygn.zgloszen zadania
przerwania, maskowanie specjalneodblokowanie nizszych
poziomow, programowy wybor protokolu priorytetowego,
programowe wybranie wektora adresu programu obslugi,
rozbudowa do 64 poziomow przerwan, mozliwosc pobrania
zawartosci rej.zgloszen bez generacji pzrerwania, praca w trybie
pooling. Budowa: rej.zgloszen zadan IRR, rej.maskujacy IMR,
rej.obslugi przerwan ISR, uklad wyboru priorytetu, bufory i uklady
sterujace.
Sygnaly:
d0...d7dwukierunkowe dane, RD
sygn.odczytu, WRsygn.zapisu, CSselekcja modulu, a0wejscie
adresowe, INTwyj.sygn.przerwania, INTApotwierdzenie, IR0...IR7
wejscia zgloszen zadan, SP (1uklad pelni role ukladu
nadrzednego, 0pojedynczy), CAS0,CAS1,CAS2 we/wy uzywane w
kaskadzie. Slowa sterujace:slowa inicjujace(sekwencja slow ICW1 i
ICW2 lubICW1, ICW2, ICW3 gdy pracujemy w kaskadzie), slowa
operacyjne(OCW1, OCW2, OCW3).ICW1, ICW2 okreslaja adres
wektora przerwania i jego organizacje. ICW1 – (d7...d0); ICW2 –
zawiera bardziej znaczacy bajt adresu poczatku podprogramu
obslugi przerwania; ICW3 – okresla strukture ukl.kontroli przerwan,
dla MASTER wskazuje ze na wejscie Si jest dolaczony uklad
SLAVE, dla SLAVE wskazuje w postaci binarnej na numer wejscia
IR, do ktorego podlaczony jest ten modul.
Inicjalizacja: wyzerowanie rej.zgloszen IRR, wyzerowanie
rej.maskowania IMR, wyzerowanie przerzutnika maski specjalnej,
wyzerowanie przerzutnika odczytu slowa stanu modulu, ustalenie
priorytetu: IR7najnizszy IR0najwyszy.Dzialanie ukladu: wyslanie
na magistrale danych kolejnych bajtow rozkazu CALL(po uzyskaniu
odpowiedzi INTA procesora na sygnal INT), nastepuje wpisanie 1 na
odpowiednia pozycje w rej.obslugi, co blokuje mozliwosc
przyjmowania przerwan o tym samym lub nizszym priorytecie.
OCW1 – umozliwia zamaskowanie aktualnego przerwania; OCW2 –
wpisuje sie je na zakonczenie programu obslugi, umozliwia rotacje
priorytetow; OCW3 – konczy maskowania specjalne modulu
wprowadone slowem; Rotacja automatyczna – obsluzone przerwanie
uzyskuje najnizszy priorytet, a pozostale sa cyklicznie przesuwane w
zakresie przyporzadkowania wejsciom zgloszen IR0...IR7;
Odpytywanie – sprawdzanie,czy jest sygnal przerwania, pobiera
slowo zawierajace numer wejscia przerwania o najwyzszym
priorytecie i informacje o tym, czy jest przerwanie d7=1 – jest, d7=0
– nie ma
Uklad UART w komp. IBM PC – zawiera kilkanascie rejestrow,
adres pierwszego portu, sposrod kilku kolejnych zwiazanych z
laczem szeregowym nazywany jest bazowym. UART obsluguje lacze
COM1 dostepny jest poprzez porty wskazane przez adsres bazowy
3F8H, zas uklad COM2 – przez adres bazowy 2F8. Rejestry(skrot,
nazwa, zapis/odczyt, offset, adresy w Com1 i COM2): RBR –
buforowy odbiornika, O, 0, 3F8, 2F8; THR – buforowy nadajnika, Z,
0, 3F8, 2F8; IER – maskowania przerwan, O/Z, 1, 3F9, 2F9; IIR –
identyfikacji przerwan, O, 2, 3FA, 2FA; LCR – sterowania linia, O/Z,
3, 3FB, 2FB; MCR – sterowania modemem, O/Z, 4, 3FC, 2FC; LSR
– stanu linii, O/Z, 5, 3FD, 2FD; MSR – stanu modemu, O/Z, 6, 3FE,
2FE; Rejestry dostepne przez porty, jesli bit DLAB znajduje sie w
stanie 1: DLL – divisor latch, low byte, O/Z, 0, 3F8, 2F8; DLM –
divisor latch, high byte, O/Z, 1, 3F9, 2F9; Rejestry dostepne tylko w
nmiektorych UART: FCR – FIFO control register, Z, 2, 3FA, 2FA;
SCR – scratch register, O/Z, 7, 3FF, 2FF;
Rejestr sterowania modemem MCR: posredniczy w przesylaniu
sygnalow sterujacych do modemu; Struktura: 70, 60, 50, 4LOOP,
3OUT2, 2OUT1, 1RTS, 0DTR. podstawowa role pelnia RTS i
DTR. DTR polaczana jest z linia sterujaca, zas RTS polaczona jest z
linia sterujaca RTS, Linia DTR reprezentuje ogolna sprawnosc
urzadzenia – sygnalizowana poprzez ustawienie bitu DTR w stan 1.
Zazwyczaj wymagane jest podtrzymanie stanu linii DTR przez caly
czas transmisji (stan bitu DTR na 0 oznacza przerwanie transmisji).
Linia RTS uzywana do realizacjiprotokolu zwrotnego. Obecnie bit
RTS ustawiany jest w stan 1 na poczatku transmisji i pozostaje tak
ustawiony az do zakknczenia transmisji. Rejestr MCR zawiera dwa
bity Out1, Out2 rozszerzajace mozliwosci sterowania podzespolami
dolaczonymi do komputera, a także bit LOOP uzywany do
wprowadzenia ukladu UART w stan testowania. Rejestr stanu linii
LSR: jego bity odzwierciedlaja stan podzespolow UART sluzacych do
oceny transmisji. Struktura: 70, 6TEMT, 5THRE, 4BI, 3FE, 2PE,
1OE, 0DR. DR przyjmuje wrtosc 1 gdy w rejestrze RBR odbiornika
zostal skompletowany bajt. OE sygnalizujeblad polegajacy na
zagubieniu znaku (1 – program nie zdazyl odczytac bajtu z rejestru
RBR). PE sygnalizuje blad parzystosci (1 – gdy bajt nie spelnia
wymagan dotyczacych parzystosci). FE sygnalizuje blad ramki (1 –
niepoprawne przyjecie bitu stopu). BI jest ustawiany w 1 jesli UART
stwierdzi ze odlegly system wysyla sygnal space przez pewien czas
dluzszy niz czas przesylania jednego znaku. Rejestr stanu modemu
MSR: zawiera informacje o stanie sygnalow sterujacych
dochadzacych z modemu. Struktura: 7DCD, 6RI, 5DSR, 4CTS, 3
DDCD, 2TERI, 1DDSR, 0DCTS. CTS – gotowosc modemu do
przyjecia znakow nadawanych przez komp. DSR – gotowosc
modemu do pracy. RI – dzwonek,wywolanie linii. DCD – wykrycie
emisji fali nosnej w linii.TERI zwiazany z bitem sygnalizacji
dzwonienia RI. Rejestr scratch SCR: dostepny jest w nowszych
wersjach ukl UART, jest oddzielony od ukladow sterowania i nie
wplywa na ich prace, stosuje sie go do tymczasowego
przechowywania pojedynczego bajtu, a ponadto obecnosc tego
rejetru wskazuje ze w kompie nie jest zainstalowany uklad 8250 lecz
cos innego.
Identyfikacja obecnosci i typu ukladu UART – polega na wpisaniu
do wybranego portu jakiejs char.wartosci i nastepnieodczytanie jej z
tego portu – jesli wartosc odczytana jest rowna zapisanej to
identyfikowany podzespol jest zainstalowany. Wszystkie obecnie
wykorzystywane uklady UART posiadaja mozliwosc pracy w trybie
petli zwrotnej, w ktorym sygnaly wysylane sa na zewnatrz ukladu
UART za pomoca wewnetrznych ukladow przelaczajacych,
nastepnie sa zawracane i kierowane na wejscie ukladu UART.
Wpisanie znaku do THR powoduje ze znak ten zostanie wyslany i
pojawi sie w rejestrze RBR. Poniewaz rejestry THR i RBR dostepne
sa przez ten sam port 3F8H(dla COM1) zatem zapis do THR i odczyt
z RBR niczym sie nei rozni od operacji zapisu i odczytu w dowolnym
rejestrze.Podlaczenie linii stesujacych rejstru MCR z MSR: OUT2
>DCD, OUT1>RI, RTS>CTS, DTR>DSR.