Sunteți pe pagina 1din 27

Introducere

Se consider anul 1971, cnd INTEL a anunat producerea


primului microprocesor, ca momentul trecerii de la electronica
implementat cablat la electronica realizat programat. Primul
microprocesor 4004 a fost conceput de M. E. Hoff ca un procesor
puin simplificat pentru a putea fi implementat, la vremea aceea,
pe un singur cip n siliciu. Iniial, microprocesorul nu a fost un
computeron-a-chip, dei n timp a ajuns la acest stadiu; conceptul de
microprocesor s-a dezvoltat i spre alte implementri specifice:
microcontroller, microcalculator, procesor de semnale (DSP).
Oricare din aceste circuite, pentru a deveni parte a unui sistem,
impune un proces de proiectare care se bazeaz n egal msur
att pe componenta hardware ct i pe componenta software.
Microprocesorul, sau celelalte variante ale sale, integrat ntrun system aduc acestuia acea performan, care atunci cnd este
realizat de fiina uman este referit ca inteligen. n general,
microprocesorul este integrat ca unitate central de procesare n
sistemele digitale de calcul. Actual, aproape toate sistemele au o
arhitectur de sistem digital particularizndu-se n funcie de
aplicare/utilizare. Aplicaiile care nu sunt, n sensul clasic, sisteme
digitale de calcul sunt n general implementate pe baz de
microprocesor sau DSP. Implementrile sistemelor pe baz de
microcontroller ori DSP devin simple i ieftine -pentru c
utilizeaz deja o component de serie, devin performante
pentru c utilizeaz o component care
poate asigura suport pentru inteligen, devin flexibile
pentru c utilizeaz o component ce poate fi programat.
Proiectarea arhitecturii SMP
Spre deosebire de proiectarea aparatului electronic tradiional, proiectarea

sistemelor pe MP are un ir de etape speciale, cauzate de mijloacele hard i soft


accesibile. Problema de baz const n gsirea interaciunii optimale ntre
mijloacele hard i soft a sistemului.
Analiza cerinelor ctre sistemele pe MP. La aceast etap se formuleaz
cerinele tehnice, obiective ctre sistem i funciile ndeplinite n baza terminilor
primii pentru descrierea tehnic a SMP, determinarea parametrilor, caracteristicilor
i regimurilor de lucru. Totalitatea de cerine tehnice impuse SMP trebuie s
asigure rezolvarea problemei puse.
nainte de a lua decizia despre metodele realizrii SMP, este necesar de a
cerceta cerinele impuse: viteza de lucru, gabarite, masa, consumul energiei,
tehnologizare, preul.
n afar de aceasta trebuie de evideniat cerinele, ndeplinirea crora nu este
strict obligatorie, de asemenea i resticiile ctre SMP. La aceast etap se
determin

resursele

pentru

realizarea

sistemului:

de

munc,

materiale,

instrumentale etc. n acest caz se ia n consideraie posibilitatea de utilizare a


hardului i softului aflat n posesie.
Determinarea i analiza cerinelor tehnice ctre SMP sunt asemntoare cu
cele utilizate n electronica tradiional. Acest fapt este adevrat doar parial,
fiindc SMP au o flexibilitate mai nalt referitor la ndeplinirea funciilor. Dac
proprietile de funcionare a dispozitivelor, construite pe baza numai a mijloacelor
hard, sunt determinate de elementele scheme i trebuie s corespund n ntregime
cu cerinele impuse la nceputul proiectrii, atunci la utilizarea microprocesorului
ele pot fi indicate dup proiectarea softului. Aceasta cteodat duce la o realizare
optim a SMP.
La acest nivel se elaboreaz structura general a SMP i algoritmele lui de
funcionare. Una din sarcinele proiectrii structurale este divizarea SMP n module
funcionale complete ce permite de a duce o proiectarea paralel cu mai muli
proiectani.
La aceast etap trebuie luat decizia referitor la divizarea cerinelor tehnice i
funciilor dintre hard i soft a SMP. Dup aceasta se proiecteaz paralel resursele

hard i soft.
Proiectarea resurselor fizice (hard) a SMP
Dup ce s-a gsit o interaciune optimal ntre resursele hard i soft se face
proiectarea amnunit a prii fizice a SMP. Este necesar de a remarca unele
particulariti de proiectarea a hardului. n majoritatea cazurilor componena
aparatajului diferitor SMP construite pe unul i acela microprocesor sunt
asemntoare. Ele constau din microprocesor, memorie, decodare de adrese i
module periferice pentru legtura cu dispozitivele externe. Proiectarea hardului
SMP este mai simpl i ieftin dect aparatajului electronic, fiindc n cazul
alegerii unui tip concret de microprocesor pot fi utilizate rezolvri standarde.

1.Proiectarea procesorului Intel 8086


