View
42
Download
0
Category
Preview:
Citation preview
52. Care sunt posibilitile de conectare a porturilor la o UC? Posibiliti de conectare a porturilor la UC: Intrare/ ieire programabil (PIO): transferul se desfoar prin intermediul UC;
folosete intensiv timpul UC; ntreruperi: procesorul este ntrerupt la transferul fiecrui cuvnt (octet); multe
ntreruperi care nu ntotdeauna pot fi acceptate; rat de transfer limitat Accesul direct la memorie (DMA): transfer direct memorie periferic sau
periferic periferic sau memorie memorie (neutilizat pentru c este mai rapid prin UC); nu implic UC dar cere hardware suplimentar conectat pe magistrale; Controler DMA: 8237A
53. Descriei 2 configuraii DMA Configuraii DMA:
Magistral comun, controler DMA separat, Magistral comun, controler DMA integrat, Magistral de intrare/ ieire distinct.
Magistral comun, controler DMA separat:
Fiecare transfer folosete magistrala de 2 ori: Port cu DMA, DMA cu memoria
UC este oprit de 2 ori/ transfer.
Magistral comun, controler DMA integrat:
Controlerul DMA este conectat la mai multe porturi. Fiecare transfer folosete magistrala o singur dat: DMA cu memoria. UC este oprit o singur dat/ transfer.
Procesor Memorie DMA Porturi
Procesor DMA Memorie
Port Port ...
Magistral de intrare/ ieire distinct:
Fiecare transfer folosete magistrala comun o singur dat: DMA cu memoria. UC este oprit o singur dat/ transfer.
54. Comunicarea UC controler DMA - UC iniiaz transferul; - Transmite controlerului DMA (prin programare):
i. Operaia (citire sau scriere), ii. Adresa dispozitivului periferic (portului),
iii. Adresa de nceput a blocului de memorie implicat (poate fi i un singur octet sau cuvnt),
iv. Dimensiunea blocului de transferat. - UC execut alte operaii (instruciuni) care nu necesit datele care se
transfer; - Controlerul DMA se ocup de transferul memorie port sau port
memorie; folosete magistralele comune ca urmare procesorul este oprit la fiecare transfer DMA;
- Controlerul DMA anun ncheierea transferului prin generarea unei cereri de ntrerupere ctre UC;
- Controlerul DMA i UC folosesc complementar magistralele.
55. Comunicarea UC controler DMA periferic - Perifericul cere transfer de tip DMA activnd intrarea DREQ (DMA
Request) a controlerului DMA;
- Controlerul DMA activeaz ieirea sa HRQ spre intrarea HOLD a procesorului anuntndu-l c are nevoie de magistrale;
- Procesorul ncheie ciclul main nceput, i trece magistralele i semnalele de comand n a 3 a stare, respectiv n starea inactiv, i activeaz ieirea HLDA anunnd controlerul DMA c a cedat magistralele; cererea de pe intrarea HOLD trebuie s ramn activ pe toat durata transferului DMA;
- Controlerul DMA activeaz ieirea sa DACK comunicnd perifericului c cererea sa DREQ a fost acceptat i va ncepe transferul;
- Controlerul DMA execut transferurile:
Procesor DMA Memorie
Port Port Port
Magistral de intrare/ ieire
i. Memorie port: pune adresa primului octet (cuvnt) pe magistrala de adrese, actveaz semnalul de comand MEMR i apoi IOW,
ii. Port memorie: activeaz semnalul de comand IOR, pune adresa primului octet (cuvnt) pe magistrala de adrese i apoi MEMW;
- Dup ncheierea transferurilor controlerul DMA dezactiveaz ieirea HRQ anunnd procesorul c nu mai are nevoie de magistrale.
56. Circuitul 82C37A: rol, caracteristici - Dispune de 4 canale independente, - Poate fi cascadat pentru a obine oricte canale, - Control individual (activare/ dezactivare i polaritate) asupra fiecrei
cereri DREQ i fiecrui rspuns DACK, - Permite transfer memorie memorie, - Rat de transfer ridicat:
i. Pn la 4 MO/ sec. cu tact de 8 MHz i ii. Pn la 6.25 MO/ sec. cu tact de 12.5 MHz,
- Asigur incrementarea sau decrementarea adresei, - Se folosete cu un registru extern pentru jumtatea mai semnificativ a
adresei,
- Poate lucra n mai multe moduri, - Compatibil TTL/ CMOS.
57. Descriei 2 tipuri de cicluri active ce pot fi executate de circuitul 82C37A Demand transfer mode:
- Se tranfer date continuu pn cnd: i. TC este setat sau
ii. /EOP este activat sau iii. Cererea DREQ devine inactiv.
- Mod util atunci cnd un periferic dorete s-i goleasc tamponul de date, indiferent de capacitatea acestuia.
Cascade mode:
Permite extinderea numrului de canale prin legarea n cascad a mai multor circuite 82C37A;
Figura urmtoare arat o cascadare pe 2 nivele:
Pot fi ataate noi nivele la intrrile DREQ libere ale circuitelor de pe nivelul 2;
Programarea ncepe cu circuitul cel mai aproape de procesor
58. Cascadarea circuitelor 82C37A: ce nseamn, cum se poate realiza i la ce folosete?
Cascade mode: Permite extinderea numrului de canale prin legarea n cascad a mai
multor circuite 82C37A;
Figura urmtoare arat o cascadare pe 2 nivele:
Pot fi ataate noi nivele la intrrile DREQ libere ale circuitelor de pe
nivelul 2;
Programarea ncepe cu circuitul cel mai aproape de procesor
59. Cum poate stabili circuitul 82C37A prioritatea cererilor de acces DMA? Priority Encoder: rezolv problemele de prioritate n cazul mai multor cereri DMA simultane.
Prioritatea: 2 tipuri selectabile prin software:
- Fix, - Rotativ.
Prioritatea fix: - Dup numrul de ordine, 0 prioritate maxim, 3 prioritate minim; - Dup acceptarea unei cereri de la orice canal, celelalte eventuale cereri vor
trebui s atepte terminarea tratrii cerrii acceptate. Prioritatea rotativ:
- Prioritatea este rotit dup fiecare cedare a magistralelor procesorului; - Previne monopolizarea sistemului de ctre un acelai canal; - Ultimul canal tratat primete prioritate minim, conform figurii:
60. Enumerai cteva tipuri de informaii trimise circuitului 82C37A prin programare
n prealabil canalul a fost programat prin intermediul registrelor Command, Mode,
Address i Word; de ex. pentru un transfer DMA port: Adresa de nceput este ncrcat n Base i Current Address Registers, ale canalului implicat,
Lungimea blocului este ncrcat n Word Count register corespunztor, Mode Register corespunztor este programat pentru un transfer memorie port, Opiuni sunt selectate prin Command Register i Mode Register, Bitul de mascare a canalului este pus la 0 pentru a valida o cerere DREQ; aceasta
poate fi un semnal sau o comand software.
61. ntreruperile: ce nseamn, la ce folosesc i de cte tipuri sunt? Permit abandonarea momentan de ctre microprocesor a execuiei unui program i nceperea execuiei unui alt program situat oriunde n spaiul de memorie. Se folosesc la:
- Comunicarea UC periferie, - n sisteme multiprocesor.
2 tipuri:
- Externe i - Interne.
62. ntreruperile externe Sunt provocate de evenimente externe microprocesorului care cer atenie imediat din partea acestuia.
Cel care cere ntreruperea trebuie s: - in cererea activat pn cnd microprocesorul rspunde, - Se identifice atunci cnd microprocesorul o cere.
ntreruperile externe sunt de 2 tipuri:
- Active pe nivel sau - Active pe front.
ntreruperile externe active pe nivel:
- Pe nivel 0 sau 1; - Cererea trebuie meninut activ pn cnd este luat n seam de
microprocesor;
- Linia trebuie meninut n starea sa inactiv atunci cnd nu este activ vreo cerere;
- Este minimizat riscul lurii n seam a aa numitelor Spurious Interrupts.
ntreruperile externe active pe front:
- Pe front cresctor sau descresctor; - Risc de perdere a unei asemenea cereri dac nu exist vreun mecanism de
memorare;
- Poate fi transformat n o cerere activ pe nivel cu hardware extern (bistabil).
63. Prioritizarea ntreruperilor externe Pot exista cereri simultane din partea mai multor surse => prioritizare:
- Fie cu o logic de prioritizare: i. Serial (daisy chain) sau
ii. Paralel. - Fie cu un PIC. - Prioritizarea poate fi:
i. Fix, ii. Programabil sau
iii. Rotativ. Exist 2 tipuri de ntreruperi externe:
- Mascabile sau - Nemascabile.
ntreruperile externe mascabile:
- Vin din partea periferiei sau altui microprocesor (n sisteme multiprocesor);
- Mascarea se face prin program dezactivnd sistemul de ntreruperi; ntreruperile externe nemascabile:
- Microprocesorul le ia n seam ntotdeauna; - Nu pot fi blocate dect prin hardware extern; - Rezervate pentru situaii catastrofale, de exemplu:
i. O iminent cdere a tensiunii de alimentare, ii. O eroare la memorie.
64. ntreruperile interne Se gsesc la microprocesoarele peste 8 bii i la toate microcontrolerele; Se numesc i excepii la unele microprocesoare; O parte din ele se numesc i traps la unele microprocesoare; Provocate de cauze interne procesorului;
La microcontrolere pot fi mascate, la microprocesoare nu;
2 tipuri de cauze (la microprocesoare):
- Evenimente interne speciale sau - Instruciuni dedicate (se mai numesc i ntreruperi software).
ntreruperi interne provocate de evenimente speciale:
- Pot fi generate nainte de execuia unei instruciuni: de ex.: o violare de privilegiu sau cod ilegal etc.;
- Pot fi generate dup execuia unei instruciuni: de ex.: o divizare la 0, obinerea unui rezultat n afara unui domeniu, pas cu pas etc.
ntreruperi interne datorate instruciunilor: Exist instruciuni ale cror execuie este echivalent cu generarea unei
cereri de ntrerupere; de ex.:
INT nn la familia Intel, TRAP #n la microprocesoarele Motorola.
Pot fi folosite pentru emularea a noi instruciuni.
Pe lng o eventual prioritizare extern, exist i o prioritizare implicit a surselor de nterupere; de ex. la 8086:
Eroare la divizare, INT nn prioritate maxim, INTO, NMI, INTR, Pas cu pas prioritate minim.
65. Cum sunt luate n considerare cererile de ntrerupere? Luarea n considerare a cererilor de ntrerupere:
- Cele interne: atunci cnd apar cauzele care le genereaz; - Cele externe:
i. Microprocesorul se uit la anumite momente de timp pe liniile de ntrerupere; dac cererea nu este activ n acel moment, nu va fi luat n considerare;
ii. Dac cererea este mascabil trebuie ca i sistemul de ntreruperi s fie activat;
iii. Unele microprocesoare verific liniile de ntrerupere doar n ultimul ciclu main al unei instruciuni nu accept ntreruperea instruciunilor;
iv. Microprocesoarele evoluate accept ntreruperea instruciunilor; v. Microprocesorul comunic printr un ciclu de acceptare a cererii
de ntrerupere acceptarea acesteia;
vi. Cel care a generat cererea de ntrerupere trebuie s plaseze pe magistrala de date (D0 7) vectorul de ntrerupere.
- Microprocesorul folosete vectorul de ntrerupere generat din exterior sau din interior (pentru ntreruperile interne) pentru a ajunge la rutina de
tratare a cererii.
66. Cum sunt tratate cererile de ntrerupere? Tratarea cererilor de ntrerupere:
- Programul principal este oprit; - Procesorul salveaz, n stiv, coninutul PC i, n unele cazuri, i alte
informaii aceste informaii vor fi folosite la revenirea din rutina de tratare a cererii de ntrerupere;
- Procesorul ncarc n PC adresa de nceput a ISR (Interrupt Service Routine);
- Adresa de nceput este: i. Fix,
ii. Obinut dintr o tabel vectorul de ntrerupere este folosit ca deplasament pentru a ajunge la intrarea ce conine adresa de nceput.
- Se execut ISR; trebuie evitat decalarea stivei; - La sfritul ISR se reactiveaz sistemul de ntreruperi (dac s a tratat o
cerere extern mascabil);
- Revenirea n programul principal se face cu o instruciune dedicat (de ex. IRET la familia Intel) care aduce din stiv coninutul PC-ului.
67. Circuitul 8259A: rol, caracteristici i schem intern Poate gestiona i prioritiza 8 cereri de ntrerupere; Poate fi legat n cascad cu alte 8 circuite similare asigurnd astfel gestionarea i prioritizarea a 64 cereri de ntrerupere;
Posibilitate de mascare individual a cererilor; Mai multe moduri de gestionare a ntreruperilor:
- Fully nested, - Rotating priority, - Special mask i - Poll.
Necesit 2 - 4 cuvinte de iniializare (ICW1 4) i 4 cuvinte de operare (OCW1 4); Genereaz vectorul de ntrerupere asociat cererii luat n considerare de procesor.
68. Cascadarea circuitelor 8259A: ce nseamn, cum se poate realiza i la ce folosete
Poate fi legat n cascad cu alte 8 circuite similare asigurnd astfel gestionarea i prioritizarea a 64 cereri de ntrerupere;
Legarea n cascad (master slave) a mai multor circuite 8259A:
69. Enumerai cteva tipuri de informaii trimise circuitului 8259A prin programare
Programarea circuitului
Cere 2 tipuri de cuvinte de comand: - De iniializare: 2 4 cuvinte, ICW1 4 (single/cascade mode; level/edge
triggered mode; input has/does not have slave etc.)
- De operare: 4 cuvinte, OCW1 4. (interrupt mask set/reset; special mask mode; read register command etc.)
70. Schema sistemului de ntreruperi a PC ului
71. Care este secvena de ntrerupere valabil pentru procesoarele Intel? Secvena de ntrerupere (valabil pentru procesoarele Intel):
Se presupune c PIC este programat:
Una sau mai multe cereri IR sunt activate, Dup prioritizare este aleas una i se actveaz ieirea /INT ctre procesor, Procesorul rspunde cu /INTA artnd c a acceptat cererea, Bitul corespunztor din registrul ISR este setat i cel din IRR este resetat, Procesorul genereaz un al 2 lea impuls /INTA iar circuitul genereaz
vectorul pe liniile D0 7, n modul AEOI bitul ISR este resetat la sfritul celui de al 2 lea
/INTA; dac nu este activat modul AEOI, bitul ISR rmne setat pn la generarea unei comenzi EOI la sfritul rutinei de tratare.
72. Prezentai 2 soluii complete pentru comanda unui LED prin program
n soluia a s-a folosit un bistabil n tehnologie TTL, ca urmare comanda va fi n 0 (IOL = 16 mA, IOH = 0,8 mA);
Secvena ca LED ul s lumineze este: MOV AL,00H
OUT 00H,AL
Secvena ca LED ul s nu lumineze este: MOV AL,01H
OUT 00H,AL
n varianta b bistabilul este n tehnologie HCT, ca urmare comanda se poate face fie n 0 fie n 1;
Secvena ca LED ul s lumineze (comand n 1): MOV AL,01H
OUT 00H,AL
Secvena ca LED ul s nu lumineze (comand n 1): MOV AL,00H
OUT 00H,AL
Dimensionarea rezistenei (s-a considerat LED ul rou): R = (5 1,6 0,2) V / 10 mA = 320 , valoarea uzual fiind 330
73. Descriei soluiile pentru comanda prin program a unui modul de afiare cu segmente cu mai multe ranguri
Comanda unui modul de afiare cu segmente cu mai multe ranguri: Soluia nemultiplexat, Soluia multiplexat.
Soluia nemultiplexat: Cere un registru pentru fiecare rang, Registrele vor fi comandate ca porturi de ieire i vor memora
configuraiile care se vor afia, Comanda n 0 sau 1 n funcie de tehnologia registrelor i de tipul de
circuit afiaj (cu anod sau catod comun), Componenta software simpl, Avantaje: software simplu, uor de extins,
Dezavantaje: numr mare de circuite, numr mare de rezistene, consum mare.
Soluia multiplexat: Se bazeaz pe ineria ochiului uman: imaginile care se succed cu o rat
mai mare de 25 ori/ sec. dau impresia de micare continu; Exist un singur registru pentru memorarea configuraiei care se va afia,
indiferent de numrul de ranguri; Este necesar comanda alimentrii circuitelor afiaj; Va exista cte un bistabil pentru fiecare rang care va comanda un
tranzistor plasat pe alimentare sau pe mas n funcie de tipul circuitului afiaj (cu anod sau cu catod comun);
Componenta software va trebui s asigure afiarea cu o rat mai mare ca 25 ori/ sec., succesiv i ciclic;
Componenta software va trebui s asigure concordana ntre coninutul registrului i afiajul care este alimentat;
Avantaje: minim de hardware, numr minim de rezistene, consum minim; Dezavantaje: software complex, utilizarea ntreruperilor.
74. Prezentai soluiile complete pentru comanda prin program a unui comutator
Soluii pentru conectarea unui comutator:
a b
Secvena pentru soluia a: IN AL,00H
AND AL,80H
JZ SUS ; ramura corespunztoare poziiei din figur ; ramura corespunztoare poziiei contrare
Secvena pentru soluia b: IN AL,00H
AND AL,80H
JNZ SUS ; ramura corespunztoare poziiei din figur ; ramura corespunztoare poziiei contrare
1. S se conecteze la o UC cu microprocesorul 8086 n modul minim: - 512 Koctei memorie fix n zona superioar a spaiului de adrese; - 256 Koctei memorie SRAM ncepnd cu adresa 80000H a spaiului de
adrese.
Se vor folosi circuite AM27C2048 i A616316. 2. S se conecteze la o UC cu 8086 16 blocuri de cte 64 ko, n zona 80000H
8FFFFH
3. S se proiecteze un modul digital, conectat la o UC cu 8086, pentru citirea a 32 intrri digitale i comanda a 32 ieiri digitale. Ieirile trebuiesc memorate.
4. S se proiecteze o interfa serial cu circuitul 8251, conectat la o UC cu 8086, transferul fcndu se prin program. Datele iniiale ale transferului sunt: 7 bii de date, paritate par, 2 bii de STOP, factor de multiplicare 64, rata de transfer: 19200 bps. Circuitul 8251 va fi comandat de un circuit 8253.
5. S se proiecteze un modul, bazat pe circuitul 8253, la care contorul 0 s comande intrrile /RXC i /TXC ale unui circuit 8251, trebuind s genereze un semnal cu frecvena de 4800 x 16 = 72800 Hz iar contorul 2 s anune microprocesorul apariia de 500 ori a unui eveniment. Apariiile evenimentului sunt aduse la cunotina circuitului de un traductor care genereaz 200 impulsuri cu caracteristici TTL i perioad de 400 ns pentru o apariie.
6. S se proiecteze o interfa paralel, conectat la o UC cu 8086, care s lucreze n conformitate cu dialogul de tip CENTRONIX.
7. S se proiecteze o interfa serial pe 2 canale, cu 2 circuite 8251, la o unitate central cu microprocesorul 8086, cu urmtoarele date iniiale: 7 bii de date, paritate par, 2 bii de stop, factor 64, viteza de transfer 4800 bps pentru canalul 1 i 8 bii de date, paritate impar, 2 bii de stop, factor 16, viteza de transfer 9600 bps pentru canalul 2. Circuitele 8251 vor fi comandate de un circuit 8253. Se va
desena schema i se vor scrie rutinele de programare i rutinele de baz de transfer.
8. S se proiecteze o interfa serial cu circuitul 8251, la o unitate central cu microprocesorul 8086, cu urmtoarele date iniiale: viteza perifericului 9600 bps, factor de multiplicare 16, 8 bii de date, fr paritate,2 bii de STOP. Interfaa va lucra prin ntreruperi i va fi comandat de un circuit 8253. Se vor prezenta: schema, rutinele de programare, rutinele de transfer, soluia prin care microprocesorul ajunge la rutinele de tratare.
9. S se proiecteze un modul care anun microprocesorul 8086 c un eveniment extern a aprut de 100 ori. O apariie este anunat microprocesorului prin un tren de 4000 impulsuri cu caracteristici TTL. Se va utiliza un circuit 8253.
10. S se comande 48 semnale de ieire de ctre un microprocesor 8086. Se vor utiliza circuite 8255.
11. S se proiecteze un modul care va genera vectorii: A2H, 86H, 2EH la activarea cererilor de ntrerupere mascabile INT1, INT2, respectiv INT3. Cererile sunt
active pe nivel logic 1, sunt disjuncte iar vectorii vor fi trimii procesorului 8086 la cel de-al doilea impuls de acceptare.
12. S se conecteze o minitastatur cu 16 contacte i un modul de afiare cu segmente cu 2 ranguri la o unitate central cu microprocesorul 8086. Dac se apas tasta 0 se va afia caracterul 0 pe cele 2 ranguri, dac se apas tasta 1 se va afia caracterul 1, . a. m. d. Se vor prezenta schema i programele necesare.
13. S se conecteze la o unitate central cu microprocesorul 8086, un modul de afiare cu segmente cu 32 ranguri. Se va scrie cte o rutin pentru afiarea cte unei cifre hexazecimale pe fiecare rang.
14. S se conecteze 16 comutatoare distincte i un circuit de afiare cu segmente cu 4 ranguri la o unitate central cu microprocesorul 8086. Dac se apas comutatorul 0 se afieaz cifra 0 pe cele 4 ranguri, dac se apas comutatorul 1 se afieaz cifra 1 . a. m. d.
15. S se conecteze 4 minitastaturi cu cte 16 contacte la o unitate central cu microprocesorul 8086.
16. S se conecteze 32 led uri i 8 comutatoare la o unitate central cu microprocesorul 8086. Dac se apas primul comutator se aprind led urile 1, 9, 17 i 25, dac se apas al 2 lea comutator se aprind led urile 2, 10, 18, 26 . a. m. d.
Recommended