Transcript
Page 1: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

42

4 INTERFEŢE SERIALE

4.1. Introducere Interfaţa serială RS-232 este unul din cele mai răspândite echipamente periferice. După cum îi spune şi numele, transmisia şi recepţia se face bit cu bit, necesitând doar un singur fir pentru transmisie. RS-232 este un standard, în sensul că toate modelele de calculatoare şi majoritatea instrumentelor de măsură o înglobează. A fost standardizată de către EIA (Electronics Industries Association) în anul 1962. Aşa cum a fost el conceput, standardul permite comunicaţii doar pe distanţe scurte (până în 20 m) şi viteze de transfer de maxim 19600 bps (bps înseamnă biţi pe secundă). Ulterior s-au dezvoltat şi alte standarde (RS-422, RS-485, RS-449) ce permit fie distanţe mai mari între emiţător şi receptor, fie viteze mai mari fie mai multe dispozitive conectate pe acelaşi cablu. De exemplu RS-422 permite până la 10Mbs şi distanţe de până la 1.6 km. Datele seriale pot fi transmise sincron (clocked) sau asincron (non-clocked). Dacă interfeţele menţionate mai sus sunt asincrone, există şi interfeţe sincrone (I2C, SPI), acestea fiind destinate în general distanţelor scurte şi iterfaţării unor periferice cu microprocesoarele.

4.2. Interfaţa serială standard RS-232

4.2.1. Caracteristici electrice Caracteristicile electrice definesc tensiunile minime şi maxime ale stărilor logice, semnalele şi semnificaţiile lor şi conectorii. a) tensiunile de linie

+12V

-12V

inactiv

Bit de start

1 0 0 0 0 0 1

Biţi de stop 7 biţi de date (caracterul A)

Bit de paritate

0V

+25V

-25V

-3V +3V

1

0

Fig. 4.1. Nivelele de tensiune ale interfeţei RS232

Page 2: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

43

Nivel 1 logic este corespunzător tensiunilor între -3V şi -25V, dar tipică, este valoarea de -12V. Nivelul 0 logic corespunde tensiunilor situate între 3V şi 25V, tipică fiind valoarea de 12V. Orice valoare între -3V şi 3V înseamnă stare nedeterminată. Când nu există impulsuri transmise linia stă în 1 logic (-12V). O tensiune de 0V înseamnă că linia este întreruptă sau există un scurtcircuit. Figura următoare ilustrează un exemplu de transmisie pe interfaţa serială RS-232. Tabelul următor sintetizează caracteristicile electrice ale interfeţei. Tabelul 4.1.

SPECIFICAŢII RS-232

Mod de lucru single - ended

Numărul total de emiţătoare şi receptoare pe o linie 1 emiţător 1 receptor

Lungimea maximă a cablului 25m Rata maximă de transmisie 20kb/s Tensiunea maximă / minimă +/-25V Nivelul de semnal de ieşire (Încărcare Min.) încărcat +/-5V to +/-15V

Nivelul de semnal de ieşire (Fără încărcare Max) neîncărcat +/-25V

Impedanţa de ieşire a emiţătorului (Ohms) 3k to 7k Curentul maxim de ieşire în starea de înaltă impedanţă alimentat N/A

Curentul maxim de ieşire în starea de înaltă impedanţă nealimentat +/-6mA @ +/-2v

Slew Rate (Max.) 30V/uS Gama tensiunilor de intrare +/-15V Sensitibilitatea de intrare a receptorului +/-3V Rezistenţa de intrare a receptorului (Ohms) 3k to 7k

b) conectori Interfaţa RS-232 are două tipuri de conectori disponibili: DB25S şi DB9S. Primul asigură funcţionalitatea totală a interfeţei în timp ce al doilea asigură un spaţiu minimal pentru instrumentaţia tot mai redusă în dimensiuni. Figura următoare prezintă cele două conectoare şi alocarea pinilor. Semnalele RS-232 sunt împărţite în 3 categorii: - date (TxD, RxD). Sunt două canale de date care permit comunicaţii full-duplex.

Page 3: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

44

- controlul comunicaţiei (RTS, CTS). Aceste semnale furnizează suportul prin care se controlează traficul datelor. - timing (TC, RC). Pentru comunicaţii sincrone este necesară transmiterea unui semnal de tact pentru sincronizarea receptorului cu emiţătorul. Setul complet de semnale ale interfeţei RS-232D sunt adunate în tabelul următor împreună cu numărul pinului corespunzător conectorului Db25. DTE înseamnă „Data Terminal Equipment” iar DCE înseamnă „Data Circuit termination Equipment” şi definesc care dispozitiv şi pe care fir transmite. DTE poate fi de exemplu un calculator PC iar DCE poate fi un instrument de măsură interfaţabil. Tabelul 4.2.

Pin DB25 Semnalul Direcţia Funcţia 1 FG - Frame ground - înveliş de

protecţie, ecran 2 TD sau TxD spre DCE Transmisie date 3 Rd sau RxD spre DTE Recepţie date 4 RTS spre DCE Request to send – cerere de

transmisie 5 CTS spre DTE Clear to send – liber pentru

transmisie 6 DSR spre DTE Data set ready – Dset de date

Fig. 4.2. Conectorii specifici interfeţei RS232

Page 4: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

45

pregătit. Similar cu CTS doar că este activat DCE.

7 SG - Signal ground – Masa semnal 8 DCD spre DTE Detcţie semnal recepţionat 9 - - 10 - - 11 - - 12 SDCD spre DTE Detecţie semnal recepţionat

secundară/selecţie rată (generat de DCE)

13 SCTS spre DTE Secondary Clear to send – Liber pentru transmisie secundar

14 STD spre DTE Secondary transmitted data – Transmisie date secundară

15 TC spre DTE Transmit signal element timing – Semnal de sincronizare utilizat de DTE pentru transmisie.

16 SRD spre DTE Secondary received data – Recepţie date secundar

17 RC spre DTE Receiver signal element timing – Semnal de sincronizare pentru recepţia datelor, generat de DCE

18 DCR spre DCE Local loop-back (tact de recepţie divizat)

19 SRTS spre DCE Secondary request o send – cerere de transmisie secudar

20 DTR spre DCE Data terminal ready – terminal de date pregătit

21 SQ spre DCE Remote loop back / signal quality detector – detector a calităţii semnalului

22 RI spre DTE Ring indicator – indică o cerere de comunicaţie. Folosită în comunicaţia cu modemul.

23 DSRS spre DCE / DTE

Data signal rate select – selecţie rată transmisie date

24 TC spre DCE Transmit signal element timing – Semnal de sincronizare

Page 5: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

46

generat de DTE 25 TM spre DTE Test mode – Mod de test

Cel mai folosit subset de semnale este cel din tabelul următor: Tabelul 4.3.

Pinul Semnalul Funcţia 1 FG Înveliş de protecţie, ecran, şasiu 2 TxD Transmisie date de la DTE la DCE 3 RxD Recepţie date de către DTE de la

DCE 4 RTS DTE semnalizează că doreşte să

trimitădate către DCE 5 CTS DCE semnalizează că este gata să

