UCP cu P
Interfa paralel
Interfa serial
Dispozitive periferice
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
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
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
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
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.
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 .
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.
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
PC7PC4 PC3PC0
D7D0 CS RD WR A1 A0 RESET
PB7PB0
3 porturi de 8 bii: A, B i C:
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
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.
A1
A0
WR
D7D0 8255A
CS
A1
A0
PC7
PC6
PC5
PC2
PC1
PC0
Port B PB7PB0
Mod Port A 0 1 1
2
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);
13 14 15
16
17
18
19 20
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.
13 15
16
17
18 19
20
tST
14
9 10
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
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.
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
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.
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
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
ETCD IL
Adaptor de comunicaie
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 transmisie
TxD
Comand transmisie
Tampon recepie
RxD
Comand modem
Comand recepie
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).
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
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
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.
D0
D1 D2
. . .
Dn-1
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
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.
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.
De la microprocesor TxEMPTY Lips date Recepie RxD SYNC SYNC DATA DATA
De la microprocesor
Bloc de date
DATA SYNC SYNC DATA DATE
Preluate de microprocesor
Preluate de microprocesor
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.
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
D1 0
D0 0
Validare Numr bii generare/control 00-5 paritate 01-6 10-7 0 - fr paritate 11-8 1 - cu paritate
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)
D1 DTR Foreaz
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
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
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
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)
Tensiunea negativ este format cu ajutorul unor condensatoare care se monteaz n exterior.
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
VCC
C3 2.2F
A1
A0
Magistrala de adrese
A0
I/OR
I/OW
I/OW
RD
WR
D7D0 CS A1 A0 8253
WR
D7D0 CS 8251
RESET La SINT
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.
Mult mai mult decât documente.
Descoperiți tot ce are Scribd de oferit, inclusiv cărți și cărți audio de la editori majori.
Anulați oricând.