Sunteți pe pagina 1din 38

Curs 7

Interfaarea cu dispozitive periferice


Sistemele cu P pentru conducerea proceselor interfee pentru cuplarea perifericelor: - dialogul cu operatorul: o butoane, comutatoare, lmpi de semnalizare, tastaturi, afiaje etc. - nregistrarea i stocarea datelor din proces: o imprimante, plotere, memorii de mas etc. - conducerea proceselor fizice: o intrri de la traductoare: convertoare A/N traductoare analogice; intrri numerice limitatoare de curs, senzori numerici; intrri n impulsuri traductoare cu ieire n impulsuri. o ieiri ctre elemente de execuie: convertoare N/A; ieiri numerice; ieiri n impulsuri. - comunicaia cu alte sisteme cu microprocesoare: o paralel; o serial.

UCP cu P

Interfa paralel

Interfa serial

Dispozitive periferice

Fig.7.1. Interfaarea sistemelor cu P

7.1. Interfaarea paralel Transferul informaiei ntre P i interfa: - n spaiul de I/E sau de memorie (I/E mapate in memorie); - vitez de transfer mare dat de caracteristicile P i ale porturilor interfeei paralele; - transferul se realizeaz pe magistrala de date a sistemului cu P; - sincronizarea transferului semnalele de control de citire/scriere. Transferul informaiei ntre interfa i periferic: pe o magistral paralel; cu vitez mare, dat de caracteristicile interfeei i ale dispozitivului periferic; la o distan relativ redus (de ordinul m) cu imunitate sczut la perturbaii. Fluxul de date: Unidirecional (sincronizat sau nesincronizat); Bidirecional (multiplexat n timp). Fig.7.2. Interfaarea paralel a sistemelor cu P

UCP cu P

Interfa paralel

Dispozitive periferice

7.1.1. Transferul paralel. Controlul fluxului de date ntre interfa i periferic Tipuri de transfer paralel: cu sau fr controlul fluxului de date. I/E nesincronizat (fr controlul fluxului de date) Sursa: poate furniza date pe magistrala de I/E n orice moment; menine datele valide pe magistrala de I/E pn cnd depune noi date. Destinaia: utilizeaz datele prezente pe magistrala de I/E, fr a le memora; are acces la date ct timp acestea sunt disponibile pe magistrala de I/E.

UCP cu P

MA

MD

MC

Interfa paralel

I E

Date de la periferic I Date pentru periferic

Intrare nesincronizat: perifericul depune date noi pe liniile I; P citete direct starea liniilor de intrare I.

Dispozitive periferice
Fig.7.3. I/E paralel nesincronizat

Ieire nesincronizat: P comand direct nivelul semnalului de pe liniile de ieire E; perifericul utilizeaz continuu datele prezente pe liniile de ieire E.

I/E sincronizat (cu controlul fluxului de date): - fr confirmare; - cu confirmare: simpl sau dubl. I/E sincronizat fr confirmare: Sursa: poate furniza date pe magistrala de I/E n orice moment; indic depunerea datelor printr-un impuls pe linia STB; opional - menine datele valide pe magistrala de I/E. Destinaia: memoreaz datele prezente pe magistrala de I/E la detectarea impulsului pe linia controlat de surs ( SRC ); are acces la datele memorate pn la sosirea altora noi.

UCP cu P

MA

MD

MC

Interfa paralel

I/E SRCI/E

Date de la / spre periferic I SRCI

SRCE

Intrare sincronizat fr confirmare: perifericul comand nscrierea datelor n portul de intrare. P ateapt apariia de date noi n portul de intrare. Ieire sincronizat fr confirmare: P nscrie date n portul de ieire al interfeei paralele; perifericul ateapt ca interfaa s nscrie date noi.

Dispozitive periferice

Fig.7.4. I/E fr confirmare

I/E sincronizat cu confirmare simpl (single-handshake): Sursa: poate nscrie datele la destinaie numai cnd aceasta este pregtit s le preia (DST=1); opional - menine datele valide pe magistrala de I/E. Destinaia: indic sursei prin DST dac poate primi date noi; reine datele prezente pe magistrala de I/E la detectarea impulsului pe linia SRC ;

UCP cu P

MA

MD

MC

Interfa paralel SRCE DSTE

I/E SRCI/E DSTI/E

Date de la / spre periferic DSTI SRCI I E

Intrare sincronizat cu confirmare simpl: perifericul ateapt permisiunea interfeei de a nscrie date noi; P ateapt apariia de date noi n portul de intrare.

Dispozitive periferice

Ieire sincronizat cu confirmare simpl: P ateapt permisiunea interfeei de a nscrie date noi; perifericul indic interfeei momentul n care poate primi date noi. Utilizat n transferuri paralele unidirecionale.

Fig.7.5. I/E cu confirmare simpl