primească date de la DTE 6 DSR DCE semnalizează că s-a stabilit o

legătură 7 SG Masa 8 DTR DTE semnalizează că DTE este

operaţional c) formatul datelor În majoritatea aplicaţiilor datele sunt transmise asincron sub formă de pachete, fiecare reprezentând un singur caracter ASCII şi conţinând suficientă informaţie pentru a fi decodificată fără ajutorul unui semnal de tact. De exemplu caracterul „A” este reprezentat în cod ASCII ca 1000001. Pentru a o trimite prin interfaţa serială către alt sistem trebuie să adăugăm câţiva biţi pentru a semnaliza începutul şi sfârşitul pachetului. Aceştia sunt bitul de start şi bitul sau biţii de stop. În plus se poate adăuga încă un bit pentru paritate în scopul detecţiei erorilor. Una din configuraţiile cele mai folosite foloseşte 1 bit de start, un bit de paritate şi 2 biţi de stop. Deoarece linia nefolosită se află în 1 logic (-12V), bitul de start este întotdeauna 0 logic (+12V) cu durata de bit. Acesta este urmat de cei 7 biţi de date ai caracterului ASCII. După aceştia urmează bitul de paritate. Funcţie de paritatea aleasă (pară sau impară) bitul poate fi 1 sau 0. Dacă se lucrează cu peritate pară, atunci se adaugă 1 sau 0 funcţie de caracter, a.î. numărul de biţi de 1 să fie par. În cazul parităţii impare numărul de biţi de 1 trebuie să fie impar. Atunci bitul de paritate se alege astfel: dacă există un număr impar de biţi de 1 în caracter atunci bitul de paritate va fi 0, iar dacă

Page 6: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

47

există un număr par de biţi atunci bitul de paritate va fi 1 astfel încât împreună cu acesta să fie un număr impar. Pentru a genera acest bit sunt necesare doar porţi XOR. Un singur bit de paritate poate detecta un număr impar de erori. Dacă numărul erorilor este par atunci acestea nu se pot detecta. În final sunt adăugaţi cei doi biţi de stop. Aceştia sunt amândoi 1. Blocul complet transmis cuprinde 11 biţi. În binar blocul pentru transmiterea lui „A” este 01000001011 (s-a folosit paritate pară, bitul de paritate fiind 0 deoarece codul ASCII al lui „A” conţine 2 biţi de 1). Forma de undă asociată acestei transmisii se găseşte în figura 4.1. d) configuraţia hardware Odată cu primul microprocesor Intel a dezvoltat o serie de periferice ce includea şi o interfaţă UART. Acesta este I8251. Completarea interfeţei se face cu două circuite adaptoare de nivel 75150 respectiv 75154. Schema electrică este prezentată în figura 4.3. Cele două adaptoare necesită alimentări de ±12V pentru obţinerea celor două nivele logice specifice interfeţei RS-232.

Într-un sistem cu microprocesor datele sunt verificate sub formă paralelă. Pentru serializarea lor se folosesc regiştri de deplasare atât la emisie cât şi la recepţie. Diferenţa constă în faptul că la emisie datele sunt încărcate paralel şi apoi deplasate serial către linia TxD (figura 4.4. a), iar la emisie acestea se primesc serial în registrul de deplasare şi sunt preluate apoi paralel în sistem (figura 4.4. b).

Fig. 4.3. Structura hardware a unei interfeţe RS-232

Page 7: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

48

Un exemplu reprezentativ de interfaţă serială programabilă este circuitul I-8251 produs de Intel (figura 4.5). Circuitul are o interfaţă compatibilă cu microprocesoarele Intel prezentând 3 magistrale pentru interfaţarea cu acestea: magistrala de date (D0÷7), magistrala de adrese CS şi magistrala de control (Clk, Reset, RD , WR , DC/ .

I-8251 acceptă date(format ASCII) de la CPU în format paralel le transformă în şir serial şi le trimite prin TxD cu rata programată. În acelaşi timp recepţionează date seriale pe RxD cu aceeaşi rată şi le transformă în format paralel pentru a fi preluate de către CPU. USART va semnaliza către CPU când poate primi un nou caracter pentru transmitere sau când este un nou caracter recepţionat disponibil. CPU poate citi în orice moment starea completă a interfeţei, aceasta incluzând erorile de transmisie şi semnalele de control SYNDET şi TxEMPTY.

Baud Rate

Registru Combinat

D0÷7

LD

SO TxD Registru Combinat

D0÷7

LD

SI RxD

Registru Memorare D0÷7

Q0÷7

a) b)

Clk

Baud Rate

Clk

Fig. 4.4. a) conversia paralel-serie; b) conversia serie-paralel

Tampon Magistrală de

Date

Logică de Control

Scriere / Citire

Control Modem

Tampon Transmisie

Date

Control Transmisie

Tampon Recepţie

Date

Control Recepţie

Res

et

C/D

C

lk

WR

RD

DTR

D

SR

RTS

C

TS

D0÷

7 Tx

D

TxR

DY

TxE

TxC

RxD

RxR

DY

RxC

SYN

DET

CS

Fig. 4.5. Schema bloc a interfeţei UART I-8251

Page 8: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

49

Descrierea funcţională a circuitului: • Tamponul magistralei de date – este un buffer de 8 biţi bidirecţional de tip 3 – state. Datele sunt vehiculate în timpul instrucţiunilor IN OUT ale CPU. Cuvintele de control, de comandă şi de stare sunt de asemenea transferate prin el. • Logica de control scriere/citire acceptă comenzi de la magistrala de control a sistemului şi generează semnalele interne de control pentru blocurile interne. El conţine Registrul cuvântului de control şi Registrul cuvântului de comandă ce memorează diferite formate de control pentru definirea funcţională a circuitului. Semnalele prezente pe magistrala de control sunt: - Reset – 1 logic pe această intrare forţează circuitul în modul „idle”. Acesta rămâne aşa până ce un nou set de cuvinte de control vor fi scrise în regiştrii acestuia. Durata minimă de iniţializare este de 6 perioade de tact. - Clk – intrarea furnizează semnal de tact circuitelor interne. Semnalul de tact trebuie să fie cel puţin 30 de ori mai mare decât ratele de transmisie. - WR - 0 logic pe această intrare anunţă circuitul că CPU scrie date sau informaţii de stare în regiştrii săi interni. - RD - 0 logic pe această intrare anunţă circuitul că CPU citeşte date sau informaţii de stare din regiştrii săi interni. - DC/ - această intrare este în legătură cu WR şi RD . Semnalul semnalizează dacă informaţia de pe magistrala de date este o dată sau un cuvânt de comandă / o informaţie de stare: 1= control/stare, 0=data. - CS - 0 logic pe această intrare selectează circuitul. Activarea semnalelor de scriere / citire nu vor avea efect decât simultan cu activarea acestuia. Tabelul următor prezintă stările semnalelor de control la diferitele operaţii: Tabelul 4.4.

DC/ RD WR CS Operaţia 0 0 1 0 Date 8251 → Magistrala de date 0 1 0 0 Magistrala de date → Date 8251 1 0 1 0 Stare → Magistrala de date 1 1 0 0 Magistrala de date → Control X 1 1 0 Magistrala de date → 3 state X X X 1 Magistrala de date → 3 state

