Sunteți pe pagina 1din 90

Arhitectura sistemelor de calcul

6.2.

Interfaa serial programabil 8251

Interfaa serial programabil 8251, cunoscut i sub numele de Receptor Transmitor Universal 1 28 D1 D2 Sincron/Asincron (USART), este 2 27 D0 D3 realizat n tehnologia NMOS, pe o 3 26 Vcc RxD pastil cu 28 de terminale. Ca interfa 4 25 RxC MASA serial de I/E accept date, sub form de 5 24 DTR D4 caractere, transmise n paralel, de ctre 6 23 RTS D5 unitatea central de prelucrare i le 7 8251 22 DSR D6 convertete ntr-un format serial, pentru a 8 21 RESET D7 fi transmise ctre un echipament de 9 20 CLK TxC ieire. n acelai timp, poate recepiona 10 19 TxD WR date transmise serial, de ctre un 11 18 TxE CS echipament de intrare, convertindu-le n 12 17 CTS C/D caractere, ce se transfer n paralel, ctre 13 16 SYNDET RD unitatea central de prelucrare. 14 15 TxRDY RxRDY Interfaa semnalizeaz ctre unitatea central de prelucrare, n cazurile n care Figura 6.5. Semnificaia terminalelor poate accepta un nou caracter, n vederea interfeei seriale programabile 8251. transmisiei sau cnd a recepionat un D7-D0 - conexiuni la magistrala de date a caracter, pentru unitatea centrala. Microsistemului (bidirecional); Interfaa poate fi programat pentru RESET - aducere n condiii iniiale (intrare); diverse opiuni privind funcionarea, iar CLK - cesul dispozitivului (intrare); starea ei poate fi citit, n orice moment, C/D - semnal de selecie: comand/data de ctre unitatea central de prelucrare. (intrare); RD - citete data sau starea pe magistrala n figura 6.5 sunt prezentate D7-D0 (intrare); semnificaiile terrninalelor iar n figura WR - scrie data sau comanda de pe 6.6 schema bloc a interfeei seriale magistrala D7-D0 (intrare); prograrnabile 8251. CS - selecie circuit (intrare); Comunicaia serial, cu DSR - indicator echipament de date pregtit (intrare); echipamente locale sau plasate la DTR - indicator terminal de date pregtit (ieire); distan, legate prin modemuri, poate fi CTS - indicator anulare n vederea realizat de ctre interfaa 8251, fie sub Transmisiei (intrare); forma asincron, fie sub forma sincron. RTS - indicator cerere n vederea transmisiei n cazul transisiei asincrone (fig. 6.7) (ieire); TxD - ieire serial de date (ieire); fiecrui caracter manipulat i se adaug TxRDY - transmitor pregtit pentru a primi date informaia de cadru, constnd dintir-un pe magistrala D7-D0 (ieire); bit de START, definit ca zero logic i TxE - transmitor vid, nu are date de unul sau doi bii de STOP, definii ca unu transmis (ieire); logic. Frontul negatlv al bitului de TxC - ceasul pentru transmisie serial (ieire); RxD - intrare serial (intrare); START indic receptorului uceputul RxRDY - un caracter este pregtit pentru a fi procesului de asamblare a unui caracter transmis pe magistrala D7-D0 (ieire); din fluxul serial de bii, care urmeaz, RxC - ceasul pentru recepie serial (intrare); precum i sincrconizarea cu SYNDET forare sau detecie sincron de date transmitorul. Sincronizarea are loc pe (bidirecional); < 98 >

Arhitectura sistemelor de calcul

tampon stare

tampon date recepie

tampon date emisie/comenzi

RESET CLK C/D RD WR CS DTR DSR RTS CTS

Logica de comand citete/ scrie

Transmitor (P S) Comanda emisie

TxD TxRDY TxE TxC RxRDY SYINDET RxC RxD

Comand MODEM

Comand recepie Recepie (S P)

Figura 6.6. Schema bloc a interfeei seriale programabile 8251

durata transmisiei unui singur caracter. Bitul sau biii da STOP, adugai la sfritul caracterului, asigur tranziia necesar pentru bitul de START al unui eventual nou caracter. Aceasta permite adaptarea receptorlui la viteza de lucru a transmitorului. Dac ceasul receptorului este puin mai rapid dect al transmitorului, primul va recepiona caracterele cu pauze ntre ele, dar le va recepiona corect.
stare MARK bii de date bit de start 5-8 bii bit de paritate 1-2 bii de stop

Figura 6.7. Formatul asincron pentru transmisia serial.

n cazul transmisiei sincrone (fig. 6.8), caracterete se asanableaz sub forma unor nregistrri, adugndu~se caractere de cadru la fiecare nceput de nregistrare. Caracterele de cadru (SYN) sunt folosite de catre receptor pentru a determina nceputul unei noi nregistrri. ntruct sincronizarea trebuie meninut pe parcursul unui ir destul de lung de caractere, informaia referitoarre la aceasta se extrage din canalul de cocnunicaie sau de la o surs extern. < 99 >

Arhitectura sistemelor de calcul


caracter SYN caracter SYN date caractere (6-8 bii/caracter)

Figura 6.8. Formatul sincron pentru transmisia serial.

Comparnd cele dou modaliti de transmisie se constat c, perntru mesaje care depesc 8 caractere, devine mai eficient transmisia sincron. Acest lucru poate fi evldeniat prin calculul numrului de bii suplimentari de START, STOP i respecitv de caractere SYN, ce insoesc datele pentru a fi transmise. Transmisia asincron la distan se efectueaz cu modemuri asincrone, care folosesc semnale de frecvene diferite pentru unu i respectiv zero logic. La transmisia sincron modemul furnizeaz semnalul de sincronizare ctre terminal i impune ca datele s-i fie livrate sincron cu acest semnal. Modemurile sincrone pot opera numai la frecvene pcestabilite. Modemul receptor, care are un oscilator, lucrnd pe aceeai frecven, cu cel din modemul transmitor, ii ajusteaz faza dupa cel din transmitor i interpreteaz orice modificare de faz ca fiind o informaie, o data. n unele canzuri, cnd se urmrete creterea vitezei de operare, fr a schimba protocolul, se opereaz ntr-un mod hibrid, datele cu format asincron fiind transmise sincron. Aceast transmisie poart numele de isosincron. Interfaa programabil 8251 poate lucra n modurile sincron, asincrun i isosincron. n modul sincron ea manipuleaza caractere de 5, 6, 7 sau 8 bii, cu adaugarea i respectiv verificarea unui bit de paritate (par sau impar). Sincronizarea poate fi realizat extern, printr-un hardware adecvat, sau intern, prin detectarea caracterului SYN. Caracterele SYN pot fi diferite. Ele sunt inserate automat, de ctre inter, la transmisie, pentru a nu pierde sincronizarea, dac software-ul nu furnizeaz la timp datele. La transmisie asincron, interfaa opereaz cu caractere 5,6,7 sau 8 bii i cu adaugarea/verificarea bitului de paritate (par sau impar). Se adaug 1 bit de START i 1, l/2 sau 2 bii STOP. Receptorul testeaz cadrarea corect i poziioneaz un indicator, n cazul unei erori. Interfaa poate fi programat sa accepte semnale de ceas, cu frecvena de 16 sau 64 ori mai mare dect cea a semnalelor transmise. Transmisia isosincron se consider ca un caz special de transmisie asincrona cu frecvena programat a interfeei ca fiind egal cu cea a ceasului transmitorului/receptorului. Formatele asincron, sincron i iso-sincron pot fi transmise n modurile semiduplex i duplex, datorit existenei n interfa a unor tampoane duble pentru date. Interfaa 8251 nu asigur toate semnalele de comand pentru un echipament de transmisie a datelor, conform standardului EIA-RS-232-C. Pentru generarea semnalelor neasigurate, de catre 8251, se poate folosi un port auxiliar, al microprocesorului. Nivelurile de tensiune solicitate de standardul EIA-RS-232-C vor fi realizate prin circuite de atac i recepie corespunzitoare (1488 i respectiv 1489). Schema bloc din figura 6.6 const din cinci seciuni, care comunic ntre ele prin intermediul unei magistrate interne. Cele cinci seciuni sunt: receptorul, transmiatorul, comanda modemului, comanda pentru citire/scriere i tamponul de I/E. Acesta din urm < 100 >

Arhitectura sistemelor de calcul a fost prezentat mai detaliat i const din urmtoarele subseciuni: tamponul de stare, tamponul de transmisie date i comenzi, tamponul de recepie date. Receptorul primete datele sub form sarial, pe terminalul RxD, pe care le asambleaz apoi n cuvinte, n conformitate cu un anumit format. n cazul n care este pregtit s primeasc un caracter, n modul asincron, urmrete tranziia negativ a semnalului RxD. La apariia unei asemenea tranziii declaneaz un generator intern, pentru a putea genera un interval de timp, egal cu jumtatea perioadei unui bit. n cazul n care testul, dup o jumtate de perioad,de bit, indic un nivel cobort, se consider c s-a recepionat bitul de START al unui cuvtnt. n continuare se asambleaz cuvntul recepionat serial, prin testarea lui RxD, la fiecare jumtate de interval de bit. Cuvntului asamblat i se ataeaz biii de paritate i de STOP, dup care este transferat pe magistrala intern, n tamponul datelor recepionate, activndu-se semnalul RxRDY, pentru a indica unitii centrale de prelucrare disponibilitatea unui caracter. Daca la testarea bitului de START, se constat c la jumtatea intervalului de bit RxD este la nivel ridicat sau daca s-a activat receptorul pe parcursul transmisiei unui caracter, operaia se anuleaz i se rencepe procesul de testare pentru recepia unui nou caracter. La recepia caracterelor avnd mai puin de 8 bii, examinarea se face la dreapta, iar semnalul RxRDY este activat pentru a indica disponibilitatea unui caracter. La transmisia smcron receptorul nregistreaz un numr specificat de bii, pe care i transfer n registrul tampon de recepie, activnd RxRDY. Pentru a grupa corect biii receptionai, receptorul trebuie sincronizat cu emitorul ceea ce se realizeaz n modul HUNT. In modul HUNT interfaa citete datele serial, bit cu bit, pe linia RxD, comparnd, dup fiecare bit recepionat, coninutul registrului de recepie cu cel care pstreaz caracterul SYN, ncrcat prin program. Modul HUNT ia sfrit cnd cele doua caractere sunt identice, specificndu-se realizarea sincronizrii prin activarea semnalului SYNDET. Dac interfaa a fost programat s accepte dou caractere SYN, sincronizarea se va realiza n momentul n care dou caractere recepionate succesiv sunt identice cu cele doua caractere SYN memorate anterior, prin program, n interfa. Terminalul SYNDET este folosit pentru a sincroniza receptorul, n cazul n care interfaa folosete o sincronizare extern. Modul de lucru HUNT este stabilit prin cuvntul de comand (bitul D7) sau la funcionarea interfeei n regim sincron. Receptorul trebuie activat, n vederea operrii, prin bitul RxE (D2) al cuvntului de comand. n acest caz el va furniza semnalul RxRDY activ, dac are pregatit un caracter pentru a fi transmis pe magisttala DOD7. Pe baza figurii 6.9 se poate explica modul n care se efectueaz recepia caracterelor transmise serial. La recepie, caracterele se asambleaz n RB (fig. 6.9, a), dup care sunt transmise n paralel n registrul tampon RA (fig. 6.9, b). Coninutul lui RA trebuie citit, de ctre umtatea central de prelucrare, n timp ce are loc receptia n RB a unui nou caracter. Dac nu a avut loc citirea cuvntului lui EA, n timpul prestabilit, noul caracter din RB va fi ncrcat n RA, peste vechiul caracter, semnalizndu-se o eroare de ritm, prin poziionarea corespunztoare a bitului 4, n. registrul de stare. Transmiatorul primete datele a paralel, de la unitatca central, le adaug informaia de cadru, le serializeaz i le transmite la ieirea TxD (fig. 6.9, c). < 101 >

Arhitectura sistemelor de calcul

D0 D7

Intrare Ieire date date

Comand Stare

Selecie comand/stare (i scriere/ citire)

Logic de ramificaie

Logic de ramificaie

Selecie comand/stare (i scriere/ citire)

Registrul tampon RA

Registrul tampon RA

Stare

Registrul RB RxD

Registrul TB TxD

Semnale de comand

Figura 6.9. Recepia/Transmisia serial (a) Schema bloc. Intrare serial a caracterului 1 n RB RxD Intrare serial a caracterului 2 n RB Intrare serial a caracterului 3 n RB

Transfer RB <- RA

UCP citete caracterul 1 din RA

UCP citete caracterul 2 din RA

Figura 6.9. Recepia/Transmisia serial (b) Asamblarea caracterelor

Ieire serial a caract. 1 din TB TxD

Ieire serial a caract. 1 din TB

Ieire serial a caract. 1 din TB

Transfer TB <- TA

UCP transfer caracterul 2 n TA

UCP transfer caracterul 3 n TA

UCP transfer caracterul 4 n TA

Figura 6.9. Recepia/Transmisia serial (c) Serializarea caracterelor la transmisie

< 102 >

Arhitectura sistemelor de calcul La transmisia asincron se ateaz un bit de START i, n funcie de modul de programare, dup cei 8 bii de date, se mai adaug un bit de paritate (par sau impar) i 1, 1/2 sau 2 bii de STOP. n cazul transmisiei sincrone nu se introduc bii suplimentari dect n siutaia n care calculatorul nu a furnizat caracterul ctre interfa. Aceasta, n mod automat, va insera cacacterul (caracterele) SYN, pentru a asigura o trasmisie continu a biilor. Interfaa nu va iniializ transmisia dect dup ce a primit cel puin un caracter, din partea unitii centrale. Caracterele SYN sunt specificate prin software, n cadrul procedurii de iniializare. Att n modul asincron ct i n cel sincron transmisia este blocat ct timp intrrile TxE i CTS sunt la nivel ridicat. De asemenea, transmitorul poate genera informaia BREAK, reprezentnd o perioad de octei, codificnd SPACE, pe linia de transrnisie, pentru a ntrerupe semnlul care se transmite, n cazul comunicaiei duplex. Datele transmise apar, la ieire, la terminalul TxD, fiind controlate, ca vitez de transmisie de ctre semnalul de ceas TxC. Acesta poate fi furnizat, fie de unitatea central, fie de ctre o alt surs. La transmisia asincron datele suut emise la frecvena de 1/16 sau 1/64 din frecvena lui TXC . Datele sunt strobate de tranziia negativ a semnalului de ceas TxC. Logica de transmisie genereaz dou semnale de comand: TxRDY i TxE. Semnalul TxRDY trece n 1 logic, atunci cnd coninutul registrului TA a fost transferat n, TB, TA putnd fi acrcat cu un nou caracter. TxRDY ia valoarea logic 0, atunci cnd urmtorut octet de date este transferat n TA. Starea TxRDY este disponibi la terminalul TxRDY atunci cnd interfaa poate transmite (CTS=0 i TxE = l). n registrul de stare al interfeei, TxRDY este poziionat n 1 logic, cnd registrul TA este vid, indiferent de valorile semnalelor CTS i TxE. Semnalul TxE este adus n 1 logic, cnd data din TB a fost serializat i transmis, rmnnd n aceast stare pn la ncrcarea lui TB cu coninutul lui TA. La transmisia sincron caracterele SYNC sunt ncrcate n TB prin intermediul lui TA. Dac se va genera o comand, n. timp ce caracterul SYNC este crcat n TB, se va obine un caracter eronat, care nu reprezint nici cod de comand, nici cod de SYNC. Seciunea referitoare la comanda modemului (fig, 6.6} genereaz semnalul, DTR , indicnd faptul c interfaa este pregtit i rccepioneaza, semnalul DSR , indicnd faptul c modemul este pregatit. Semnalul DTR este generat pe baza poziionrii n 1 a bitului 2 din cuvntul de comanda, iar DSR poate fi testat prin examinarea bitului 7 din cuvtul de stare. Tot seciunea de comand a modemului recepioneaz semnalul CTS i genereaz semnalul RTS , indicnd anularea n vederea transmisiei i respeciv - ceirere n vederea transmisiei. Comanda intrrilor/ieirilor este asigurat prin logica de comand citete/scrie, din figura 6.6, care decodific semnalele de comand, furnizate de unitatea central. n tabelul 6.1 sunt prezentate semnalele de comand i funciile ndeplinite de ele. Semnalele de comand de citlre ( RD ) si scrlere ( WR ) pot aprea n orice moment, n raport cu intrarea de ceas, deoarece logica de comand citete/scrie posed circuite proprii de sincronizare. < 103 >

Arhitectura sistemelor de calcul TABELUL 6.1. CS C / D RD 0 0 0 0 1 0 0 0 1 0 1 1 1 x x


WR 1 1 0 0 x

Funcia Unitatea central citete data de la interfa. Unitatea central sitete starea interfeei. Unitatea central scrie data n interfa. Unitatea central scrie o comand n interfa. Interfa neoperaional (magistrala n starea de mare impedan)

Blocul tampon de I/E conine tamponul de stare, tamponul de date pentru recepe i tamponul de date pentru emisie/comenzi, Tamponul de emisie date i de comenzi este comun. Este important Cod comand 16 bii ca, n acest tampon, s nu se nscrie o comand, dac el deja conine o dat. n cazul n care TxRDY este pe Octet 1 Octet 2 nivelul cobort, nu se vor transfera date sau comenzi n interfa Selecie Mod Selecie Comand deoarece, n acest caz, se vor transmite date eronate. a) Coninutul Coninutul memoriei Codurile de comand i strile memoriei pentru pentru interfeei sunt formate ntr-un registru transmisia transmisia de 16 bii i respectiv citite, dintr-un sincron asincron registru de 8 bii. Aceste dou registre sunt manipulate folosind aceeai adres. ntruct cele doua coduri de MOD MOD SYN 1 comand sunt nscrise folosind COMND SZN 2 aceeai adres, ele sunt deosebite prin DATA nceput de mesaj COMND "Selecie Mod" i respectiv "Selecie DATA DATA Comanda" (figura 6.10, a). La DATA DATA aplicarea tensiunii de alimentare DATA interfaa trece n ,,Selectie Mod". DATA COMND Dac octetul de comand, forat n DATA DATA COMND interfa, specific modul sincron, DATA MOD logica interfeei ateapt unul sau SYN DATA doua coduri SYN (fig. 6.8). Dup DATA recepionarea codului (codurilor) Sfrit de DATA COMND mesaj SYN, interfaa trece automat n COMND MOD revenirea la ,,Selecie Comand". Aceast situaie MOD COMND selecie. SYN se menie pna la aplicarea unui Mod este DATA semnal RESET sau forarea unei opional. b) comenzi, care aduce interfaa n c) Figura 6.10. Cuvntul de comand pentru interfaa "Selecie Mod". n figurile 6.10, b, c sunt prezentate coninuturile pentru 8251.(a), coninutul zonelor de memorie la transmisiile: sincron (b) i asincron (c). transmisiile sincrona i respectiv, asincron.

< 104 >

Arhitectura sistemelor de calcul n cazul n care dou programe independente comand aceeai interfa, poate aprea situaa n care, o comand intern de RESET este forat spre interfa, n timp ce ea ateapt un caracter SYN. Acast comand va fi acceptat n calitate de SYN, fra ca operaia intern de RESET s aib loc. Pentru a evita o asemenea situaie, comanda intern de RESET trebuie precedat de trei octei de comand, cu coninutul egal cu zero.
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 Primul cuvnt de comand modul asincron modul sincron biii 1,0 rata de transmisie 00 invalid; 00 semnaleaz modul sincron 01 rata de transmisie x1; 10 rata de transmisie x 16 11 rata de transmisie x 64 biii 3,2 lungimea caracterului 00 caracter de 5 bii; 00 caracter de 5 bii; 01 caracter de 6 bii; 01 caracter de 6 bii; 10 caracter de 7 bii; 10 caracter de 7 bii; 11 carecter de 8 bii; 11 carecter de 8 bii; biii 5,4 controlul de paritate x0 dezactivat; x0 dezactivat; 01 paritate para; 01 paritate para; 10 paritate impar; 10 paritate impar; biii 7,6 comanda cadrrii Comanda SYN 00 invalid; x0 SYN intern; 01 1 bit de stop; x1 SYN extern; 10 1 1/2 bii de stop; 0x dou caractere SYN; 11 2 bii de stop. 1x un singur caracter SYN. a) b) Al doilea cuvnt de comand bit 0 transmisie activat TxEN 0 dezactivare transmisie; 1 activare transmisie; bit 1 terminal de date pregtit DTR n cazul unui nivel ridicat se va fora n zero ieirea DTR; bit 2 recepie activat RxE 0 dezactiveaz RxRDY; 1 activeaz RxRDY; bit 3 transmite caracterul BREAK:SBRK 0 operare normal; 1 forare TxD la nivel cobort; bit 4 anulare ER 1 anularea tuturor erorilor din registrul de stare (PE,OE,FE); bit 5 cerere de transmisie RTS nivel ridicat se foreaz ieirea RTS n zero; bit 6 RESET intern IR nivel ridicat se foreaz interfaa n mod instruciune; bit 7 intrare n modul HUNT:EH 1 intrare n modul HUNT Figura 6.11. Semnificaia cuvintelor de comand. Primul cuvnt de comand n modul (a) asincron, (b) sincron, (c) al doilea cuvnt de comand.

< 105 >

Arhitectura sistemelor de calcul Interpretarea primului cuvnt de comand, de ctre logica din interfa, este prezentat n figura 6.11. Se deosebesc dou interpretri ale acestui cuvnt, n funcie de modul de lucru asincron (fig. 6.11, a) i respectiv sincron (fig. 6.11, b). Primul cuvnt de comand, transmis interfeei, definete modul de operare, n timp ce al doilea cuvnt de comand (Selectie Comandi) defineae aciuni instantanee, dupa cum se arata n figura 6.11, c. Biii din acest cuvnt de comand sunt poziionai n unu sau zero, n general, sub controlul programului, Trebuie menionat faptul ca biii ER, IR si EH sunt anulai n urmtoarele condiii: EH cnd sunt anulate erorile (PE, OE, FE) din registrul de stare, IR cnd interfaa se afl n modul instruciune i EH cnd a fost detctat caracterul SYN. Comanda RxE (Recepie Activat), din cel de-al doilea cuvnt de comand, nu afecteaz logica de recepie, ci numai semnalul RxRDY, Dac, n continuare, datele sunt recepionate de ctre interfa, dup primirea acestei comenzi, ele vor fi asamblate n RA i RB, far a se genera semnalul RxRDY, spre unitatea central, pentru a semnala caracterele asamblate. n cazul n care se genereaz din nou comanda RxE, este posibil citirea caracterelcr asamblate anterior. Pentru a evita aceast situaie, caracterele respective trebuie citite i nlturate imediat ce s-a activat RxEN, n modul asincron, sau EH, n modul sincron. Este important de menionat faptul c semnalele de comand DTR i RTS fiind coatrolate prin biii 1 i respectiv 3, din cuvntul de comand, necesit, pentru o funcionare corect a interfeei, ca la modificarea lor, ceilali bii s nu fie schimbai sau s corespund comenzilor necesare. La citirea strii interfeei seriale programabile biii cuvntului respectiv sunt interpretai conform figurii 6.12. Bii de eroare: (PE - eroare de paritate, OE - eroare de ritm, FE - eroare de cadrare) se poziioneaz n unu la aparia condiiilor de eroare respective. Corectarea erorilor se face prin program.
Cuvntul de stare bit 7 DSR DSR; bitul 3 eroare de paritate PE 1 eroare de paritate; bitul 4 eroare de ritm OE 1 RA nu a fost citit nainte ca RB s fie ncrcat cu un nou caracter; bitul 3 eroare de cadrare (n modul asincron) 1 nu s-a detectat un bit corect de stop la sfritul fiecrui caracter. Figura 6.12. Structura cuvntului de stare. bit 6 SYNDET bit 5 FE bit 4 OE bit 3 PE bit 2 TxE bit 1 RXRDY bit 0 TXRDY

biii 0, 1, 2, 6, 7 condiii pentru semnalele indicate: TxRDY, RxRDY, TxE, SYNDET,

6.3.

Interfaa logic programabil 8255

Circuitul 8255 realizat n tehnologia NMOS, pe o pastil cu 40 de terminale, ale cror semnificaii sunt prezentate n figura 6.13, reprezint o interfa programabil de intrare/ieire (I/E).

< 106 >

Arhitectura sistemelor de calcul Dei a fost proiectat ca un circuit din familia microprocesorului 8080, el poate fi utilizat i la alte microprocesoare.
PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 D0 D7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB2 Modulul de interfa cu magistralele Logica intern CD A grup A Interfaa periferice I/E PA 7-PA0 port A (8) grup A I/E port PC -PC 7 4 C sup (4) I/E port PC -PC 4 0 C inf (4) grup B I/E port B PB7-PB0 (8)

tampon D7 D0 magistral de date RD WR A0 A1 RESET CS logica de comand citete/ scrie

Magistral intern de 8 bii CD B grup B

Circuitul posed 24 de terminale de I/E, care pot fi configurate ca unul, dou sau trei porturi de I/E. Dintre cele 24 de terminale, 16 sunt prevzute cu posibiliti de memorare (latch-uri), iar celelalte 8 posed tampoane (buffer-e). Alimentarea circuitului se face de la o surs de 5V; toate intrrile i ieirile sunt compatibile TTL. n figura 6.14 se prezint schema bloc a circuitului 8255, care const din: modulul de Figura 6.13. Terminalele circuitului 8255 i semnificaiile lor. interfa cu magistrala microprocesorului, interfaa cu periferia i logica intern. Modulul de interfa cu magistrala microprocesorului conine tamponul bidirecional, care face legtura ntre magistrala bidireciona de date a microprocesorului i magistrala intern a interfeei paralele, precum i logica de comand pentru operaiile de scriere/citire. Aceasta din urm are ca intrri semnalele de RESET, selecie a circuitului ( CS ), scriere ( WR ), citire ( RD ) i selecie a porturilor i a registrului cuvntului de comand (A0, A1). Semnalul RESET anuleaz coninuturile tuturor registrelor din circuitul 8255. Semnalul CS activeaz comunicaia ntre magistrala microprocesorului i circuitul 8255. < 107 >