I/E sincronizat cu confirmare dubl (double-handshake): Sursa: poate depune datele pe magistral numai cnd destinaia confirm c magistrala este liber (DST=0); nscrie datele la destinaie ( SRC =1). menine datele valide ct timp DST=0. Destinaia: indic sursei prin DST dac poate depune sau nu date pe magistral; reine datele prezente pe magistrala de I/E la dezactivarea semnalului pe linia SRC .

I/E SRCI/E DSTI/E

Date de la / spre periferic

Fig.7.6. I/E cu confirmare dubl

Intrare sincronizat cu confirmare dubl: perifericul ateapt permisiunea interfeei pentru a depune i nscrie date noi; P ateapt apariia de date noi n portul de intrare. Ieire sincronizat cu confirmare simpl: P ateapt permisiunea interfeei de a nscrie date noi; perifericul indic interfeei momentul n care aceasta poate depune i nscrie date noi. Utilizat n transferuri paralele bidirecionale.

7.1.2. Interfaa paralel PPI 8255/8255A. Caracteristici tehnice i structura intern


PPI - Programmable Peripheral Interface interfa paralel programabil 40 de pini, compatibil TTL, alimentat la +5V; 8255/8255A - NMOS, 82C55A CMOS; 3 porturi I/E paralele de 8 bii.

Grup A Port A Comand Grup A Tampon magistral de date Comand Grup B Grup B Port B

PA7PA0

Grup A Port C (sup) Grup B Port C (inf)

PC7PC4 PC3PC0

D7D0 CS RD WR A1 A0 RESET

Logic de comand citire/ scriere

PB7PB0

Fig.7.7. Structura intern a interfeei paralele 8525/8255A

3 porturi de 8 bii: A, B i C:

Grup A = Port A + Port Csup,

Grup B = Port B + Port Cinf

Tamponul magistralei de date asigur legtura ntre MD i magistrala intern, este validat la selectarea circuitului ( CS =0). Logica de citire/scriere stabilete sensul de transfer al datelor prin tamponul magistralei de date ( RD , WR ) i decodific liniile A1 i A0 pentru a selecta registrele interne. Logica de comand conine un registru de control (CWR - Control Word Register), prin care se poate programa modul de lucru al celor dou grupuri de porturi. Linia RESET terge coninutul registrelor interne (A, B, C porturi de intrare n modul 0).
CS
RD

WR

A1 0 0 1 1 0 0 1 1

A0 0 1 0 1 0 1 0 1

Tipul operaiei efectuate Citire port A Citire port B Citire port C Nici o operaie (D7D0 n HZ) Scriere n portul A Scriere n portul B Scriere n portul C Scriere n registrul de comand Nici o operaie (D7D0 n HZ)

0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 1 1

1 1 1 1 0 0 0 0

Fig.7.8. Tabelul de funcionare al circuitului 8255/8255A

Porturile A, B i C porturi independente de 8 bii. Portul A - un registru de ieire cu memorare; - un registru cu memorare pe intrare. Portul B - un registru tampon intrare/ieire cu memorare - un tampon de intrare; Portul C - un registru tampon de intrare fr memorare; - un registru tampon de ieire cu memorare. Porturile A i B linii utilizate numai pentru transferul de date pe octet Portul C - poate fi controlat pe octet, semioctet i pe bit. - liniile portului C au i funcii auxiliare de sincronizare a transferului prin A i B. 7.1.3. Modurile de lucru ale interfeei paralele PPI 8255/8255A Circuitul 8255A poate lucra n trei moduri, selectabile prin program. Modul 0 - intrare/ieire nesincronizat A, B, Csup i Cinf pot fi programate separat pentru transfer paralel nesincronizat. Modul 1 intrare sau ieire sincronizat A i B programate independent pentru transfer paralel sincronizat cu confirmare simpl. Modul 2 intrare/ieire sincronizat Portul A programat pentru transfer bidirecional sincronizat, cu confirmare dubl.

Magistrala de adrese Magistrala de comand I/OR I/OW Magistrala de date

A1

A0

RD RESET Port A PA7PA0

WR

D7D0 8255A

CS

A1

A0

PC7

PC6

PC5

Port C PC4 PC3

PC2

PC1

PC0

Port B PB7PB0

Mod Port A 0 1 1
2

Mod Port B I/E I E


I-E

I/E I/E
OBFA OBFA

I/E I/E
ACK A ACK A

I/E IBFA
I/E IBFA

I/E

I/E INTRA
INTRA INTRA

I/E

I/E IBFB
OBFB

I/E INTRB
INTRB

I/E I
E

0 1
1

STB A
I/E STB A

STBB
ACK B

Fig.7.9. Conectarea PPI 8255A n sistem i semnificaia pinilor n cele trei moduri de lucru

Modul 1 intrare: SRC = STB (strobe); DST = IBF (Input Buffer Full);

2 tST

9 10

