Sunteți pe pagina 1din 27

Elemente de intrare/iesire ale

sistemelor cu procesor

Module de interfata (sau module de intrare-iesire) - circuite speciale care compatibilizeaza/ convertesc informatii
diverse, de la o gama foarte larga de echipamente si componente de intrare si iesire, la semnale compatibile cu cele
de pe magistralele sistemului microprocesor.

Unitatea centrala a sistem uP comunica cu exteri orul prin Central


Processing
intermediul porturilor. Unit (CPU)

Daca informațiile vehiculate de aceste circuite se prezintă la Random


Input Output
Acces
exteriorul sistemului sub forma unor semnale binare (contact închis Device(s)
Memory
Device(s)

sau deschis, dispozitiv luminos aprins sau stins, semiconductor Peripheral devices do not perform
computations.
saturat sau blocat etc.), porturile respective se numesc
User(s)
Port de iesiri numerice

• Printr-un port de iesiri numerice, unitatea centrala poate:


• transmite comenzi (START, STOP, etc.), semnalizari (OK — starea sistemului supravegheat este normala, AVARIE —
parametrul X a depasit valoarea maxima admisa), seta diversi parametri (ex. pentru oprirea unui motor etc.), catre
exteriorul sistemului microprocesor.
• uP selecționeaza portul de iesire, iar informatia prezenta pe magistrala de date va fi "pastrata" de port,
pentu a fi disponibila la iesire.
• Selectionarea portului implica prezenta pe MA a adresei portului, simultan cu activarea semnalelor ce
semnifica operatia de scriere la port, pe MC. Astfel, se realizeaza o operatie de iesire (se executa o instructiune
de tip OUT).

• Odata selectat, portul de iesiri numerice face ca informatia inscrisa in el sa fie disponibila la iesire atata
timp cat nu apare o noua selectie.
• Din punct de vedere structural, un port de iesiri numerice are la baza un element de inmagazinare a
informatiei, de memorare a ei, adica un circuit de tip latch. Acesta, in absenta comenzii de incarcare, isi
mentine neschimbata starea iesirilor, indiferent de variatia marimilor de la intrare.

cadru didactic S.Paturca


Port de intrari numerice
• Unitatea centrala de prelucrare, prin intermediul porturilor de intrari numerice, poate primi informatii
despre starea unor marimi binare provenite extern.

• Selectia unui port de intrari numerice se face pe baza adresei portului si a activarii unor semnalelor de
control, semnificand operatia de citire de la port. Astfel, se realizeaza o operatie de intrare (se executa o
instructiune de tip IN).

• Odata selectat, portul de intrare realizeaza transferul informatiei dinspre exterior inspre magistrala de
date a sistemului microprocesor.

• Deoarece iesirile unui port de intrare sunt cuplate la MD, fiecare iesire are la baza un circuit tri-state.
Acesta, atunci cand portul nu este selectat, adica nu este activat, prezinta starea de inalta impedanta,
echivalenta, functional, cu decuplarea fizica de la liniile magistralei de date.

cadru didactic S.Paturca


Elemente de intrare/iesire ale sistemelor cu procesor

Tipul de operatie I/E (sau I/O), utilizata intr-o aplicatie depinde de rata de transmitere a datelor, de intarzierea maxima cu care uP poate prelua/transmite
datele din momentul disponibilitatii echipamentului care le vehiculeaza, de posibilitatea executarii, intercalat cu operatiile I/E, a altor operatii ale unitatii
centrale.
cuvinte de date
date de intrare
- utilizare pentru:
date de iesire
Echipament
- sincronizarea operatiilor portului si ale uP,
intrare / iesire cuvinte de control Microprocesor
- setarea/testarea unor parametri, operatii necesare pt. transmiterea cuvinte de comanda

