Sunteți pe pagina 1din 156

I.

INTRODUCERE
1.1. Microprocesorul i logica programat
Pentru a putea defini no iunea de microprocesor, se consider structura de
principiu a unui calculator numeric prezentat n figura 1.1. Pe figur se disting:
unitatea central de prelucrare (CPU), memoria (M), dispozitivele de intrare (I) i
dispozitivele de ie ire (O).
Unitatea central de prelucrare (Central Processing Unit) are dou func ii
esen iale:
extragerea din memorie i interpretarea con inutul instruc iunilor din program
pe baza cruia emite semnalele de comand necesare pentru execu ia acestora
execu ia opera ilor aritmetice i logice asupra datelor extrase din memorie
Pentru prima func ie, CPU dispune de o unitate de comand (CU - Command
Unit), iar pentru a doua se folose te de o unitatea aritmetic i logic (LU - Arithmetic
Logic Unit). n afar de aceste unit i, CPU mai con ine registre pentru pstrarea unor
date cu caracter general sau cu destina ie special.
Memoria calculatorului serve te pentru pstrarea programelor i a datelor
aferente. Dispozitivele de intrare (de exemplu: tastatur, joystick, mouse) se folosesc
pentru introducerea datelor, programelor i comenzilor n calculator. Comunicarea
ctre exterior a rezultatelor i rspunsurilor este asigurat de dispozitivele de ie ire (de
exemplu: monitor, imprimant).

Figura 1.1. Schema bloc a unui

calculator

Microprocesorul (microprocessor) este de fapt o unitate central de prelucrare


realizata sub forma unui singur circuit integrat. Evident, el nu poate fi con ideraFc
tund un~calculator, deoarece nu con ine memorie, dispozitiv de ntroducere i
"dispozitiv- de ie ire. Un calculator a crui unitate central de prelucrare (procesorul
central) este un microprocesor, se nume te microcalculator. vnd n vedere faptul ca
un microcalculator nu este utilizat exclusiv pentru
efectuarea de calcule matematice, ci i pentru comenzi secven iale fde exempli
comanda unui robot), n limbiuTleFiriic se folose te si un termen cu n eles mjj larg, i
anume cel de microsistem. Se poate spune deci, c microsistemul este un sisterfTde
calcul sau cu o alt destina ie, care are ca element principal un m icroproceSon "

fTscopul identificrii componentelor de baz care intr n structura unui


microsistem, se consider ca exemplu un microsistem folosit la un cntar automat
ntr-un magazin alimentar. Structura acestuia este prezentat n figura 1.2.

Figura 1.2. Microsistem utilizat la un cntar electronic


Unitatea central a microsistemului (adic microprocesorul) trebuie s'
calculeze i s afi eze pre ul produsului, pe baza informa iei privind masa acestuia i a
pre ului unitar (pre ul pe kilogram). Masa, convertit ntr-o mrime digital, este
preluat de la unitatea de cntrire, iar pre ul se introduce de ctre vnztor de la
tastatur. Opera ia pe care o are de efectuat microprocesorul este de fapt o simpl
nmul ire a celor dou valori, urmat de afi area rezultatului. (Observa ie: ceast
aplica ie nu epuizeaz capacitatea de lucru a unui microprocesor, fiind dat doar cu
scop de ilustrare a principiului de construc ie a unui microsistem).
Pbispozitivele de introducere (unitatea de cntrire i tastatura), precum i
dispozitivul de ie ire (afi ajul) se conecteaz la CPU prin intermediul interfe elor.
Interfa a este un circuit prin care se face legtura func ional dintre un echipament
periferic i microprocesor. 1
Programul de execu ie fiind mereu acela i (de monitorizare permanent a
tastaturii, citirea datelor i efectuarea opera iei aritmetice, afi area rezultatelor), el st
rezident intr-o memorie cu con inut permanent (memorie fix), numit ROM. Memoria
ROM (Read Only Memory) este acel tip de memorie n care informa ia este nscris de
fabricant o singur dat si rmne memorat pentru a putea fi citit.
Programul de execu ie din acest exemplu face parte din firmware-^
crosistemuiui, care reprezint totalitatea programelor nscrise permanent n
ere-a ^ crosistemuiui i care sunt gata de utilizare la punerea sub tensiune a tonii.
Memoria de date folosit pentru pstrarea pre ului unitar, a rezultatelor oa~.se
- finale (care sunt date variabile) este de tip citire-scriere, notat orescurtat RM.
Memoria RAM (Random Access A/feroood-este o memorie volatil .. : e~ce ^forma ia la
decuplarea tensiunii de alimentarei. n care microprocesorul! > zesze 'nsene sau din
care poate citi informa ii n ordine aleatoare ae un numr cfcnial de ori.
~.ransmiterea informa iei ntre componentele microsistemului se face pe o

zLhiis). care reprezint un grup de linii de comunica ie ciTanumit - -n-a!-ate. utilizat

pentru transmiterea informa iei binare de la una sau mai ' - ~.e surse la una sau mai
multe destina ii. La un moment dat magistrala poate -ecr.-a n singur transfer al
informa iei, o singur surs fiind activ.
acest exemplu se observ c func iile cntarului sunt realizate de un ~
crocakx. ator (hardware) universal printr-un program (software) specializat. Se - > acest
caz c problema s-a rezolvat prin logic programat. PrincipiulCk cgcz programate const
n utilizarea unui microsistem nespecializat ntr-o arumrt aplica ie prin implementare
"nu' program cparjfir A^l^a i func iuni s-ar f putut realiza i cu solu ia clasic, prin logic
cablat, ceea ce presupunea pnsecterea unei re ele dedicate de por i i bistabile.
ceast metod ar fi dus la ~r emrt de concep ie i tehnologic prea mare i scump, fr
posibilit i de ~oc~icare ulterioar.
Utilizarea logicii programate n aplica ii de complexitate mic sau medie a
aeverit posibil datorit progresului tehnologic din anii 70, cu urmtoarele
consecin e:
apari ia circuitelor integrate digitale pe scar mare (LSI - Large Scale
Integration), cu densitatea de 1000+100000 tranzistoare/pastil, respectiv foarte
mare (VLSI - Very Large Scale Integration) cu peste 100000 tranzistoare/pastil
cre terea complexit ii i performan elor acestor circuite integrate, multe cu
func ii programabile
pre ul sczut al acestor circuite integrate
n concluzie, se poate spune c prin utilizarea logicii programate se pot st -ge
performan e ridicate la dimensiuni reduse cu efort minim i cost sczut.
^tcipaleleiavantaiejale logicii programate pot fi sintetizate astfel:
(23
miniaturizarea
flexibilitatea i adaptabilitatea (de exemplu cuplarea op ional a unei
imprimante la cntarul automat, fr modificarea principial a structurii)
ciclul redus de cercetare-dezvoltare, care are un caracter predomina nt soft
fiabilitatea ridicat
ntre inerea simpl
consumul redus de energie electric
pre ul de cost mic
Desigur pe lng avantaje, logica programat prezint i unelejdezavantaiej
fa de cea cablat, cum ar fi:
viteza de execu ie mai mic, rezultat ca urmare a serializrii prin
program a prelucrrii
necesitatea sculelor dedicate pentru elaborarea i implementarea
nrngramei or (dar care totu i pot fi utilizate la elaborarea mai multor
microsisteme)

1.2. Arhitectura standard a unui microsistem


Componentele de baz ale unui microsistem i modul lor de interconectare sunt
prezentate n figura 1.3. Microprocesorul (CPU) aduce, decodific i execut
instruc iunile din memorie genernd semnale de comand pentru vehicularea corect a
adreselor i datelor, precum i pentru efectuarea opera iilor aritmetice i logice.
Memoriile de tip ROM i RM, care alctuiesc mpreun memoria principal a
microsistemului, servesc pentru stocarea programelor i datelor. Blocul de intrare/iesire
I/O (Input/Output) con ine circuitele de interfa cu_ echipamentele periferice. cestea
din urm sunt destinate pentru introducerea i scoaterea de informa i n/din sistem.

Figura 1.3. Arhitectura standard a unui microsistem


Comunica ia Hinti-P mirmprnf'OQnr ^ celelalte componente se desf oar trin
intermediul a trei magistrale: magistrala de date de adrese i de corifr5t~
Magistrala de date (data bus) este o cale bidirec ional de vehiculare paralel a
informa iei sub form de cuvinte binare de n bi i. Prin informa ie n acest context se
n eleg att date, ct i instruc iuni.
Magistrala de adrese (address bus) este o cale unidirec ional de m linii pentru
transmiterea adresei de selec ie a unei loca ii de memorie sau dispozitiv de
intrare/ie ire de unde/spre care urmeaz a fi efectuat transferul unui cuvnt de date.
Opera ia de localizare a unui cuvnt din microsistem prin specificarea adresei
amplasamentului acestuia se numestefdresareJIdresa Ieste un cuvnt binar de m
bi i, cu care se pot specifica n total 2m adrese distincte. De exemplu, pentru un numr
de m16 linii de adres, rezult un spa iu de 218 = 64 K memorie adresabil!
-
Magistrala de control (control bus) sau de comenzi este un grup de linii
neomogene (cu func iuni diferite) pentru transmiterea semnalelor de comand furnizate
de microprocesor ctre celelalte componente din sistem, respectiv pentru transmiterea
semnalelor de rspuns de la aceste componente la microprocesor. ceste semnale
asigur, printre altele, sincronizarea opera iilor de transfer pe 'magistrala de date ntre
microprocesor i circuitele externe adresate, prin nso irea adresei cu semnalul de
control corespunztor transferului. De exemplu, cnd microprocesorul scrie date ntr-un
dispozitiv (memorie sau periferic) plaseaz adresa acestuia pe magistrala de adrese i
transmite cuvntul de date pe -agistrala de date, nso indu-l cu un impuls de scriere
(WRITE). La citirea datelor dintr-un dispozitiv selectat prin magistrala de adrese,
microprocesorul trimite un semnal de citire (READ) pe magistrala de control i preia
cuvntul de date de pe magistrala de date.

1.3. Evolu ia microprocesoarelor


De la apari ia lor i pn astzi se disting mai multe genera ii de
-'scroprocesoare n func ie de nivelul tehnologic, clasificate n principiu dup imea
magistralei de date.
Genera ia l-a de microprocesoare dateaz din 1971, cnd a fost fabricat primul
microprocesor numit Intel 4004, avnd lungimea cuvntului de 4 bi i i construit n
tehnologie PMOS (P-channel Metal Oxide Semiconductor). Func iile cerute de la un circuit
LSI au fost realizate prin microprogramare de inginerul M. E. Hoff, acest fapt
nsemnnd de fapt nceputul erei logicii programate. Dup un an, ~rma Intel,
continund cercetrile pentru realizarea unui circuit pentru comanda tubului catodic, a
dezvoltat microprocesorul 8008, primul microprocesor pe 8 bi i, construit din 2000 de
tranzistoare i avnd un set de 45 de instruc iuni. Firma National Semiconductor,
pentru cre terea vitezei a realizat LU din felii, n tehnologia bipolar, mai rapid dar cu
o densitate de integrare mai sczut, oto inndu-se astfel primul microprocesor bit-slice.
Genera ia a ll-a a microprocesoarelor a fost marcat de trecerea la tehnologia
NMOS (N-channel Metal Oxide Semiconductor), cu densitatea pe pastil de peste dou ori
mai mare. ceast genera ie este caracteristic microprocesoarelor pe 8 bi i.
Primul tip reprezentativ este Intel 8080, aprut n 1974 cu un set de 78 de
nstruc iuni, frecven a de lucru 2 MHz, 0,064 MIPS (milioane de instruc iuni pe

secund), 64 Kocte i memorie adresabil, construit din 4500 de tranzistoare, dar


care necesita trei tensiuni de alimentare (+5 V, -5 V, 12 V). Firma Motorola a
elaborat microprocesorul MC6800, caracterizat printr-o conectare mai simpl n
sistem, iar firma Zilog a aprut pe pia cu microprocesorul Z80, de asemenea mai
puternic dect 8080. stfel Z80 dispune de un set de 154 instruc iuni (inclusiv cele
ale lui 8080), set dublu de registre, tact de 2,5 MHz, 64 Kocte i memorie adresabil,
o singur tensiune de alimentare (+5 V), circuite nglobate pentru remprosptarea
memoriei DRAM, fiind construit din 8500 de tranzistoare.
Perfec ionarea tehnologiei NMOS, prin nlocuirea por ii de metal MOS cu
poart de polisiliciu, a dus la apari ia tehnologiei HMOS (High Performace MOS).
ceast nou tehnologie, nso it de o arhitectur mbunt it, a condus la
elaborarea genera iei a lll-a de microprocesoare, cu lungimea cuvntului de 16 bi i.
Exemplele cele mai elocvente sunt microprocesoarele Intel 8086, Z8000 i
MC68000. Dintre acestea, produsul firmei Intel s-a rspndit mai repede pe pia
datorit softului care permite o adaptare u oar a programelor scrise pe 8080, a
folosirii circuitelor de interfa ale lui 8080 i a existen ei unor fabrican i secundari
(second sources) ca Siemens sau Mitsubishi.
Microprocesorul 8086 a fost lansat pe pia n 1978, cu urmtoarele
caracteristici: tact de 5 sau 8 MHz, 1 Moctet capacitate de memorie adresabil, 97
de instruc iuni, 0,33-^0,75 MIPS, 29000 de tranzistoare. La cre terea vitezei de
lucru a contribuit i implementarea tehnicii suprapunerii instruc iunilor, care const
n execu ia unei instruc iuni n paralel cu extragerea celei urmtoare.
Microprocesorul 8086 ofer i posibilitatea de conectare n sistem multiprocesor.
S-a dezvoltat i o alt variant a microprocesorului 8086, i anume 8088.
ceasta este echivalent ca structur intern cu 8086, dar are magistrala extern
de 8 bi i pentru implementare u oar n structurile existente de 8 bi i. S-a utilizat n
microcalculatoarele de tip IBM PC XT, op ional n configura ie cu coprocesorul
matematic al familiei (8087). Coprocesorul este un procesor n virgul mobil care
poate efectua calcule pe 32, 64, 80 de bi i.
O variant mai perfec ionat a lui 8086 este microprocesorul 80286 (notat i
iPX 286), aprut n 1982. cesta, realizat n tehnologie HMOS III (cu 134000 de
tranzistoare), a stat la baza calculatoarelor personale IBM PC AT. 80286 s-a
fabricat n diferite versiuni care func ionau la 8, 10 sau 16 MHz, avnd un debit de
1,2^2,66 MIPS i un set de 121 instruc iuni. Capacitatea de memorie adresabil
este de 16 Mocte i (magistral de adrese pe 24 de bi i), dar poate lucra i n mod
protejat, avnd inclus o unitatea de gestionare a memoriei MMU (Memory
Management Unit). n acest mod de lucru, util n aplica ii multitasking i multiuser, poate
lucra cu o memorie virtual de 1 Goctet. Coprocesorul aferent lui 80286 este de tipul
80287.
Microprocesoarele din genera ia a IV-a (pe 32 de bi i) au fost realizate din
circuite integrate pe scar foarte larg (VLSI), cu un numr de peste 100000 de
tranzistoare pe pastil. Tipurile reprezentative sunt microprocesoarele Intel 80386
(aprut n 1985) i 80486 (aprut n 1989), respectiv Z80000.
Intel 80386 (iPX 386), fabricat n tehnologia HCMOS lll-IV (Complementary
HMOS, o combina ie ntre HMOS i CMOS), con inea 275000 de tranzistoare, fiind
realizat n variante de 16, 25 i 33 MHz. Capacitatea de memorie adresabil este de
4 Gocte i (32 linii de adres), 64 Tocte i n mod

virtual. Coprocesorul matematic aferent este 80387. Microprocesorul 80386 a stat a


baza calculatoarelor personale 386, adecvate ia vremea respectiv pentru aplica ii
de mare vitez (3^-11 MIPS): inteligen artificial, grafic, DTP (Desktop Publishing),
CAD (Computer Aided Design), robotic. Exista i o variant 80386 SX, echivalent cu
80386, dar cu magistrala extern de 16 bi i pentru date i 24 pentru adrese.
Intel 80486 (iPX 486) este de fapt un procesor 80386 care con ine n plus
n aceea i capsul coprocesorul matematic i o memorie cache (rapid) de 8
Kocte i. Construit n tehnologia CHMOS IV, con ine peste 1,2 milioane de
ranzistoare i are un debit de 20-^54 MIPS. S-au elaborat i variante ale acestui tip
de microprocesor, cum ar fi microprocesorul 486 SX (fr coprocesor) respectiv
microprocesorul 486 DX2 (cu tactul dublat 25/50 MHz, 33/66 MHz).
La trgul de la Hanovra din 1993, a fost lansat de firma Intel microprocesorul
Pentium, care este un microprocesor pe 32 de bi i, dar cu magistrala de date de 64
bi i. Performan ele ridicate ale acestuia se datoreaz tehnologiei avansate de
fabrica ie, care a permis integrarea a 3,1 milioane de ranzistoare pe capsul i
func ionarea la o frecven de peste 60 MHz. u urmat n anii 90 genera iile
avansate ale acestui procesor (Pentium II, Pentium III), caracterizate prin frecven e
de tact din ce n ce mai mari (de ordinul sutelor de MHz), mbunt iri arhitecturale i
extinderea setului de instruc iuni (cu noi pachete de instruc iuni destinate
prelucrrilor 3D i multimedia). n anul 2000 a fost lansat de Intel procesorul Pentium
4, avnd frecven a de 1,5 GHz i vitez dubl de prelucrare n LU. Pe pia a de
calculatoare personale o concuren serioas pentru Intel o constituie procesoarele
firmei AMD (Advanced Micro Devices): K5, K6, K7 (Athlon).

i.4. Capsule de microprocesoare


stzi exist o mare varietate de capsule pentru microprocesoare, care s- au
dezvoltat odat cu progresul tehnologic. Chiar pentru acela i tip de microprocesor
pot exista diferite variante de ncapsulare oferite de fabrican i. n continuare se
prezint cteva tipuri mai frecvent ntlnite:
Capsula PIP (Dual-ln-Line Package) are terminalele dispuse pe dou laturi
paralele ale capsulei (figura 1.4.). Acest tip, care poate fi ceramic sau plastic,
este caracteristic microprocesoarelor 8080, Z80, 8086, 8088 cu 40 de
conexiuni.

Figura 1.4.

Capsula de tip
DIP
Capsula PGA (Pin Grid Array) are o re ea de terminale i se introduce n

soclu (figura I.5.). Este caracteristic microprocesoarelor cu multe terminale,


cum ar fi: 80286 (68 pini), 80386 (132 pini), 80486 (168 pini), Pentium (273,
apoi 296 pini) sau Pentium 4 (423 pini).

Figura I.5. Capsula de tip PGA

Capsula CLCC, respectiv PLCC (Ceramic/Plastic Leadless Chip Carrier)

reprezint un suport de pastil, de tip ceramic sau plastic, avnd conexiunile


dispuse pe cele patru laturi (figura I.6.). n unele cazuri se prefer terminalele
sub form de J (J-bend) pentru asigurarea unui contact mai bun.

Figura I.6. Capsula de tip CLCC/PLCC

Capsula CQFP, respectiv PQFP (Ceramic/Plastic Quad Flat Package) este o


capsul plat cu terminale pe cele patru laturi, de tip^eramlcrsau plastic
(figura I.7). Terminalele ndoite sub form de arip de pescru (gull wing)
permit montajul pe suprafa SMT (Surface Mounting Technology).

Intel a introdus la microprocesorul Pentium II un nou tip de ncapsulare sub


form de caset, numit SECC (Single Edge Contact Cartridge). ceasta con ine o
plcu pe care se afl microprocesorul i memoria cache, avnd terminalele
scoase pe o singur latur. Plcu a se amplaseaz pe placa de baz a
calculatorului ntr-un conector liniar. Mai trziu s-a renun at ns la aceast solu ie,
fiind preferat capsula de tip PG.

Figura 1.7. Capsula de tip CQFP/PQFP

1.5. Clasificarea microprocesoarelor


Exist mai multe criterii de clasificare a microprocesoarelor:
a) Dup lungimea cuvntului de date se disting [microprocesoare cu
ungimejixlide 8, 16. 32, 64 de bi i) si cu (lungime extensi'bO?Prima categorie
con ine de fapt microprocesoare integrate ntr-o singur capsul (single-chip), iar a
aoua pe cele dispuse sub form de felii n circuite separate (bit-slice). Acestea din
urm se pot altura ntr-un numr corespunztor pentru a forma lungimea dorit a
cuvntului de date. Exemple de microprocesoare bit-slice sunt Intel 3000 pe 2 bi i i
MD 2900 pe 4 bi i.
b) Dup tehnologia de fabrica ie se deosebesc microprocesoare produse n
tehnologie unipolarj PMOfi, NMOS, CMOS) jsau bipolar |(STTL, ECL,~PL).
Asupra microprocesoarelor de tehnologie PMOS i NMOS s-au fcut referiri la
punctul I.3. Microprocesoarele CMOS (Complementary Metal Oxide Semiconductor) sunt
caracterizate de consum redus i imunitate mare la perturba ii. Se preteaz de
exemplu pentru aplica ii aerospa iale. Dezavantajul acestei tehnologii este
densitatea mic de integrare, ca i la tehnologia STTL (Shottky Transistor-Transistor
Logic). ceasta din urm este caracteristic microprocesoarelor bit-slice, avnd o
vitez mare de lucru. Viteza maxim se ob ine ns n tehnologia ECL (Emitter
Coupled Logic). Tehnologia l2L (Integrated Injection Logic) se prefer pentru
microprocesoarele din bunuri de larg consum (calculatoare de buzunar, ceasuri)
datorit procesului simplu de fabrica ie i consumului redus. Dezavantajul acestora
este ns instabilitatea termic.
c) Dup destina ie exist microprocesoarelfuniversal (toate cele amintite la
punctul 1.3) i Imicroprocesoare dedicate^ Cele dedicate se numesc i
microcontrollers, care la rndul lor pot fi:
Microcontrolere specializate pentru anumite echipamente, de exemplu
pentru imprimante, monitoare (8275), discuri flexibile(8271, 8272).

Microcalculatoare integratej^ingle component microcomputer), care con in pe


lng CPU O memorie (ROM, RM) i resurse l/O n aceea i capsul. cestea
sunt la dispozi ia utilizatorului pentru aplica ii limitate, cum ar fi bunuri de larg
consum sau mici automatizri. Exemple de astfel de microcontrolere sunt 8048
al firmei Intel (IKoctet ROM, 64 octe i RM, 6 MHz, 96 instruc iuni) i varianta
mai perfec ionat 8051 (4Kocte i ROM, 128 octe i RM, 12 MHz) sau 80C51 (n
tehnologie CMOS), microcontrolerul Z8 al firmei Zilog sau F-8 al lui Fairchild.
[Microprocesoare fabricate la comand \pustom design), care fac parte din
categoria circuitelor integrate specifice unei aplica ii SIC ( Application Specific

Integrated Circuit).
d) Dup setul de instruc iuni se deosebesc | mlcroprocesoare-CISC \ (Complex
Instruction Set Computing) cu (seTcomgeO^iElciinn^(toate cele amintite la punctul I.3.) i
| microprocesoare RlSCj (Reduced Instruction Set r.nmputinq)irM set redus ne instruc iunii
cestea din urm lucreaz cu instruc iuni simple i au unitatea de comand cablat,
fiind capabile de o foarte mare vitez de execu ie. De aceea se pot folosi n aplica ii de
mare vitez (imprimante laser, sta ii de lucru pentru grafic, controlere de re ea). Un
exemplu semnificativ este microprocesorul m 29000 al firmei MD, realizat n
tehnologia CMOS, cu 23 MIPS i care necesit numai un ciclu de tact/instruc iune.

I.6. plica iile microprocesoarelor


n zilele noastre microprocesoarele sunt utilizate n cele mai diverse domenii. n
continuare se amintesc cteva dintre principalele domenii de aplica ie:
microcalculatoare pentru prelucrri de date (de exemplu familia de
calculatoare IBM PC)
conducerea proceselor industriale
sisteme de reglare automat
echipamente de msurare i control, sisteme de achizi ie a datelor
comanda numeric a ma inilor-unelte
comanda robo ilor industriali
echipamente de testare automat
aparatur medical
bunuri de larg consum
Dezvoltarea tehnicii microprocesoarelor a fcut posibil elaborarea unor aplica ii
n care conlucreaz mai multe microprocesoare n cadrul aceluia i sistem. ceste
sisteme sunt de tip multiprocesor, spre deosebire de sistemele monoprocesor, care
con in un singur microprocesor.

II. OGNIZRE INFORM IEI N


MICROCALCULATOARE
11.1. mplasarea instruc iunilor i datelor n memorie
Rezolvarea unei probleme cu calculatorul numeric se face prin rularea pe acesta
a unui program, care execut algoritmul de calcul al problemei date. Programul
reprezint o secven de instruc iuni aranjate ntr-o ordine bine determinat pentru
implementarea unui algoritm. La rndul lui, instruc iunea este o ' informa ii codificat
printr-un grup de bit care definesc o opera ie a calculatorului i prin care se transmite o
comand ctre unitatea central de prelucrare n scopul executrii-opera iei sperifiratp ...
n vede~rea execu iei, instruc iunile programului sunt memorate n memoria
principal a microsistemului. O instruc iune se reprezint n memorie sub forma unui
cuvnt sau a mai multor cuvinte binare succesive. Lungimea instruc iunilor este variabil
n func ie de complexitatea acestora, fiind n general un multiplu de opt (8, 16, 32, 64 de
bi i). Primul cuvnt al instruc iunii con ine totdeauna codul opera iei, prin care se
identific instruc iunea respectiv n compara ie n rgioiaitg. instruc iuni ale setului de
instruc iuni specifice microprocesorului respectiv. Urmtoarele cuvinte ale instruc iunii
(dac este cazul) furnizeaz informa ii suplimentare pentru efectuarea opera iei
respective, de exemplu asupra locului unde se afl operandul. Operanzii, adic datele
cu care opereaz programul, se afl stocate tot n memoria principal a sistemului, sub
form codificat (vezi II.2).
Este important de re inut faptul c memoria principal a oricrui microsistem
este(Srqanizat pe octefl(1 octet ~8 bi ii, indiferent de lungimea cuvntului specific
microprocesorului din sistemul respectiv.
Fiecare octet (byte) al memoriei se identific printr-un numr, acest numr fiind numit
adresa loca iei respective. dresa se reprezint n calculator tot sub forma unui numr
binar, avnd numrul de bi i dat de l imea magistralei de adrese a microprocesorului
respectiv. Dac magistrala de adrese are m bi i atunci microprocesorul poate furniza 2m
adrese diferite. De exemplu, pentru m16 rezult 2 m= 216= 65 536 = 64 K adrese diferite.
Un cuvnt de adres binar, de exemplu 0101110010000111, care n sistemul
zecimal are valoarea 23 687, se exprim de ctre utilizator de preferin sub form
hexazecimal, mai comod de utilizat. Pentru aceasta se grupeaz bi ii pe tetrade i
fiecare tetrad se nlocuie te cu cifra hexazecimal corespunztoare. stfel, cuvntul
precedent se va referi sub forma 5C87, notat mai clar cu 5C87H:

Se consider o memorie principal de 64 Kocte i a unui microsistem pe 8 bi i,


n care de la adresa OOOOH s-a introdus un program. Zona octe ilor de date aferen i
programului este ncrcat de la adresa 1000H, ca n figura 11.1. Din punct de
vedere fizic, zona de instruc iune se poate afla intr-o memorie ROM sau RAM, iar
cea de date intr-o memorie RAM.

Figura 11.1. mplasarea instruc iunilor i datelor

n memoria principal (MP)

Pentru execu ia programului este nevoie de citirea succesiv (octet cu ' octet) a
instruc iunilor, ncepnd cu adresa 0000H. n acest scop, pentru adresarea succesiv a
loca iilor memoriei exist n CPU un numrtor de instruc iuni, numit Si contor de
program (PC - Program Counter). In acesta se ncarc ini ial adresa de nceput a
programului, iar dup extragerea fiecrui octet al instruc iunii din memorie se
incrementeaz m 1 pontai a propti extragerea octetului urmtor:
PC <- PC +1
Contorul de program este un registru numrtor, care n cazul
microprocesorului 8086 are lunqimeade 16 bi i i se nume te indicator de
instruc iune MP - Instruction Pointer).
Dac programul con ine o instruc iune de salt (JUMP) sau de apel a unui
subprogram (CALL), aceast manevr se efectueaz pnn introducerea n PC a
adresei de unde trebuie continuat rularea programului. n figura II.2 se prezint
cazul unei instruc iuni de apel la subprogram, care ocup trei octe i. Primul octet
reprezint codul opera iei, iar ceilal i doi adresa de salt (b). Pentru efectuarea saltului
aceast adres se ncarc n PC, iar la terminarea subprogramului (cu
instruc iunea de revenire RET) n PC se ittroduce adresa instruc iunii urmtoare lui
CALL (a +3).

Se observ c accesul la memorie fiind pe octet, adresa b se reprezint pe doi


octe i consecutivi (figura 11.3): octetul cel mai pu in semnificativ b L sau LSB (Least
Significant Byte) i octetul cel mai semnificativ bH sau MSB (Most Significant Byte). Prin
conven ie, la microprocesoarele din familia Intel i Zilog, octetul cel mai pu in
semnificativ se stocheaz n memorie la adresa inferioar, iar octetul cel mai
semnificativ la adresa superioar; la microprocesoarele Motorola este invers.

Figura 11.3. O adres compus din doi octe i


Accesul la datele cu care lucreaz programul se realizeaz de CPU prin
ffitermediuTunui registru de adres (AR - Address Register), n care se ncarc adresa
loca iei unde se afl operandul respectiv
Adresarea cuvintelor la microprocesorul 8086
n cazul microprocesorului 8086 lungimea unui cuvnt este de 16 bi i, iar
magistrala de date i registrele interne sunt de asemenea de 16 bi i. ntr-un astfel de
registru (notat cu R) un cuvnt apare sub forma din figura II.4.

Figura II.4. mplasarea n registru a unui cuvnt de 16 bi i


Memoria principal este ns organizat pe octe i i se pune problema
amplasrii cuvntului (de 16 bi i) n memorie. Exist urmtoarele dou posibilit i de
amplasare:
-----------------a) Cuvnt la adres par (figura II.5). n acest caz se spune c cuvntul este
aliniat, adresa de cuvnt fiind par (o0), acest cuvnt se poate citi de microprocesor
cu un singur acces la memorie, pe toate liniile magistralei de date

I (Do-15)'

Figura II.5. mplasarea n memorie a


unui cuvnt aliniat
b) Cuvnt la adres impar (figura 11.6). n acest caz cuvntul este nealiniat,
adresa lui fiind impar (01). Citirea lui necesit dou accesri succesive, prima dat
de la adresa impar (pe liniile Da-is), iar apoi de la adresa par (pe liniile
D0-7):

Figura 11.6. mplasarea n


memorie a unui cuvnt nealiniat

Redirijarea octe ilor spre jumtatea inferioar sau superioar a registrului se face
n CPU, conform instruc iunii executate.
Se observ c n al doilea caz timpul de execu ie a citirii cuvntului este dublu,
fa de cazul cellalt, acest lucru fiind ns compensat de avantajul umplerii compacte a
memoriei. n concluzie, microprocesorul 8086 permite o utilizare eficient a memoriei,
neexistnd nici o restric ie privind amplasarea datelor n memorie. Datele se plaseaz n
loca ii succesive, numrul de accesri necesare transferului fiind transparent din punct
de vedere software, avnd implica ii doar asupra vitezei de execu ie a programului.
Instruc iunile unui program fiind dispuse n memorie la adrese succesive, un cuvnt al
instruc iunii poate fi citit printr-unul sau dou cicluri de citire, n func ie de adresa la care
se afl octetul inferior al cuvntului: dac este la o adres par, atunci se efectueaz un

singur acces.

11.2. Reprezentarea intern a datelor


Datele cu care lucreaz un microcalculator pot fi de dou feluri: numerice i
alfanumerice. Datele numerice reprezint numere, iar cele alfanumerice desemneaz
litere, numere i semne speciale (de punctua ie, aritmetice etc.). vnd n vedere faptul
c circuitele unui calculator lucreaz n logic boolean (binar), permi nd
reprezentarea informa iei elementare prin numai dou stri (denumite 0 si i), rezult c
datele se reprezint codificate sub forma unor cuvinte binare. Cuvntul de cod binar
const dintr-o combina ie ae om de iT Tl de o anumit lungime
B = bn-1 bn-2 ... b2 bi bo,
unde b, e{0,1}, / = 0 ....... n-1.
n acest cuvnt b _i este bitul cel mai semnificativ (MSb - Most Significant Bit), iar
bo este bitul cel mai pu in semnificativ (LSb - Least Significant Bit). Suportul fizic al unui
astfel de cuvnt de cod poate fi un registru sau o loca ie de memorie. Informa ia din
microsistem fiind organizat pe octet, rezult c lungimea n a codului este n general un
multiplu de 8 (8, 16, 24, 32 de bi i).
Prin opera ia de codificare se asociaz fiecrui simbol primar (de codificat) cte
un cuvnt de cod, astfel nct s existe o core~sporiderr a biunivoc ntre mul imea
simhnlnrilor primare si mul imea cuvintelor de cod. In runc ie de metoda prin care se
face aceast asociere se disting o mare varietate de coduri, dintre care se prezint n
continuare numai cele mai frecvent utilizate n microsisteme. legerea codului de
reprezentare a datelor ntr-o anumit aplica ie este la latitudinea programatorului.
Dup natura datelor care se codific, codurile pot fi numerice sau alfanumerice.
11.2.1. Coduri numerice
a) Reprezentarea numerelor fr semn
n acest caz un numr N se reprezint prin valoarea sa exprimat n
sistemul de numera ie binar
n-1