STB IBF INTR RD Date de la periferic tPS Data stabil tPH Numai dac INTE=1

Fig.7.10. Evoluia semnalelor de control n modul 1; A, B - porturi de intrare 1. Perifericul depune data pe liniile de intrare. 2. Perifericul activeaz semnalul STB i nscrie data n portul de intrare. 3. Portul de intrare reine data i indic acest lucru prin activarea liniei IBF. 4. Informat despre ncrcarea datei, perifericul dezactiveaz linia STB . 5. Perifericul poate nceta s mai menin data valid pe magistral. 6. Atunci cnd STB IBF RD =1, 8255 activeaz linia de ntrerupere INTR, dac INTE=1. 7. P afl c data este disponibil i declaneaz o procedur de citire a ei (RD =0). 8. Achitarea cererii de ntrerupere (INTR=0). 9. Data este citit de microprocesor. 10. Linia IBF este dezactivat: perifericul poate depune o nou dat pe magistral.

Modul 1 ieire SRC = OBF (Output Buffer Full); DST = ACK (Acknowledge);

11 12 WR OBF INTR ACK Date pentru periferic

13 14 15

16

17

18

19 20

Numai dac INTE=1 tWB Data stabil

Fig.7.11. Evoluia semnalelor de control n modul 1; A, B - porturi de ieire 11. P nscrie data n portul de ieire. 12. Se dezactiveaz cererea de ntrerupere pe linia INTR (dac exist). 13. Se termin scrierea, odat cu dezactivarea semnalului WR . 14. Datele apar pe magistral dup tWB de la terminarea scrierii. 15. Se activeaz linia OBF , care anun perifericul c datele sunt valide pe magistral. 16. Perifericul confirm preluarea datei prin activarea semnalului ACK . 17. Aceasta determin portul s-i dezactiveze linia OBF . 18. Se dezactiveaz linia de confirmare a prelurii datei de ctre periferic. 19. Atunci cnd WR OBF ACK =1, se genereaz o ntrerupere pe linia INTR, dac INTE=1. 20. P este anunat astfel c portul de ieire este pregtit s accepte noi date.

Modul 2 - intrare-ieire sincronizat SRC = STB A, OBF A; DST = IBFA, ACK A. INTRA = STB AIBFA RD + WR OBF A ACK A, condiionat de INTE1 i INTE2. Controlul fluxului de date cade n sarcina perifericului.

11 12 WR OBFA INTRA ACKA STBA IBFA PA7PA0 RD

13 15

16

17

18 19

20

tST

tAD Date de la periferic tPS 1 2 3 tPH 4 5 6 14

tKD Date pt. periferic

14

9 10

Fig.7.12. Evoluia semnalelor de control n modul 2; A - port intrare-ieire

7.1.4. Programarea interfeei paralele PPI 8255/8255A D7 1 D6 MA1 Mod Port A 0 0 1 0 1 x D6 x modul 0 modul 1 modul 2 D5 x Nu conteaz PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 0 0 0 0 1 1 1 1 Port A 1- I 0-E D4 x D5 MA0 D4 PA Grup A Control Word Tip PC7PC4 1- I 0-E D3 B2 Mod Port B 0 - mod 0 1 - mod 1 D2 B1 Selecie bit port C 0 0 1 1 0 0 1 1 Port B 1- I 0-E D1 B0 0 1 0 1 0 1 0 1 D3 PCS D2 MB D1 PB Grup B Tip PC3PC0 1- I 0-E D0 D0 PCI

D7 0

S/R
Operaia

Single Bit Set/Reset

1 - Set 0 - Reset

Fig.7.13. Cuvinte de comand Comenzi pe bit (portul C n modul 0) Activarea/dezactivarea ntreruperilor (modurile 1 i 2).

Citirea portului C informaie de stare SW (Status Word) - interogare Mod Port A 0 I/E 1- I 1-E 2 I-E D7 PC7 PC7 OBF A D6 PC6 PC6 INTEA INTE1 D5 PC5 IBFA PC5 IBFA D4 PC4 INTEA PC4 INTE2 D3 PC3 INTRA INTRA INTRA D2 PC2 INTEB INTEB D1 PC1 IBFB OBF B D0 PC0 INTRB INTRB Mod Port B 0 I/E 1-I 1-E

OBF A

Fig.7.14. Cuvntul de stare (citit din portul C) 7.1.5. Utilizarea interfeei paralele PPI 8255/8255A n aplicaii Exemple de aplicaii folosind 8255/8255A:
- interfaarea cu tastaturi i afiaje cu electronic proprie; - interfaarea cu convertoare D/A i A/D.

Modurile de lucru i cuvintele de comand:


- caracteristicile de interfaare ale perifericelor: o modul de transfer al datelor; o secvenierea temporal a operaiilor.