cuvinte de stare
cuvintelor de date.
, denumite in acest caz cuvinte de stare, Fluxul de informatie intre uP si o interfata de I/E
permite, prin testarea prin program a bitilor cuvantului citit de la port,
- analizarea starii portului: , cuvintele de control sunt denumite
- daca are sau nu informatie disponibila, cuvinte de comanda a portului si permit, prin afectarea pentru
- daca poate prelua alt cuvant de date, fiecare bit al cuvantului, cu semnificatie unica, programarea
- daca transferul s-a efectuat corect etc., in functie de posibilitatile si portului.
functiile portului) - se pot initia operatii / seta parametri diversi (oprirea unui motor,
- luarea de decizii adecvate de catre microprocesor modificarea ratei de transmisie a unor date, stergerea unui
- se executa sectiuni din programul sistemului pt. tratarea situatiei date indicator de eroare etc.)
Operatii cu interfetele de I/E

• Scriere catre porturile de I/E (OUTPUT)


• Cuvinte de comanda – setare de parametri de functionare a interfetei
• viteza de lucru, setare / resetare stare parametri, comanda ON/OFF a unor elemente de iesire
digitale, etc.
• Cuvinte de date – trimitere de date catre interfata
• de ex.: valori conversie D/A, setare / resetare biti port iesire digital, etc.

• Citire de la porturile de I/E (INPUT)


• Cuvinte de stare – informatii de functionare a interfetei
• viteza de lucru, stare parametri, citirea starii ON/OFF a unor elemente de intrare digitale, etc.
• Cuvinte de date – de date de la interfata
• de ex.: valori conversie A/D, stare biti port intrare digital, etc.
Porturi de I/E digitale
• Fiecarui bit al cuvantului de date al portului ii corespunde un element exterior de tip inchis / deschis
(0/1 sau ON/OFF)
• INPUT – citeste starea unui element de tip
• OUTPUT – seteaza starea unui element de executie de tip binar – releu, contactor, bec, LED, etc.

Registru Port de Intrare / Iesire (tipic pt. microcontrolere)

Bitn Bitn-1 Bitk Bit1 Bit0


Intrare 0
Iesire 1

Iesire k

Intrare n-1

Iesire n
Porturi de I/E digitale Registru Port de iesire

Bitn Bitn-1 Bitk Bit1 Bit0


Iesire 0
Iesire 1

Iesire k

Iesire n-1
Iesire n

Registru Port de intrare

Bitn Bitn-1 Bitk Bit1 Bit0


Intrare 0
Intrare 1
Intrare k

Intrare n-1
Intrare n

cadru didactic S.Paturca


Identificarea starii unui element/echipament - INPUT

Identificarea starii echipamentului conectat la un port de intrare se face prin testare, astfel:
- Se izoleaza bitul corespunzator din cuvantul de date citit de la portul de intrare
- Se construieste o constanta numita masca de testare, pentru a izola bitul de identificat. Aceasta va avea
valoarea “1” pe pozitia bitului de testat si “0” in rest
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date cittit de la port si masca construita.

Cuvant de date citit


de la port de intrare bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0
Data_INPUT
(INPUT):
Operatia logica:
AND
Izolarea bitului k
Mască de testare 0 ………....0 1 0 …….…0 Masca_testare_bit_k
pentru bitul k:
Rezultat 0 ………....0 bit_k 0 …….…0
Rez_test_bit_k

Rez_test_bit_k = Data_INPUT & Masca_testare_bit_k;


if (Rez_test_bit_k)
{ // bitul k = 1, se completeaza cod corespunzator
................. }
else
{ // bitul k = 0, se completeaza cod corespunzator
...................}
cadru didactic S.Paturca
Setarea starii unuia sau mai multor echipamente - OUTPUT

- Se seteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin punerea valorii “1” pe bitul/bitii de setat.
- Se construieste o constanta numita masca pentru setarea bitului/bitilor de setat, care va avea valoarea “1” pe pozitia bitului/bitilor pentru
setat, iar restul de biti vor fi “0”
- Se efectueaza operatia logica “SAU” (OR) intre cuvantul de date anterior scris la portul de lucru (pentru a nu modifica stare altor echipamente
conectate la port) si masca.

Cuvant de date scris


anterior la port de iesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
OR
Mască pentru setarea
bitului k: 0 ………....0 1 0 …….…0 Masca_setare_bit_k

Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0

Bitul k setat, ceilalti nemodificati