• Controlul modem-ului permite un set de intrări şi ieşiri de control ce pot fi folosite pentru a simplifica interfaţarea cu orice modem. Ele pot fi folosite şi

Page 9: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

50

în alte scopuri. Acestea sunt: - DSR - Data Set Ready – intrare inversoare. CPU poate testa starea acesteia printr-o operaţie de citire a stării. Ea este utilizată pentru a testa dacă există date disponibile. - DTR - Data Terminal Ready – este o ieşire inversoare. Poate fi pusă în starea 0 logic prin bitul corespunzător din cuvântul de comandă. Indică faptul că se pot primi date. - RTS - Request to send - este o ieşire inversoare. Poate fi pusă în starea 0 logic prin bitul corespunzător din cuvântul de comandă. Indică faptul că echipamentul doreşte să trimită date. - CTS - Clear to send – 0 logic pe această intrare anunţă I-8251să transmită date dacă bitul TxD este validat în cuvântul de comandă. Dacă fie Tx Enable sau CTS trece în 1 logic, circuitul transmite ceea ce este în curs şi apoi se opreşte. • Tamponul de transmisie date – acceptă date paralele de la tamponul magistralei de date, adaugă biţii suplimentari funcţie de modul de comunicaţie ales şi le converteşte într-un şir de biţi serial pe care îl transmite pe ieşirea TxD pe frontul negativ al TxC . Transmisia începe atunci când CTS =0. • Controlul transmisiei – se ocupă de activităţile asociate transmisiei datelor seriale. Acceptă şi generează semnale necesare acestei operaţii: - TxRDY - Transmitter Ready – această ieşire semnalizează CPU că transmiţătorul este gata pentru a recepţiona date. Semnalul poate fi folosit ca semnal de cerere de întrerupere sau poate fi testat de către CPU prin citirea stării. El indică faptul că registrul de date al transmiţătorului este gol/plin. - TxE – Transmitter Empty – în modul sincron 1 logic pe această ieşire indică faptul că nu a fost încărcat un caracter şi că se transmit caractere de SYNC cu scopul de a umple golul. - TxC - Transmitter Clock - controlează rata cu care se transmite caracterul. În modul de transmisie sincron, rata de transmisie (Baud Rate) este egală cu frecvenţa de tact pe această intrare. În modul asincron rata este o fracţiune a acesteia (1, 1/16, 1/64). Frontul negativ al semnalului deplasează datele la ieşirea TxD. • Tamponul de recepţie date – acceptă datele seriale şi le converteşte în format paralel şi „asamblează” caracterul transmis. Datele se primesc pe RxD şi sunt validate pe frontul pozitiv al RxC . • Controlul recepţiei – acest bloc se ocupă de controlul recepţiei datelor. Mai întâi trebuie detectat un 1 valid pe linia de recepţie, după care se caută

Page 10: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

51

bitul de start. Aceasta se întâmplă doar în modul asincron. detecţia unei erori de paritate activează bitul corespunzător. Dacă bitul de stop lipseşte atunci se activează bitul Framing error. Semnale: - RxRDY – Receiver Ready – această ieşire indică faptul că 8251 conţine un caracter şi este gata pentru a-l transmite către CPU. Semnalul poate fi utilizat ca o cerere de întrerupere către acesta sau starea sa poate fi testată prin citirea registrului de stare. RxEnable ţine RxRDY în condiţia de reset. În modul asincron acest semnal este activat după detectarea unui bit de start şi asamblarea caracterului în registrul de recepţie. - RxC - Receiver Clock – controlează rata cu care se recepţionează caracterul. În modul sincron rata este egală cu frecvenţa semnalului pe această intrare. În modul asincron ea este o fracţie din aceasta (1, 1/16, 1/64). În majoritatea transmisiilor rata de transmisie este egală cu cea de recepţie. - SYNDET – SYNC detect / BREAK Detect – În modul sincron semnalul poate fi intrare sau ieşire programabilă prin registrul de control. Când este ieşire semnalul trece în 1 logic pentru a indica detecţia caracter-ului/elor de SYNC. Când este intrare un front pozitiv pe aceasta va determina 8251 să înceapă asamblarea caracterelor pe frontul următor al RxC . În modul asincron ieşirea trece în 1 logic după recepţia celor doi biţi de stop după ce în prealabil au fost recepţionaţi bitul start şi cel de paritate. Poate fi citit ca bit de stare. Pentru a iniţializa interfaţa procesorul trebuie să trimită o serie de cuvinte de comandă către aceasta. Acestea vor programa: rata de transmisie, lungimea caracterelor, numărul biţilor de stop, lucrul sincron/asincron şi paritatea. Pentru modul de lucru asincron există şi alte opţiuni suplimentare. Cuvintele de control sunt de tipuri: instrucţiune de mod şi instrucţiune de comandă. Cele două instrucţiuni trebuie să urmeze o secvenţă specifică pentru buna funcţionare a interfeţei (figura 4.6) Instrucţiunea de mod defineşte caracteristicile operaţionale ale interfeţei. Ea urmează operaţiei de iniţializare (Reset intern sau extern). Odată înscris modul, CPU trebuie să înscrie caracterele de SYNC şi instrucţiunile de comandă. Pentru a înscrie încă o dată instrucţiunea de mod, bitul Reset din instrucţiunea de comandă trebuie setat pentru a iniţia un reset intern. - Modul asincron de transmisie: când un caracter este trimis de către CPU, I-8251 îi adaugă un bit de start înainte şi un bit de paritate (opţional) şi bitul (biţii) de stop. Biţii cracterului sunt ordonaţi cu cel mai puţin semnificativ primul. Pachetul este trimis serial, bit cu bit, la ieşirea TxD. Pachetul de date

Page 11: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

52

este deplasat spre ieşire pe frontul negativ al lui TxC cu o rată egală cu 1, 1/16, 1/64 din frecvenţa TxC , după cum este definit în instrucţiunea de

mod. Când nu sunt de transmis caractere, I-8251 ţine linia TxD în 1 logic. - Modul asincron de recepţie: Linia RxD este normal ţinută în 1 logic. Un front negativ anunţă începutul unui bit de start. Validitatea acestuia este testată din nou în mijlocul perioadei de bit (doar în modurile 16X sau 64X). Dacă un nivel 0 logic este detectat din nou, atunci se consideră un bit valid

Instrucţiune de mod Caracter SYNC 1 Caracter SYNC 2

Instrucţiune de comandă

Date

Instrucţiune de comandă

Date

Instrucţiune de comandă

C/D=1 C/D=1 C/D=1 C/D=1

C/D=0

C/D=1

C/D=0

C/D=1

Doar în modul SYNC. Dacă s-a

programat un singur caracter

SYNC, atunci al doilea nu mai

există.

Fig. 4.6. Programarea interfeţei I-8251

Tipul parităţii

S1 EP PEN L2 L1 B2 B1 S2

D6 D5 D4 D3 D2 D1 D7

1 0

pară impară

Factorul ratei de transmisie 0 1 0 1

0 0 1 1