Valoarea zecimal a numrului se poate calcula cu rela ia N ^b,-2'. Se observ

1=0
c pe n pozi ii se pot reprezenta numere din intervalul [0, 2n-1].
n func ie de valoarea maxim a numerelor din aplica ia dat, programatorul va
stabili numrul de octe i pe care se va face reprezentarea numerelor.
De exemplu, pentru n8, numrul N126 se reprezint prin codul 01111110.
Prin adunarea a dou numere binare, reprezentate pe un octet, exist
posibilitatea ca rezultatul s dep easc capacitatea de 8 bi i:

Rezultatul opera iei de adunare se gse te ntr-un registru special din unitatea
aritmetic i logic (ALU) a microprocesorului, numit acumulator (A - Accumulator). Bitul
suplimentar (al 9-lea) care a aprut n urma opera iei de adunare arat c rezultatul
dep e te capacitatea acumulatorului, dar el poate fi interpretat i ca un bit de transport
ctre rangul urmtor, dac numrul este reprezentat pe mai mul i octe i. cest bit de
transport se ncarc ntr-un bistabil indicator de transport, numit CY (Carry). Prin testarea
valorii din CY, programatorul poate ob ine indica ii asupra dep irii capacit ii.
b) Reprezentarea numerelor cu semn
Pentru semnul numerelor se aloc bitul cel mai semnificativ (MSb) din codul
binar al acestuia, restul cifrelor binare fiind menite s codifice valoarea absolut a
numrului:
Bitul b -i este bitul de semn, iar bi ii bn_2 + bo codific valoarea absolut a
numrului. Prin conven ie, bitul de semn este 0 dac numrul este pozitiv sau 1 dac
numrul este negativ.
n func ie de felul n care bi ii b^2 * bo reprezint valoarea absolut a numrului,
se deosebesc trei moduri uzuale de reprezentare, care difer numai la codificarea
numerelor negative:
prin mrime i semn
n complement fa de 1
n complement fa de 2
n cazul numerelor pozitive (+N > 0), codul numrului este acela i n toate cele
trei moduri de reprezentare:

Reprezentarea prin mrime i semn (n cod direct)


n acest caz codul numrului este:
i ii b-2 * b0 reprezint valoarea absolut a numrului n binar (mrimea numrului).
Evident c mul imea numerelor ntregi cu semn care pot fi reprezentate pe n bi i este
dat de intervalul [-(2n 1-1), 2n-1-1].
De exemplu, pentru n8, numrul -N = -25 are reprezentarea binar
10011001.

dunnd -25 i 25 reprezentate n cod direct se ob ine codul lui -50, rezultatul
fiind deci incorect:

Rezult c n cod direct este necesar examinarea bi ilor de semn naintea


execu iei unei opera ii aritmetice de adunare i aplicarea n consecin a unui algoritm
corespunztor. cesta este un dezavantaj care limiteaz domeniul de aplicabilitate,
ca i faptul c exist dou reprezentri pentru numrul 0:

Dep irea nseamn, la acest cod, transport spre b -i i se verific prin


testarea acestui bit. n acest scop microprocesorul introduce semnul rezultatului din
acumulator ntr-un bistabil indicator de semn notat cu S {Sign), care se poate examina
prin program:
+25: 0001 1001 +
+124: 0111 1100
-21: 1001 0101 S=1
dep ire J
Reprezentare n complement fa de 1 (cod invers)
Rela ia de defini ie a complementului fa de 1 a numrului -N este:
(-N)! = 2" -1 -N
unde N reprezint mrimea numrului (pstrnd nota ia de mai nainte).
Pe baza rela iei rezult:

unde b/=1-b/, /=0 ........ n-2.


Din formula de mai sus rezult c complementul fa de 1 al unui numr negativ
se ob ine prin complementarea tuturor bi ilor din reprezentarea n valoare absolut a
acelui numr i plasarea bitului 1 pe pozi ia cea mai semnificativ .
De exemplu, complementul fa de 1 al numrului -25 pentru n=8 este:

Fcnd suma numerelor +25 i -25 n cod invers se ob ine:

Rezultatul este corect, dar pentru 0 exist nc o reprezentare +0 = 00000000.


Faptul c pentru 0 exist dou reprezentri, constituie un dezavantaj a codului invers.
Mai exist nc un dezavantaj al acestui cod, i anume la efectuarea scderii unui numr

prin adunarea complementului su, dac exist transport din rangul de semn acesta
trebuie adunat la bitul cel mai pu in semnificativ pentru a ob ine rezultatul corect. cest
bit se nume te bitul de transport ciclic:

tiind c dep irea poate apare numai cnd se adun dou numere de acela i
semn, acest lucru se poate pune n eviden prin verificarea con inutului
bistabilului-fanion S dup efectuarea opera iei.
Reprezentare n complement fa de 2 (cod complementar)
Prin defini ie, complementul fa de 2 al numrului -N este:

unde N reprezint mrimea numrului.


Formula de mai sus se poate scrie sub forma:
ceea ce exprim rela ia dintre complementul fa de 2 i complementul fa de 1.
Rezult c complementul fa de 2 al unui numr negativ se ob ine adugnd 1 la
complementul fa de 1 al numrului:

De exemplu, pentru n=8, complementul fa de 2 al numrului -25 se poate


calcula astfel:

O alt modalitate de ob inere este cea pe baza rela iei de defini ie, prin
scderea valorii absolute a numrului din 2n\

Se observ i o metod practic de ob inere a complementului fa de 2: se


parcurg cifrele numrului ncepnd cu cel mai pu in semnificativ bit i se las
nemodjficate pn la primul 1 inclusiv, iar urmtorii bi i se complementeaz.
n cod complementar 0 are o singur reprezentare (00 . . . 000), iar la mul imea
numerelor care se pot reprezenta se adaug i -2,,+1, care are codul:

Dac n urma unei opera ii con inutul acumulatorului este nul (0) se

pozi ioneaz pe "1" un fanion indicator de zero al microprocesorului, notat cu Z (Zero).


n cod complementar, suma algebric a doi operanzi se poate efectua corect
prin simpla adunare a reprezentrilor celor dou numere n complement )0 fa de , trat
nd cifra de semn ca orice alt cifr care intr n opera ie. Din acest motiv, codul
complementar este forma de reprezentare cea mai frecvent utilizat n microsisteme.
Exemplu (n=8):

Dep ire poate apare doar la adunarea a dou numere de acela i semn, n
cazul n care n urma opera iei se altereaz bitul de semn. cest lucru poate fi verificat
prin testarea fanionului S dup efectuarea opera iei de adunare, comparnd-o cu
semnul celor doi operanzi.
La microprocesoarele uzuale exist un bistabil-fanion indicator de dep ire
(Overflow), notat O sau V, care se pozi ioneaz pe " 1 " n caz de dep ire conform
rela iei

unde Co-1 este transportul dinspre rangul n-2 spre rangul n-1 i C este transportul
din rangul semnului. Rela ia se poate deduce simplu pe baza tabelului urmtor (Si,
S2 reprezint semnul celor doi operanzi, iar SR semnul rezultatului):

La toate modalit ile de reprezentare a numerelor n microcalculatoare


prezentate p n aici, aceste numere s-au considerat a fi ntregi. Prin toate aceste
metode este ns posibil i reprezentarea numerelor frac ionare pe n+m bi i, sub forma:
N = bn-i bn-2... b2 bi b0, b_i b _ 2 . . . b-m
Virgula nu se reprezint fizic n calculator, dar pozi ia ei este fix, fiind stabilit
de programator la nceputul implementrii aplica iei. El va ine cont de acest lucru la
interpretarea codurilor binare. Datorit pozi iei fixe a virgulei, aceste codificri se
numesc reprezentri n virgul fix.
De obicei numerele se reprezint sub form subunitar, fiind scalate
(nmul ite cu un factor 2~r), astfel nct virgula s fie localizat n fa a bitului cel mai
semnificativ n cazul numerelor fr semn i dup bitul de semn n cazul numerelor
cu semn. ceast amplasare are n primul rnd avantajul u urin ei tratrii de ctre
utilizator.
Pentru ca valorile numerelor de codificat s acopere tot intervalul necesitat
de aplica ie, se pot folosi mai mul i octe i concatena i, a cror prelucrare succesiv
intr n grija programatorului.

c) Reprezentarea numerelor n virgul flotant (mobil)


Acest mod de reprezentare permite codificarea unor numere foarte mari sau
foarte mici cu precizie ridicat. Un numr ra ional N se reprezint n virgul flotant
prin dou componente:
^
mantisa (M), care este un numr frac ionar scalat cu semn de m bi i
exponentul (E), care este un numr ntreg cu semn de n bi i
Folosind aceste componente, valoarea numrului se exprim conform
rela ieijjiintoare:

Pentru n=8, m=24, un numr reprezentat n virgul flotant are formatul din
figura 11.7. Cu SE s-a notat bitul de semn al exponentului, iar SM reprezint semnul
mantisei. Dac exprimarea lui E se face n cod complementar (-27 < E ^ 27-1), atunci
reprezentarea n virgul flotant acoper domeniul -2127 < N < 2127. Rezult i de aici
c acest cod se poate folosi pentru reprezentarea numerelor ntr-un interval foarte
mare (2127 fiind de ordinul 1038).

Figura 11.7. Reprezentarea mantisei i exponentului

unui numr n virgul flotant pe 4 octe i

Pentru cre terea preciziei reprezentrii, M se aduce la forma normalizat


dup fiecare opera ie, astfel nct prima cifr dup virgul s fie semnificativ. Dac
mintisa este reprezentat n cod direct (ca la~coprocesoarele Intel), atunci aceast
cifreste 1. Astfel reprezentarea unui numr devine unic.
F^nfrlTeliminarea din cuvntul de cod a semnului exponentului, n loc de E se
folose te caracteristica (C). ceasta este dat de rela ia:
C=E+D
unde D este un ntreg pozitiv ales astfel nct C 0 pentru toate valorile lui E.

Figura 11.8. Reprezentarea unui numr n virgul flotant pe 32 de bi i


n exemplul dat, domeniul lui E se translateaz cu D128, deci caracteristica

va fi situat n intervalul 0 < C < 255. n general n reprezentarea numrului n virgul

flotant pe prima pozi ie se pune SM, care este echivalent cu semnul numrului
(figura II.8.).
Prelucrarea numerelor n virgul flotant necesit calcule lungi, de aceea
pentru aceste opera ii n microsisteme se folosesc procesoare specializate numite
coprocesoare matematice, respectiv unit ile de virgul flotant integrate n
microprocesoarele mai noi.
d) Coduri zeci mal-binare (BCD)
Denumirea de cod zecimal-binar, sau mai exact cod zecimal codificat n binar
(BCD - Binary Coded Decimal), provine de la faptul c simbolurile zecimale ale unui
numr se transform sub form binar. La acest mod de reprezentare, fiecare cifr
zecimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) se exprim deci printr-o tetrad binar. n func ie
de modul cum se aleg 10 din cele 16 combina ii binare posibile i cum se stabile te
coresponden a acestora cu cifrele zecimale, rezult un numr mare de astfel de
coduri. cestea pot fi de dou feluri:
ponderate, la care valoarea cifrei zecimale se ob ine prin suma ponderat
a bi ilor
neponderate, la care nu este asociat cte o pondere fiecrui bit
n microsisteme cel mai des utilizat dintre aceste coduri este codul ponderat
8421, numit i codul zecimal-binar natural. n mod curent, acestui tip de cod i se
atribuie denumirea de cod BCD. Din tabelul de coduri se observ c cuvntul de cod
al unei cifre corespunde chiar expresiei n binar a cifrei respective:

Dac pe un octet se reprezint dou cifre zecimale n cod BCD, atunci codul
se nume te BCD mpachetat (figura II.9.). Mrimea numrului care se reprezint
este limitat doar de numrul de octe i ale i. stfel se poate ob ine o precizie mrit,
dar pe seama unei risipe de spa iu n memorie i timp lung de prelucrare
(prelucrarea octe ilor fiind succesiv).
Figura 11.9. Reprezentarea unui numr n cod BCD mpachetat Se consider
urmtorul exemplu de adunare a numerelor 7 i 2 n cod
BCD:

Se observ c rezultatul este corect, dar dac se adun 7 cu 5, atunci se


ob ine un cod ilegal. Este necesar n acest caz corec ia rezultatului, care se face
prin adunarea cifrei 6:

Transportul care se genereaz dinspre cei 4 bi i mai pu ini semnificativi ai


rezultatului spre tetrada urmtoare se memoreaz n microprocesor ntr-un indicator
de condi ie de transport auxiliar, numit AC (Auxiliary Carry). cesta se mai noteaz i
cu H {Half Carry).
Corec ia este deci necesar de fiecare dat cnd cifra rezultatului este mai
mare dect 9, precum i n situa ia n care C1:

ntr-un program scris n limbaj de asamblare, dup efectuarea unei opera ii


aritmetice (adunare, scdere) asupra numerelor reprezentate n cod BCD este
obligatorie execu ia unei ajustri zecimale a rezultatului din acumulator, care
necesit o instruc iune DAA {Decimal Adjust after Addition). cesta corecteaz
rezultatul prin adugarea valorii 6 dac el a fost mai mare ca 9 sau dac exist

transport dinspre bitul cel mai semnificativ al tetradei, secven a de instruc iuni fiind:
ADD
DAA

; adunare
; ajustare

Dup o opera ie de scdere trebuie adunat -6 la valoarea rezultat. La 8086 exist i


o instruc iune separat pentru ajustare dup scdere (DS).
11.2.2. Coduri alfanumerice
Aceste coduri se folQCpgr pgntn| pnemorarea codificat a textelor i
transmitere? informa iei care poate con ine caractere sub form de litere, cifre i alte
semne speciale (inclusiv caractere de control).
------frT microsisteme se folose te aproape n exclusivitate codul ASCII
(American Standard Code for Information Interchange). n varianta standard, acest cod
con ine 128 de caractere, deci un caracter se codific pe 7 bi i. Informa ia ntr- un
microsistem fiind ns organizat pe octe i, bitul rmas disponibil se poate utiliza ca
bit de control al parit ii pentru verificarea siguran ei la transmisie.
'n caz de control prin paritate par (even parity), la emisie se adaug la bi ii utili
un bit suplimentar astfel nct suma bi ilor de 1 s fie un numr par. La recep ie, prin
evaluarea numrului de bi i de 1 (care trebuie s fie n numr par) ai octetului sosit,
se stabile te dac informa ia a fost transmis corect sau nu.
De exemplu, codul SCII al cifrei 2, cu bitul de paritate par este:

n caz de control prin paritate impar (odd parity), valoarea bitului de paritate
se alege astfel nct suma tuturor bi ilor de 1 s fie un numr impar. Pentru exemplul
precedent:

La majoritatea microprocesoare exist n cadrul setului de bistabile


indicatoare de condi ie un bistabil indicator de paritate (P - Parity), care ia valoarea 1
cnd totalul bi ilor de 1 ai octetului din acumulator este un numr par. (La
microprocesorul 8086, cu acumulatorul pe 16 bi i, verificarea se face asupra
octetului cel mai pu in semnificativ.)
Controlul parit ii se poate efectua i asupra datelor din memorie, de
exemplu la unele module de memorie ale calculatoarelor IBM PC informa ia se
pstreaz pe 9 bi i, unul fiind bitul de control de paritate.

11.2.3. Codificarea mrimilor fizice cu dou stri


n cadrul aplica iilor industriale ale microsistemelor exist de multe ori
necesitatea codificrii unor mrimi fizice cu dou stri. ceast codificare se face sub
forma unor variabile binare, alocnd pentru fiecare mrime cte un bit al unui cctet,
can exemplul din figura II.Id

Figura 11.10. Reprezentarea binar a unor mrimi fizice cu dou stri


Prelucrarea variabilelor se poate face individual (cu instruc iuni specifice pe
bit) sau prin mascare, opernd cu ntregul octet.

II.3. Formatul instruc iunii


a cum s-a artat la punctul 11.1, instruc iunile unui program se afl stocate
n memorie, fiecare instruc iune fiind reprezentat sub forma unui sau mai multor
octe i (cuvinte). Lungimea unei instruc iuni este dat de complexitatea nfbrma iei din
instruc iune. n orice caz, primul octet (cuvnt) al unei instruc iuni otite din memorie
trebuie s con in codul binar al instruc iunii numit si codul opera iei (opcode), care
arat ce instruc iune se va executa. n vederea nerpretrii codului, acest octet
(cuvnt) se introduce n registrul de instruc iuni IR instruction Register) al
micropTocesorului, pentru a fi~decodificat de unitatea de comand.
Codul opera iei ocup un cmp al cuvntului instruc iune, fiind impus de
fabricantul microprocesorului i dat n catalog n formatul instruc iunii (figura 11.11.).
Formatul instruc iunii mai poate con ine de regul nc un cmp, n care se afl n
principiu adresa sau valoarea operandului.

Figura 11.11. Formatul general al unei

instruc iuni

Exist unele instruc iuni la care cmpul codului opera iei poate con ine i
adresa unor registre interne, n acest caz codul opera iei se nume te cod al opera iei
generalizat.
La microprocesorul 8086 o instruc iune de transfer cu doi operanzi (de
exemplu MOV X, adr [X]) are formatul generai de 4 octe i, conform figurii 11.12.
Primul octet con ine pe lng codul opera iei un bit indicator al sensului de transfer
(destination) i un bit privind lungimea informa iei de transferat (word, 0 la operand pe 8
bi i i 1 la operand pe cuvnt). Octetul al doilea arat faptul c un operand (aici

destina ia) se afl n registrul indicat de cmpul "reg" (aici X), iar cellalt operand se
afl n memorie la adresa dat de con inutul registrului indicat de cmpul "r/m" (aici
X) la care se adaug un eventual deplasament (n func ie de valoarea cmpului
"mod"). Ultimii doi octe i con in valoarea deplasamentului, n ordinea LS, MS.

Figura 11.12. Formatul unei instruc iuni la microprocesorul 8086

II.

4. Moduri de adresare

La execu ia unei instruc iuni, pentru a avea acces la operandul aflat ntr-un
registru sau o loca ie de memorie, microprocesorul trebuie s ncarce n registrul de
adrese AR (vezi 11.1) adresa efectiv (EA - Effective Address) a acestui operand.
n func ie de modalitatea de calcul a adresei efective, exist mai multe moduri
de adresare, cele caracteristice microprocesorului 8086 fiind prezentate n figura
11.13.
La modul de_adresare imediat, valoarea operandului este con inut n
instruc iune dup codul opera iei (COL
~
----- In cazul modului de adresare direct la registru, operandul se afl ntr-un
registru al microprocesorului, indicat n codul instruc iunii. Codul reaistruTurggate~fi
reprezentat explicit dejun cmp al codului instruc iunii, sau poate fi con inut implicit n
codul opera iei.
La modul de adresare direct la memorie (absolut), adresa efectiv a
operandului aflat n memorie se afl ntr-un cmp al instruc iunii, dup codul
opera iei?
*lfloduJ_de adresare relativ, caracteristic unor instruc iuni de salt,
calculeaz adresa efectiv de memorie prin nsumarea adresei instruc iunii curente
(con inut n contorul de program PC) cu un deplasament" dat n instruc iune
'
-

In cazul modului de adresare indirect. n instruc iune se indic un registru de


adresare indirect (I), care con ine adresa efectiv a operandului din memorie. La
microprocesoarele uzuale pot~frT0t05ltgTnai multe registre pe rol~de registru I, de
exemplu BX. BP. SI. Dl Ia8086.

Figura 11.13. Modurile de adresare ale microprocesorului 8086


Adresa efectiv a operandului din memorie n situa ia adresrii indexate se
calculeaz adugnd la con inutul unui registru index X (desemnat de instruc iune)'
atorea deplasamentului specificat dup codul opera iei. La microprocesorul 3086
registrele index se numesc Dl i SI. dresarea indexat se utilizeaz la adresare unui
ir de date, prin con inutul registTuiui index speciicandu-se doar ndicele.
cresarea bazat se deosebe te de cea indexat prin faptul c n loc de
egistrul X se folosp tp i in ffloi^trtrl adresei de baz . La 8086 ca registru B se pot
folosi X i P. dresarea de bazat poate fi folosit pentru adresarea unei rregistrri
de mai multe elemente (care se parcurg prin modificarea deplasamentului) dintr-o
succesiune de astfel de nregistrri (adresa unei zone de ge). "
Exist i modul de adresare bazat indexat la care n instruc iune se rxSc
dou registre, adresa efectiv ob inndu-se prin nsumarea con inutului acestora.
Adresarea bazat indexat cu deplasament, adun la suma con inutului
registrului de baz i a celui index un deplasament dat n instruc iune, ob inndu- se
astfel adresa de memorie a operandului.
Modul de adresare poate fi dat implicit de codul opera iei, sau este specificat
de un cmp separat n formatul instruc iunii ("mod" la 8086).

Deplasamentul este un numr cu semn n cod complementar fa de 2.


Opera ia de adunare pentru calculul adresei efective se execut de regul n
unitatea aritmetic i logic a microprocesorului.
Existen a diferitelor moduri de adresare fac mai flexibil utilizarea
microprocesoarelor i constituie unul din criteriile de apreciere a performan elor sale.

11.5. Stiva
Stiva este o zon din memoria RM a microsistemului, organizat astfel nct
ultimul cuvnt introdus va fi i pnmurexffas, deci ordinea^de scoatere este invers cu
ordinea da depunere. Stiva lucreaz dup principiul ultimul Intraf - primul ie it l IFO / ast In First Out).
La toate microprocesoarele uzuale stiva este descresctoare, adic adresa
scade odat cu cre terea stivei. Elementele care caracterizeaz stiva sunt (figura
11.14):
baza stivei, care reprezint o adres ce se stabile te de programator i
rmne fix pentru aplica ia respectiv
vrful stivei, care este adresa ultimei loca ii ocupate

Figura 11.14. Organizarea unei stive n memorie


Adresa vrfului stivei se afl nscris ntr-un registru al mir.mprnr.p>snri)liii numit
registru indicator de stiv SP (Stack Pointer). La nceput SP se ncarc cu adresa de
baz, apoi con inu i ii ini <SP decrementeaz automat la fiecare nscriere i se
incrementeaz dup fiecare extragere din stiv. Fiind declarat prin Droaram. o
as381~tig~stiv se nume te stiv software.
Stiva se utilizeaz la: salvarea con inutului lui PC n caz de apel la o
subrutin (cu instruc iunea CALL sau printr-o ntrerupere, vezi V.5.3.1.),
pentru ca la revenire (prin

s2.

instruc iunea RET) programul principal s poate continua de la instruc iunea


urmtoare celei de apel, prin restaurarea adresei n PC
salvarea con inutului unor registre generale ale microprocesorului (prin
instruc iunea PUSH) i restaurarea lor n ordinea invers (prin instruc iunea
POP)
Un exemplu de utilizarea stivei se prezint n figura 11.15, unde se face
apelare de subprograme pe dou niveluri. Stiva este ini ializat prin ncrcarea n 3P
a adresei 2000H- Se observ c pe durata execu iei programului principal stiva este
goal. n momentul efecturii saltului stiva se ncarc cu adresa de revenire 0Q53H,
care se afl n acest moment n PC. (Con inutul lui PC se incrementeaz mediat dup
extragerea unui octet al instruc iunii, iar instruc iunea CALL are 3 zce i.) Peste acest
con inut se depune valoarea 0208H pe durata execu iei celui oe-al doilea
subprogram, care se va restaura n PC la revenirea n subprogramul nr.1. Dup
revenirea n programul principal, la instruc iunea urmtoare lui CALL, seva devine din
nou goal.

Figura 11.15. Utilizarea stivei la apelul de subprogram

II.6. Segmentarea memoriei


Segmentarea memoriei este o tehnic de gestiune a memoriei principale
caracteristic anumitor tipuri de microprocesoare, cum este 8086. Se va exemplifica
pe acesta.

La microprocesorul 8086, un segment este o zon de memorie constituit din


loca ii succesive, avnd lungimea de 64 Kocte i. Din spa iul de memorie adresabil de 1
Moctet, o aplica ie poate utiliza deodat patru segmente. cestea sunt denumite dup
natura informa iilor pe care le pstreaz:

segment de cod (pentru program)


segment de date
segment de stiv
extrasegment (tot pentru date)
Locul acestor segmente n memorie este dat de cte o adres de baz a
fiecrui segment, care se ncarc n registrul segment corespunztor (figura 11.16):

registru segment de cod CS (Code Segment)

registru segment de date DS (Data Segment)

registru segment de stiv SS (Stack Segment)

registru extrasegment ES (Extra Segment)

Figura 11.16. Segmentarea memoriei la microprocesorul 8086


Registrele de segment fiind de 16 bi i, rezult c adresa de baz a unui
segment este multiplu de 16. Se men ioneaz c segmentele pot fi i suprapuse.
dresa fizic a unei loca ii de memorie (a) se ob ine prin adunarea offset- ului
loca iei fa de baza segmentului (o) la adresa de baz a segmentului (s):
a = sx24 + o
Se ob ine astfel o adres de memorie de 20 de bi i.
Offset-ul poate fi con inutul indicatorului de program IP n segmentul de cod,
adresa efectiv (E) calculat n segmentul de date, con inutul indicatorului oe stiv
(SP) n segmentul stiv sau valoarea dintr-un registru index n extrasegment. Toate

aceste valori ale offset-ului sunt reprezentate pe 16 bi i.


Un exemplu de calcul al adresei fizice pe baza rela iei de mai sus (pentru
S=2436H i o0044H) este urmtorul:

O adres dat prin a i o se nume te adres logic i, pentru exemplul de


mai nainte, se noteaz 2436:0044. Este evident c o adres fizic poate fi exprimat
prin mai multe adrese logice.
Structura segmentat a memoriei permite scrierea programelor -dependent
de localizarea lor n memorie, fiind posibil astfel relocarea dinamic a codurilor
pentru utilizarea eficient a spa iului de memorie (figura 11.17).

Figura 11.17. Utilizarea compact a memoriei

prin relocarea segmentelor

III. UNITTE CENTRL DE PRELUCRRE


111.1. Arhitectura microprocesorului 8086
n structura intern tipic a unui astfel de microprocesor monolitic (de tip

single-chip) se disting urmtoarele trei blocuri func ionale principale:

Unitatea aritmetic i logic cu registrele aferente (RLU - Registers and


Arithmetic Logic Unit), care con ine elementele de execu ie efectiv a prelucrrii
informa iei.

Unitatea de comand (CU - Command Unit), care interpreteaz instruc iunile


din program, genereaz semnalele de comand necesare pentru execu ia
acestora i supravegheaz execu ia.
Grupul de registre (RA - Register Array), care este utilizat pentru depozitarea
temporar a datelor n CPU, unele registre fiind destinate doar pentru un
anumit tip de date.
Proiectan ii firmei Intel au urmrit la elaborarea lui 8086 ca noul
microprocesor s dispun de performan e superioare predecesoarelor sale (8080,
8085) n ceea ce prive te:
cre terea vitezei de lucru
capacitate de memorie adresabil mai mare
extinderea setului de instruc iuni
Aceste obiective s-au putut nfptui datorit urmtorilor factori:
utilizarea tehnologiei HMOS (High Performance Metal Oxid Semiconductor),
care permite o densitate de integrare superioar (29000 tranzistoare/pastil)
celei NMOS i o frecven mai ridicat a tactului
mbunt irile arhitecturale aplicate la proiectarea microprocesorului
Elementele specifice cu influen direct asupra arhitecturii sunt:
1. Magistrala extern unic multiplexat
Microprocesorul 8086 este un procesor cu magistrala de date de 16 bi i i
pentru a putea men ine capsula de 40 de pini s-a recurs la utilizarea n comun a 16
pini pentru date i adrese. Deci, aceea i magistral de 16 linii se folose te multiplexat
n timp (n func ie de valoarea unui semnal al microprocesorului) att pentru date ct

i pentru cei 16 bi i inferiori ai cuvntului de adres. Rezult c n exterior magistrala


trebuie demultiplexat pentru a forma magistralele separate de date i de adrese ale
microsistemului.
2. Segmentarea memoriei
ceast tehnic permite generarea unei adrese fizice de 20 de bi i din dou
cuvinte de cte 16 bi i. Existen a a 20 de bi i de adres duce la un spa iu adresabil de
1 Moct.
3. ducerea n avans a instruc iunilor
Structura intern a microprocesorului 8086 este divizat n dou unit i
func ionale (figura 111.1):
unitatea de execu ie (EU - Execution Unit), care execut instruc iunile, avnd
la dispozi ie RLU i registrele generale
unitatea de interfa cu magistrala (IU - Bus Interface Unit), care extrage
instruc iunile din memorie i vehiculeaz datele (operanzi, rezultate) pe
magistrala extern

Figura 111.1. Schema de principiu a prelucrrii

instruc iunilor la microprocesorul 8086

IU extrage n avans instruc iunile din memorie i le depune ntr-o coad de


a teptare (queue), prin care acestea se transmit unit ii de execu ie. Coada de
struc iuni este o memorie intermediar care func ioneaz dup principiul primul
intrat - primul ie it (FIFO - First In First Out).
EU preia instruc iunea curent din coad i o execut, fr a avea vreo
legtur cu exteriorul. Dac totu i execu ia instruc iunii presupune un acces la
memorie, EU va apela pentru aceasta la BIU, singura n msur s comunice cu

magistrala sistemului. IU va servi EU, suspendnd temporar extragerea


instruc iunilor.
Cele dou unit i pot func iona n paralel practic independent,
suprapunndu-se execu ia instruc iunilor cu aducerea celor urmtoare (figura
111.2). stfel cre te considerabil viteza de prelucrare i are loc o utilizarea mai
intens a magistralei.

Figura 111.2. Func ionarea paralel a unit ilor interne

ale microprocesorului 8086

Figura 111.3. rhitectura intern a microprocesorului 8086

Dac EU are de executat o instruc iune de salt, coada se terge, se aduce


nstruc iunea de la noua adres i IU ncepe rencrcarea cozii cu instruc iunile
-mtoare. Pentru cre terea suplimentar a vitezei de procesare, IU dispune de j~
sumator propriu pentru calculul adreselor, nemaifiind nevoie s apeleze la ALU.
Desigur tehnica de prelucrare a instruc iunilor bazat pe paralelismul execu iescragere este transparent utilizatorului.
rhitectura microprocesorului 8086 este prezentat n figura III.3. Se -emarc
divizarea pe cele dou unit i EU i IU, precum i existen a n structur mai
multor ci interne. Fiecare unitate dispune de cte o logic de comand. Coada de
instruc iuni, sub forma unei memorii FIFO, are 6 octe i, ie irea fiind orientat spre
magistrala numit Q-bus. E este un sumator n cadrul BIU folosit centru calculul
adreselor fizice.
Unitatea de comand EU reprezint sec iunea func ional de baz care
coordoneaz toate activit ile microprocesorului^ asigurnd secven area
corespunztoare evenimentelor pentru execu ia fiecrei instruc iuni. La acest
-croprocesor unitatea de comand este implementat prin microprogramare, ceei~
ceTnieamn" c execu ia fiecrei instruc iuni se realizeaz de tapt in crocesor prin
execu ia unui microprogram specific instruc iunii respective. Codul rstructiunii
preluate din coada de instruc iuni este convertit Tn" adresa -icroprogramului asociat
acelei instruc iuni. Microprogramele se a7la~nscrise intr- c memorie de
microprograms de tip ROM, de unde se extrag ntr-un registru de mcroinstruc iuni i
se execut sub controlul unui microsecven or, care con ine contorul de
microprogram. Fiecare microinstruc iune con ine un set de comenzi carise execut la
un "moment dat sincronizat cu semnalul de tact stfel se~ genereaz semnalele de
comand necesare pentru activarea corect e alonat a C-Cumf~re5urse!or n
vederea execu iei instruciunilor Semnalul rie tact (dock) refcuie aplicat din exterior
microprocesorului, fiind ob inut de la un oscilator extern cu cuar , care reprezint
baza de timp a ntregului microsistem.
Toate registrele interne ale microprocesorului 8086, precum i unitatea
arrmetic i logic sunt de 16 bi i. Unitatea aritmetic $i logic (ALU - Arithmentid
_cgfc Unit) este un circuit logic combina ional, capabil s'realizeze opera ii argnetice
iiogice (adunar, caflere~opera ii booleene de tip l, SU, SU EXCLUSIV,
complementare, incrementare, decrementare, deplasare le stnga i a dreapta)
asupra operanzilor aplica i la intrri sub form binar. Registrele generale se mpart
n grupul registrelor de date (X, X, CX, DX) i grupul -egtstrelor pointer-i
(indicatoare) i index (SP, P, SI, Dl). Registrele din primul grup pot fi adresate i pe
octet n jumtatea inferioar (L - Low) sau jumtatea superioar (H - High). Aceste
registre generale pot avea i anumite func ii particulare:
X (acumulator) se folose te la opera ii aritmetice (nmul ire, mpr ire) i
opera ii de intrare/ie ire
X (registru de adres de baz) se folose te n calculul adresei efective la
modul de adresare bazat
CX (contor de ciclu) se utilizeaz n opera ii cu iruri i n opera ii de
deplasare