Setarea bitului k:
Masca_bit_k = 10000b; // valoarea 1 trebuie pozitionata pe
// pozitia k
Data_OUTPUTt-1= Data_OUTPUTt-1| Masca_setare_bit_k;
Data_OUTPUTt-1 |= Masca_setare_bit_k; //
// OUTPUT la port Rez_OUPTUT_bit_kt cadru didactic S.Paturca
Resetarea starii unuia sau mai multor echipamente - OUTPUT

- Se reseteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin fortarea pe valoarea “0” a bitului/ bitilor de resetat.
- Se construieste o constanta numita masca pentru resetarea bitului/bitilor de resetat, care va avea valoarea “0” pe pozitia bitului/bitilor pentru
resetat, iar restul de biti vor fi “1”
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date anterior scris la portul de lucru si masca. Astfel, nu se modifica starea altor
echipamente conectate la portul respective.

Cuvant de date scris


anterior la port de iesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
AND
Mască pentru resetarea
bitului k: 1 ………....1 0 1 …….…1 Masca_resetare_bit_k
Rezultat bit_n .…bit_k+1 0 bit_k-1 .…bit_0 Rez_OUTPUT_bit_kt
Bitul k resetat, ceilalti nemodificati Resetare echipament k
Resetare bit k:
Masca_bit_k = 1111111110111111b; // valoarea 0 trebuie pozitionata pe
// pozitia k
Data_OUTPUT &= Masca_resetare_bit_k; // Data_OUTPUTt-1= Data_OUTPUTt-1& Masca_resetare_bit_k;

// OUTPUT la port Rez_OUPTUT_bit_k


cadru didactic S.Paturca
Moduri de interfatare si acces / adresare
Microprocesor

- sub controlul microprocesorului Memorie Interfata I/E Periferic

Microprocesor Port de intrare/iesire

- prin acces direct la memorie - DMA Memorie Interfata DMA Periferic

Moduri de lucru cu elementele de intrare/iesire:


A. Operatii de intrare/iesire efectuate sub controlul programului
B. Operatii de intrare/iesire prin intreruperi
C.

Tehnicile de transfer al informatiei prin - accesul intre interfata si memoria sistemului se face
sub controlul unui circuit specializat, fara controlul programului uP.
Accesul direct la memorie este utilizat in cazul transferurilor foarte rapide de date, care se efectueaza de la/la periferice cu
viteze de lucru superioare celei a microprocesorului.
cadru didactic S.Paturca
Caracteristici generale
• Operatii cu interfete de Intrare-Iesire
• Adresate ca porturi de I/E – instructiuni speciale: IN, OUT
• Separate de memoria sistemului
• Mai usor de evidentiat operarea cu un element I/E, fata de operarea cu memoria
– depanare mai usoara
• Nu pot fi adresate direct in limbaje de nivel inalt (C/C++), ci doar in limbaj de
asamblare
• Adresate ca memorie (memory Mapped I/O) – instructiuni de adresare a memoriei
• Ocupa o zona din spatiul de adrese al memoriei sistemului
• Se pot adresa direct ca elemente de memorie (ca variabile ale programului),
utilizand orice mod de adresare posibil
• Depanararea trebuie facuta atent (posibilitate de eroare)
• Variabilele care sunt localizate la adrese de port de I/E trebuie declarate in
limbajul C cu atributul ‘volatile‘,
• de ex: volatile short P1IO;
cadru didactic S.Paturca
Exemple
Porturi de I/E
Scheme generale - Exemple
Port intrare; citire in registrul uP (pe bitii D0 - D15 ai MD) Port iesire; inscriere pe bitii de comanda CMD0¸CMD15

Port de intrare - Circuite de


tip 8286 - circuite tampon Port de iesire -Circuite de tip
izoland semnalele de intrare 8282, Latch -pentru memorarea
de magistrala de date a comenzilor date de
sistemului. microprocesor spre exterior.

Sensul transferului de date Pinul OE este conectat la masa,


prin aceste circuite este de la astfel Iesirile acestor circuite
intrarile A catre iesirile B, sunt in permanenta activate, iar
pinul de control al sensului impulsul de memorare a datelor
transferului de date, T, trebuie de pe magistrala de date este
conectat permanent la nivel sintetizat pe baza semnalului de
logic “1”. selectie a portului P1 (adresa
310h), utilizat ca port de
Activarea circuitelor tampon iesire — impreuna cu semnalul
WR .
se face prin pinul OE, Extras din catalog Extras din catalog