- magistral de date (bidirecional); PA0 PA7 - terminale I/E Port A (bidirecional); PB0 PB7 - terminale I/E Port B (bidirecional); PC0 PC7 - terminale I/E Port C (bidirecional); RD - comand citire (intrare); WR - comand scriere (intrare); RESET - comand RESET (intrare); CS - selecie circuit (intrare); - intrri selecie porturi A 0, A 1 (intrri);

Figura 6.14. Schema bloc.

Arhitectura sistemelor de calcul TABELUL 6.2. Selecia porturilor ABC i a registrului cuvntului de comand. Se selecteaz CS A0 A1 0 0 0 Portul I/E A 0 0 0 Portul I/E B 0 1 0 Portul I/E C 0 1 1 Registrul cuvntului de comand (numai pentru scriere) 1 x x Nu se selecteaz 8255 n tabelul 6.2 se prezin efectul semnalelor CS , A0 i A1 privind selectarea porturilor i a registrului cuvntului de comand. n cazul n care se folosete o tehnic simpl de selecie, numit selecia liniar (o variant a seleciei redundante), adresa de 8 bii a unei instrucuni IN sau OUT, se poate utiliza ca n tabelul 6.3. Pe baza selecei liniare, biii A0, A1, din adres, se folosesc pentru selecia porturilor, din cele 6 circuite 8255, selectabile cu ajutorul rangurilor A7 A2. TABELUL 6.3. Selecia liniar a circuitului 8255. A7 A6 A5 A4 A3 A2 Selecie ( CS ) 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 Circuit 1 Circuit 2 Circuit 3 Circuit 4 Circuit 5 Circuit 6 A1 A0 Selecie 0 0 1 1 0 1 0 1 Port A Port B Port C Registrul cuvntului de comand

Interfaa cu periferia conine 24 de linii de interfa, tampoane i logica de comand. Caracteristicile i funciile liniilor din interfa sunt derminate de modul de operare selectat, prin program. Sub controlul software-ului pot fi selectate trei moduri de lucru diferite, pentru interfaa programabila 8255 (figura 6.15, a, b, c). Modul 0, denumit modul de baz de intrare/ieire, asigur mai multe posibiliti: dou porturi de cte 8 bii (PA7 PA0, PB7 PB0); dou porturi de cte 4 bii (PC3 PC0, PC7 PC4), cu capabilitata de poziionare individual n unu sau zero.

Porturile folosite pentru ieire sunt prevzute cu elemente bistabile de memorare, porturile folosite pentru intrri nu dispun de elemente de memorare (fig. 6.15, a). Modul 1 asigur posibiliti de strobare pentru intrare/ieire. Astfel, unul sau dou porturi, organizate pe 11 bii, conin 8 bii de date, 3 bii de comand i logica de suport pentru ntreruperi. Oricare port poate fi folosit pentru intrare sau ieire. Daca n Modul 1 se folosete un singur port, ceilali 13 bii pot fi configurai n Modul 0. Dac n Modul 1 sunt programate dou porturi, cei doi bii rmai pot fi utilizai pentru intrare sau ieire cu capabilitate de poziionare n unu sau zero (figura 6.15, b).

< 108 >

Arhitectura sistemelor de calcul


adrese date comenzi a) Modul 0

p
RD,WR

Port B

D7-D0 Port C

A0-A7 Port A

PB7-PB0

PC3-PC0 b) Modul 1

PC7-PC4

PA7-PA0

Port B
PB7-PB0

PC0
Intr.B

PC1
IBFB OBFB

PC2
STBB ACKB

PC3
Intr.A

PC4
STBA I/E

PC5
IBFA I/E

PC6
I/E ACKA

PC7
I/E OBFA

Port A
PA7-PA0

c) Modul 2

comand PortA, port B

Port B

PC0

PC1

PC2

PC3

PC4

PC5

PC6

PC7

Port A

PB7-PB0

I/E sau comand portul B poate fi n modurile 0 sau 1

Intr.A

STBA

IBFA

ACKA

OBFA

PA7-PA0

comand PortA

Figura 6.15. Modurile de lucru pentru interfaa programabil 8255: (a) modul 0, (b) modul 1, (c) modul 2,

n figura 6.16 sunt date configuraiile porturilor A, B i C ale interfeei 8255 i cuvintele de comand corespunzatoare, pentru operaia de intrare (a) i operaia de ieire (b). Pentru intrare, semnalele de comand au semnificaiile de mai jos: STBA(B) , strob de intrare, activ pe nivel cobort, ncarc data n registrul de intrare; IBFA(B), indicator tampon de intrare ncrcat, este activ pe nivel ridicat. El este activat de STBA(B) - pe nivel cobort i dezactivat de

ctre frontul cresctor al comenzii RD ; INTRA(B), cerere de ntrerupere pentru microprocesor, activ pe nivelul ridicat, atunci cnd datele sunt deja n registrul de intrare al interfeei 8255. INTRA(B) este activat dac STBA(A) este pe nivel ridicat i dac IBFA(B) i INTEA(B) sunt, de asemenea, active. INTRA(B) este dezactivat pe f rontul cztor al comenzii RD ;
< 109 >

Arhitectura sistemelor de calcul

INTEA(B), bistabile interne asociate cu intreruperile, activate/dezactivate prin terminalele PC4/PC2. Pentru iesire semnalele de comanda au urmatoarele semnificatii:

sunt

OBFA(B) , indicator tampon de iesire incarcat, este activat pe nivel coborit de catre Jrontul negativ al comenzii WR si dezactivat pe frontul negativ al semnalului ACKA(B); ACKA(B), acceptare date de catre periferic, este furnizat cnd datele au fost preluate de periferic. Este activ pe nivel cobort; INTRA(B), cerere de ntrerupere pentru microprocesor, activ pe nivel ridicat, specific faptul c echipamentul periferic a preluat data. INTRA(B) este activat cnd ACKA(B) este pe nivel ridicat, OBFA(B) este pe nivel ridicat i INTEA(B) este, de asemenea, pe nivel ridicat. Semnalul este dezactivat pe frontul cresctor al comenzii WR ; INTEA(B), bistabile interne asociate cu intreruperile, sunt activate/dezactivate prin terminalele PC6/PC2.

Dup cum se constat, portul C este folosit pentru manipularea 8 cuvintelor de comanda/stare, pentrti PA7-PA0 porturile A, B. PC 6,7 0 intrare Dac portul A (sau portul B) STBA PC4 INTEA 1 - ieire IBFA a fost programat ca port de intrare, PC5 logica extern trebuie s indice faptul c o nou dat a fost plasat Intr A PC3 la portul de intrare. Aceast se RD realizeaz prin aplicarea unor I/E PC5,7 semnale de strob STBA , STBB la Modul 1 (Port B) intrrile PC4 i respectiv PC2. 7 Cuvnt de comand 0 Interfaa 8255 va aduce terminalul 1 x x x x 1 0 x 8 IBFA (IBFB) la un nivel ridicat, PB7-PB0 atunci cnd data este ncrcat n portul de intrare i se menine la STBB PC2 INTEB IBFB acest nivel, ct timp portul conine PC1 data respectiv. Semnalul IBFA(IBFB) este anulat la Intr B PC0 dezactivarea comenzii de citire RD ( RD ), emis de microprocesor, indicnd citirea datelor din portul de INTEA comandat prin PC4 intrare. Pentru a specifica INTEB comandat prin PC2 microprocesorului faptul c data Figura 6.16. a. Configuraiile porturilor i cuvintele de comand corespunztoare pentru operaia de intrare. este stabil n portul de intrare, interfaa 8255 genereaz un semnal < 110 >

Modul 1 (Port A) 7 Cuvnt de comand 0 1 0 1 1 1/0 x x x

Arhitectura sistemelor de calcul

de ntrerupere (INTR) pe frontul cresctor al semnalului de strob ( STBA , STBB ). Acest semnal, 8 INTR, este dezactivat pe frontul PA7-PA0 PC 4,5 cztor al comenzii RD . 1 intrare ACKA PC6 INTEA Terminalele PC7 i PC6 nu 0 - ieire OBFA PC7 manipuleaz semnale de comand privind intrarea i pot fi utilizate pentru a transfera Intr A PC3 bidirecional date. WR I/E PC4,5 Dac portul A (sau portul B) a fost programat ca port de Modul 1 (Port B) ieire, n momentul n care 7 Cuvnt de comand 0 microprocesorul l ncarc cu o 1 x 1 x x 1 0 x 8 dat, interfaa 8255 genereaz PB7-PB0 un semnal de comanda ACKB PC2 OBFA ( OBFB ), activ pe nivel INTEB OBFB PC1 cobort. Logica extern poate fi astfel informat asupra posibilitii de preluare a datelor Intr B PC0 din portul de ieire WR corespunzator. Logica extern semnaleaz interfeei faptul c a INTEA comandat prin PC6 INTEB comandat prin PC2 preluat informaia, din portul de ie ire, prin activarea semnalului Figura 6.16. b. Configuraiile porturilor i cuvintele de ACKA(ACKB). Pentru ca comand corespunztoare pentru operaia de ieire. microprocesorul s poat plasa o nou dat n portul de ieire, el trebuie s atepte un semnal de ntrerupere INTRA, (INTRB), care este activat pe frontul cresctor al semnalului ACKA ( ACKB ). Terminable PC4 i PC5 nu manipuleaz semnale de comand n cadrul operaiei de ieire, n Modul 1. Ele pot fi foloslte pentru transferul bidirecional de date.
Modul 1 (Port A) 7 Cuvnt de comand 0 1 0 1 0 1/0 x x x

Modul 2, definit ca magistral de I/E, bidirecional strobat, asigur posibiliti de comunicare cu un periferic, pe o magistral de 8 bii. Semnalele de dialog sunt folosite pentru a menine disciplina de transfer a informaiei pe magistral. Modul 2 este folosit cu grupul A de terminale, care se refer la portul A (PA0 , PA1) i la biii PC3 PC7, din portul C (figura 6.14). Configurarea i cuvntul de comand ale circuitului n acest mod sunt prezentate n figura 6.17. Semnificaiile semnalelor sunt prezentate mai jos:

INTRA, cererea de ntrerupere, activ pe nivel ridicat i emis de interfaa 8255, la termiualul PC3, ntrerupe microprocesorul att pentru operaia de intrare, ct i pentru cea de ieire;

< 111 >

Arhitectura sistemelor de calcul


OBFA , n cadrul unei operaii de ieire, va fi activ pe nivel cobort, pentru a indica faptul c microprocesorul a nscris date n portul de ieire A ; ACK , n cadrul unei operaii de ieire, activ pe nivel cobort, va comanda tamponul de ieire, cu trei stri, al portului A, pentru a furniza data n exterior. ACK , la nivel ridicat, va aduce tamponul de ieire n starea de mare impedan; INTE1, bistabil intern de activare/dezactivare a ntreruperilor, asociat cu semnalul OBF, este poziionat n unu/zero, prin PC6; STBA , n cadrul operaiei de intrare, activ pe nivel cobort, va fora data de intrare n registrul portului de intrare A (PA); IBFA, n cadrul operaiei de intrare, activ pe nivel ridicat, va specifica faptul c data a fost ncrcat n registrul portului de intrare A; INTE2, bistabil intern de activare/dezactivare a ntreruperilor, asociat cu semnalul IBF, este poziionat n unu/zero, prin PC4.
PC3 INTRA

Operaia de intrare, n Modul 2 are loc prin furnizarea dalelor de ctre PA7-PA0 periferic, la intrarea portului A i foarea lor n portul respeciv, folosind strobul OBFA PC7 STBA. La ncrcarea registrului portului ACKA INTE1 PC8 A se genereaz semnalul IBFA, activ pe nivel ridicat. Semnalul de ntrerupere pentru microprocesor, INTRA, este STBA INTE2 PC4 P generat cnd semnalele RD , STBA sunt WR IBFA PC5 inactive i IBFA activ. INTRA este RD PC2-PC0 I/E dezactivat prin generarea comenzii de citire RD , de ctre microprocesor. cuvnt de comand Semnalul IBFA este dezactivat odatS cu 1 1 x x x 1/0 1/0 1/0 dezactivarea eomenzii RD . PC2 PC0 Modul grupului B Port B Operaia de ieire, n Modul 2 se 1 intrare 1 intrare 1 Mod 1 realizeaz prin furnizarea datelor la 0 ieire 0 ieire 0 Mod 0 intrarea D7 D0 i a semnalului WR , de Figura 6.17. Configuraia terminalelor ctre microprocesor. Datele se transfer n interfeei 8255 n modul 2 i cuvntul de registrul portului de ieire A, fapt care va comand corespunztor. conduce la activarea semnalului OBFA . Acest semnal poate fi testat de ctre echipamentul periferic, pentru a putea stabili disponibilitatea datelor la portul de ieire. Preluarea lor de ctre echipamentul periferic este asigurat prin semnalul ACKA , activ pe nivel cobort. Semnalul ACKA dezactiveaz OBFA i activeaz cererea de intrerupere INTRA, pentru a anuna microprocesorul c datele au fost preluate de ctre periferic.
8

< 112 >

Arhitectura sistemelor de calcul

Logica intern de selecie gestioneaz transferul datelor i al informaiei de comanda pe magistrala intern. Prin selecia porturilor A, B i C se efectueaz operaii de I/E. Logica intern va asigura transferul datelor ntre magistrala microprocesonilui i porturile de I/E ale interfeei 8255. Configuraia funcional a fiecrui port i poziionarea n unu sau zero a biilor portului C sunt controlate prin software, folosind cuvinte de comand corespunzatoare. Selectarea registrului de comand. i ncrcarea lui cu un cuvnt de comand permit logicii interne s efectueze operaiile descrise n cadrul acestui cuvnt. Cuvntul de comand conine un cmp de cod de operaie, care definete modul de operare sau poziionarea unor bii ai portului C, n funcie de valoarea 1, respectiv 0 a bitului 7, din cuvlntul de comand. Definirea modului de operare se realizeaz prin ncrcarea n interfaa 8255 a unui cuvnt de comand cu bitul 7 egal cu unu. n figura 6.18 se prezint codificarea cuvntului de comand pentru a specifica configuraia celor 24 de linii de legatur a interfeei programabile cu periferia. Astfel, pot fi specificate independent modurile porturilor A i B, n timp ce portul C poate fi tratat independent sau separat ca dou porturi de cite 4 bii solicitate de modurile de definire ale porturilor A i B.
Cuvntul de comand bit 7 1 bit 6 1/0 bit 5 1/0 bit 4 1/0 bit 3 1/0 bit 2 1/0 bit 1 1/0 bit 0 1/0

Grup B bitul 0 port C (PC3 PC0); 1 intrare; 0 ieire; bitul 1 port B; 1 intrare; 0 ieire; bitul 2 Selecie Mod; 1 Mod 0; 0 Mod 1; Grup A bitul 3 port C (PC7 PC4); 1 intrare; 0 ieire; bitul 4 port A; 1 intrare; 0 ieire; biii 5,6 Selecie Mod; 00 Mod 0; 01 Mod 1; 1x Mod 2. Figura 6.18. Structura cuvntului de comand pentru definirea modului de operare al interfeei 8255.

ncrcarea unui cuvnt de comand cu bitul 7 egal cu zero (figura 6.19) permite comanda individual a biilor portului C, prin poziionarea lor n zero sau unu. Selecia < 113 >

Arhitectura sistemelor de calcul

bitului din portul C se realizeaz prin biii 3 l, din cuvntul de comand. Bitul 0, al cuvntului de comand definite foraz n zero sau unu a bitului selectat, din portul C. Biii 6 4 ai cuvntului de comand nu sunt folosii.
Cuvntul de comand bit 7 0 bit 6 0 bit 5 0 bit 4 0 bit 3 1/0 bit 2 1/0 bit 1 1/0 bit 0 1/0

bitul 0 bitul selectat se poziioneaz n unu / zero; 1 poziionare n unu; 0 poziionare n zero; biii 3,2,1 selecie bit; 000 bit 0; 001 bit 1; 010 bit 2; 011 bit 3; 100 bit 4; 101 bit 5; 110 bit 6; 111 bit 7; Figura 6.19. Structura cuvntului de comand pentru poziionarea n unu/zero a biilor portului C.

6.4.

Interfaa USB (Universal Serial Bus)

6.4.1. Introducere

Studiul portului USB poate prea puin nspimnttor datorit specificaiilor USB care au 650 de pagini dar i listei impresionante de standarde asociate (USB Class Standards). Dintre standardele asociate face parte i HID Class Specifcation care detaliaz operaiile obinuite cu dispozitivele (tastatur, maus etc.) i care provine din HID (Human Interface Devices) Class. Dac proiectai un port USB (USB Host) atunci va trebui s alegei ntre trei standarde (Hot Controller Interface Standard). Nici unul dintre aceste standarde nu este specificat n USB 2.0. n continuare se vor prezenta succint informaiile eseniale legate de interfaa USB. Standardele interfeei USB ct i specificaiile conexe trebuie studiate n funcie de omeniul activitii desfurate (proiectare hardware sau software). Mai jos (tabelul 6.4) este prezentat structura standardului USB 2.0 i informaiile coninute de capitolele acestuia precum i recomandri privind parcurgerea informaiilor pentru nelegerea interfeei USB.

< 114 >

Arhitectura sistemelor de calcul TABELUL 6.4. Capitol Nume 1 Introducere Descriere Nr. de pagini 2 8

2 3

Conine scopul i motivaia USB. Informaia cea mai important prezentat n acest capitol este referirea la Universal Serial Bus Device Class Specifications. Nu este necesar citirea acestui capitol. Termeni i notaii Capitol explicativ necesar oricrui standard. Informaii de baz Capitolul prezint scopul interfeei USB care este o interfa Plug and Play simpl (pentru utilizator nu i pentru proiectant). Sunt prezentate noiunile de vitez sczut, complet i nalt (Low, Full and High Speed) i o list a funciilor interfeei. Nici acest capitol nu este necesar a fi citit. Structura Din acest punct trebuie nceput studiul. arhitecturii Capitolul furnizeaz noiunile de baz a sistemului USB: topologia, viteza de transfer a datelor, tipurile fluxurilor de date, specificaii electrice de baz etc. Modelul fluxului n acest capitol se prezint caracteristicile de date USB fluxlui de date al portului serial universal (Universal Serial Bus). Sunt prezentai termeni ca: endpoints i pipes i este analizat fiecare tip de flux de date (Control, Interrupt, Isochronous i Bulk). Acest capitol poate fi destul de dificil nceptorilor dar trebuie citit dac se dorete cunoaterea tipurilor de transfer a interfeei USB i a proprietilor acestora. Caracteristici n acest capitol se prezint doi conectori USB mecanice standard. Este prezentat conectorul de tip A destinat transferului n aval (downstream) i conectorul de tip B sestinat transferului n amonte (upstream). n acest fel este imposibil s se conecteze un cablu ntre dou porturi upstream. Toate cablurile detaabile trebuie s fie de vitez full/high pe cnd cablurile de vitez sczut (Low) trebuie conectate (fixate) la aplicaie. n afara de faptul c trebuie s aruncai o privire asupra conectorilor, acest capitol poate fi srit (dac nu intenionai s fabricai conectori sau cabluri USB). Proiectanii PCB pot gsi aici dimensiunile standard pentru conectori. < 115 >

10

60

33

Arhitectura sistemelor de calcul TABELUL 6.4. (continuare) 7 Caracteristici electrice Capitolul 7 prezint semnalele electrice la nivelul de baz, impedana de linie, timpii de cretere i de descretere, specificaiile driver/receptor i codificarea la nivel de bit, structura biilor etc. Cea mai important parte a acestui capitol este identificarea vitezei dispozitivului prin utilizarea unui rezistor pentru interferena liniei de date sau a magistralei dispozitivelor alimentate versus dispozitivelor autoalimentate. n afar de cazul cnd proiectai trranscivere USB la nivel de baz putei trece superficial prin acest capitol. Schemele corecte a dispozitivelor USB trebuie s arate ce valoare a rezistorului terminal este necesar pentru adaptarea impedanei magistralei. Protocolul Se exploreaz protocolul USB prezentndu-se pachetele la nivel de bit i discutndu-se despre sync, pid, address, endpoint, CRC fields. Cei mai muli dezvoltatori nu trebuie s cunoasc aceste detalii deoarece circuitul integrat rezolv problema protocolului. n orce caz, nelegerea modului de raportare a strii i dialogul ntre componente este necesar. USB Device Frame Acesta este capitolul cel mai folosit deoarece Work descrie enumerarea pe magistral (bus enumeration) i cererea codurilor (request codes): set, address, get descriptor etc, care reperezinta noiunile cele mai folosite din protocolul USB. Capitolul trebuie citit n detaliu. USB Host Se descrie gazda (host) ceea ce presupune: Hardware and generarea frame i microframe, ceriniele host controller i modelul driver universal serial bus. Software Dac nu se proiectaz un Host, capitolul poate fi srit. Hub Specification Se detaliaz modul de lucru al USB hub (hub punct cetral): configurarea hub, split transactions, standard descriptors for hub class etc. Dac nu se proiectaz un Hub, capitolul poate fi srit.

75

45

10

23

11

143

Pentru realizarea driver-elor (software) pentru perifericele USB, atunci trebuie citite numai capitolele:

< 116 >

Arhitectura sistemelor de calcul 4 - Architectural Overview 5 - USB Data Flow Model 9 - USB Device Frame Work, and 10 - USB Host Hardware and Software. Proiectarea hardware (electronica) se poate face citind capitolele: 4 - Architectural Overview 5 - USB Data Flow Model 6 - Mechanical, and 7 - Electrical. 6.4.2. Prezentarea Universal Serial Bus Standardul USB 1.1 a fost suficient de complex nainte ca High Speed s fie introdus n USB 2.0. n scopul nelegerii principiilor fundamentale a USB se vor omite noiunile legate de dispozitivele High Speed. USB versiunea 1.1 suport dou viteze, viteza complet (full) de 12 Mbii/s i viteza sczut (low) de 1,5 Mbii/s. Modul de 1,5 Mbii/s datorit faptului c este mai sczut este mai puin influenat de perturbaiile electromagnetice (EMI) i acest lucru reduce costul mrgelelor de ferit i a calitii componentelor. De exemplu, cristalele de cuar pot fi nlocuite reyonatori mai ieftini. USB 2.0 utilizat la majoritatea calculatoarelor de birou are i viteza nalt de 480 Mbii/s (high) i completeaz Firewire Serial Bus. 6.4.2.1. Vitezele USB o High Speed 480 Mbits/s o Full Speed 12 Mbits/s o Low Speed 1.5 Mbits/s Magistrala serial universal (Universal Serial Bus) este de tip host controlled i nu poate fi dect un host pe magistral. De asemenea specificaiile nu permit nici un fel de aranjament multimaster. n orice caz, specificaiile On-The-Go care reprezint o adaptare a standarului USB 2.0 a introdus Host Negotiation Protocol care permite la dou dispozitive s negocieze rolul de host. Acest lucru se face n scopul limitrii la o singur conexiune punct la punct cum ar fi cu un telefon mobil sau un personal oragniser i nu hub multiple sau configuraii multiple ale dispozitivelor desktop. USB host este rspunztor de toate tranzciile i perogramarea limii de band. Datele pot fi transmise prin diferite metode utiliznd token-based protocol. n opinia multor specialiti, topologia magistralei USB este limitativ. Una dintre inteniile iniiale a fost ca USB s reduc numrul de cabluri de conexiune. Proiectanii firmei Apple susin c ideea provine de la tehnologia Apple Desktop Bus prin care tastatura mausul i alte cteva periferice pot fi conectate npreun n serie (daisy chained) folosind un singur cablu.

< 117 >