INTRA RD PC3 Tastatur cu decodificare R5R0 SHIFT CTRL STB ACK D5D0 BACKSPACE CLEAR DATA READY ACK BLANKING CANCEL WORD Afiaj cu auto-explorare CS A1 A0 RD WR Convertor D/A (8 bii) Mod 0 Ieire D7D0 PA7PA0 PC7 PC6 Bit set/reset PC5 PC4 Mod 0 PC3PC0 Intrare PB7PB0 8255A SAMPLE EN STB MSB DATA LSB AI DATA AO STB DATA OUTPUT EN

WR

PA5PA0 Mod 1 PA6 Intrare PA7 (STBA) PC4 PC5 D7D0 (IBFA) 8255A PB5PB0 Mod 1 PB6 CS Ieire PB7 (OBFB) PC1 A1 (ACKB) PC2 A0 PC6 PC7 PC0 INTRB

Convertor A/D (12 bii)

Fig.7.15. Interfaarea cu tastatur i afiaj cu logic de control proprie

Fig.7.16. Interfaarea cu convertoare D/A i A/D

Interfaa cu tastatura: Liniile R5R0 - codul tastei acionate dintr-o matrice cu 64 de taste (26) SHIFT i CTRL starea a dou taste funcionale: Codul de 6 bii se transmite n exterior STB indic apsarea unei noi taste, cu codul dat de R5R0. ACK permite tastaturii s furnizeze un nou cod. Portul A - intrare n modul 1, cu ntrerupere ctre P. Interfaa cu afiajul cu logic de explorare nglobat: D5D0 codul caracterului de afiat; BACKSPACE, CLEAR, BLANKING, CANCEL WORD comenzi specifice afiorului; DATA READY indic afiajului disponibilitatea unui nou caracter; ACK - indic interfeei preluarea caracterului. Portul B ieire n modul 1, cu ntrerupere ctre P. D7 1 CW D6 0 D5 1 D4 1 Port A Intrare D3 0 PC6 , PC7 Ieire D2 1 Port B Modul 1 D1 0 Port B Ieire D0

Port A - Modul 1

PC3PC0 indiferent

Liniile PC5PC0 alocate automat porturilor A i B n modul 1 - nu vor fi influenate de biii D3 i D0 din cuvntul de comand; numai PC6 i PC7, vor fi programai ca ieire, prin D3=0. Pentru validarea liniilor INTRA i INTRB, trebuie setate bistabilele INTEA i INTEB, cu ajutorul unor cuvinte set-reset pentru biii PC4 i respectiv PC2.

; PROGRAMARE 8255A PENTRU INTERFAAREA CU TASTATURA I CU AFISAJ ; CU ELECTRONIC NGLOBAT PPI CW SINTEA SINTEB MVI OUT MVI OUT MVI OUT EI ;......... EQU EQU EQU EQU 50h 10110100b 00001001b 00000101b ; ; ; ; ; ; ; ; Adresa de baz 8255A. Cuvntul de comand pentru configurarea 8255A. Comand setare bit PC4=INTEA. Comand setare bit PC2=INTEB.

; Validare ntreruperi de la portul B. ; Valideaz ntreruperile la nivelul microprocesorului. ..................

A, CW PPI+3 A, SINTEA PPI+3 A, SINTEB PPI+3

ncarc n acumulator cuvntul de comand. nscrie CW n registrul de comand (adresa 53h) ncarc n acumulator comanda de setare bistabil INTEA. Validare generare ntreruperi pentru portul A.

; COMAND INTRODUCEREA UNUI SPATIU INTRE CARACTERE (BLANC) MVI A, 00001101b ; Seteaz linia PC6. OUT PPI+3 ; Este tot un cuvnt de comand, deci se nscrie tot la 53h. MVI A, 00001100b ; Reseteaz linia PC6. OUT PPI+3 ;........................... ; COMAND STERGEREA CUVNTULUI AFIAT MVI A, 0Fh ; Seteaz linia PC7. OUT PPI+3 MVI A, 0Eh ; Reseteaz linia PC7. OUT PPI+3 ;...........................

Interfaarea cu convertorul A/D Convertorul A/D - 12 bii: PC3PC0, PB7PB0. SAMPLE Enable lansarea conversiei. STB citirea rezultatului la terminarea conversiei. Portul B i CINF modul 0.

Interfaa cu convertorul D/A Rezoluie de 8 bii PA7PA0 STB DATA nscrie data numeric; OUTPUT ENABLE valideaz ieirea analogic.

D7 1 CW

D6 0

D5 0

D4 0 Port A Ieire

D3 0 PC7PC4 Ieire

D2 0 Port B Modul 0

D1 1 Port B Intrare

D0 1 PC3PC0 Intrare

Port A - Modul 0

7.2. Interfaarea serial Transferul informaiei ntre P i interfa:


- la fel ca la interfaa paralel.

UCP cu P