cadru didactic S.Paturca


Scheme porturi intrare-iesire digitale
Schema de baza port INPUT
Utilizare in program: citire stare buton 3 (exemplu)
IOREADY RD
Bitii superiori
de adresa, IO Sel Port IN k Daca butonul k e apasat, bitul corespunzator de date citit
Schema de Selectie
Port k de la portul de intrare este 0
decodificare
Buton 0 +
D0 Limbaj C
Buton 1 + int IN_k;
D1 …
Buton 2 + IN_k = INPORT(port_K);
D2 if((IN_k & 0x04) == 0)
Buton 3 + {
D3
// cod daca buton k apasat
Buton 4 +
D4
P }

Buton 5 + Limbaj de asamblare


D5 MOV DX, port_K ; DX=adresa port k
MOV AL, (DX) ; AL=data citita de
Buton 6 +
D6 ; la port K
AND AL, 00001000b ; izolare bit 3
Buton 7 + JZ Buton3 ; salt daca buton apasat
D7

Magistrala date
Scheme porturi intrare-iesire digitale

Schema de baza port OUTPUT

Bitii superiori
IOREADY WR Utilizare in program: (Exemplu: aprinde
de adresa, IO Sel Port OUT k LED 1, anclansare Releu 6, restul OFF)
Schema de Sel Port k
+
decodificare Daca bitul de date scris la portul de iesire
LED 0
D0 este 0 => LED corespunzator aprins / releu
Selectie Out0 +
Di0 anclansat; daca se scrie 1 => OFF
LED 1
D1
Out1 +
Di1
Limbaj C
LED 2
D2 int OUT_k;
Out2 +
Di2 …
Registru LED 3 OUT_k = 0xBD; // Releu 6, LED 1 ON
D3
// restul OFF
p Di3 Out3
Releu 4
D4
(latch) + OUTPORT(port_K, OUT_k); // OUT la port
Di4 Out4
Releu 5 Limbaj de asamblare
D5 8 biti +
MOV DX, port_K ; DX=adresa port k
Out5 MOV AL, 10111101b; Releu 6, LED 1
Di5
Releu 6 ; ON, restul OFF
+ MOV (DX), AL ; AL=data scrisa
D6 ; la port K
Di6 Out6
Releu 7
+
D7
Di7 Out7

Magistrala date
Exemple - Scheme de interfata pentru afisaj electronic
Magistrala date

Se pot utiliza semnalele P3, WR.


Portul este implementat utilizand doua circuite de tip latch 8282.
Semnalele de selectie a porturilor sunt aplicate pe pinii STB de inscriere a informatiei de pe

magistrala de date a sistemului microprocesor in aceste circuite.

La iesirea circuitelor 8282 se conecteaza cate un element de afisaj cu segmente


de tip LED.
Valoarea logica “1” pe o iesire a circuitelor 8282 implica segment stins, iar
valoarea logica “0” implica segment aprins.
Convertoare A/D – caracteristici generale

• Convertoare A/D (A/N): componente externe microprocesorului sau incluse pe cipul


microcontroler, pentru masurarea de marimi analogice.

• Structura: Circuit integrat sau bloc distinct in CPU.


Contine blocuri specifice pentru lansare conversie, pentru citirea starii conversiei si a datelor convertite.
Combinat uneori si cu multiplexor si circuit esantionare si retinere (Sample&Hold)

• Cifre de merit:
• Rezolutia - numar de biti
• Precizia – valoarea analogica corespunzatoare unui bit
• Viteza de conversie – durata conversiei

• Utilizare:
• Lansare conversie prin program, sau automat (alt periferic – timer, etc.)
• Testare stare conversie prin sau la terminarea conversiei
• Conversie unica sau multipla
• Conversie de pe un singur canal, sau de pe mai multe
Schema de baza utilizare convertor A/D in sistem microprocesor

IOREADY RD Utilizare in program:


Bitii superiori
de adresa, IO Sel Port IN k - OUTPUT la port k – start conversie
Schema de Sel Port k
- INPUT de la port k
decodificare – citeste stare conversie – bit7:
Sel Port k D0 daca bit 7 = 0, conversia gata, altfel nu
Bit 0
WR
Start – citeste date conversie (bitii 0 – 6),
Conversie
D1
Bit 1

D2 Limbaj C
Bit 2
Intrare
D3
analogica ConvertorBit 3
A/D de
7 biti Bit 4
D4 P
D5
Bit 5
Limbaj de asamblare
MOV DX, port_K ; DX<=adresa port k
D6 MOV (DX), AL; ; start conversie
Bit 6 LP1: MOV AL,(DX) ; AL<=data citita de la port K
MOV BL, AL ; memorare data citita
D7 AND AL, 0000000b ; testare/ izolare bit 7
EOC JNZ LP1; salt daca nu e gata (EOC=1)
..................; … BL contine data convertita

Magistrala date
Exemplu - Interfata CAD (AD571)
Portul este configurat ca un port de 16 biti.
Pinul B&C trebuie utilizat pentru a genera inceperea unei noi conversii (Start
conversie), la aparitia unui puls pozitiv pe acest pin. Acest puls va fi generat, (in
schema propusa), la efectuarea unei operatii de OUTPUT la portul P1 al sistemului.
Semnalul de selectie a portului, P1, impreuna cu semnalul de scriere, WR,
genereaza semnalul ITGWR aplicat pe pinul B&C al CAD.
Utilizare de date ca bit indicator de stare a conversiei, prin conectarea
acestui bit la iesirea a convertorului A/D. Magistrala
Pe durata unei conversii A/D, acest semnal are valoare logica 1, iar dupa date
incheierea conversiei, valoarea logica 0.

Bitii de date de iesire ai convertorului (BIT1 la BIT10) sunt fi conectati la intrarile


unor circuite tampon de tip 8286, prin care vor putea fi preluate, la o operatie de
citire de la portul P1 pe MD, si transferate in microprocesor.

La o citire se transfera informatie pe toti cei 16 biti ai MD a sistemului.

Pinul AnCom se va conecta la masa partii analogice de masura a schemei.


Pinul DigCom se conecteaza la masa partii digitale a schemei. pinul T la nivel 1 logic
asigura transferare a
datelor de la A ->B

Circuitele 8286 au selectat doar sensul de transferare a datelor de la pinii A catre pinii B, prin conectarea pinului T la nivel 1 logic (la +5 V).
Activarea circuitelor tampon este facuta la aparitia semnalului de selectie P1, simultan cu semnalul de citire, RD (generand semnalul ITGRD aplicat intrarilor OE ale circuitelor 8286).

Prin program, utilizatorul va putea efectua operatii de citire de la portul P1 si, prin testarea bitului D15 de date, va putea determina starea conversiei A/D.
Ceilalti biti de date (D10¸D14) nu sunt utilizati si ar putea, in principiu, sa fie folositi ca biti de intrare de uz general.
cadru didactic S.Paturca
Convertoare D/A – caracteristici generale

• Convertoare D/A - componente uzual incluse pe cipul microcontroler


• permit generarea de marimi analogice (uzual tensiuni in gama 0-V alimentare).

• Structura: Bloc distinct.


Contine registre specifice pentru programare si pentru setarea datelor de convertit.

• Cifre de merit:
• Rezolutia - numar de biti
• Precizia – valoarea analogica corespunzatoare unui bit
• Viteza de conversie – durata conversiei

• Utilizare:
• Inscriere data de convertit in registrul de date lanseaza conversia
• Nu necesita asteptare terminare conversie
Schema de baza utilizare convertor D/A in sistemul cu microprocesor

Bitii superiori WR
de adresa, IO
IOREADY
Utilizare in program:
Schema de Sel Port k
Sel Port OUT k
- OUTPUT la port k – data de convertit
decodificare
D0
Limbaj C
Selectie Out0
Di0

D1
Di1 Out1

D2
Out2
Di2
Registru
Magistrala date

D3
Convertor
Iesire
P Di3 Out3

(latch) D/A de analogica


D4
Di4 Out4

D5 8 biti 8 biti
Di5 Out5