Arhitectura sistemelor de calcul n orice cazn tehnologia USB folosete topologia stea extins, similar celei 10BaseT Ethernet. Aceasta impune utilizarea unui hub undeva ceea ce duce la creterea preului de cost, creterea numrului de cutii pe birou i creterea numrului de cabluri. Multe dispozitive au hub USB integrate. De exemplu tastatura poate conine un hub conectat la calculator. Mausul i alte dispozitive cum ar fi camera digital pot fi conectate uor n locul tastaturii (sau: dup tastatur nseriat cu aceasta). Monitoarele reprezint un alt periferic dintr-o lung list de periferice care au hub-uri incluse. La topologia stea extins, spre deosebire de conexiunea daisy chain, dispozitivele conectate au anumite beneficii. Mai nti alimentarea fiecrui dispozitiv poate fi monitorizat i chiar oprit dac se produce o anumit condiie fr ca celelalte dispozitive USB s fie ntrerupte. Toate dispozitivele cu viteza high, full sau low pot fi acceptate, prin filtrarea de ctre hub a tranzaciilor cu vitez high i full pe care dispozitivele de vitez sczut nu le vor recepiona. Pna la 127 de dispozitive pot fi conectate la orice magistrala USB la orice moment. Dac sunt necesare mai multe dispozitive se adaug un nou port/host. La nceput, primele USB host aveau dou porturi; cei mai muli productori au considerat acest lucru restrictiv i au nceput s introduc 4 sau 5 porturi (port host card) cu un port intern pentru hard disk. Primele host-uri aveau un singur controler USB i atunci cele dou porturi mpreau aceeai band USB disponibil. O dat cu creterea necesarului de band vedem cartele multiport cu dou sau mai multe controlere fiecare cu canalul su. Controlerele host USB au propriile lor specificaii. La USB 1.1 sunt dou specificaii Host Controller Interface: UHCI (Universal Host Controller Interface) dezvoltat de Intel care a pus o ncrctur software (Microsoft) mai mare permind un hardware mai ieftin i OHCI (Open Host Controller Interface) dezvoltat de Compq, Microsoft i National Semiconductor care are o mai mare ncrctur hardware (Intel) i un soft mai simplu. Prin apariia USB 2.0 noi specificaii Host Controller Interface au fost necesare pentru descrierea la nivel de registru specifice USB 2.0. A aprut EHCI (Enhanced Host Controller Interface). Mai multe firme au cooperat pentru realizarea unei interfee standard i a unui singur driver necesar acesteia. USB aa cum sugereaz i numele su este o magistral serial. Se folosesc 4 fire ecranate din care dou sunt pentru alimentare (+5V i GND) iar celelalte dou sunt fire rsucite cu semnal diferenial de date. Se folosete schema de codare NRZI (Non Return to Zero Invert) pentru transmiterea datelor cu un cmp de sincronizare pentru sincronizarea ceasului la host i la receptor. USB suport plug and plug (conectarea i reconectarea) cu ncrcarea i descrcarea dinamic a driver-elor. Utilizatorul conecteaz dispozitivul la magistral iar host-ul va detecta acest lucru, va interoga dispozitivul nou inserat i va ncrca drive-ul corespunztor i afieaz pe ecran faptul c driver-ul a fost instalat. nmomentul n care utilizatorul a terminat, acesta deconecteaz cablul, host-ul detecteaz acest lucru i elimin driver-ul. ncrcarea driver-ului potrivit este produs de folosirea combinaiei PID/VID (Product ID/Vendor ID). VID este furnizat de forumul implementatorilor USB contra cost i acesta este un alt puct forte al USB. Ultimile informaii privind taxele pot fi gsite la USB Implementors Website. < 118 >

Arhitectura sistemelor de calcul Alte organizaii de standardizare furnizeaz un extra VID pentru activiti necomerciale cum ar fi educaia i cercetarea sau pentru pasionaii domeniului. Muli fabricani de circuite integrate au propriile lor combinaii VID/PID care pot fi folosite la dispozitive necomerciale. Ali productori de circuite integrate pot chiar s furnizeze un PID pentru a fi folosit cu VID-urile acestora n dispozitivele dumneavoastr comerciale. Alt facilitate notabil a USB reprezint modurile de transfer. USB suport transferuri Control, Interrupt, Bulk i Isochronous. De exemplu, modul Isochronous permite unui dispozitiv s rezerve o anumit lime de band cu o ntrziere (latency) garantat. Acest lucru este ideal pentru aplicaiile audio i video unde congestionarea magistrale poate produce pierderea datelor sau a frame-urilor. Despre celelalte moduri de transfer se va discuta mai trziu. Fiecare mod de transfer permite proiectantului s lucreze cu diverse domenii cum sunt: detecia i corecia erorilor, ntrzieri i limi de band garantate. 6.4.2.2. Conectorii Toate dispozitivele au o conexiune upstream ctre host i toate host-urile au o conexiune downstream ctre dispozitive. Conectorii upstream i cele downstream nu sunt interschimbabili din punct de vedere mecanic ceea ce elimin posibilitatea conectrii greite cum at fi conectarea unui hub cu un port downstream la un port downstream. Sunt dou tipuri de conectori: conector de tip A i conectori de tip B. Conectorul de tip A se folosete ntotdeauna la upstream i se ntlnete de obicei la host-uri i hub-uri. De exemplu conectorul de tip A se ntlneste la calculatoare la main boards Conector USB de tip A. i la hub-uri. Conectorul de tip B se folosete la downstream i n conseciin el se va gsi la dispozitive. Se gasesc cabluri de conectare de la conectori de tip A la conectori de tip A i aceasta excepie de la standardul USB se Conector USB de tip B. face n scopul conectrii a dou calculatoare. O alt excepie o reprezint cablurile prelungitoare care au la un capat un Figura 6.20. Conectorii conector tat (de tip A sau B) i un conector de tip mam la portului USB. cellalt capt. Specificaiile USB 2.0 introduc o corecie i definete conectorii mini-USB B. Aceti conectori sunt necesari dispozitivelor electronice miniaturale cum sun telefoanele mobile sau organisers (agende electronice PDA Personal Digital Assistant). Recent au fost elaborate specificaiile On-The-Go care adaug funcionalitatea peer-to-peer porturilor USB. Acest lucru permite folosirea USB host la telefoane mobile sau la agende electronice i n acest fel s-au introdus specificaiile prizei mini-A i a conectorului tat mini-A i a prizei mini-AB. TABELUL 6.5. Numrul pinului 1 2 3 4 Culoarea cablului Rou Alb Verde Albastru < 119 > Funcie VBUS (5 voli) DD+ Mas

Arhitectura sistemelor de calcul 6.4.2.3. Caracteristici electrice n afar de situaia cnd realizai circuite integrate pentru dispozitive/transmitoare USB sau host/hub USB nu trebuie s cunoatei n amnunt specificaiile electrice. n continuare se va prezenta esenialul despre acestea. USB folosete o pereche de fire pentru transmiterea diferenial a datelor. Datele sunt codificate folosind NRZI i biii sunt combinai n aa fel nct s se asigure trranziia adecvat n fluxul de date. La dispozitivele de vitez low i full, un 1 diferenial este transmis prin polarizarea liniei D+, legat la mas printr-o rezisten de 15K ohm, la peste 2,8V i a liniei D-, legat la 3,6V printr-o rezisten de 1,5K ohm, la o tensiune sub 0,3V. Un 0 diferenial se obine cu D- la o tensiune mai mare ca 2,8V i D+ la o tensiune mai mic de 0,3V, linii conectate cu rezistenele specificate mai sus. Receptorul definete un 1 diferenial ca D+ cu 200mV mai mare ca D- i 0 diferenial ca D+ cu 200mV mai mic dect D-. Polaritatea semnalului este inversat n funcie de viteza magistralei. Adesea termenii de stare J i K sunt folosii pentru specificarea nivelelor logice. La vitez sczut (low) o stare J reprezint un 0 diferenial. La vitez nalt (high) starea J reprezint un 1 diferenial. Transmitoarele USB (transceivers) au att ieiri difereniale ct i single ended. Anumite stri ale magistralei sunt indicate prin semnale single ended cu D+, D- sau amndou. De exemplu un zero single ended (SE0) poate fi folosit pentru a semnala un reset al unui dispozitiv dac ine mai mult de 10ms. Un SE0 este generat prin punerea att a liniei D+ ct i a liniei D- la nivel sczut (< 0,3V). Ieirile single ended i difereniale reprezint informaii importante dac folosii un transceiver i un FPGA ca dispozitiv USB. You cannot get away with sampling just the differential output. (Nu putei merge mai departe cu ieirea drept ieire diferenial!?) Magistralele de vitez sczut (low)/ complet (full) au o impedan caracteristic de 90 ohm +/- 15%. Ieste important s se citeasc schema cnd se aleg rezistenele serie de adaptare a impedanei pentru D+ i D-. Orice schem bun trebuie s specifice aceste valori i toleranele acestora. Viteza nalt (high) 480 Mbiti/s) folosete un curent constant de 17,78 mA pentru semnal n scopul reducerii zgomotului. 6.4.2.4. Identificarea vitezei Un dispozitiv USB trebuie s indice vitezele sale prin punerea att a liniei D+ ct i a liniei D- la 3,3 voli. Un dispozitiv cu vitez complet (full), prezentat mai jos, va folosi o rezisten conectat la D+ pentru a specifica acest lucru. Rezistorul prezent la dispozitiv este folosit de altfel i de ctre host sau hub pentru a detecta prezena dispozitivului conectat la portul su. Fr aceste rezistene USB consider c nu s-a conectat nimic la magistral. Unele dispozitive au aceste rezistene n circuitul integrat, rezistene ce pot fi conectate sau deconectate prin program, altele au rezistena n exterior. De exemplu Philips Semiconductor folosete tehnologia SoftConnectTM. La prima conectare la magistral aceast tehnologie permite microcontrolerului s iniializeze funciile dispozitivului USB nainte de a valida conectarea rezistorului de identificare a vitezei i care indic faptul c dispozitivul este conectat la magistral. < 120 >

Arhitectura sistemelor de calcul Dac rezistena ar fi conectat imediat la Vbus atunci acest lucru ar indica host-ului un dispozitiv conectat. Host-ul va ncerca s reseteze (iniializeze) dispozitivul i s cear descriptorul atunci cnd microprocesorul nu a nceput nc s iniializeze funciile USB ale dispozitivului. Ali fabricani precum Cypress Semiconductor folosesc de asemenea o rezisten programabil pentru Re-NumerationTM la dispozitivele EzUSB unde un singur dispozitiv poate fi enumerat pentru o funcie cum ar fi In field programming cnd este deconectat de la magistral sub controlul programului (firmware) i enumerat ca un dispozitiv diferit ntr-o fraciune de secund. Multe dispozitive EyUSB nu au nici un fel de memorie Flash sau OTP ROM pentru stocarea codului. Acestea sun bootstraped (pornite) la conectare.

Figura 6.21. Dispozitiv full speed cu rezisten pull up conectat la D+

Figura 6.22. Dispozitiv low speed cu rezisten pull up conectat la D-

Trebuie notat faptul c nu a fost prezentat identificarea vitezei nalte (high). Dispozitivele de vitez nalt vor porni conectndu-se ca dispozitive de vitez complet (full) 1,5k la 3,3V. O dat ce acestea sunt conectate vor transmite un semnal de nalt < 121 >

Arhitectura sistemelor de calcul vitez pe durata resetului stabilind o conexiune de nalt vitez dac hub-ul suport modul de nalt vitez. Dac dispozitivul lucreaz n modul de nalt vitez, retistena pull up este ndeprtat pentru echilibrarea liniei. Un dispozitiv compatibil USB 2.0 nu trebuie neaprat s poat suporta modul de vitez nalt. Aceasta permite producerea dispozitivelor ieftine la care viteza nu este critic. Acesta este de asemenea cazul dispozitivelor de vitez sczut USB 1.1 care nu trebuie s suporte i viteza complet (full). Oricum, un dispozitiv de vitez nalt poare s nu suporte modul de vitez sczut. Acesta trebuie s suporte doar modul de vitez complet (full) necesar la conectare dup care este negociat modul de vitez high. Un dispozitiv de intrare compatibil USB 2.0 (downstream) hub sau host suport toate cele trei moduri de vitez: high speed, full speed i low speed. 6.4.2.5. Alimentarea VBUS Unul din avantajele USB este reprezentat de dispozitivele alimentate de la magistral dispozitive care nu mai necesit surs de alimentare extern. Un dispozitiv USB specific consumul su de putere n uniti de 2 mA n descriptorul configuraiei care va fi studiat n detaliu mai trziu. Un dispozitiv nu poate crete consumul su de putere peste valoarea specificat la enumerare, chiar dac acesta pierde alimentarea extern. Sunt trei clase de funcii USB:
o o o

Low-power bus powered functions High-power bus powered functions Self-powered functions

Funcia de alimentare de joas putere a magistralei ia toat puterea de la VBUS i nu poate furniza mai mult de o unitate de ncrcare. Specificaiile USB definesc o unitate de ncrcare ca fiind 100 mA. Magistrala de alimentare de joas putere trebuie de asemenea s fie proiectat s lucreze pna la tensiunea cea mai joas VBUS de 4,40V i pna la tensiunea maxim de 5,25V msurat la conectorul upstream al dispozitivului. Pentru dispozitivele de 3,3V regulatorul este obligatoriu. Funcia de alimentare de nalt putere a magistralei ia puterea de la magistral i nu poate furniza mai mult de o unitate pn cnd a fost configurat dup care poate furniza 5 uniti (500 mA max) specificate de ctre descriptor. Funcia magistralei de nalt putere trebuie s poat fi detectat i enumerat la tensiunea minim de 4,40V. Cnd se opereaz la ncrcarea maxim (5 uniti), o tensiune minim VBUS de 4,75V este specificat cu un maxim la 5,25. Msurtorile se fac la conectorul upstream. 6.4.2.6. Protocolul Spre deosebire de interfaa serial la care formatul datelor transmise nu este definit, USB utilizeaz protocoale pe mai multe nivele. Orice tranzacie a portului USB const n: Token Packet (un antet ce definete ce ne ateptm s urmeze); < 122 >

Arhitectura sistemelor de calcul Optional Data Packet (coninnd datele utile); Status Packet (folosit pentru confirmarea tranzaciei i care furnizeaz mijloace pentru corecia erorilor).

Datele sunt transmise de ctre USB ncepnd cu cel mai puin semnificativ bit. Structura unui pachet USB conine urmtoarele cmpuri: Sync toate pachetele trebuie s nceap cu un cmp sync. Acest cmp are o lungime de 8 bii la viteza low i full i 32 de bii la viteza high i este folosit la sincronizarea ceasului receptorului cu cel al transmitorului. Ultimii doi bii semnaleaz faptul c urmeaz cmpul PID; PID reprezint identificatorul pachetului (Packet ID). Acest cmp este folosit pentru identificarea pachetului care urmeaz a fi transmis; ADDR cmpul adres specific dispozitivul cruia i este destinat pachetul. Acest cmp are apte bii i deci se pot adresa 127 de dispozitive. Adresa zero este folosit pentru dirijarea pachetelor ce au adrese pentru dispozitive nealocate inca si deci aceast adres nu poate fi alocat unui dispozitiv; ENDP cmpul endpoint care poate avea pna la 4 bii permind 16 posibiliti endpoint; CRC Codul ciclic de eroare (Cyclic Redundancy Checks); EOP End of packet sfritul pachetului.

USB folosete patru tipuri de pachete: token packets care indic tipul tranzaciei care urmeaz, data packets care conin datele de transmis, handshake packets care sunt folosite pentru ncheierea transmisiei (handshake) coinnd informaii despre confirmarea transmisiei i erorile produse i start of frame packets care indic nceputul unui nou cadru. Token Packets Exist trei tipuri de pachete token: In care informeaz dispozitivul USB care host dorete s citeasc informaia, Out care informeaz dispozitivul USB care host dorete s transmit informaia, Setup folosit pentru iniierea controlului transferurilor. Pachetele token au formatul urmtor: Sync PID ADDR ENDP CRC5 EOP Data Pakets Exist dou tipuri de pachete de date fiecare dintre acestea fiind capabil sa transmit pna la 1024 octei de date: Data0 i Data1. Modul High Speed defineste nc dou PID-uri pentru date: DATA2 i MDATA. < 123 >

Arhitectura sistemelor de calcul Pachetele de date au urmtorul format: Sync PID Data CRC16 EOP

Dimensiunea maxim a datelor pentru viteza low este de 8 octei, pentru viteza full este de 1023 de octei iar pentru viteza high este de 1024 de octei. Handshake Packets Sunt trei tipuri de pachete handshake care constau n esen numai din PID: ACK care semnaleaz c datele au fost recepionate cu succes, NAK raporteaz c temporar, dispozitivul nu poate recepiona sau transmite date sau, pe durata tranzaciei unei ntreruperi informeaz host-ul c nu sunt date de transmis, STALL este necesar intervenia host-ului. Pachetele handshake au urmtorul format: Sync PID EOP Start of Frame Packets Pachetele SOF constau din cadre de 11 bii i sunt transmise de fost la fiecare interval de o milisecund pe magistralele de vitez full sau la fiecare 125s pe magistralele cu vitez high. Pachetele handshake au urmtorul format: Sync PID Frame Number CRC5 EOP

6.5.

Interfeele microcontrolerelor

Cele dou circuite integrate prezentate: interfaa serial 8251 i interfaa paralel 8255 sunt circuite utilizate n realizarea sistemelor de calcul cu microprocesor. Microcontrolerele dein i ele, integrate pe acelai cip cu unitatea central, astfel de interfee mai simple sau mai complexe. De regul un microcontroler deine o interfa serial asincron pentru comunicaia cu alte sisteme de calcul, o interfa serial sincron de mare vitez pentru comunicaia cu alte componente integrate care se pot utiliza n sistem mpreun cu microcontrolerul i un sistem de intrri / ieiri numerice similar cu interfaa paralel prezentat. Se va prezenta n continuare convertorul analog-numeric al microcontrolerului PIC 16F87x, reprezentativ pentru familia sa.

< 124 >

Arhitectura sistemelor de calcul 6.5.1. Modulul convertor analog-digital (A/D) Convertorul analog-digital are cinci intrti la dispozitivele cu 28 de pini i opt intrri la cele cu 40/44 de pini. Conversia fiecrei intrri se face pe zece bii. Modului A/D are o referin de tensiune nalt i o referin de tensiune sczut selectabile prin program prin anumite combinaii ntre VDD, VSS, RA2 sau RA3. Convertorul A/D poate funciona i n modul SLEEP dac se asigur pentru convertorul analog-digital semnal de ceas de la oscilatorul RC intern. Convertorul analog digital are patru regitrii: registrul rezultat al celui mai semnificativ octet al convertorului analog-digital (ADRESH); registrul rezultat al celui mai puin semnificativ octet al convertorului analog-digital (ADRESL); registrul de control 0 (ADCON0); registrul de control 1 (ADCON1).

Registrul ADCON0 controleaz funcionarea modulului analog-digital. Registrul ADCON1 configureaz pinii portului care pot fi: intrri analogice (RA3 poate fi, de asemenea, rerina de tensiune) sau intrri/ieiri digitale. Registrul ADCON0 (adresa 1Fh) R/W-0 ADCS1 bit 7 R/W-0 ADCS0 bit 6 R/W-0 CHS2 bit 5 R/W-0 CHS1 bit 4 R/W-0 CHS0 bit 3 R/W-0 GO/DONE bit 2 U-0 bit 1 R/W-0 ADON bit 0

R = bit de citire; W = bit de scriere U = bit neimplementat, citit ca zero; n = valoare la resetul power-on; '1' = bitul este setat; '0' = bitul este resetat; x = valoarea bitului este nu este cunoscut bit 7-6 ADCS1:ADCS0 biii de selecie a ceasului de conversie A/D ADCON1 ADCON0 Ceas de conversie <ADCS2> <ADCS1:ADCS0> 0 00 FOSC/2 0 01 FOSC/8 0 10 FOSC/32 0 11 FRC (ceas derivat de la ceasul intern A/D RC) 1 00 FOSC/4 1 01 FOSC/16 1 10 FOSC/64 1 11 FRC (ceas derivat de la ceasul intern A/D RC)

< 125 >

Arhitectura sistemelor de calcul bit 5-3 CHS2:CHS0 bii de selecie ai canalului analogic 000 = canal 0 (AN0) 001 = canal 1 (AN1) 010 = canal 2 (AN2) 011 = canal 3 (AN3) 100 = canal 4 (AN4) 101 = canal 5 (AN5) 110 = canal 6 (AN6) 111 = canal 7 (AN7) Not: PIC16F873A/876A au implementat numai canalele A/D 0 pna la 4; combinaiile neimplementate sunt rezervate; nici una dintre aceste combinaii nu trebuie trimise la aceste dispozitive. bit 2 GO/DONE DONE bit de stare a conversiei 0 = conversie A/D n desfurare (setarea acestui bit pornete conversia A/D i bitul este ters automat de ctre hardware cnd conversia A/D este complet); 1 = conversia nu este n desfurare. bit 1 Neimplementat. La citire se citete zero. bit 0 ADON bit de alimentare a convertortorului A/D 1 = convertorul A/D este alimentat; 0 = convertorul este nealimentat i nu consum curent. Registrul ADCON1 (adresa 9Fh) R/W-0 ADFM bit 7 R/W-0 ADCS2 bit 6 U-0 bit 5 U-0 bit 4 R/W-0 PCFG3 bit 3 R/W-0 PCFG2 bit 2 R/W-0 PCFG1 bit 1 R/W-0 PCFG0 bit 0

R = bit de citire; W = bit de scriere U = bit neimplementat, citit ca zero; n = valoare la resetul power-on; '1' = bitul este setat; '0' = bitul este resetat; x = valoarea bitului este nu este cunoscut bit 7 ADFM bit de selecie a formatului rezultatului A/D 1 = aliniere dreapta. ase din cei mai semnificativi bii ai ADRESH sunt citii ca zero; 0 = aliniere stnga. ase din cei mai puini semnificativi bii ai ADRESL sunt citii ca zero.

< 126 >

Arhitectura sistemelor de calcul bit 6 ADCS2 bit de selecie a ceasului de conversie A/D ADCON1 ADCON0 Ceas conversie <ADCS2> <ADCS1:ADCS0> 0 00 FOSC/2 0 01 FOSC/8 0 10 FOSC/32 0 11 FRC (ceas derivat de la ceasul intern A/D RC) 1 00 FOSC/4 1 01 FOSC/16 1 10 FOSC/64 1 11 FRC (ceas derivat de la ceasul intern A/D RC) biii 5-4 Neimplementai. La citire sunt citii ca zero. biii 3-0 PCF3:PCF0 biii de control ai configurrii A/D PGF AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 VREF+ VREF- C/R <3:9> 0000 A A A A A A A A VDD VSS 8/0 0001 A A A A VREF+ A A A AN3 VSS 7/1 0010 D D D A A A A A VDD VSS 5/0 0011 D D D A VREF+ A A A AN3 VSS 4/1 0100 D D D D A D A A VDD VSS 3/0 0101 D D D D VREF+ D A A AN3 VSS 2/1 011x D D D D D D D D 0/0 1000 A A A A VREF+ VREF- A A AN3 AN2 6/2 1001 D D A A A A A A VDD VSS 6/0 1010 D D A A VREF+ A A A AN3 VSS 5/1 1011 D D A A VREF+ VREF- A A AN3 AN2 4/2 1100 D D D A VREF+ VREF- A A AN3 AN2 3/2 1101 D D D D VREF+ VREF- A A AN3 AN2 2/2 1110 D D D D D D D A VDD VSS 1/0 1111 D D D D VREF+ VREF- D A AN3 AN2 1/2 A = intrare analogic D = I/O digital C/R = numrul canalelor de intrare analogice/numrul tensiunilor de referin pentru conversia A/D Not: Dup RESET pinii dispozitivului care sunt multiplexai cu funcii analogice (Anx) sunt forai s fie intrri analogice. Regitrii ADRESH:ADRESL conin cei 10 bii ai rezultatului conversiei A/D. Cnd conversia A/D este complet, rezultatul este ncrcat n perechea de regitrii ai rezultatului, bitul GO/DONE (ADCON0<2>) este ters i fanionul ntreruperii A/D este set at . < 127 >

Arhitectura sistemelor de calcul Schema bloc a modulului convertorului A/D este prezentat n figu gura urmtoare.

Schema bloc a convertorului analog-digital

Dup ce modulul A/D a fost configurat, canalul selectat trebuie achiziionat nainte de a porni conversia analog-digital. Canalele de intrare analogice trebuie s aib biii corespunztori din registrul TRIS selectai ca intrri. Dup ce timpul de achiziie s-a scurs, conversia A/D poate s nceap. Paii care trebuie urmai pentru realizarea unei conversii analog-digitale sunt: 1. Configurarea modulului A/D: configurarea pinilor de intrare a semnalului analogic/referin de tensiune i a I/O digitale (ADCON1); selectarea canalelor de intrare A/D (ADCON0); selectarea ceasului de conversie (ADCON0); alimentarea modulului A/D (ADCON0). 2. Configurarea intreruperii A/D (dac este necesar): tergerea bitului ADIF; setarea bitului ADIE; setarea bitului PEIE; setarea bitului GIE. < 128 >

Arhitectura sistemelor de calcul 3. Se ateapt timpul de achiziie necesar. 4. Se pornete conversia: se seteaz bitul GO/DONE (ADCON0). 5. Se ateapt terminarea conversiei A/D prin: ; testarea prin program a bitului GO/DONE DONE; sau (dac ntreruperile au fost validate) se ateapt ntreruperea A/D. 6. Se citete rezultatul conversiei din perechea de regitrii ADRESH:ADRESL, se terge bitul ADIF, dac este necesar. 7. Pentru urmtoarea conversie se face salt la pasul 1 sau 2 dup necesiti. Timpul de conversie A/D este definit ca TAD. 6.5.1.1. Cerinele achziiei analog-digitale Pentru convertorul A/D trebuie ndeplinite anumite condiii pentru obinerea unui rezultat precis al conversiei analog-digitale. n primul rnd ncrcarea condensatorului de reinere (CHOLD) trebuie s fie complet pna la tensiunea prezent la intrarea analogic. Modelul intrrii analogice este prezentat n figura urmtoare:

Legend:

CPIN VT I LEAKAGE RIC SS CHOLD

= capacitate de intrare = tensiune de prag = curent de scurgere la pin datorat conexiunii = rezistena de interconectare = comutatorul de eantionare = capacitatea de eantionare/reinere (pentru DAC)

< 129 >

Arhitectura sistemelor de calcul Impedana sursei (RS) i impedana comutatorului de eantionare intern (RSS) afecteaz n mod direc timpul necesar ncrcrii capacitii CHOLD. Impedana comutatorului (RSS) variaz n funcie de tensiunea de alimentare a dispozitivului (VDD). Impedana maxim recomandat pentru sursa analogic este de 10 k. Dac impedana scade, timpul de achiziie poate fi sczut. Dup ce canalul intrrii analogice este selectat (schimbat), trebuie s se fac achiziia semnalului nainte de pornirea conversiei analog-numerice. Pentru a calcula timpul minim de achiziie se poate folosi ecuaia: TACQ = Timpul de setare a amplificatorului + Timpul de ncrcare a capacitii de reinere + coeficientul de temperatur = = = = = = = TAMP + TC + TCOFF 2s + TC + [Temperatura 250C) (0,05s/0C)] CHOLD (RIC + RSS + RS) ln(1/2047) - 120pF (1k + 7k + 10k) ln(0,0004885) 16,47s 2 s + 16,47 s + [500C 250C)(0,05 s/0C) 19,72 s