Mod SYNC 1X 16X 64X

Lungimea caracterului

0 1 0 1

0 0 1 1

5 biţi 6 biţi 7 biţi 8 biţi

Validarea parităţii

1 0

cu paritate fără paritate

Biţi de stop

0 1 0 1

0 0 1 1

fără 1 bit 1½ biţi 2 biţi

D0

Fig. 4.7. Formatul instrucţiunii de mod – modul asincron.

Page 12: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

53

de start, iar numărătorul de biţi de la recepţie începe să numere. Acesta determină încărcarea biţilor (biţii de date, bitul de paritate şi biţii de stop) prin eşantionarea lor exact la mijlocul perioadei de bit. Dacă se detectează o eroare de paritate atunci fanionul de eroare de paritate (Parity error flag) va fi setat. Eşantionarea biţilor are loc pe frontul pozitiv al semnalului pe intrarea RxC . Dacă se detectează un nivel 0 logic pe durata biţilor de stop, atunci fanionul de eroare de cadru (Framing error flag) va fi setat. Bitul de stop anunţă sfîrşitul caracterului (receptorul are nevoie doar de 1 bit de stop indiferent de cîţi sunt programaţi). Caracterul recepţionat este apoi încărcat în registrul tampon paralel al I-8251. Pinul RxRDY este dus în 1 logic pentru a semnaliza CPU că s-a recepţionat un caracter. Dacă precedentul caracter nua fost citit din registrul tampon, atunci următorul va fi supraînscris peste el. Pentru a semnaliza aceasta, fanionul de supraînscriere (OverRun Error flag) va fi setat. Toate fanioanele de eroare pot fi reset-ate cu o instrucţiune de iniţializare a erorilor. - Modul sincron de transmisie: Ieşirea TxD este ţinută în 1 logic atâta timp cât nu se trimit caractere, când CPU trimite primul caracter către I-8251 (care de regulă este un caracter de SYNC). Odată cu trecerea liniei CTS în 0 logic, primul caracter etse transmis serial. Fiecare bit este deplasat către ieşire pe frontul negativ al lui TxC . Odată ce transmisia a început, datele trebuie să succeadă continuu la ieşirea TxD cu rata fixată de TxC . Dacă CPU nu reuşeşte să asigure caracterele de treansmis la timp, caractere de sincronizare (SYNC) vor fi automat inserate. Pinul TxEMPTY va fi adus în 1 logic pentru a semnaliza acest lucru şi va fi reset-at odată cu primul caracter înscris în registrul tampon de transmisie. - Modul sincron de recepţie: În acest mod sincronizarea caracterelor poate fi realizată intern sau extern. Dacă a fost programat modul SYNC, o comandă ENTER HUNT (Intrare vânătoare) trebuie inclusă în prima instrucţiune de comandă. Datele pe RxD sunt eşantionate pe frontul crescător al lui RxC . Conţinutul registrului tampon de recepţie este comparat la fiecare bit recepţionat cu caracterul SYNC până se detectează o potrivire. Dacă au fost programate 2 caractere de SYNC, atunci şi următorul caracter este de asemenea comparat. Când au fost detectate 2 caractere SYNC, USART iese din modul vânătoare şi intră în modul de sincronizare a caracterelor. Pinul SYNDET este dus în 1 logic şi va fi reset-at automat după o instrucţiune de citire a stării. Dacă transmisia este cu bit de paritate atunci SYNDET nu va fi set-at până la mijlocul bit-ului de paritate (în locul ultimului bit pentru modul fără paritate). În modul de sincronizare externă, sincronizarea se face aplicând 1 logic pe SYNDET, forţând 8251 să iasă din modul vânătoare.

Page 13: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

54

Acest nivel va fi părăsit după un tact pe RxC . Comanda ENTER HUNT nu are efect în modul asincron. Erorile de paritate şi supraînscriere se testează la fel ca în modul sincron. Paritatea nu se testează în modul vânătoare. Dacă sincronizarea s-a pierdut, CPU poate forţa receptorul să intre în modul vânătoare. Această acţiune va duce în 1 logic toţi biţii din registrul de recepţie pentru a preveni o detecţie falsă a sincronizării. Fanionul SYNDET este reset-at la fiecare cititre a stării. Aceasta nu cauzează întparcerea 8251 în modul vânătoare. Când interfaţa se află în modul sincronizare dar nu în cel de vânătoare, detecţia sincronizării este încă funcţională dar apare doar la terminarea cuvintelor „cunoscute”. Astfel, dacă o citire a stării indică SYNDET şi a doua citire la fel, atunci caractere de sincronizare au fost recepţionate. În modul extern, detecţia internă a sicronizarii este dezactivataă, iar fanionul de detecţia a sincronizării poate fi activat la sfârşitul oricărui bit.

Instrucţiunea de comandă controlează modul de funcţionare al formatului selectat prin instrucţiunea de mod. Toate cuvintele de control scrise în 8251 după instrucţiunea de mod vor însemna instrucţiuni de comandă. Acestea pot fi înscrise la orice moment în interfaţă. Semnificaţia biţilor instrucţiunii de comandă este prezentată în figura 4.9.

Tipul parităţii

ESD EP PEN L2 L1 0 0 SCS

D6 D5 D4 D3 D2 D1 D7

1 0

pară impară

Lungimea caracterului

0 1 0 1

0 0 1 1

5 biţi 6 biţi 7 biţi 8 biţi

Validarea parităţii

1 0

cu paritate fără paritate

Caractere de SYNC

1 0

1 caracter SYNC 2 caracter SYNC

D0

Detecţie SYNC externă

1 0

SYNDET=intrare SYNDET=ieşire

Fig. 4.8. Formatul instrucţiunii de mod – modul sincron.

Page 14: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

55

Formatul informaţiei de stare: Pentru a putea obţine informaţii despre eventualele erori apărute în timpul comunicaţiei este adesa necesară citirea stării interfeţei. I-8251 permite acest lucru la orice moment. Pentru aceasta se efectuează o citire din interfaţă cu semnalul 1DC/ = . Câţiva dintre biţi au semnificaţii similare cu unii dintre pinii externi. TxRDY este o excepţie. Informaţia de stare poate avea o întârziere de maxim 28 de perioade de tact faţă de evenimentul ce a generat starea respectivă. Figura 4.10 prezintă semnificaţia biţilor cuvântului de stare. Biţii D6, D2 şi D1 sunt cei care au corespondenţă cu semnalele externe.

Terminal de date pregătit

IR RTS ER SBRKEH

D6 D5 D4 D3 D2 D1 D7

1 0

DTR =0 DTR =1

Validarea transmisiei 1 0

validată invalidată

Ştergere erori 1 0

ştergere fanioane erori -

D0

Trimite caracterul BREAK 1 0

forţează TxD în 0 logic funcţionare normală

RxE DTR TxEN

Validarea recepţiei

1 0

validată invalidată

Cerere de transmisie

1 0

RTS =0 RTS =1

Reset intern 1 0

reset -

Modul de vânătoare

1 0

validează modul vânătoare -

Fig. 4.9. Formatul instrucţiunii de comandă

Page 15: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

56

