Documente Academic
Documente Profesional
Documente Cultură
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.
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
• 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.
• 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.
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
Iesire k
Intrare n-1
Iesire n
Porturi de I/E digitale Registru Port de iesire
Iesire k
Iesire n-1
Iesire n
Intrare n-1
Intrare n
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.
- 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.
Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0
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.
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
Magistrala date
Scheme porturi intrare-iesire digitale
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
• 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
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.
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
• 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
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
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