DX (registru de date) particip la opera ii de nmul ire i mpr ire i ca


registru pentru adresarea porturilor la opera ii de intrare/ie ire
Registrele din grupul registrelor indicatoare si index con in offset-ul, cu
urmtoarea semnifica ie:

SP (indicator de stiv) con ine adresa vrfului stivei

P (indicator de baz) pentru adresarea datelor din segmentul stiv

SI (index surs) pentru opera ii cu iruri

Dl (index destina ie) de asemenea pentru opera ii cu iruri

Registrele segment din structura lui 8086 sunt urmtoarele:

CS (registru segment de cod) con ine baza segmentului de cod curent

SS (registru segment de stiv) con ine baza segmentului de stiv

DS (registru segment de date) con ine baza segmentului de date

ES (registru de extrasegment) con ine baza extrasegmentului curent


(folosit tot pentru date)
Registrul IP (Instruction Pointer) este indicatorul de instruc iuni sau cu alte
cuvinte contorul de program. cesta con ine offset-u! instruc iunii care urmeaz s
fie extras din memorie.
Registrul de fanioane (flags) con ine indicatorii de stare i control, conform
amplasamentului din figura 111.4.

Figura 111.4. Registrul de fanioane al microprocesorului 8086


Indicatorii de stare asupra modului n care s-a ncheiat o opera ie sunt
urmtorii:

C (Carry) indic transportul la o opera ie aritmetic pe 8 sau 16 bi i

P (Parity) indic paritatea (par) a rezultatului, dar numai pe octetul inferior

A (AuxiliaqcCprty) memoreaz transportul auxiliar, de la semioctetul cel mai


pu in semnificativ al operandului pe un octet

Z (Zero) este "1" dac rezultatul unei opera ii este nul

S (Sign) memoreaz bitul de semn al rezultatului

O (Oyerflpw) arat dep irea, i anume dac 01 rezultatul unei opera ii


aritmetice n tomplement fa de doi dep e te capacitatea de reprezentare
i duce la alterarea bitului de semn
n func ie de valoarea luat de un indicator de stare dup o anumit opera ie,
pot fi efectuate ramifica ii n program cu instruc iuni de salt condi ionat. Saltul se
poate executa pe valoarea adevrat sau fals a fanionului respectiv.
Pe lng ace ti indicatori de stare, microprocesorul 8086 con ine i ridictori
de control, prin pozi ionarea crora (cu instruc iuni specifice) programatorul poate
interveni asupra modului de execu ie al programului, ndicatorii de control au
urmtoarele semnifica ii:
T (Trap) este fanionul capcan, adic dac T1 se genereaz automat o
ntrerupere intern dup fiecare instruc iune, fiind posibil astfel execu ia
programului n regim pas cu pas prin soft, ceea ce este util la depanarea
programelor
I (Interrupt) este bistabilul de validare ntrerupere, dac 11 indic validarea
ntreruperilor mascabile (vezi V.3.1)
D (Direction) indic direc ia n care s fie prelucrat un ir de date de
transferat, i anume dac D1 prelucrarea irului se face prin decrementare
(de la adrese superioare spre cele inferioare), respectiv invers dac D0
Cuvntul de stare al procesorului (PSW - Processor Status Word) este dat a
8086 de con inutul registrului de fanioane. Dup acceptarea unei ntreruperi (dar -u
i la apelul unui subprogram), PSW se salveaz automat n stiv mpreun cu
con inutul lui CS i IP.
REG. INT. reprezint ni te registre de comunica ie intern, iar REG. TEMP.
sunt registre temporare la intrrile unit ii aritmetice i logice.

III.

2. Func ionarea microprocesorului

111.2.1. ctivitatea ciclic a microprocesorului


Dup cum s-a mai artat, un program n cod ma in const dintr-o secven
de instruc iuni plasate la adrese succesive n memoria microcalculatorului. Execu ia
programului const din citirea i execu ia pe rnd a ^ecrei instruc iuni a programului
de ctre microprocesor. Rezult deci c microprocesorul are o func ionare ciclic:
cite te o instruc iune, execut opera iile cerute de aceasta, cite te instruc iunea
urmtoare, o execut i a a mai departe.
Privite n timp, activit ile depuse de microprocesor pentru citirea i execu ia
unei instruc iuni formeaz un ciclu instruc iune (Instruction Cycle). Ciclul instruc iune se
compune din:
ciclul de extragere a instruc iunii (numit i ciclu de aducere sau fetch)
ciclul de execu ie a instruc iunii

etc).
ntruct exist o serie de activit i ale microprocesorului care se regsesc la
majoritatea instruc iunilor executate, acestea sunt grupate n cicluri tipizate, numite
cicluri ma in. cest lucru duce la un plus de modularitate n execu ia instruc iunilor i
u ureaz implementarea hardware a circuitelor de control. Ciclul ma in este un grup
de ac iuni corelate n timp ale microprocesorului care rezolv o activitate par ial bine
definit n execu ia unei instruc iuni. Pmtiaalele cicluri ma in sunt:
n ciclul de extragere are loc citirea codului instruc iunii din memorie de la
adresa indicat de numrtorul ne program ~(FC)7Tncrcarea acestuia.n registrul
delnstructiuneltR) si decodificarea i interpretarea) codului. ConcomitentseTace
incrementarea lui PC, preatindu-l pentru citirea instruc iunii urmtoare, care va avea
loc la proximul ciclu de extragere.
n Ciclul de execu ie, pe baza decodificrii codului opera iei, circuitele de
cQntroJ^enemazjje.mnalele-d-CQmin33Tfscesre execu iei opera iei specificate n
instruc iunea respectiv (de citire/scriere a unei date din/n memorie, o intrare/ie ire
de date de la/ctre un dispozitiv penfenc, o opera ie intern n CPU

ciclul de extragere (fetch) se noteaz cu Mi i este primul ciclu ma in din


fiecare ciclu instruc iune
ciclul de citire din memorie (read)
ciclul de scriere n memorie (write)
ciclul de citire de la un dispozitiv de intrare (in)
ciclul de scriere ntr-un dispozitiv de ie ire (out)
ciclul de ntrerupere (interrupt)
ciclul de oprire (half)
Primele trei cicluri sunt cele mai frecvent executate, de aceea se mai numesc
i cicluri de baz. n acest capitol se trateaz numai acestea.
Ciclul instruc iune este format dintr-un numr ntreg de cicluri ma in,
numrul i tipul lor fiind func ie de opera ia cerut de instruc iune. n orice caz ns
primul ciclu ma in al oricrei instruc iuni este un ciclu de extragere (M-i).
n execu ia unui ciclu ma in, microprocesorul trebuie s parcurg o
succesiune de stri corespunztoare microopera iilor elementare necesare. De
exemplu, la un ciclu de citire din memorie, microprocesorul trebuie s adreseze
memoria, s a tepte pn cnd vor fi date disponibile i apoi s le preia i s le
introduc ntr-unul din registrele sale. Pentru parcurgerea n timp a acestei suite de
stri, microprocesorului i se aplic un semnal de tact (numi i semnal de ceas sau
clock) de la un oscilator, care marcheaz momentele de timp pentru toate ac iunile
procesorului. O perioad a semnalului de tact, numit ciclu de tact (Clock Cycle)
desemneaz o stare a microprocesorului, notat cu T.
Un ciclu ma in este format dintr-un numr ntreg de cicluri de tact (stri),
numruPacestora fiindvariabil nlunc ie de opera iile de executrPexntt- hjrata
unuL^lulnstruc iune poate vari~deJa-0 instruc ie la alta~guratacicIuTui de tact este
unic ntr-un microcalculator, fiind unitatea de msur, a timpului elementar.

^entru asigurarea preciziei se folosesc oscilatoare cu cuart, care prezint o


ticven stabil de oscila iei
- -------------------------Modul cum se nln uie strile, ciclurile ma in i ciclurile instruc iune, se
eprezint sugestiv n figura III.5.
111.2.2. Ciclurile de transfer cu memoria
Ciclurile de transfer cu memoria sunt ciclurile de citire a unui cuvnt din
memorie i scriere a unui cuvnt n memorie.
Ciclul de citire din memorie poate apare n faza de execu ie a unei rsductiuni
care necesit o dat din mpmnne in principiu i ciclul de extragere, care este primul
ciclu ma in al fiecrui ciclu instruc iune, realizeaz citirea unui cuvnt din memorie (a
codului instruc iunii), dar are anumite particularit i: cuvntul se cite te de la adresa
indicat de contorul de program (PC) i se ncarc registrul de instruc iuni al
microprocesorului (IR). De aici urmeaz s se fac cecodificarea codului opera iei,
care reprezint o opera ie intern. n ciclul de crye, data ob inut din memorie se
plaseaz n acumulator sau ntr-unul din ceteialte registre ale CPU, dar nu n registrul
instruc iune.
[Ciclul de scriere] n memorie este similar cu cel de citire, dar sensul vehiculrii
datelor este diferit
Pentru realizarea unei opera ii de transfer cu memoria, microprocesorul rebuie
s execute urmtoarelelactivitti la nivelul semnalelor sale 'cu exteriorul ^gura III.6,
folosind nota iile de la 8086):
Plasarea pe magistrala de adrese a adresei de memorie unde/de unde se
face transferur
"
Emiterea semnalului care indic faptul c va urma un acces la memorie
(M/IO=1).
ctivarea semnalului care indic sensul transferului: RD (Read) pentru citire,
respectiv WR (Write) pentru scriere.
Preluarea datei furnizate de memorie pe magistrala de date n cazul ciclului
de citire, respectiv plasarea datei de nscris n memorie pe magistrala de date
n cazul ciclului de scriere.
Sincronizarea activit ii microprocesorului cu cea a memoriei prin
introducere de stri de a teptare (wait), for nd intrarea READY la O", dac
este necesar.

Figura 111.5. nln uirea ciclurilor microprocesorului

Figura 111.6. Semnalele participante ntr-un

ciclu de transfer cu memoria


ntr-un ciclu de citire din memorie cuvntul citit trebuie s fie prezent i stabil
pe magistrala de date n momentul prelurii de ctre CPU, n rest magistrala poate fi
n stare de impedan ridicat. Pentru ca data s fie stabil la preluare, timpul de
acces al memoriei (intervalul de timp dintre momentul cnd o dat a fost cerut din
memorie i momentul cnd ea a fost furnizat) trebuie s fie suficient de mic fa de
durata permis de ciclul de tact. Dac totu i memoria nu rspunde suficient de rapid,
astfel nct cuvntul citit s nu fie plasat pe magistrala de date pn n momentul
e antionrii acestuia de ctre microprocesor, trebuie luate msuri de sincronizare a
activit ii microprocesorului cu cea a memoriei. ceast sincronizare se realizeaz
prin nserarea unei (sau mai multor) stri de a teptare T w (wait state) n ciclul de citire.
n acest scop microprocesorul dispune de o
intrare READY (la unele microprocesoare WAIT), care se testeaz i dac se gse te
a fi 0 , microprocesorul trece n stare de a teptare pn la comutarea acestui semnal.
Ca urmare se execut un ciclu de citire din memorie prelungit cu stri de a teptare.
Diagramele de timp ale ciclurilor de transfer cu memoria, ca i ale celorlalte
cicluri ma in se dau n documenta ia aferent fiecrui tip de microprocesor. n figura
III.7 sunt prezentate diagramele de timp ale ciclurilor de citire i scriere n cazul
microprocesorului 8086, avnd inserate cte o stare de a teptare. Microprocesorul se
consider configurat n mod minim, adic utilizat ntr-un sistem monoprocesor.
Ciclurile ma in de citire i scriere ale lui 8086 fac parte din categoria ciclurilor
de magistral (bus cycles), alturi de ciclurile de intrare/ie ire i de ntrerupere. ntre
dou cicluri de magistral, dac microprocesorul nu solicit transfer pe magistral se
introduc stri inactive Ti (idle state).
Pentru n elegerea diagramelor de timp se cuvin cteva precizri legate de
microprocesorul 8086:
1. Strile se consider ntre fronturile descresctoare ale semnalului de tact (notat aici
cu CLK de la cuvntul clock).

Figura 111.7. Ciclurile de transfer cu memoria ale microprocesorului 8086


2. Pentru a reduce numrul de terminale ale capsulei 8086, conexiunile
corespunztoare magistralei de adrese (de 20 de linii) se folosesc multiplexat, astfel:
AD0+AD15 - n starea T1 reprezint adresa 0-HA1 5, iar n strile reprezint
magistrala de date de 16 bi i D0H-D15
A16/S3-^A19/S6 - n starea Ti reprezint adresa A16WM9, iar n strile
T2-5-T4 reprezint linii pe care microprocesorul furnizeaz informa ii de stare
(privind registrul segment de cod utilizat, starea fanionului IF, starea de
ocupare a magistralei)
n vederea demultiplexrii magistralei comune, microprocesorul emite n sarea
Ti un semnal de validare a adresei ALE (Address Latch Enable), cu care adresa se poate
ncrca ntr-un registru latch pentru a fi disponibil i n continuare pe magistrala de
adrese a microsistemului. Tot din considerente asemntoare se genereaz semnalul
de validare date DEN (Data Enable), care se folose te pentru validarea conectrii
microprocesorului la magistrala de date a microsistemului.
1. Pinu! HE/S7 se folose te de asemenea multiplexat:
In starea Ti reprezint validarea accesului la jumtatea superioar a
magistralei de date (Bus High Enable). stfel, cnd HE 0 se face transferul
unui octet pe liniile D8+D15 ale magistralei de date. Dup cum s- a artat n
11.1, octetul mai pu in semnificativ al unui cuvnt aliniat de 16 bi i se gse te n
memorie la adres par fiind transferat pe liniile D0+D7, iar
octetul cel mai semnificativ se afl la adres impar i se transfer pe
D8-rD15. Rezult deci c semnalul HE mpreun cu linia de adres O
determin tipul transferului pe 8 sau pe 16 bi i, conform tabelului:

n strile T2+T4 furnizeaz o informa ie de stare (nedefinit) pe S7.


Legat de celelalte semnale prezente n diagramele de timp ale ciclului de
transfer cu memoria la 8086, sunt de fcut urmtoarele observa ii:
Pentru indicarea accesului la memorie se folose te semnalul de selec ie
memorie/dispozitiv de intrare-ie ire M/IO (Memory/lnput-Output).
Opera ia de transfer efectuat, de citire sau scriere, se indic prin semnalul
RD (React), respectiv WR (Write), pe lng care la 8086 se mai
emite un semnal DT/R (Data Transmit/Receive), care arat sensul transferului din
punctul de vedere al microprocesorului (este "1" pentru transmisie i este "0"
pentru recep ie).
Pentru sincronizarea cu memoria se aplic din exterior semnalul READY,
care pentru REDY0 va duce la introducerea unei stri de a teptare T w
(testarea are loc pe frontul cresctor al tactului din T 3 i Tw, dar intrarea trebuie
s fie stabil deja la nceputul strii).
n cazul microprocesorului 8086 ciclul de extragere este identic din punct de
vedere al evolu iei n timp a semnalelor externe cu ciclul de citire din memorie, de
aceea nu se prezint separat.

III.3. Conexiunile microprocesorului cu sistemul


111.3.1. Clasificarea semnalelor externe
Microprocesorul comunic cu restul sistemului prin semnalele care se pot
grupa din punct de vedere func ional n trei magistrale:
a) Magistrala de date con ine un grup de linii pe care se desf oar transferul
bidirec ional i paralel de date (inclusiv instruc iuni) ntre microprocesor i elementele
din sistem. Numrul acestor linii este o caracteristic a tipului de microprocesor (8, 16,
32, 64 de linii). Cnd microprocesorul nu efectueaz transfer de date, aceste borne
ale sale n stare de impedan ridicat (sunt de tipul trisafe), lucru ce ofer posibilitatea cedrii magistralei de date pentru un transfer rtre alte
componente din microsistem. Liniile magistralei de date sunt la ncroprocesoarele
uzuale active pe "1" logic.
b) Magistrala de adrese con ine setul liniilor pe care microprocesorul trimite
acresa de selec ie ctre memorie sau dispozitivele de intrare/ie ire. La fel ca liniile
magistralei de date i acestea sunt ie iri cu trei stri, active de regul pe "1" logic. _a
microprocesorul 8086, pentru economie de pini, datele i adresele utilizeaz la weiul

terminalelor capsulei aceea i magistral multiplexat n timp (vezi III.2.2).


c) Magistrala de control nu este o magistral propriu-zis (omogen), ci
gripeaz semnalele de comand i de stare, care sunt utilizate de microprocesor r
cialogul cu celelalte componente ale sistemului. Aceste semnale pot fi grupate assei:
semnale de comand emise de microprocesor pentru efectuarea unui
transfer de date (citire/scriere cu memoria sau dispozitivele I/O)
semnale de stare, care indic starea n care se afl CPU (de exemplu
ciclu de extragere, oprire)
semnale de control pentru sincronizarea cu evenimente externe
(a teptare, ntrerupere)
semnale de cerere/cedare a magistralei de date
semnal de ini ializare
alte semnale
La microprocesorul 8086 toate semnalele magistralelor sunt compatibile cu
mreurile TTL.
Pe lng terminalele pentru semnalele enumerate, microprocesorul are
conexiuni pe care i se furnizeaz semnalul de tact (dac generatorul de tact este
Incorporat, atunci din exterior se conecteaz doar cuar ul) i tensiunea de almentare,
respectiv masa. La microprocesorul 8086 tensiunea de alimentare 3S3eV CC=+5 V.
III.3.2. Generatorul de tact
Prezenta semnalului de tact este obligatorie la orice microprocesor pentru a
ssc^ra func ionarea secven ial a circuitelor interneale acestuia.
fn func ie de tipul microprocesorului, aplicarea semnalului Ue tact se poate
ace de la un:
oscilator extern construit din componente discrete
circuit integrat specializat conectat la microprocesor (de exemplu la 8086)
generator de tact incorporat n microprocesor, n exterior conectndu-se
doar cristalul de cuar (solu ie caracteristic microcontrolerelor)
Frecven a maxim a tactului se d n catalogul microprocesorului, fiind de
ordinul nx1^-nx100 MHz. O frecven mai mare a tactului duce la o vitez de
procesare mai mare a microprocesorului. n vederea stabiljzrii frecven ei se folosesc
oscilatoare cu cuar .
'
Pentru a afla ~ nivelul de tensiune cerut semnalului de tact este
recomandabil consultarea fi ei de catalog.
narg fjonorqtnni1 se realizeaz cu oscilator extern, pentru func ionarea corect
a CPUJre^uie_acordat atentig- i respaclni_duratei fronfuTttorrmpulsului de
^acTTfimpuT de ridicare i deTcoborre), precum l factorului_de umplere, conform
datelor de catalog.
------------------ ---- ~~
Exemplu
Microprocesorul 8086, n func ie de variant, lucreaz cu un semnal de tact la

o frecven maxim tipic de 5 sau 8 sau 10 MHz. Tactul este furnizat de un circuit
integrat generator de tact specializat (8284).
Circuitul 8284 face divizarea cu trei a frecven ei determinate de cuar ul care se
conecteaz la el (figura III.8). (Observa ie: Pentru simplificare, alimentrile circuitelor
integrate nu sunt reprezentate pe scheme.) Se recomand legarea la mas a intrrilor
X1 i X2 prin cte o rezistent de 510 fi, asigurnd astfel stabilitatea oscilatorului
intern n condi ii extreme (varia iile tensiunii de alimentare, capacit i pe plac ntre X1
i X2).

Figura III.8. Circuitul generator de tact

pentru microprocesorul 8086


n exemplul din figur, semnalul de tact aplicat microprocesorului are frecventa
f15/35 MHz i factorul de umplere FTH/T1/3, conform parametrilor ceru i de
catalog. Intrarea F/C =0 (Frequency/Cristal) indic faptul c tactul este
dat de frecven a cuar ului i nu de un oscilator extern aplicat pe intrarea
(nereprezentat pe schem) EFI (External Frequency In).
Nivelul minim garantat al tactului dat de circuitul 8284 este 4,5 V, peste cel
TTL, pentru a putea comanda direct circuite MOS.
Pe lng CLK, integratul 8284 furnizeaz i semnalul PCLK (Peripheral Clock),
ob inut prin divizarea cu doi a tactului. cest semnal de tact este utilizat pentru
sincronizarea dispozitivelor periferice, care fiind realizate n tehnologie NMOS nu
admit frecven e prea mari.
111.3.3. Circuitul de ini ializare
Fiecare tip de microprocesor dispune de o intrare pentru aducerea acestuia
n stare ini ial. ceast ini ializare {Reset) este necesar la punerea sub tensiune a
microsistemului sau ori de cte ori operatorul dore te repornirea sistemului din
starea ini ial fr deconectarea tensiunii (prin apsarea butonului de Reset).
Efectele principale ale aplicrii semnalului RFSFJ la microprocesor sunt:

ini ializarea contorului de program cu adresa de pornire a programului (de


obicei cu valoarea zero, dar nu n mod obligatoriu, n func ie de tipul de
microprocesor)
invalidarea sistemului de ntreruperi (vezi V.3)
V Nivelul logic pe care este activ semnalul de ini ializare, precum i durata ct
trebuie s fie men inut n stare activ, difer n func ie de tipul microprocesorului.
ce ti parametri se consult din catalog.
Exemplu
La microprocesorul 8086 semnalul RESET este activ pe "1" logic i trebuie
men inut n stare activ cel pu in 4 perioade de tact, respectiv numai 50 ns la
cuplare. La ini ializare, odat cu anularea con inutului contorului de program (IP), n
registrul CS se introduce FFFFH. Rezult c programul va porni de la adresa
FFFF0h. Un alt efect al impulsului RESET este anularea fanioanelor.

Figura III.9. Logica de ini ializare a microprocesorului 8086


Aplicarea semnalului de ini ializare la microprocesor se face sincronizat cu
impulsul de tact CLK prin intermediul circuitului integrat 8284 folosit i ca
generator de tact (figura 111.9). Pe intrarea RES a acestuia trebuie conectat doar
grupul RC, deoarece el con ine n interior o poart de tip trigger Schmitt (cu prag ferm
de comutare), care asigur frontul abrupt al semnalului. Dioda ajut la descrcarea
rapid a condensatorului la decuplarea alimentrii.
111.3.4. Logica de sincronizare
Microprocesoarele uzuale dispun de o intrare (READY sau WAIT) prin care un
element extern poate solicita trecerea microprocesorului n stare de" a teptare, pn
la dezactivarea acestei intrri. ctivarea acestuTsemnaT duce de fapt la prelungirea
ciclului ma in n care se afl CPU cu stri de a teptare Tw- a cum s-a artat la
m.2.2, inserarea strilor de a teptare season cit n sofiul sincronizrii activit ii
microprocesorului cu componentele mai lente din sistem (memorii, dispozitive I/O), n
opera iile de transfer de date cu acestea.
' In exemplul urmtor se va prezenta o solu ie de introducere a strilor de a teptare n
ciclurile care fac acces la memorie.
Exemplu
La microprocesorul 8086 semnalul READY care declan eaz stri de
a teptare (pentru REDY0) se transmite acestuia prin circuitul generator de tact

8284. Circuitul 8284 asigur i sincronizarea semnalului READY cu tactul


microprocesorului.
8284 are patru intrri pentru sincronizare: dou pentru semnalele Ready
(RDY1 i RDY2) i dou pentru validarea acestora, numite EN1 i EN2 (Address
Enable). Ecua ia logic dintre ele este urmtoarea (paranteza arat c semnalul
rezultant este sincronizat cu CLK):
READY = (RDY1.AEN1 + RDY2*AEN2)CLK
Microprocesorul va primi semnalul de "gata" pentru ie irea din a teptare dac
cel pu in una din liniile RDY se activeaz (RDYi =1) i semnalul corespunztor de
validare este activ (AEN,=0). Intrarea ASYNC=0 realizeaz sincronizarea semnalului
READY cu frontul pozitiv i negativ al impulsului de tact (dac este "1", atunci numai
cu frontul pozitiv).
Figura 111.10 prezint un exemplu de circuit care poate genera 1, 2 sau 3 stri
WAIT ntr-un ciclu de magistral, n func ie de realizarea conexiunilor S-i, S2 sau S3.
Schema utilizeaz un circuit integrat MSI de tip 7495, care con ine un registru de patru
bi i cu deplasare i ncrcare paralel.
Func ionare schemei se poate urmri pe diagramele de timp din figura 111.11,
pentru situa ia cnd este fcut conexiunea S3 Cnd K este deschis, semnalul
REDY1 i nu se genereaz stri de a teptare. Cnd K este nchis, frontul negativ al
impulsului LE nscrie "0" n registrul 7495 n starea T1 (intrarea de mod fiind M=1 se
ia n considerare tactul de pe intrarea C2). Ca urmare RDY1 devine "0", care se ia n
considerare n starea T3 dup care urmeaz introducerea unei stri de a teptare T Wntre timp s-a activat citirea sau scrierea (RD=0 sau

WR0), deci M0 i are loc deplasarea valorii de "1" logic de pe intrarea serial (AS)
spre dreapta. Cnd acest bit ajunge n rangul pe care s-a fcut conexiunea, CPU
iese din Tw i continu ciclul cu starea T4.

Figura 111.10. Schem pentru inserarea de stri de a teptare

Figura 111.11. Diagramele de timp ale semnalelor

pentru schema din figura 111.10


Stabilirea regimului de func ionare a microprocesorului
Prin utilizarea adecvat a intrrii de sincronizare se poate asigura i execu ia n
regim "pas cu pas" a programelor. Pentru aceasta se for eaz oprirea

activit ii CPU la fiecare ciclu ma in sau ciclu instruc iune, regimul fiind utilizat la
punerea la punct a unui sistem sau n scop didactic.
Exemplu
O schem pentru stabilirea regimului de lucru al microprocesorului 8086 este
prezentat n figura 111.12. Este posibil selectarea unui regim automat sau pas cu
pas, acesta din urm fiind de tip ciclu cu ciclu.

Figura 111.12. Schem pentru for area microprocesorului

n regim pas cu pas

n regim automat (K1 pe pozi ia "UT") microprocesorul ruleaz programul


fr oprire (REDY1), o stare de a teptare temporar putnd fi generat de o
memorie sau un periferic mai lent pe linia RDYEXT.
n regim pas cu pas (K1 pe pozi ia "PS CU PS") microprocesorul se opre te
n fiecare ciclu de transfer, ntruct generarea semnalului LE duce la . for area pe "1"
a bistabilului de tip D. Deci Q0, ceea ce implic RDY10, adic n final REDY0.
Ie irea din starea de a teptare se face prin apsarea butonului cu revenire "STEP",
care duce la ncrcarea valorii "0" n bistabil pe frontul pozitiv al semnalului de pe
intrarea C. ceast valoare se men ine n bistabil pn la apari ia unui nou LE n
ciclul ma in urmtor.
III.3.5. Magistralele
n microsisteme comunicarea microprocesorului cu celelalte componente se
face, cum s-a mai artat, prin intermediul magistralelor. Elementele din sistem se
conecteaz n paralel pe aceste magistrale.
La interconectarea prin magistrale a microprocesorului cu componentele din
sistem pe care le are de comandat, trebuie inut cont de faptul ca ie irile
microprocesorului s poat furniza o putere suficient pentru a asigura o
func ionare corect a sistemului. Prin func ionare corect se n elege aici ca
nivelurile de tensiune corespunztoare valorilor logice de "0" i "1" s se ncadreze
n limitele admise. Pentru aceasta este necesar calculul ncrcrii tuturor ie irilor
conectate la magistral.
Microprocesoarele uzuale fiind realizate n general n tehnologia MOS, nu

prezint factori de ncrcare (fan-out) mari. cest lucru rezult i din tabelul urmtor,
care con ine valorile tensiunilor i curen ilor de ie ire n cazurile cele mai defavorabile
(s-au trecut pentru compara ie i valorile corespunztoare unei por i TTL standard):

n continuare se face o parantez pentru clarificarea no iunii de fan-out i a


nota iilor folosite n tabel.
Pentru ca un circuit logic s genereze la ie ire nivelurile garantate de
tensiune, este necesar ca fiecare intrare s fie comandat de un nivel de tensiune
corect i un curent corespunztor. n cazul conectrii mai multor circuite la aceea i
ie ire, lucru frecvent ntlnit n practic, trebuie ca ie irea circuitului de comand a
pnata fiipiya suma min ilor de intrare ai tuturor elementelor comandate. (Observa ie:
n acest context prin "curent furnizat" se n elege curentul prezent la ie irea
respectiv, att n sens de ie ire, ct i n sens de intrare.) cest calcul se face pentru
cele dou niveluri de tensiune (LOW"0" i HIGH-T') n situa iile cele mai
defavorabile, adic la limitele de tensiune admisibile pentru aceste niveluri, n cazul a
n intrri comandate trebuie deci ndeplinite condi iile:

unde indicii curen ilor au urmtoarele semnifica ii:


0
- ie ire
1
- intrare
L
- n stare LOW
H
- n stare HIGH
max - corespunztor tensiunii limit Vounax
min - corespunztor tensiunii limit V0Hmin
Prin conven ie, valorile curen ilor care ies din circuit se noteaz cu de aceea n
rela ii s-a folosit modulul.
Pentru o familie de circuite, n vederea simplificrii calculelor, factorii de
ncrcare la ie ire FO (fan-out) se definesc prin raportarea curen ilor furniza i pe ie ire
la valoarea curentului de intrare a por ii de baz a familiei (notat cu *) n cele dou
situa ii:

ie ire:

Minimul celor dou mrimi d valoarea de lucru a factorului de ncrcare la


FO = min (FOl, FOh)

ceast valoare reprezint numrul maxim al por ilor de baz din familie care pot fi
comandate de circuitul logic respectiv. De exemplu, pentru o ie ire a
microprocesorului 8086, factorul de ncrcare raportat la familia TTL este:

nalog se define te factorul de ncrcare la intrare FI (fan-in):

De regul aceste dou valori sunt egale (FI FIL = FIH) i depind de numrul maxim
al por ilor aflate (n interior) pe o intrare a circuitului integrat.
Cu aceste mrimi, rela iile care stabilesc criteriul general de interconectare al
circuitelor logice se pot scrie, n cazul cnd sunt raportate la aceea i familie, astfel:
Revenind la valorile din tabel, se observ c microprocesoarele, ca

memoriile MOS de altfel, sunt capabile s comande pe ie ire o sarcin cu pu in mai


mare dect cea echivalent unei por i TTL. Exemplul precedent este elocvent n
acest sens. Rezult c n microsistemele mai complexe este necesar amplificarea
semnalelor pe magistrale, lucru realizat cu ajutorul unor circuite tampon (buffer).
n acest scop, avnd n vedere c la o magistral se cupleaz ie irile mai
multor elemente din sistem, pot fi folosite por i cu colector n gol pe fiecare ie ire a
microprocesorului spre magistral (de exemplu 7407). Se prefer ns aproape n

exclusivitate utilizarea circuitelor integrate de pnmanri pe magistral (buffer driver),


care au ie iri de tip trei-stri (tri-state). Pe lng strile logice "0" i "1" aceste circuite
pot prezenta i n stare de impedan lTridicat, n care pe ie iri nu circul curent.
La microprocesorul 8086, liniile AD0-^D15 ale acestuia se utilizeaz
multiplexat att pentru adrese, ct i pentru date (vezi III.2.2). De aceea este
necesar demultiplexarea magistralei D, pentru a forma magistralele separate de
adrese i date ale microsistemului (figura 111.13).

Figura 111.13. Demultiplexarea magistralei la microprocesorul 8086


Pentru opera ia de demultiplexare, cuvntul de adres transmis de
microprocesor odat cu activarea semnalului LE se nscrie, pe frontul 1->0 al
semnalului ST, n registrele tampon (buffer latch) de tip 8282. n continuare cuvntul
de adres va fi disponibil pe magistrala de adrese a sistemului, semnalele fiind i
amplificate. Schema intern a circuitului integrat 8282, care con ine 8 bistabile D i
are ie iri de tip trei-stri (cu Im max = 32 mA), este prezentat n figura 111.14.
Intrarea OE (Output Enable) realizeaz validarea ie irilor pentru OE 0, iar pentru OE
1 le for eaz n stare de impedan ridicat.

Figura 111.15. Circuitul buffer 8286

Dac este necesar amplificarea semnalelor i pe magistrala de date, se pot


utiliza circuite buffer de tip 8286. cest circuit este un tampon bidirec ional pe 8 bi i i
se mai nume te bus transceiver. Structura intern a lui 8286 este artat n figura
111.15. Curentul maxim absorbit n starea 0 (loLmax) este de 32 m pe ie irile i
16 m pe ie irile . Exist i la acest integrat varianta 8287, care realizeaz i
inversarea semnalelor.
Intrarea OE (Output Enable) a circuitului 8286 serve te de fapt pentru selec ie:
n stare neselectat (OE 1) ie irile spre ambele pr i sunt n stare de nalt
impedan . Intrarea T este folosit pentru indicarea sensului de transfer.
Semnifica ia semnalelor de comand ale microprocesorului 8086 folosite n
schema din figura 111.13. a fost dat la punctul III.2.2.
n unele situa ii poate apare necesitatea amplificrii anumitor semnale de
control emise de microprocesor. n acest caz se pot folosi de exemplu por i
inversoare (figura 111.16) sau circuite amplificatoare cu trei stri, cum este 74125
(figura 111.17). (n aceste exemple s-au folosit nota iile unor semnale de control ale
microprocesorului 8086.)

Figura 111.16. mplificarea unui semnal de comand

cu por i inversoare

Figura 111.17. Utilizarea unui circuit cu trei stri pentru

amplificarea semnalelor de comand

Un avantaj al separrii cu circuite tampon a microprocesorului de restul


sistemului l reprezint i faptul c astfel el este ferit de avariile care pot apare pe inii
i ar putea duce la func ionarea defectuoas sau chiar distrugerea sa.

IV. MEMORIA PRINCIPL


IV.1. Organizarea memoriei unui microcalculator
Memoria unui microsistem reprezint ansamblul unit ilor func ionale ale
microsistemului destinate pstrrii programelor i datelor. Pstrarea informa iilor n
memorie se face sub form binar.
Caracteristicile unei memorii sunt urmtoarele:
) Geometria (modul de organizare) reprezint lungimea cuvntului aflat ntr- J
o loca ie de memorie, exprimat n bi i (bits) sau octe i (bytes).
Capacitatea reprezint cantitatea de informa ie care poate fi stocat n
memoria respectiv, fiind exprimat uzual n Kocte i (KB - kilobytes) sau
Mocte i (M - megabytes), eventual n Kbi i (Kb) sau Mbi i (Mb).
Timpul de acces este intervalul de timp dintre cererea de acces Ia o
informa ie din memorie i furnizarea acesteia la ie irea memoriei, exprimat n
ns sau ms sau multipli acestora.
Tipul accesului, care poate fi:
aleator, caz n care accesul la oricare loca ie de memorie se face cu
acela i timp de acces
pozi ional, caz n care pentru accesul la informa ia din memorie
sunt necesare deplasri mecanice, rezultnd astfel timpi de acces
diferi i
Nevolatilitatea/volatilitatea reprezint proprietatea memoriei de a
men ine/pierde informa ia dup decuplarea tensiunii sale de alimentare.
Dup func ia ndeplinit i locul ocupat n arhitectura microsistemului,
memoria acestuia se mparte n memoria principal i memoria auxiliar.
-* Memoria principal (operativ) este cea care pontine codurile instruc iunilor i
datelor pentru programul aflat n execu ie. ceast memorie este adresabil direct de
CPU, accesul la o informa ie din memorie se face prin indicarea adresei loca iei n
care se afl. Din punct de vedere fizic se implementeaz cu circuite de memorie
semiconductoare, accesul fiind aleator. n modTzual, memoria principal se
compune din dou pr i:

Memorie RAM (Random Access Memory), care este cu acces aleator pentru
citire i scriere, fiind de tip volatil.
Memorie ROM (Read Only Memory), nevolatil, folosit numai pentru citire
(numit i memorie fix). Microprocesorul nu poate nscrie informa ie n ea,
aceasta fiind introdus la elaborarea sistemului. Con ine de regul programe
des apelate, cu constantele aferente. Memoria ROM este de fapt tot cu acces
aleator, de aceea termenul de RAM pentru cele de tip scriere/citire nu este cel
mai potrivit.
Capacitatea memoriei principale variaz n func ie de scopul microsistemului
i de capacitatea de adresare a microprocesorului, fiind de ordinul nxlO Kocte i -r
nx100 Mocte i. Circuitele componente sunt caracterizate de timpi de acces mici (nx10
nx100 ns).
Memoria auxiliar (extern) con ine cantit i mari de informa ie (programe i
date), care se aduc n memoria principal doar nainte de prelucrare. ceast
memorie este conectat la microsistem sub form de dispozitive periferice, de
exemplu: unitate de discuri rigide (hard disk) sau flexibile (floppy disk), unitate de caset
magnetic etc. Informa ia este nregistrat n general pe suport magnetic, memoria
fiind astfel nevolatil. ccesul este pozi ional, timpul de acces fiind relativ mare (nx1
ms + nx10 s). vantajul const ns ntr-o capacitate mare de memorare, de ordinul
nx100 Mocte i nx10 Gocte i. Datorit timpului de acces mare, microprocesorul nu
poate executa un program direct din memoria auxiliar, informa iile organizate sub
form de fi iere pe suportul extern se aduc n memoria principal atunci cnd este
necesar prelucrarea lor, acest transfer realizndu-se cu o vitez mic fa de viteza
de lucru a microprocesorului.
n acest capitol se trateaz n continuare problematica memoriei principale,
care n general este numit simplu memoria sistemului.

IV.2. Adresarea memoriei principale


Selectarea unei loca ii de memorie n vederea unui acces la memoria
principal are loc prin adresarea acesteia cu ajutorul unui cuvnt de adres trimis ce
microprocesor pe magistrala de adrese. L imea magistralei de adrese determin
numrul de loca ii direct adresabile, adic spa iul adreselor de memorie (pentru m linii
rezult 2m loca ii).
Spa iul memoriei fizice reprezint acea submul ime a spa iului adreselor care
este ocupat de circuitele de memorie, adic reprezint mul imea loca iilor de
memorie. De regul n microsisteme o loca ie de memorie con ine 8 bi i. (De aceea la
exprimarea capacit ii unei memorii nu se mai specific totdeauna explicit cuvntul
octe i sau n englez bytes , de exemplu dac se d o memorie de 64 M se
subn elege c este vorba despre 64 Mocte i.)
Spa iul memoriei fizice este divizat practic pe circuite de memorie, adresarea
unei loca ii de memorie constnd din selectarea circuitului de memorie care con ine
acea loca ie i selectarea loca iei respective n cadrul circuitului. Selectarea loca iei
din interiorul circuitului se realizeaz cu liniile cele mai pu in
semnificative ale magistralei de adrese, care se conecteaz la intrrile de adres ale
capsulei. Numrul acestor intrri este determinat de capacitatea circuitului respectiv

de memorie. De exemplu, pentru o memorie de 1 K se folosesc 10 linii de adres, i


anume A0-^A9.
Restul liniilor magistralei de adrese se folosesc pentru selectarea circuitelor
de memorie, determinnd totodat amplasarea zonelor de memorie corespunztoare
acestor componente n cadrul spa iului de adrese al microprocesorului.
Dup felul cum bi ii superiori ai magistralei de adrese sunt utiliza i pentru
selectarea circuitelor de memorie, se deosebesc dou metode:
selec ia liniar
selec ia decodificat
a) Selec ia liniar
Aceast metod const n folosirea a cte unei linii a magistralei de adrese
pentru selectarea fiecrui circuit de memorie.
Metoda este utilizabil numai dac numrul de linii superioare de adres
rmase pentru selectarea componentelor este mai mare sau cel pu in egal cu
numrul de capsule de memorie. Rezult astfel posibilitatea selectrii unui numr mic
de circuite de memorie. Din aceast cauz metoda selec iei liniare se ntili7Paza n
sistemPlP mini iigrlp prezint avantajil^impliteHT

Figura IV.1. Principiul seleciei liniare


Exemplul din figura IV. 1 prezint principial cazul unui microsistem cu
magistrala de adrese de 16 bi i, la care se conecteaz circuite de memorie de cte
1K. Intrrile de adres o-^-Ag ale circuitelor se folosesc pentru selectarea unei
loca ii din interiorul circuitului, iar intrarea CS (Chip Select) serve te la selec ia
circuitului. Circuitul este selectat dac CS0, de aceea sunt prevzute inversoare pe
liniile de adres.
Dispunerea spa iului de memorie fizic n spa iul de adrese al

microprocesorului pentru exemplul considerat, este ilustrat de harta memoriei


(memory map) din figura IV.2.

Figura IV.2. Harta memoriei pentru schema din figura IV.1


n cazul selec iei liniare se observ o utilizare ineficient i fragmentat a
spa iului de adrese, ceea ce impune o aten ie sporit la programare, deoarece i
programul trebuie fragmentat corespunztor. De asemenea, adresarea ntr-o zon1
liber poate duce la o-selec ie multipl (pentru acela i cuvnt de adres se
selecteaz mai multe circuite), ceea ce cauzeaz o func ionare eronat a
microsistemului. Un alt dezavantaj al metodei l constituie structura rigid a
microsistemului cu acest mod de selec ie ea nefiind adecvat pentru o extensie
ulterioar. ~
b) Selec ia decodificat
n acest caz se realizeaz decodificarea liniilor de adres rmase disponibile
pentru selectarea componentelor de memorie. Ie irile decodificatorului sunt utilizate
pentru selectarea circuitelor de memorie. Aceast metod permite utiUzarea
ntregului spa iu de adrese, respectiv se oot construi zone continue de memorie n
cadrul acestuia.
Exemplul din figura IV.3 prezint principial cazul selec iei decodificate pentru
circuite de memorie de 1K ntr-un microsistem cu magistrala de adrese de 16 bi i.
Prin decodificarea bi ilor 1&WV15 se ob in 2664 semnale, care permit o selec ie
liniar a componentelor. stfel spa iul de adrese de 64 K a microprocesorului se
mparte pe zone de cte 1K (figura IV.4).

Figura IV.3. Principiul selec iei decodificate

Figura IV.4. Harta memoriei pentru

schema din figura IV.3


Este posibil ca pentm splpr.tama unui circuit s nu se utilizeze la decodificaretoy bt\TT~climou\u\ de selec ie circuite, obf\nndu-se astfel o decodificare
incomplet. Deoarece n acest caz combina iile pnsihiip aip hi ilnr neutiliza i nu
afecteaz seledfare circuitelor de memorie a pars o multiplicare virtuala^ spa iului de
memorie: memoria fizic este vzut la mai multe adrese logice n spa iul de adrese.
DeiiguTtfebuie evitat accesul prin program ntr-o zon
virtual, deoarece poate duce la alterarea informa iei din zona de memorie
proprijjrzis. De asemenea, trebuie evitat alocarea acestor zone virtuale altor
circuite de memorie, deoarece astfel se va produce o selec ie multipl a capsulelor
de memorie, ceea ce duce la o func ionare defectuoas. Decodificarea incomplet se
pOafeTitiliza n sistemele mai s'impleTunde este acceptabil pierderea de spa iu de
memorie.
Metoda de selec ie decodificat elimin, dup cum s-a vzut, dezavantajele
selec iei liniare, dar necesit o logic de decodificare oentru generarea semnalelor

de selec ie.
Logica de decodificare se poate construi din por i logice sau cu ajutorul
circuitelor integrate de tip decodificator. n primul caz sinteza decodificatorului se face
pe baza ecua iilor logice ale semnalelor de selec ie, care pentru exemplul precedent
sunt:

Acest procedeu de decodificare are ns o utilizare limitat la sisteme mici, i


care nu vor suferi o extindere sau modificare ulterioar.
Uzual se prefer folosirea decodificatoarelor integrate, care ofer o mai mare
flexibilitate selec iei. n continuare se prezint un astfel de circuit, frecvent ntlnit n
microsistemele cu microprocesor 8086.
Decodificatorul 8205 (sau echivalentul func ional 74LS138) are 8 ie iri dintre
care se activeaz, n logic negat, cea corespunztoare combina iei binare aplicate
pe cele trei intrri n prezen a semnalelor de validare active. Circuitul dispune de trei
intrri de validare Ei, E2, E3 (Enable), primele dou active pe "0", iar ultima pe "1".
ntre cele trei semnale de validare se efectueaz o func ie l, a a cum se poate
vedea pe schema bloc a circuitului din figura IV.5.

Figura IV.5. Circuitul decodificator 8205


Intrrile de validare pot fi folosite de asemenea la realizarea func iei de
decodificare, iar pentru generarea a mai mult de opt semnale de selec ie se pot
combina mai multe decodificatoare. De multe ori, pentru indicarea ie irilor se noteaz
n scheme numai indicele.
Un exemplu de generare a semnalelor de selec ie pentru spa ii de 1 K n zona
OOOOH-KFFFH de 16 K, folosind dou decodificatoare 8205, este prezentat n figura
IV.6.

Figura IV.6. Un exemplu de utilizare a circuitelor 8205

Figura IV.7, Generarea semnalului de selec ie pentru

un circuit de 2 K folosind semnalele din figura IV.6


Dac microsistemul con ine i circuite de 2 K, se poate realiza func ia l ntre
dou ie iri succesive pentru a genera semnalul de selec ie, a a cum s-a procedat n
figura IV.7 cu CSs i CS9. De fapt ntre cele dou semnale nenegate se face o
func ie SU, ecua ia logic fiind:

IV.3. Principiul conectrii circuitelor de memorie n


microcalculator
a) Memoria ROM
Din punct de vedere structural, celulele de memorie ale unui circuit de tip
ROM sunt organizate sub form matricial (figura IV.8). Cu cele k linii de adres
(Ao^A*_-i) se pot selecta, prin activarea liniilor matricii, 2 k cuvinte cu lungimea de n
bi i. Capacitatea circuitului de memorie este deci de2k xn bi i.

Figura IV.8. Organizarea intern a unei memorii ROM


Coloanele matricii sunt conectate la ie irile de date prin intermediul unor
tampoane cu trei stri. Este posibil astfel conectarea direct a circuitului de
memorie la magistrala de date a microsistemului. Transmiterea informa iei la ie ire
se face n momentul activrii semnalului de validare a ie irii (Output Enable, OE0) n
prezen a semnalului de selec ie a circuitului (Chip Select, CS=0). Intrarea CS se mai
denume te la unele tipuri de memorie i CE (Chip Enable).
Conectarea de principiu a unui circuit de memorie ROM la magistralele
microsistemului este prezentat n figura IV.9.
Dup plasarea pe magistrala de adrese a adresei de m bi i a loca iei din care
urmeaz s fie efectuat citirea, are loc selectarea circuitului de memorie.
Formarea semnalului SEL pentru selectarea circuitului se face prin decodificarea
bi ilor de adres de rang superior. Este vorba de bi ii de adres rma i n urma
aplicrii celor k bi i mai pu ini semnificativi pe intrrile de adres ale memoriei (de
capacitate 2k). Selec ia se face dup una din tehnicile de la punctul IV.2 n func ie de
zona ocupat de circuitul respectiv n spa iul de adrese al microprocesorului.

Figura IV.9. Principiul conectrii unei memorii ROM

la magistralele microsistemului
Transmiterea datelor citite pe magistrala de date are loc sub ac iunea comenzii de
citire (RD0) la o opera ie de transfer cu memoria (M/IO1). Ie irile memoriei se
valideaz cu un semnal MRDC (Memory Read Command), care, folosind nota iile de la
microprocesorul 8086, are ecua ia:

Observa ii:
1. vnd n vedere structura intern a circuitului de tip ROM, acesta poate fi
comandat n mod echivalent cu solu ia din figura IV.9. dac M/IO se include la
formarea semnalului de selec ie:

2. Exist posibilitatea ca circuitul s nu aib borna OE, n acest caz pentru


selec ie se aplic semnalul:
O mrime caracteristic fiecrui circuit de memorie ROM este timpul de
acces (tA). cesta este egal cu intervalul de timp din momentul aplicrii cuvntului
de adres pe magistrala de adrese pn n momentul cnd cuvntul citit se afl pe
magistrala de date. ctivitatea microprocesorului n ciclul de citire din memorie
trebuie corelat cu acest timp, a a cum s-a prezentat la 111.2.2.
Valoarea timpului de acces se ob ine din catalogul circuitului de memorie
utilizat. n catalog se dau diagramele de timp ale unui ciclu de citire din memorie,

asemntor cu figura IV. 10.

Figura IV. 10. Diagramele de timp ale unui circuit ROM


Durata ciclului de citire (Read Cycle) este dat de tRC. n acest timp fiind
necesar men inerea adresei stabile la intrrile memoriei. toH este timpul de
men inere a datelor la ie ire (Output Hold) dup dezactivarea semnalului de validare a
ie irilor.
b) Memoria RAM
La un circuit de memorie RAM celulele de memorie sunt amplasate, ca i la
ROM, tot sub form matricial, ns exist un numr de matrici egal cu numrul de
bi i ai unei loca ii de memorie. Deci, n cazul unui acces, din fiecare matrice se
selecteaz simultan cte o celul aflat pe aceea i pozi ie. Schema bloc simplificat
a unui circuit RM este dat n figura 1V.11.
Capacitatea memoriei este egal cu 2k x n bi i, deci memoria con ine 2k loca ii
de cte n bi i. mpr irea pe linii i coloane a unei matrici, deci existen a cte unui
decodificator separat pentru linii i coloane, nu este sesizabil din exterior.
Exist circuite RM care au terminale separate de date pentru citire (Data Out)
i scriere (Data In), precum i circuite cu terminale comune, caz reprezentat cu linii
ntrerupte. Terminalele de date sunt conectate cu liniile interne prin intermediul unor
amplificatoare de tip trei-stri, a cror validare este determinat de sensul
transferului, n prezen a semnalului de selec ie circuit CS (Chip Select). Acest sens
este controlat de starea semnalului de citire/scriere R/W (ReadAA/rite), astfel:

Figura IV.11. Organizarea intern a unei memorii RAM


La unele tipuri de circuite intrarea R/W se mai noteaz cu WE (Write Enable).
Conectarea de principiu a unei memorii RAM la magistralele microsistemului,
folosind nota iile de ia 8086, se face conform figurii IV.12.

Figura IV.12. Principiul conectrii unei memorii RM

la magistralele microsistemului

plicarea adresei i selectarea circuitului de memorie se desf oar n mod


similar cu cele prezentate la conectarea unei memorii ROM. Comanda de scriere n
memorie MWTC {Memory Write Command), care se aplic pe borna R/W trebuie s fie
activ numai ntr-un ciclu de scriere, conform ecua iei:

innd cont de faptul c semnalele RD i WR nu pot fi active simultan, la


o opera ie de citire este ndeplinit condi ia R/W 1.
Observa ie: Comanda memoriei RM este de asemenea corect, dac
semnalul care indic ciclul de transfer cu memoria (M/IO) se folose te la validarea
selec iei:

Pentru func ionarea corect a circuitului de memorie RM, semnalele


aplicate acestuia trebuie s satisfac restric iile de timp impuse n diagramele de
timp date de furnizor (figura IV. 13).

Figura IV.13. Diagramele de timp ale unui circuit RAM

ntr-un ciclu de citire (a) i de scriere (b)

Semnifica iile timpilor la ciclul de citire (figura IV.13.a) sunt acelea i cu cele
prezentate la memoria ROM, cu observa ia c timpul de men inere a datelor la ie ire
se mai noteaz taro- Aceast mrime reprezint timpul dup care ie irile trec n stare
de impedan ridicat ca urmare a deselectrii circuitului ( Output Three-state from

Deselection).

n cazul ciclului de scriere (Write Cycle), de durat twc, datele trebuie s


rmn stabile pe intrri n jurul frontului posterior al impulsului_R/W, deoarece pe

acest front se face nscrierea n memorie (figura IV.13.b). n consecin , n catalogul


circuitului de memorie se dau valorile limit pentru urmtorii timpi:
tDs - timp de pregtire a datelor (Data Set-up) n raport cu momentul
nscrierii
toH - timp de men inere a datelor (Data Hold) dup dispari ia impulsului de
scriere
La proiectarea memoriei microsistemului trebuie verificat ca momentele de
apari ie ale semnalelor de comand generate de microprocesor n cazul unui ciclu de
transfer cu memoria s fie corelate cu restric iile de timp ale circuitului de memorie.
Dac este necesar sincronizarea vitezei de lucru a microprocesorului cu cea a
memoriei, aceasta se face prin introducerea de stri de a teptare n ciclurile de
transfer cu memoria ale microprocesorului.
n cele de mai sus s-au prezentat problemele generale de conectare ale
memoriilor ROM i RM la magistrala unui microsistem folosind nota iile de la
microprocesorul^ 8086, dar principiile rmn valabile pentru orice tip de
microprocesor. n fiecare caz trebuie cutate i folosite semnalele echivalente cu
cele utilizate anterior.
Particularit i de conectare a memoriei principale la magistrale ntr-un
microsistem cu 8086
Dup cum s-a vzut la punctele 11.1 i III.2.2, organizarea memoriei unui
microsistem cu 8086 este pe octe i, dar magistrala de date a microprocesorului fiind
de 16 bi i exist posibilitatea de a avea acces simultan la un cuvnt de doi octe i din
memorie. Pentru aceasta, memoria este separat fizic n dou bancuri (figura IV.
14), organizate fiecare pe cte 8 bi i: bancul inferior (LOW BANK) conectat la liniile
inferioare ale magistralei de date i bancul superior (HIGH BANK) conectat la liniile
superioare.
Fiecare banc poate con ine cte 512 octe i de memorie, n bancul inferior
fiind loca iile cu adrese pare, iar n bancul superior cele cu adrese impare. Loca iile
din cadrul unui banc se adreseaz cu liniile de adres 1^-A19.
Selectarea bancului inferior, care con ine octe ii afla i la adrese pare, se face
cu linia de adres 0 n situa ia cnd 00. Semnalul HE (Bus High Enable), care
semnific transfer pe magistrala superioar, selecteaz bancul superior pentru a
permite accesul la un octet aflat la adres impar. Dac HE este activ i 00 se
realizeaz transferul pe 16 bi i al unui cuvnt aliniat (aflat la adres par 2p):

Combina iile semnalelor O i HE permit realizarea transferului pe 16 bi i


sau pe 8 bi i, conform tabelului de la punctul III.2.2.
Posibilitatea accesului la memorie att sub form de octet, ct i sub form
de cuvnt, permite amplasarea datelor la adrese succesive, ceea ce duce la o
utilizare eficient (compact) a memoriei. Pentru accesul la un cuvnt (de 16 bi i)
aflat la adres impar (2p+1) sunt necesare ns dou cicluri succesive de transfer
cu memoria, ceea ce mre te timpul de execu ie:
- n primul ciclu (corespunztor octetului LS), cu 01 i HE 0, se
realizeaz transferul
- n al doilea ciclu (corespunztor octetului MS): cu 00 i HE 1, se
realizeaz transferul

Figura IV.14. Organizarea pe bancuri a memoriei

ta un microsistem cu procesor 8086

IV.4. Tipuri de circuite de memorie utilizate n


microcalculatoare
IV.4.1. Memorii ROM cu mascare
La acest tip de memorie, nscrierea informa iei n circuit se face la fabricarea
acestuia, prin folosirea unor m ti realizate de productor n conformitate cu datele
furnizate de beneficiar. Con inutul unei memorii ROM cu mascare nu mai poate fi
schimbat. Datorit costurilor de fabrica ie, ele sunt rentabile din punct de vedere
economic pentru produse de serie mare: articole de larg consum, jocuri etc.
Circuitele ROM cu mascare pot fi realizate n tehnologie bipolar sau
unipolar, cea din urm fiind preferat datorit densit ii mai mari de integrare i
consumului mai redus. Ca dezavantaj, prezint ns un timp de acces mai mare cu
un ordin de mrime (100+500 ns) dect cele bipolare.
Schema unei celule de memorie cu tranzistor MOS (care se plaseaz n
nodurile matricii din figura IV.8 de la punctul IV.3.a) este prezentat n figura IV. 15.

Figura IV.15. Celula de memorie a unui

circuit ROM cu mascare


La aplicarea unui impuls de selec ie pe linia de cuvnt WL (Word Line), pe linia
de date PL (Data Line) apare informa ia con inut n celul, cfg~5ste:
"0" dac exist conexiunea dintre poarta tranzistorului i linia de selec ie,
T fiind deschis sub ac iunea impulsului
"1" (adic tensiunea pozitiv VDD de pe coloan) n caz contrar
Rezult c la fabrica ie nu se conecteaz poarta (numit i grila)
tranzistorului n celulele n care se dore te s se nscrie "1". ceast "ntrerupere" se
realizeaz printr-un strat gros de oxid pe poart.
O aplica ie frecvent a acestor circuite este ca generatoare de caractere
pentru afi are pe tub catodic. Un astfel de exemplu este circuitul TMS 2501 al firmei
Texas Instruments, din figura IV. 16. Circuitul con ine informa iile de afi are pentru
64 de caractere, corespunztor punctelor de pe ecran sub forma unei matrici 7x5
pentru fiecare caracter. Adresarea unui caracter se face cu liniile
D0-^D5, pe care se aplic cei mai pu in semnificativi ase bi i ai codului SCII al
caracterului. n cadrul setului standard, caracterele sunt unic determinate de ace ti
bi i i bitul al aptelea poate fi neglijat. Pe intrrile ri-fr3 se aplic ie irile unui
numrtor care se incrementeaz la afi area fiecrei linii dintr-un rnd de pe ecran.
Pentru combina ia 000 pe aceste intrri, toate ie irile U5 sunt nule. Liniile D0-^D5
i r-i-H^ reprezint de fapt intrrile de adres ale memoriei ROM. Ie irile

generatorului de caractere se ncarc ntr-un registru de deplasare pentru formarea


semnalului video binar necesar pentru comanda intensit ii spotului.
lte aplica ii uzuale ale circuitelor de memorie ROM cu mascare sunt n
conversia de cod, memorarea valorilor unor func ii matematice sau stocarea de
rutine de calcule matematice.

Figura IV.16. Generator de caractere pentru afi are pe tub catodic IV.4.2.
Memorii PROM
Memoriile PROM sunt memorii fixe programabile de utilizator (,Programmable
ROM). Structura unei celule de memorie, compus dintr-un tranzistor T de tip bipolar
i un fuzibil F, este prezentat n figura IV. 17. plicnd un impuls de selec ie pe linia
WL, informa ia citit pe DL va fi "1" sau "0" n func ie de existen a sau lipsa conexiunii
realizate de F~
~
"
'

Figura IV.17. Celula de memorie a unui

circuit PROM

Procesul de programare este ireversibil i const din arderea fuzibilului n


celulele de memorie unde se dore te nscrierea bitului "0". Pentru programare se
aplic un tren de impulsuri n baza lui T, men innd linia de bit DL la poten ial sczut,
astfel nct prin emitor s treac un curent n impulsuri suficient de mare (0,5-^1 A)
pentru distrugerea fuzibilului.
Exist i circuite la care programarea se face prin distrugerea unei jonc iuni,
aplicnd un curent n sens invers. Circuitele PROM fabricate n tehnologia bipolar,
au un timp de acces de ordinul tA=10-^50 ns.
n microsisteme aceste memorii sunt utilizate de regul pentru conversii de
cod sau ca decodificatoare pentru selec ia circuitelor de memorie i a interfe elor de

intrare/iesire.

Figura IV.18. Utilizarea unui circuit PROM pentru generarea semnalelor de

selecie a circuitelor de memorie

Exemplul din figura IV. 18 prezint o aplica ie n care se folose te un PROM


de tip SN74188 (cu organizare de 32x8 bi i) pentru selec ia circuitelor care alctuiesc
memoria unui microsistem astfel:
- memorie ROM de 8 Kocte i, format din patru circuite, de cte 2K x 8 bi i
- memorie RM de 16 Kocte i, format dintr-un circuit de 16K x 8 bi i
Se observ conectarea ie irilor memoriei PROM la Vcc prin cte o rezisten ,
aceste ie iri fiind de tip colector n gol. Validarea selec iei are loc n prezen a
semnalului de acces la memorie M/IO =1, aplicat pe intrarea de validare EN ( Enable)
a circuitului PROM. (Pentru EN1 toate ie irile sunt pe "1".) Conectarea n schem a

memoriei EPROM i a celei RM respect principiile descrise la IV.3.


n func ie de con inutul memoriei PROM, folosit la decodificarea bi ilor de
adres, se poate alege zona de memorie ROM, respectiv RM n cadrul spa iului de
adresare de 64 Kocte i a microprocesorului. n situa ia n care memoria RM se afl
n zona de adrese OOOOH-5-3FFFh, iar memoria ROM n zona 8000H^9FFFh, atunci
con inutul memoriei PROM trebuie s fie cel din tabelul de mai jos (n care d
reprezint valoare indiferent, iar X X X toate combina iile):

Dac se dore te interschimbarea adreselor de nceput ale zonelor, astfel


nct memoria ROM s se afle n intervalul 0000H+1FFFH, iar memoria RM n
8000H+BFFFH acest lucru se poate realiza prin nlocuirea circuitului PROM cu un
altul, care are urmtorul con inut:

n prima variant, memoria RM este la dispozi ia utilizatorului de la adresa


OOOOH (presupus aici adresa de ini ializare a microprocesorului) ntr-o zon de
eficient pentru elaborarea i depanarea programelor. Dup punerea la punct a
programului i nscrierea lui n memoria EPROM, acesta poate func iona pe acela i
modul prin reconfigurarea zonelor de adrese conform celei de-a doua variante.
Pentru a face posibil mutarea zonelor de memorie fr a interveni n hardware-ul
plcii, memoriile PROM folosite pentru selec ie se a eaz de regul pe socluri.
IV.4.3. Memorii EPROM i E2PROM
Memoriile de tip EPROM sunt memorii fixe programabile de utilizator, cu
posibilit i de tergere (Erasable PROM). Celula de memorie este realizat cu un
tranzistor MOS cu dubl poart: una comandat i una izolat sau flotant (Floating
Gate FET), conform figurii IV.19.

Figura IV.19. Celula de memorie a unui