TC TACQ

n aceast ecuaie se folosete eroarea maxim permis de 1/2 LSB (1024 pai pentru A/D). 6.5.1.2. Selecia ceasului conversiei analog-digitale Timpul de conversie pe bit este definit ca TAD. Conversia A/D necesit cel puin 12TAD pentru conversia pe 10 bii. Sursa ceasului de conversie A/D este selectatabil prin program. Cele apte variante posibile pentru TAD sunt: 2TOSC 4TOSC 8TOSC 16TOSC 32OSC 64TOSC oscilatorul RC intern al modulului A/D (2-6s). Pentru o conversie corect A/D ceasul de conversie TAD trebuie astfel ales nct s asigure timpul minim de conversie de 1,6 s. Tabelul urmtor arat timpul TAD rezultat din frecvenele de operare ale dispozitivului i din sursa de ceas A/D selectat.

< 130 >

Arhitectura sistemelor de calcul Sursa ceasului AD (TAD) Operare ADCS2:ADCS1:ADCS0 2TOSC 000 4TOSC 100 8TOSC 001 16TOSC 101 32TOSC 010 64TOSC 110 (1,2,3) RC x11 Frecvena maxim a dispozitivului Max. 1,25MHz 2,5MHz 5MHz 10MHz 20MHz 20MHz (Nota 1)

Nota: 1. Sursa RC are un TAD tipic de 4s, dar vatriaz ntre 2-6s. 2. Cnd frecvena dispozitivului este mai mare dect 1 MHz, sursa de ceas RC A/D este singura recomandat pentru operarea SLEEP. 3. Pentru dispozitive cu tensiune de alimentare extins se vor studia car act er i st i ci l e el ect r i ce. 6.5.1.3. Conversia A/D Dac se terge bitul GO/DONE pe timpul unei conversii atunci acea conversie este abandonat iar perechea de regitrii cu rezultatul conversiei nu vor fi modificai, Dup abandon, o nou achiziie de date este pornit automat pentru canalul selectat. Bitul GO/DONE poate atunci fi setat pentru a porni conversia. n figura de mai jos, dup ce bitul GO este setat, primul segment de timp este minimum TCY i maximum TAD.

Ciclii TAD ai conversiei A/D Tcy reprezint un ciclu main (fosc/4) Regitrii asociai convertorului analog-digital sunt: INTCON, PIR1, PIE1, ADRESH, ADRESL, ADCON0, ADCON1, TRISA, PORTA, TRISE, PORTE.

< 131 >

Arhitectura sistemelor de calcul

CAPITOLUL 7 CIRCUITE SPECIALE


7.1. Introducere

Sistemele de calcul sunt prevzute suplimentar cu circuite destinate unor funcii care care duc la creterea versatilitii arhitecturii prin adugarea unor funcii noi. Astfel, printre circuitele suplimentare adugate unei arhitecturi, se pot meniona: circuitul pentru gestionarea prioritar a ntreruperilor, circuitul pentru controlul 1 28 Vcc accesului direct la memorie (Direct CS 2 27 A0 Access Memory DMA) i circuitul IOW 3 26 INTA timer (un circuit destinat msurrii IOR 4 25 IR7 intervalelor de timp i contorizrii D7 5 24 IR6 D6 evenimentelor). 6 23 IR5 D5 7 8259 22 IR4 D4 7.2. Controlerul de ntreruperi D3 8 21 IR3 9 20 programabil 8259 IR2 D2 10 19 IR1 D1 11 18 Unitatea 8259 este realizat n D0 IR0 12 17 tehnologia NMOS, pe un singur circuit C0 INT 13 16 integrat, cu 28 terminate ale cror C1 SP 14 15 semnificaii sunt date n figura 7.1. O Masa C2 singur unitate poate manipula pn la 8 - magistrala de date (bidirecional); 7-D0 cereri de ntreruperi externe i asigur o D CS - selecie circuit (intrare); varietate de maodaliti programabile, A0 - identific unul din cele dou pentru arbitrarea prioritilor acestora. porturi ale unitii (intrare); Datorit posibilitilor de conectare n IOR - semnal de comand citire (intrare); cascad, implementate n unitatea 8259, IOW - semnal de comand scriere (intrare); de ntrerupere trimis de unitatea se pot interconecta, la o unitate 8259- INT - cerere central (ieire); master, pn la opt uniti-slave, INTA - recunoatere ntrerupere (intrare); asigurlndu-se astfel facilitl de tratare a SP - identific unitatea fie ca master, fie ca slave (intrare); 64 niveluri prioritare de ntrerupere. C0-C2 linii de selecie a unitilor slave n Modalitile de arbitrare pot fi sistemele cu uniti multiple (ieire la programate diferit la unitatea master i la master, intrere la slave); fiecare unitate slave. VCC - tensiune de alimentare pozitiv; Schema bloc funcional este Figura 7.1. Semnificaia terminalelor unitii prezentat n figura 7.2. Ea const din pentru comanda prioritar a ntreruperilor mai multe registre i reele logice grupate 8259. n jurul unei magistrale interne. < 132 >

Arhitectura sistemelor de calcul


INTA Tampon pentru magistrala de date Logica de scriere/ citire Tampon comparator pentru cascadare INT

D0 D7

Logica de comand

RD WR A0 CS CAS0 CAS1 CAS2 SP

Registrul cererilor de ntrerupere tratate (RCIT)

Circuit pentru rezolvarea prioritilor

Registrul cererilor de ntrerupere (RCI)

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Registrul de mascare a ntreruperilor (RMI) Magistrala intern Figura 7.2. Schema bloc a unitii 8259.

Cererile de ntrerupere IR0-IR7, de la echipamentele periferice, poziioneaz n unu, pe fronturile pozitive, cnd devin active, bistabilii corespunztoi ai Registrului Cererilor de Intrerupere (ROI). Poziionarea n unu, a unuia sau mai multor bistabili din registrul RCI, are ca efect generarea unui semnal (nivel ridicat) pe linia INT. Coninutul lui RCI, corespunztor cererii de ntrerupere considerate, este forat n zero prin secvena INTA. Noua cerere de ntrerupere considerat va fi nregistrat ntr-un bistabil corespunztor, din Registrul Cererilor de ntrerupere Tratate (RCIT), odat cu forarea n zero, a bistabilului asociat ntreruperii respective, n RCI. Bistabilul din RCIT va fi readus n zero prin program, la sfrtul operaei de tratare a ntreruperii, printr-o comand adecvat (OCW2 - a se vedea programarea unitatii 8259), dat naintea revenirii n prograraul prindpal. Circultul pentru rezolvarea prioritailor cererilor de ntrerupere stabilete prioritile cererilor, care au poziionat n unu bistabilii RCI. Pe durata impulsului INTA , bitul cu prioritatea cea mai mare este forat din RCI n RCIT. Semnalul de ntrerupere INT, generat de unitatea 8259, este forat direct la microprocesor. Sernnalul de recunoatere a ntreruperii ( INTA ), este generat de ctre unitatea central. Primul semnal INTA , va face ca 8259 sa foreze, pe magistrala de date D0-D7, codul instruciunii CALL. Ca urmare a acestui cod , unitatea central va furniza, n ciclurile main care urmeaz, nc dou semnale INTA , la care unitatea 8259 va fora, pe magistrala de date, cei doi octei de adres ai instruciunii CALL. n acest mod,

< 133 >

Arhitectura sistemelor de calcul unitatea central de prelucrare va ncepe execuia rutinei corespunzatoare, de tratare a ntreruperii, a crei adres de start a fost furnizat de instructiunea CALL. Registrul de Mascare a ntreruperilor (RMI) conine biii cererilor de ntrerupere care trebuie mascate. Coninutul su are efect asupra informaiei din RCIT i RCI. Tamponul pentru magistrala de date este bidirecional, fiind prevzut cu circuite cu trei stri, ceea ce permite conectarea direct a unitii 8259 la magistrala de date a unitii centrale de prelucrare. Prin acest tampon sunt transferate cuvintele de comand i informaia de stare. Logica pentru comanda scrierii/citirii accept comenzi de la unitatea central de prelucrare i transfer ctre aceasta cuvntul de stare al unitii 8259. Aceast logic conine registrele pentru Cuvntul de Comanda de Iniializare (CCI) i Cuvntul de Comand al Operrii (CCO). Intrarea de Selectie a circuitului ( CS ) activeaz unitatea 8259, cnd este pe nivel cobort. Intrarea comenzii de scriere ( WR ), activ pe nivel cobort, permite s se nscrie cuvinte de comand (CCI, CCO) n unitatea 8259. Intrarea comenzii de citire ( RD ), activ pe nivel cobort, permite transmiterea, de ctre unitatea 8259, spre unitatea central de prelucrare, pe magistrala de date, a coninuturilor RCI, RCIT, RMI sau a codului binar zecimal al nivelului de ntrerupere. Semnalul de intrare A0, folosit mpreun cu comenzile RD i WR permite scrierea de comenzi n diferite registre de comand sau citirea coninuturilor unor registre. Intrarea A0 se poate conecta direct la una din liniile de adrese. n vederea extinderii schemei sistemului de ntrerupere pentru a putea manipula pna la 64 de cereri de ntrerupere, se pot folosi mai multe uniti 8259, dintre care una va juca rol de master, iar celelalte de slave. Unitatea master va fi desemnat prin conectarea terminalului SP la un nivel pozitiv de tensiune. Conectarea terminalului SP la un nivel cobort de tensiune va desemna o unitate de tip slave. Tamponul comparator pentru cascadare memoreaz i compar identitile tuturor unitilor 8259 folosite n sistem. Terminalele de intrri/ ieiri (CAS0-CAS2) sunt folosite ca ieiri de ctre unitatea master, care transmite n exterior identitatea unitii slave luat n consideraie. Aceleai terminale se folosesc ca intrri, pentru unitile slave, n vederea seleciei. Unitatea slave selectat va fora pe magistrala de date, pe durata ultimelor dou semnale INTA , adresa preprogramat a subrutinei, ncepnd cu octetul cel mai puin semnificativ. Interaciunea unitii 80259 cu unitatea central de prelucrare se desfoar conform urmtoarei secvene:

- una sau mai multe linii IR7-IR0 sunt activate de fronturile cresctoare ale cererilor de ntrerupere; - unitatea 8259 transmite un semnal INT, catre unitatea central, ca urmare a acccptrii cererilor de ntrerupere i rezolvare a prioritilor; - unitatea central, recunoate semnalul INT i genereaz un semnal INTA ; - la recepionarea semnalului INTA , unitatea 8259 repunde cu forarea pe magistrala de date (D7-D0) a codului instruciunii CALL;
< 134 >

Arhitectura sistemelor de calcul

- unitatea central de comand va genera dou semnale succesive INTA , care vor activa forarea pe magistrala de date, sub forma a doi octei succesivi, a adresei rutinei chemate prin CALL, ncepnd cu octetul cel mai puin semnificativ; - dup terminarea tratrii cererii de ntrerupere se va genera comanda Sfrit de Intrerupere (EOI), care va poziiona n zero bitul corespunztor ntreruperii tratate n RCIT. Programarea unitii 8259 se realizez prin comenzi generate de catre unitatea central de prelucrare, care pot fi comenzi de iniializare i respectiv de operare. Cuvintele de comand pentru iniializare sunt dou, pentru cazul unei singure uniti 8259 i respectiv trei, pentru cazul mai multor uniti 8259, n sistem. n figura 7.3, a, b, c, d se prezint structurile celor trei cuvinte de comand ale iniializrii (CCI1,
a) Cuvntul de comand al iniializrii CCI1 A0 0 bit 1 1 o singur unitate 8259; 0 o unitate master i mai multe slave; bit 2 1 ntre vectorii de adres se las 4 octei; 0 ntre vectorii de adres se las 8 octei; biii 7,6,5 biii A7A6A5 ai vectorului de adres de ntrerupere. b) Cuvntul de comand al iniializrii CCI2 A0 1 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 bit 7 bit 6 bit 5 bit 4 1 bit 3 x bit 2 bit 1 bit 0 x

biii 7,6,5,4,3,2,1,0 biii A15A14A13A12A11A10A9A8 ai vectorului de adres de ntrerupere. c) Cuvntul de comand al iniializrii CCI3 A0 1 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

la master

biii 7,6,5,4,3,2,1,0 oricare bit poziionat n unu semnific nivelul la care a fost ataat o unitate 8259 slave. la slave A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 x x x x x biii 2,1,0 identific nivelul cererii la unitatea master 8259, la care s-a conectat unitatea slave dat. x valoare oarecare (indiferent). Figura 7.3. Structura cuvintelor de comand ale iniializrii.

< 135 >

Arhitectura sistemelor de calcul

CCI2, CCI3). Primul cuvnt de comand al iniializrii CCI1 (fig. 7.3, a) este generat cnd A0 = 0 i D4 = l. El are ca efect: aducerea n condiiile iniiale a circuitului de sesizare a unei cereri de ntrerupere (tranziie pozitiv a semnalului cerere), anularea RMI, atribuirea intrrii IR7 a prioritii 7, poziionarea n zero a bistabilului asociat cu masca i a bistabilului asociat cu citirea strii. CCI1 specific dac se folosete o singur unitate sau mai multe uniti 8259, indic distana n octei ntre vectorii adreselor de ntrerupere (4 octei sau 8 octei), furnizeaz biii A7-A5, ai vectorului adresei de ntrerupere, pentru instruciunea CALL. Al doilea cuvnt de comand al inializrii CCI2 (fig. 7.3, b) este forat dup CCI1, n unitatea 8259 i specific biii A15-A8, ai vectorului adresei de ntrerupere. Se menioneaz c unitatea 8259 foreaz automat biii A4, A3, A2, corespunztor codului nivelului cererii de ntrerupere, n timp ce biii Al, A0 sunt forai n zero. Al treilea cuvnt de comand al inializrii CCI3 se folosete numai n cazurile sistemelor de ntrerupere cu uniti 8259 multiple. Semnificaiile CCI3 difer n funcie de unitatea creia i este adresat: master (fig. 7.3, c) i slave (fig. 7.3, d). Cuvintele de comand a operrii (CC0). Dup programarea unitii 8259 cu cuvintele de comand de iniializare, pot fi luate n consideraie eventualele cereri de ntrerupere. Modurile, disciplinele de tratare a cererilor de ntreruperi, se pot programa prin cuvintele de comand ale operrii, selectate corespunzator CCOl, , CCO3 (fig. 7.4). Primul dintre cuvintele de comand ale operrii, CC01, se refer la programarea registrului de mascare a ntreruperilor (RM1). Acest registru va opera asupra RCI i RCIT. Dac o ntrerupere a fost recunoscut de ctre unitatea 8259, nivelul respectiv, dei mascat prin CCOl, va inhiba nivelurile mai puin prioritare. Pentru a evita acest lucru se poate emite un CCO2, reprezentnd comanda de terminare a ntreniperii (EOI) pentu a anula bitul corespunztor din RCIT sau se va utiliza un CCO3, reprezentnd un mod special de mascare. Modul de tratare cu imbricare complet, a cercrilor de ntrerupere, se realizeaz far transmterea vreunui CCOi, dup iniializare. n acest mod prioritile sunt atribuite n ordinea 0, ,7, prioritatea cea mai mare avnd-o nivelul 0. La recunoaterea unei ntreruperi, se determin cererea curent cu prioritatea cea mai mare, se foreaz vectorul adres corespunztor pe magistral i se poziioneaz n unu bitul asociat din RCIT. Acest bit rmne poziionat n unu pn la comanda terminrii ntreruperii, naintea revenirii n rutina principal ntrerupt. n acest timp sunt inhibate toate cererile de ntrerupere situate pe niveluri mai puin prioritare dect nivelul tratat. Sunt acceptate cererile de ntrerupere corespunztoare unor niveluri superioare. Modul de tratare cu rotirea prioritii este folosit n aplicaiile n care echipamentele, care solicit ntreruperi, au prioritai egale (de exemplu: canalele de comunicaie). Acest mod are dou variante: modul cu auto-rotire i modul special. n cazul auto-rotirii, dispozitivul care a fost tratat primete nivelul de prioritate cel mai cobort. Modul special permite modificarea prioritilor, de ctre programator, n sensul de a stabili nivelurile cu prioritatea minim i respectiv maxim. Terminarea normal a ntreruperii (EOI) i terminarea special a ntreruperii (SEOI) se refer la modalitile de anulare a bitului, din RCIT, corespunztor cererii de ntrerupere care s-a tratat. n cazul modului cu imbricare complet, unitatea anuleaz < 136 >

Arhitectura sistemelor de calcul

bitul cu prioritatea cea mai mare (EOI), n timp ce, n modul cu rotirea prioritii, trebuie s se specifice prin comand (SEOI) nivelul care urmeaz s fie anulat (vezi CCO2 din fig. 7.4, b).
d) Cuvntul de comand al operrii CCO1. Masca de ntrerupere. A0 1 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

biii 7,6,5,4,3,2,1,0 1 poziionare masc; 0 anulare masc. e) Cuvntul de comand al operrii CCO2. Comanda terminrii ntrerupere (EOI).

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 R SEOI EOI 0 0 L2 L1 L0 R - rotirea prioritii (1 rotete, 0 fr rotire); SEOI - terminare special a ntreruperii; EOI - terminare normal a ntreruperii. biii 2,1,0 000 se selecteaz nivelul 0 ca avnd prioritate minim; 001 se selecteaz nivelul 1 ca avnd prioritate minim; 010 se selecteaz nivelul 2 ca avnd prioritate minim; 011 se selecteaz nivelul 3 ca avnd prioritate minim; 100 se selecteaz nivelul 4 ca avnd prioritate minim; 101 se selecteaz nivelul 5 ca avnd prioritate minim; 110 se selecteaz nivelul 6 ca avnd prioritate minim; 111 se selecteaz nivelul 7 ca avnd prioritate minim; biii 7,6,5 000 neoperaional; 001 terminare simpl a ntreruperii, se ignor biii 2,1,0; 010 neoperaional; 011 terminare special a ntreruperii, se anuleaz bitul RCIT specificat de biii 2,1,0; 100 neoperaional; 101 terminare ntrerupere i se execut rotirea prioritii n Mod A; 110 execut rotirea prioritii n Mod B. Nivelul cu prioritate minim este stabilit de biii 2,1,0; 111 terminare ntrerupere i execut rotirea prioritii n Mod B. Nivelul cu prioritate minim este stabilit de biii 2,1,0; Figura 7.4. a. b. Cuvintele de comand al operrii.

Modul special de tratare cu mascare este stabilit prin CCO3 i se refer la situaia n care unii bii sunt mascai prin coninutul RMI, stabilit cu ajutorul CCO1. Dac, din diferite motive, se execut subrutina care are nivelul mascat (fie datorit recepionrii semnalului INTA dup mascare, fie datorit automascrii), folosind acest mod, nivelurile mai puin prioritare nu vor fi afectate pn la anularea acestui mod. Nivelurile prioritare, superioare nivelului tratat, de asernenea, nu vor fi afectate. Modul de tratare cu interogare se bazeaz pe dezactivarea, de ctre unitatea central, a Intrrilor de ntrerupere. Servirea echipamentelor se realizeaz prin comanda de interogare, la iniiativa programatorului, folosind CCO3 cu bitul P=l, pe durata < 137 >

Arhitectura sistemelor de calcul

impulsului WR . Cu ocazia generrii de ctre unitatea cental a unui impuls RD , unitatea 8259 l trateaz ca semnal de recunoatere a ntreruperii, poziionnd n unu, n cazul unei cereri de ntrerupere, bistabilul corespunzator din RCIT i citind nivelul de prioritate asociat. Unitatea 8259 va fora pe magistrala de date un cuvnt, care va avea n bii D2, Dl, D0, codul cererii curente de ntrerupere cu prioritatea cea mai mare, iar n bitul D7 se va indica prezena (1) sau absena (0) unei cereri de ntrerupere.
c) Cuvntul de comand al operrii CCO3. Mod special de mascare. A0 0 biii 1,0 00 nepermis; 01 nepermis; 10 citete RCI la urmtoarea comand RD; 11 citete RCIT la urmtoarea comand RD. bitul 2 1 comand pentru modul interogare; 0 comand pentru modul lips interogare (normal) biii 6,5 00 neoperaional; 01 neoperaional; 10 anuleaz modul special de tratare cu mascare; 11 activeaz modul special de tratare cu mascare; x indiferent. Figura 7.4. c. Cuvintele de comand al operrii. bit 7 x bit 6 CSMM bit 5 SMM bit 4 0 bit 3 1 bit 2 bit 1 bit 0

Citirea strii unitii 8259 se realizeaz prin generarea unui impuls RD , dup ce, n prealabil, s-a transmis o comand corespunztoare CCO3. Astfel, se pot citi RCI, RCIT, poziionnd n mod corespunztor biii Dl, D0, din CCO3. Pentru citirea RMI nu este necesar un CCO3. Informaia citit, de pe magistrala de date, va corespunde lui RMI, dac RD este activ i A0 = 1.

7.3.

ntreruperile microcontrolerului TMS320F240

Microcontrolerul TMS320F240 dispune de un mecanism evoluat de gestiune a ntreruperilor prin intermediul unui manager de evenimente. n continuare se prezint succint acest mod de tratare a ntreruperilor datorit faptului c se consider reprezentativ pentru microcontrolere.

< 138 >

Arhitectura sistemelor de calcul 7.3.1. ntreruperile managerului de evenimente (EV) Organizarea ntreruperilor unitii centrale

Sistemul de ntreruperi externe ale unitii centrale (miezul procesorului C2xx CPU) este format din ase ntreruperi mascabile (INT1-INT6) i una nemascabil (NMI). Prioritatea maxim o are ntreruperea NMI iar prioritile ntreruperilor mascabile scad de la INT6 la INT1, INT1 avnd prioritatea minim. Fiecrei ntreruperi i corespunde un bit n registrul fanioanelor de ntrerupere a unitii centrale (IFR) i fiecrei ntreruperi mascabile i corespunde un bit n registrul mtilor unitii centrale (IMR). O ntrerupere mascabil este mascat (nu va genera o ntrerupere ctre miez) cnd bitul corespunztor n IMR este 0. De asemenea miezul procesorului mai are un bit pentru mascarea general a ntreruperilor (INTM) n registrul de stare ST0. Cnd INTM este setat la 1 toate ntreruperile mascabile sunt dezactivate.
Rspunsurl la ntrerupere a miezului C2xx

Cnd apare o tranziie de la unu la zero pe o intrare de ntrerupere a miezului, bitul corespunztor al fanionului din IFR este setat n 1. O ntrerupere este generat ctre miez dac aceasta nu este mascat - ntreruperile globale sunt permise (INTM=0) i nu exist o alt ntrerupere nemascat de prioritate mai mare n ateptare (acest lucru nsemnnd c nu exist nici un fanion setat al unei ntreruperi nemascate de prioritate mai mare). Fanionul este ters de ctre hardware o dat ce cererea de ntrerupere este trimis ctre miez. Un fanion de ntrerupere poate fi de asemenea ters de ctre programul utilizator scriind un 1 n bitul corespunztor.
Cererea de ntrerupere EV i servirea acestora

ntreruperile managerului de evenimente sunt organizate n trei grupe: A, B i C. Grupul A genereaz o cerere de ntrerupere ctre miez prin INT2 iar B i C prin INT3 i respectiv INT4. n tabelul 7.1 sunt prezentate toate ntreruperile EV, prioritile acestora i modul de grupare.
TABELUL 7.1.
Grup ntrerupere A PDPINT CMP1INT CMP2INT CMP3INT SCMP1INT SCMP2INT SCMP3INT T1PINT T1CINT T1UFINT Prioritatea n interiorul grupului 1 cea mai mare 2 3 4 5 6 7 8 9 10 Vectorul (ID) 0020h 0021h 0022h 0023h 0024h 0025h 0026h 0027h 0028h 0029h Descriere/surs ntrerupere de protecie a acionrilor de putere ntreruperea unitii de comparare complet 1 ntreruperea unitii de comparare complet 2 ntreruperea unitii de comparare complet 3 ntreruperea unitii de comparare simpl 1 ntreruperea unitii de comparare simpl 2 ntreruperea unitii de comparare simpl 3 ntrerupere timer GP 1 la perioad ntrerupere timer GP 1 la comparare ntrerupere timer GP 1 la depire inferioar

< 139 >

Arhitectura sistemelor de calcul TABELUL 7.1. (continuare)


B T1OFINT T2PINT T2CINT T2UFINT T2OFINT T3PINT T3CINT T3UFINT T3OFINT CAP1INT CAP2INT CAP3INT CAP4INT 11 cea mai mic 1 cea mai mare 2 3 4 5 6 7 8 cea mai mic 1 cea mai mare 2 3 4 cea mai mic 002Ah 002Bh 002Ch 002Dh 002Eh 002Fh 0030h 0031h 0032h 0033h 0034h 0035h 0036h ntrerupere timer GP 1 la depire superioar ntrerupere timer GP 2 la perioad ntrerupere timer GP 2 la comparare ntrerupere timer GP 2 la depire inferioar ntrerupere timer GP 2 la depire superioar ntrerupere timer GP 3 la perioad ntrerupere timer GP 3 la comparare ntrerupere timer GP 3 la depire inferioar ntrerupere timer GP 3 la depire superioar ntrerupere a unitii de captur 1 ntrerupere a unitii de captur 2 ntrerupere a unitii de captur 3 ntrerupere a unitii de captur 4