Transferul informaiei ntre interfa i periferic: pe linii seriale (bit cu bit); cu vitez mai redus, dat de caracteristicile interfeei i ale dispozitivului periferic; la o distan invers proporional cu viteza (de ordinul zeci - sute de m) cu imunitate mai ridicat la perturbaii. Transferul serial sincronizat: - la nivel de caracter transfer asincron; - la nivel de bit transfer sincron. Fluxul de date: Simplex unidirecional; Half-duplex bidirecional, multiplexat n timp; Duplex bidirecional, simultan. Tipuri de legturi seriale:
- punct la punct; - multipunct.

Interfa serial

Adaptor de comunicaie

Dispozitiv periferic sau sistem cu microprocesor

Fig.7.17. Interfaarea serial a sistemelor cu P

ETPD Unitate central cu microprocesor IP Interfa serial IS

ETCD IL

ETCD IS Adaptor de comunicaie Interfa serial

ETPD IP Unitate central cu microprocesor

Adaptor de comunicaie

linie de date circuit de date legtur de date simplex semiduplex duplex

Fig. 7.18. Modelul general al comunicaiei seriale punct la punct ETPD - echipamente terminale de prelucrare a datelor (DTE - Data Terminal Equipment); ETCD - echipamente terminale pentru comunicaii de date (DCE - Data Communication Equipment). Linia de comunicaie - mediul fizic prin care se propag datele seriale. - linii dedicate - linie telefonic nchiriat, linie telex, fibr optic, transmisie radio; - linii comutate linii telefonice din reeaua public. Adaptor de comunicaie adaptarea la caracteristicile liniei de date. Linii cu cuplaj direct (adaptor fr modem): EIA RS-232, RS-422A, RS-423A, RS-485.

7.2.1. Interfaa serial USART 8251A. Caracteristici tehnice i structura intern USART (Universal Synchronous / Asynchronous Receiver / Transmitter) - un canal serial full duplex; - viteza maxim 19200 Baud (asincron), 64000 Baud (sincron).

D7D0

Tampon magistral de date

Tampon transmisie

TxD

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

Logic de comand i citire/ scriere

Comand transmisie

TxRDY TxE TxC

Tampon recepie

RxD

Comand modem

Comand recepie

RxRDY RxC SYNDET/BRKDET

Fig.7.19. Schema bloc a circuitului 8251A

Tamponul magistralei de date asigur legtura ntre MD i magistrala intern, este validat la selectarea circuitului ( CS =0). Logica de comand i citire/scriere:
- stabilete sensul de transfer al datelor prin tamponul magistralei de date ( RD , WR ) i decodific linia C/D (Control / Data) pentru a selecta registrele interne. sincronizeaz funcionarea transmitorului i receptorului, cu ajutorul semnalului CLK, avnd frecvena cuprins ntre 750 Khz i 3 MHz (de cel puin 30 de ori > viteza serial).

Linia C/D - se conecteaz la linia A0 a magistralei de adrese.


CS
RD
WR

C/D 0 0 1 1

Tipul operaiei efectuate Citire octet din tamponul de recepie Scriere octet n tamponul de transmisie Citire cuvnt de stare nscriere cuvnt de mod/comand Nici o operaie (D7D0 n HZ)

0 0 0 0 0 1

0 1 0 1 1

1 0 1 0 1

Fig.7.20. Dialogul dintre P i 8251A RESET aduce circuitul n starea de inactivitate (Idle), pregtindu-l pentru programare. Canalul serial are dou blocuri complet independente: Transmitorul primete date de la P i le transmite pe TxD, sincron cu TxC. Receptorul primete date pe RxD, sincron cu RxC, care sunt preluate de P.

Transmitorul format din: - un registru paralel paralel: ncrcat de P cu date de transmis. - un registru paralel serie: preia data din registrul paralel-paralel i o transmite pe TxD. - o logic de comand a transmisiei seriale pe linia TxD, sincronizat de TxC.

De la magistrala intern

Registru paralelparalel

Registru paralelserie

TxD

De la logica de comand i citire/scriere

TxRDY
Comand transmisie

TxE TxC

Fig.7.21. Structura intern a transmitorului TxC sincronizeaz transmisia serial la nivel de bit: un nou bit apare pe TxD pe: - fiecare front cztor al TxC: o viteza de transmisie este egal cu frecvena TxC; - fiecare al 16-lea (al 64-lea) front cztor pe TxC: o viteza de transmisie este de 16 sau 64 ori mai mic dect frecvena TxC. TxRDY (Transmitter Ready) P poate nsrie un nou octet n registrul paralel-paralel. TxE (Transmitter Empty) registrul paralel-serie este gol. TxRDY, TxE ntreruperi la transmisie.