circuit EPROM
Dac n celul se afl nscris informa ia "1". tranzistorul (de tio NMQS
trebuie s rmn permanent blocat, chiar dac pe poarta de comand se aplic un
impuls pozitiv de selec ie. Aceast stare de blocare se realizeaz n regim de
programare priti-DOlanzarea grilei flotante cu o sarcin negativ care rmne
.stocat acolo si determin cre terea pragului de intrare n conductie a lui T. stfel
impulsul de selec ie va fi insuficient pentm a df?snhid tranzistorul
nscrierea jlecurge~astfer. se aplic o tensiune mare de programare^ ntre
dren T surs (VPP20 V), care va provoca un curent n avalan . Electronii
accelera Ccu energie mare, vor fi capta i de poarta flotant sub ac iunea cmpului
crea _da_aplicarea unei tensiuni pozitive (Vc0 pe grila de comand Datorit
izolrijjQarte~bune a por ii flotante n stratul de oxid, sarcina acumulat pe ea se
men ine o_perioad ndelungat (zeci de ani)
pac poarta a fost lsat neutr, celula memoreaz informa ia de "0" i JranzistoruTse
va desi^a^sjj j ac i u
luLde selec ie pe lini WLTce^a
pe~ducela un poterf iaisczut-pe Imia dedate DL.
tergerea con inutului se face prin expunerea circuitului la radia ii ultraviolete
(circa 15+20 de minute), care transmite energie suficient electronilor de pe grila
flotant de a strbate stratul izolator i a reveni n substrat. Pentru
aceast ac iune circuitul este prevzut cu o fereastr, acoperit n general n
func ionare normal cu un filtru galben pentru prevenirea unei tergeri accidentale de la
lumina solar sau a lmpilor fluorescente.

Cu o memorie EPROM se pot efectua aproximativ 3CM00 cicluri de


tergere-renscriere. Pentru a putea fi programate, cu instrumente specializate,
circuitele EPROM se amplaseaz n socluri.
n regim normal de func ionare intrarea pentru tensiunea de programare Vpp se
leag la +5 V. Ie irile fiind de tip trei-stri, se pot conecta direct ia magistrala de date. n
stare neselectat (CE1) consumul se reduce cu 75 %, acesta fiind numit i regimul'de
rezerv (standby). Din aceast cauz intrarea CE se mai noteaz PD (Power Down).
Circuitele EPROM cel mai des ntlnite n sistemele cu microprocesor Intel sunt
cele din seria urmtoare: 2716 (2 Kocteti), 2732 (4 Kocteti), 2764 (8 Kocte i), 27128 (16
Kocte i), 25256 (32 Kocte i), 27 512 (64 Kocte i).
Exemplu
Exemplul din figura IV.20 prezint un bloc de memorie EPROM de 16 Kocte i
realizat cu circuite 2732 (de 4K x 8), ntr-un microsistem cu 8086. (Pentru simplificarea
desenului liniile comune sunt duse printr-o singur dreapt care traverseaz"
circuitele.)

Figura IV.20. Bloc de memorie cu circuife EPROM


Memoria este organizat pe dou bancuri (inferior i superior), conectate la
iniile D0+D7, respectiv D8+D15 ale magistralei de date, selectarea bancurilor fiind
fcut cu O, respectiv HE. Zona ocupat de aceast memorie n spa iul de adrese al
microprocesorului este FC000H-^FFFFFH. Generarea semnalelor de selec ie pentru
circuitele EPROM se realizeaz cu un decodificator 8205 conform tabelului urmtor,
care con ine adresele limit corespunztoare acestor semnale:

Linia de adres O se folose te pentru selec ia bancului (inferior), liniile AUA12


sunt folosite pentru selectarea loca iei din interiorul circuitului de memorie, iar
A13-^19 sunt decodificate pentru selec ia circuitului adresat. Selectarea n zonele de
adrese de mai sus are loc doar n prezen a unui acces la memorie (M/IO1), ie irile
fiind validate numai dac acest acces este de citire (RD0).
Observa ie: Deoarece accesul este numai de citire, se poate renun a la
semnalele O i HE pentru validarea bancurilor, de aceea acestea sunt desenate cu
linie ntrerupt.
Exist i memorii fixe reprogram abile cu tergerea informa iei pe cale electric
de tip E2PROM (Electrically Erasable PROM). Celula de memorie are la baz tot un
'franzistOTMOS bigril, trecerea electronilor prin stratul izolator fiind prin efect tunel.
Regiunea fin de oxid permite mi carea bidirec ional a sarcinii sub influen a cmpului
electric. Polaritatea tensiunii aplicat ntre grila de comanda i dren determin sensul
de trecere a electronilor ntre substrat i grila izolat. ncrcarea grilei flotante se face
prin aplicarea unei tensiuni nalte (Vp P20 V) pe gril i sczute (0 V) pe dren. Prin
acela i procedeu, dar inversnd tensiunea, se face descrcarea sarcinii de pe grila
flotant. Curen ii fiind mici, programarea, tergerea i reprogramarea se pot face
in-circuit, adic sub comanda microprocesorului fr a mai scoate capsula de memorie
din sistem.

Figura IV.21. Principiul de lucru cu o memorie E2PROM


Numrul de cicluri de tergere/nscriere care se pot face cu o memorie
E2PROM este de ordinul 104 Deoarece o astfel de opera ie dureaz un timp destul de
lung (1CM5 ms) n compara ie cu viteza de lucru a microprocesorului, pentru ca acesta
s- i poat continua activitatea, adresa i data se nscriu ntr-un latch (figura IV.21). Un
circuit de temporizare (timer) va indica (de exemplu printr-o ntrerupere, prin interogare
sau prin inserare de stri WAIT) terminarea ciclului ctre CPU. De asemenea, este

necesar o surs extern sau un convertor DC/DC pentru tensiunea de programare


VPP.
Un exemplu de circuit E2PROM este 2817, organizat sub forma de 2K x 8 bi i.
Circuitul are incluse latch-urile pentru date i adrese, temporizatorul i convertorul
DC/DC i ca urmare permite o conectare simpl la microprocesor (figura IV.22). vnd
convertorul de tensiune incorporat, necesit o singur alimentare V Cc=+5 V. Linia
READY /BUSY este folosit pentru a identifica starea memoriei: cnd ea este ocupat
cu nscrierea datelor (READY/BUSY =0), CPU poate trece la execu ia altor func ii,
ie irile de date ale memoriei fiind n impedan ridicat. Dup o ntrerupere (INT0),
microprocesorul va reveni pentru nscrierea urmtorului octet. n regim standby puterea
consumat de circuitul de memorie se reduce cu 50 %.
+5V

Figura IV.22. Conectarea unui circuit E2PROM la microprocesor


Diagramele de timp ale memoriei 2817 sunt prezentate n figura IV.23. Se
observ c ciclul de citire este similar cu al oricrei memorii ROM (vezi IV.3), pentru
timpul dup care ie irile de date trec n stare flotant (de nalt impedan ) ca urmare a
deselectrii capsulei fiind folosit aici nota ia toF (Deselection to Output Float Time). Timpul
de acces este de tA=250 ns.
n regim de scriere ( tergere, programare), cu CE0 i OE1, datele se nscriu
pe frontul pozitiv al impulsului WE, ca ntr-o memorie RM. Este de remarcat faptul c
adresa nu trebuie s fie stabil dect pn la nscrierea sa n iatch-ul intern. Procesul
de nscriere se termin ns dup un timp t WR=10 ms (Byte Write Cycle Time), pn cnd
semnalul READY /BUSY este men inut pe "0". nainte de nscrierea unui nou octet este
necesar tergerea loca iei, ceea ce se face prin nscrierea lui FF H.

Figura IV.23. Diagramele de timp ale unui circuit de memorie E PROM ntr-un ciclu de citire (a)

i de scriere (b)

tergerea octet cu octet a ntregii memorii necesit desigur un timp


ndelungat. Exist astzi i circuite de memorie Flash E2PROM, la care se realizeaz
tergerea instantanee a con inutului pe blocuri prin nscrierea pe cale soft a unei
anumite secven e de adrese/date.
IV.4.4. Memorii RAM statice
Aceste memorii sunt de tip citire-scriere, celula de memorie avnd la baz
un circuit basculant bistabil. istabilul pstreaz n regim static informa ia nscris
atta timp ct este men inut tensiunea de alimentare, de aceea se numesc memorii
statice (Static RAM), prescurtat SRAM.
Dup tipul tranzistorului cu care se realizeaz elementele de memorare,
memoriile RAM statice pot fi bipolare sau MOS.
Memoriile RM bipolare au cea mai ridicat vitez de lucru (timp de acces
de ordinul nx1-^nx10 ns), dar consumul de putere este relativ ridicat i densitatea de
integrare mic. Sunt memorii de capacitate mic, obi nuit de nx10 Kbi i.
Memoriile RAM statice de tip MOS permit o densitate de integrare mai mare
pe capsul, rezultnd astfel capacit i mai mari (de ordinul nx10-H/ix100 Kbi i). Ca
dezavantaj au ns timpul de acces mai redus. Structura unei celule cu tranzistoare
NMOS este prezentat n figura IV.24.

Figura IV.24. Celula de memorie a unui circuit SRAM

Bistabilul este format din tranzistoarele T-i i T2, care au ca sarcin activ
(rezisten e MOS) tranzistoarele T3 i T4. T5 i T6 sunt tranzistoare de activare n caz
de citire sau scriere. Pentru citirea strii bistabilului se aplic poten ial ridicat pe linia
WL, care duce la deschiderea tranzistoarelor T5 i T6 i apari ia informa iei pe DL,
respectiv sub form negat pe DL . Pentru scriere, se face selec ia pe WL i se
for eaz tensiune cobort pe una din liniile de bit DL sau DL, n func ie de informa ia
care trebuie nscris.
Se observ c n timpul func ionrii unul din tranzistoarele bistabilului se afl
mereu n conduc ie. De aceea la aceste memorii rezult un consum de pn la 500
mW/1 Kbit. Consumul se poate reduce dac tranzistoarele Ti i T 3, respectiv T2 i T4
sunt de tip complementar, situa ie ntlnit la memoriile RAM" statice CMOS. Acestea
au un consum de ordinul 1 mW/1 Kbit, fiind capabile pstreze informa ia chiar pe
5-10 ani, alimentate de la o baterie de litiu.
Exemplu
Un exemplu de bloc de memorie SRM de 2 Kocte i pentru un microsistem cu
8086 cu circuite 2142 (de 1K x 4) este prezentat n figura IV.25.

Figura IV.25. Bloc de memorie cu circuite SRAM


Se observ c 1 Koctet de memorie este realizat cu dou capsule 2142 care

lucreaz n paralel, una avnd liniile de intrare/ie ire conectate la jumtatea


inferioar, iar cealalt la jumtatea superioar a grupului de opt linii de date.
Conectarea la magistral se face direct, ie irile circuitului fiind de tip trei-stri.
n cazul utilizrii microprocesorului 8086 cu frecven a tactului de 5 MHz,
durata de 400 ns a strilor T2 plus T3 din ciclul de citire din memorie (vezi III.2.2) este
mai mare dect timpul de acces al memoriei (200 ns), deci nu sunt necesare circuite
pentru introducerea de stri WAIT.
Zona de adrese ocupat este FC000H-^FC7FFH, pentru care trebuie generat un
singur semnal de selec ie, a a cum rezult din tabelul adreselor limit:

Circuitul de memorie 2142 are dou intrri de selec ie: cea activ pe "0" se
folose te pentru selec ia bancutui, iar pe cealalt se aplic semnalul de selec ie a
blocului de memorie, care, conform tabelului precedent, este:

nct:

Validarea selec iei pentru un acces la memorie se face cu M /IO , astfel

Pe baza acestor ecua ii s-a fcut sinteza din por i a logicii de selec ie.
Memoria 2142 prezint o intrare de invalidare a ie irilor OD (Output Disable),
care trebuie s fie inactiv (deci cu ie irile validate) n caz de citire (RD0).
La unele microcalculatoare sau echipamente industriale, datele de
configurare, respectiv anumi i parametri ai sistemului introdu i de operator trebuie s
fie pstra i i n caz de decuplare sau cdere a tensiunii de alimentare. ceste
informa ii se nscriu n memorii RM CMOS, care avnd consum redus pot fi
alimentate de la baterie n situa ia de ntrerupere a alimentrii.
n acest caz pe lng circuitul de memorie se prevede un circuit auxiliar care
asigur trecerea pe alimentare de la baterie dup dispari ia tensiunii de alimentare,
precum i inhibarea accesului la memorie pentru a nu altera informa ia nscris.
Schema unui astfel de circuit este dat n figura IV.26.
Cnd tensiunea de +5 V a sursei a sczut sub o anumit limit (impus de
tensiunea diodei Zener Dz), tranzistorul T se blocheaz i por ile CMOS 4049 i 4011,
care rmn n continuare alimentate (dar au un consum redus, de ordinul 10
pW/poart), fixeaz un nivel logic ridicat la intrarea de validare a memoriei (CE=1).
Memoria trece pe alimentare de la baterie i accesul va fi permis din
partea microprocesorului (CS0) numai dup restabilirea alimentrii de +5 V.
Rezisten a de 3 kft la ie irea por ii 7404 face adaptarea de nivel TTL-CMOS i nu las
necomandat intrarea circuitului 4011 dup decuplarea tensiunii de +5 V.

Figura IV.26. Schem pentru alimentarea de la baterie

a unui circuit RAM CMOS


IV.4.5. Memorii RAM dinamice
Memoriile RM dinamice func ioneaz pe principiul nmagazinrii informa iei
sub forma unei sarcini electrice pe capacitatea parazit gril-surs a unui tranzistor
MOS sau pe un condensator integrat n celul. Rezult c ele se fabric doar n
tehnologia unipolar. Deoarece sarcina de pe acest condensator se descarc n timp,
este necesar refacerea ei periodic prin citirea sH renscrierea informa iei n fiecare
celul de memorie. cest proces se nume te remprosptarea memoriei (memory
refresh) i trebuie efectuat la intervale de 1 ..2 ms, deci ntr-un regim dinamic. De aici
rezult denumirea de memorie RM dinamic (Dynamic RAh), rrQCO' Irta+ HPAM .
stzi cel mai frecvent se ntlne te celula DRM cu un tranzistor (figura
IV.27). n acest caz C este un condensator existent fizic n structura celulei, cu
capacitatea foarte mic, de ordinul 30 fF. Func ionarea este simpl, selec ia fiind
fcut pe linia WL, iar pentru scriere/citire se utilizeaz linia de date DL.

Figura IV.27. Celula de memorie a unui circuit DRAM


La remprosptare i la o opera ie de citire informa ia trebuie citit,
amplificat i renscris n celul. n acest scop exist cte un amplificator pe

firagCgblofTa:

vnd n vedere simplitatea structural a celulei de baz, memoria DRM


permite cea mai mare densitate de integrare dintre memoriile RAM cu
semiconductoare. Capacitatea de memorare a acestor circuite este de pn la
nx1000 Mbit/capsul, cu un timp de acces de 10+100 ns. vnd ns n vedere i
necesitatea remprosptrii, utilizarea memoriilor RM dinamice este rentabil la

microsisteme cu capacitate medie sau mare de memorie.


Datorit cantit ilor mari de memorie pe circuit integrat, care ar necesita
multe intrri de adres, se folosesc multiplexat acelea i terminale pentru adresarea
liniilor, respectiv a coloanelor matricii de memorie. Cu vntul,de adres va avea deci
n general un numr par de bi i (2k) pentru a se putea , aplica multiplexat pe cele k
terminale de adres ale capsulei. Rezult astfel configura ii tipice de circuite DRM
de 16 Kx1,64 Kx1, 256 Kx1 bi r
Circuitul de memorie RM dinamic prezint, ca urmare a particularit ii
descrise mai nainte, o structur intern specific (figura IV.28), diferit de cea a
unei memorii RM statice. Capacitatea acestui circuit din figur este 22k x 1, dac
ns are n componen n matrici, atunci capacitatea va fi 2 x n.

Figura IV.28. Organizarea intern a unui circuit de memorie DRM

Se observ existen a n interior a dou registre cu zvorre (latch) n care se


ncarc succesiv cele dou jumt i ale cuvntului de adres, i anume adresa de
rnd RA (Row Address) i adresa de coloan CA (Column Address):

a ii

Pe intrrile de adres ale circuitului se aplic mai nti jumtatea mai pu in


semnificativ a cuvntului de adres (o+*.i), care se ncarc cu impulsul de
e antionare al adresei de linie R ^(Row Address Strobe) n registrul.RL.(Row Latch).
Selectarea unei linii a matricii se efectueaz prin decodificarea con inutului
registrului RL. poi, pe aceea i pini se aplic adresa de coloan (r^Wi), care se
ncarc n registrul CL (Column Latch) ci| impulsul de e antionare al adresej_de
coloan CS_ (Column Address Strobe). Cu con inutul registrului CL se realizeaz, prin
multiplexare, conectarea uneia din cele 2k celule ale liniei selectate la intrarea sau
ie irea de date.
Deoarece circuitul nu are o intrare separat de selec ie de tip CS (ca la
EPROM sau SRAM), _ elec ia se consider realizat prin aplicarea succesiv a
semnalelor RS i CS, n aceast ordine. Semnalele RS i CS active asigur i
validarea decodificatoarelor de linTi i coloane.
Diagramele de timp ale semnalelor memoriei DRM ntr-un ciclu de citire i
scriere, preluate din catalog pentru un caz tipic sunt prezentate n figura IV.29.

Figura IV.29. Diagramele de timp ale unui circuit de memorie DRAM

la citire i scriere

Pe frontul negativ al impulsului CAS are loc preluarea informa iei de ta


intrarea de date (D|N) n memorie (mai precis ntr-un registru latch de intrare), daci
scrierea este validat cu WE 0 (Write Enable). Datele valide trebuie s fie prezente pe
intrare cu un timp de set-up tos nainte de acest front i s se men in un timp de hold
tDH dup acesta. Starea ie irii de date (D0UT) se controleaz de semnalul CS, astfel
nct aceast ie ire trece din starea de impedan ridicat li stare valid dup timpul
de acces tcC msurat de la activarea impulsului CS In cazul ciclului de citire (WE
1). Dup dezactivarea semnalului CS, datele se mai pstreaz pe ie ire pentru un
timp t0FF- La unele tipuri pe ie ire exist un latch care permite pstrarea datelor valide
pe ie ire pn la un nou acces (ie irea trece n nalt impedan doar la urmtoarea
activare a lui CS) .Timpul de acces ai memoriei se poate defini i ca intervalul tRc,
msurat ntre frontul negativ ai semnalului RS i apari ia informa iei valide pe ie irea
D0UT-

Ciclul de scriere din figura IV.29 a fost un ciclu de scriere timpuriu (earty write),
cnd semnalul WE este activ nainte de CS, ie irea de date fiinc men inut n stare
de impedan ridicat pe durata ciclului. Memoria poate lucra ns i cu jjn ciclu
ntrziat de scriere (late write), ca pe figura IV.30. n acest caz ie irea va urma
secven a dintr-un ciclu de citire, de aceea acesta se mai nume te un ciclu de
citire-modificare-scriere (read-modify-write).

Figura IV.30. Diagramele de timp ale unui circuit de memorie DRAM

ntr-un ciclu ntrziat de scriere

Pentru remprosptarea memoriei trebuie aplicate succesiv pe intrrile de


adrese toate cele 2k cuvinte de adres de linie, validate cu cte un impuls RS,
men innd semnalul CS inactiv (CS 1). Este necesar ca fiecare linie a matrlcii de
memorie s fie selectat o dat n decursul intervalului de remprosptare permis.
Diagramele de timp ale unui ciclu corespunztor acestui mod de remprosptare,
efectuat numai prin cicluri RAS (numit de aceea RAS-only refresh) sunt prezentate n
figura IV.31.

Figura IV.31. Diagramele de timp ale unui circuit de memorie DRAM

ntr-un ciclu de remprosptare

Dac circuitul are n interior un registru latch pe ie ire, atunci ciclul RAS- only
refresh nu afecteaz starea ie irii, care rmne n starea de dinainte de acest ciclu.

ceasta poate fi cea a ultimei citiri, memorat n registrul latch de ie ire. n acest caz,
data accesat de microprocesor este nc disponibil la ie ire, cu toate c circuitul a
nceput ciclurile de remprosptare.
La majoritatea circuitelor DRM exist i posibilitatea de a realiza
'emprosptare i dup metoda CAS before RAS, prin activarea semnalului CAS
nainte de RS.
O cre tere a vitezei de lucru cu memoria DRM se poate realiza n modul de
lucru pagin, prin pstrarea aceleia i adrese de rnd (echivalent cu adresa de
pagin) i selectarea aleatoare a adresei de coloan. dresa de pagin se nscrie n
registrul RL cu semnalul RS care rmne activ, selectarea celulelor de memorie
fiind fcut la apari ia semnalului CS care valideaz adresa n interiorul oaginii.
Timpul de acces al memoriei va fi dat n acest caz de tcC, care este mai mic dect
tRAc.
Circuitul de remprosptare poate fi sintetizat din elemente logice discrete sau
se pot folosi circuite integrate specializate, numite controlere de remprosptare

(refresh controller).

n figura IV.32 se prezint, sub form de schem bloc, un controler pentru


remprosptarea unei memorii DRM de 4 K, organizat pe 64 rnduri x 64 coloane.
Componentele de baz ale controlerului sunt:
Numrtor de 6 bi i (modulo 64) pentru generarea succesiv a celor 64 de
linii pe care se face remprosptarea (simultan are loc remprosptarea tuturor
celulelor de pe o linie).
Multiplexorul de adrese nr.1, care transmite spre memorie adresa de rnd
de la microprocesor (0+5) sau de la numrtor, dup cum are loc un ciclu
de acces la memorie sau un ciclu de remprosptare.
Multiplexorul de adrese nr.2, care transmite la memorie adresa de rnd (la
remprosptare i la acces) sau adresa de coloan (6M11, la acces din
partea microprocesorului).
Oscilatorul, care genereaz semnalul pentru indicarea momentelor de timp
la care se face remprosptarea.

Figura IV.32. Schema de principiu a unui controler de remprosptare


locul de comand care sincronizeaz activitatea elementelor
componente i rezolv problemele de acces la memorie.
Remprosptarea memoriei dinamice se face linie cu linie i se poa: realiza
n dou moduri:
distribuit, cnd la intervale egale tREF/p se face remprosptarea cte unu.
rnd (unde tREF este timpul de remprosptare cerut de catalog, iar p este
numrul de rnduri)
comasat (burst), n cazul n care la fiecare interval tREF se face
remprosptarea integral a memoriei
Dac aceste momente pentru remprosptare sunt dictate de baza de timp a
controlerului, remprosptarea se efectueaz asincron fat de activitatea
microprocesorului.
Exist i remprosptare prin acces sincron la memorie, cnd pentru aceast
ac iune se folosesc stri care apar periodic n func ionarea microprocesorului i n
care el nu lucreaz cu memoria. De exemplu, astfel de

stri pot s apar cnd se execut opera ii interne sau dup extragere n timpul
decodificrii codului opera iei. cest mod de remprosptare, care decurge paralel cu
activitatea microprocesorului, este numit remprosptare ascuns (hidden refresh)
sau transparent. n acest caz schema controlerului se simplific, deoarece nu mai
are de rezolvat problema arbitrrii accesului la memorie i n principiu nu are nevoie
nici de oscilator propriu. Totu i, n anumite stri speciale cnd se opre te
func ionarea microprocesorului (HALT, RESET) trebuie luate msuri, prin circuite
corespunztoare, pentru a nu se ntrerupe ciclurile de remprosptare.
Exemplu
Figura IV.33 arat schema unei memorii RM dinamice de 128 Kocte i,
realizat cu circuite 4164, ntr-un microsistem cu 8086.
Circuitul DRAM de tip 4164 are organizarea 64K x 1 bit, deci pentru a forma
loca ii de cte un octet se conecteaz n paralel opt astfel de circuite. Memoria de
128 K este organizat pe dou bancuri de cte 64 Kocte i: unul plasat la adrese pare
i conectat la liniile D0^D7 ale magistralei de date, iar cellalt aflat la adrese impare
i conectat la liniile D8+D15 ale magistralei.
Validarea la scriere a celor dou bancuri se face cu combina iile semnalelor
0 i HE , dup cum are loc accesul pe octet sau pe cuvnt (vezi III.2.2).
Remprosptarea circuitelor de memorie DRM este asigurat de controlerul
de refresh 8203, care asigur i arbitrajul ntre ciclurile de remprosptare (generate
de el nsu i) i cererile de acces la memorie din partea CPU. Remprosptarea este
de tip distribuit, la intervale de 15,6 ps sau mai pu in, determinate de un oscilator
local al crui cuar se conecteaz din exterior. Conform datelor de catalog ale
circuitului 8203, frecven a cuar ului poate fi cuprins ntre 18,432 MHz i 25 MHz,
urmnd ca proiectantul s aleag valoarea maxim la care parametrii dinamici ai
controlerului sunt nc compatibili cu circuitul DRM ales.
Dac accesul este solicitat de microprocesor, acesta trimite adresa de
memorie pe magistrala de adrese. i ii 17-HA19 ai cuvntului de adres
selecteaz, prin intermediul decodificatorului 8205 validat de semnalul M/IO, zona de
128 K ocupat de blocul de memorie DRM. n cazul figurii, zona este situat n
intervalul 80000H ^9FFFFH, a a cum arat tabelul urmtor:

Semnalul ob inut de la decodificator se aplic pe intrarea de selec ie PCS

(Protected Chip Select) a controlerului. cesta multiplexeaz restul bi ilor de adres de

pe intrri (1^-16), genernd adresa de rnd de 8 bi i i adresa de coloan de 8 bi i


n mod sincron cu semnalele RS o, respectiv CS. (Controlerul nu genereaz i
semnalul RAS 1 n situa ia n care intrarea Bank Select, notat cu

Bo, este la "O".) Cu intrarea 16/64K=0 s-a selectat lucrul cu circuite de memora de
64 K, care necesit 8 linii de adres. La ie irile circuitului 8203 adresele SLT negate,
dar acest lucru nu are nici o influen .
Diagramele de timp ale semnalelor generate de 8203 n ciclurile de acces
(citire i scriere) la memoria DRM, sunt prezentate n figura IV.34. Excepta^:
condi ionarea marcat, celelalte fronturi sunt sincrone cu tactul controlerul I
(CLOCK).

Figura IV.33. Bloc de memorie cu circuite DRAM

Figura IV.34. Diagramele de timp ale controlerului de remprosptare 8203


n cazul scrierii, impulsul de nscriere a datelor n memorie (WE - Write Enable)
se genereaz de circuitul 8203 pe baza comenzii de scriere WR primit de la
microprocesor. Se observ c opera ia de scriere are loc dup un ciclu de scriere
timpuriu. Deoarece ia citire dup dezactivarea lui CS ie irile circuitului DRM vor
trece n stare de impedan ridicat, timpul de men inere a datelor pe ie ire nu este
suficient de lung pentru a permite preluarea datelor de CPU. Rezult necesitatea de a
capta aceste date ntr-un registru latch exterior (8282), ceea ce se poate face cu
semnalul XCK (ca n exemplul dat) sau cu CSRD. Datele citite sunt depuse pe
magistral (prin validarea ie irilor lui 8282) sub ac iunea comenzii de citire (RD0)
dac memoria este selectat (PCS0). n concluzie, ciclul de scriere fiind timpuriu,
registrul 8282 nu are rol de separare a ie irilor de intrri, ci doar de a men ine datele
citite pe ie ire.
Dac simultan cu accesul la memorie solicitat de microprocesor, controlerul
8203 este ocupat cu un ciclu de remprosptare (de tip RAS-only refresh), el
semnaleaz acest lucru prin semnalul XCK 1, care duce la inserarea de stri WAIT
n ciclul de transfer cu memoria al microprocesorului. Semnalul XCK se nume te
confirmare de transfer (Transfer Acknowledge) i devine activ (XCK 0) numai dup
achitarea opera iei de citire sau scriere cerut de CPU, cnd va determina ie irea
acestuia din starea de a teptare.

V. OPER II DE INTRRE/IE IRE

V.1. Metode de efectuare a opera iilor de intrare/ie ire


Prin opera ii de intrare/ie ire (I/O - Input/Output) se n eleg opera iile de transfer
ale microsistemului cu dispozitivele de introducere i extragere a datelor conectate la
acesta. ceste opera ii asigur de fapt comunicarea microsistemului cu mediul

extern.

Dispozitivele externe pot fi echipamente periferice (tastatur, monitor,


imprimant, unitate de disc magnetic etc.) sau, n aplica ii industriale, elemente
specifice pentru conducerea unui proces (traductoare de msur, convertoare
analog/numerice i numeric/analogice, relee, semnalizri, motoare etc.).
Conectarea dispozitivelor externe la magistralele microsistemului nu se
realizeaz nemijlocit, ci prin intermediul unor circuite de interfa (interface), care
asigur transferul efectiv al datelor i transmiterea comenzilor i informa iilor de stare
ntre CPU i echipamentele de intrare/ie ire.
Locul din interfa n care se realizeaz schimbul de informa ii dintre
microsistem i dispozitivul I/O se nume te gor {port). Fiecare dispozitiv extern este
conectat la (cel pu in) un astfel de port, deci CPU "vede" perifericele sub forma unor
porturi unde se depun, respectiv de unde se preiau datele care se transfer. n
consecin , dup sensul transferului exist:
porturi de intrare
porturi de ie ire
porturi de intrare/ ie ire
Porturile asigur, de obicei, i stocarea temporar a datelor aflate n curs de
transfer.
n func ie de elementele din microsistem care ini iaz efectuarea unui transfer
de date, opera iile I/O pot fi realizate printr-una din urmtoarele metode:
Transfer programat, care se face la ini iativa i sub controlul
microprocesorului.
Transfer prin ntreruperi, care se execut la ini iativa dispozitivului periferic,
dar sub comanda microprocesorului.
Transfer prin acces direct la memorie (DMA - Direct Memory Access), care se
realizeaz direct ntre memoria principal i periferic sub comanda unei logici
din interfa , fr participarea microprocesorului.

V.2. Transferul programat


V.2.1. Principiul metodei i selec ia porturilor
Transferurile de date ntre microprocesor i porturile de intrare/ie ire se
efectueaz prin program la ini iativa CPU, similar cu opera iile de citire/ criere_cu
memoria. n acest caz ns transferul unui cuvnt binar pe magistrala de date are loc
cu un registru al interfe ei n loc de o loca ie de memorie. Rezult c porturiie de
intrare/ie ire pot fi tratate ca loca ii de memorie, pentru opera iile I/O fiind utilizate
instruc iunile de transfer cu memoria ale microprocesorului. ceast modalitate de
lucru cu porturile se nume te intrri/iesiri n spa iul adreselor de memorie (memory

mapped I/O).

Conectarea de principiu a porturilor la magistralele microsistemului (utiliznd


nota iile de la 8086) pentru cazul transferului n spa iul adreselor de memorie este
prezentat n figura V.1.

Figura V.1. Principiul conectrii porturilor la magistralele

microsistemului la metoda memory mapped I/O


Logica de selec ie formeaz din cuvntul de adres, dup una din metodele
de selec ie cunoscute (selec ia liniar sau decodificat, vezi IV.2), semnalele de
selec ie ale porturilor: SELPORTi pentru portul de intrare i SELPORTE pentru portul
de ie ire. Comanda transferului se realizeaz cu semnalele care se activeaz ntr-un
ciclu de citire, respectiv de scriere cu memoria, ca la conectarea circuitelor de
memorie la microsistem:

Rezult c prin metoda memory mapped I/O, spa iul efectiv de adrese 2
memoriei'se reduce cu cel afectat perifericelor, lucru acceptabil dac nu tot spa: de adrese este ocupat pentru memorie. Acest dezavantaj este compensat ae
flexibilitatea n utilizarea instruc iunilor de citire/scriere i o abordare unitar 2 tuturor
opera iilor de transfer ale microprocesorului.
La unele microprocesoare (cum este i 8086) se face distinc ie ntre spa: J
memoriei i spa iul de intrri/ie iri, n scopul conservrii n totalitate a spa iul^ :e
adrese pentru memorie. n acest caz opera iile de transfer cu perifericele, av-.: loc
ntr-un spa iu separat, se numesc intrri/iesiri izolate (isolated I/O). Pentru j aplica
aceast metod, microprocesorul dispune pe de o parte de semnae specifice, iar pe
de alt parte de instruc iuni specifice I/O care fac transferul rr microprocesor i
porturile de intrare/ie ire adresate n spa iul I/O. cese instruc iuni specifice sunt de
forma
IN A, PORT
pentru opera iile de intrare, respectiv
OUT PORT, A
pentru opera iile de ie ire, unde PORT reprezint adresa portului, iar ca regisr.
receptor/emi tor se utilizeaz de regul acumulatorul.
Conectarea porturilor la magistralele microsistemului pentru metoda de
intrri/ie iri izolate este prezentat (cu nota iile de la 8086) n schema de princir din figura V.2.

Figura V.2. Principiul conectrii porturilor la magistralele

microsistemului la metoda I/O izolate

Selec ia porturilor se poate face, n func ie de numrul acestora, prin selec ie


liniar sau selec ie decodificat. ccesul la porturi are loc n prezen a semnalelor de
comand de citire din port (IORC - I/O Read Command), respectiv de scriere n port
(IOWC - I/O Write Command):

Spa iul adreselor de intrare/ie ire este de obicei mai mic dect spa iul de
memorie, deoarece i numrul de periferice este mai redus. cest lucru prezint
avantajul adresrii (decodificrii) mai simple.
La microprocesorul 8086, cuvntul de adres poate fi de 16 bi i (la instruc iuni
I/O variabile), sau de 8 bi i (la instruc iuni I/O directe). n primul caz spa iul I/O este de
64 K, iar n al doilea se folose te pagina 0 (000H^0FFH) din acest spa iu.
Instruc iunile de intrare/ie ire au timpul de execu ie mai redus dect cele de
transfer cu memoria, dar acestea din urm fiind mai complexe este posibil ca prin
metoda memory mapped I/O s se ob in un program mai scurt pentru o anumit
aplica ie.
Cu ocazia execu iei instruc iunilor de intrare/ie ire, microprocesorul
efectueaz cicluri de intrare/ie ire care sunt asemntoare cu ciclurile de transfer cu
memoria, dar activeaz semnale specifice. Ca i la ciclurile de citire/scriere cu
memoria, i la ciclurile I/O este posibil inserarea de stri WAIT (pentru sincronizarea
activit ii microprocesorului cu viteza de lucru a interfe ei), transferurile fiind de tip
asincron.
Ciclurile de intrare/ie ire la microprocesorul 8086
La microprocesorul 8086 ciclurile de intrare/ie ire sunt identice cu celeste
citire/scriere cu memoria (vezi III.2.2), cu singura deosebire la semnalul M/IO. Acesta
semnific un acces la memorie sau un ciclu de intrare/ie ire, deci n acest caz este
men inut tot timpul n starea "0" logic.
Transferul de date poate fi efectuat pe cuvnt sau pe octet. n cazul
transferului pe octet, accesul se realizeaz pe partea inferioar a magistralei de date
(D0-HD7) dac portul se afl la o adres par, respectiv pe partea superioar
(D8^D15) dac portul se afl la o adres impar.
V.2.2. Tehnica de interogare
n transferul programat toate opera iile de intrare/ie ire sunt sub controlul
programului principal, deci un transfer de date ntre CPU i un port se poate genera
prin execu ia unei instruc iuni de intrare/ie ire cu portul respectiv. Este ns posibil ca
n momentul execu iei acestei instruc iuni perifericul s nu aib date disponibile de
transmis, respectiv s nu fie gata de a primi noi date. Rezult astfe necesitatea de a
verifica starea perifericului nainte de a efectua opera ia I/O.

ceast idee st la baza tehnicii de interogare (polling), cnd microprocesortesteaz succesiv fiecare dispozitiv periferic pentru a determina care dintre ee este
pregtit pentru o opera ie de inlrare/ie jre.
Testarea se face prin program ntr-o bucl de interogare (polling loop), prr
citirea strii bistabilelor de condi ie (fanioane) aflate n fiecare interfa I/O cu
perifericele (figura V.3). Fiecare fanion se cite te de ctre microprocesor prin cta
un port de intrare.

Figura V.3. Schema de principiu pentru transferul prin interogare


Dac un periferic solicit o opera ie de intrare/ie ire va pune pe 'T bistabilul
su de condi ie i va a tepta s fie servit. Cnd programul sesizeaz valoarea "1" a
bistabilului, va trece la subrutina de servire a perifericului respectiv, dup care se
rentoarce n bucl (figura V.4).

Fanionul care se testeaz poate fi reprezentat n anumite situa ii de un bit al


registrului de stare al perifericului. Prin citirea cuvntului de stare, microprocesorul i
poate da seama dac dispozitivul respectiv dore te un schimb de date sau este gata
pentru a primi date.
Microprocesorul poate s execute continuu bucla de program de interogare
sau bucla poate fi apelat periodic.
Deoarece este posibil ca unele periferice s solicite mai frecvent un transfer
de date, tehnica de interogare se poate mbunt i prin introducerea unei ordini de
prioritate n interogare: testarea perifericelor mai prioritare se va realiza de_mai multe
ori ntr-o bucl.
Exist i posibilitatea de a renun a la testrile individuate, prin reunirea,
fanioanelor ntr-un registru care va fi considerat ca un singur port de intrare (figura
V.5). (Pentru simplitate, pe figur nu s-au reprezentat legturile interfe elor la
magistrala de date.) stfel interogarea perifericelor se reduce la citirea periodic a
acestui port de intrare i determinarea bi ilor care sunt pe "1". Ordinea de parcurgere
prin program a bi ilor cuvntului citit reprezint i ordinea de prioritate a perifericelor.
Selectarea portului se face ca urmare a unei instruc iuni de intrare (n cazul adresrii
izolate) sau a unei instruc iuni de citire din memorie (n cazul adresrii n spa iul de
memorie).

Figura V.5. Citirea strii porturilor la metoda interogrii


O solu ie mai performant^ dar care necesit un hardware suplimentar, se
ob ine prin utilizarea unui codificator de prioritate (figura V.6). Fiecrei intrri a
codificatorului i se atribuie o anumit prioritate, de exemplu astfel nct intrarea 1 s
fie cu prioritatea cea mai mic, iar intrarea 7 cu prioritatea cea mai mare. n cazul
activrii simultane a dou sau mai multe intrri, la ie ire va apare numrul n binar al
intrrii mai prioritare.
Prin modul cum se leag fanioanele la intrrile codificatorului se stabile te
ordinea de prioritate n servirea perifericelor. Prin citirea portului de intrare,
microprocesorul determin perifericul cel mai prioritar care solicit un transfer i pe
baza codului se va forma adresa de nceput a subrutinei de tratare a perifericului
respectiv.

Figura V.6. Stabilirea priorit ilor cu un codificator de prioritate

la metoda interogrii

Din cele prezentate a rezultat c la transferul programat, acest transfer de date


se face sincron cu activitatea microprocesorului. Dezavantajul metodei prin * interogare
l constituie irosirea timpului n bucia de interogare, ceea ce reduce timpul disponibil
pentru alte sarcini. De asemenea, timpul de rspuns _al microprocesorului la o solicitare
de opera ie de intrare/ie ire este mare. Dac pierderea de timp nu este critic, metoda
se recomand datorit simplit ii pe partea de hardware.
Metoda fiind lent, nu se folose te pentru periferice rapide.
V.2.3. Utilizarea registrelor ca porturi
Un transfer de date ntre microprocesor i un dispozitiv extern se realizeaz
de regul prin depunerea de ctre elementul surs a unui cuvnt de date ntr-ur
registru tampon, de unde va fi preluat de elementul destina ie. Rezult posibilitatea
de utilizare a unor registre ca porturi de intrare sau ie ire, acestea fiind conectate la
magistralele microsistemului pe o parte, respectiv la dispozitivii I/O pe cealalt parte.
Un registru port de intrare trebuie s fie conectat la magistrala de date prin
ie iri de tip trei-stri (figura V.7).
Preluarea informa iei din registrul cu bistabile RS se face cu un impuls de
selec ie citire port, care valideaz amplificatoarele de magistral cu trei-stri cest
impuls se genereaz la execu ia unei instruc iuni de intrare (la I/O izolate sau de
citire din memorie (la I/O mapate n spa iul de memorie) de la adresa portului.
Structura posibil a unui registru port de ie ire (cu bistabile D) este
prezentat n figura V.8.

Figura V.7. Utilizarea unui registru ca port de intrare

Figura V.8. Utilizarea unui registru ca port de ie ire


Transferul de date dintr-un registru al microprocesorului n registrul port de
ie ire se face cu o instruc iune de ie ire (sau de scriere n memorie la I/O mapate n
spa iul de memorie) la adresa acestui port, care va genera un impuls de selec ie
scriere port ie ire pe baza adresei decodificate i a semnalului de comand de
scriere.
Construirea i utilizarea unor astfel de interfe e nestandard din registre
depinde de imagina ia proiectantului.
n unele situa ii nu este necesar transmiterea unui cuvnt de date, ci numai
comanda unor elemente cu dou stri (relee, valve, motoare etc.). Asemenea
elemente se conecteaz la ie irea unui bistabil, care se comand prin program, ca n
exemplul din figura V.9. Se observ c la aceast interfa simpl pe un bit nu este
necesar conectarea unor linii ale magistralei de date, diferen ierea ntre punerea pe
"1", respectiv aducerea la "0" a bistabilului fiind realizat prin utilizarea de adrese
adiacente la instruc iunile de ie ire (sau de

intrare, dac n loc de WR se folose te RD):

Figura V.9. Utilizarea unui bistabil ca port de ie ire

pentru comanda unui element cu dou stri

Figura V.10. Interfa cu 64 de ie iri numerice

Exemplu
Figura V.10 prezint o interfa cu 64 de ie iri numerice organizate pe 8
porturi de ie ire de cte 8 bi i pentru un microsistem cu 8086. Schema utilizeaz
circuite latch 8282 (vezi III.3.5) selectate n spa iul I/O al microprocesorului.
Cele 8 porturi sunt situate la adrese pare (00), de aceea intrrile lor sunt
conectate la liniile D0-^D7 ale magistralei de date.
Interfa a se selecteaz pentru 151 (la adresele 8000 H, 8002H> 8004H,
8006H, 8008h, 800Ah, 800Ch, 800Eh), combina iile bi ilor 1-HA3 fiind folosite pentru
selec ia porturilor. n decodificarea adresei nu intr 16M19 (care nu se utilizeaz la
instruc iunile de intrare/ie ire) i 4-f14, lipsa acestora din urm ducnd la o
decodificare incomplet. Decodificatorul 8205 este validat cu M/IO 0, corespunztor
adresrii n spa iul I/O al microprocesorului.
Octetul de date se nscrie n portul selectat cu impulsul WR pe frontul 1->0 al
semnalului de pe intrarea STB.

V.3. Transferul prin ntreruperi


V.3.1. Conceptul de ntrerupere
ntreruperea (interrupt) reprezint oprirea temporar a execu iei unui program
dictat de o cauz extern sau intern i trecerea la execu ia unui program specific
de tratare a. evenimentului aprut. cest program asociat evenimentului care a
generat ntreruperea, se nume te rutin de servire a ntreruperii. La sfr itul ei se
revine n programul principal i se continu din punctul n care a fost ntrerupt.
La recep ionarea unei cereri de ntrerupere, procesorul termin instruc iunea
curent i doar dup aceea se execut saltul la rutina de servire.
In func ie de natura sursei care poate genera o ntrerupere, ntreruperile se
mpart n:
ntreruperi externe (ntreruperi hardware), care sunt produse de
dispozitive externe CPU prin activarea unui semnal de ntrerupere pe
intrarea corespunztoare a microprocesorului.
ntreruperi interne (ntreruperi software), care se genereaz la execu ia unei
instruc iuni de ntrerupere sau la apari ia unei situa ii de excep ie n execu ia
programului (dep ire aritmetic, mpr ire cu zero etc.).
Dispozitivele externe care genereaz ntreruperi hardware sunt de regul:
periferice care solicit o opera ie de intrare/ie ire
circuite de supraveghere a func ionrii normale a sistemului (circuite de
sesizare a cderii tensiunii de alimentare, circuite detectoare de eroare la
transferul informa iei etc.)

ra y p ip pr i i p ex t er na p ot f i n pr i nc i p i u de do u t ip ur i: ne m as c a b
i e s m as c ab i l e.
~.
' ' o c er er e d e ntrerupere nemascabil provoac obligatoriu ntrerupea
programului curent, fiind utilizat pentru evenimente indicatoare de situat 2 urgen
(cderea tensiunii de alimentare, eroare la citirea din memorie etc. a| cror tratare nu
sufer amnare.
Cererea de ntrerupere mascabil este acceptat de microprocesor numa
dac n prealabil s-a efectuat validarea sistemului de ntreruperi. cest lucru se> face
prin aducerea la "1" a unui bistabil intern, a crui stare se testeaz or microprocesor
la sosirea cererii. Pentru controlul sistemului de ntreruperi ecs3 de obicei dou
instruc iuni tipice:
instruc iunea de validare a ntreruperilor (STI la 8086)
instruc iunea de invalidare a ntreruperilor (CLI la 8086)
Dup ini ializarea microprocesorului, sistemul de ntreruperi este dezactivat.
Desf urarea activit ii CPU n cazul mai general al unei ntrerupemascabile este urmtoarea:

n cazul sosirii unui semnal de ntrerupere, dac sistemul este validat, dup
execu ia instruc iunii curente microprocesorul va trece la efectuarea unui ciclu de
achitare a ntreruperii. n acest ciclu el efectueaz automat urmtoarele opera ii
principale:
salvarea con inutului contorului de program ( i eventual a registrului de
fanioane i a altor registre, in func ie de tipul microprocesorului) n stiv, n
vederea relurii ulterioare a programului
invalidarea sistamuluije ntreruperi pentru a preveni o ntrerupere a rutinei
de servire
emiterea unui semnal de confirmare a acceptriiJattecuoerii. prin care
microprocesorul solicit trimiterea unui cuvntde identificare (vectorde

ntrerupere) de la perifericul care a generat ntreruperea


preluarea vectorului de ntrerupere de pe magistrala de date, folosit_apoi
pentru determinarea adresei rutinei de tratare a ntreruperii
ncrcarea adresei de nceput a rutinei de tratare a ntreruperii n contorul
de program pentru efectuarea saltului
n subrutina de servire pot fi efectuate la nceput instruc iuni pentru salvri
suplimentare de registre n stiv, valorile salvate fiind apoi restaurate nainte de
revenirea n programul principal pentru a reface situa ia de dinainte de ntrerupere.
De obicei se salveaz numai registrele al cror con inut este distrus n rutina de
servire.
Corpul rutinei de tratare l constituie instruc iunile care realizeaz prelucrrile
efective asociate dispozitivului care a produs ntreruperea, de exemplu o opera ie de
transfer ntre microprocesor i dispozitivul periferic. Rezult c, de i transferul se
realizeaz tot printr-o instruc iune de intrare/ie ire. se spune c se execut Ud
transfer prin metoaa ntreruperilor datorit modului n care a fost ini iata opera ia.
Eifede men ionat faptul c, spre deosebire de transferul programat, unde
opera ia I/O s-a efectuat sincron cu programul, transferul prin ntreruperi se execut
asincron fa de programul aflat n curs de execu ie, deoarece cererea de ntrerupere
poate apare n orice moment.
nainte de ntoarcerea n programul ntrerupt se poate efectua validarea
ntreruperilor, efectul instruc iunii respective fiind luat n considerare doar dup
efectuarea instruc iunii urmtoare pentru a da posibilitatea executrii nentreruptibile
a instruc iunii de revenire. Efectul instruc iunii de revenire const n refacerea din
stiv a con inutului ini ial al contorului de program ( i eventual a altor registre salvate
automat n ciclul de achitare). La revenirea din rutina de ntrerupere este absolut
necesar restabilirea contextului programului ntrerupt, pentru asigurarea execu iei
corecte a acestuia.
Nu toate tipurile de ntrerupere men ionate se regsesc n mod necesar la
toate microprocesoarele, sistemul de ntreruperi fiind o particularitate caracteristic
fiecrui tip de microprocesor.
V.3.2. Sisteme de ntrerupere
n continuare se prezint spre exemplificare n detaliu sistemul de ntrerupere
al microprocesorului 8086.
La microprocesorul 8086 exist urmtoarele surse de ntrerupere:
eroare de dep ire n urma unei instruc iuni de mpr ire (DIV, IDIV), de
exemplu la mpr irea cu 0
eroare de dep ire, dup o opera ie aritmetic, pus n eviden de
instruc iunea INTO, care va provoca ntreruperea dac este cazul
. regimul de lucru "pas cu pas", cnd se genereaz o ntrerupere dup fiecare
instruc iune, dac fanionul T1 execu ia unei instruc iuni de ntrerupere
software (INT n, unde n= 0,1,....255)
execu ia unei instruc iuni de introducere a unui punct de ntrerupere n
program (INT, o instruc iune de un octet)
ntrerupere nemascabil, care se genereaz de frontul pozitiv al semnalului

aplicat pe intrarea NMI


ntrerupere mascabil, produs de nivelul logic "1" pe intrarea INTR, dac
ntreruperile sunt validate prin fanionul 11
Primele cinci clase de ntrerupere sunt interne, iar celelalte externe. Fiecrei
ntreruperi i se asociaz un vector de ntrerupere numit ip, care serve te la
determinarea adresei la care ncepe rutina de servire a ntreruperii respective.
La o instruc iune de ntrerupere soft tipul se d n instruc iune, iar la
ntreruperile mascabile se indic de periferic prin octetul plasat pe liniile inferioare ale
magistralei de date. Celelalte clase de ntreruperi au tipul predefinit.
In total sunt alocate 256 de tipuri pentru ntreruperi, crora le pot corespunde
tot attea rutine de tratare. dresele de nceput ale acestor rutine se ncarc ntr-un
tabel de indicatori de adres (po/r?fer-i)7n~cire_iecrunip de ntrerupere i
corespund^dou cTjyifvtg-^e^iares de cte 16 bi i (figura V.11). cestea semnific
adresa logic a rutinei de servire, astfel nct cuvntul de la adresa superioar
reprezint adresa de baz a segmentului, iar cuvntul de la adresa inferioar
offset-ul. Tabelul se afl amplasat n primul Koctet de memorie (Q0000H-?-003FFH).
Se observicpimeie-dnc tipuri sunt utilizate dehumite clase de ntrerupere.
(Observa ie: n documenta ia 8086 pointer-ii se numesc vectori de ntrerupere.)
Prioritatea ntre ntreruperi este dat n principiu de valoarea mai mic a
tipului, cele prin instruc iuni de ntrerupere i cele mascabile fiind cele mai pu in
prioritare. O rutin de servire aflat in execu ie va putea fi ntrerupt numai de o
cerere de ntrerupere cu nivel de prioritate mai mare.
Dup acceptarea ntreruperii, microprocesorul va ncrca din tabel de la
indicatorul corespunztor tipului offset-ul n registrul IP i adresa de baz n registrul
CS pentru efectuarea saltului la rutina de servire. Vechiul con inut din CS i IP se
salveaz automat n stiv mpreun cu con inutul registrului de fanioane (cuvntul de
stare PSW), pentru ca la revenire (cu instruc iunea IRET) s se poate restabili
contextul programului din momentul ntreruperii.
n timpul ciclului de achitare a ntreruperii, dup salvrile efectuate, se terg
indicatoarele de control I i T, deci n timpul rutinei de servire se mpiedic
acceptarea unei alte ntreruperi mascabile, iar rutina nu se va putea efectua n regim
"pas cu pas".
n cazul acceptrii unei ntreruperi mascabile, microprocesorul va efectua
dou cicluri de magistral de confirmare a achitrii ntreruperii INTA (Interrupt
Acknowledge) (figura V.12). Cu primul ciclu INTA microprocesorul semnaleaz faptul
c cererea de ntrerupere a fost acceptat, iar al doilea ciclu serve te pentru citirea
vectorului tip.

Figura V.11. Sistemul de ntreruperi al microprocesorului 8086

Figura V.12. Diagramele semnalelor microprocesorului 8086

ntr-un ciclu de ntrerupere

V.3.3. Sincronizarea unui program cu evenimente externe


n vederea sincronizrii execu iei unui program cu un eveniment extern, a
crui producere se semnaleaz ctre microprocesor printr-un semnal de ntrerupere,
se poate efectua oprirea microprocesorului cu o instruc iune HLT. cest lucru este
necesar dac execu ia programului a ajuns ntr-un punct unde

trebuie s a tepte producerea evenimentului extern.


Din starea de oprire microprocesorul este scos de un semnal de ntrerupere i
dup efectuarea rutinei de tratare i va continua activitatea de la instruc iunea
urmtoare. Exist i posibilitatea de a scoate microprocesorul din oprire cu un semnal
de ini ializare (RESET) pentru situa ia cnd evenimentul a teptat nu ma are loc.
La microprocesorul 8086 mai exist pentru sincronizarea cu evenimente
externe i instruc iunea WAIT, care aduce CPU ntr-o stare pasiv de a teptare n
care se execut cicluri inactive Ti. Microprocesorul rmne n stare de a teptare pn
la activarea intrrii TEST. n timpul strii de a teptare declan ate, de instruc iunea
WAIT, microprocesorul poate accepta ntreruperi, dup care i continu a teptarea.
cest mod de sincronizare se folose te n corelarea activit ii cu un coprocesor.
V.3.4. ntreruperi multiple
ntreruperile multiple apar n microsistemele cu mai multe surse externe de
ntrerupere. n acest caz se pune pe de o parte problema identificrii dispozitivului
care a generat ntreruperea, iar pe de alt parte necesitatea stabilirii ordinii de
prioritate n cazul ntreruperilor generate simultan de mai multe dispozitive. n
contextul priorit ilor, se mai folose te termenul de nivel de ntrerupere pentru o
cerere de ntrerupere.
Solu ia cea mai simpl ar consta n existen a cte unei intrri de ntrerupere la
microprocesor pentru fiecare periferic, prioritatea ntre ele fiind dat prin construc ia
CPU. Un exemplu n acest sens este microprocesorul 8085, la care exist cinci intrri
de ntrerupere
De regul exist ns o singur intrare de ntrerupere mascabil, la care se
conecteaz liniile de ntrerupere ale tuturor perifericelor printr-o poart de tip SU.
Pentru identificarea perifericului care a generat ntreruperea exist dou
metode:
metoda interogrii (polling)
metoda vectorizrii (vectoring)
a) Metoda interogrii
Pe baza recep ionrii semnalului de ntrerupere, microprocesorul trece la
execu ia unei rutine de servire n care testeaz pe rnd fiecare periferic pentru a afla
care a dat ntreruperea. Dup determinarea perifericului, va trece la execu ia unui
subprogram de tratare corespunztor perifericului respectiv. Ordinea de prioritate
este dat de ordinea de testare din rutina de servire.
Metoda este simpl, dar prezint dezavantajul timpului mare de rspuns, dat
de timpul consumat de programul care realizeaz interogarea pe rnd a surselor de
ntrerupere.
a cum s-a prezentat la V.2.2, este posibil i reunirea fanioanelor de
ntrerupere ntr-un singur port. Acest procedeu s-a aplicat i pe schema de principiu
din figura V. 13.

re se
>SAU.
i dou

Figura V.13. Schema de principiu a tratrii ntreruperilor

multiple prin metoda interogrii

ntreruperile (INTVINTy) sunt memorate ntr-un registru al cererilor de


ntrerupere. Poate exista i posibilitatea de mascare selectiv a unor niveluri de
ntrerupere pentru a face sistemul mai flexibil, cuvntul masc fiind nscris ntr-un
registru port de ie ire. n urma recep ionrii semnalului de ntrerupere, CPU trece la
citirea portului corespunztor strii ntreruperilor, determin prin program intrarea
activ cea mai prioritar i trece la subrutina specific acesteia. n subrutin are loc
achitarea ntreruperii, prin aducerea la "0" a bistabilului corespunztor din registrul
cererilor (cu o instruc iune OUT la portul de achitare).
Se observ c metoda nu utilizeaz semnalul INT i nu se genereaz vector
de ntrerupere.
b) Metoda vectorizrii
n ciclul de achitare a ntreruperii microprocesorul genereaz semnalul INT,
n urma cruia pe magistrala de date se furnizeaz ctre CPU un vector de
ntrerupere, prin care se identific elementul cel mai prioritar dintre cele care au
generat ntrerupere. cest vector va fi folosit de microprocesor pentru determinarea
adresei de salt la rutina de tratare corespunztoare.
n func ie de modul n care se stabilesc priorit ile, exist dou solu ii de
realizare:
prin arbitrare centralizat (cu codificator de prioritate)
prin arbitrare distribuit (n lan de priorit i)

a) rbitrarea centralizat a priorit ilor


ceast metod se bazeaz pe schema de principiu din figura V.14.

Figura V.14. Schema de principiu a tratrii ntreruperilor

multiple prin metoda vectorizrii cu arbitrare paralel

Cererile de ntrerupere se nscriu n registrul de cereri, existnd posibilitatea


de mascare a unor niveluri. Microprocesorul recep ioneaz semnalul de ntrerupere i
intr n ciclul de achitare n care genereaz semnalul INT. Vectorul de ntrerupere
citit la apari ia impulsului INT reprezint codul nivelului de ntrerupere cu cea mai
mare prioritate dintre cele active i nemascate. cest cod se poate utiliza (n urma
unei decodificri) i la achitarea ntreruperii, prin tergerea bistabilului corespunztor
cu comanda de achitare dat din rutina de tratare. Se poate prevedea i achitarea
automat la sfr itul ciclului, cu semnalul INT ntrziat, reprezentat cu linie
ntrerupt.
O astfel de schem se gse te i sub form integrat ntr-o singur capsul,
circuitul fiind numit controler de ntrerupere. Un exemplu este controlerul de
ntreruperi programabil (PIC - Programmable Interrupt Controller) de tip 8259 al firmei
Intel.
vantajele arbitrrii centralizate sunt rspunsul rapid (pentru cererea cea mai
prioritar) i posibilit ile de extensie, dezavantajul fiind complexitatea din punct de
vedere hard.

P) Arbitrarea descentralizat a priorit ilor