Exist cte un registru al fanioanelor de ntrerupere EV pentru fiecare grup: EVIFRA, EVIFRB i EVIFRC. Avem de asemenea cte un registru de mascare pentru fiecare grup: EVIMRA, EVIMRB i EVIMRC. Un fanion n EVIFRx (x=A,B sau C) este mascat (nu va genera o cerere de ntrerupere ctre miez) dac bitul corespunztor din EVIMRx este zero. Exist de asemenea cte un registru al vectorilor de ntrerupere (EVIVRx, x=A, B sau C) asociat cu fiecare grup de ntreruperi EV. Registrul vectorului de ntrerupere corespunztor poate fi citit de ctre o rutin de servire a ntreruperii (ISR) atunci cnd o cerere de ntrerupere generat de ctre un grup de ntreruperi este acceptat de ctre miez. Valoarea (vectorul) din registrul vectorului de ntrerupere identific care este ntreruperea nemascat i n ateptare din grup ce are cea mai mare prioritate.
Generarea ntreruperii

Cnd apare o ntrerupere n modulul EV, fanionul corespunztor din registrul de nreruperi EV este setat n unu. O cerere de ntrerupere este generat ctre CPU de ctre grupul de ntreruperi dac fanionul de ntreruperi este setat i grupul de ntreruperi este nemascat la nivelul EV i ntreruperea corespunztoare din CPU este nemascat la nivelul CPU.
Vectorii de ntrerupere

Vectorul de ntrerupere al unui grup de ntreruperi al EV poate fi citit dup ce o cerere de ntrerupere a fost generat de ctre grupul respectiv ctre miez. Cnd acest lucru se ntmpl, vectorul de ntrerupere (ID) corespunztor fanionului de ntrerupere cu cea mai mare prioritate dintre toate fanioanele setate este ncrcat n acumulator. Fanionul este ters cnd vectorul de ntrerupere este citit. De asemenea fanionul ntreruperii poate fi ters prin scrierea valorii unu direct n fanionul ntreruperii. O valoare zero este ntoars atunci cnd registrul de ntreruperi al unui grup al EV este citit i nu exist nici un fanion setat i nemascat n grupul respectiv. Acest lucru permite identificarea ntreruperilor rtcite (necunoscute) ca ntreruperi EV.

< 140 >

Arhitectura sistemelor de calcul Servirea ntreruperii

Dup ce o cerere de ntrerupere EV este recepionat, registrul EVIVRx poate fi citit n acumulator i deplasat la stnga cu unul sau mai muli bii. Dup aceea o adres ofset (adresa de nceput de intrare - a tabelei de intrri n rutinele de ntreruperi) poate fi adunat acumulatorului. O instruciune BACC poate fi utilizat pentru a sri la o intrare n tabel. Un alt salt gsit n tabel ne duce la rutina de servire a ntreruperii (ISR) pentru sursa specificat (specific - cea care a solicitat ntreruperea). Aceast procedur produce o ntrziere a servirii ntreruperii tipic de 20 cicluri CPU (25 dac este necesar salvarea unui context minim a strii mainii) din momentul n care ntreruperea a fost generat i pn cnd prima instruciune a ISR pentru sursa specific este executat. Aceast ntrziere poate fi redus la 8 cicluri CPU dac o singur ntrerupere este permis ntr-un grup EV. Dac spaiul de memorie nu este o problem, ntrzierea poate fi redus la 16 cicluri CPU fr a fi necesar folosirea unei singure ntreruperi pe grup.
Registrele fanioanelor de ntrerupere al EV

Registrele sunt toate tratate ca memorii de 16 bii. Biii neutilizai ntorc zero la citire. Scrierea biilor neutilizai nu are nici un efect. Din cauz c regitrii EVIFRx pot fi citii, apariia unei ntreruperi poate fi monitorizat de program prin citirea repetat a registrului EVIFRx adecvat, atunci cnd ntreruperea este mascat.
Registrul A al fanioanelor de ntrerupere al EV

EVIFRA adresa 742Fh


15-11 Rezervat 10 T1OFINT Flag RW-0 9 T1UFINT RW-0 8 T1CINT RW-0

7 6 5 4 3 2 1 0 T1PINT SCMP3INT SCMP2INT SCMP1INT CMP3INT CMP2INT CMP1INT PDPINT Flag RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 Biii 15-11 Bit 10 Rezervai. La citire ntorc 1 la scriere nu au efect T1OFINT Flag. ntrerupere timer GP1 la depire superioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T1UFINT. ntrerupere timer GP1 la depire inferioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect

Bit 9

< 141 >

Arhitectura sistemelor de calcul


1= Bit 8 Reseteaz fanionul T1CINT. ntrerupere timer GP1 la comparare Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T1PINT. ntrerupere timer GP1 la perioad Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul SCMP3INT. ntrerupere la comparator simplu 3 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul SCMP2INT. ntrerupere la comparator simplu 2 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul SCMP1INT. ntrerupere la comparator simplu 1 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CMP3INT. ntrerupere la comparator complet 3 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CMP2INT. ntrerupere la comparator complet 2 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CMP1INT. ntrerupere la comparator complet 1 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul PDPINT. ntrerupere la protecia circuit de comand de putere Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

< 142 >

Arhitectura sistemelor de calcul Registrul B al fanioanelor de ntrerupere al EV

EVIFRB adresa 7430h


15-8 7 6 5 4 3 2 1 0 Rezervat T3OFINT T3UFINT T3CINT T3PINT T2UFINT T2OFINT T2CINT T2PINT Flag RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 Biii 15-8 Bit 7 Rezervai. La citire ntorc 1 la scriere nu au efect T3OFINT Flag. ntrerupere timer GP 3 la depire superioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T3UFINT. ntrerupere timer GP 3 la depire inferioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T3CINT. ntrerupere timer GP 3 la comparare Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T3PINT. ntrerupere timer GP 3 la perioad Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T2OFINT Flag. ntrerupere timer GP 2 la depire superioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T2UFINT. ntrerupere timer GP 2 la depire inferioar Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T2CINT. ntrerupere timer GP 2 la comparare Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul T2PINT. ntrerupere timer GP 2 la perioad

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

< 143 >

Arhitectura sistemelor de calcul


Citire: Scriere: 0= 1= 0= 1= Fanionul este resetat Fanionul este setat Fr efect Reseteaz fanionul

Registrul C al fanioanelor de ntrerupere al EV

EVIFRC adresa 7431h


15-4 Rezervat 3 CAP4INT Flag RW-0 2 CAP3INT RW-0 1 CAP2INT RW-0 0 CAP1INT RW-0

Biii 15-4 Bit 3

Rezervai. La citire ntorc 1 la scriere nu au efect CAP4INT Flag. ntrerupere captur 4 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CAP3INT. ntrerupere captur 3 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CAP2INT. ntrerupere captur 2 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul CAP1INT. ntrerupere captur 1 Citire: 0= Fanionul este resetat 1= Fanionul este setat Scriere: 0= Fr efect 1= Reseteaz fanionul

Bit 2

Bit 1

Bit 0

Registrul A de mascare a ntreruperilor EV

EVIMRA adresa 742Ch


15-11 Rezervat 10 T1OFINT ENABLE RW-0 9 T1UFINT ENABLE RW-0 8 T1CINT ENABLE RW-0

7 6 5 4 3 2 1 0 T1PINT SCMP3INT SCMP2INT SCMP1INT CMP3INT CMP2INT CMP1INT PDPINT ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

< 144 >

Arhitectura sistemelor de calcul


Biii 15-11 Bit 10 Rezervai. La citire ntorc 1 la scriere nu au efect T1OFINT ENABLE 0= Dezactivare 1= Activare T1UFINT enable 0= Dezactivare 1= Activare T1CINT ENABLE 0= Dezactivare 1= Activare T1PINT ENABLE 0= Dezactivare 1= Activare SCMP3INT ENABLE 0= Dezactivare 1= Activare SCMP2INT ENABLE 0= Dezactivare 1= Activare SCMP1INT ENABLE 0= Dezactivare 1= Activare CMP3INT ENABLE 0= Dezactivare 1= Activare CMP2INT ENABLE 0= Dezactivare 1= Activare CMP1INT ENABLE 0= Dezactivare 1= Activare PDPINT ENABLE 0= Dezactivare 1= Activare

Bit 9

Bit 8

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

Registrul B de mascare a ntreruperilor EV

EVIMRB adresa 742Dh


15-8 7 6 5 4 3 2 1 0 Rezervat T3OFINT T3UFINT T3CINT T3PINT T2UFINT T2OFINT T2CINT T2PINT ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

< 145 >

Arhitectura sistemelor de calcul


Biii 15-8 Bit 7 Rezervai. La citire ntorc 1 la scriere nu au efect T3OFINT ENABLE 0= Dezactivare 1= Activare T3UFINT ENABLE 0= Dezactivare 1= Activare T3CINT ENABLE 0= Dezactivare 1= Activare T3PINT ENABLE 0= Dezactivare 1= Activare T2OFINT ENABLE 0= Dezactivare 1= Activare T2UFINT ENABLE 0= Dezactivare 1= Activare T2CINT ENABLE 0= Dezactivare 1= Activare T2PINT ENABLE 0= Dezactivare 1= Activare

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

Registrul B de mascare a ntreruperilor EV

EVIMRC adresa 742Eh


15-4 Rezervat 3 CAP4INT ENABLE RW-0 2 CAP3INT ENABLE RW-0 1 CAP2INT ENABLE RW-0 0 CAP1INT ENABLE RW-0

Biii 15-4 Bit 3

Rezervai. La citire ntorc 1 la scriere nu au efect CAP4INT ENABLE 0= Dezactivare 1= Activare CAP3INT ENABLE 0= Dezactivare 1= Activare

Bit 2

< 146 >

Arhitectura sistemelor de calcul


Bit 1 CAP2INT ENABLE 0= Dezactivare 1= Activare CAP1INT ENABLE 0= Dezactivare 1= Activare

Bit 0

Registrul A al vectorului de ntrerupere EV

EVIVRA adresa 7432h


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 Biii 15-6 Biii 5-0 Rezervai. La citire ntorc zero, la scriere nu au efect. D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate din toate fanioanele setate i nemascate din EVIFRA; valoare zero dac nici un fanion nemascat nu este setat n EVIFRA.

Registrul B al vectorului de ntrerupere EV

EVIVRB adresa 7433h


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 Biii 15-6 Biii 5-0 Rezervai. La citire ntorc zero, la scriere nu au efect. D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate din toate fanioanele setate i nemascate din EVIFRB; valoare zero dac nici un fanion nemascat nu este setat n EVIFRB.

Registrul C al vectorului de ntrerupere EV

EVIVRC adresa 7434h


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 Biii 15-6 Biii 5-0 Rezervai. La citire ntorc zero, la scriere nu au efect. D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate din toate fanioanele setate i nemascate din EVIFRC; valoare zero dac nici un fanion nemascat nu este setat n EVIFRC.

< 147 >

Arhitectura sistemelor de calcul

Resetarea fanionului unei ntreruperi se face prin scrierea valorii 1 n registrul EVIFRx (x = A, B sau C) sau prin citirea vectorului de ntrerupere din registrul EVIVRx (x = A, B sau C). Acest lucru este important pentru c semnaleaz achitarea ntreruperii i permite generarea ntreruperii urmtoare.

7.4.

Accesul direct la memorie (DMA)

Accesul direct la memorie, Direct Memory Access (DMA) ofer o cale avantajoas de transfer de date ntre un port de interfa al unui echipament periferic i unitatea de memorie sau ntre dou zone diferite de memorie. Aceste transferuri au o pondere relativ ridicat n activitatea general a unui calculator i reducerea timpului n care se realizeaz transferurile duce la creterea performanelor generale ale calculatorului. Spre exemplu transferul DMA se utilizeaz atunci cnd este necesar salvarea (stocarea) programelor i a rezultatelor acestora din memoria RAM pe un suport extern de memorie (disc flexibil, harddisc, band magnetic, etc.). De asemenea mecanismul transferurilor DMA este utilizat pentru remproasptarea coninutului memoriilor DRAM, cnd practic nu se face un transfer real, dar procesul de citire a memoriei DRAM n vederea transferului, realizeaz remprosptarea acestora.
Magistrala de adrese
Registru acumulator

Magistrala de date Magistrala de comenzi

Unitatea central

Memoria

Porturi

Fig. 7.5. Transferul datelor prin intermediul unitii centrale

n principiu, transferul datelor se poate face prin intermediul unitii centrale, fr a fi necesar existena unui circuit DMA. n figura 7.5 este prezentat fluxul datelor n cazul n care transferul se face prin intermediul unitii centrale. Aceast metod este uzual n cazul sistemelor ieftine dar ea prezint o serie de dezavantaje care o face nerecomandabil la sistemele performante. n primul rnd, durata transferului este relativ mare din cauz c sunt necesare dou activiti succesive ale unitii centrale: o citire a datei din memorie n unitatea central i o scriere a datei, din memorie n port, iar n al doilea rnd este ineficient ocuparea unitii centrale cu o activitate att de simpl cum este transferul datelor. n cazul utilizrii circuitului DMA performanele sistemului cresc din mai multe motive: circuitul DMA fiind un circuit specializat pentru astfel de operaii, transferul datelor se face mult mai rapid dect n cazul transferul datelor prin intermediul unitii

< 148 >

Arhitectura sistemelor de calcul

centrale, unitatea central este degrevat de astfel de sarcini iar traseul datelor este mai scurt. n figura 7.6 este prezentat fluxul datelor n cazul utilizrii circuitului DMA.
Magistrala de adrese
Registru acumulator

Magistrala de date Magistrala de comenzi

Unitatea central

Memoria

DMA

Porturi

Fig. 7.6. Transferul datelor prin intermediul circuitului DMA

Dup ce este programat, circuitul DMA genereaz semnalele de adres i de control, pe magistrala de comenzi, n aa fel nct s se citeasc datele din memorie i acestea s fie transferate portului (sau altei zone de memorie). Circuitul DMA este un circuit master ca i unitatea central. Din acest motiv aceste dou circuite nu pot lucra simultan ci ele vor prelua pe rnd controlul magistralelor sistemului. Motivul pentru care dou module master nu pot lucra simultan este c (aa cum se vede i din figura 7.6), cele dou module genereaz att adrese ct i comenzi. Dac cele dou module ar lucra simultan atunci adresa generat de unitatea central n scopul execuiei programului din memorie va fi diferit de adresa generat de unitatea DMA pentru realizarea transferului i pe magistrala de adrese (care este comun) ar aprea dou adrese diferite ceea ce ar genera un conflict. Cele dou uniti master (unitatea central i unitatea DMA) i suspend una alteia activitatea, printr-un dialog desfurat pe magistrala de comenzi. Dac circuitul DMA are de fcut un transfer, atunci va solicita unitii centrale s elibereze magistralele. n momentul n care unitatea central poate ceda magistralele semnaleaz acest lucru modulului DMA i i ntrerupe activitatea pe magistrale. La terminarea transferului (sau a unei pri a acestuia, n funcie de modul n care este programat circuitul DMA) unitatea central este informat printr-un semnal de comand c poate prelua controlul magistralelor relundu-i n acest mod activitatea. n mod aparent, faptul c cele dou module master nu pot lucra simultan cu magistralele sistemului, duce la scderea eficienei acestora. Unitatea central, n mod natural, n execuia unui program, necesit efectuarea unor activiti interne (cum ar fi de exemplu executarea unei operaii matematice) care nu solicit lucrul cu magistralele. n aceste intervale de timp circuitul DMA poate prelua controlul magistralelor fr a scdea viteza de lucru a unitii centrale. De asemenea, structura ierarhizat a magistralelor i utilizarea unor magistrale separate, care s permit funcionarea simultan a circuitului DMA i a unitii centrale duc la creterea eficienei transferurilor de date. Spre exemplu, controlerul video necesit n general un flux mare de date n mod continuu. Din acest motiv s-a extins un standard de magistral care s < 149 >

Arhitectura sistemelor de calcul

permit accelerarea transferurilor ntre memoria principal a sistemului de calcul i memoria video. Importana acestui mecanism de transfer al datelor a crescut o dat cu creterea capacitii memoriilor i a volumului de date prelucrate n sistem. Din acest motiv, un criteriu de performan pentru un calculator este reprezentat i de numrul modulelor DMA instalate n sistem. Unele circuite utilizeaz mecanisme DMA fr ca acest lucru s fie specificat explicit, spre exemplu cum este sistemul memoriilor cache. Un modul DMA are mai multe canale care pot fi programate separat i care pot lucra cu mai multe periferice simultan. Din acest motiv la unele porturi, n afar de adres i de numrul ntreruperii alocate se stabilete i canalul DMA asociat pentru transferul datelor.
7.4.1. Circuitul 8257 pentru acces direct la memorie DMA

Accesul direct la memorie. Direct Memory Access, DMA, ofer o cale avantajoas de transfer de date pe magistrala sistemului ntre un port de interfa al unui echipament periferic i unitatea de memorie. n varianta clasic este presupus intervenia unitii centrale, care folosete registrele sale interne ca memorie intermediar. Un astfel de transfeer periferic/memorie presupune dou faze: transfer port/memorie n acumulatorul unitii centrale i apoi nc un transfer din registrul intern al unitii centrale n memorie/port. Accesul direct la memorie, realizat de un circuit LSI specializat, elimin unitatea central de pe magistrala sistemului, dirijnd n mod independent transferurile periferic - memorie prin intermediul semnalelor de citire/scriere, semnale generate simultan att pentru port, ct i pentru memorie. n plus, circuitul DMA furnizeaz adresele de memorie la locaii succesive pentru transferuri pe ir de caractere i semnalele de selecie pentru port. Accesul la magistral se realizeaz n urma unui dialog cu unitatea central folosind semnalele de cerere/cedare magistral (de exemplu semnalele HOLD/HLDA pentru microprocesorul 8080 sau BUSRQ/BUSAK pentru microprocesorul Z80). Transferurile succesive se pot realiza n pachet, la viteza maxim, sau cu cte o cerere de transfer pentru fiecare octet, n acest din urm caz, unitatea central poate lucra n pauzele dintre transferuri. Circuitul 8257 ofer funcia DMA, simultan pe patru canale. Viteza maxim corespunde transferului n pachet a cte unui octet la fiecare 4T unde T este perioada semnalului de sincronizare al unitii centrale. T nu poate fi mai mic de 0,32 microsecunde (8257) sau 0,25 microsecunde (8257-5).
7.4.1.1. Conexiunile externe

Schema bloc, figura 7.7, evideniaz aezarea, n jurul unei magistrale interne, a circuitelor de interfa cu unitatea central i a celor pentru dialogul de preluare/eliberare a magistralei acesteia, pe de o parte, i a registrelor de canal, inclusiv circuitele de dialog cu perifericele i circuitele pentru stabilirea prioritii ntre canale, pe de alt parte. Circuitul, prezentat n figura 7.8, are 40 de conexiuni externe, cu urmtoarele semnificaii:

< 150 >

Arhitectura sistemelor de calcul


Canal 0 Numrtor de adres de 16 bii Canal 1 Bloc scriere/ citire Numrtor de adres de 16 bii Canal 2 Numrtor de adres de 16 bii Canal 3 Bloc de comand Numrtor de adres de 16 bii Arbitraj prioritate DRQ 0 DACK 0

D0 D7

Amplificator de magistral de date

DRQ 1 DACK 1

I/OR I/OW CLK RESET A0 A1 A2 A3 CS A4 A5 A6 A7 READY HRQ HLDA MEMR MEMW AEN ADSTB

DRQ 2 DACK 2

DRQ 3 DACK 3

TC MARK Figura 7.7. Schema bloc a circuitului 8257

I / OR (trei stri). Semnal de la/spre magistrala unitii centrale pentru eantionarea datelor citite din port. I / OW (trei stri). Semnal de la/spre magistrala unitii centrale pentru cantionarea datelor scrise n port. MEMR (trei stri). Semnal de la/spre magistrala unitii centrale pentru eantionarea datelor citite din locaia de memorie adresat. MEMW (trei stri). Semnal de la/spre magistrala unitii centrale pentru eantionarea datelor scrise n locaia de memorie adresat. MARK (ieire). Semnal emis la fiecare al 128-lea octet transferat. READY (intrare). Semnal care permite introducerea unor stri de ateptare, SW, naintea ncheierii transferului, avnd port-ul i locaia de memore selectate.

< 151 >

Arhitectura sistemelor de calcul

HLDA (intrare). Semnal primit de pe 1 40 magistrala unitii centrale, semnificnd c aceasta I/OR A7 2 39 A6 I/OW s-a eliberat, n vederea transferurilor DMA. 3 38 A5 ADDSTB (ieire). Semnal de eantionare MEMR 4 37 A4 MEMW 5 36 pentru ncrcarea unui port adiional, cu octetul cel TC MARK 6 35 mai semnificativ al adresei de memorie. A3 READY 7 34 AEN (ieire). Semnal care semnific HLDA A2 8 33 A1 ocuparea magistralei unitii centrale pentru accese ADSTB 9 32 A0 DMA. Valideaz emiterea octetului cel mai AEN 10 31 Vcc HRQ 11 30 semnificativ de adres din portul adiional. D0 CS 12 29 HRQ (ieire). Semnal de cerere a CLK D1 13 28 magistralei, n vederea eliminrii unitii centrale. D2 RESET 14 27 D3 DACK 2 CS (intrare). Semnal de selecie pentru 15 26 D4 DACK 3 16 25 porturile circuitului 8257. Invalid n timpul ciclilor DRQ 3 DACK 0 17 24 DMA. DACK 1 DRQ 2 18 23 CLK (intrare). Semnal de sincronizare. DRQ 1 D5 19 22 D6 DRQ 0 Coincide cu semnalul de tact al unitii centrale. 20 21 D7 RESET (intrare). Semnal de iniializare. GND 8257 intr n starea S1. Figura 7.8. Conexiunile externe ale circuitului 8257. DACK 2 (ieire). Semnal de selecie pentru portul corespunzator canalului 2. Se emite dup obinerea magistralei n vederea selctrii portului n vederea efecturii transferului. DACK 3 (ieire), Idem, pe canalul 3. DRQ 3 (intrare). Semnal prin care se semnalizeaz circuitului DMA c este necesar un transfer pe canalul 3. DRQ 2 (intrare). Idem, pe canalul 2. DRQ 1 (intrare). Idem, pe canalul 1. DRQ 0 (intrare). Idem, pe canalul 0. GND. Masa tensiunii de alimentare (0V). (D7-D0) (trei stri). Semnale de date pe magistrala unitii centrale. DACK1 (ieire) Semnal identic cu DACK 2 , pentru canalul 1. DACK0 (ieire). Idem, canalul 0. VCC Sursa de aUmentare (+5V). A0-A7 (trei stri). Octetul cel mai puin semnificativ al liniilor de adresare ale magistralei unitii centrale. TC(0). Semnaleaz sfritul transferului sirului de octei. Se emite n timpul ultimului transfer.
7.4.1.2. Registrele interne ale 8257

8257 conine cte 2 registre bidirecionale de 16 bii pentru fiecare dintre cele 4 canale i nc dou registre unidirecionale, pentru comanda i examinarea funcionrii circuitului, Semnificaia fiecrei poziii din registre rezult din tabelul 7.2.

< 152 >

Arhitectura sistemelor de calcul TABELUL 7.2. Adresa Bistabil A3A2 intern D7 Adrees Cmps 0000 0 A7 canal 0 Cms 0000 1 A15 Numrtor Cmps 0001 C7 0 de octei Cms 0001 S 1 canal 0 Adrees Cmps 0010 0 A7 canal 1 Cms 0010 1 A15 Numrtor Cmps 0011 C7 0 de octei Cms 0011 S 1 canal 1 Adrees Cmps 0100 0 A7 canal 2 Cms 0100 1 A15 Numrtor Cmps 0101 C7 0 de octei Cms 0101 S 1 canal 2 Adrees Cmps 0110 0 A7 canal 3 Cms 0110 1 A15 Numrtor Cmps 0111 C7 0 de octei Cms 0111 S 1 canal 3 Mod 1000 AL Stare 1000 0 Simboluri folosite: Registru Octet D6 A6 A14 C6 C D5 A5 A13 C5 C13 Coninut D4 D3 A4 A3 A12 A11 C4 C3 C12 C11 D2 A2 A10 C2 C10 D1 A1 A9 C1 C9 D0 A0 A8 C0 C8

A6 A14 C6 C A6 A14 C6 C A6 A14 C6 C

A5 A13 C5 C13 A5 A13 C5 C13 A5 A13 C5 C13

A4 A12 C4 C12 A4 A12 C4 C12 A4 A12 C4 C12

A3 A11 C3 C11 A3 A11 C3 C11 A3 A11 C3 C11

A2 A10 C2 C10 A2 A10 C2 C10 A2 A10 C2 C10

A1 A9 C1 C9 A1 A9 C1 C9 A1 A9 C1 C9

A0 A8 C0 C8 A0 A8 C0 C8 A0 A8 C0 C8

TCS EV EP 0 0 UP

EN3 EN2 EN1 EN0 TC3 TC2 TC1 TC0

Cmps Cms C S AX CX

= cel mai puin semnificativ octet; = cel mai semnificativ octet; = citire port, genereaz I / OR , MEMW ; = scriere port, genereaz I / OW , MEMR ; = bit adres de start transfer, X= 0, , 15; = bit de iniializare a numrului de octei, X=0, , 13.
Registrele de canal

7.4.1.3.