D6 Limbaj de asamblare
Di6 Out6 MOV DX, port_K; DX<=adresa port k
MOV AL, val_conv
D7 MOV (DX), AL; val_conv la D/A
Di7 Out7 …
Interfata pentru generare de marimi de comanda analogica
• Pentru generarea semnalului analogic aplicat ca semnal de comanda a
amplificatorului de forta al sistemului de pozitionare, este necesara o
interfata ce contine un Convertor Digital/Analogic.
• In acest exempul Convertor Digital/Analogic are o rezolutie de 10 biti. In
cazul in care s-ar considera necesara utilizarea unui convertor D/A de
rezolutie mai mare, se poate inlocui convertorul, fara a necesita MD
modificari pe partea de interfata cu magistrala sistemului
• Se considera ca interfata este configurata ca portul P0 de iesire.
Semnalul de selectie al acestui port, notat P0, este utilizat impreuna cu
semnalul de scriere, WR, pentru a genera impulsul de memorare a
datelor de pe magistrala de date a sistemului microprocesor, in
circuitele de tip latch 8282 (prin conectare la pinul STB al acestor
circuite). Iesirile acestor circuite sunt permanent activate (pinul OE
conectat la masa), ssi unt aplicate — primii 10 biti, la intrarile de date MD
ale unui convertor D/A de 10 biti, de tip AD7520, de productie Analog
Devices. Pentru detalii asupra conectarii
si utilizarii circuitului AD7520,
• In ceea ce priveste conectarea celorlalti pini ai acestui circuit, de se poate consulta catalogul
mentionat ca, deoarece iesirea convertorului este o iesire in curent, se firmei Analog Devices.
utilizeaza un convertor curent–tensiune implementat cu ajutorul unui
amplificator operational.
Iesirea analogica, notata An.Out, va putea fi aplicata la intrarea de comanda a amplificatorului de curent al unui sistem de
pozitionare si poate reprezenta valoarea impusa curentului prin motor, calculata de sistemul microprocesor, intr-o bucla de
control discret dupa stare.
Deoarece bitii superiori de date (6 biti ai celui de-al doilea circuit 8282) nu sunt utilizati pentru convertorul D/A, in principiu, acesti
biti ar putea fi folositi ca biti de uz general de iesire.
Interfata traductor de pozitie
• Traductor de pozitie, (de ex. de tip encoder incremental, cu 1024 de pulsuri
pe tura), poate fi conectat la microprocesor prin intermediul unei interfete
dedicate, proiectata pentru a furniza, pe baza pulsurilor de la encoder,
informatia de pozitie a sistemului de comanda si control.
• Semnalele A si B furnizate de encoder sunt aplicate ca semnale de intrare intr-
un circuit care detecteaza sensul de miscare si apoi determina
contorizarea impulsurilor primite, pentru a stoca pozitia absoluta a masinii,
pe o rotatie a acesteia.
• Iesirile numaratorului vor fi conectate la intrarile unor circuite tampon de tip
8286 prin care vor putea fi preluate, la o operatie de citire de la portul P0
pe Magistrala de Date si transferate in microprocesor.
• Portul este configurat ca un port de 16 biti (cuvant), la o citire
transferandu-se informatie pe toti cei 16 biti ai Magistralei de Date a
sistemului.
• Deoarece bitii de date superiori (D10¸D15) nu contin informatie de pozitie
provenind de la numarator, ei sunt conectati la masa, pentru ca marimea citita Figura prezinta o posibila structura pentru a implementa aceasta interfata.
de la port sa fie corect interpretabila in microprocesor, ca o marime pe 16 biti.

Circuitele 8286 au selectat sensul de transferare a datelor de la pinii A catre pinii B, prin conectarea pinului T la nivel 1 logic (la +5 V).
Activarea circuitelor tampon este facuta la aparitia semnalului de selectie P0, simultan cu semnalul de citire, RD.

Note:
- Semnalul Z de la encoder este utilizat pentru a initializa cu 0 continutul numaratorului ce contine informatia de pozitie.
Acest numarator are 10 biti (corespunzator numarului de 1024 de pulsuri generate de catre encoder pentru o rotatie completa) si este reversibil.
In functie de sensul de deplasare (dreapta/stanga), continutul sau se va incrementa, respectiv decrementa.