În continuare sunt prezentate câteva moduri de utilizare a interfeţei funcţie de tipul de trensmisie ales.

SYN DET

FE OE PE DSR

D6 D5 D4 D3 D2 D1 D7 TxRDY diferit de pinul TxRDY. Bitul semnifică faptul că registrul tampon de transmisie este gol, în timp ce pinul semnifică (registrul tampon gol) AND ( CTS=0) AND (TxEN=1).

Eroare de sepraînscriere

1 0

CPU nu a citit toate

caracterele recepţionate

-

D0

Tx EMPTY

RxRDY TxRDY

Eroarea de paritate

1 0

s-a detectat eroare

de paritate

nu s-a detectat

eroare de paritate

Eroare de cadru 1 0

nu s-a detectat un bit de

stop valid

-

Set de date pregătit

1 0

indică DSR=0 - Fig. 4.10. Formatul cuvântului de stare

Adrese

Control

Date I-8251

TxD

RxD

RxC

TxCI-8253

EIA - TTLTerminal asincron

Fig. 4.11. Transmisie asincronă

Adrese

Control

Date I-8251

TxD

RxD

RxC

TxC

Terminal sincron

SYNDET

Fig. 4.12. Transmisie sincronă

Page 16: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

57

Calculatoarele de tip PC au cel puţin un port serial, dar de regulă sunt 2, porturi care sunt standardizate. Porturile seriale sun cunoscute sub prescurtarea de COM şi sunt numerotate cu 1, 2, 3... Tabelul următor listează adresele regiştrilor asociaţi celor două porturi. Adresele de bază sunt 3F8h pentru COM1 şi 2F8h pentru COM2. Tabelul 4.5.

Adresa de bază DLAB RD/WR Abr. Nume

0 WR - Registru transmiţător 0 RD - Registru tampon recepţie + 0 1 RD/WR - Memorie octet inferior pentru

divizorul ratei de transmisie 0 RD/WR IER Registru validare întreruperi

+ 1 1 RD/WR - Memorie octet superior pentru divizorul ratei de transmisie

+ 2 - RD IIR Registru identificare întreruperi

Adrese

Control

Date

I-8251

TxD

RxD

RxC

TxC

Modem asincron

I-8253

DSR

DTR

CTS

RTS

Interfaţă cu linia

telefonică

Fig. 4.13. Transmisie asincronă prin linia telefonică

Adrese

Control

Date

I-8251

TxD

RxD

RxC

TxC

Modem sincron

DSR

DTR

CTS

RTS

Interfaţă cu linia

telefonică

SYNDET

Fig. 4.14. Transmisie sincronă prin linia telefonică

Page 17: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

58

- WR FCR Registru control FIFO + 3 - RD/WR LCR Control linie + 4 - RD/WR MCR Control modem + 5 - RD LSR Registru stare linie + 6 - RD MSR Registru stare modem + 7 - RD/WR - Registru Scratch (uz general)

Regiştrii portului serial au următoarele semnificaţii: Addresă: Baza + 1 - RD/WR - DLAB=0 - Nume: Interrupt Enable Register (IER). Semnificaţia biţilor: Bit # Nume 0 Validează întreruperea pentru data recepţionată disponibilă 1 Validează întreruperea pentru registru transmiţător gol

2 Validează întreruperea de stare a liniei (INT în LSR - Line Status Register)

3 Validează întreruperea de stare a modemului (INT în MSR - Modem Status Register)

4 validează modul Sleep (16750) 5 Validează modul de consum redus (16750) 6 Rezervat

Addresa: Baza + 2 - RD - Nume: Interrupt Identification Register (IIR) Bit # Nume

0 Întrerupere în aşteptare 0 1 Nu există întreruperi în aşteptare B2 B1 Tip întrerupere (prioritate) 0 0 Întrerupere stare modem (4) 0 1 Întrerupere pentru registru transmiţător gol (3) 1 0 Întrerupere pentru dată recepţionată disponibilă (2)

1 & 2

1 1 Întrerupere pentru starea liniei receptorului (1) 0 Rezervat pentru 8250, 16450 3 1 16550 Întrerupere în aşteptare

4 Rezervat 5 FIFO de 64 octeţi activat (numai 16750)

B6 B7 0 0 Fără FIFO 0 1 FIFO validat dar neutilizabil

6 & 7

1 1 FIFO validat

Addresa: Baza + 2 - WR - Nume: FIFO Control Register (FCR). Bit # Nume

Page 18: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

59

Validare memorii FIFO 1 Şterge FIFO recepţie 2 Şterge FIFO transmisie

3 Selecţie Mod DMA. Schimbă starea pinilor RXRDY & TXRDY din modul 1 în modul 2.

4 Rezervat 5 Validare FIFO 64 octeţi (16750 only)

B7 B6 Nivel de trigger pentru întrerupere 0 0 INT pentru 1 octet recepţionat 0 1 INT pentru 4 octeţi recepţionaţi 1 0 INT pentru 8 octeţi recepţionaţi

6 & 7

1 1 INT pentru 14 octeţi recepţionaţi

Adresă: Baza + 3 - RD/WR - Nume: Line Control Register (LCR) Bit # Nume

B1 B0 Lungimea cuvântului 0 0 5 Biţi 0 1 6 Biţi 1 0 7 Biţi

1

1 1 8 Biţi 0 1 Bit de Stop

2 1 2 biţi de Stop pentru cuvinte 6,7 sau 8 biţi sau 1.5 Biţi de Stop pentru cuvinte de 5 biţi.

B5 B4 B3 X X 0 Fără Paritate 0 0 1 Paritate impară 0 1 1 Paritate pară 1 0 1 Paritate 1 (bit de paritate 1)

3, 4 & 5

1 1 1 Paritate 0 (bit de paritate 0) 6 Validare activare Break 7 1 Acces la memoria divizorului

0 Acces la tamponul Receptorului, a Transmiţătorului şi la Registrul de validare a întreruperilor

Adresă: Baza + 4 - RD/WR - Nume: Modem Control Register (MCR) Bit # Nume 0 Foţează Data Terminal Ready 1 Forţează Request to Send 2 Ieşire auxiliară 1

Page 19: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

60

3 Ieşire auxiliară 2 4 Modul buclă înapoi (loopback) 5 Validarea controlului Autoflow (numai 16750) 6 Rezervat 7 Rezervat

Adresă: Baza + 5 - RD - Nume: Line Status Register (LSR) Bit # Nume 0 Date disponibile 1 Eroare de supraînscriere 2 Eroare de paritate 3 Eroare de cadru 4 Întrerupere Break 5 Registru TX gol 6 Registru TX şi registrul de deplasare goale 7 Eroare în FIFO de recepţie

Dacă bitul 6 este setat, USART este ocupată (regiştri de date sunt ocupaţi). Daca doar bitul 5 este setat. un alt octet poate fi înscris pentru transmisie. Bitul 4 – când linia de recepţie este ţinută în 0 logic mai mult decât durata unui caracter inclusiv biţii adiţionali Bitul 3 – ultimul bit nu e bit de Stop (de regulă când este diferenţă de rate de transmisie) Bitul 1 – data din registrul de recepţie nu a fost citită şi a fost supraînscrisă datorită unei noi recepţii.