Fiecruia dintre cele 4 canale i corespunde un registru pentru adresa de memorie RAM de la care ncepe transferul, ntr-un spaiu de 64 Koctei i nc un registru de 16 bii, ale crui prime 14 locaii au funcia de numrtor, pentru pn la 16 Koctei. iar celelalte 2 locaii biii 14 i 15, monitorizeaz generarea semnalelor I/OR , I/OW , MEMR , MEMW . Adresa i numrul de octei evolueaz la fiecare transfer DMA pe canalul respectiv, iar ultimul transfer este semnalat ca nchciere a transferului, Terminal Count, TC, pe o conexuine exterioar a circuitului. Semnalele de citire/scriere corespund combinaiilor:

< 153 >

Arhitectura sistemelor de calcul

S Verificare Citire port Scriere port Invalid 0 0 1 1

C 0 1 0 1

MEMR 1 1 0 -

MEMW 1 0 1 -

I / OR 1 0 1 -

I / OW 1 1 0 -

Fiecare registru de 16 bii este accesibil printr-o dubl adresare la cte 8 bii, folosind un bistabil intern, care selecteaz ntre octetul cel mai puin semnificativ i cel mai semnificativ.
7.4.1.4. Registrul de mod

Registrul asigur validarea canalelor n lucru i a 4 opiuni, asupra modului de desfurare a dialogului pe magistral. 7 AL 6 TCS 5 EW 4 RP 3 EN3 2 EN2 1 EN1 0 EN0

Registrul este nscris, de regul, dup completarea celor 2 registre de 16 bii ale fiecrui canal cu care se lucreaz. La RESET registrul de control este ters, inhibnduse toate canalele i opiunile, astfel prevenindu-se transferuri DMA medorite la aplicarea tensiunii. EN03: Enable Channel, corespunde validrii canalului pe care se dorete s se efectueze transferuri. Se pot face transfcniri pe 14 canale. Pcntru mai mult de un canal, ordinea de servire corespunde unei scheme de preioriti, stabilite de bitul 4. RP: Rotating Priority, corospunde stabilirii schemei de prioriti, ntre dou variante: prioritate fix sau prioritate circular. n varianta fix se aloc o prioritate maxim canalulni 0, prioritate care descrcte pn la a fi minim pentru canalul 3. n varianta circular, se aloc dinamic nivelul de prioritate al fiecrui canal, dup fiecare ciclu de transfer. n aecst caz, fiecare canal servit va trece ultimul pe lista de prioritai, n arbitrarea ciclului DMA urmtor. Alegerea modului RP previne fenomenul de gtuire, bottleneck, cnd unul dintre canale monopolizeaz transferurile n mod DMA. Dac sunt prezentate cereri de transfer pe mai multe canale, se vor servi toate canalele, pe rnd. Primul transfer se va executa conform schemei fixe de prioriti. EW: Extended Write, contribuie la generarea anticipat a semnalelor de scriere, pentru compensarea unor eventuali timpi de acces mai lungi ai participanilor la transfer. n absena acestei opiuni, ar fi fost necesare stari de ateptare, folosind semnalul READY de la conexiunea exterioar 6 ceea ce ar fi micorat viteza de lucru. TCS: Terminal Count Stop, specific oprirea sau continuarea transferurilor DMA, din momentul cnd s-a emis ,,1" pe conexiunea exterioar TC, simultan cu poziionarea bitului corespunztor canalului, n registrul de stare. Bitul de validare a canalului este ters, iar operaiile DMA pe acest canal se pot relua dup o rescriere n registrul de control. n cazul n care nu se programeaz bitul TCS, transferurile DMA continu, la adrese succcsive, ct timp perifericul emite DRQ.

< 154 >

Arhitectura sistemelor de calcul

AL: Autoload, autoncrcare permite, cnd este emis s, s se foloseasc nlnuirea de comenzi, fr intervenia unitii centrale. Opiunea se aplic numai canalului 2, utiliznd canalul 3 ca registru cu parametri de reiniializare. Canalul 2 se programeaz obinuit, pentru primul set de parametri, iar canalul 3 se programeaz cu setul de parametri pentru transferul ulterior. Dup ce se efectueaz ciclurile DMA conform programrii iniiale a canalului 2, se efectueaz automat o trecere a parametrilor din canalul 3 n canalul 2. Opiunea TCS nu are efect, dac a fost prevzut simultan cu opiunca AL. n cazul existenei opiunii AL, programarea canalului 2 este automat duplicata i n registrele canalului 3, ceea ce permite operaii repetate pe bloc, prin programarea unui singur canal. Se pot nscrie parametri separai pentru cele dou canale, dac se programeaz nti canalul 2 i apoi canalul 3. De observat c, dac este validat i canalul 3 i apar cereri DRQ pe acest canal, se pot efectua transferuri simultane pe canalele 2 i 3, ins, la operaia de rencrcare a canalului 2 se vor ncrca parametrii modificai ai canalului 3, cu o diferen dat de numrul de transferuri DMA ce s-au efectuat pe acest din urm canal. La intrarea ntr-un ciclu, dup reiniializarea canalului 2, se poziioneaz bitul UP n registrul de stri. Reiniializarea nu distruge parametrii canalului 3. Reiniializarea se efectueaz la urmtorul ciclu DMA dup un ciclu TC, care va fi astfel primul ciclu cu noii parametri. Bitul UP din registrul de stare se va terge dup acest prim ciclu DMA. n operaii nlnuite, bitul UP se poate examina de unitatea central pentru a semnala reiniializrea i a permite nscrierea noilor parametri n canalul 3, pentru urmatorul bloc ce se va transfera pe canalul 2.
7.4.1.5. Registrul de stare

Registrul indic pe care dintre canale s-a terminat transferul numrului de octei programat, inclusiv semnalarea strii de inceput a unui bloc de transfer cu parametri reiniializai (numai pentru canalul 2). 7 0 6 0 5 0 4 UP 3 TC3 2 TC2 1 TC1 0 TC0

TC03: Terminal Count, sfrit de numrare, corespunde strii conexiunii exterioare TC, numai c aici se specific i numrul de ordine al canalului pe care a avut loc cvenimentul. Biii rmn nscrii pn la prima citire a registrului de stare, sau pn la RESET. Deoarcce, ntre citirea strii i nscrierea de parametri, poate aprea semnalarea TC, este contraindicat repregramarea canalelor n funcie de semnalrile din registrul de stare, cac ntre cele dou operaii succesive nu se blocheaz transfcrurile DMA. UP: Update, este emis la primul transfer DMA efectuat conform unor parametri de reiniializare a canalului 2. UP nu se terge la citire. Se folosete pentru a preveni incrcarea unor parametri n canalul 3, nainte ca parametrii precedeni s fie trecui n canalul 2.

< 155 >

Arhitectura sistemelor de calcul 7.4.1.6. Efectuarea transferurilor cu DMA 8257

Funcionarea 8257 corespunde diagramei de stri date n figura 7.9. n urma semnalului RESET se intr n starea S1, n care se ateapt lansarea unei cereri de transfer DRQ de la periferice. Ieirea din S1 i trecerea n S0 se face la primirea DRQ pe unul din canale i lansarca cererii HOLD, pentru obinerea magistralei unitii centrale. n starea S0 se ateapt eliminarea unitii centrale de pe magistral, semnalat prin sosirea semnalului HLDA, dup care se intr n starea S1. n acest moment, 8257 emite adresele superioare pe liniile de date, memorate n portul adiional, cu semnalul ADDSTB. Se obin astfel toate cele 16 linii de adres pe magistral i se intr n starea S2. n S2 ncepe transferul prin activarea operaiei de citire i a unei eventuale scrieri anticipate. Se emite DACK pentru dialogul DRQ-DACK i se intr n starea S3, n care se activeaz scrierea i se fac semnalrile MARK i TC, dac este cazul. Din aceast stare se poate intra ntr-o stare de ateptare SW, daca nu s-a primit READY. Testarea conexiunii externe READY este eliminat dac pe canalul respectiv a fost programat o operaie de verificare, VERIFY. Din S3 se intr n S4, dac s-a primit semnalul READY n operaiile de transfer efectiv. Din SW se trece n S4 dac se primete READY. Starea S4 ncheie un ciclu DMA, inactivnd DACK i, dac este cazul, TC i MARK. n cazul operaiilor cu TCS, se terge validarea canalului respectiv, dac a aprut TC. Se stabilesc prioritile pentru urmtorul ciclu DMA. Se testeaza DRQ i HLDA. Dac DRQ nu se mai emite, se tergc HOLD dup semnalarea cderii HLDA. Daca DRQ se emite n continuare, se pstreaz HOLD i, n cazul n care i HLDA se menine, se trece n modul de transfer burst, n pachet, prin succesunea de stri S1, S2, S3, S4, S1 etc., evitdu-se dialogul de conectare/deconectare la magistrale. La pierderea magistralei, situaie semnalat de cderea HLDA, sau dac perifericul nu mai cere transfer, cu DRQ la ,,0", se sterge HOLD i se trece n starea S1 pentru ciclul de reconectare S1, S0, S1, S2, S3, S4 etc. n rezumat, transferul octet cu octet se desfoar dup cum urmraz (figura 2.25): perifericul cere transfer prin emiterca semnalului DRQ pe unul dintre canale; dac este prioritar i validat, canalul ncepe operaiunea de transfer, lansnd HOLD; la recepia HLDA se lanseaz DACK pe canalul corespunzator, pentru selectarea registrului de date al perifericului; se genereaz apoi perechea de semnale de cantionare: IOR , MEMW sau IOW , MEMR , n funcie de sensul transferului, dac nu este specificat operaia VERIFY; memoria este adresat la locaia specificat n registrul de adrese al canalului, direct de 8257 pe octetul cel mai puin semnificativ i prin intermediul portului adiional 8212, pe octetul cel mai semnificativ. Dup transferul octetului, semnalele de eantionare i achitarea cererii, DACK, se inhib, iar dac DRQ nu se mai emite nainte de S4, se elibereaz magistrala i se inhib HOLD. Funcionarea n mod burst se alege pstrnd DRQ i HLDA dup efectuarea transferului, caz in care se incrementeaz adresa memoriei i se reiau operaiile pe octet, fr deconectare/reconectare intermediar. Dac se cer transferuri simultan pe mai multe canale, procedura corespude transferului n pachet, cu comutarea canalului pe care se emit semnalele DRQ, DACK, n funcie de schema de prioritate programat. Canalul prioritar este stabilit n S4, n funcie de semnalele DRQ prezente.

< 156 >

Arhitectura sistemelor de calcul

Dac HLDA devine inactiv, n prezena DRQ, se elibereaz magistrala, inhibndu-se HOLD i se revine n S1, starea dup RESET. Dac READY devine inactiv, esantionat n S3, se insereaz stri SW. La activarea READY, din SW se intr n S4. n acest interval semnalele de selectie DACK i de eantionare IOR / W , MEMR / W sunt active, prelungind timpul de seleie al portului/memoriei, n vederea acceptrii unui timp de acces mai mare.
RESET A DRQ 03 HRQ=1 HLDA HLDA ? arbitrare prioriti B ADDSTB eantioneaz adresele mari n port auxiliar AEN=1 IOR/MEMR = 1 IOW/MEMW = 1 (n avans) DACKi=1 IOW/MEMW = 1 (normal) nu READY TC STOP TC = 1 da IOR/MEMR=0 IOW/MEMW=0 DACKi=0 MARK=0 TC=0 HLDA nu ENCHi=0 VERIFY=0 ? VERIFY READY READY=0 ? READY C

READY=0 ?

TEST NUMRTOR DE TRANSFERURI TC = 1 sau MARK = 1

DRQ03 nici un cel puin un DRQ03 DRQ03 AEN,HRQ=0 arbitraj prioriti DRQ03 A B

Figura 7.9. Schema logic de funcionare a circuitului 8257.

< 157 >

Arhitectura sistemelor de calcul

7.5.

Circuitul contor/periodizator programabil 8253


1 24 2 23 3 22 4 21 5 20 6 19 7 8253 18 8 17 9 16 10 15 11 14 12 13

Circuitul 8253, realizat n tehnologia NMOS pe o pastil cu 24 de terminale, ale D7 Vcc c ror semnificaii sunt prezentate n figura D6 WR 7.10, constitute un contor/periodizator D5 RD programabil. El este organizat sub forma a 3 D4 CS contoare independente, de cte 16 biti, avnd D3 A1 asociat logica corespunzatoare pentru D2 A0 comunicaia cu unitatea centrala de prelucrare D1 C2 i cu mediul exterior. Circuitul este vzut, de D0 O2 unitatea central de prelucrare, sub forma unui C0 G2 tablou de porturi de I/E i poate fi folosit ca: O0 C1 generator programabil de semnale G0 G1 dreptunghiulare, contor de evenimente, ceas Masa O1 de timp real, monostabil numeric, element D7-D0 - conexiuni la magistrala de date a pentru generarea comenzilor unor motoare pas microsistemului (bidirecional); cu pas. Folosirea lui n sistemele cu C0 - ceas contor 0 (intrare); microprocesor, n aplicaiile privind O0 - ieire contor 0 (ieire); G0 - poarta contor 0 (intrare); prelucrarea unor semnale sub form de trenuri C1 - ceas contor 1 (intrare); de impulsuri, simplific n mod considerabil O1 - ieire contor 1 (ieire); software-ul necesar acestor prelucrri. G1 - poarta contor 1 (intrare); Dup cum se poate observa n figura C2 - ceas contor 2 (intrare); 7.11, schema bloc a circuitului const diu mai O2 - ieire contor 2 (ieire); G2 - poarta contor 2 (intrare); multe componente: tamponul magistralei de A0, A1 - intrri de selecie contor (intrare); date, logica scrie/citete, registrul cuvtului de CS - selecie circuit (intrare); comnand i cele trei contoare 0, 1 si 2. RD - comand citire (intrare); Tamponul magistralei de date este WR - comand scriere (intrare); bidirec ional, organizat pe 8 bii, cu elemente Vcc - alimentare +5V. MASA cu trei stari, realizeaz interfaa circuitului 8253 cu magistrala de date a unitii centrale Figura 7.10. Semnificaia terminalelor de prelucrare. Datele sunt transmise sau circuitului 8253. recepionate de tampon, la execuia instruciunilor IN i OUT, de ctre unitatea central de prelucrare. Prin intermediul acestui tampon se realizeaz: programarea modurilor de lucru pentru 8253, ncrcarea contorilor, citirea valorilor datelor din contori. Logica scrie/citete pe baza semnalelor CS , RD , WR , A0 i Al, primite de la magistrala de legtura cu unitatea central de prelucrare, genereaz semnalele de comand pentru buna funcionare a ntregului circuit. Sermnalul CS, activ pe nivel cobort, activeaz/dezactiveaz circuitul astfel nct, dac circuitul nu este selectat ( CS = 0), funcionarea lui nu este influenat. Semnalul RD activ comand citirea datelor de la contorii circuitului, n timp ce semnalul WR activ asigura Sncarcarea rogistrului de coraanda sail a datelor In contori. Liniile A0 i Al sunt conectate la magistrala de adrese i servesc la selectarea unuia dintre contori sau a registrului de

< 158 >

Arhitectura sistemelor de calcul

comand. n tabelul 7.3 se prezint efectele semnalelor amintite mai sus asupra funcionrii circuitului.
8 D0 D7 RD WR A0 A1 CS Tampon magistral de date Logica scrie/ citeste Registrul cuvntului de comand CLK0 (C0) POARTA0 (G0) OUT0 (O0) CLK1 (C1) POARTA1 (G1) OUT1 (O1) CLK2 (C2) POARTA2 (G2) OUT2 (O2)

Contor 0 8 Contor 1

Contor 2

Figura 7.11. Structura intern a circuitului 8253.

TABELUL 7.3. CS RD WR 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 x x

A1 A0 Funcia 0 1 ncarc contorul 0 0 0 ncarc contorul 1 1 1 ncarc contorul 2 1 0 ncarc cuvntul de comand 0 1 Citete contorul 0 0 0 Citete contorul 1 1 1 Citete contorul 2 1 0 Neoperaional, starea de mare impedan x x Circuit neselectat, starea de mare impedan

Registrul cuvntului de comand primete de la magistral, informaia prin care se comand modul de lucru al fiecrui contor. Acest registru se selecteaza prin adresa A1A0 = 11. Coninutul su nu poate fi citit. Contorii 0, 1 i 2 sunt identici, fiind implementai prin numrtoare de 16 bii, al cror coninut poate fi prestabilit, numrarea efectundu-se n sens descrescator. Contorii sunt independeni i pot fi programai s opereze n modul binar sau BCD, n diverse configuraii, privind intrarea de ceas, poarta de comand i citirea. Citirea coninutului umui contor oarecare se realizeaz direct, n cazul contorizrii unor evenimente sau printr-o tehnic special, n celelalte cazuri, fr a bloca intrarea de ceas. Interfaarea circuitului 8253 cu sistemul se realizeaz n maniera obinuit, a circuitelor de interfa din familia 8080. Intrarile A0 i Al se conecteaz la liniile de adrese A0, Al, ale sistemului, iar semnalul de selecie CS poate fi generat din semnalele magistralei de adrese a sistemului, prin selecie liniar sau decodificare. Semrialele RD , WR sunt derivate din semnalele IORC , IOWC ale magistralei sistemului. < 159 >

Arhitectura sistemelor de calcul

Modul de funcionare poate fi stabilit complet prin software, ncrcnd registrul de comand cu un cuvnt corespunzator. Fiecare contor este decrementat cu o unitate pe fiecare front cztor al semnalului aplicat la intrarea de ceas. Semnalul de la intrarea de ceas poate fi asincron sau sincron. In primul caz contorul va fi folosit pentru numrarea unor evenimente. n al doilea caz contorul este folosit pentru generarea unor intervale de timp. Frecvena semnalului aplicat la intrarea de ceas poate varia ntre 0 si 3MHz. Intrarea pe poarta G poate activa sau bloca funcionarea contorului/periodizatorului respectiv. Ieirea 0 a fiecrui contor, n funcie de modul de programare, poate fi folosit ca impuls singular, cerere de ntrerupere sau ca semnal simplu de comand.
Cuvntul de comand. bit 7 bitul 0 0 contorul selectat este tratat ca valoare binar (max. 65535z); 1 contorul selectat este tratat ca valoare BCD (max. 9999BCD); biii 3,2,1 000 Mod 0; 001 Mod 1; x10 Mod 2; x11 Mod 3; 100 Mod 4; 101 Mod 5; biii 5,4 00 operaia de citire a contorului, a se vedea procedura READ/WRITE; 01 citete/ncarc octetul cel mai semnificativ (la incrcare anuleaz octetul cel mai puin semnificativ); 10 citete/ncarc octetul cel mai puin semnificativ (la incrcare anuleaz octetul cel mai semnificativ); 11 citete/ncarc cel mai semnificativ octet, apoi cel mai puin semnificativ octet; biii 7,6 00 selecie contor 0; 01 selecie contor 1; 10 selecie contor 2; 11 comand ilegal; Figura 7.12. Cuvntul de comand pentru circuitul 8253. bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

Coninutul cuvntului de comand este prezentat n figura 7.12. Se constat c: biii 7, 6 sunt folosii pentru selectarea contorului la care se refer comanda respectiv, biii 5, 4 specific modalitile de manipulare ale coninuturilor octeilor inferior i superior, care formeaz contorul selectat, bitii 3, 2, 1 indic modul de operare, n timp ce bitul 0 caracterizeaz funcionarea binara (valoare maxim: 6553510) sau zecimal codificat binar (valoare maxima: 9999BCD), ale contorului dat. < 160 >

Arhitectura sistemelor de calcul

Contorul selectat se consider ncrcat atunci cnd n el s-au nscris unul sau doi octei, n funcie de specificaiile biilor 5, 4 din cuvntul de comand, operaia fiind urmat de un front pozitiv i unul negativ ale impulsului de ceas. O eventuala citire nainte de frontul cztor va conduce la o valoare incorect. n continuare vor fi prezentate modurile de funcionare ale circuitului 8253. Modul 0 este definit ca ntrerupere, la terminarea numrrii. Dup ncrcarea cuvntului de comand, corespunzator C acestui mod, ieirea contorului selectat va WR(n) fi forat la nivelul cobort (fig. 7.13). n 5 4 3 2 1 O continuare se ncarc contorul cu o anumit valore numeric, care va fi n=5 decrementat, prin aplicarea semnalului Figura 7.13. Modul zero de ceas, pe intrarea corespunzatoare. Ieirea se va menine pe nivel cobort pna n momentul cnd valoarea numrului din contor devine zero, moment n care ieirea trece pe nivel ridicat, meninndu-se astfel, pna la o noua ncrcare a contorului. Decrementarea continu i dup atingerea valorii finale. Renscrierea contorului, pe durata decrementrii, are ca efect blocarea operaiei curente, dac se ncarc primul octet, sau amorsarea unei noi operaii, dac se ncarc al doilea octet. n figura 7.13 contorul a fost ncrcat cu valoarea 5, ca urmare a execuiei unei operaii de nscriere ( WR = 0). Decrementarea se va declana dup un front pozitiv, urmat de unul negativ ale semnalului de ceas. Decrementarea este blocat pe durata aplicrii, la intrarea poart, a unui semnal de nivel coborit. Citirea coninutului contorului, pe durata decrermentrii, necesit o tehnic special, care va fi prezentat la sfritul acestui paragraf. Cuvintul de comanda are urmatoarea structura:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 0 0 1 0 0 0 0

Modul 1 este definit ca monostabil programabil. Ieirea contorului va trece de la un nivel ridicat, la unul cobort mumai dup ce cuvntul de comand i contorul au fost ncrcate i semnalul aplicat la poart are o tranziie pozitiv. Aceast tranziie declneaz decrementarea care, la atingerea valorii finale (zero), va aduce la nivel ridicat ieirea contorului selectat (fig. 7.14). Dac n timp ce ieirea este la C nivel cobort, o nou valoare este nscris WR(n) n contor, aceasta nu va afecta durata G monoimpulsului, pn la urmtoarea O declanare. Valoarea curent a contorului 5 4 3 2 1 poate fi citit n orice moment, fr a n=5 afecta monoimpulsul. Dac intrarea la Figura 7.14. Modul 1 poarta G are o tranziie pozitiv, indiferent de faptul c decrementarea s-a terminat sau nu, contorul este relansat cu valoarea ncrcat iniial. n cazul n care, pe parcursul decrementrii, se ncarca o nou

< 161 >

Arhitectura sistemelor de calcul

valoare n contor, aceasta va fi luat n consideraie la prima tranziie pozitiva a semnalului la poarta G. Cuvtul de comand:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 1 1 0 0 0 1 1

Modul 2 este definit ca generator de impulsuri divizate cu N. Ieirea va fi forat la nivel cobort, dup ncrcarea cuvntului de comand i a numrtorului selectat cu constanta N, pe o perioad egal cu cea a semnalului de ceas. Perioada impulsurilor astfel generate va fi egal cu N (fig. 7.15).
C WR(n) O 5 4 3 2 1 T 5 4 5T 3 2 1 5 4 3 2 1 5

Figura 7.15. Modul 2

Dac pe parcursul operrii, intrarea G (poarta) va fi forat la nivel cobort, ieirea 0 va fi adus la nivel ridicat, iar la revenirea lui G la un nivel ridicat, contorul se va decrementa din nou, de la valoarea initial. Astfel, intrarea G poate fi folosit pentru sincronizarea contorului. Cuvntul de comand:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 0 1 1 0 1 0 0

Modul 3 este definit ca generator de impulsuri dreptunghiulare. El este similar cu modul 2, cu excepia faptului c iesirea va ramne la un nivel ridicat pna la realizarea decrementarii, conform cu N/2 sau (N-1)/2 intervale de ceas i la nivel cobort, pentru celelalte N/2 sau (N-1)/2 intervale de ceas, dup cum N este par sau impar. Aceasta se realizeaz (fig. 7.16) prin decrementarea cu 2 pe frontul cztor al fiecarui semnal de ceas. Cnd contorul ajunge n zero, ieirea se modific, contorul este ncrcat cu valoarea iniial i procesul se continu, avnd un caracter repetitiv.
C O (n=4) 2T O (n=5) 3T Figura 7.16. Modul 3 2T 2T

< 162 >

Arhitectura sistemelor de calcul

Modul 4, definit ca strob comandat prin software, asigur o ieire la nivel ridicat, dup stabilirea modului. Decrementarea contorului selectat are loc dup ncrcarea lui cu numrul dat. Ieirea va fi forat la nivel cobort pe durata unei perioade a semnalului de ceas, cnd contorul a fost decrementat la zero. Decrementarea va fi inhibat, dac intrarea G va fi forat la nivel cobort. Rencrcarea contorului va reporni decrementarea, plecnd de la noua valoare plasat n contor (fig. 7.17).

C WR(n=4) O 4 3 2 4T 1 0 T Figura 7.17. Modul 4.

Cuvntul de comand:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 1 0 0 1 1 0 1 0

Modul 5, definit ca strob comandat prin hardware, asigur decrementarea contorului selectat, dup ncrcarea lui, ncepnd cu frontul cresctor al semnalului aplicat la poarta G. Ieirea va fi forat la nivel cobort, pe durata unei perioade de ceas, n momentul n care coninutul contorului a devenit zero (fig. 7.18).
C WR(n=4) G O 4 3 2 4T 1 0 T Figura 7.18. Modul 5.

Operaia de citire a coninutului unui contor este important pentru a cunoate valoarea acestuia la un moment dat. Citirea se poate face n dou moduri diferite. n primul mod, citirea se face n timpul decrementarii. Pentru aceasta, pe baza unei comenzi, coninutul contorului, care urmeaz s fie citit, se foreaz ntr-un regisru suplimentar, din circuitul 8253, contorul continund operaia de decrementare. Cuvtul de comand necesar are urmatoarea structur:
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 SC1 SC0 0 0 x x x x

< 163 >

Arhitectura sistemelor de calcul