Receptorul format din: - un registru serie paralel: preia biii de pe linia RxD, pe care i asambleaz n caractere. - un registru paralel paralel: preia caracterele din registrul serie-paralel, la dispoziia P - o logic de comand a recepiei seriale pe linia RxD, sincronizat de RxC. RxC sincronizeaz recepia serial la nivel de bit: starea liniei RxD este citit pe: - fiecare front cresctor al RxC: o viteza de recepie este egal cu frecvena RTxC; - fiecare al 16-lea (al 64-lea) front cresctor pe RxC: o viteza de transmisie este de 16 sau 64 ori mai mic dect frecvena RxC.

La magistrala intern

Registru paralelparalel

Registru paralelserie

RxD

De la logica de comand i citire/scriere

Comand recepie

RxRDY TxC

Fig.7.22. Structura intern a receptorului RxRDY un caracter recepionat este disponibil pentru a fi citit de P (ntrerupere recepie) SYNDET/BRKDET (SYNc DETect/BReaK DETect) rol specific modului de lucru.

Logica de comand modem controlul hardware al fluxului de date:


DSR (Data Set Ready) intrare - modem pregtit pentru transfer;
DTR (Data Terminal Ready) ieire - terminal de date pregtit pentru transfer;

RTS (Request to Send) ieire cere permisiunea de a transmite;

CTS (Clear to Send) intrare primete confirmarea la cererea de transmisie.

7.2.2. Funcionarea USART 8251A n modul asincron

Transmisie TxD Bit de START

D0

D1 D2

. . .

Dn-1

Bii de date (n=58)

Bit de paritate

Bii de STOP

Bit de START

Bii de date

De la microprocesor Inserai automat de ctre 8251A Caracter Recepie RxD Bit de START Testat de 8251A D0 D1 D2 . . . Dn-1

Bii de date (n=58) Preluai de ctre microprocesor

Bit de paritate

Bii de STOP

Bit de START

Bii de date

Verificai de 8251A
Fig.7.23. Modul de lucru asincron

Modul de lucru asincron: sincronizarea receptorului cu transmitorul: o la nivel de caracter: grup de 58 bii succesivi. Linia TxD: - nu este nici un caracter de transmis nivel HIGH; - are un caracter de transmis: o transmite un bit de START nivel LOW o transmite biii caracterului, ncepnd cu lsb; o (opional) transmite bitul de paritate; o transmite 1, 11/2 sau 2 bii de STOP - nivel HIGH. Validarea transmisiei: - software TxEN=1 n registrul de comand; - hardware - CTS =0 confirmare la cererea de transmisie furnizat prin TxD abandonarea transmisiei n curs de desfurare: SBRK=1 n registrul de comand (Send BReaK character) foreaz TxD continuu pe nivel LOW. Linia RxD: - nu este nici un caracter prezent pe linie nivel HIGH; - apariia unui caracter: o sincronizeaz receptorul pe frontul cztor detectat pe linia RxD; o verific bitul de start la jumtatea perioadei corespunztoare vitezei de recepie; o citete periodic starea liniei RxD pentru a reine biii de date; o (opional) citete bitul de paritate; o verific prezena bitului (biilor) de STOP pe nivel HIGH. Validarea recepiei: software RxEN=1 n registrul de comand.

RTS =0.

Tipuri de erori detectate i semnalizate n cuvntul de stare (SW Status Word):


- eroare de paritate bitul de paritate primit nu coincide cu bitul de paritate recalculat; o se seteaz bistabilul PE (Parity Error) din registrul de stare. - eroare de ncadrare bitul (biii) de STOP nu au fost gsii pe nivel HIGH; o seteaz bistabilul FE (Framing Error) din registrul de stare. - eroare de suprapunere P nu a citit la timp caracterul primit anterior, care s-a pierdut, fiind supranscris de urmtorul caracter sosit pe linie. o seteaz bistabilul OE (Overrun Error) din registrul de stare.

Erorile detectate nu opresc funcionarea interfeei seriale. Bistabilele de eroare pot fi resetate prin program: ER=1 (Error Reset) n registrul de comand. La detectarea unui caracter BREAK (nivel LOW continuu pe linie, pe o durat mai mare dect a unui caracter):
linia BRKDET (ieire) trece pe nivel HIGH; este setat bistabilul cu acelai nume din registrul de stare.

7.2.3. Funcionarea USART 8251A n modul sincron Modul de lucru sincron: sincronizarea receptorului cu transmitorul: o la nivel de bloc de bii: de ordinul sutelor de bii de date consecutivi.

Transmisie TxD SYNC SYNC DATA DATA

Bloc de date DATA SYNC SYNC DATA DATE

De la microprocesor TxEMPTY Lips date Recepie RxD SYNC SYNC DATA DATA

Inserate automat de 8251A nscriere date

De la microprocesor

Bloc de date
DATA SYNC SYNC DATA DATE

Verificate de 8251 SYNDET Intrare n sincronism

Preluate de microprocesor

Pstrare receptor n sincronism

Preluate de microprocesor

Citire registru de stare


Fig.7.24. Modul de lucru sincron

