Sunteți pe pagina 1din 14

ASC

Curs 3
Cuprins

Sistem numeric
Porturi digitale de I/O

Recapitulare

Bit:

unitate elementara de informatie


poate avea valoarea 0 sau 1.

Aceste valori corespund fizic unor nivele de


tensiune, n funcie de circuitele electronice
cu care este construit calculatorul.

starea unui bistabil, sau a unei celule


elementare de memorie
Modul n care se reprezint datele numerice ntr-un calculator are
legtur direct cu structura UCP, avnd influen asupra dimensiunii
registrelor de uz general locale, al dimensiunii magistralei interne i al
complexitii unitii de execuie.

- Sistem numeric
- Porturi digitale de I/O

Sistem numeric
sistem/
proces

Sistem numeric
sistem/
proces

senzori

Ex. - Interfata CAD


Start
conversiei A/D

Pinul AnCom al convertorului se va conecta la masa


partii analogice de masura a schemei.
Pinul DigCom se conecteaza la masa partii digitale a
schemei. Pinul B&C trebuie utilizat pentru a genera
inceperea unei noi conversii (start conversie), la
aparitia unui puls pozitiv pe acest pin. Dupa cum se
remarca din figura, 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 convertorului
A/D. Bitii de date de iesire ai convertorului (BIT1 la
BIT10) vor 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 magistrala de date, si
transferate in microprocesor. Portul este configurat ca
un port de 16 biti, la o citire transferandu-se informatie
pe toti cei 16 biti ai magistralei de date a sistemului. De
remarcat utilizarea bitului D15 de date ca bit indicator
de stare a conversiei, prin conectarea acestui bit la
iesirea DATA_READY a convertorului A/D. Pe durata
unei conversii A/D, acest semnal are valoare logica 1,
iar dupa incheierea conversiei, valoarea logica 0.

Indicator de
stare a
conversiei A/D

Bitii de date de
iesire ai
convertorului A/D

Circuit
tampon

Magistrala
de date

pinul T la nivel 1 logic


transferare a datelor A ->B

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 (D10D14) nu sunt utilizati si ar putea, in principiu, sa fie folositi ca biti de intrare de uz general. De remarcat faptul ca 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).

Circuitele de interfa au rolul de a converti semnalele de intrare de diferite forme n semnale logice
adaptate unitii centrale i de a transforma semnalele logice ale unitii centrale n semnale de ieire
corespunztoare.

Utilizare porturi digitale de I/O


Citiri de la porturi de I/O
- Cuvinte de stare citire informatii despre functionarea interfetei (viteza de
lucru, citire stare parametri, etc.)
- Cuvinte de date citire date de la interfata (stare biti port digital, valori specific
conversiei A/D, etc.)
Scrieri catre porturi de I/O
- Cuvinte de comanda setare parametri de functionare pentru interfata
(stare/resetare stare parametri, comenzi ON/OFFpentru elemente de iesire
digitale, etc.)
- Cuvinte de date trimitere date spre interfata (valori conversie D/A,
stare/resetare biti port iesire digital, etc.)
Pentru oricare cuvant de date al portului exista un element exterior de tip inchis/deschis
(ON/OFF sau 1/0)
Input citeste stare elementului de tip contact are doua stari -> buton/tasta/contact
Output seteaza starea unui element de executie de tip binary -> releu, LED,
contactor, bec, etc.

Utilizare porturi digitale de I/E

Echipament 0
1
2
k
n-1
n

Echipament 0
1
2
k
n-1
n

Identificarea starii unui 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
(INPUT):
Operatia logica:

bit_n .bit_k+1

bit_k

bit_k-1 .bit_0

Data_INPUT

AND

Masc de testare,
pentru izolare bit_k:

0 ....0

0 .0

Masca_bit_k

Rezultat

0 ....0

bit_k

0 .0

Rez_bit_k

Rez_bit_k = Data_INPUT & Masca_bit_k;


If (Rez_bit_k)
{ // bitul k = 1, se completeaza cod corespunzator }
Else
{ // bitul k = 0, se completeaza cod corespunzator }

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 deiesire
(OUTPUT):
Operatia logica:
Masc pentru setare
bit_k:
Rezultat

bit_n .bit_k+1

bit_k

bit_k-1 .bit_0

Data_OUTPUTt-1

OR
0 ....0

0 .0

bit_n .bit_k+1

bit_k-1 .bit_0

Masca_setare_bit_k
Rez_OUTPUT_bit_kt

Setarea bitului k:
Masca_bit_k = 10000b; // valoarea 1 trebuie pozitionata pe pozitia k
Data_OUTPUTt-1 |= Masca_setare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_kt

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
(OUTPUT):
Operatia logica:
Masc pentru resetare
bit_k:
Rezultat

bit_n .bit_k+1

bit_k

bit_k-1 .bit_0

Data_OUTPUTt-1

AND
1 ....1

1 .1

Masca_resetare_bit_k

bit_n .bit_k+1

bit_k-1 .bit_0

Rez_OUTPUT_bit_kt

Resetare echipament k
Resetare bit k:
Masca_bit_k = 1111111110111111b; // valoarea 0 trebuie
pozitionata pe pozitia k
Data_OUTPUT &= Masca_resetare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k

Ex. : Schema interfata porturi de I/E de uz general


Circuit tampon

port intrare; citire in


registrul uP (bitii D0 D15)

Circuite de tip 8286 pentru portul de intrare (circuite tampon


izoland semnalele de intrare de magistrala de date a
sistemului). Sensul transferului de date prin aceste circuite
fiind de la intrarile A catre iesirile B, pinul de control al
sensului transferului de date, T, este conectat permanent la
nivel logic 1. Activarea circuitelor tampon se face prin pinul
OE,

port iesire; inscriere pe bitii


de comanda CMD0CMD15

Circuit Latch

Circuite de tip 8282 pentru portul de iesire, pentru memorarea unor


comenzi date de microprocesor spre exterior. Iesirile acestor circuite
sunt in permanenta activate (pinul OE este conectat la masa), iar
impulsul de memorare a datelor de pe magistrala de date este sintetizat
pe baza semnalului de selectie a portului P2 (adresa 310h), utilizat ca
port de
iesire impreuna cu semnalul WR .

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