Adresă: Baza + 6 - RD - Nume: Modem Status Register (MSR) Bit # Nume 0 Modificare Clear To Send de la ultima citire 1 Modificare Data Set Ready de la ultima citire 2 Indicator sonerie în aşteptare 3 Modificare Data Carrier Detect de la ultima citire 4 Clear To Send 5 Data Set Ready 6 Indicator sonerie 7 Detecţie purtătoare

Rata de transmisie se stabileşte conform tabelului următor: Bps (bit/sec) Divizor Latch high byte Latch low byte

50 2304 09h 00h 300 384 01h 80h 600 192 00h C0h

Page 20: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

61

2400 48 00h 30h 4800 24 00h 18h 9600 12 00h 0Ch 19200 6 00h 06h 38400 3 00h 03h 57600 2 00h 02h 115200 1 00h 01h

4.3. Interfaţa serială RS-422 TIA/EIA-422-B (RS422) este un standard industrial ce precizează caracteristicile electrice ale unui circuit de interfaţă echilibrat. A fost introdus pentru a rezolva problemele de limitare ale standardelor nesimetrice (RS232). Acestea nu prezintă imunitate la zgomote de mod comun )tipice în medii industriale). Un emiţător RS-422 poate suporta până la 10 sarcini (4kΩ tipic pentru o unitate), poate transmite datele până la 1200m şi sunt garantate să suporte un curent de 20 mA pe o sarcină de 100Ω (adică 2V pe sarcină).

Impedanţa receptorului trebuie să fie egală cu o unitate de sarcină (panta zonei gri din figura de mai sus). Zona de lucru a receptorului este definită între -10 şi +10V (zona gri din figura de mai sus). Receptoarele RS-422 au pragurile de detecţie de ±200mV faţă de întregul domeniu de ieşire al emiţătorului de ±6V. De asemenea este garantată o margine de zgomot diferenţială ≥1.8V între excursia de ieşire a emiţătorului şi pragurile receptorului.

100Ω D

V

I

3,25 mA

-3,25 mA

10 3

-3 -10

Fig. 4.15. Emiţătorul şi regiunea de funcţionare pentru RS-422

Page 21: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

62

Pentru distanţe mari sau viteze mari de transmisie este recomandată utilizarea terminatorilor pentru a reduce reflexiile produse de neîmperecherea de impedanţă dintre cablu şi impedanţa de intrare a receptorului. În principiu standardele RS-422 şi RS-485 sunt similare. Totuşi există şi diferenţe: etajul de ieşire a emiţătorului, domeniul de mod comun al interfeţei, rezistenţa de ieşire a receptorului, şi capabilitatea de sarcină a emiţătorului. Lungimea cablului şi rata de transmisie sunt mărimi complementare. Figura 4.16 prezintă o hartă a regiunii operative a standardului RS-422 şi comparaţie cu alte standarde. Datele au fost obţinute folosind cablu torsadat din Cu, cu capacitate de 50pF/m, terminat pe 100Ω.

Adaptarea de impedanţă printr-un terminator rezistiv paralel este o metodă foarte populară, care aduce avantajul unor lungimi mari de cablu şi rate de transmisie ridicate. Aceasta aduce rezistenţa Rt la valori apropiate de Z0 (fig. 4.7) şi minimizează reflexiile. Conexiunea are şi un dezavantaj al disipării inutile de putere pe sarcina rezistivă, tensiune diferenţială mai mică şi margine de zgomot mai redusă. Reţelele RS-422 folosesc 3 tipuri de configuraţii:

Rata de transmisie (kbps)

Lung

imea

cab

lulu

i (m

)

0.1 1.0 10 100 1000 10000

1200

25 RS-232

RS-423 RS-422

Fig. 4.16. Lungimea cablului vs. Rata de transmisie

Rt

R

R E

Fig. 4.17. Aplicaţie multi-recepţie cu terminator paralel

Page 22: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

63

a) Configuraţia punct-punct are un singur emiţător şi un singur receptor. Acestea pot fi gândite ca aplicaţii RS-232 cu transmisie diferenţială. b) Configuraţia punct-multipunct este cea din figura 4.17 în care există un emiţător şi mai multe receptoare pe acelaşi cablu. Numărul maxim de receptoare este 10 dacă impedanţa receptorului este 4kΩ şi 20 dacă aceasta este 8kΩ. c) Configuraţia multipunct-multipunct permite pe aceleaşi fire conectarea a mai multor emiţătoare şi receptoare (fig. 4.18). Emiţătoarele 422 nu sunt proiectate pentru acest gen de configuraţie, dar în anumite condiţii acest lucru este posibil: diferenţe de potenţial între masele emiţătoarelor, disputa între emiţătoare şi capacitatea de comandă a acestora.

Deşi standardul RS-422 nu prevede nici o specificaţie specială privind descărcările ESD, porducătorii de circuite integrate au dezvoltat totuşi un standard minim de protecţie de 2kV pentru atingerea cu corpul omenesc. Software-ul asociat reţelelor RS-422 diferă de cel utilizat pentru comunicaţiile pe interfaţa serială standard. Aici se impune o comunicaţie de tip master-slavepentru a evita coliziunile. Pentru a reduce costurile nu se implementează liniile suplimentare de control a comunicaţiei. Tabelul următor rezumă specificaţiile electrice ale standardului RS-422. Tabelul 4.6. Specificaţiile electrice ale RS-422

Parametrul Condiţii Min Max UM Tensiunea de ieşire a emiţătorului în gol

10 -10

V V

Tensiunea de ieţire a emiţătorului în sarcină

Rt=100Ω 2 -2

V V

Rezistenţa de ieşire a emiţătorului

A la B 100 Ω

Curentul de scurtcircuit al emiţătorului

pe ieşire către masă

±150 mA

Rt

R

R E

E E

E R

Rt

Fig. 4.18. Aplicaţie multipunct-multipunct

Page 23: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

64

Timpul de creştere al ieşirii emiţătorului

Rt=100Ω 10 % din durata de bit

Tensiunea de mod comun a emiţătorului

Rt=100Ω ±3 V

Sensibilitatea receptorului VCM≤7V ±200 mV Tensiunea de mod comun a receptorului

-7 7 V

Rezistenţa de intrare a receptorului

4000 Ω

Tensiunea diferenţială a receptorului

operaţională: oponentă:

±10 ±12

V V

4.4. Interfaţa serială RS-423 Acest standard nu este folosit pe scară largă. În anii 80 HP producea calculatoarele cu interfaţă serială suportând ambele standarde RS-232 şi RS-423. RS-423 este referit faţă de masă şi este o îmbunătăţire a fratelui mai bătrân RS-232 permiţând distanţe mai mari şi rate de transmisie superioare. Acest lucru se obţine printr-o viteză de variaţie (slew-rate) variabilă (RS-232 are o viteză fixă de 30V/µs) ce poate fi programată funcţie de lungimea cablului şi de rată. RS-423 permite distanţe de maximum 1200m şi viteze maxime de 100kbps.

