beta 0 9poprawione id 82938 Nieznany (2)

background image

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 fizyczna­klasyczny 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. 1­uproszczony
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­, 32­bitowy.

Podstawowe zastosowania
Mikroprocesory 
– technika obliczeniowa, przetwarzanie danych,
komputery osobiste, serwery, itp.

Mikrokontrolery – układy kontrolno­pomiarowe, 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 (0­n),
­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 8­bitowych) do
kilkuset (np. 32­bitowy 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:
Auto­inkrementacja (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 <­ SP­2 <­ 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 :
8­bitowy rejestr rozkazow
8­bitowy akumulator
szesc 8­bitowych rejestrow ogolnego przeznaczenia B, C, D, E, H,
L. Rejestry te można łączyć w pary 16­bitowe BC, DE, HL. Ich
przeznaczenia jest dowolne, lecz z listy rozkazow wynikaja
najczestsze zastosowania : 
 HL ­ podstawowy rejestr pośredniego adresowania danych –
wskaźnik danych 

background image

 DE – pomocniczy rejestr pośredniego adresowania danych
 BC – jeden 16­bitowy lub dwa 8­bitowe 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 : 
 ­ 8­bitowa, dwukierunkowa, trojstanowa szyna danych
 ­ 16­bitowa trojstanowa szyna adresowa
 ­ 5­bitowa 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 (

) 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;

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 da­nych

Status

Pobra­nie roz­kazu

Czy­taj pa­miec

Pisz 

do pa­mie­ci

Czy­taj ze stosu

Pisz na stos

Czy­taj

ukl. I/O

Pisz do ukl I/O

Po­twier­dzenie prze­rwa­nia

Po­twier­dzenie wy­kona­nia rozkazu HLTPo­twier­

dzenie prze­rwania pod­czas 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   –   8­bit
szyna danych / 8086 – 16­bit 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ż   procesor­pamięć.   (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ścia­wyjś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  (8­16
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
(1­16   MHz);   jest   zasilany   napięciem   (2,7­5,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
RESETOWANIE4 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 (Brown­out 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 PORTAMIDDRa (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,5­5,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,5­12,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,5­5,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

background image

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 8­bitowy 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…15­numer   deskryptora,   16…31­   bity
nieokreslone

ROZDZIAL 3 (wyklad drugi)
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
­
UART  wprocesorach AVR Atmel
****************************************
REJESTRY:

dzielnika   zegara   transmisji   0­11bitow   (inicjalnie

same 0)

danych (zapis dla nadajnika i odczyt dla odbiornika)

0­7bitow (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 9­cio 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ła­wyjście   lub   ½

adresu   w   trybie   rozszerzonym);

C(tr.równoległa­we/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(0­3   priorytet   przerwań   maskowanych,   4­7   tryb

pracy);

CONFIG(0­3   konfiguracja);INIT(0­3   położenie   bloku

rejestrów   konfiguracji   w   pamięci,   4­7   poł.   RAM   w   pamięci);
TMSK2(0­1 wybór współczynnika skali timera, 4­7 konf. timera i
akumulatora);

OPTION(0­1 współczynnik skali timera COP,   2­7

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’,   8­9   bitów   danyc,   ‘1’;   występuje
przerwa, stan logiczny 0 przez wiele ramek)
NADAJNIK REJESTRYSCDR (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
ADR1­ADR4;   łą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   MCS­48.   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 00­7F dostepna adresowaniem posrednim i
bezposrednim
(02Fh ­ 020h) ­ Obszar pamieci sdresowanej bitowo Bity o numerach
00­7F
(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
(003h­00Ah) ­ wejscie przerwania INT0
(00Bh­012h) ­ wejscie przerwania T0
(013h­01Ch) ­ wejscie przerwania INT1
(01Bh­022h) ­ wejscie przerwania T1
(023h­02Ah) ­ wejscie przerwania z portu szeregowego
(02Bh­032h) ­ wejscie przerwania T2 (tylko seria 32/52)
(033h­03Ah) ­ reszta strony 0 pamieci programu
(800h­0FFFh) ­ strona 1 pamieci programu
(1000h­17FFh) ­ strona 2 pamieci programu
.................
(F800h­FFFFh) ­ 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 przerwan­jeś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 32­bitowych 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

background image

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/wyjscia­generowane   przez   sterownik   we­wy   w   celu
zasygnalizownia   normalnego   zakonczenia   operacji   lub   w   celu
zasygnalizowania roznych warunkow bledu.

­uszkodzenie   sprzetu­generowane   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ę we­wy 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,   OC­3,   OC­12,   1GE,   OC­48,   OC­
192,10GE, szeroki wachlarz zastosowań
ZALETY:   ­uniwersalność   zastosowań,   ­niskie   koszty   produkcji   i
uruchamiania   systemu,   ­relatywnie   krotki   czas   implementacji
dowolnej aplikacji
WADY­wysoka 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
­   1k­4k   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: 
­C
PU (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:  ­L2­L7
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;   b5b4­stan   licznika;  b3b2b1­wybor  trybu   pracy;
b0­wybor   sposobu   zliczania;  Mozliwe   tryby   pracy:  0­generator
przerwania   po   odliczeni;   1­generator   pojedynczego   impulsu   o
zadanej dl.; 2­licznik modulo n; 3­generator impulsow o zadanej
czest.;   4­programowy   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 RA­rownolegly ,odbiornika RB­szer.­rownol., nadajnika
TA­rownolegly   i   TB­rownol.­szeregowy)Odczyt   bufora   danych
oznacza odczyt rej. RA, zapois bufora danych oznacza wpis do
rej. TA.Slowo statusowe:s7­stan sygnaly ­DSR, s6­stan sygnalu
SYNDET,   s5­blad   bitu   STOP,   s4­blad   przepelnienia,   s3­blad
parzystosci, s2­stan sygnalu TxE, s1­stan 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:  b7­zawsze 1,
b6b5­tryb   pracy   rejestru,   b4­funkcja   rejestru   A(0­ukl.we,   1­ukl.
wy), b3­f.gornej czesci rej. C(0­wy, 1­we), b2­tryb pracy rej. B, b1­
f.rej. B, b0­f. dolnej czesci rej. C. Po sygnale RESET wszystkie
rej. sa ukl. Wej. Sygnaly: ­STB­sygnal strobu zapisu do rej. wej.,
IBF­sygnal zajetosci w efekcie wpisania danej do rejestru wejsc.,
INTR­przerwanie  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: ­WR­wpis danej do
rejstru i wtedy jest generowany sygnal, ­OBF­slowo gotowe do
odczytania  przez  urzadzenie zewn., ­ACK­sygnal potwierdzenia
po   odczycie   ze   strony   urzadzenia   zewnetrzn.   ­   generuje
przerwanie INTR
Uklad 8214 – uklad kontroli przerwan priorytetowych wspolpraca
z   uPRO   8080.  Linie   we/wy:  r0...r7­sygnaly   wej.   zadania
przerwania,   b0b1b2­sygnaly   wej.okreslaja   poziom   maskowania
przerwan,   SGS­sygnal   wej.rejestru   sterujacego,   ECS­
sygn.wej.zapis   slowa   do   rej.sterujacego,   INTE­
sygn.wej.zezwalajacy   na   przyjecie   przerwania,   ELR­sygn.wej.
Blokujacy

 

uklad

 

kontroli

 

przerwania,

 

ETLG­

sygn.wej.umozliwiajacy   wlaczenie   modulu   w  lancuch   przerwan,
ENLG­sygn.wyj.blokujacy nastepne moduly w lancuchu przerwan,
a0a1a2­sygn.wyj.okreslaja   kod   biezacego   przerwania,   INT­
sygn.wyj.zadania   przerwania.

 Modul   zawiera:8­bitowy

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   specjalne­odblokowanie   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...d7­dwukierunkowe   dane,   ­RD­

sygn.odczytu,   ­WR­sygn.zapisu,   ­CS­selekcja   modulu,   a0­wejscie
adresowe, INT­wyj.sygn.przerwania, ­INTA­potwierdzenie, IR0...IR7­
wejscia   zgloszen   zadan,   ­SP­   (1­uklad   pelni   role   ukladu
nadrzednego, 0­pojedynczy), 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:  IR7­najnizszy  IR0­najwyszy.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: 7­0, 6­0, 5­0, 4­LOOP,
3­OUT2,   2­OUT1,   1­RTS,   0­DTR.   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: 7­0, 6­TEMT, 5­THRE, 4­BI, 3­FE, 2­PE,
1­OE, 0­DR. 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: 7­DCD, 6­RI, 5­DSR, 4­CTS, 3­
DDCD,   2­TERI,  1­DDSR,   0­DCTS.  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.


Wyszukiwarka

Podobne podstrony:
Beta laktamy poprawione2 id 829 Nieznany (2)
5 BHP beta id 40061 Nieznany (2)
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany
Misc3 id 302777 Nieznany
cw med 5 id 122239 Nieznany

więcej podobnych podstron