n acest caz, circuitele de interfa sunt conectate ntr-un lan de priorit i

(daisy chain) (figura V.15). Dup recep ionarea semnalului de ntrerupere,


microprocesorul trece n ciclul de achitare. Semnalul de confirmare a ntreruperii
(INT) se propag n lan prin interfa a fiecrui periferic, pn la primul ntlnit care a
emis o cerere de ntrerupere. cesta i va plasa vectorul de ntrerupere pe
magistrala de date, care va fi preluat de CPU.

Figura V.15. Schema de principiu a tratrii ntreruperilor

multiple prin metoda vectorizrii cu arbitrare serial

Figura V.16. Schema de principiu a unei celule din lan ul de priorit i


Prioritatea este dat de ordinea de conectare n lan , l/O-i fiind cel mai prioritar
pentru exemplul din figur.
Schema de principiu a celulei de tratare a priorit ii (figura V.16) trebuie s

permit propagarea lui INT doar pn la perifericul cel mai prioritar dintre cele care
au generat ntrerupere (semnalul "trece" prin toate cele care nu au solicitat
ntrerupere). istabilul n care s-a nscris cererea de ntrerupere va fi ters (cu o
ntrziere At) de impulsul primit pe intrarea IEI (Interrupt Enable In). ntrzierea este
necesar pentru ca ie irea IEO (Interrupt Enable Out) s rmn inhibat i vectorul s
se poat depune pe magistral pn la dezactivarea lui INT. Linia ntrerupt de pe
figur prezint posibilitatea de a putea nscrie n prealabil prin program vectorul de
ntrerupere ntr-un registru.
Pe lng avantajul simplit ii, aceast metod prezint i cteva dezavantaje.
stfel lan ul nu poate fi prea lung datorit cre terii timpului de propagare, ceea ce
duce la limitarea numrului de periferice. De asemenea, datorit conexiunii n serie,
schema are o flexibilitate i fiabilitate sczut.
V.3.5. Controlerul de ntreruperi 8259
Circuitul PIC 8259 gestioneaz pn la 8 cereri de ntrerupere vectorizate,
fiind i conectabil n cascad pentru a controla maxim 64 niveluri de ntrerupere. Este
proiectat pentru compatibilitate cu microprocesorul Intel 8086, fiind conectat la
microprocesor sub forma unui dispozitiv de intrare/ie ire. Schema de principiu a
conectrii circuitului la magistralele microsistemului este prezentat n figura V.17 n
microsistemele cu 8086, pentru ca vectorul de ntrerupere s fie depus pe D0-fD7,
controlerul va fiplasat la adrese pare.

Figura V.17. Principiul conectrii circuitului 8259

la magistralele microsistemului

Se observ c circuitul 8259 ocup dou adrese n spa iul I/O al


microprocesorului: pentru o0 i o1. Pe intrrile IFV-IR7 sosesc cererile de
ntrerupere (Interrupt Request). La programarea circuitului se poate selecta ca intrrile
pentru cererile de ntrerupere s fie active pe front sau pe nivel. Starea liniei SP / EN
(Slave Program/Enable Buffer) are semnifica ii diferite n func ie de modul selectat prin
programarea circuitului, ea reprezentnd:
o intrare cnd nu este programat modul buffer, prin care se indic dac
circuitul va func iona ca master (SP=1) sau slave (SP=0)
o ie ire n modul buffer, care se activeaz (EN0) cnd 8259 trimite date
pe magistral i se poate folosi pentru validarea unui tampon de conectare a
controlerului la magistrala de date
Liniile CAS0, CASi, CAS2 (Cascade Lines) servesc pentru conectarea n
cascad a mai multor controlere de ntrerupere.
Structura intern a circuitului 8259 este prezentat n figura V.18.

Figura V.18. Structura intern a circuitului 8259


ntr-un sistem cu 8086, func ionarea controlerului de ntrerupere este
urmtoarea:
- Cererile rip ntrerupere sosite din exterior se memoreaz n registrul cererilor
de ntrerupere IRR (Interrupt Request Register).

- Dac exist cerere nemascat de ctre con inutul registrujujmasc de


ntrerufice-lMR (Interrupt Mask Register), se emite o cerere de ntrerupere
iNTctre microprocesor.
- La primirea primului impuls INTA emis de microprocesor n ciclul de
ar.hiTam jntreruperii cerecea-oare maLorioritar se nscrie m registrul cererilor
n servire ISR (In-Service Register), pozi ia corespunztoare din IRR fiind
tears.
- n timpul celui de-al doilea impulsINTA , 8259A depune pe magistrala de
date un vector de ntrerupere de 8 bi i.
- itul ntreruperii servite din ISR se terge automat la sfr itul celui de-al
doilea impuls INT dac se lucreaz n mod EOI (Automatic End Of Interrupt),
sau la recep ionarea unei comenzi de achitare EOI (End Of Interrupt), care se
introduce la sfr itul rutinei de tratare a ntreruperii.
Este posibil ca la un moment dat s existe mai mul i bi i activa i n ISR, dac o
ntrerupere de prioritate superioar survine n timpul executrii rutinei de servire a
unei cereri de nivel inferior.
Principiul conectrii n cascad este prezentat n figura V.19. n acest caz.
fiecare circuit 8259A trebuie s urmeze ctejc secven a- de ini ializare proprie niip
ar.r.pptarpa ntreruperii, la primul impuls INTA trimis de microprocesor, circuitul master
trimite un cod de identificare (ID) pe liniile CAS0-2, prin care se identific circuitul
slave cel mai prioritar care a cerut s fie servit. cest circuit, recunoscndu- i codul
va plasa un vector dentrerupere pe magistrala de date. chitarea servirii ur.e;
ntreruperi treauie..execuiat de dou ori cu comanda EOI att pentru
cirjcuiluLroaster, ct si pentru sclavul corespunztor cererii achitate.

Figura V.19. Conectarea n cascad a circuitelor 8259


Programarea circuitului 8259A
Programarea se execut prin dou tipuri de cuvinte de comand, care se
trimit la controler cu instruc iuni OUT (dac se utilizeaz metoda I/O izolate):

1. Cuvnt de comand de ini ializare (ICW - Initialization Command Word)


2. Cuvnt de comand de operare (OCW - Operation Command Word)

Figura V.20. Secven a de ini ializare a circuitului 8259


nainte de utilizarea normal, 8259 trebuie adus Intr-un punct de pornire
printr-o secven de ini ializare (figura V.20), care cuprinde cuvinte de comand de
ini ializare. ceste cuvinte, pentru modul de lucru specific microsistemului cu 8086,
sunt urmtoarele:
ICW1 - fixeaz modul de lucru:
7
5
6
Ao=0
X
X
X

3
LTIM

2
0

1
SNGL

IC4 = 1 este necesar ICW4 (obligatoriu la modul 8086)


0 - nu este necesar ICW4 (toate func iile selectabile prin ICW4 se
consider a fi "0")

0
IC4

SNGL = 1 - singur (Single)


0 - n cascad
LTIM = 1 - ntreruperi active pe nivel (Level Triggered Mode) 0 ntreruperi active pe front
Not: i ii nota i cu X nu se utilizeaz n mod 8086.
ICW2 - con ine vectorul de ntrerupere.
7
5
4
6
AQ=1
T7
T6
T5
T4

3
T3

T3, T4, T5, T6, T7 - bi ii cei mai semnificativi ai vectorului de ntrerupere


(tipului)
Vectorul de ntrerupere se returneaz modificat n func ie de nivelul pe care
s-a generat ntreruperea, astfel:
Nivelul
IR?
IRe
IR5

IR4
IR3
IR2
IR1
IRo

D7
T7
T7
T7
T7
T7
T7
T7
T7

D6
T6
T6
T6
T6
T6
T6
T6
T6

D5

D4

T5
T5
T5
T5
T5
T5
T5
T5