Citire registru de stare

Transmisia sincron: - nu sunt date de transmis nivel HIGH; - exist date de transmis: o transmite unul sau du caractere de sincronizare (SYNC); o transmite biii de date ai mesajului, fr bii de control intercalai; o P trebuie s alimenteze continuu transmitorul cu date, cnd TxRDY=1; o dac TxE=1, se insereaz automat caractere SYNC pentru a pstra sincronismul; Validarea transmisiei: - software TxEN=1 n registrul de comand; - hardware - CTS =0 confirmare la cererea de transmisie furnizat prin

RTS =0.

Recepia sincron: - cu sincronizare intern: o iniierea recepiei prin program: EH=1 (Enter Hunt mode) n registrul de comand: cutare caractere de sincronizare. o cnd ultimii 8 sau 16 bii coincid cu caracterul (caracterele) SYNC: se trece la recepia biilor de date; se activeaz linia de ieire SYNDET (SYNC Detected); se seteaz bitul cu acelasi nume din registrul de stare; bitul SYNDET este ters automat odat cu citirea registrului de stare. - cu sincronizare extern: o iniierea recepiei prin hardware: logic extern de sincronizare: foreaz linia SYNDET=1 (intrare) i determin: ieirea din modul HUNT; nceperea recepiei biilor de date. Validarea recepiei: software RxEN=1 n registrul de comand. Erori semnalizate: numai erori de paritate i de suprapunere.

7.2.4. Programarea USART 8251A Resetare iniializare comenzi D7 S2 D6 S1 D5 EP D4 PEN D3 L2 D2 L1 D1 B2 D0 B1

Numr bii de STOP Tip paritate Validare Numr bii de date generare/control 0 0 - inactiv 0 0 - 5 bii paritate 0 1 - 1 bit 0 1 - 6 bii 0 - impar 1 1 0 - 1 /2 bii 1 0 - 7 bii 1 - par 0 - fr paritate 1 1 - 2 bii 1 1 - 8 bii 1 - cu paritate Fig.7.25. Iniializare n modul asincron D7 SCS Numr caractere SYNC D6 ESD Tip sincronizare D5 EP Tip paritate D4 PEN D3 L2 D2 L1 de date bii bii bii bii

Factor de vitez (mod asincron) 0 1 - 1/1 1 0 1/16 1 1 1/64

D1 0

D0 0

0 - impar 0 - dou 0-intern 1 - par 1 - unul 1-extern

Validare Numr bii generare/control 00-5 paritate 01-6 10-7 0 - fr paritate 11-8 1 - cu paritate

Mod sincron (Factor de vitez 1/1)

Fig.7.26. Iniializare n modul sincron Factorul de vitez divizor de frecven pentru semnalele de tact TxC i RxC. 1 obligatoriu TxC al transmitorului datelor trebuie s fie comun cu RxC al receptorului. 16, 64 TxC al transmiatorului datelor poate fi independent faa de RxC al receptorului.

Funcionarea circuitului poate fi controlat n orice moment, de ctre microprocesor, prin cuvinte de comand (CW) nscrise n registrul de mod/comand. D7 EH D6 IR D5 RTS Foreaz
RTS =0 (pin)

D4 ER Resetare bistabile de eroare

D3 SBRK Foreaz TxD=0 (pin)

D2 RxEN Validare recepie

D1 DTR Foreaz

D0 TxEN Validare transmisie

Intrare n Resetare mod intern HUNT (=RESET)

DTR =0 (pin)

Fig.7.27. Cuvntul de comand D7 DSR Indic dac D6 SYNDET/ BRKDET D5 FE D4 OE D3 PE D2 TxEMPTY D1 RxRDY D0 TxRDY

DSR =0
(pin)

Eroare de Eroare de Eroare de ncadrare suprapunere paritate Reflect ntocmai starea pinilor cu acelai nume Fig.7.28. Cuvntul de stare

Iniializarea USART 8251A: scrierea unei succesiuni de octei, cu C/D =1:


- secvena de sincronizare (numai dup o resetare hardware): o nscrierea a 3 octei de comand cu valoarea 00h; - nscrierea unui cuvnt de comand de resetare intern (IR=1); - nscrierea unui cuvnt de mod; - nscrierea a 1 sau 2 caractere de sincronizare n modul sincron; - nscrierea unui cuvnt de comand.

ntre dou scrieri succesive n registrul de control (C/D =1) trebuie asigurat un interval de timp de cel puin 16 perioade ale semnalului de tact CLK (tRV Recovery Time). Dup iniializare - 8251A este apt s transfere date. La nscrierea datelor n tamponul de transmisie - nu este necesar s se in cont de tRV. 7.2.5. Utilizarea interfeei seriale USART 8251A n aplicaii Canal de comunicaie serial asincron RS232 RS-232C - standard comunicaie serial asincron