SC1, SC0 - biii 7 i 6 din cuvntul de comand specific contorul al crui coninut va fi salvat n vederea citirii (00, 01, 10). Biii 5, 6 sunt egali cu 0 i specific operaia de memorare a coninutului contorului. Ceilali bii sunt indifereni. n al doilea mod se blocheaz n prealabil ceasul, printr-o logic extern sau controlnd semnalul de comand la poarta G. Dup aceasta se citete coninutul contorului i se transfer n memorie.

7.6.

Circuitele timer ale microcontrolerelor

n cazul microcontrolerelor, circuitele contor/periodizator sunt larg rspndite i reprezint unul din circuitele de baz ale acestora, ndeplinind funcii complexe. Se va prezenta n continuare modulul circuitelor de contorizare/periodizare ale microcontrolerului TI 320F240 (GPTimer) datorit numeroaselor funcii ndeplinite de acesta, reprezentnd astfel un modul complet i complex.
7.6.1. Timerele de uz general GPTimer

n modulul EV sunt trei timere de uz general (GP Timers). Aceste timere pot fi folosite ca baze de timp independente n aplicaii cum ar fi:
o generarea perioadei de eantionare n sistemele de control; o furnizarea unei baze de timp pentru operarea circuitului QEP sau unitile de captur; o furnizarea unei baze de timp pentru operarea unitile de comparare simple sau complete (full) i a circuitelor PWM asociate pentru a genera ieiri comparare/PWM. Blocurile funcionale ale timerelor GP

Figura 7.19. prezint schema bloc a timeului GP. Fiecare timer conine:
o un contor up/down scriere/citire (R/W) de 16 bii, TxCNT (x=1,2,3); o un registru R/W de 16 bii pentru comparare (cu imagine n memorie) TxCMPR (x=1,2,3); o un registru R/W de 16 bii pentru perioad (cu imagine n memorie) TxPR (x=1,2,3); o un registru de control R/W de 16 bii, TxCON (x=1,2,3); o prescalare (divizare) programabil a ceasului de intrare intern sau extern; o logic de control a ntreruperilor; o un pin de ieire al comparatorului GP timer, TxPWM/TxCMP (x=1,2,3); o ieire logic.

< 164 >

Arhitectura sistemelor de calcul

Un alt registru de control, GPTCON specific aciunile care se vor iniia pentru diferite evenimente ale timerelor i indic direcia de numrare pentru toate cele trei timere. GPTCON poate fi citit sau scris, scrierea celor rei bii de stare neavnd nici un efect.

Fig. 8.4. Schema bloc a timerului GP x = 1, 2 sau 3

Intrrile timerelor GP

Intrrile timerelor GP sunt:


o ceasul intern CPU care vine direct din miez i deci are aceeai frecven ca i ceasul CPU; o ceas extern, TMRCLK care are frecvena maxim un sfert din frecvena ceasului CPU; o intrare de direcie TMRDIR pentru utilizarea timerelor GP n modul direcional up/down; o semnal de reset RESET.

n plus timerul GP 3 poate folosi depirea timerului GP 2 ca intrare de ceas cnd timerele GP 2 i 3 sunt cascadate ntr-un timer de 32 de bii. Cnd un timer GP este utilizat cu circuitul QEP, circuitul QEP genereaz att ceasul pentru contor ct i sensul de numrare.

< 165 >

Arhitectura sistemelor de calcul Ieirile timerelor GP

Timerele GP au urmtoarele ieiri:


o ieirea comparare/PWM a timerului GP TxPWM/TxCMP, (x=1,2,3); o semnal de start pentru modulul ADC; o semnale de depire inferioar, superioar, egalitate la comparare i egalitate la perioad pentru logica proprie de comparare sau pentru unitile de comparare simpl sau complet; o bit de indicare a sensului de numrare. Controlul operrii timerului GP

Modul de operare al timerului GP este controlat de registrul de control TxCON. Biii din registrul TxCON determin: unul din cele ase moduri de numrare este folosit pentru timerul GP; sursa de ceas intern sau extern pentru timerul GP; factorul de divizare a ceasului de intrare (n domeniul 1 la 1/128); condiia de rencrcare a registrului comparatorului timerului; activarea sau dezactivarea timerului; registrul de perioad este registrul propriu sau registrul timerului GP 1 (numai pentru T2CON i T3CON); o utilizarea semnalului de depire a timerului GP 2 ca surs de ceas pentru timer GP 3 (numai la T3CON);
o o o o o o Registrul de control al timerului GP (GPTCON)

Registrul de control GPTCON specific aciunile care se vor face la diferitele evenimente furnizate de timerele GP.
Registrele de comparare ale timerelor GP

Registrele de comparare asociate cu timerele GP stocheaz valoarea care va fi n mod continuu comparat cu contorul timerului GP. Cnd se ntlnete egalitatea se produc mai multe evenimente. Aceste evenimente includ tranziia ieirii comparare/PWM asociate i start ADC n concordan cu starea bitului din GPTCON. n plus fanionul corespunztor ntreruperii de comparare este setat. Aceast operaie poate fi activat sau dezactivat de ctre bitul 1 din TxCON.
Registrul de perioad a timerului GP

Valoarea registrului perioad a timerului GP determin perioada timerului. Operarea timerului se oprete reinnd valoarea curent, reseteaz la zero, sau pornete numrtoarea invers atunci cnd se ntlnete o egalitate ntre registrul perioadei i coninutul timerului modul de reacie depinznd de modul de numrare setat. < 166 >

Arhitectura sistemelor de calcul Dubla bufferare ale registrelor perioadei i comparatorului ale timerelor GP

Regitrii de comparare i ai perioadei TxCMPR i TxPR ai timerului GP au corespondent n memorie. O valoare nou poate fi scris n oricare dintre aceti regitrii n orice moment. Valoarea este scris n corespondentul din memorie. Pentru registrul de comparare coninutul registrului din memorie este ncrcat n registrul de lucru (activ) numai cnd un anumit eveniment specificat de TxCON se produce. Pentru registrul de perioad, registrul de lucru este rencrcat cu valoarea registrului din memorie numai cnd valoarea n registrul contorului TxCNT este zero. Condiia la care registrul de comparare este rencrcat poate fi una din urmtoarele:
o imediat dup ce registrul din memorie a fost scris; o la o depire inferioar, aceasta nsemnnd atunci cnd valoarea contorului timerului GP este zero; o la depire superioar sau la egalitatea perioadei, atunci cnd valoarea contorului este zero sau cnd are o valoare egal cu cea a registrului perioadei.

Facilitatea de dubl bufferare permite codului de aplicaie s actualizeze registrul de comparare sau al perioadei n orice moment. Acesta permite schimbri ale perioadei timerului i limii pulsului PWM pentru ciclul urmtor. Schimbarea din zbor a valorii perioadei timerului n cazul generrii PWM nseamn schimbarea din zbor a frecvenei purttoarei PWM.
Iniializarea registrului perioadei

Registrul perioadei timerului GP trebuie iniializat nainte de iniializarea contorul corespunztor la o valoare diferit de zero. n caz contrar valoarea registrului perioadei va rmne neschimbat pn la urmtoarea depire inferioar. Not: Registrul de comparare este transparent (noua valoare ncrcat se duce direct n registrul activ) atunci cnd operaia de comparare asociat este dezactivat. Acest lucru se aplic tuturor registrelor de comparare din EV.
Ieirea comparare/PWM a timerului GP

Ieirea GP Timer comparare/PWM poate fi specificat a fi activ high, activ low forat high sau forat low n funcie de cum sunt configurai biii GPTCON. Ieirea va comuta din low n high (high n low) la prima egalitate la comparaie atunci cnd este activ high (low). Ea va comuta din high n low (low n high) la a doua egalitate la comparare dac GP timer este n modul de numrare sus/jos sau la egalitatea cu perioada dac GP timer este n modul numrare sus. Ieirea de comparare a timerului va deveni high (low) n acelai mod atunci cnd este setat s fie forat n starea high (low).

< 167 >

Arhitectura sistemelor de calcul Sensul de numrare a timerului GP

Sensul de numrare pentru toate cele trei timere GP este reflectat n biii respectivi din GPTCON pe timpul tuturor operaiilor timerelor cu:
o 1 reprezentnd numrare sus; o 0 reprezentnd numrare jos.

Pinul de intrare TMRDIR determin sensul de numrare cnd timerul GP este n modul de numrare direcional up/down. Cnd TMRDIR este setat high este specificat numrarea nainte iar cnd este pus n starea low este specificat modul de numrare napoi.
Ceasul timerelor GP

Sursa de ceas a timerelor GP poate fi ceasul intern al CPU sau ceasul aplicat extern la pinul TMRCLK. Frecvena ceasului extern trebuie s fie mai mic sau egal cu un sfert din ceasul CPU. Timerele GP 2,3 sau 2 i 3 mpreun formnd un numrtor pe 32 de bii pot fi utilizate cu circuitul QEP n modul de numrare direcional up/down. n acest caz circuitul QEP furnizeaz att semnalul de ceas ct i cel de sens. Un domeniu larg de factori de prescalare este prevzut pentru fiecare timer GP.
Timer de 32 bii

Semnalul de depire al timerului GP 2 este folosit ca intrare de ceas pentru timerul GP 3 atunci cnd timerele 2 i 3 sunt cascadate ntr-un timer de 32 de bii. Cnd acest lucru se ntmpl, timerul GP 2 furnizeaz cei mai puini semnificativi 16 bii ai contorului de 32 de bii. Contorul de 32 de bii astfel obinut poate opera numai n modul direcional up/down de numrare cu ceas intern sau extern i cu intrare de sens extern. Circuitul QEP poate fi de asemenea ales pentru a furniza impulsuri de ceas i de sens pentru numrtorul de 32 de bii. Registrul perioadei pentru timerele GP 2 i 3 sunt cascadate n acest caz pentru a furniza un registru de perioad de 32 de bii pe cnd operaia de comparare este bazat pe compararea registrelor individuale i se genereaz semnale de egalitate individuale pentru fiecare potrivire pe 16 bii. Evenimentele de depire inferioar i superioar sunt generate pentru numrtor de 32 bii. Fanioanele de depire inferioar i superioar ale timerului GP 2 semnaleaz n acest caz depirile registrului de 32 de bii, cele ale timerului GP 3 neavnd nici o relavan n acest caz. Fanioanele de comparare ale timerelor GP 2 i 3 sunt setate individual la egalitatea comparrii.
Ceasul de intrare la operare QEP

Circuitul pulsurilor codate n cuadratur (QEP), atunci cnd este selectat, poate genera semnal de ceas i de direcie pentru timerele GP 2 sau 3 sau 2 i 3 mpreun pentru a forma un numrtor de 32 de bii, n modul de numrare direcional up/down. Aceast intrare de ceas nu poate fi scalat de circuitele de prescalare ale timerelor GP < 168 >

Arhitectura sistemelor de calcul

(factorul de prescalare va fi totdeauna egal cu unu). De asemenea frecvena de ceas generat de circuitul QEP va fi de patru ori mai mare dect frecvena oricrui canal de intrare QEP din cauz c timerul selectat numr fronturile cresctoare i cztoare de pe cele dou intrri ale QEP. Frecvena de intrare la intrrile QEP trebuie s fie mai mic sau egal cu un sfert din frecvena ceasului CPU.
Sincronizarea timerelor GP

Timerele GP 2 i 3 pot fi sincronizate individual cu timerul GP 1 prin configurarea adecvat a registrelor T2CON i T3CON n modurile urmtoare:
o pornirea operrii timerului GP 2 sau 3 utiliznd acelai bit de control n T1CON care pornete i operarea timerului GP 1; o iniializarea contoarelor timerelor GP 2 sau 3 cu valori diferite nainte de pornirea operaiei sincronizate; o specificarea unuia din timerele GP 2 sau 3 care s utilizeze registrul perioadei timerului GP 1 ca registru propriu de perioad (ignornd propriul registru de perioad).

Aceste metode permit sincronizarea dorit ntre evenimentele timerelor GP. Dac fiecare timer pornete operaia de numrare de la valoarea lui curent (memorat n registrul contorului) un timer GP poate fi programat s porneasc cu o ntrziere cunoscut dup un alt timer GP. Trebuie notat c sunt necesare dou scrieri n T1CON pentru a sincroniza timerul GP1 cu timerul GP2 sau timerele GP 2 i 3.
Pornirea ADC la eveniment timer GP

Biii din GPTCON pot specifica evenimentul GP Timer pe care pornete conversia analog-digital (ADC), eveniment care poate fi: depirea inferioar, egalitatea la comparare, sau egalitatea la perioad. Aceast facilitate permite sincronizarea evenimentele GP timer i pornirea ADC fr nici o intervenie din partea CPU.
ntreruperile timerelor GP

Sunt 12 fanioane de ntrerupere n EVIFRA i EVIFRB pentru cele trei timere GP. Fiecare timer poate genera patru ntreruperi la urmtoarele evenimente:
o o o o

depire superioar TxOFINT (x=1,2 sau 3); depire inferioar TxUFINT (x=1,2 sau 3); egalitate la comparare TxCINT (x=1,2 sau 3); egalitate la perioad TxPINT (x=1,2 sau 3).

Evenimentul de egalitate la comparare se produce atunci cnd coninutul contorului timerului GP este egal cu cel al registrului de comparare. Fanionul

< 169 >

Arhitectura sistemelor de calcul

corespunztor intreruperii de comparare este setat dou perioade de ceas CPU dup ce se produce egalitatea dac operaia de comparare a fost activat. Un eveniment de depire superior se produce atunci cnd numrtorul timerului este egal cu FFFFh. O depire inferioar se produce atunci cnd contorul are valoarea 0000h. n mod similar un eveniment la perioad se produce cnd valoarea din contorul timerului este egal cu coninutul registrului de perioad. Fanioanele de depire superioar, inferioar sau la perioad sunt setate doi ciclii de perioad de ceas CPU dup ce s-a ntlnit evenimentul respectiv. Este de notat c definirea depirii superioare i inferioare este diferit de definiia convenional.
Operaia de numrare a timerului GP

Fiecare timer GP are ase moduri selectabile de operare:


o o o o o o

stop cu reinere; numrare sus o singur dat; numrare sus continu; numrare direcional sus/jos; numrare o singur dat sus/jos; numrare continu sus/jos.

Configuraia biilor corespunztori n registrul de control TxCON determin modul de numrare a timerului GP. Bitul de validare a timerului TxCON[6] valideaz sau invalideaz operaia de numrare a timerului. Cnd timerul este dezactivat operaia de numrare se oprete i prescalatorul timerului este resetat la x/1. Cnd timerul este activat acesta pornete operaia de numrare n concordan cu modul specificat de biii corespunztori din TxCON.
Modul stop/reinere

n acest mod operarea timerului se oprete i reine valoarea curent. Contorul timerului, ieirea de comparare, contorul de prescalare rmn neschimbate.
Modul de numrare sus o singur dat

Timerul GP numr n acest mod ceasul divizat de contorul de prescalare pn cnd valoarea din contorul timerului este egal cu cea din registrul perioadei. Pe urmtorul front cresctor a ceasului de intrare dup aceast potrivire timerul GP reseteaz la zero i i dezactiveaz operaia de numrare prin resetarea bitului de activare TxCON[6]. Fanionul ntreruperii timerului este setat dou perioade de ceas CPU dup ce s-a produs egalitatea ntre registrul perioadei i contorul timerului. O comand de start este trimis ctre modulul ADC n acelai timp ct fanionul ntreruperii este setat dac ntreruperea de perioad a fost selectat cu ajutorul biilor corespunztori din GPTCON pentru a porni ADC.

< 170 >

Arhitectura sistemelor de calcul

Dou perioade de ceas dup ce timerul GP a devenit zero este setat fanionul de depire inferioar. Un semnal de pornire este trimis ctre modulul ADC n acelai timp ct fanionul ntreruperii este setat dac ntreruperea de perioad a fost selectat cu ajutorul biilor corespunztori din GPTCON pentru a porni ADC. Fanionul de ntrerupere la depire superioar este setat dou perioade de ceas CPU dup ce valoarea TxCNT atnge valoarea FFFFh. Durata de numrare a perioadei este (TxPER)+1 ciclii de ceas prescalat de la intrarea timerului dac contorul timerului are valoarea zero la nceputul perioadei. Valoarea iniial a timerului GP poate fi orice valoare ntre 0h i FFFFh. Cnd valoarea iniial este mai mare dect valoarea registrului perioadei timerul numr sus pn la FFFFh, reseteaz la zero si numr sus n continuare pn cnd atinge valoarea perioadei. Cnd valoarea iniial a registrului contorului timerului este egal cu valoarea nscris n registrul perioadei, timerul seteaz fanionul ntreruperii la perioad, reseteaz la zero seteaz fanionul de ntrerupere la depire inferioar i imediat dup aceasta termin de numrat pn la perioad. Dac valoarea iniial a contorului este ntre zero i valoarea perioadei, timerul numr sus pn la terminarea perioadei ntr-un mod similar cu cel n care numrtorul timerului este egal cu cel al registrului perioadei. O dat ce perioada s-a terminat timerul GP poate fi pornit din nou numai de ctre software prin scrierea bitului de validare a timerului TxCON[6]. Bitul care indic sensul de numrare din GPTCON este 1 n acest caz. Se poate utiliza att ceas intern ct i cel extern. Pinul de intrare TMRDIR este ignorat n acest mod de operare. n figura 7.20. este prezentat modul de numrare sus o singur dat considernd factorul de prescalare este 1. De notat c timerul GP ncepe numrtoarea imediat ce TxCON[6] este setat. Acest lucru este valoabil pentru toate modurile de numrare.

Fig. 7.20. Modul numrare sus o singur dat

< 171 >

Arhitectura sistemelor de calcul Modul de numrare sus continuu

Modul de numrare sus continuu este similar cu numrare sus o singur dat repetat de fiecare dat cnd timerul este resetat la zero. Numrarea se face n sens direct dup ceasul primit la intrare, prescalat corespunztor, pn cnd registrul contorului este egal cu cel al perioadei. n acest moment contorul reseteaz la zero i pornete o nou perioad. Durata perioadei este TxPR+1 ciclii de ceas scalat cu excepia primei perioade. Durata primei perioade este aceeai numai n cazul n care contorul pornete de la zero. Valoarea iniial a contorului timerului GP poate fi oricare n intervalul 0h i FFFFh. Cnd valoarea iniial este mai mare dect valoarea registrului de perioad timerul numr pn la FFFFh, reseteaz la zero i continu operarea cu valoarea iniial zero. Cnd valoarea iniial este egal cu valoarea registrului de perioad, timerul seteaz fanionul de ntrerupere de perioad, reseteaz la zero, seteaz fanionul ntreruperii de depire inferioar i continu operarea cu valoarea iniial zero. Cnd valoarea iniial este cuprins ntre zero i valoarea coninutului registrului de perioad, timerul numr sus pn la valoarea registrului de perioad i continu operarea la fel ca n cazul cnd valoarea iniial este egal cu valoarea registrului perioadei. ntreruperile asociate evenimentelor (depire superioar, inferioar, perioad) sunt generate n situaiile respective la fel ca la numrarea o singur dat. Bitul de sens din GPTCON este 1 pentru acest mod. Poate fi selectat i sursa de ceas extern. Intrarea TMRDIR este ignorat n acest mod de operare. Numrarea continu sus fcut de timerul GP este n mod particular util pentru generarea PWM cu fronturi triggerate sau pentru perioade de eantionare n diferite sisteme de control ale motoarelor i micrii. Figura 7.21 prezint modul de numrare sus continuu cu factor de prescalare 1.

Fig. 7.21. Modul de numrare sus continuu

Din figura 7.21 se vede c c nu se pierde nici un impuls de ceas n momentul cnd contorul atinge valoarea registrului perioadei i pornete un nou ciclu de numrare.

< 172 >

Arhitectura sistemelor de calcul Modul de numrare direcional up/down al timerelor GP 1 i 3

Timerele n modul de numrare direcional up/down numr sus (up) sau jos (down) n concordan cu ceasul scalat i intrarea TMRDIR. Cnd pinul TMRDIR este n starea high contorul numr pn atinge perioada sau valoarea FFFFh. Cnd numrtorul atinge una din aceste valori se oprete. Numrtorul numr jos pn la valoarea zero cnd intrarea TMRDIR este n starea low. La aceast valoare (zero) numrtorul se oprete. Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh i se oprete aici dac TMRDIR este high. Dac TMRDIR este low atunci numr jos pn la valoarea perioadei dup care continu ca n situaia cnd valoarea iniial este egal cu valoare perioadei. Dac valoarea iniial este egal cu valoarea registrului perioadei atunci contorul se oprete la acest valoare dac TMRDIR este high sau numr jos de la acest valoare dac TMRDIR este low. Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la modul de numrare o singur dat sus. Intervalul de timp ntre modificarea TMRDIR i modificarea sensului de numrare este de 2 ciclii de ceas CPU dup sfritul numrtorii n curs comutrii curente - (altfel spus la sfritul perioadei impulsului de numrare prescalat). Figura 7.22 ilustreaz modul de numrare direcional up/down.

Fig. 7.22. Modul de numrare direcional sus/jos

Modul de numrare direcional up/down al timerului GP 2

Modul de numrare direcional up/down la timerului GP 2 difer de cele ale timerelor 1 i 3. Timerul GP 2 numr pn la perioad i furnizeaz depire superioar i inferioar. Acest mod de operare poate fi utilizat pentru a msura durate sau numrarea apariiei evenimentelor externe n controlul motorelor/micrii (deplasrii) i aplicaii ale electronicii de putere. Nu apar tranziii pe ieirile de comparare asociate cu modulul de comparare (care include comparare timer GP, comparare complet sau simpl) care utilizeaz timerul GP ca baz de timp. < 173 >

Arhitectura sistemelor de calcul

Cnd QEP este selectat ca surs de ceas pentru timer GP acesta trebuie pus n modul de unmrare direcional up/down.
Modul de numrare o singur dat up/down

Timerul GP n acest mod numr n concordan cu ceasul prescalat pn la valoarea din registrul perioadei. Atunci el schimb direcia de numrare i numr jos pn la valoarea zero. Cnd s-a atins valoarea zero este resetat TxCON[6] i contorul de prescalare se oprete i reine starea sa curent. Perioada timerului GP este 2x(TxPR) ciclii de ceas scalat dac valoarea sa iniial este 0. Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh reseteaz la zero i continu numrtoarea ca n cazul cnd valoarea iniial este zero. Dac valoarea iniial este egal cu valoarea registrului perioadei atunci numrtorul numr jos pn la zero i termin perioada aici. Dac valoarea iniial este ntre zero i valoarea perioadei atunci contorul numr sus pn la atingerea perioadei i apoi continu ca n situaia cnd contorul este egal cu perioada. Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la modul de numrare o singur dat sus. Este de notat c evenimentul egalitatea perioadei se produce la jumtatea perioadei de numrare la egalitatea contorului cu registrul de perioad. O dat ce s-a stabilit acest mod de numrare operaia de numrare nu poate fi pornit dect scriind 1 n TxCON[6]. Bitul de sens este 1 la numrare sus i 0 la numrare jos. Poate fi selectat i ceasul intern i cel extern. Intrarea TMRDIR este ignorat n acest mod. Figura 7.23 ilustraz modul de numrare o singur dat sus/jos.

Fig. 7.23. Modul de numrare o singur dat sus/jos (TxPR=3)

Modul de numrare up/down continuu

n acest mod operarea este similar modului de numrare o singur dat sus/jos cu precizarea c timerul reia operaiunea de fiecare dat cnd este resetat la zero. O dat < 174 >

Arhitectura sistemelor de calcul

ce acest mod de operare este pornit nu este necesar nici o intervenie software sau hardvare pentru contorizarea repetat a perioadei. Perioada timerului GP este 2x(TxPR) ciclii de ceas scalat cu excepia primei perioade. Durata primei perioade de numrare are aceeai valoare dac valoarea iniial a contorului timerului este 0. Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh reseteaz la zero i continu numrtoarea ca n cazul cnd valoarea iniial este zero. Dac valoarea iniial este egal cu valoarea registrului perioadei atunci numrtorul numr jos pn la zero i continu la fel ca n cazul n care valorea iniial este zero. Dac valoarea iniial este ntre zero i valoarea perioadei atunci contorul numr sus pn la atingerea perioadei i apoi continu ca n situaia cnd contorul este egal cu perioada. Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la modul de numrare o singur dat sus. Sensul de numrare este indicat de bitul corespunztor din GPTCON care este 1 atunci cnd timerul numr sus i 0 cnd numr jos. Poate fi selectat att ceasul intern ct i cel extern. Intrarea TMRDIR este ignorat n acest mod. Figura 7.24 prezint modul de numrare continuu sus/jos.

Fig. 7.24. Modul de numrare continuu sus/jos

Operaia de comparare a timerului GP

Fiecare timer GP are asociat un registru de comparare TxCMPR i un pin de ieire de comparare/PWM. Valoarea timerului GP este n mod constant comparat cu registrulde comparare asociat. Evenimentul la comparare se produce atunci cnd registrul de comparare asociat timerului este egal cu coninutul timerului. Operaia de comparare este validat atunci cnd bitul TxCON[1] este setat la 1. Dac acest bit este setat la 1 atunci la apariia unui eveniment de comparare se produc urmtoarele operaii:

< 175 >

Arhitectura sistemelor de calcul o fanionul de ntrerupere la comparare este setat pe dou perioade de ceas CPU dup producerea egalitii ntre registrul timer i registrul comparator; o dac timerul nu este ntr-un mod de directional de numrare sus/jos se produce o tranziie pe ieirea asociat comparare/PWM n concordan cu bitul de configurare din GPTCON, un ciclu de ceas dup producerea egalitii; o dac fanionul de ntrerupere la comparare a fost selectat s porneasc ADC atunci se trimite un semnal de start la acesta n acelai moment n care fanionul este setat.

