Documente Academic
Documente Profesional
Documente Cultură
I. Microprocesorul I Logica Programată: Introducere
I. Microprocesorul I Logica Programată: Introducere
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).
calculator
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)
Figura 1.4.
Capsula de tip
DIP
Capsula PGA (Pin Grid Array) are o re ea de terminale i se introduce n
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.
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).
I (Do-15)'
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.
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:
dunnd -25 i 25 reprezentate n cod direct se ob ine codul lui -50, rezultatul
fiind deci incorect:
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:
O alt modalitate de ob inere este cea pe baza rela iei de defini ie, prin
scderea valorii absolute a numrului din 2n\
Dac n urma unei opera ii con inutul acumulatorului este nul (0) se
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):
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).
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:
transport dinspre bitul cel mai semnificativ al tetradei, secven a de instruc iuni fiind:
ADD
DAA
; adunare
; ajustare
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:
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.
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
'
-
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
s2.
III.
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
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).
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.
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.
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):
ie ire:
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:
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
cu por i inversoare
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.
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:
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:
la magistralele microsistemului
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).
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~
~
"
'
circuit PROM
intrare/iesire.
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.
Figura IV.23. Diagramele de timp ale unui circuit de memorie E PROM ntr-un ciclu de citire (a)
i de scriere (b)
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.
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:
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.
firagCgblofTa:
a ii
la citire i scriere
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).
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).
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:
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).
extern.
mapped I/O).
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.
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.
la metoda interogrii
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.
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
re se
>SAU.
i dou
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.
la magistralele microsistemului
3
LTIM
2
0
1
SNGL
0
IC4
3
T3
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
2
ID2
1
ID1
0
IDO
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
1
M1
0
MO
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
1
RR
0
RIS
(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).
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
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.
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.
b) Pentru portul utilizat ca ie ire ( i care are ini iativa), semnalele de dialog
jcizate sunt:
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.
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).
sincron
....
Date ETX
Cmp comand
Informa ie
Cmp CRC
Delimitator
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).
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).
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
SYNC Character)
= 0 - dou caractere
4
OE
3
2
1
0
PE TxEMPTY RxRDY TxRDY
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.
PP:
CI:
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).
pentru ncrcarea fiecrui registru. n func ie de starea unui bistabi intern indicator de
octet, controlerul interpreteaz octetul primit astfel:
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.
8231A
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
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,
sau IOW.
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).
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
Programmable Interval Timer), dezv Itat de firma Intel. El c n ine trei numrt are
Ao Selec ie
0 Numrtor 0
1 Numrtor 1
0 Numrtor 2
Ai
0
0
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
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
Selec ie numrtor
Numrtor 0
Numrtor 1
Numrtor 2
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,
Figura V.53. Func ionarea circuitului 8253 n modul 0 (a), modul 1 (b),
magistralele microsistemului