Subiect Erez Olv Ate 3

download Subiect Erez Olv Ate 3

of 14

Transcript of Subiect Erez Olv Ate 3

  • 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.