4.5. Interfaţa serială RS-485 Ca şi RS-422, şi RS-485 este un sistem de comunicaţie diferenţial sau echilibrat. Semnalul apare între două fire care transmit doar semnalul, ele fiind diferite de masa electrică. Topologiile reţelelor pot fi punct – punct, punct - multipunct, multipunct – multipunct. Numărul maxim de perechi emiţător receptor pot fi de 32. Multe din caracteristicile emiţătoarelor şi receptoarelor RS-485 sunt similare cu RS-422.Tensiunile de mod comun pe care le suportă acestea sunt extinse de la +12 la -7 V datorită capabilităţii stării de înaltă impedanţă (tri-state). Figura 4.19 prezintă o configuraţie multipunct-multipunct tipică pe 2 fire. Se observă terminatoarele liniei la ambele capete, dar nu şi la punctele din mijlocul liniei. Masa de semnal este de asemenea recomandată pentru a menţine tensiunile de mod comun în limitele acceptate. RS-485 poate fi configurată şi pe 4 fire (fig. 4.20). Dacă în configuraţia anterioară oricare din puncte putea fi Master şi oricare Slave, în configuraţia aceasta Masterul este cel al cărui receptor este singurul de pe linie, restul fiind Slave. Aşadar două din fire sunt utilizate pentru transmiterea informaţiei de la Master către receptoarele Slave, iar două

Page 24: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

65

pentru transmiterea informaţiei de la emiţătoarele Slave către receptorul Master. În concluzie nodurile Slave pot comunica doar către nodul Master, nu şi între ele. De aici şi un avantaj al lipsei coliziunilor deoarece nodurile Slave nu vor „vorbi” niciodată simultan pentru că nu comunică între ele, şi se poate realiza o comunicaţie duplex. Pe durata cât un nod nu emite, emiţătorul este deconectat de la linia de transmisie. Sunt numeroase cazurile când sistemele prezintă interfeţe RS-232 iar pentru a le conecta în reţele RS-485 se folosesc adaptoare RS-232 – RS-485. Pentru a putea conecta sau deconecta emiţătorul de la linie se poate folosi semnalul RTS. Când acesta este în 1 logic, emiţătorul este activ şi devine inactiv pentru 0 logic. Cât timp este deconectat, alte noduri pot transmite date pe interfaţă. Figura 4.21. prezintă forme de undă specifice pentru convertorul RS-232 – RS-485. Este important ca RTS să fie dus în 1 logic înainte ca data să fie transmisă, şi trebuie să rămână în această stare

B A

Rt

R

R E

E R

Rt

R E E E

T/R

T/R T/R

T/R

100Ω

100Ω 100Ω 100Ω

100Ω

100Ω

100Ω

100Ω

A

B

B

A

A B A B B A

A

A

B

B

Fig. 4.19. Aplicaţie RS-485 multipunct-multipunct pe 2 fire

B A

Rt

R

R E

E R

Rt

E

T/E

T/E T/E

T/E

100Ω

100Ω 100Ω 100Ω

100Ω

100Ω

100Ω

100Ω

A

B

B

A

A B A B B A

A

A

B

B

E

R

Rt Rt

MASTER

SLAVE SLAVE

SLAVE

Fig. 4.20. Aplicaţie RS-485 multipunct-multipunct pe 4 fire

Page 25: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

66

până la un moment ulterior transmiterii ultimul bit. Aceasta este realizată prin software-ul ce controlează portul serial. Dacă portul serial provine de la un sistem pentru care nu există linia RTS disponibilă atunci emiţătorul poate fi comandat chiar de către linia de date. Pentru aceasta linia de date este triggerată pentru a obţine semnalul de validare a emiţătorului. Figura 4.22. prezintă schema electrică şi formele de undă asociate pentru această aplicaţie. Este important de ştiut că emiţătorul este dezactivat la un interval fix după ultimul bit de date; tipic această durată se alege de lungimea unui caracter. Dacă intervalul este prea scurt se poate pierde o parte din caracterul de transmis, iar dacă este prea lung atunci sistemul va încerca să pornească emiţătorul înainte ca receptorul să fie pregătit pentru a primi date. Comunicaţia pe RS-485 necesită un nod Master care să gestioneze comunicaţia pe interfaţă. Fiecare nod Slave trebuie să aibă o adresă unică pentru a-l deosebi de celelalte. Implementarea pe 4 fire simplifică modul de adresare. Preambulul poate fi chiar adresa nodului. Trebuie avut grija ca Masterul să nu ceară informaţii de la mai multe noduri simultan pentru evitarea coliziunilor. Implementarea pe 2 fire implică o complexitate mai mare. Întârzierea dintre sfârşitul transmisiei şi momentul de înaltă impedanţă este un parametru important. Dacă Slave-ul începe să răspundă înainte ca emiţătorul să fie inactiv, atunci poate apărea o coliziune. Dacă reţeaua are mai multe noduri Master atunci oricare poate iniţia o transmisie şi pot apărea coliziuni. În aceste condiţii proiectantul trebuie să utilizeze metode sofisticate pentru detecţia erorilor pentru autorizarea şi retransmisia datelor în caz de eroare. Pentru reţelele în care convertoare ce necesită alimentare din port, sau dacă întregul nod necesită aceasta, se pot folosi, pentru alimentarea sa,

VSD

VRTS

VA

VB

E

R

R

E

R

GRD

RTS

RxD

TxD TxDTTLA

B

A

B

GRD

Tx

Rx

VSD

VRTS

TxDTTL

VA

VB

+6

-6

+6

-6

+3

0

0

+3

0

+5

0

Convertor RS-232 – TTL

integrat

Convertor TTL – RS-485

integrat

emiţătorul RS-485

dezactivat Fig. 4.21. Schema electrică şi forme de undă pentru convertorul RS-232 – RS-485

Page 26: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

67

linii neutilizate ale portului (RTS, CTS,...) care se programează în 1 logic. Pentru curenţi mai mari se pot suma liniile prin rezistenţe de valoare mică. Tabelul următor sintetizează caracteristicile electrice ale RS-485. Tabelul 4.7. Specificaţiile electrice ale RS-485

Parametrul Condiţii Min Max UM Tensiunea de ieşire a emiţătorului în gol

1.5 -1.5

6 -6

V V

Tensiunea de ieţire a emiţătorului în sarcină

Rt=54Ω 1.5 -1.5

5 -5

V V

Rezistenţa de ieşire a emiţătorului A la B 100 Ω Curentul de scurtcircuit al emiţătorului

ieşirea la +12 sau -7

±250 mA

Timpul de creştere al ieşirii emiţătorului

Rt=54Ω Ct=50pF

30 % din durata de bit

Tensiunea de mod comun a emiţătorului

Rt=54Ω -1 +3 V

Sensibilitatea receptorului VCM≤7V ±200 mV Tensiunea de mod comun a receptorului

-7 12 V

Rezistenţa de intrare a receptorului

12k Ω

VSDVA

VB

E

RE

R

GRD

RxD

TxD TxDTTLA

B

A

B

GRD

Tx

Rx

VSD

VSDTTL

ENABLE

VA

VB

+6

-6

+5

0

+3

0

0