T4
T3
T4
T3
T4
T3
T4
T3
T4
T3
T4 '
/T3
T4 ( T3
T4 ' T3

D3

D2

Di

Do

1
1
1
1
0
0
0
0

1
1
0
0
1
1
0
0

1
0
1
0
1
0
1
0

ICW3 - se utilizeaz la modul n cascad - pentru circuitul master (stpn):


7
5
4
3
6
2
1
0
AQ=
1
S7
S6
S5
S4
S3
S2
S1
SO
SO, S1 ,. .. , S7 = 1 - intrarea IR corespunztoare are un slave
= 0 - intrarea IR corespunztoare nu are un slave
- pentru un circuit slave (sclav):
7
AQ-1
6
0
0
IDO, ID1, ID 2- identificatorul (ID)

2
ID2

1
ID1

0
IDO

Prin identificator se comunic unui circuit slave pe care intrare de ntrerupere


a circuitului master este el conectat, astfel:
Intrarea
0
1
2
3
4
5
6
7
care

ID2
0
0
0
0
1
1
1
1

ID1
0
0
1
1
0
0
1
1

IDO
0
1
0
1
0
1
0
1

ICW4 - con ine informa ii suplimentare privind modul de lucru (introducerea


lui este obligatorie n microsistemele cu 8086):
7
6
5
4
3
2
1
0
Ao=1
SFNM
BUF
M/S
AEOI
pPM
0
0
0
pPM (Microprocessor Mode) = 1 - mod 8086/8088
= 0 - mod 8080/8085
AEOI = 1 - EOI automat (Automatic End of Interrupt), numai pentru master = 0 EOI normal
BUF, M/S (Buffer, Master/Slave) =0 X - mod non buffer
= 1 0 - mod buffer/slave = 1
1 - mod buffer/master
SFNM = 1 - mod special complet ncuibat (Special Fully Nested Mode)
= 0 - mod nespecial
Dup ini ializare, circuitul 8259A va lucra cu priorit i fixe: ntreruperea de pe
intrarea IR0 fiind cea mai prioritar i IR7 cea mai pu in prioritar. Cnd un bit din ISR
iste setat, toate ntreruperile de acela i nivel sau inferioare sunt inhibate, numai cele
de nivel superior vor genera o ntrerupere (care va ntrerupe rutina de tratam n curs
dan -sistemul de ntreruperi al microprocesorului este validat). n acest caz dan
este n curs de servire o ntrerupere sosita ae ia un sclav i se genereaz de acela i
sclav o ntrerupere mai prioritar, aceasta nu va ti luata n considerri. Pentru
eliminarea acestui neajuns se folose te pentru circuitul master modul special complet
ncuibat (cu priorit i fixe), cnd o ntrerupere mai prioritar dec _cea activa, sosit HP
la acela i sclav va oenera o ntrerupere ctre procesor.
Dup secven a de ini ializare, 8259 este gata de lucru. In timpul exploatrii
pot fi selectate diferite regimuri de func ionare cu ajutorul cuvintelor de comand de
operare:

OCW1 - pozi ioneaz bi ii din registrul de mascare:


7
6*
5
4
3
2
Ao=1
M7
M6
M5
M4
M3
M2

1
M1

0
MO

MO, M1 ....... M7 = 1 - mascat


= 0- nemascat
OCW2 - fixeaz modul de tratare a priorit ilor:
6
5
4
3
2
1
SL
EOI
L2
L1
0
0
LO, L1, L2 (Level) - nivelul de ntrerupere tratat (cnd SL1):
Ao=0

7
R

Nivelul
0
1
2
3
4
5
6
7

L2
0
0
0
0
1
1
1
1

L1
0
0
1
1
0
0
1
1

0
L0

L0
0
1
0
1
0
1
0
1

R (Rotate), SL(Specific Level), EOI =00 1 - comanda EOI nespecific


= 0 1 0 - comanda EOIspecific
= 1 0 1 - comanda EOInespecific
cu rotire
= 1 0 0 - rotire n mod EOI 0
0
0 - anulare rotire n mod EOI
= 1 1 1 - comanda EOIspecific cu
rotire
= 1 1 0 - setare nivel de prioritate cel mai
sczut 01 0 - neutilizat
Achitarea unei mtrerupfirLse-Ooate face n mori automat fEOH sau printr-o
comand EOI, dup cum s-a specificat n ICW4. Comanda de achitare EOI se d prin
OCW2 i poafe n de dou feluri:

nespecific, cnd se terge bitul cel mai prioritar din ISR

specific, cnd se terge bitul corespunztor nivelului specificat (prin


L0+L2)

Ordinea de prioritate fix determinat n urma ini ializrii poate fi schimbat


prin rotire dup fiecare achitare sau prin setarea nivelului de prioritate cel mai sczut:
- Dup rotire, nivelul achitat devine cel mai pu in prioritar. ceast posibilitate
de schimbare a ordinii de prioritate se folose te pentru periferice care sunt
considerate de priorit i egale. De exemplu, dac nainte de rotire ordinea de
prioritate, ncepnd cu intrarea cea mai prioritar a fost

atunci n urma achitrii nivelului 3, ordinea de prioritate dup rotire devine:


45670123
- Se poate comanda i setarea nivelului de prioritate cel mai sczut, cnd
toate nivelurile se ordoneaz dup acesta. De exemplu, dac se specific
IR6, ordinea de prioritate va fi:

OCW3 - emite comenzi speciale i pregte te citirea strii:


7
6
5
4
3
2
A0=0
0
ESMM SMM
0
1
P

1
RR

0
RIS

RR (Register React), RIS = 0 X - fr efect


= 1 0 - cite te IRR 1 1 - cite te ISR

(Read IS Register)
P = 1 - interogare (Poll)
= 0 - ntreruperi
ESMM, SMM = 0 X- f r efect
= 1 0 - activare mod special de mascare (Enable Special Mask

Mode)
= 1 1 - dezactivare mod special de mascare
Combina ia bi ilor RR i RIS pregte te comanda de citire a unui registru,
care se face cu urmtorul impuls RD 0 i CS 0.
n modul special de mascare, cuvntul masc transmis prin OCW1 inhib
orice ntreruperi ulterioare de acela i nivel cu cele mascate i valideaz toate
celelalte ntreruperi de prioritate mai mare sau mai mic, care vor putea ntrerupe
orice rutin de tratare a unei ntreruperi (cu condi ia ca sistemul de ntreruperi al
microprocesorului s fie validat).

Controlerul 8259 poate lucra i n regim de interogare {polling), fan


generarea de ntreruperi ctre microprocesor. In acest caz, dialogul se face ;
ini iativa microprocesorului i are dou faze:
- selectarea circuitului 8259A pentru interogare, cu OCW3 n care P1
- execu ia unei instruc iuni de intrare (IN) care activeaz semnalele RD CS
i determin nscrierea cererii cele mai prioritare n ISR i trimiterea unui
octet de stare spre microprocesor, cu urmtorul format:

Modul de lucru prin interogare permite extinderea nivelurilor de ntrerupere la


mai mult de 64.
Citirea strii registrului IRR sau ISR se poate efectua cu o instruc iune ce
intrare (care activeaz RD0 i CS0), dac n prealabil se trimite ctre 8259 c
selec ie a citirii din registru cu OCW3. Con inutul registrului IMR se poate citi fr
OCW3, cu o instruc iune de intrare (RD0 i CS0), cu condi ia Ao=1.
Exemplu
Figura V.21 prezint un exemplu de conectare n cascad a trei circuite
8259, ntr-un microsistem cu 8086. Circuitul din stnga este cel master (SP=1^, iar
celelalte dou au func ia de slave (SP0). Toate circuitele sunt conectate ia liniile
D0^-D7 ale magistralei microsistemului, deci ocup adrese pare (00) ir spa iu! I/O
al microprocesorului (M/IO0). Considernd c se lucreaz n modul cu priorit i fixe,
nivelurile de ntrerupere sunt numerotate n ordine prioritar.
Decodificarea pentru generarea semnalelor de selec ie (n pagina 0 a
spa iului I/O) este incomplet, deoarece nu utilizeaz bi ii 5 i 6. Dac se ia
valoarea 0 pentru ace ti bi i, adresele de selec ie vor fi urmtoarele:
A7

A6

A5

A4

A A2

A1

A0

X
X
X

0
0
0

3
1
1
1

0
0
0

0
0
0

0
0
0

0
0
1

0
1
0

Adres (hexa)
a =0
Ao
Ao=1
80
82
84
86
88
8A

Circuitul
8259A
master
slave 1
slave 2

Figura V.21. Schem de tratare a ntreruperilor cu circuite 8259

V.4. Interfe e paralele tipizate


V.4.1. Transferul paralel de date
Transferul paralel se refer la transmiterea concomitent a tuturor bi ilor unui
cuvnt de date ntre interfa a conectat la microprocesor i echipamentul periferic.
Pentru fiecare bit al cuvntului exist cte o linie de transmisie.
Transferul paralel se poate efectua:
Numai prin semnale de date, cnd nu exist sincronizare ntre microsistem
i periferic asupra momentelor cnd datele sunt valide. De aceea, ele trebuie
pstrate la ie irile portului de ie ire, respectiv trebuie s fie permanent
corecte la intrrile portului de intrare.
Prin semnale de date nso ite de sempale de comand, care servesc
pentru sincronizarea sursei si receptoruluTde date pe baza unuTprotocol de
transfer. Protocolul este un grup de reguli care trebuie respectate pentru ca
schimbul de informa ii s fie efectuat corect.
n continuare se trateaz numai a doua situa ie, care este mai complex. n
acest caz, pe baza unui protocol (la nivel electric) are loc un dialog de semnale ntre
emi tor i receptor pentru ini ierea i realizarea unui transfer de date. Protocolul
este de obicei asincron (nu exist tact comun) i se realizeaz cu confirmare: la
semnalul emis de elementul care ini iaz transferul, cellalt element

rspunde printr-o confirmare a execu iei transferului ( strngere de mn' -

handshaking).

Ini ierea transferului se poate face fie de emi tor (E), fie de receptor(R) *
cazul n care transferul este ini iat de emi tor (figura V.22.a), semnalul READ* (gata)
semnific c exist date disponibile, iar n cazul n care transferul este im de
receptor (figura V.22.b), el semnific c receptorul este gata s primeasc date.
chitarea prelurii, respectiv confirmarea transmiterii datelor cerute, se face cu
semnalul ACK (Acknowledge).

Figura V.22, Principiul transferului paralel de date cnd :Q j ini iativa apar ine
emi torului (a), respectiv receptorului (b)
Se observ c protocolul se desf oar identic n cele dou situa ii. Faptu c
semnalele sunt active pe nivel logic "1", poate duce ns la o func ionare eronat. Un
astfel de exemplu este artat n figura V.23 (pentru cazul cne emi torul are
ini iativa), la care datele D2 se pierd, deoarece semnalul READY a fost dezactivat
fr s se fi confirmat preluarea lor.

Figura V.23. O situa ie de pierdere a datelor

la protocolul prin confirmare


Pentru a elimina acest neajuns, semnalele de dialog se consider a fi active
nu pe nivel logic, ci pe front. Se prezint n continuare ac iunile care au loc, ntr-un
caz general, la nivelul celor dou interfe e (al microsistemului i al perifericului, care
poate fi considerat i el ca un microsistem) implicate ntr-un transfer de date.

Figura V.24. Transferul datelor ntre dou interfe e paralele

cnd emi torul are ini iativa

a) Emi torul are ini iativa


Schema de principiu este prezentat n figura V.24. Pentru a n elege modul n
care se realizeaz transferul datelor, sunt necesare cteva precizri legate de
schem:
1. RE reprezint registrul port de ie ire, iar Rl registrul port de intrare din
interfa a paralel a microsistemului emi tor, respectiv a microsistemului
receptor.
2. CERDT i PLIN sunt fanioane care pot fi testate prin interogare sau pot
genera ntreruperi ctre CPU ai emi torului, respectiv al receptorului, avnd
urmtoarele semnifica ii:
CERDT indic faptul c se poate ini ia o nou transmitere de date
("cerere de date").
(
PLIN arat c registrul port de intrare este plin, deci datele pot fi
preluate.

3. La nivelul interfe elor protocolul este nfptuit de cte un automat de


comand, care parcurge o anumit secven de stri finite pentru
generarea condi ionat a semnalelor de control.
4. Semnalul READY poate fi folosit pentru nscrierea datelor n Rl pe frontul
pozitiv.
Cuvntul de transmis se nscrie n RE printr-o instruc iune OUT (avnd ca
efect WR 0) de ctre microprocesorul de la emisie. Ca urmare automatul de la
emisie activeaz pe READY, cu care se nscriu datele n Rl. cest lucru fiind sesizat
de automatul de la recep ie, acesta pozi ioneaz pe "1" fanionul PLIN
Microprocesorul de la recep ie este informat c au sosit date i la va prelua cu o
instruc iune IN (care duce la RD = 0). Datele fiind preluate, automatul de la recep ie
dezactiveaz semnalul CK. utomatul de la emisie va putea n continuare cere un
nou cuvnt de date n vederea transmisiei, prin activarea fanionului CERDT. Dup
aceasta toat procedura se repet pentru urmtoru cuvnt.
b) Receptorul are ini iativa
Schema de principiu este dat n figura V.25. Nota iile folosite sunt acelea
ca n cazul precedent, fiind necesar o singur explica ie: INIT este semnalul de
ini iere a dialogului, dar ntruct dup preluarea unui cuvnt se poate ncepe ur nou
transfer, chiar semnalul FTD poate fi folosit pentru ini ierea acestuia (lucru
reprezentat cu linie ntrerupt).
Disponibilitatea receptorului de a primi date (REDY1) este sesizat de
automatul de la emisie, care va activa fanionul CERDAT. Ca urmare,
microprocesorul de la emisie va nscrie (WR 0) un cuvnt n RE. Fiind date valide
pe liniile de transmisie, automatul de la emisie d un impuls de confirmare CK, care
sen/e te i la nscrierea datelor n Rl. utomatul de la recep ie va activa fanionul
PLIN ctre microprocesorul de la recep ie, care va prelua (RD 0; cuvntul sosit.

De pe diagramele de timp corespunztoare celor dou cazuri, se remarc


faptul c dup nceperea dialogului nu exist o deosebire esen ial ntre modul de
desf urare a ac iunilor pentru transferul unui cuvnt de date n cele dou situa ii.
Pentru efectuarea transferului paralel ntre microsistem i periferice s-au
realizat circuite integrate de interfa paralel tipizate, care fac parte din familia de
componente a unui anumit tip de microprocesor. Ca exemplu se men ioneaz
circuitul 8255 pentru microprocesoarele Intel. Este un circuit programabil, ceea ce
permite selectarea diferitelor regimuri de lucru. Pe lng posibilitatea transferului paralel de
date fr semnale de comand asociate, permite i modul de transfer asincron cu
confirmare. Principiile sunt cele descrise, difer doar denumirile semnalelor i
eventual nivelurile logice sau fronturile pe care sunt active.
Datorit capacit ii liniilor, transferul paralel se poate aplica la distan e de
maxim 2 m, iar cu amplificare la 10-^20 m.

Figura V.25. Transferul datelor ntre dou interfe e paralele

cnd receptorul are ini iativa

V.4.2. Circuitul 8255A


Este un circuit de interfa paralel programabil (PPI - Programmable
Peripheral Interface), destinat pentru microsisteme cTTmicroprocesoare din familia
Intel. Con ine trei porturi paralele independente (, , C) de cte 8 bi i. Cele 24 linii
de intrare/ie ire pot fi programate n dou grupuri de cte 12 linii i utilizate n trei
moduri de lucru:
Modul 0: fiecare port al fiecrui grup poate fi programat n regim de intrare
sau ie ire.
Modul 1: fiecare grup poate avea cte 8 linii de intrare sau ie ire (,
respectiv ), nso ite de cte 3 semnale din portul C pentru transferul prin
confirmare.
Modul 2: transfer bidirec ional pe octet (portul ), comandat cu 5 semnale
al portului C (unul mprumutat din al doilea grup).
Indiferent de modul de lucru, bi ii portului C pot fi oricnd seta i/reseta i individual
prin comenzi separate.

Figura V.26. Structura intern a circuitului 8255A


Schema bloc a circuitului este prezentat n figura V.26.
Liniile o i ^ servesc pentru selec ia unuia din cele trei porturi i s registrului n
care se nscrie cuvntul de comand:

Ai

Selec ie

Ao

Port A

Port B

1
1

0
1

Port C
Registru de comand

Registrele de date ale porturilor sunt bidirec ionale din punct de vedere ai CPU,
dar n registrul de comand microprocesorul poate efectua numai scriere.
Cuvntul de comand care se nscrie In registrul de comand cu o instruc iune OUT
poate avea formatele:
pentru definirea modului de func ionare:
D7
D6
D5
D4
D3
D2
DI
Do
1

Grup A
D6, D5 = 0 0 - mod 0 = 0 1
- mod 1 = 1 X mod 2
Port A: D4 = 0 - ie ire 1 intrare
Port C (superior): D3 = 0 - ie ire 1 intrare
Grup B
D2 = 0 - mod 0 = 1
- mod 1
Port B: Di = 0 - ie ire 1 intrare
Port C (inferior): D0 = 0 - ie ire 1 intrare
pentru regimul set/reset pe bit (numai la portul C):

Do = 0 - set = 1 - reset
n modurile 1 i 2 se pot utiliza linii ale portului C pentru a genera ntreruperi
ctre CPU. Cererile pot fi validate/invalidate n func ie de starea a dou bistabile interne
numite INTE (Interrupt Enable), care se controleaz cu comenzi de set/reset pe anumi i
bi i specifica i la descrierile acestor moduri de lucru.
Modul 0 (intrare/ie ire de baz)
Oricare din porturile , , i C (acesta din urm separat pe partea superioar,
respectiv inferioar) poate fi programat ca intrare sau ie ire (figura V.27). Datele sunt
nscrise/citite n/din portul specificat, din ini iativa CPU, fr utilizarea de semnale de
dialog.

Figura V.27. Porturile circuitului 8255 n modul 0 Modul


1 (intrare/ie ire strobat)
cest mod utilizeaz porturile i pentru transferul datelor n conjunc ie cu
semnale de comand pe liniile portului C. Exemple de configurare sunt date n figura
V.28.
Liniile portului C utilizate ca semnale de dialog au semnifica iile stabilite n
func ie de regimul de intrare sau ie ire ales pentru un anumit port. Liniile rmase libere
din C pot fi folosite n regim de lucru pe bit. Semnalele de dialog sunt urmtoarele:
a) Pentru portul utilizat ca intrare ( i care are ini iativa), semnalele de dialog sunt
definite astfel:
IBF (Input Buffer Full) - registrul de intrare este plin, deci nu se solicit date noi
de la periferic (echivalent cu inversul lui READY de la cazul general, adic
interfa a nu este gata de transfer).
STB (Strobe) - semnal de e antionare pentru nscrierea datelor n registrul de
intrare (echivalent cu ACK ).
Dup nscrierea datelor se poate genera o ntrerupere spre microprocesor pe
linia INTR (Interrupt Request) pentru a prelua data din port, dac bistabilul corespunztor
portului este pe "1". istabilele de validare ale ntreruperilor INTE A i INTEB se
controleaz (n regim set/reset pe bit) cu bitul PC4, respectiv PC2.

Figura V.28. Exemple de configurare a porturilor

circuitului 8255 n modul 1

b) Pentru portul utilizat ca ie ire ( i care are ini iativa), semnalele de dialog
jcizate sunt:

Controlul bistabilelor INTEA i INTEB se face cu bitul PC6, respectiv PC2.


Modul 2 (intrare/ie ire bidirec ional strobat)
Se utilizeaz numai portul ca port bidirec ional pe octet, pentru semnalele ce
comand fiind folosite 5 linii ale portului C (figura V.29). cest mod este nevzut pentru
a realiza comunicarea cu un periferic pe o singur magistral de 8 I at n ambele
sensuri.
Semnalele de dialog se genereaz identic cu modul 1. istabilele de atare a
ntreruperilor se numesc n acest caz INTE1 la transferul de ie ire i KTE2 la intrare,
fiind controlate cu bitul PC6, respectiv PC4.
n modurile 1 i 2 starea liniilor portului C poarte fi oricnd citit cu o ,
rstruc iune IN.

Figura V.29. Utilizarea portului a circuitului 8255 n modul 2


Comanda de ini ializare (RESET) determin tergerea registrelor interne
porturile fiind configurate ca intrri.
Exemplu
n figura V.30 se prezint o interfa cu dou circuite 8255 ntr-cr
microsistem cu 8086. Utilizarea a dou decodificatoare 8205 (unul pentru adrese
pare, cellalt pentru adrese impare) permite extinderea u oar a schemei la 'r
circuite 8255, a a cum se arat cu linie ntrerupt.
dresele de selec ie ale porturilor pentru cele dou circuite sunt:

Figura V.30. Exemplu de interfa paralel cu dou circuite 8255


Secven a de program care configureaz porturile i ca intrri, iar portul C ca
ie ire n modul 0 pentru circuitul nr.1 este de forma:

S-a mai trecut o instruc iune de citire n registrul AL a octetului de la portul A al


circuitului nr.1.

V.5. Interfe e seriale


V.5.1 Comunica ia serial
O transmisie mai economicoas sub aspectul numrului de linii se poate realiza
prin transferul serial al datelor. n acest caz cuvntul binar se transmite bit
Frecven a celor dou generatoare de tact (GT), de la transmisie i recep ie,
trebuie s fie aceea i, pentru a asigura corectitudinea e antionrii bi ilor transmi i
succesiv. ducerea la sincronism a generatorului de tact de la recep ie cu cel de la

transmisie se face prin adugarea unei informa ii de cadrare la datele utile. Dup felul n
care se realizeaz acest lucru, transmisia serial se poate efectua n mod sincron sau
asincron.
a) La transmisia asincron datele se transmit caracter dup caracter, astfel nct
intervalul de timp dintre ele nu este, precizat. Ca urmare, transmisia unui caracter se poate
face n orice moment.
PentaTi fi recunoscut la recep ie, un caracter este delimitat de bi i de STRT i
STOP, de aceea metoda se mai nume te transmisie de tip STRT/STOP. ntre dou
caractere succesive linia se afl n stare de repaus ("1") iar semnul de STRT este
reprezentat de trecerea pe "0" a liniei pe durata unei perioade a tactului de emisie (figura
V.32). Durata semnului de STOP poate fi de 1T, 1,5T sau 2T (unde T reprezint perioada
tactului), adic pot fi utiliza i 1, 1,5 sau 2 bi i de STOP.

Figura V.32. Structura datelor la transmisia serial asincron


Dup STOP poate ncepe transmisia unui nou caracter, sau linia poate rmne n
repaus (figura V.33).

Figura V.33. Transmisia serial a unui ir de caractere

prin metoda asincron

Sta iile de emisie i recep ie trebuie s fie sincronizate n intervalul dintre semnele
de STRT i STOP. Receptorul cunoa te frecven a de transmisie, iar dup detectarea
frontului 1->0 al bitului de START va porni baza de timp local decalat cu T/2 fa de
acest front, care va e antiona semnalul primit la jumtatea fiecrei perioade.
Lungimea unui caracter depinde de codul utilizat pentru transmisie: 5 bi i la codul
audot, 7 bi i la SCII i 8 la ECDIC. La codul SCII se adaug de regul
al 8-lea bit pentru controlul de paritate, pentru ca la recep ie cuvntul s fie verificat n scopul
detectrii unei eventuale erori de transmisie.
vantajul transmisiei asincrone const n simplitatea sa i n faptul c abaterile de
frecven nu au timp s se cumuleze. Dezavantajul metodei este viteza relativ mic de
transmisie, datorit necesit ii bi ilor de cadrare pentru fiecare caracter.
b) La transmisia sincron datele se transmit sub form de blocuri n care nmintpip
rip date (rig ordinul 100-^10000 octe i) se succed fr ntrerupere. NL sunt necesari bi i de
STRT i STOP, informa ia de cadrare fiind ata at blocului de date. cest bloc ncepe cu
1 sau 2 caractere de sincronizare (figura V.34), care secietecteaz la recep ie i servesc

pentru sincronizarea tactului de la recep ie cu cel de la emisie (de exemplu prin bucle de
calare pe faz PLL - Phase Locked Loop).

Figura V.34. Structura datelor la transmisia serial

sincron

Pentru asigurarea sincronismului la recep ie, n irul de date se pot insera


caractere de sincronizare (SYNC) la intervale de 1-H2 secunde. n vederea detectrii (sau
chiar corectrii, n anumite situa ii) a erorilor la recep ie, se ata eaz n general un
caracter de control prin redundant ciclic (CRC - Cyclic Redundancy Check). Acesta face
verificarea pe baz de resturi n urma mpr irii polinomului aferent informa iei primite cu
un polinom generator.
Modul de dispunere a cmpurilor ntr-un bloc este specific protocolului de
comunica ie folosit (Data Link Control). Protocolul de comunica ie este setul de reguli (la
nivel logic) utilizat n sistemele de transmisie a datelor pentru ini ierea efectuarea unei
transmisii de date. Protocoalele pot fi:
Orientate pe caracter (BCP - Byte Control Protocol), ca de exemplu BISYNC
elaborat de firma IM (figura V.35). Cmpul de comand este un antet (header) cu
informa ii despre datele transmise, iar STX indic nceputul textului (Start Text) i
ETX indic sfr itul textului (End of Text).

SYNC SYNC Cmp comand STX Date

....

Date ETX

Cmp detectare eroare

Figura V.35. Structura datelor la un protocol orientat pe caracter


Orientate pe bit (BOP - Bit Oriented Protocol), cu formatul din figura V.36. Exemple
sunt protocoalele SDLC (Synchronous Data Link Control) al lui IM i HDLC (High
Level Data Link Control) adoptat de ISO. Cmpul de informa ie con ine n x 8 bi i la
SDLC i oric i la HDLC.
Delimitator

Cmp comand

Informa ie

Cmp CRC

Delimitator

Figura V.36. Structura datelor la un protocol orientat pe bit


Transmisia sincron asigur o vitez de transfer mai mare dect cea
asincron, dar necesit echipamente mai complexe, fiind deci mai costisitoare.
a cum s-a artat mai sus, n mod sincron se poate lucra cu control prin
redundan ciclic (CRC). Un cod ciclic se caracterizeaz prin faptul c dac (C -i
Cn_2 Ci Co) este un cuvnt de cod, atunci rezult c (Co C n - i. .. C2 Ci) este
tot un cuvnt de cod. Cuvntului de cod (C _i C-2 . . . Ci Co) i se asociaz
polinomul:

unde C, e {0, 1}. Opera iile de adunare se efectueaz modulo 2.

Problema este de a transforma o secven de bi i utili (de transmis) ntr-un


cuvnt de cod ciclic i de a efectua la recep ie verificarea dac s-a recep ionat
ntr-adevr un astfel de cuvnt de cod sau nu. ceste opera ii se rezolv cu ajutorul
unui polinom generator G(x), care trebuie s fie acela i att la emisie ct i la
recep ie. Exemple de polinoame generatoare des utilizate sunt:

La emisie, o secven de t bi i utiii reprezenta i prin poiinomul U(x) de gradul


f-1 se transform ntr-un cuvnt de cod C(x) de grad n-1 prin mpr ire modulo 2 la
polinomul generator G(x) de grad k=n-t\

Polinomul asociat codului este divizibil cu G(x) i se poate exprima pe baza


rela iei precedente ca:

Interpretarea expresiei este c, R(x) fiind restul de grad /c-1, la cei t bi i utili
se adaug k bi i redundan i pentru control CRC.
La recep ie, se verific condi ia de divizibilitate a lui C(x) cu G(x), care nu se
va respecta dac se recep ioneaz un cuvnt eronat, i anume:
unde E(x) este polinomul de eroare. Evident, dac E(x) este divizibil cu G(x),
eroarea nu se poate pune n eviden . Numrul maxim de erori care se pot detecta
( i corecta n unele cazuri) depinde de expresia polinomului G(x).

Figura V.37. Metode de modula ie


Datorit parametrilor electrici ai liniei (R, C) transmisia pe niveluri oe
tensiune se poate aplica numai la distan e mici (aproximativ 2 m, iar cu folosirea
amplificatoarelor la maxim 10+20 m). Utiliznd transmisia n curent (de exemtw. 40
m pentru "1", lips de curent pentru "0"), care este mai pu in sensibil i a
perturba ii, se pot ob ine la vitez mic de transmisie 3+4 km.
n comunica ia de date la distan , semnalele digitale se transmit sub form:
analogic, prin modularea unei unde purttoare (figura V.37). Modula ia poate s
amplitudine. n frecven (FSK - Frequency Shift Keying) sau jn faz. Modulata l
demodula ia se realizeaz. Jn_ echipamente de modulare-demodulare numire
modem uri.
Figura V.38 prezint structura unui sistem de comunica ie de dare
Microsistemul i interfa a serial formeaz echipamentul terminal de date (DTE Data Terminal Equipment). Modemul se mai nume te echipament de comunicate de
date (DCE - Data Communication Equipment). Linia de comunica ie poate f
reprezentat prin cablu, linie telefonic, fibr optic, gam de frecven e rdic Dup
sensul de transmisie pe line, aceasta poate fi de tip:
simplex, care permite transmisia pe o singur linie, ntr-un singur sens
semi-duplex. care transmite pe o singur linie, alternativ n ambele
sensuri
duplex, care folose te dou linii, simultan n ambele sensuri

Viteza de transmisie se poate exprima n dou moduri:


La nivelul interfe ei seriale prin debitul binar, adic numrul de bi i
transmi i pe secund:

unde T este durata unui bit.


Observa ie: La transmisia asincron formula nu este exact, deoarece nu
ine cont de pauzele dintre caractere.
Lajivelul liniei de comunicatie-Priaviteza de modula ie, adiQgLnjjmrul maxim de
stri elementare ale liniei pe secund:

unde A reprezint durata minim a unei stri a liniei.


^
Observa ie: O stare a liniei poate con ine informa ii pentru mai mul i bi i. p bi i
pot fi reprezenta i pe 2p = q stri elementare distincte De exemplu, dac
modula ia utilizeaz patru frecven e (deci linia are patru stri elementare),
fiecare stare va reprezenta informa ie pentru doi bi i:
Rela ia dintre cele dou mrimi este:
Dac q 2 (adic modemul are dou stri), atunci D Vm.
Vitezele de transmisie asincrone uzuale sunt mici, limitate de performan ele liniei, dar
aceste viteze pot fi mai mari dac se utilizeaz legturi directe (fr
modem) pe distan e scurte. Valorile standardizate utilizate sunt de 1200, 2-IC 4800,
9600, 19200,' .a.m.d. bi i/s.
Legtura ntre interfa a serial i
gtanHardiya rai -3
rspndit standard fiind avizul V24^aTCCfT(Comitetul Consultativ International
pentru Telegrafie i Telefonie), echivalent cu standardul american RSj>32C a EJN
(Electronic Industries Assoc/af/on)rPrincipTeTe~semnale de interfa clint:reT)~ s
DCE care sunt definite de aceste standarde sunt prezentate n figura V 361

Nivelurile logice de semnal utilizate pe aceast interfa sunt de: -3V -r - 5*1 pentru "1"
i +3V -H +15V pentru "0". Pentru asigurarea acestor valori exsA circuite convertoare
de nivel (de exemplu circuitul 1488 din nivel TTL n V2U respectiv 1489 din V24 n
nivel TTL).

Figura V.39. Principalele semnale ale interfe ei RS-232C


V.5.2 Circuitul 8251A
Acesta este un circuit de tip USART (Universal Synchronous/Asynchronoj*
Receiver/Transmitter) destinat comunica iilor seriale de date n microsisteme a,

microprocesoare Intel. Circuitul 8251 este programabil permi nd lucrul n moc


asincron sai i sincron.
Poate lucra n mod duplex: accept date n mod paralel de la CPU, ie
converte te n serie-DePtcu-transmisie iar simultan poate recep iona iruri seriate de
date pe care le converte te n date paralele pentru CPU. Circuitul va semnate unit ii
centrale cnd poate accepta un nou caracter pentru transmisie sau cnd s
recep ionat un caracteTde pe linie.CPU^ poate citfitireaT USART-ului n_once
moment, care con ine inforrnatii~privind eventualele erdrTde transrfisie7paritate
suprapunere (ritm), cadrare. 8251A dispune de semnalele' de comunica ie a
modernuLcu func ii compatibile cu V24 (RS-232C), dar de nivel TL.
Schema bloc a circuituufeste datln figura V.40.

Figura V.40. Structura intern a circuitului 8251


Circuitul 8251A ocup dou adrese n spa iul I/O al microprocesorului: centru
nscrierea cuvintelor de comand sau citirea cuvntului de stare C/D1, iar pentru
scrierea/citirea unui octet de date C/D=0. La scriere este necesar un impuls WR, iar
la citire RD, cu condi ia ca circuitul s fie selectat. Logica de comand necesit
aplicarea unui semnal de tact (CLK). Semnifica iile semnalelor TxRDY, TxEMPTY i
RxREDY sunt urmtoarele:
TxRDY (Transmitter Ready) - transmi tor gata, semnific ctre CPU c
buffer-ul de transmisie este gata s primeasc un nou caracter. ceast
ie ire poate fi folosit pentru generarea unei ntreruperi, iar n cazul metodei
interogrii se utilizeaz bitul corespunztor din cuvntul de stare.
(Observa ie: Semnalul de ie ire este condi ionat i de condi ia CTSTxEN1,
deci nu se va genera ntrerupere fr ca transmisia s fie validat i CTS s
fie "0".)
TxEMPTY (Transmitter Empty) - transmi tor gol, indic faptul c nu mai
exist caractere de transmis. cest semnal se poate folosi pentru a indica
terminarea transmisiei. (Observa ie: n timpul transmiterii unui caracter se
poate deja depune urmtorul n buffer de ctre CPU.)

RKDET n regim asincron, fiind o ie ire care semnaleaz detectarea


caracterului BREAK (adic "0" continuu pe o durat mai mare dect un
caracter).
Programarea circuitului 8251A
Secven a de programare a circuitului 8251 este artat n figura V.41.
Dup un semnal de ini ializare (RESET) circuitul se aduce ntr-o stare inactiv n
care va rmne pn la recep ionarea unui cuvnt de comand.
- n regim asincron. ncadrarea caracterului transmis cu bi i de STRT
STOP se realizeaz automat de ctre USRT, mpreun cu prevederea op ional a
unui bit de paritate.
Cuvntul de mod pentru regimul asincron este:
7
6
5
4
3
2
1
0
S2
S1
EP
PEN
L2
L1
B2
B1
2, 1 determin rata de transmisie (Baud Rate Factor) = 0 1 - 1 x
= 1 0 - 16 x =
1 1 - 64 x
L2, L1 arat lungimea unui caracter (Length) = 0 0-5 bi i
= 0 1-6 bi i
1 0-7 bi i 1
1-8 bi i

Figura V.41. Secven a de programare a circuitului 8251


PEN = 1 - paritate validat (Parity Enable)
= 0 - paritate invalidat
- EP = 1 - paritate par (Even Parity)
= 0 - paritate impar
S2, S1 indic numrul bi ilor de STOP 0 0 - neutilizat
= 0 1 - 1 bit = 1
0 - 1 , 5 bi i 1
1-2 bi i
Rata de transmisie exprim de cte ori tactul aplicat cicuitului este mai mare
dect viteza de transmisie. itul de paritate (dac se utilizeaz) nu intr n numrul
de bi i care definesc lungimea caracterului.
- n regim sincron caracterul (sau caracterele) de sincronizare SYNC se
plaseaz automat la nceputul blocului transmis de ctre USRT (nu se folose re
control CRC pe ntregul bloc).

Cuvntul de mod pentru regimul sincron este:


7
5
4
3
6
2
SSC
ESD
EP
PEN
L2
L1

1
0
0
0
L1, L2, PEN, EP au aceea i semnifica ie ca la modul asincron
ESD = 1 - SYNDET este intrare, folosit pentru detectarea unui SYNC extern

(External SYNC Detect)

= 0 - SYNDET este ie ire

SSC arat numrul caracterelor SYNC utilizate = 1 - un caracter (Single

SYNC Character)

= 0 - dou caractere

Programarea unui caracter de sincronizare se face prin nscrierea acestua n