Cele doua caracteristici hardware eseniale ce definesc funcionarea
microprocesorului I8086 sunt:
- multiplexarea in timp a magistralei de adrese si date (microprocesorul are
configuraie intern comutabil pentru adaptarea la nivelul de complexitate a
sistemului in care este utilizat.
Astfel, in sistemele simple, 8086 ii genereaz si controleaz singur semnalele
de pe magistrala de control; in sistemele complexe, magistrala de control este
generata de un circuit specializat din familia lui 8086, circuit denumit "controler de
magistrala" (8288 Bus Controller), opt dintre conexiunile fizice ale
microprocesorului fiind comutate pentru a indeplini functiunile de coordonare
MX

necesare. Un singur pin al lui 8086, pinul 33 (MN /


), conectat la masa sau la
alimentare, comanda comutarea configuratiei interne a microprocesorului pentru
adaptarea la sistemul extern.
1.1 Arhitectura microprocesorului
Executia unui program intr-un sistem cu microprocesor are ca efect (intr-o
abordare simplificata) repetarea ciclica a pasilor de mai jos:
1. Extragerea urmatoarei instructiuni din memorie.
2. Citirea unui operand (daca instructiunea o cere).
3. Executia instructiunii.
4. Scrierea rezultatului (daca instructiunea o cere).
Datorita arhitecturii specifice, executia acestor pasi are loc in doua unitati
separate de procesare a datelor din cadrul CPU: EU (execution unit) unitatea de
executie si BIU (bus interface unit) unitatea de interfata cu magistrala. In EU
are loc executia instructiunilor, in timp ce BIU extrage instructiunile, citeste

operanzii si scrie rezultatele in memorie. Cele doua unitati pot opera independent
una de cealalta si pot asigura in majoritatea cazurilor suprapunerea in timp a
etapei de extragere a unei instructiuni cu etapa de executie a unei instructiuni
precedent extrase din memorie. In acest mod, practic "dispare" timpul necesar
extragerii instructiunilor din memorie, crescand viteza de lucru a
microprocesorului deoarece EU executa instructiuni al caror cod a fost deja adus
de catre BIU din memorie in microprocesor.
EU Unitatea de executie
Unitatea de executie contine registrii de uz general, unitatea aritmetico-logica,
registrul indicatorilor de conditie, un bloc logic de control si o magistrala interna
de date de 16 biti (figura 1.1).
Functiile EU acopera executia tuturor instructiunilor, furnizarea datelor si a
adreselor catre BIU, controlul registrelor de uz general si al indicatorilor de
conditie. Cu exceptia citorva pini de control, unitatea de executie este complet
izolata de "lumea exterioara". Asa cum se evidentiaza in figura 1.1, EU preia
instructiunea urmatoare de executat dintr-o coada de asteptare alimentata continuu
de unitatea de interfata cu magistrala.

Figura. 1.1. Schema bloc a MP I8086


In situatia in care nu exista nici o instructiune de preluat pentru a fi executata,
unitatea de executie asteapta pina cind coada este realimentata de catre BIU. Daca
in cursul executiei instructiunii este necesar accesul la o locatie de memorie sau la
un echipament periferic, EU solicita unitatii de interfata cu magistrala sa transfere
data, executand ciclul de magistrala corespunzator (citire/scriere la memorie sau
port). Totodata, desi magistrala EU are doar 16 biti, se poate accesa in exterior

intregul spatiu de un megaoctet de memorie prin intermediul BIU care asigura


relocatarea adresei inaintea fiecarui transfer.

BIU Unitatea de interfata cu magistrala


Unitatea de interfata cu magistrala executa toate operatiile externe de
magistrala ce sunt necesare pe parcursul extragerii si executiei unei instructiuni. Ea
se compune din registrii de segment, un registru de tip contor de program denumit
pointer de instructiuni (instruction pointer), registri de comunicatie interna, o
schema logica pentru generarea adresei pe cele 20 de linii de adresa ale
microprocesorului 8086 si pentru controlul magistralei multiplexate precum si o
coada de instructiuni (queue). Aceasta este realizata cu o memorie RAM de 6
octeti si contine instructiuni care sunt extrase in avans de BIU si urmeaza sa fie
preluate de EU pentru decodificare si executie.
Cele doua unitati de procesare ale CPU opereaza independent una de alta in
sensul ca, ori de cite ori doi sau mai multi octeti din coada sunt liberi, iar EU nu
solicita BIU la efectuarea vreunui ciclu de magistrala, unitatea de interfata cu
magistrala executa in avans cicluri de extragere de instructiuni pentru a realimenta
locatiile libere din coada de instructiuni. Acest mod de lucru permite BIU sa
furnizeze EU instructiuni extrase anterior fara a monopoliza magistrala sistemului
caci, in mod normal, in majoritatea situatiilor coada de instructiuni contine cel
putin un octet ce poate fi preluat de EU pentru decodificare si executie. In plus,
cum sistemele cu microprocesor 8086 au uzual magistrala de date de 16 biti, intrun singur ciclu de extragere se alimenteaza coada cu doi octeti, cu exceptia
cazurilor cand adresa de la care se citeste instructiunea urmatoare este impara, asa
cum se va arata ulterior.
Instructiunile extrase in avans de BIU sunt cele care urmeaza in mod logic intro procesare seriala a programului, ele aflindu-se in memorie in locatii adiacente si
la adrese superioare adresei instructiunii care se executa la un moment dat. In cazul
in care EU executa o instructiune care transfera controlul programului catre o alta
locatie de memorie, BIU reseteaza coada, extrage instructiunea de la noua adresa,
transferand-o imediat unitatii de executie, apoi incepe realimentarea cozii de la
noua locatie. De asemenea, BIU suspenda operatiile de extragere de instructiuni
(cu exceptia celei in curs de desfasurare) ori de cite ori unitatea de executie solicita
efectuarea pe magistrala a unui transfer cu memoria sau cu un port de intrare/iesire.
Registrele de uz general
Microprocesorul 8086 are 8 registre generale de 16 biti grupate in doua seturi a

cite 4 registre fiecare: registrele de date (uneori denumite grupul registrelor H&L
de la high si low) si registrele pointer si index (denumite si grupul P&I).
Un registru apartinind grupului H&L se caracterizeaza prin faptul ca poate fi
adresat ca registru de 16 biti, dar se compune din doua entitati de 8 biti, partea
high si partea low, care pot fi adresate la rindul lor separat, ca registre de 8 biti.
Registrele pointer si index nu pot fi adresate decat ca registre de 16 biti. Atat
registrele de date cat si registrele pointer si index pot fi folosite in majoritatea
operatiilor aritmetice si logice, oricare dintre ele putand juca rolul registrului
"acumulator" existent la generatiile precedente de microprocesoare. Pentru a
permite utilizarea unui set compact, dar puternic de instructiuni, anumite registre
sunt folosite in mod implicit de unele instructiuni, asa cum arata tabelul 1.1.

Figura 1.2 Setul de regitri


Tabelul 1
Utilizarea implicit a registrilor de uz general
REGIS
OPERAII
TRU
AX
Inmuliri, impariri i I/E pe cuvnt
AL
Inmultiri, impartiri si I/E pe octet, translatari,
aritmetica zecimala
AH
Inmultiri si impartiri pe octet
BX
Translatari
CX
Operatii cu siruri de caractere, contor pentru
operatii repetate

CL
DX

Deplasari si rotiri cu mai mult de o pozitie


Inmultiri si impartiri pe cuvint, I/E cu adresare
indirecta
SP
Operatii cu stiva
SI, DI
Operatii cu siruri de caractere
Registrele de segment
Spatiul fizic de memorie de 1 Mb direct adresabil de microprocesorul 8086
este divizat in segmente logice de pana la 64 kB fiecare .CPU are acces direct in
orice moment la patru segmente logice ale caror adrese de baza (adresele de
inceput ale segmentelor) se afla in registrii de segment ai microprocesorului (figura
1.3).
Registrul segmentului de cod (CS) contine adresa de inceput a segmentului din

Figura 1.3. Registrele de segment


care sunt extrase instructiunile segmentul de cod.
Stiva programului se afla in asa numitul segment de stiva catre care
"pointeaza" registrul segmentului de stiva (SS). Mai exista de asemenea doua
segmente de date, unul propriu-zis (DS) si unul suplimentar (ES) fiecaruia fiindu-i
asociat cate un registru de segment ce contine adresa de inceput respectiva. Si
registrele de segment sunt accesibile programatorului, continutul lor putind fi
modificat de anumite instructiuni.
Registrul pointerului de instructiuni
Registrul pointerului de instructiuni (Instruction Pointer) este similar
registrului contor de program (Program Counter) al microprocesoarelor pe 8 biti.
Actualizat de catre BIU, el contine ofsetul (distanta in octeti) urmatoarei
instructiuni, masurat de la inceputul segmentului curent de cod. Astfel spus, IP
reprezinta in mod normal un pointer catre urmatoarea instructiune ce urmeaza a fi
extrasa de catre BIU, iar atunci cand este salvat in stiva se modifica automat
pentru a indica ofsetul urmatoarei instructiuni ce urmeaza a fi executata de EU.
Operarea cu continutul IP odata salvat in stiva constituie calea prin care acesta
poate fi modificat indirect in decursul executiei unui program.
Indicatorii de conditie:
Microprocesorul 8086 are 6 biti de stare si 3 biti de control grupati in registrul

indicatorilor de conditie (flags)(figura 1.4). Cei de stare sunt pozitionati de unitatea


de executie pentru a reflecta anumite proprietati ale rezultatului unei operatii
aritmetice sau logice. Acestia pot fi utilizati de un grup al setului de instructiuni
pentru a modifica secventialitatea executiei programului in functie de rezultatul
operatiei anterioare. In general, indicatorii starii programului reflecta urmatoarele
conditii:
AF - Auxiliary Carry Flag. Daca AF=1, a existat un transport dinspre bitul 7
spre bitul 8 sau un imprumut dinspre bitul 8 catre bitul 7. Acest indicator este
folosit indeosebi in cazul instructiunilor ce implica operatii aritmetice cu
numere zecimale codificate binar.
CF - Carry Flag. Daca CF=1, a existat un transport dinspre sau un imprumut
catre cel mai semnificativ bit (MSB) al rezultatului reprezentat pe 8 sau 16
biti. Acest indicator este utilizat de instructiunile ce implica operatii de
adunare sau scadere cu numere reprezentate pe unul sau mai multi octeti. Biti
ai operanzilor din memorie sau registri pot fi izolati in CF prin intermediul
instructiunilor de rotire si deplasare.
OF - Overflow Flag. Daca OF=1, a aparut o depasire aritmetica, adica s-a
pierdut cel mai semnificativ bit al rezultatului datorita faptului ca dimensiunea
acestuia a depasit capacitatea de reprezentare a locatiei destinatie. Este de
remarcat faptul ca exista o instructiune (INTerrupt On Overflow) care
genereaza o cerere de intrerupere pentru semnalarea aparitiei acestei situatii.
SF - Sign Flag. SF=1 indica faptul ca cel mai semnificativ bit al rezultatului
are valoarea 1. Cum numerele intregi cu semn sunt reprezentate in
complement fata de 2, rezulta ca SF arata semnul rezultatului (0=pozitiv,
1=negativ).
PF - Parity Flag. PF=1 atunci cand rezultatul are un numar par de biti
pozitionati pe 1. Poate fi utilizat pentru verificarea erorilor de transmisie a
datelor.
ZF - Zero Flag. Valoarea zero a rezultatului este evidentiata prin ZF=1.

Figura 1.4. Indicatorii de condiii

Cei 3 indicatori de control pot fi modificati prin program pentru a determina


anumite operatii ale procesorului. Astfel:
DF - Direction Flag. Acest indicator este utilizat de instructiunile ce opereaza
cu siruri de caractere (string) si semnalizeaza autodecrementarea (DF=1)
respectiv autoincrementarea (DF=0) registrilor SI si DI care contin ofsetul
adreselor sursa si destinatie ce intervin in transfer.
IF - Interrupt enable Flag. Setarea IF prin instructiunea SeT Interrupt
enable flag permite CPU sa recunoasca cererile de intrerupere externa
mascabile, in timp ce resetarea aceluiasi indicator cu instructiunea CLear
Interrupt enable flag le va dezactiva. Modificarea valorii lui IF nu are efect
asupra intreruperilor generate intern in CPU sau a celor externe nemascabile.
TF - Trap Flag. Daca TF=1, procesorul intra in modul de operare pas cu pas
in care CPU genereaza automat o intrerupere interna dupa fiecare instructiune
pentru a permite examinarea starii programului si deci depanarea acestuia.
Organizarea memoriei
Microprocesorul 8086 poate adresa direct un spatiu de 220 = 1Mo = 1.048.576
octeti organizat liniar cu adresele joase la inceput si adresele inalte la sfirsit.
Instructiunile si datele pe octet sau cuvant pot fi plasate liber la orice adresa, fie ea
para sau impara, pentru a permite o stocare densa a codului programului in
memorie acesta fiind unul din conceptele impuse la proiectarea procesorului,
asa cum s-a aratat in paragraful introductiv (v. si fig. 5.5). Totusi, trebuie remarcat
faptul ca memorarea unei variabile de tip word la o adresa impara situatie in
care se spune ca variabila este nealiniata (unaligned) anuleaza din punct de
vedere al transferului variabilei respective avantajul microprocesorului 8086 de a
avea o magistrala de date de 16 biti (vezi sectiunea 5.4). In ceea ce priveste
instructiunile, alinierea sau nealinierea lor nu afecteaza performantele
microprocesorului datorita cozii de asteptare din BIU.

Fig. 1.5. Organizarea memoriei memorarea variabilelor si instructiunilor


Conform conventiilor INTEL, o variabila de tip word este intotdeauna

memorata cu octetul cel mai semnificativ in locatia de memorie cu adresa


superioara. Aceasta regula se extinde si la memorarea variabilelor de tip pointer
(variabile pe un cuvint dublu folosite pentru a adresa date in afara segmentului de
date sau de program ce este adresabil in mod curent la momentul respectiv):
cuvantul ce contine ofsetul se memoreaza la cele doua adrese inferioare, cuvantul
ce contine adresa de baza a segmentului se memoreaza la cele doua adrese
superioare la care este stocat pointerul, iar in cadrul fiecarui cuvant, octetul cel mai
semnificativ este la randul lui memorat la adresa superioara (vezi figura 1.6).

Figura 1.6 Memorarea variabilelor de tip word si pointer


Definirea pinilor:
Microprocesorul 8086 are o magistrala de date si adrese multiplexata in timp
(la inceputul ciclului masina informatia prezenta pe magistrala multiplexata
reprezinta o adresa, ulterior ea schimbandu-se si reprezentand data implicata in
transferul efectuat la adresa respectiva) ceea ce permite unui numar de pini sa
indeplineasca functii duale si in consecinta microprocesorului sa poata fi
incorporat intr-o singura capsula cu 40 de pini.
Deasemenea, asa cum se va arata ulterior, un numar de pini de control ai CPU
sunt definiti diferit in functie de cum este conectat un singur pin de intrare, pinul
MX

33 ( MN /
), la masa sau la Vcc. In figura 1.7 este prezentata asignarea pinilor,
denumirile in paranteza corespunzand conectarii pinului 33 la masa, iar in tabelul
1.2, functiile si tipul semnalelor
Figura.1.7 Definirea pinilor Microprocesorul I8086

Tabelul 1.2
Functiile si tipul semnalelor microprocesorului I8086
SEMNALE COMUNE
Nume
Functie
Tip
AD15
Address/Data Bus Magistrala de
Bidirect.,
-AD0
adrese/date
3-state
A19/
Address/Status Adrese/Stare
Iesire, 3-

S6A16/S3
BHE

state
/

ST
MN/
MX
RD

Bus High Enable/Status Activare octet


Iesire,
superior pe mag./Stare
state
Minimum/Maximum Mode Control
Control mod min./max.

3-

Intrare

Read Control Control citire

Iesire,

3-

state
TEST

Wait On Test Control Test asteptare

Intrare

REA

Wait State Control Sincronizare


DY
transfer pe mag. de date
RESE
System Reset Initializare sistem
T
NMI
Non-Maskable Interrupt Request
Cerere intrerupere nemascabila
INTR
Interrupt Request Cerere intrerupere
mascabila
CLK
System Clock Ceas de sistem
Vcc
+5V
GND
Ground Masa

Intrare
Intrare
Intrare
Intrare
Intrare
Intrare

SEMNALE PENTRU MODUL MINIM


MN/ MX

Nume
HOL

(
= Vcc )
Functie
Hold Request Cerere magistrala

Tip
Intrare

D
HLD
A
WR

Hold Acknowledge Acceptare cerere


magistrala
Write Control scriere

Iesire
Iesire,

3-

state
M/ IO
DT/ R
DEN

ALE

Memory/IO Control Control selectie


Iesire, 3memorie/port de I/E
state
Data Transmit/Receive Control sens Iesire, 3-state
transfer date pe magistrala
Data Enable Activare date pe
Iesire, 3magistrala
state
Address Latch Enable Activare adrese
Iesire
pe magistrala

INTA

Interrupt Acknowledge Acceptare


cerere de intrerupere
SEMNALE
PENTRU
MODUL

Iesire

MN/ MX

MAXIM (
= GND)
Nume
Functie
Tip
Request/Grant Bus Access Control Bidirectional
RQ/ GT1
Cerere/Acceptare acces magistral.
RQ/ GT 0

Bus Priority Lock Control Control


Iesire,
acces pe magistrala
state
S2
Bus Cycle Status Specificare stare
Iesire,
S0
ciclu de magistrala
state
QS1,
Instruction Queue Status Specificare
Iesire
QS0
stare coada de instructiuni
LOCK

33-

Una din facilitatile oferite de 8086 este posibilitatea de a selecta hardware


configuratia de baza a masinii prin simpla conectare la masa sau alimentare a
pinului 33 (MN /

MX

), prin care se defineste modul de lucru. Pentru a configura


MX

microprocesorul in modul minim, intrarea MN/


trebuie conectata la +5V. In
acest mod de operare, CPU este optimizata sa functioneze in sisteme mici, monoprocesor, 8086 generand singur toate semnalele de control pe magistrala (DT/R,
DEN, ALE, M /IO, RD, WR si INTA ) si, in plus, furnizand un mecanism pentru
functia de acceptare cerere de magistrala compatibil cu un echipament de tip DMA
(exemplu: controlerul DMA INTEL8257). In figura 1.11. se prezinta un exemplu
de sistem cu microprocesor 8086 functionand in modul minim.

MP8086
Control mod min./max.

MN/MX

Ceas de sistem

CLK

Initializare sistem

CLR

A19..A16/ST6..ST3

AD15...AD0

Sincronizare transfer pe mag. de date

Activare octet superior pe mag./Stare

BHE/ST7
4

16

Adrese/Stare

Magistrala de adrese/datele

STB

Activare adrese pe magistrala

DE

Activare date pe magistrala

RDY
OP/IP
TEST

Test asteptare

M/IO

Orientarea transmiterii ,,1', ,,0'


Control selectie memorie/port de I/E

RD

Citirea
Inscrierea

Cerere intrerupere nemascabila

NMI

WR

Cererea de intrerupere

INT

INTA

Acceptarea intreruperii

HOLD

HLDA

Acceptarea regimului DMA

Acceptarea regimului DMA

Figura. 1.8. Configuratia sistemului in modul minim


n figura 1.9 este prezentat configuratia sistemului n modul maxim de functionare
MP8086
Control mod min./max.
Ceas de sistem
Initializare sistem

Sincronizare transfer pe mag. de date

MN/MX
CLK

BHE/STT
A19..A16/ST6..STT

Adrese/Stare

RESET

RDY

AD15...AD0
ST2...ST0

Test asteptare

Activare octet superior pe mag./Stare


4

16

Magistrala de adrese/date
Specificare stare ciclu de magistrala

TEST

QS1,QS0

Cerere intrerupere nemascabila

NMI

RD

Cerere intrerupere mascabila

INT

LOCK
RQ/E1,0

Specificare stare coada de instructiuni

Control citire
Control acces pe magistrala
2

Cerere/Acceptare acces magistrala

Figura 1.9 Configuratia sistemului n regim maxim.


Structura procesorului I8086 (K1810BM86) cu magistrala de sistem de 16 bii

multiplexat este prezentat n figura 1.10.


MP I8086

C K181084
Cuart

TANK
X1
X2

CLK

CSYN

PCLK

F/C
RES

RES

RDY2

RDY2
AE2

RDY1

MN/MX

MA KP580P82

BHE
A19...A16

CLK

AD15..AD0

CLR
RES
RDY

RDY

4
16 16

DE
OP/IP

RDY1
AE1

21

BHE,A19A0

DI

STB

STB

PCLK

CLR

D0

OE

MD KP580BA86
16
A
B

16

D15...D0

OE

T
MC K555K11

M/IO
1
RD
1
WR
1
1
NMI
INT
HOLD

A
1X1
2X1
1X2
2X2
1X3
2X3
1X4
2X4

BUSE

X1

MRD

X2

MWR

X3

IORD

X4

IOWR

NMI
INT

INTA

INTA

HOLD

HLDA

HLDA

Fig
ura 1.10 Structura MP I8086 (K1810BM86) cu magistrala de sistem de 16 bii
multiplexat
Microprocesorul I8086 (K1810BM86) n regimul minimal de funcionare
conine n afar de MP I8086 (K1810BM86) un generator de sistem i controlere a
magistralelor destinate pentru asigurarea unui regim de lucru normal.
Generatorul de sistem
Generatorul de sistem este relizat n baza microcircuitului KP181084 ce
este destinat dirijrii microprocesorului I8086 (P1810BM86) i dispozitivelor
periferice, de asemenea pentru sincronizarea semnalelor READY cu semnalele de
tact ale microprocesorului i semnalelor magistralei interfeei MULTIBUS.
Generatorul de sistem include circuite de formare a impulsurilor de tact (OSC,
CLK, PCLK), semnalului RESET i semnalului READY (figura 1.11).
Circuitul de formare a impulsurilor de tact genereaz semnalele:

CLKfrecvena de tact pentru microprocesor;


PCLKfrecvena de tact pentru dirijarea circuitelor periferice;
OSCfrecvena de tact a generatorului etalon, necesar pentru dirijarea
dispozitivelor sistemului i pentru sincronizare. Semnalele sunt sincrone,
frecvenele lor sunt legate de relaia:
FOSC=3FCLK=6FPCLK n regim de generator intern i:
FEFI=3FCLK=6FPCLK n regim de generator extern.
Alegerea regimului de funcionare se determin de potenialul la intrare F/C.
Dac intrarea este conectat la mas, atunci GS lucreaz n regim de formare a
semnalelor de la generatorul intern, iar dac la F/C se aplic un potenial nalt
atunci n regim de formare a semnalului de la generatorul extern.
Circuitul de formare a semnalului RESET are la intrare un trigger Shmidt, iar
la ieire trigger formator al frontului semnalului RESET. De obicei la intrare
RES se conecteaz un circuit RC care asigur formarea automat a semnalului la
conectarea sursei de alimentare.
Circuitul de formare a impulsurilor de tact are o intrare de sincronizare
special (CSYNC), cu ajutorul creia se poate sincroniza funcionarea a ctorva
generatoare de sistem. Aa sincronizare se realizeaz cu ajutorul a dou a dou
trighere D la intrrile CSYNC i EFI.
Semnalul de intrare READY se utilizeaz n calitate de afirmare a posibilitii
de schimb (transfer). Circuitul de formare a acestui semnal n GS este construit
astfel, pentru a simplifica conectarea sistemului n magistrala interfeei
MULTIBUS i are dou perechi de semnale identice RDY1, AEN1 i RDY2,
AEN2 conectate cu un circuit SAU. Semnalele RDY sunt formate de elemente ce
intr n sistem i indic posibilitatea lor de schimb. Semnalele AEN permit
formarea semnalului READY n semnalele RDY, afirmnd adresarea elementului
adresat. Elementul de ieire al schemei (F) formeaz frontul semnalului READY.

Fig. 1.11. Reprezentarea grafic a generatorului impulsurilor de tact


181084

2.Proiectarea dispozitivelor de memorie ale sistemelor pe


baz de microprocesor
Unitile de memorie ale sistemelor de microprocesor sunt destinate pentru
pstrarea datelor i programelor. Caracteristicile de baz a unitii de memorie sunt
volumul, viteza de lucru, puterea consumat, rezistena la apariia erorilor.
La proiectarea memoriei se rezolv problemele de divizare a volumului
necesar de memorie ntre memoria operativ RAM i fizic ROM; proiectarea
volumului i capacitii RAM i ROM; realizarea dispozitivelor de joncionare a
RAM i ROM cu magistrala de sistem.
Unitile de memorie se construiesc pe baz de circuite integrate de memorie
care se caracterizeaz cu capacitatea ni i volumul Ni. Capacitatea necesar se
proiecteaz prin adugare a K=n/ni circuite integrate (CI) conectate n paralel, iar
volumul necesar - prin conectarea a L=N/N i BI conectate serie, fiecare bloc
constituind din K CI de memorie.
Sistemele de funcionare a memoriei cu magistrala de sistem asigur

acordarea diagramelor de timp de funcionare a memorie i operaiile de


citire/nscriere, acordarea dup nivele de sarcin a semnalelor.
RAM sunt realizate pe baz de CI statice cu volumul N i i capacitatea ni are
intrri de adrese cu capacitatea m=log2Ni, intrrile Ei ieirile de date cu capacitatea
ni, intrrile de citire/nscriere.
Dispozitivele de memorie a sistemelor cu microprocesor pe baza MPI8086 pot
adresa un volum maxim de 1 MB.
Spatiul de memorie de un megabyte este divizat fizic in doua zone (numite
bank) a cate 512 Ko fiecare. Una din ele (lower bank) este asociata partii inferioare
a magistralei de date (bitii D8-D1), iar cealalta (upper bank) este conectata pe bitii
cei mai semnificativi ai magistralei de date (D16-D9).

Tabelul .3

Liniile de adresa A19-A12 se utilizeaza pentru a adresa o locatie de un octet in


mod simultan, atat in lower bank cat si in upper bank, in timp ce linia A0 nu se
foloseste pentru adresarea locatiei in cadrul unui bank, ci pentru selectia bank-ului.
Bank-ul inferior, care contine octeti aflati la adrese pare, este selectat cind A0=0.
Bank-ul superior, continand octeti situati la adrese impare, este selectat de
semnalul BHE (semnifica transferul unui octet pe liniile D16-D9), in conditia BHE

0 . Acest mecanism de selectie este ilustrat in tabelul 3 si in figura 2.1.

Fig. 2.1. Selectia bank-urilor de memorie


Cand se acceseaza un octet la o adresa para, acesta este transferat pe liniile
inferioare ale magistralei, D8-D1. In aceasta situatie, nivelul inactiv al liniei de
adresa A0 (A0=0) permite selectia locatiei aflata in bank-ul inferior; in acelasi
timp, nivelul inactiv al semnalului BHE (BHE1) impiedica selectia locatiei aflata
in bank-ul superior. In mod similar, cand se acceseaza un octet la o adresa impara,
acesta este transferat pe liniile superioare ale magistralei, D16-D9. Acum nivelul
activ al lui BHE (BHE 0 ) permite selectia locatiei aflata in bank-ul superior, in
timp ce nivelul activ al liniei de adresa A0 (A0=1) impiedica selectia bank-ului
inferior. Asa cum se arata in tabelul 5.4, 8086 poate accesa o locatie din lower
bank simultan cu una din upper bank pentru a efectua transferul unei date de tip
word. Cand octetul low al cuvintului ce trebuie transferat se afla la o adresa para
(deci se afla in lower bank), cuvantul este aliniat si poate fi transferat intr-un singur
ciclu de magistrala. Liniile A19-A12 adreseaza locatia corespunzatoare din ambele
bank-uri, bank-uri care sunt amandoua selectate simultan, cel inferior prin A0=0
iar cel superior prin BHE0 .
2.1 Proiectarea memoriei RAM:
Conform datelor initiale pentru proiectarea memoriei RAM cu un volum de
memorie de Vm= 4 KB. findca avem un volum de memorie mic de 4 KB vom
folosi microcircuite de memorie statica din familia K537 si anume microcircuitul

K537P8.Schema bloc al blocului de memorie RAM este prezentat in figura 2.2.

Figura 2.2 Schema bloc a memoriei RAM

Figura 2.3 Reprezentarea functionala


Destinatia pinilor :
A0..A10- Intrari de adresa.
CS cristal select selectarea celulei de memorie .
WR- control scriere.
G- conectarea la masa.

D0...D7 intrari si iesiri de date.


UCC conectarea la alimentare.
In calitate de docodificator de adresa este utilizat microcircuite SI NU i SAU
din clasa K155 iK1555, K1551.
Pentru un volum de memorie de 2 K vom folosi 2 microcircuite P8 ce contine un

volum de 2k 8.

Memoria Rom
Microcircuitul K573P4 prezint un MC de memorie fix reprogramabil ce are

un volum 2k 8. Ele pot fi reprogramate de la 100 pn la 10.000 ori.

Destinaia pinilor MC:


A10-A0 intrrile de adrese;
CS selectarea MC;
OE permite transmiterea datelor;
Upr tensiunea de programare;
DO07-DO00 ieirile de date;
GND mas; Ucc tensiunea de alimentere +5V;

4.1.Proectarea unitatii de intrare/iesire.


Pentru realizarea schimbului de informaie dintre SMP i dispozitivele externe este
nevoie de porturi de intrare/ieire (IOP). Porturile sunt de cteva tipuri: serie, paralel,
analogic. La elaborarea acestui proiect vom utiliza portul de tip serie. n calitate de IOP

serie sau utilizat MC KP580BB51A.


MC KP580BB51A prezint port serie de ntrare/ieire, se utilizeaz n calitate de
dispozitiv de ntrare/ieire de destinaie general ce realizeaz joncionarea diferitor
dispozitive periferice cu magistrala de date a sistemului.
Microschema data MC KP580BB51A, se alimenteaza la tensiunea de +5V si
consuma curentul de 100mA.Microschema este in sine universala, sincron si asincron
dispozitiv de primire si transmitere a datelor.Microschema poate fi programata pentru
lucru in cinci regimuri:
-transmitere asincrona
-primire asincrona
-transmitere sincrona
-primire sincrona
-primirea sincrona cu sincronizare externa

Fig-19.Reprezentarea grafica a
MC KP580BB51
Fig-20. Reprezentarea schemei bloc a MC KP580BB51A.

Tipul semnalelor MC KP580BB51A


D0D7-intrari de date

R D-intrarea receptorului

R C-sincronizarea receptorului

R RDY-receptorul in modul de asteptarea comenzii


SYND-iesirea de initializare a sincronizatiei interne
DSR-pregatirea transmitatorului terminalului
DTR-adresarea transmitatorului terminalului
CTS-pregatirea receptorului terminalului
RTS-adresarea receptorului terminalului

T E-registrul transmitatorului gol

T RDY-transmitatorul in modul de asteptarea comenzii

T C-sincronizarea transmitatorului

T D-iesirea transmitatorului
CS-alegerea BIS
C/D-conducerea cu datele(1-conducerea, 0-datele)
RD-citirea
WR-inscrierea
CLK-sincronizarea
RES-resetul

Fig.-21.Schema microcircuitului KP580BB51 cu magistralele pentru I8086.

Figura 3.1 Structura microcircuitului KP580BB55


Destinati pinilor microcircuitului KP580BB55

Figura 3.2 Destinatia pinilor MC KP580BB55

PA7PA0-iesirile portului A
BA7BA0- iesirile portului B
CA7CA4,CA3CA0- iesirile porrtului C.
CS- semnal de selectie
A1,A0-Adresarea porturilor
D7D0- datele de intrare.
RD- semnal de citire.
WR- semnal de inscriere.
RES- semnal de initializare.
Pentru relizarea portului paralel vom folosi doua micrcrocircuiteKP580BB55.

4. PROIECTAREA TASTATUREI
Pentru a avea posibilitatea de a dirija cu SMP din exterior vom utiliza i tastatura. Tastatura se conecteaz la
SMP cu ajutorul unuia din porturile paralele KP580BB55A studiate mai sus. Schema bloc de conexiune a tastaturii
este prezentat n fig.11:

16
8
8
2
2

RES
CS

MA
MD
MC

KP580BB55A
IOP
D7-D0 PA7 8
RD
PA0
WR
PC7 8
A0
PC0
A1
PB7 8
RES
PB0
CS

Tastatur

fig. 20. Schema bloc de conexiune a cort I/O cu MS


n cazul proiectrii tastaturii pentru a avea 64 de taste vom folosi port A i B cu toate 8 linii a
intrrilor/ieirilor. Tastatura nu are nici o schem electric n plus i prezint nite comutatoare aranjate n form de
matrice. La apsarea tastei corespunztoare liniei li coloanei se scurcircuiteaz, formnd o conectare. Detectnd
poziia liniei i coloanei n care s-a produs scurtcircuitul contactelor se determin codul cuvntului corespunztoare
tastei apsate. Portul de ieire trimite semnal 0 n linia 0 i n restul liniilor , apoi se numr i se verific liniile
coloanelor. Dac n linia 0 nu este semnal 0 procesul se repet pentru linia 1 apoi pentru linia 2 ... Cnd se detecteaz
0 se determin tasta apsat , poziia liniei este cunoscut dup combinaia introdus , iar poziia coloanei dup
rezultatul introducerii.
mpreunnd codul poziiei liniei i coloanei n care s-a detectat 0 se poate de format un cuvnt dintr-un
simbol artnd poziia tastei apsate. Tastatura are dou neajunsuri : apsarea concomitent a dou taste i apariia
unui proces tranzitoriu la conectarea ntreruptorului.

Ministerul Educaiei Tineretului i Sportului Republicii


Moldova
Universitatea Tehnic a Moldovei
Facultatea Radioelectronic i Telecomunicaii

Catedra Telecomunicaii

Proiect de an
Tema: Proiectarea unui sistem pe baza microprocesorului
I8086.

A elaborat
st. gr. TLC - 051
Alexandru

Costiuc

A verificat
Conf. Univ. Dr.
Valeriu

Nastas

Chiinu 2007