- Avand 10 biti, informatia de pozitie este absolut cunoscuta doar pentru o tura a axului encoderului. Va fi necesar ca pentru deplasari mai mari de o rotatie sa se contorizeze numarul de ture parcurse prin program
deci la nivel software. Din acest moment, in functie de tipul variabilei utilizate in program pentru a memora numarul de ture efectuate, plaja de valori absolute a pozitiei poate fi oricat de mare (de exemplu, pentru o
variabila de tip intreg reprezentata pe 16 biti, poate fi memorata o plaja de pozitii cuprinsa intre -32768 si 32767 ture).
Exemplu Decodificare
BANC 1
BANC 0 CSP0
Ad8-Ad15 pentru selectia
8 memoriei BANC 2 (CSRAM)
Microprocesorul adreseza un numar de 256 porturi de intrare, si CSP1
RD
256 porturi de iesire,
Operatia de I/O -> semnalul IO/M de valoare 0; MEMREADY CS CS CS CS
IO/M
-> 8 biti de pe MA contin adresa portului cu care se va opera. 256 x 4 biti 256 x 4 biti 256 x 8 biti 256 x 8 biti
Corelat cu semnalele de RD sau WR, se poate cunoaste sensul RD
transferului de informatie (input sau output). cuart RAM RAM PROM PROM
WR

Convertorul A/N considerat are un pin de comanda Ad0¸ Ad0¸ Ad0¸ Ad0¸ Magistrala
16 8 8 8 Ad7 Ad7 de adrese
START.CONV, aplicand un semnal 0 logic, se determina startul MICRO- Ad7 Ad7
unei conversii analog-numerice a marimii de la PROCESOR
intrarea convertorului.
Startul conversiei se da printr-o operatie de 4 4 8 8 Magistrala
READY D0 ¸ D3
OUTPUT, la portul P0. D4 ¸ D7 D0 ¸ D7 D0 ¸ D7 de date
RESET

Din considerente de simplitate, se presupune ca semnalul de intrare variaza


lent comparativ cu durata conversiei (pe timpul careia se considera constant), CLK 8 IOREADY 8
altfel fiind necesara utilizarea unui circuit de esantionare si retinere (SAMPLE INT INTA 8 8
AND HOLD).
PORT1 P1O
Decodificare RD P0I Latch
Ad0¸ Ad7 pentru PORT0 Tampon
La sfarsitul conversiei, convertorul va genera semnalul "1" WR
selectia PORT1
EOC (End of Conversion - sfarsit de conversie) convertoa-
In configuratia aleasa, semnalul EOC va determina setarea unui bistabil, relor
R D
generand un semnal de intrerupere catre procesor. Semnalul INTA, generat de (adresate
microprocesor, in cazul acceptarii unei intreruperi, determina resetarea Q P0O
ca porturi) START CN/A
bistabilului care a generat intreruperea si anularea cererii de intrerupere, pana T CONV
la semnalizarea unui nou sfarsit de conversie.
Bistabil WR CA/N
EOC
SF.CONV
Operatia de citire de la portul P0 (adresa 00H), ii asigura microprocesorului acces, prin deschiderea iesire
circuitului tampon, la valoarea convertita de la iesirea CA/N. intrare analogica
analogica

Pentru conversia numeric-analogica, se va selecta la o operatie de OUTPUT, la adresa 1H (portul P1), un circuit latch, care va memora informatia corespunzatoare de pe
magistrala de date. Iesirile acestui circuit vor fi aplicate la intrarile CN/A. Durata conversiei N/A este de ordinul sutelor de nanosecunde.
Se considera ca timpul de selectie al memoriei este inferior celui critic pentru a opera fara perioade de WAIT. Pentru operatiile cu porturile (START .CONV, citire valoare marime convertita A/N, output o noua valoare la CN/A), se considera deasemenea ca nu se pune
problema timpilor de WAIT.
Sintetizarea semnalului de READY, din doua semnale furnizate de catre logica de selectie a memoriei, respectiv a porturilor. cadru didactic S.Paturca

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