portul de comand cu o instruc iune de ie ire, conform secven ei oe programare.
Cuvntul de comand (de operare) are formatul urmtor (se specific
semnifica iile bi ilor numai pentru valoarea "1", pentru 0" semnifica ia fiinc
contrar):
7
5
4
3
6
2
1
0
EH
IR
RTS
ER SBRK
RxE
DTR TxEN
TxEN = 1 - validare transmisie (Transmit Enable)
DTR = 1 - terminal pregtit (are ca efect DTR <- 0 ) (Data Terminal Read/: RxE
= 1 - validare recep ie (Receive Enable)
SBRK = 1 - trimite caracterul BREAK (TxD <- 0) (Send Break Character) ER = 1
- comand resetarea fanioanelor de eroare (PE, OE, FE) (Error Reset)
RTS = 1 - cerere de emisie (RTS <- 0) (Request to Send)
IR = 1 - reset intern, se revine la nscrierea cuvntului de mod (Internai Reset)
EH = 1 - determin "cutarea" caracterelor SYNC (folosit numai n regim
sincron) (Enter Hunt)
n regim de "cutare" a caracterelor SYNC, se poate reface sincronizarea
dac a fost pierdut, astfel: dup recep ionarea caracterului (sau caracterelor

SYNC se va pune pe "1" ie irea SYNDET. ceast ie ire se va reseta automat la


citirea cuvntului de stare.
Cuvntul de stare:
7
5
6
DSR SYNDET
FE

4
OE

3
2
1
0
PE TxEMPTY RxRDY TxRDY

TxRDY, RxRDY, TxEMPTY, SYNDET, DSR au aceea i semnifica ie ca pinii


corespunztori.
PE = 1 - indic o eroare de paritate (Parity Error)
OE = 1 - indic o eroare de ritm (Overrun Error)
FE = 1 - indic o eroare de cadrare (Framing Error), numai n regim asincron
La apari ia unei erori nu se inhib func ionarea circuitului 8251, ci se
pozi ioneaz bitul corespunztor din registrul de stare. Eroarea de paritate are loc n
situa ia n care paritatea cuvntului recep ionat nu satisface criteriul de paritate ales
prin cuvntul de mod (paritatea fiind validat). Eroarea de ritm apare dac CPU nu a
preluat caracterul sosit pn la receotionarea urmtorului caracter. Eroarea de
cadrare se produce atunci cnd nu se detecteaz un bit de STOP valid la sfr itul
unui caracter(humai n mod asincron). Resetarea bistabilelor de eroare se face cu
bitul ER din cuvntul de comand.
Terminalele pentru semnalele de interfa cu un modem se controleaz prin
cuvinte de comand (ie irile), respectiv se testeaz prin cuvntul de stare (intrrile).
ceste linii pot fi folosite i ca intrri/ie iri de uz general (cu alte semnifica ii).
Exemplu
n figura V.42 se prezint utilizarea circuitului USRT ntr-o interfa
asincron CCITT-V24 de tip duplex pentru un terminal cu afi are pe tub catodic
(CRT)ntr-un microsistem cu 8086, utiliznd metoda transferului programat.
Pentru conectarea circuitului 8251 la microprocesor (n spa iul I/O), s-a
utilizat o selec ie liniar, adresele pentru porturile de date i de comenzi fiind
urmtoarele:
A7
1
1

A6

A3

A2

A5
X

A4
X

A1
0

A0 Selec ie
0 Port date

Port comenzi

n particular, se poate lua adresa 80H pentru date i 82H pentru comenzi. . Se
remarc utilizarea ca i tact de comand a semnalului PCLK (de frecven mai
mic) furnizat de circuitul 8284.

Figura V.42. Exemplu de utilizare a circuitului 8251A


Circuitele 1488 i 1489 asigur conversia TTU-V24, fiind reprezenta* doar
la nivel de principiu. Semnalul de tact pentru transmisie i recep ie es* acela i,
intrrile corespunztoare fiind legate mpreun la generatorul de tact.
n continuare se prezint o secven de programare a circuitului USRT i
subprogramul CI (Console Input) pentru recep ionarea unui caracter n cod SCi de
la consol n registrul L. cest subprogram realizeaz i transmisia n ecou a
caracterului la consol, folosind subprogramul CO (Console Output). n caz oe eroare
de paritate se afi eaz la consol caracterul @ (cod 40H) i se a teaps introducerea
unui caracter valid. Subprogramul CI se apeleaz la nevoie cn programul principal
(PP), n care se face programarea circuitului 8251- Subprogramele CI i CO
distrug registrul i indicatorii de condi ie.
; program principal

PP:

MOV AL, OFA H


Para.
OUT 82H, AL
MOV AL, 15H
OUT 82H, AL
CALL CI

; mod asincron, 2 bi i STOP, paritate


; 7 bi i/caracter, divizare cu 16 a tactului
; validare recep ie i transmisie
; apel introducere caracter

CI:

IN AL, 82H ; citire stare pn cnd RxRDY-1


TEST AL, 02H JZ CI
TEST AL, 08H
JZ CIT
IN AL, 80H

MOV AL, 15H OUT 82H, AL


MOV AL, 40H
CALL CO
JMP CI
CIT: IN AL, 80H
CALL CO RET
CO: PUSH AX

testare eroare paritate


salt dac nu este eroare
tergere RxRDY
resetare eroare
cod @
scriere la consol
continuare citire pn la caracter corect
citire dat corect
transmitere n ecou
salvare cod
citire stare pn cnd TxRDY 1

IN AL, 82H TEST AL, 01H


JZ CO
POP AX
; refacere cod
; scriere date n port
OUT 80H, AL RET

V.6. Transferul prin acces direct ia memorie (DMA)


V.6.1. Principiul transferului DMA
Transferul prin acces direct la memorie (DMA - Direct Memory Access) const
n realizarea schimbului de date direct ntre interfa a unul echipament periferic i
memoria principal a microsistemului, fr participarea ~i icroprocesorului.
Comanda transferului este asigurat pe cale hardware de o logic din cterfa a
perifericului n cauz, care preia controlul asupra liniilor magistralei de date. stfel
se elimin timpul consumat de CPU cu execu ia programului de .ntrare/ie ire ca n
cazul metodei prin transfer programat sau prin ntreruperi, iar datele nu mai trec prin
microprocesor Metoda se folose te pentru periferice -apide, cu o rat ridicat de
transfer (de ordinul n x 105+106 octe i/s), fiind caracteristic pentru transferul datelor
sub form de blocuri (de exemplu la unit i ce disc, de caset, display).
Logica de comand a transferului DM poate fi implementat sub forma unui
circuit separat specializat, numit controler DMA (DMAC - DMA Controller), conectat la
magistralele microsistemului ca n figura V.43.

Figura V.43. Schema de principiu a transferului DMA


Transferul se ini iaz de periferic, care emite o cerere pentru transferul ur- bloc
de date ctre controler (REQ). Sesiznd acest lucru, DMC lanseaz crr CPU o
cerere pentru accesul la magistralele microsistemului (3USR.Q - Request).
Microprocesorul, dup terminarea ciclului ma in n curs de execu ie, suspend
activitatea, elibereaz magistralele trecnd ie irile respective n stare ce J impedan
ridicat i informeaz despre acest lucru controlerul DM prin activarea semnalului de
confirmare privind cedarea magistralelor (BUSAK - B- Acknowledge). DMAC preia
controlul magistralelor i genereaz semnalele _e comand i adresele pentru
efectuarea transferului. Pentru ndeplinirea acestor opera ii, controlerul trebuie s
con in urmtoarele elemente principale.:
Un registru al adresei de memorie, care se ncarc ini ial cu adresa de nceput
a blocului de date i se incrementeaz dup efectuarea transferuL fiecrui
cuvnt.
O logic de comand pentru generarea semnalelor de comand a
memoriei i a semnalului de selec ie a portului din interfa a dispozitivului
periferic.
Un contor care se ncarc ini ial cu numrul de cuvinte al blocului i se
jdecrementeaz ia fiecare cuvnt transferat.
La terminarea transferului ntregului bloc, DMC pune ie irile sale sp-e
magistrale n stare de impedan ridicat i readuce semnalul USRQ la "Cr cest
lucru duce a reluarea execu iei de ctre microprocesor a programului o punctul unde
a fost suspendat.
Controlerul DMA fiind programabil, registrele sale se ncarc n preaiab prin
program de ctre microprocesor cu informa iile necesare. Dac exist mai
multe periferice conectate la controlerul DM, acesta trebuie s con in i o logic de
arbitrare a priorit ilor.
Din punctul de vedere al microprocesorului, ciclul de cerere-achitare a
magistralei poate fi reprezentat ca n figura V.44.

Figura V.44. Diagramele de timp ntr-un ciclu de

cerere-achitare a magistralei
Semnalele de cerere i achitare a magistralei se regsesc la toate
microprocesoarele, dar au diferite denumiri i polarit i n func ie de tipul acestora. De
exemplu, la 8086 n mod minim cererea se nume te HOLD, iar confirmarea HLDA (Hold

Acknowledge).

n intervalul n care activitatea microprocesorului este suspendat, el nu


rspunde la cereri de ntrerupere.
n afar de aceast metod, care suspend activitatea microprocesorului pe
durata efecturii unui transfer (data break), exist i metoda DMA prin furt de ciclu
(stealing cycle DMA), caz n care pentru transferul DM se utilizeaz ciclurile ma in ale
microprocesorului n care el nu face acces pe magistrale. ceasta este o metod mai
eficient din punct de vedere al CPU, deoarece nu intervine n desf urarea normal a
activit ii acestuia, dar prezint dificult i n realizarea unit ii DM.
V.6.2 Controlerul DMA 8237A
cest circuit este o variant mbunt it a controlerului 8257, ambele fiind
destinate sistemelor cu microprocesoare din familia Intel. Circuitul 8237 ofer o mare
varietate de func ii selectabile prin programare. Caracteristicile sale cele mai
importante sunt:
Con ine 4 canale independente, dar acest numr poate fi extins prin legarea
n cascad a mai multor circuite.
Dimensiunea maxim a unui bloc transferat este de 64 Kocte i.
Viteza maxim de transfer este de 1,6 Mocte i/s, pentru versiunea 8237- 5
de 5 MHz (versiunea standard 8237 lucreaz cu tact de 3 MHZ).

Fiecare canal poate fi programat pentru a se autoini ializa ia condi iile


originale dup transferul unui bloc.
re i posibilitatea de a realiza un transfer direct memorie-memorie.
Transferul DM poate fi ini iat si pe cale soft.
Schema bloc simplificat a circuitului este dat n figura V.45. (Observa ie:
Partea ncadrat cu linie ntrerupt se regse te de patru ori n structure circuitului,
corespunztor celor patru canale.)

Figura V.45. Structura intern a circuitului 8237


Cererile de transfer DMA de la periferice sosesc pe intrarea DREQ, sau pce fi
generate prin nscrierea lor n registrul de cereri pe cale soft. Priorit ile canale!.' pot
fi fixe (cu canalul 0 cel mai prioritar) sau rotitoare (canalul servit devine cel rra pu in
prioritar) i exist posibilitatea mascrii canalelor. Dup acceptarea ure cereri i
preluarea controlului magistralelor, circuitul informeaz perifericul pr- activarea
semnalului DCK (pn n acest moment DREQ trebuie s rmn activ). Cererea
pentru eliberarea magistralei ctre microprocesor se transmite :e linia HRQ ( Hold
Request), care rmne activ pn la terminarea transferului, ar rspunsul se
prime te pe linia HLD [Hold Aknow ledge).
dresa curent de transfer a memoriei se genereaz pe liniile C^A- (octetul
inferior) i D0+DB7 (octetul superior). Pentru a fi disponibil pe magistral de
adrese, octetul de pe linia de date trebuie nscris ntr-un latch extern, ceea ce se
realizeaz cu impulsul DST (Address Strobe). Comenzile de transfer se er - pe
liniile cu trei stri MEMR, MEMW, IOR, IOW , care se conecteaz la magistre a de
control a microsistemului. Pe durata transferului, adresa este prezent D=
magistrala de adrese i semnalul AEN (Address Enable) este "1".
Fiecare ciclu de transfer poate fi prelungit prin introducerea unor stri de
a teptare n func ionarea controlerului de la intrarea READY.
Terminalul EOP (End of Process) este o linie bidirec ional, care:

ca intrare, permite aplicarea unui semnal care determin oprirea transferului


pe canalul curent, iar dac este validat autoini ializarea se reface adresa de
baz i numrul de octe i de baz n registrele curente corespunztoare (cnd
nu se folose te, aceast intrare se leag la VCc printr-o rezisten )
ca ie ire, furnizeaz un impuls (activ pe "0"), care semnific terminarea
transferului, adic situa ia cnd numrtorul de octe i de transferat a ajuns la 0
(TC - Terminal Count)
Pentru nscrierea cuvintejor de comand i a parametrilor de transfer n
registrele controlerului, precum i pentru citirea con inutului registrului de stare, se
folosesc semnalele CS, OR, IOW n combina ie cu liniile de adres AO-A, conform
tabelului urmtor:

Circuitul 8237 ocup 16 adrese n spa iul I/O al microprocesorului


Transmiterea cuvintelor ntre microprocesor i controler se face pe magistrala de
date prin liniile DB0^DB7.
Programarea controlerului se poate face numai dac HLD0. Pentn. acesta,
nainte de programare se invalideaz controlerul sau se mascheaz toate canalele.
Registrul adresei de baz i registrul de cuvinte de baz, de cte 16 bi i,
con in condi iile ini iale ale transferului: adresa de nceput din memorie i lungimea
blocului. ceste valori se nscriu cu comenzile artate n tabel, dar transferul nt'e
microprocesor i controler fiind pe octet, sunt necesare cte dou comenz succesive

pentru ncrcarea fiecrui registru. n func ie de starea unui bistabi intern indicator de
octet, controlerul interpreteaz octetul primit astfel:

dac bistabilul 0, atunci se prime te octetul inferior (bi ii 0-^7)


dac bistabilul 1, atunci se prime te octetul superior (bi ii 8^15)

nainte de nscrierea octetului inferior, bistabilul se terge cu comanac


" tergere bistabil indicator de octet", iar dup efectuarea comenzii ea se
pozi ioneaz automat pe "1", a teptnd nscrierea octetului superior. Concomite-' cu
ncrcarea registrului adresei de baz i registrului de cuvnt de baz , aceste valori
se_ nscriu i n registrul adresei curente i registrul numrului curent ce cuvinte. n
timpul transferului, dup fiecare cuvnt transferat, con inutul registru,, de cuvinte
curente se decrementeaz, iar valoarea adresei curente se incrementeaz sau se
decrementeaz, dup cum s-a selectat prin program.
Citirea con inutului registrului de adres curent i registrului curent Cz
cuvinte se poate face pe octet cu comenzile specificate, interpretarea octetului c::
(inferior sau superior) fiind determinat de starea bistabilului indicator de octet.
Registrul de comand con ine cuvntul de control al func ionrii circuitulu
7
5
4
3
6
2
1
0
D7
D6 D5
D4
D3
D2
Di
Do
Do - 0 - invalidarea transferului memorie-memorie
= 1 - validarea transferului memorie-memorie
D-i (numai dac Do 1) 0 - cu men inerea adresei pe canalul 0 n czui
transferului memorie-memorie = 1 - fr
men inerea adresei pe canalul 0 n caz_ transferului memorie-memorie D2 = 0 activarea controlerului = 1 - dezactivarea controlerului
D3 (numai dac D0 = 0) = 0 - ciclu DMA normal
= 1 - ciclu DMA comprimat
D4 = 0 - priorit i fixe 1 priorit i rotitoare

D5 (numai dac D3 = O') = 0 - \mpu\s de scriere Mraa\


= 1 - impuls de scriere extins
D6 = 0-DREQ activ pe"1"
= 1 - DREQ activ pe "0"
D7 = 0 - DACK activ pe "O"
= 1 - DACK activ pe "1"
n transferul memorie-memorie, canalul O se folose te pentru furnizarea xresei
surs, iar canalul 1 pentru adresa de destina ie i pentru contorul de cuvinte. Pentru
pstrarea datei n timpul transferului memorie-memorie se cose te registrul temporar.
Printr-o programare corespunztoare adresa surs :cate fi men inut constant,
permi nd astfel scrierea aceluia i cuvnt ntr-o zon :e memorie. Transferul
memorie-memorie se ini iaz prin program printr-o cerere IMA soft pe canalul 0.
Registrul de mod al fiecrui canal con ine informa ii referitoare la modul de
efectuare a transferului:
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
Di
Do
D-i, D0 = 0 O-canalul O = 0 1 canalul 1 = 1 O - canalul 2 =
1 1 - canalul 3
D3, D2 (numai dac nu lucreaz n cascad) 0 O - verificare
= 0 1 - transfer de scriere = 1
O - transfer de citire
D4 = O - invalidare autoini ializare 1
- validare autoini ializare
D5 = 0 - cu incrementarea adresei = 1
- cu decrement area adresei
D?, D6 = 0 0 - transfer la cerere = 0
1 - transfer singular = 1 O transfer n bloc 1 1 - lucru
n cascad
Transferul poate fi de tip scriere (de la periferic la memorie) prin activarea
semnalelor MEMW i IOR, sau de tip citire (de la memorie la periferic) prin
activarea semnalelor MEMR i IOW n timpul unui ciclu de transfer. n regim de
verificare, circuitul genereaz adresele de transfer fr activarea semnalelor de I/O.
n timpul transferului DM datele nu trec prin controler, ci numai pe magistrala
de date. Rezult c pentru transferul unui octet este suficient un singu* ciclu n care pe

ie irile de adres se furnizeaz adresa loca iei de memone selectarea portului fiind
fcut cu semnalul DCK corespunztor. Excep ie face transferul memorie-memorie,
care se efectueaz n dou cicluri consecutive.
Modurile de lucru posibile ale controlerului 8237A sunt urmtoarele:
i Transfer singular, cnd la o cerere DREQ se efectueaz transferul unui singur
octet, dup care se cedeaz controlul ctre CPU. cest mod de lucru permite
inserarea cte unui ciclu DM ntre ciclurile ma in ale microprocesorului.
Transfer n bloc, caz n care n urma cererii DREQ se efectueaz transferul
ntregului bloc, pn la apari ia lui TC sau primirea unui impuls EOP.
Transfer la cerere, care se execut pn cnd DREQ este men inut activ
Lucrul n cascad, care permite conectarea altor controlere ia circuitul n
cauz, pentru extinderea numrului de periferice conectate ia sistem (figura
V.46). Circuitul care lucreaz n mod cascad nu emite adrese i semnale de
control.

Figura V.46. Conectarea n cascad a circuitelor

8231A

Registrul de cereri permite ini ierea unui transfer DM pe cale soft, fr


activarea semnalului DREQ. Se men ioneaz c o astfel de cerere soft nu este
mascabil. Formatul cuvntului pentru aceast opera ie este:
7
5
4
3
6
2
1
0
X
X
X
X
X
D2
Di
Do
Di, Dq = 0 0-canalul 0 = 0
1 - canalul 1 = 1 0 canalul 2 = 1 1 -

canalul 3
D2 = 0 - tergerea cererii
= 1 - setarea cererii
Registrul de m ti p ermite mascarea unor canale pentru a deveni inactive la
apari ia unei cereri pe linia DREQ:
7
5
4
3
6
2
,1
0
X
X
X
X
X
D2
Di
Do
Di, D0 = 0 0-canalul 0 = 0
1 - canalul 1 = 1 0 canalul 2 = 1 1 canalul 3
D2 = 0 - tergerea mascrii
= 1 - setarea mascrii
Configura ia de mai sus permite scrierea pe bit, dar^ bi ii registrului de mascare
pot fi comanda i i mpreun:
7
5
4
3
6
2
1
0
X
X
X
X
D3
D2
Di
Do
D0 = 0 - tergerea mascrii canalului 0
= 1 - setarea mascrii canalului 0
Di = 0 - tergerea mascrii canalului 1
= 1 - setarea mascrii canalului 1
D2 = o - tergerea mascrii canalului 2
= 1 - setarea mascrii canalului 2
D3 = 0 - tergerea mascrii canalului 3
= 1 - setarea mascrii canalului 3
ceast posibilitate din urm permite tergerea tuturor bi ilor de mascare cu o
singur comand soft.
Registrul de stare poate fi citit de microprocesor pentru a afla informa ii despre
canalele care au cereri nerezolvate, respectiv care au ncheiat transferul. Biii

cuvntului citit au, pentru valoarea "V, urmtoarele semnificaii'.

D0 = 1 - canalul 0 a ajuns la EOP


Di = 1 - canalul 1 a ajuns la EOP

D2 = 1 - canalul 2 a ajuns la EOP


D3 = 1 - canalul 3 a ajuns la EOP
/

D4 = 1 - cerere pe canalul 0
D5 = 1 - cerere pe canalul 1
D6 = 1 - cerere pe canalul 2
07 = T - cerere pe canalul 3

Ini ializarea circuitului se poate face prin activarea intrrii RESET sau printr- o
comand soft. Efectul const fn ambele cazuri In tergerea registrului de comand, de stare,

de cereri, temporar i a bistabilului indicator de octet; precum i n mascarea tuturor


canalelor.
Exemple

a) Conectarea de principiu a controlerului DM 8237 ntr-un microsistem pe


8 bi i este prezentat n figura V.47. n partea stng a figurii nu sunt reprezentate
direct semnalele de la nivelul microprocesorului, ci de pe magistralele
microsistemului.
Pe linia USEN se realizeaz invalidarea ie irii buffer-elor de magistral ale
microsistemului pe durata transferului DM (cnd EN1). Latch-ul 8282 serve te
pentru pstrarea octetului superior de adres furnizat de controler pe ie irile D0-DB7
odat cu impulsul de e antionare DST. Semnalul EOP nu este utilizat n acest caz,
dar dac se dore te el poate fi folosit ca intrare sau ie ire pentru realizarea func iilor
sale specifice. ntruct pe magistrala de adrese circuitul 8237 va genera numai
adrese de memorie, selec ia portului de intrare/ie ire cu care se efectueaz
transferul trebuie fcut cu semnalul DCK corespunztor, conjugat cu comanda IOR

sau IOW.

Figura V.47. Conectarea n microsistem a circuitului 8237


b) Conectarea de principiu a controlerului 8237 ntr-un microsistem cu 8088
este prezentat n figura V.48. Microprocesorul 8088 este similar cu 8086 avnd o
structur intern pe 16 bi i, dar magistrala extern este de numai 8 bi i. (n consecin
nu se mai pune problema amplasrii resurselor pe dou bancuri corespunztoare
adreselor pare i impare.)
n aceast schem de principiu se consider pentru simplitate c nu sunt
probleme de ncrcare pe magistrala de date i de aceea nu se folosesc tampoane
pentru amplificarea pe aceast magistral. Circuitele latch 8282 servesc pentru
demultiplexarea magistralei comune de adrese i de date, ca la 8086.
Transferul DM se poate executa n interiorul unei pagini, ntruct circuitul
8237 furnizeaz numai un cuvnt de adres pe 0-^15. dresa de pagin se
ncarc n prealabil ntr-un registru al adresei de pagin cu impulsul PGCS activat de o
instruc iune OUT. Validarea ie irilor (de tip trei-stri) ale registrului se face n timpul
transferului DM, cnd EN1. Se observ c condi ia EN1 duce i la invalidarea
circuitelor tampon de conectare a microprocesorului la magistrala microsistemului.
ntr-un microsistem cu 8086 schema este asemntoare, dar trebuie inut cont
de faptul ca octe ii trimi i de microprocesor n registrele de programare s fie dirija i pe
liniile D0-^D7, pe care se conecteaz circuitul DM.

Figura V.48. Conectarea circuitului 8237 ntr-un

microsistem cu procesor 8088

V.7. Circuite de temporizare


V.7.1. Rolul temporizrilor ntr-un microsistem
" Un circuit de temporizare (timer) realizeaz divizarea frecven ei unui semnal etalon,
de exemplu tactul microprocesorului sau frecven a re elei. Circuitul con ine
numrtoare programabile, care se ncarc cu o valoare N i la fiecare impuls primit se
decrementeaz cu 1, iar cnd con inutul ajunge la zero se emite un semnal. Exemple
de circuite de numrare/temporizare sunt 8253 i 8254 n familia Intel.
plica iile cele mai frecvente ale circuitelor de temporizare n microsisteme
sunt:

ceas de timp real


determinarea momentelor de timp pentru msurarea timpului absolut

(astronomic), adic a orei exacte


msurarea intervalului de timp ntre dou evenimente
realizarea temporizrilor pe cale hard
contorizare de impulsuri externe
monostabil
generator de impulsuri

controler pentru procese secven iale

Pentru a introduce no iunea de ceas de timp real se consider un ncrosistem


destinat pentru conducerea unui proces industrial (figura V.49). Sstemul realizeaz
conducerea on-line a procesului, care const n msurarea pa'ametrilor fizici ai
procesului cu ajutorul traductoarelor de msur, prelucrarea [erelor primite conform
algoritmului de conducere i emiterea informa iilor de pmand rezultate ctre
elementele de execu ie, care vor ac iona n sensul dorit [asupra procesului industrial.
Consola serve te pentru asigurarea comunicrii (noeratorului cu procesul, prin
intermediul microsistemului.

Figura V.49. Microsistem pentru conducerea unui proces industrial


Interfa a dintre microsistem i proces (cuplorul de proces) realizeaz
acaptarea ntre semnalele dinspre proces (de natur analogic sau numeric) cu
rforma iile binare cu care poate opera microsistemul. Privit dinspre Microprocesor,
aceast interfa se prezint sub forma unor porturi de rtrare/ie ire.
O astfel de structur pentru un sistem de conducere cu calculatorul este de io
comand numeric direct (DDC - Direct Digital Control), comanda eementelor de
execu ie de ctre microcalculator fiind realizat direct, fr rcermediul unor
regulatoare conven ionale. Evident, cu ct procesul este mai amplex, volumul de
calcule de efectuat este mai mare i viteza de rspuns a
sistemului este mai mic, dar prin prelucrare numeric exist avantajul une precizii mari
de calcul.
Un microsistem de conducere on-line a unui proces industrial trebuie sa lucreze

n timp real, adic s asigure un timp de rspuns suficient de scurt ia datele culese
pentru a nu scpa de sub control procesul aflat n curs de evolu ie care trebuie reglat.
Este necesar men inerea parametrilor procesului n limiteie impuse. Rezult c,
sistemul de conducere trebuie s lucreze ntr-un relativ sincronism fa de procesul
condus.
Microprocesorul execut succesiv cicluri de control n care are loc citirea
intrrilor (I), prelucrarea datelor (P) i generarea ie irilor (O). Declan area acestor
cicluri trebuie fcut la intervale egale, determinat de durata maxim a timpulu de
prelucrare, care corespunde celei mai lungi ramuri posibile de program n func ie de
condi ionrile impuse de datele citite. Pentru marcarea nceputului unu nou ciclu se
utilizeaz un semnal de sincronizare extern, generat pe cale hard intervale egale T.
Semnalul extern va declan a printr-o ntrerupere cte un ciclu de citire-prelucrare-ie ire
n mod periodic, intervalul T fiind numit ninln rte ha7 (figura V.50).

Pe durata a teptrilor pasive (), microprocesorul fiind liber poate executa


prelucrri la nivel de baz, cum ar fi: comunica ia cu consola operator, autoteste etc.
n cazul cel mai defavorabil (TP maxim i intrarea se schimb imediat dup ce a
fost citit) timpul de rspuns al sistemului este
dac se consider tiT. Timpul de rspuns maxim fiind impus de natura procesului
condus, rezult c semnalul de sincronizare trebuie s satisfac condi ia:

Acest semnal este asigurat de ceasul de timp real (real time clock) al sistemului, n care
se implementeaz cu aaut rul unui temp rizat r.
Ca monostabil, un circuit de temporizare poate fi folosit pentru implementarea
unui ceas de gard (watchdog). Acesta este un circuit care ' semnaleaz, dac durat
de desf urare a unei anumila-activitti-a- dep it val are jriavirn proctahiiit
Semnaluljsrnis n aceas _situa ia_va_declan a ntrerupere ctre CPU pentru a sesiza
funcTTnfeaan rmal a elementului bservt lJupFcurn se p ate vedea pe schema de
principiu din figura V.51, dac evenimentul de la intrare nu a disprut pn la revenirea
m n st abilului n starea stabil ("1"), pe ie irea schemei se va genera un semnal de
ntrerupere, ntrzierea At este necesar pentru a c mpensa timpul de c mutare a m n

stabilului i a evita un impuls parazit pe ie ire.

Figura V.51. Principiui de lucru al unui ceas de gard


O alt s lu ie de implementare a unui ceas de gard pentru evenimente peri
dice c nst n f I si rea unui m n stabil redeclan abil, care va sesiza situa ia n care nu
mai s sesc impulsuri pe intrare. stfel se avertizeaz CPU n caz de blocare a unei
activit i din micr sistem. Pentru decian are se p t utiliza semnale care se genereaz
n fiecare ciclu instruc iune, cum ar fi LE la 8086, iar dac m n stabilul nu se mai
declan eaz ci revine n situa ia stabil, se va genera ntrerupere.
V.7.2. Circuitul 8253
cest circuit este un circuit de numrare/temp rizare pr gramabil (PIT -

Programmable Interval Timer), dezv Itat de firma Intel. El c n ine trei numrt are

independente de 16 bi i, a a cum se p ate vedea pe schema bl c din figura V.52.


Din punct de vedere al c nectrii n micr sistem, circuitul 8253 se prezint ca
interfa I/O, fiind tratat de s ft ca arie de p rturi de intrare/ie ire. Selectarea numrt
arel r i a registrului n care se nscriu cuvintele de c mand pentru fiecare numrt r,
se face cu liniile o i i (cu c ndi ia ca circuitul s fie selectat, CS 0), conform
tabelului:

Figura V.52. Structura intern a circuitului 8253

Ao Selec ie
0 Numrtor 0
1 Numrtor 1
0 Numrtor 2

Ai
0
0

Registru cuvnt de comand

Con inutul numrtoarelor poate fi ncrcat prin program, dar poate fi i citit de
microprocesor. n registrul cuvntului de comand se poate realiza numa nscriere.
Fiecare numrtor lucreaz prin decrementare cu 1, sub ac iunea impulsului
aplicat pe intrarea CLK corespunztoare, cu condi ia ca numrarea s fie validat cu
semnalul de poart GTE1. Intrarea de tact CLK este activ pe frontul 1-0 al
semnalului. Pe ie irea OUT se va genera un impuls dac numrtorul a ajuns la 0,
impuls care poate fi folosit pentru generarea une ntreruperi.
Numrtoarele pot Jucra n cod binar sau BCD, con inutul maxim fiinc 65535,
respectiv 9999. ncrcarea lui zero este echivalent cu nceperea numrrii de la 2 16,
respectiv 104
Modul de lucru al fiecrui numrtor poate fi programat independent ct ajutorul
cuvntului de comand:
7
6
5
4
3
2
1
0
SC1
SCO
RL1
RLO
M2
M1
MO
BCD
Semnifica iile bi ilor sunt:
BCD = 0 - numrare n cod binar

1 - numrare n cod BCD


MO, M1, M2 - determin modul de lucru (Mode) n felul urmtor:
M2
0
0
X
X
1

M1 MO
0
0
0
1
1
0
1
1
0
0

Mod de lucru
Mod 0
Mod 1
Mod 2
Mod 3
Mod 4

Mod 5
1
0
1
RLO, RL1 - arat semnifica ia octetului citit/ncrcat (Read/Load):
RL1 RLO
00
10

Citire / ncrcare
Citire / ncrcare octet LS
Citire / ncrcare octet MS

Citire / ncrcare ambii octe i n ordinea LS, MS


11
SCO, SC1 - indic numrtorul selectat (Select Counter):
SC1 SCO
00
01
10

Selec ie numrtor
Numrtor 0
Numrtor 1
Numrtor 2

Prin cuvntul de comand se specific felul n care se va realiza ncrcarea,


respectiv citirea con inutului unui numrtor: numai octetul MS, numai octetul LS,
sau ambii octe i prin dou instruc iuni succesive.
Pentru ca la citire s se citeasc o valoare stabil, neafectat de o eventual
tranzi ie a numrtorului chiar n momentul citirii, valoarea care urmeaz s fie citit se
poate memora ntr-un registru al circuitului printr-un cuvnt de comand nscris n
registrul de comand:

7
SC1

6
SCO

5
0

4
0

3
X

2
X

1
X

0
X

Valoarea "0" a bi ilor 4 i 5 din acest cuvnt arat c este vorba despre
cuvntul de memorare a con inutului numrtorului i nu despre cuvntul de
stabilire a modului de lucru. i ii SCO i SC1 identific numrtorul, ca i la czui
precedent.
Modurile de lucru, selectabile prin program, ale circuitului 8253 sunt
urmtoarele:
Modul 0 - numrtor pn la zero (figura V.53.a). Numrarea ncepe de la
valoarea N nscris n numrtor. Ie irea OUT se activeaz cnd con inutul
numrtorului a devenit nul n urma aplicrii impulsului CLK pe durata cnd
GATE=1.
Modul 1 - monostabil redeclan abil (figura V.53.b). Numrarea ncepe de la
valoarea ini ial de fiecare dat cnd GTE devine "1", iar OUT devine "0" la
primul impuls de numrare dup GTE i se activeaz din nou la terminarea
numrrii.
Modul 2 - generator de impulsuri (figura V.53.C). Ie irea OUT se men ine
"1" pe durata a N--1 impulsuri CLK i devine "0" pe durata celui de al N-lea
impuls i apoi se reia ciclul. Func ionarea corespunde unui numrtor divizor
cu N. Un semnal GTE0 opre te numrarea, iar dup activarea GTE1
numrarea va rencepe de la valoarea ini ial.
Modul 3 - generator de semnale dreptunghiulare (figura V.53.d). Ie irea
OUT rmne pe "1" pn la jumtatea numrrii, iar n cealalt jumtate a
intervalului de numrare este "0".
Modul 4 - monostabil declan at prin program (figura V.53.e). n urma
ncrcrii con inutului, OUT se men ine "1" i devine "0" pe o perioad de tact
dup ultimul din cele N impulsuri. Un impuls GATE=0 va duce la reluarea
numrrii.
Modul 5 - monostabil declan at prin semnal (figura V.53.f). Ie irea OUT
furnizeaz un impuls de o perioad pe "0" dup cel de al N-\ea tact aplicat
dup activarea lui GTE.
N Conectarea la microsistem a circuitului 8253 este foarte simpl i se| bazeaz
pe schema din figura V.54. De regul la intrrile o i i se aduc bi i ae mai pu in
semnificativi de pe magistrala de adrese. (Dac se lucreaz I microprocesor 8086,
atunci circuitul se conecteaz la jumtatea inferioar sat
superioar a magistralei de date, selec ia numrtoarelor fiind realizat cu bi ii 1 i
2.) Semnalul de selec ie circuit (C S) se genereaz din restul bi ilor de adres,

printr-una din metodele cunoscute.

Figura V.53. Func ionarea circuitului 8253 n modul 0 (a), modul 1 (b),

modul 2 (c), modul 3 (d), modul 4 (e) i modul 5 (f)

Figura V.54. Principiul conectrii circuitului 8253 la

magistralele microsistemului

S-ar putea să vă placă și