U[V] +12V nivel L +3V 0 -3V nivel H -12V


Fig.7.29. RS-232 caracteristici electrice

Caracteristici electrice: Nivelul logic 0 (L - Low) - 312V Nivelul logic 1 (H - High) 12 -3V Zona logic interzis: -3 3V

Caracteristicile mecanice: tipul conectorilor: DB25 sau DB9 25 de semnale i linii de dialog pentru controlul transferului de date ntre interfaa serial i modem. Conectori de tip T (tat) pentru DTE Conectori de tip M (mam) pentru DCE

Nr. pin: /25 2 (3)

Nume TxD Transmisie date Cerere de transmisie Pregtit pentru transmisie Ceas de transmisie Ceas de recepie Recepie date Terminal de date pregtit Modem pregtit Indicator de apel Detecie purttoare Mas semnal Mas protecie

4 (7) RTS 5 (8) CTS 15 (-) 17 (-) 3 (2) TxC RxC RxD

Circuitele de interfa serial semnale compatibile TTL Nu sunt direct compatibile cu caracteristicile electrice definite de standardul RS-232. Pentru adaptare:
circuite emitor-receptor de linie (MAX232)

20 (4) DTR 6 (6) DSR 22 (9) 8 (1) 7 (5) 1 (-) RI CD SG PG

Tensiunea negativ este format cu ajutorul unor condensatoare care se monteaz n exterior.

Fig.7.30. RS-232 caracteristici mecanice

TTL TxD RxD RTS CTS C1 2.2F 11 12 10 9 1 T1IN R1OUT T2IN R2OUT C1+ MAX232 3 4 C2 2.2F C1C2+ V5 C26 C4 2.2F V+ 2 T1OUT R1IN T2OUT R2IN 14 13 7 8

RS232 TxD RxD RTS CTS

VCC

C3 2.2F

Fig.7.31. Adaptorul de comunicaie serial asincron MAX232

A1

A0

Magistrala de adrese

A0

I/OR

I/OW

Magistrala de comand I/OR Magistrala de date

I/OW

RD

WR

D7D0 CS A1 A0 8253

RD CLK TxCLK RxCLK TxD

WR

D7D0 CS 8251

C/D RESET TxRDY RxRDY CTS

RESET La SINT

GATE2 CLK2 OUT2

RxD

RTS

Vcc

T1IN

R1OUT

T2IN

R2OUT

MAX232 T1OUT
fCLK (de la 8085) TxD RxD RTS Linii RS232
Fig.7.32. Canal de comunicaie serial asincron RS232 ntr-un sistem cu P 8085

R1IN

T2OUT

R2IN

CTS

; Secvena de iniializare a circuitului USART 8251A dup un RESET hardware USART RESSOFT MW CW usart_init: sinc: EQU EQU EQU EQU MVI XRA OUT NOP DCR JNZ MVI OUT NOP NOP NOP MVI OUT NOP NOP NOP 80h 01000000b 01001110b 00100101b B,03h A USART+1 B sinc A,RESSOFT USART+1 ; Adresa de baz 8251A ; Comand resetare intern ; Cuvntul de mod: asincron, 8, N, 1, 1/16 ; Cuvntul de comand: TxEN=1, RTS=1, RxEN=1. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Se vor nscrie 3 octei, cu valoarea 00h (A=00h), (10tCY) n registrul de mod/comand (adresa 81h), 4 tCY 5 sau 4tCY 10tCY (cu asigurarea tRV > 16tCY). ncarc n acumulator comanda de resetare. Resetare intern 8251A 4 tCY 4 tCY 4 tCY ncarc n acumulator cuvntul de mod. nscrie cuvntul de mod (pe adresa 81h). 4 tCY 4 tCY 4 tCY

A,MW USART+1

MVI A,CW ; TxEN=1, RTS=1, RxEN=1. OUT USART+1 ; Valideaz transmisia i recepia serial a datelor. ; .......................................................

; Rutina de transmisie a unui caracter pe linia serial ; Intrare: ; Ieire: ; Distruge: usart_out: A caracterul de transmis caracterul a fost inscris in bufferul de transmisie B, PSW MOV IN ANI JZ MOV OUT RET B,A A, USART+1 00000000b send A,B USART ; ; ; ; ; ; ; Salveaz caracterul in B Citete registrul de stare Poate nscrie un nou caracter? Dac TxRDY=0, mai ateapt TxRDY=1, readuce n A caracterul de transmis nscrie caracterul n bufferul de transmisie. Revine n programul apelant.

; Rutina de recepie a unui caracter pe linia serial ; Intrare: ; Ieire: ; Distruge: usart_in: nimic A caracterul primit PSW IN ANI JZ IN RET A, USART+1 00000000b send USART ; ; ; ; ; Citete registrul de stare Exist un caracter disponibil? RxRDY=0, mai ateapt Citete caracterul recepionat Revine n programul apelant.