Dac operaia de comparare a timerului GP este dezactivat atunci ieirea de comparare/PWM este n nalt impedan i nici unul din evenimentele descrise anterior nu se produce.
Tranziiile comparare/PWM

Tranziiile ieirilor de comparare/PWM sunt controlate de un generator de forme de und simetrice i asimetrice asociat logicii de ieire i depinde de urmtoarele:
o definirea biilor n GPTCON; o modul de numrare n care se gsete timerul; o sensul de numrare cnd modul de numrare este un singur ciclu sus jos sau numrare continu sus/jos. Generatorul de forme de und asimetrice/simetrice

Generatorul de forme de und asimetrice/simetrice genereaz o form de und asimetric sau simetric pe ieirea comparare/PWM n funcie de modul de numrare n care se gsete timerul GP.
Generarea formei de und asimetrice

O form de und asimetric cum este cea prezentat n figura 7.25 este generat cnd timerul este n modul de numrare un ciclu sau continuu sus. Cnd timerul este ntr-unul din aceste dou moduri, ieirea generatorului de forme de und se schimb n felul urmtor:
o o o o o

zero nainte ca operaia de numrare s porneasc; rmne neschimbat pn la producerea unei egaliti de comparare; comut la apariia egalitii de comparare; rmne neschimbat pn la sfritul perioadei; reseteaz la zero la sfritul perioadei dac o nou valoare de comparare pentru perioada urmtoare este diferit de zero.

< 176 >

Arhitectura sistemelor de calcul

Ieirea este 1 pe ntreaga perioad dac valoarea de comparare este zero la nceputul perioadei. Ieirea nu reseteaz la zero dac o nou valoare de comparare pentru perioada urmtoare este zero. Acest lucru este important pentru c permite generarea punsurilor PWM cu factor de umplere ntre 0% i 100% fr apariia impulsurilor parazite. Ieirea este zero pe ntreaga perioad dac valoarea de comparare este mai mare dect valoarea din registrul perioadei. Ieirea este 1 pentru o perioad a ceasului de intrare scalat dac valoarea de comparare este egal cu valoarea perioadei. O caracteristic a formei de und asimetrice de comparare/PWM este aceea c o modificare a valorii n registrul de comparare afecteaz numai un front la pulsului comparare/PWM.

Fig. 7.25. Ieirea comparare/PVM a timerului GP pentru modul de numrare sus continuu

Generarea formei de und simetrice

O form de und simetric aa cum este cea prezentat n figura 7.26 este generat atunci cnd timerul este n modul de numrare un singur ciclu sau continuu sus/jos. Cnd timerul este ntr-unul din aceste dou moduri, ieirea generatorului de forme de und se schimb n felul urmtor: zero nainte ca operaia de numrare s porneasc; rmne neschimbat pn la producerea unei egaliti de comparare; comut la apariia primei egalitii de comparare; rmne neschimbat pn se ntlnete a doua egalitate de comparare; o comut la apariia celei de-a doua egalitii de comparare o rmne neschimbat pn la sfritul perioadei; o reseteaz la zero la sfritul perioadei dac nu s-a ntlnit a doua egalitate la comparare i o nou valoare de comparare pentru perioada urmtoare este diferit de zero.
o o o o

Ieirea este setat la 1 la nceputul perioadei i rmne 1 pn la a doua egalitate de comparare dac valoarea de comparare este 0. Dup prima tranziie de la 0 la 1, < 177 >

Arhitectura sistemelor de calcul

ieirea rmne 1 pn la sfritul perioadei dac valoarea comparatorului este 0 pentru restul perioadei. Cnd acest lucru se ntmpl ieirea nu trebuie s reseteze la zero dac valoarea de comparare pentru urmtoarea perioad este n continuare zero. Acest lucru este fcut pentru a asigura generarea punsurilor PWM cu factor de umplere ntre 0% i 100% fr nici un impuls parazit. Prima tranziie nu trebuie s se produc dac valoarea comparatorului este mai mare sau egal cu valoarea perioadei pentru prima jumtate a perioadei. Ieirea va comuta totui cnd o egalitate de comparare se produce n ce-a de-a doua jumtate a perioadei. Aceast eroare n comutarea ieirii adesea ca rezultat a erorilor de calcul din programele de aplicaii este corectat la sfritul perioadei din cauz c ieirea reseteaz la zero numai dac noua valoare de comparare pentru perioada urmtoare este zero. Dac se ntmpl mai trziu, ieirea rmne 1, ceea ce o pune din nou n starea corect. Not: Logica de ieire stabilete polaritatea pentru toi pinii de ieire.

Fig. 7.26. Ieirea comparare/PWM a timerului GP n modul de numrare continuu sus/jos

Logica de ieire

Logica de ieire permite stabilirea condiiilor pentru ieirea comparare/PWM n scopul comenzii diferitelor tipuri de dispozitive electronice de putere. Se pot specifica pentru ieirea comparare/PWM urmtoarele condiii: activ sus, activ jos, forat sus sau forat jos prin configurarea adecvat a biilor din GPTCON. Pentru starea activ, cele dou stri, activ sus i activ jos sunt complementare. Stare activ n 1 nseamn c ieirea furnizeaz 1 cnd este activ i zero n stare inactiv. Ieirea comparare/PWM este setat n 1 (sau 0) imediat ce biii corespunztori din GPTCON sunt setai astfel nct starea ieirii s fie forat sus (sau jos). Tabelele urmtoare descriu starea ieirii pentru diverse moduri de numrare.
TABELUL 7.4. Ieirea de comparare a timerului GP n mod numrare sus un ciclu sau continuu Desfurarea evenimentelor Starea ieirii de comparare nainte de egalitate comparare Inactiv La egalitate la comparare Setat activ La egalitate la perioad Setat inactiv

< 178 >

Arhitectura sistemelor de calcul TABELUL 7.5. Ieirea de comparare a timerului GP n mod numrare sus/jos un ciclu sau continuu Desfurarea evenimentelor Starea ieirii nainte de prima egalitate de comparare Inactiv La prima egalitate la comparare Setat activ La a doua egalitate la comparare Setat inactiv Dup a doua egalitate la comparare Inactiv

Toate ieirile comparare/PWM sunt puse n nalt impedan cnd se produce unul din urmtoarele evenimente:
o o o o

GPTCON[6] este setat la 1 de ctre software; PDPINT este pus low i este nemascat; se comand RESET; cnd operaia este dezactivat pentru timerele GP.

Ieirea de comparare n modul de numrare direcional sus/jos

Cnd timerul este n modul de numrare direcional sus/jos nu se produce nici o tranziie la ieirile de comparare. n mod similar, nu se produce nici o tranziie la ieirile de comparare asociate cu unitile de comparare complet cnd timerul GP 1 este n modul de numrare direcional sus/jos. Nu se produce nici o tranziie la ieirile asociate unitilor de comparare simpl atunci cnd timerul GP selectat ca baz de timp pentru acestea este programat n modul de numrare direcional sus/jos. Setarea fanioanelor ce ntrerupere la comparare i generarea cererilor de ntrerupere nu depinde de modul de numrare n care este setat timerul GP.
Calcularea timpului activ/inactiv

Pentru modurile de numrare sus, valoarea registrului de comparare reprezint timpul scurs ntre nceputul perioadei i ntlnirea preimei egaliti la comparare; rezult c aceasta este lungimea fazei inactive. Timpul scurs este egal cu perioada ceasului prescalat nmulit cu TxCMPR. Rezult c lungimea fazei active, limea impulsului, este dat de relaia: TxPR TxCMPR+1 ciclii ai ceasului scalat. Pentru modurile de numrare sus/jos, registrul de comparare poate avea valori diferite pentru numrarea jos i numrarea sus. Lungimea fazei active, adic limea impulsului, este dat de relaia: TxPR TxCMPRUP + TxPR TxCPMRDN ciclii de ceas prescalat. Cnd valoarea TxCMPR este zero atunci ieirea de comparare a timerului GP este activ pe ntreaga perioad dac timerul este n modul de numrare sus. Pentru modurile de numrare sus/jos, ieirea de comparare este activ de la nceputul perioadei dac TxCMPRUP este zero. Ieirea rmne activ dup sfritul perioadei dac TxCMPRDN este de asemenea zero. Lungimea fazei active (limea impulsului) este zero atunci cnd valoarea TxCMPR este mai mare dect TxPR pentru modurile de numrare sus. Pentru modurile de numrare sus/jos prima tranziie este pierdut cnd TxCMPRUP este mai mare sau < 179 >

Arhitectura sistemelor de calcul

egal cu TxPR. Similar, a doua tranziie este pierdut cnd TxCMPRDN este mai mare sau egal cu TxPR. Ieirea de comparare a timerului GP este inactiv pe ntreaga perioad dac ambele valori de comparare TxCMPRUP i TxCMPRDN sunt mai mari sau egale cu TxPR pentru modurile de numrare sus/jos.
Registrele de control ai timerelor GP (GPTCON i TxCON)

Registrul de control timer GP (GPTCON) adresa 7400h


15 T3STAT R-1 7 TCOMPOE RW-0 14 T2STAT R-1 5-4 T3PIN RW-0 13 T1STAT R-1 12-11 T3TOADC RW-0 3-2 T2PIN RW-0 10-9 T2TOADC RW-0 1-0 T1PIN RW-0 8-7 T1TOADC RW-0

Not: R=citire, W=scriere, -0=valoare dup reset


Bit 15 Bit 14 Bit 13 Biii 12-11

Biii 10-9

Biii 8-7

Bit6

T3STAT. Stare timer GP 3 0= Numr jos 1= Numr sus T2STAT. Stare timer GP 2 0= Numr jos 1= Numr sus T1STAT. Stare timer GP 1 0= Numr jos 1= Numr sus T3TOADC. Pornete conversie ADC de ctre eveniment timer GP 3 00 = Nici un eveniment nu pornete ADC 01 = ntreruperea la depirea inferioar pornete ADC 10 = ntreruperea la perioad pornete ADC 11 = !ntreruperea la comparare pornete ADC T2TOADC. Pornete conversie ADC de ctre eveniment timer GP 2 00 = Nici un eveniment nu pornete ADC 01 = ntreruperea la depirea inferioar pornete ADC 10 = ntreruperea la perioad pornete ADC 11 = ntreruperea la comparare pornete ADC T1TOADC. Pornete conversie ADC de ctre eveniment timer GP 1 00 = Nici un eveniment nu pornete ADC 01 = ntreruperea la depirea inferioar pornete ADC 10 = ntreruperea la perioad pornete ADC 11 = ntreruperea la comparare pornete ADC TCOMPOE. Activeaz ieirea de comparare. PDPINT activ scrie zero la acest bit. 0= Dezactiveaz toate cele trei ieiri de comparare ale timerelor GP (le pune n starea de nalt impedan) 1= Activeaz toate cele trei ieiri de comparare ale timerelor GP < 180 >

Arhitectura sistemelor de calcul Biii 5-4

T3PIN. Polaritatea ieirii de comparare a timerului GP 3 00 = forat n starea jos 01 = activ n zero 10 = activ n unu 11 = forat n unu T2PIN. Polaritatea ieirii de comparare a timerului GP 2 00 = forat n starea jos 01 = activ n zero 10 = activ n unu 11 = forat n unu T1PIN. Polaritatea ieirii de comparare a timerului GP 1 00 = forat n starea jos 01 = activ n zero 10 = activ n unu 11 = forat n unu

Biii 3-2

Biii 1-0

Registrul de control al timerului GP (TxCON; x=1,2 i 3) regitrii sunt la adresele 7404h, 7408h i 740Ch.
15 Free RW0 14 Soft RW-0 13 TMODE 2 RW-0 12 TMODE 1 RW-0 11 TMODE 0 RW-0 10 TPS2 RW-0 9 TPS1 RW-0 8 TPS0 RW-0

7 6 TSWT1 TENABL
E

RW-0

RW-0

5 4 3 TCLKS1 TCLKS TCLD1 0 RW-0 RW-0 RW-0

2 TCLD0 RW-0

1 0 TECMP SELT1PR R RW-0 RW-0

Not: R=citire, W=scriere, -0=valoare dup reset


Biii 15-14

Biii 13-11

Free, Soft. Bii de control a emulrii 00 = Stop imediat ce emularea a fost oprit 01 = Stop dup ce perioada curent a timerului este complet la oprirea emulrii 10 = Operarea nu este afectat de oprirea emulrii 11 = Operarea nu este afectat de oprirea emulrii TMODE2-TMODE0. Selectarea modului de numrare 000 = Stop/hold 001 = Modul numrare direct (sus) o singur dat (un ciclu) 010 = Modul numrare continu direct (sus) 011 = Mod numrare bidirectional (up/down) 100 = Modul numrare bidirectional o singur dat (un ciclu) 101 = Mod numrare continuu bidirecional 110 = Rezervat. Rezultat imprevizibil < 181 >

Arhitectura sistemelor de calcul Biii 10-8

Bit 7

Bit 6

Bit 5-4

Biii 3-2

Bit 1 Bit 0

111 = Rezervat. Rezultat imprevizibil TPS2-TPS0. Factor de divizare a ceasului de intrare 000 = x/1 001 = x/2 010 = x/4 011 = x/8 100 = x/16 101 = x/32 110 = x/64 111 = x/128 x frecvena de ceas a unitii centrale (CPU) TSWT1. (Pornirea timer GP cu timer GP 1). Pornete timerul cu bitul de validare al timerului GP 1. Acest bit este rezervat la T1CON 0= Utilizeaz propriul bit TENABLE 1= Utilizeaz bitul TENABLE din T1CON pentru validarea sau invalidarea operaiei ignornd propriul bit TENABLE TENABLE. Validare timer. n modul un singur ciclu numrare direct sau bidirecional acest bit este ters la zero de ctre timer dup ce se completeaz o perioad a operaiei 0= Dezactiveaz operarea timerului: pune timerul n starea de oprire (hold) i reseteaz contorul de divizare (prescalare) 1= Activeaz operarea timerului TCLKS1, TCLKS0. Selectarea sursei de ceas. 00 = Intern 01 = Extern 10 = Cascadare cu timerul GP 2. (este aplicabil numai la T3CON cnd timerele GP 2 i 3 sunt legate pentru a forma un timer de 32 bii; rezervat n T1CON i T2CON; ilegal dac SELT1PR=1 adic rezultatul este imprevizibil) 11 = Circuit pentru impulsuri codate n cuadratur (Aplicabil numai la T2CON i T3CON; rezervat n T1CON; ilegal dac SELT1PR este 1 adic rezultatul este imprevizibil) TCLD1, TCLD0. Condiia de rencrcare a registrului (activ) pentru comparator 00 = Cnd contorul este 0 01 = Cnd valoarea contorului este zero sau egal cu valoarea registrului perioadei 10 = Imediat 11 = Rezervat TECMPR. Validarea comparrii timerului 0= Dezactiveaz operaia de comparare a timerului 1= Activeaz operaia de comparare a timerului SELT1PR. Selecia registrului de perioad. Acest bit este rezervat n T1CON 0= Utilizeaz registru propriu de perioad 1= Utilizeaz T1PR ca registru de perioad ignornd registrul propriu < 182 >

Arhitectura sistemelor de calcul

Not: Sincronizarea timerelor GP Dou scrieri consecutive n T1CON sunt necesare pentru a asigura sincronizarea timerelor GP cnd T1CON[6] este folosit pentru validarea timerelor GP 2 sau 3: 1. Configurai toi ceilali bii cu T1CON[6] setat la zero 2. Validai timerul GP 1 i astfel timerul GP 2 sau timerele GP 2 i 3 prin setarea T1CON[6] la unu.
Generarea ieirilor de comparare i PWM utiliznd timerele GP

Fiecare timer poate fi folosit independent pentru a furniza un canal de ieire de comparare sau PWM. Rezult c se pot genera pn la trei ieiri de comparare sau PWM.
Operaia de comparare

Pentru a genera o ieire de comparare modul de operare corespunztor trebuie nti selectat pentru timerul GP. Pentru aceasta urmtoarele activiti trebuie realizate:
o setarea TxCMPR n concordan cu valoarea de comparat; o setarea GPTCON cu tranziia dorit a ieirii care s se produc la egalitatea de comparare; o ncrcarea TxPR cu valoarea dorit a perioadei, dac este necesar; o ncrcarea TxCNT cu valoarea iniial a contorului, dac este necesar; o setarea TxCON cu modul de numrare specific, sursa de ceas i pornirea operrii. Operarea PWM

Pentru a genera o ieire PWM cu un timer GP se selecteaz modul de numrare sus continuu sau modul de numrare sus/jos continuu. Forme de und PWM cu fronturi trigerate sau asimetrice sunt generate cnd este selectat modul de numrare sus continuu. Forme de und PWM centrate sau simetrice sunt generate cnd modul de numrare sus/jos este selectat. Pentru a seta timerul GP pentru aceast operaie se efectueaz urmtoarele activiti:
o setarea TxPR n concordan cu perioada dorit a PWM (purttoarea); o setarea TxCON n modul de numrare specific, sursa de ceas i pornirea operaiei; o ncrcarea TxCMPR cu valorile corespunztoare cu valorile calculate on-line ale limii pulsurilor PWM.

< 183 >

Arhitectura sistemelor de calcul

Valoarea perioadei este obinut prin mprirea perioadei dorite a PWM la perioada ceasului de intrare a timerului GP i scznd 1 din valoarea obinut cnd este selectat modul de numrare sus continuu pentru a genera forme de und PWM asimetrice. Aceast valoare este obinut prin mprirea perioadei dorite pentru PWM la de 2 ori perioada de ceas de intrare a timerului GP cnd este selectat modul de numrare continuu sus/jos pentru a genera forme de und PWM simetrice. Timerul GP poate fi iniializat n acelai fel cum s-a artat n exemplele anterioare. Pe durata timpului de numrare, registrul de comparare al timerului GP este n mod continuu ncrcat cu noile valori determinate pentru comparare pentru noile cicluri active determinate.
Resetarea timerului GP

Cnd apare semnalul RESET se produc urmtoarele evenimente:


o toi biii registrelor timerelor GP cu excepia bitului de direcie din GPTCON sunt resetai la zero; deci toate operaiile timerelor GP sunt dezactivate. Biii indicatori ai direciei sunt toi setai la 1; o toate fanioanele de ntrerupere ale timerelor sunt resetate la 0; o toi biii de mascare ai ntreruperilor sunt resetai la zero; deci toate ntreruperile timerelor GP sunt mascate; o toate ieirile de comparare ale timerelor GP sunt puse n starea de nalt impedan.

< 184 >

Arhitectura sistemelor de calcul

Bibliografie

1. Athanasiu Irina, Panoiu Alexandru, - Microprocesoarele 8086, 286, 386, Editura TEORA, Bucuresti, 1992; 2. Adrian Petrescu .a. Microcalculatoarele M18, M18B, M118, Editura Tehnic, Bucureti, 1984; 3. Andronescu Gh., - Sisteme Digitale, Editura MatrixRom, Bucuresti, 2002; 4. Baluta Gheorghe, - Circuite logice si structuri numerice. Proiectare si aplicatii. Editura MatrixRom, Bucuresti, 2002; 5. Blakeslee Thomas, Proiectarea cu circuite logice MSI si LSI standard, EdituraTehnica, Bucuresti, 1988; 6. Bogdanov Ivan, - Microprocesorul in comanda actionarilor electrice, Editura FACLA, Timisoara, 1989; 7. Budiu Mihai, Cache-uri, Cornell University, USA, 1999; 8. Capatina Octavian, - Proiectarea cu microcalculatoare integrate, Editura Dacia, Cluj, 1992; 9. Cristian Lupu, Stefan Stancescu, - Microprocesoare Circuite Proiectare., Editura Militara, Bucuresti, 1986; 10. Cuculescu I., - Analiza numerica, Editura Tehnica, Bucuresti, 1967; 11. Dancea Ioan, - Microprocesoare. Arhitectura interna, programare, aplicatii. Editura Dacia, Cluj-Napoca, 1979; 12. Davidoviciu A., s.a., - Minicalculatoarele si microcalculatoarele in conducerea proceselor industriale, Editura Tehnica, Bucuresti, 1983; 13. Ionescu D. - Codificare si coduri, Editura Tehnica, Bucuresti, 1981; 14. Lupu C., s.a. - Microprocesoare. Aplicatii. Editura Militara, Bucuresti 1982; 15. Marinescu D. Naicu S., - Microcontrolerul 80C32. Manual de utilizare. Editura Tehnica, Bucuresti, 1998; 16. Milici Dan, - Circuite numerice. Introducere in sistemele de calcul, Editura MatrixRom, Bucuresti, 2003; 17. Pop Eugen, s.a. - Metode in prelucrarea numerica a semnalelor, Editura FACLA, Timisoara, 1989; 18. Popescu D., Popescu C., - Circuite digitale elementare, Editura MatrixRom, Bucuresti, 2003; 19. Potorac D.A., - Bazele proiectarii circuitelor numerice, Editura MatrixRom, Bucuresti, 2002; < 185 >

Arhitectura sistemelor de calcul 20. Puiu-Berizinu M., Rotar Dan An Optimal Control Method of the PWM Inverter used in Electrical Drives with Induction Motor - MIPRO99 CONFERENCE, IEEE Region 8, CROAIA 1999. 21. Puiu Berizinu Mihai, Rotar Dan Using DSP for PWM Inverter Command by the Generatrix Wave Sampling Principle, Conferina Naional de Acionri Electrice CNAE 2000, Iai, 12-14 octombrie 2000, publicat n Buletinul Institutului Politehnic Iai, Tomul XLVI (L), Fasc. 5, ISSN 0258-9109, pp. 72-77 22. Radu O., Sandulescu Gh., - Filtre numerice. Aplicatii, Editura Tehnica, Bucuresti, 1979; 23. Rotar Dan - Harmonic analysis based on microcomputers, Efficiency, Cost, Optimization, Simulation and Environmental Aspects of Energy Systems and Processes Congress ECOS98, ISBN 2-905-267-29-1, Nancy, France, pp. 11731180, 1998. 24. Rotar Dan - Protection of the Microcomputer-based Pulse-Width Modulated Inverters, 17th International Conference on COMPUTERS IN TECHNICAL SYSTEMS, Proceedings Volume 2, ISBN 953-6042-57-6, pp. 67-70, CROAIA 1998. 25. Rotar Dan, Ababei tefan - Determinarea consumului energetic prin contorizare numeric, Conferina Naional de Energetic Industrial, Bacu, 1998, Editura Plumb, ISBN 973-9362-16-8, pp. 170-173. 26. Rotar Dan Sisteme de msur digitale a energiei electrice Probleme de management i conservare a energiei, Craiova, ISBN 973-0-00917-1, pp. 21-28, 1999 27. Rotar Dan Programarea DSP, Conferina Naional de Energetic Industrial CNEI 2000 MILENIUM, 10-11 noiembrie 2000, Bacu, Editura ALMA MATER, ISBN 973-99703-4-6, pp. 84-87 28. Rotar Dan Regulator numeric pentru procesorul digital de semnal TMS320F240, Conferina Naional de Energetic Industrial CNEI 2000 MILENIUM, 10-11 noiembrie 2000, Bacu, Editura ALMA MATER, ISBN 973-99703-4-6, pp. 88-91 29. Rotar Dan, Ababei Stefan, Sorin Popa, Communication system for DSP and PC compatible computer, Romanian Academy, Branch office of Iasi, MCOM-8, 2002, ISSN 1224-7480, pp. 413-418. 30. Dan Rotar, Petru Livini, Ababei Stefan, Digital filtering with digital signal processing controller, Romanian Academy, Branch office, MCOM-9 vol. 2, 2003, ISSN 1224-7480, pp. 207-210. 31. Somnea Dan, Vladut Teodor, - Programarea in assembler. Editura Tehnica, Bucuresti, 1992; 32. Stanasila Octavian, - Notiuni si tehnici de matematica discreta, Editura Stiintifica si Enciclopedica, Bucuresti, 1985; 33. Stanomir D., Stanasila O., - Metode matematice in teoria semnalelor, Editura Tehnica, Bucuresti 1980; 34. Suciu Marcel, Popescu Dumitru, Ionescu Traian, - Microprocesoare, microcalculatoare si roboti in automatizari industriale, Editura Tehnica, Bucuresti, 1986 35. Sztojanov I., s.a. - De la poarta TTL la microprocesor vol I, II, Editura Tehnica, Bucuresti, 1987; < 186 >

Arhitectura sistemelor de calcul 36. Tanase Ady, Gaitan V., - Familia de procesoare pentru prelucrarea numerica a semnalelor ADSP-21, Editura MatrixRom, Bucuresti, 2004; 37. Teodorescu Dan, - Introducere in microelectronica, Editura Facla, Timisoara, 1985; 38. Teodorescu Dan, - Automatizari microelectronice, EdituraTehnica, Bucuresti, 1988: 39. Toacse Ghe., - Introducere in microprocesoare, Editura Stiintifica si Enciclopedica, Bucuresti, 1986; 40. Toace Gheorghe, Nicula Dan Electronic digital. Dispozitive. Circuite. Proiectare., Editura Tehnic, Bucuresti, 2005; 41. Zoican Sorin - Arhitectura sistemelor de calcul,Universitatea Politehnica, Bucuresti, 1998; 42. Zoican Sorin, Popovici C. Eduard - Arhitectura microprocesoarelor. Indrumar de laborator, Universitatea Politehnica, Bucuresti, 1997; 43. *** TMS320C24x DSP Controllers - Reference Set: Vol.1, Texas Instruments Inc, 1997; 44. *** TMS320C24x DSP Controllers - Reference Set: Vol.2, Texas Instruments Inc, 1997; 45. *** AT90S3213 Microcontroller, Atmel, 1998; 46. *** PIC 16F97x Microcontroller, Microchip, 2005;

< 187 >

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