+3

0

+5

0

Convertor RS-232 – TTL

integrat

Convertor TTL – RS-485

integrat

emiţătorul RS-485 dezactivat

R

C

Circuit retriggerabil

ENA

BLE

1

1 – durata este stabilită de către componentele R şi C, dar începutul intervalului este determinat de frontul fiecărui bit

Fig. 4.22. Schema electrică şi forme de undă pentru convertorul RS-232 – RS-485 cu

triggerarea liniei de date

Page 27: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

68

4.4. Interfaţa USB

Interfaţa USB (Universal Serial Bus) a fost dezvoltată în 1995 de câteva din marile companii ale lumii (Compaq, Hewlett Packard, Intel, Lucent, Microsoft, NEC şi Philips). Principalul scop al USB a fost acela de a defini o magistrală de extindere care să permită adaugarea de periferice unui calculator PC la fel de simplu cum se conectează un telefon la linia telefonică. Astfel a ajuns să înlocuiască majoritatea porturilor tradiţionale a unui calculator cu o singură interfaţă cât mai prietenoasă. USB este o interfaţă serială ce foloseşte protocoale predefinite. A fost proiectată să nu necesite întreruperi specifice sau DMA, dar să poată recunoaşte dispozitivele ce sunt conectate din mers. Pentru a instala un dispozitiv nou nu sunt necesare cunoştinţe speciale, şi orice dispozitiv să fie distict faţă de altele, iar driver-ul corect va fi utilizat în mod automat. Interfaţa este de tip master-slave. A fost dedicată perifericelor de birou dar a înlocuit cele mai multe dispozitive care se conectau pe portul paralel (LPT) sau pe portul serial (COM). Există două versiuni de interfaţă USB: versiunea 1.X suportă două viteze (12Mbps şi 1.5Mbps) - viteză mai mică este destinată dispozitivelor ieftine (mouse de exemplu) şi nu necesită cablu ecranat; USB 2.0 ce suportă viteză ridicată (480Mbps) pentru, practic, orice tip de aplicaţie. Această specificaţie a fost introdusă ca răspuns la viteza ridicată a interfeţei Firewire.

Magistrala este implementată fizic prin 4 fire, două pentru alimentare şi două pentru date, conectorul rezultând astfel cu 4 pini (figura 4.23.a). Datele sunt vehiculate diferenţial pe 2 fire torsadate, dar şi unele

referite faţă de masă. Fiecare din semnalele de pe cele 2 fire sunt referite faţă de masă. Al 4 le-a semnal este o tensiune de alimentare (+5V) şi poate fi folosită să alimenteze dispozitivul periferic. În figura 4.23.b sunt prezentate cele 4 tipuri de conectori. Conectorii de tip A şi B au 4 contacte, numerotate ca în figură. Contactele de date sunt pe mijloc (conectorul A) şi respectiv pe partea stângă (conectorul B), iar cele de putere pe margine (conector A) şi respectiv pe partea dreaptă

+5V D+ D-

GND

+5V = 1 D+ = 3 D- = 2 GND = 4

... 1 2 3 4

4 3

2 1

a) b)

1 2 3 4 5

Conector A Conector B Conector mini USB

Fig. 4.23. Cablul şi conectorul USB

Page 28: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

69

(conector B). Conectorul mini USB (mini B) are 5 contacte din care contactul 4 se numeşte ID şi nu este conectat. Primele 3 au aceeaşi numerotare, iar pinul 5 este masa (GND). Toate 3 tipurile au un contact metalic ce le înconjoară, la care este legat ecranul cablului. Există 3 tipuri de cabluri: - un cablu de viteză ridicată cu conector A la un capăt şi conector B sau mini B la celălalt. - un cablu de captură de viteză mare, conectat direct la echipamentul periferic sau cu un conector specific, şi la celalalt capăt cu un conector de tip A. - un cablu similar cu cel de-al doilea, dar de viteză scăzută. Lungimea maximă a cablului depinde de viteza cu care se face comunicaţia, de atenuare şi de întârzierea de propagare. Pentru un cablu de viteză redusă timpii de creştere şi cei de cădere fixează lungimea maximă. De aceea cablul de viteză redusă este mai scurt decât cel de viteză ridicată. Lungimea oricărui cablu este limitată la 5m. Astfel cel mai îndepărtat perfieric nu poate fi la mai mult de 30m de controller. Un dispozitiv sau un hub poate alimenta doar din portul master (upstream). Există periferice care nu folosesc sursa de alimentare de pe interfaţă, însă există şi periferice care se alimentează din interfaţă. Curentul maxim ce poate fi consumat este de 100mA în mod normal sau 500mA dacă este permis de către unitatea gazdă. Când perifericul este suspendat consumul cade sub 0.5 mA. Tensinea poate scădea la periferic până la 4.35V şi în plus pe linie pot apărea paraziţi tranzitorii de până la 0.4V datorită dispozitivelor ce se conectează în acel moment. Astfel nici un dispozitiv nu are voie să tragă un curent mai mare de 100mA înainte de a fi configurat. În starea „suspendat” consumul trebuie să fie mai mic de 0.5 mA datorită rezistenţei de 1.5k spre alimentare care consuma 0.3 mA, dispozitivului îi rămân doar 0.2 mA. Dacă dispozitivul conţine un microcontroller acesta trebuie să aibă un curent care să îndeplinească aceste cerinţe în modul „sleep”.

4.4.1. Arhitectura USB USB este o arhitectură de tip stea etajată cu un singur controller gazdă (host) şi până la 127 de dispozitive sclav (slave). Controllerul este conectat într-un hub (de regulă integrat în calculator), iar acesta permite ataşarea unui număr de dispozitive. Fiecare conector poate fi continuat cu încă un hub, şamd, dar cu anumite restricţii. Numărul maxim de ramificaţii este de 6.

Page 29: Cap4 Interfete seriale - iota.ee.tuiasi.roiota.ee.tuiasi.ro/~czet/Curs/Teledata/Cap4_Interfete_seriale.pdf · Nivelele de tensiune ale interfeţei RS232 . Teletransmisii de date Cap

Teletransmisii de date Cap. 4 Interfeţe seriale

70

Limitarea numărului de dispozitive provine din faptul că lungimea câmpului de adresă este de 7 biţi, iar valoarea 0 nu poate fi utilizată deoarece are o semnificaţie aparte. În majoritatea sistemelor se ajunge la o limitare de bandă înainte de a atinge cele 127 de periferice. Din cele 5 hub-uri de pe o ramură, cel puţin două trebuie să aibă alimentare proprie.

Toate comunicaţiile pe magistrală sunt iniţiate de către controllerul gazdă. Un periferic nu poate iniţia comunicaţia şi trebuie să aştepte să fie întrebat pentru a tranfera datele către controller. Singura excepţie este atunci când un dispozitiv este în modul „suspend” şi poate semnala controllerul cu un semnal de „trezire”.

Controller

Hub rădăcină

Hub

Hub

Hub Hub

Hub

Hub Hub

Periferic Periferic

PerifericPeriferic

Periferic Periferic

Periferic

Fig. 4.24. Arhitectura reţelei USB


Recommended