Documente Academic
Documente Profesional
Documente Cultură
Cap4 Interfete Seriale PDF
Cap4 Interfete Seriale PDF
4 Interfeţe seriale
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.
+12V 0
+3V
0V
-3V
-12V 1
-25V
inactiv 1 0 0 0 0 0 1
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.
43
Teletransmisii de date Cap. 4 Interfeţe seriale
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
44
Teletransmisii de date Cap. 4 Interfeţe seriale
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ă
46
Teletransmisii de date Cap. 4 Interfeţe seriale
47
Teletransmisii de date Cap. 4 Interfeţe seriale
Q0÷7
LD Registru Memorare
D0÷7
LD Registru
TxD RxD Registru Combinat Baud
Baud Combinat SO SI Clk
Clk D0÷7 Rate
Rate D0÷7
a) b)
Fig. 4.4. a) conversia paralel-serie; b) conversia serie-paralel
RxC
TxC
TxE
RxD
TxD
Tampon Tampon
Control Control
Transmisie Recepţie
Transmisie Recepţie
Date Date
Tampon Logică de
Control
Magistrală de Control
Modem
Date Scriere / Citire
Reset
DTR
DSR
CTS
RTS
D0÷7
C/D
WR
Clk
RD
CS
50
Teletransmisii de date Cap. 4 Interfeţe seriale
C/D=0 Date
C/D=1 Instrucţiune de comandă
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
D7 D6 D5 D4 D3 D2 D1 D0
S2 S1 EP PEN L2 L1 B2 B1
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
Tipul parităţii
1 0
pară impară
Biţi de stop
0 1 0 1
0 0 1 1
fără 1 bit 1½ biţi 2 biţi
53
Teletransmisii de date Cap. 4 Interfeţe seriale
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
Tipul parităţii
1 0
pară impară
Caractere de SYNC
1 0
1 caracter SYNC 2 caracter SYNC
D7 D6 D5 D4 D3 D2 D1 D0
EH IR RTS ER SBRK RxE DTR TxEN Validarea transmisiei
1 0
validată invalidată
DTR =0 DTR =1
Validarea recepţiei
1 0
validată invalidată
Ştergere erori
1 0
ştergere fanioane erori -
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 -
55
Teletransmisii de date Cap. 4 Interfeţe seriale
Eroarea de paritate
1 0
s-a detectat eroare nu s-a detectat
de paritate eroare de paritate
Eroare de sepraînscriere
1 0
CPU nu a citit toate -
caracterele recepţionate
Eroare de cadru
1 0
nu s-a detectat un bit de -
stop valid
TxD
Adrese
RxD
Date Terminal
I-8251
RxC sincron
Control
TxC
SYNDET
TxD
Adrese
RxD Interfaţă
Date DSR Modem
cu linia
asincron
Control DTR telefonică
I-8251 CTS
RTS
RxC
TxC I-8253
TxD
Adrese
RxD Interfaţă
Date DSR cu linia
Control DTR telefonică
I-8251 CTS Modem
sincron
RTS
RxC
TxC
SYNDET
59
Teletransmisii de date Cap. 4 Interfeţe seriale
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
60
Teletransmisii de date Cap. 4 Interfeţe seriale
D 100Ω
I
3,25 mA
-10 -3 V
3 10
-3,25 mA
RS-423 RS-422
25
RS-232
E Rt R
62
Teletransmisii de date Cap. 4 Interfeţe seriale
E Rt Rt R
R R E
E
63
Teletransmisii de date Cap. 4 Interfeţe seriale
A A
E B
Rt Rt B
R
T/R T/R
A A
R B B E
100Ω A B B A A B A B
100Ω
100Ω 100Ω
R R 100Ω 100Ω
E E
100Ω 100Ω
T/R T/R
E B
Rt Rt B
R
T/E T/E
A A
R B
Rt Rt B
E
100Ω
MASTER SLAVE
A B B A A B A B
100Ω
R R 100Ω
E E
100Ω 100Ω
T/E T/E
SLAVE SLAVE
Fig. 4.20. Aplicaţie RS-485 multipunct-multipunct pe 4 fire
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
65
Teletransmisii de date Cap. 4 Interfeţe seriale
Convertor
+6 Convertor TTL – RS-485
RS-232 – TTL integrat
VSD 0
integrat
-6 A
TxD TxDTTL VA
+6
VSD R E B
VRTS Tx VB
-6 A
+5
RxD Rx
TxDTTL E R B
0
+3
VA RTS GRD
0
+3
VB VRTS R
0
emiţătorul GRD
RS-485
dezactivat
Fig. 4.21. Schema electrică şi forme de undă pentru convertorul RS-232 – RS-485
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,
66
Teletransmisii de date Cap. 4 Interfeţe seriale
Convertor Convertor
+6 RS-232 – TTL TTL – RS-485
VSD 0 integrat integrat
A
-6 TxD TxDTTL VA
+5 VSD R E B
VSDTTL Tx VB
0
A
RxD Rx
+5 E R B
ENABLE 1
ENABLE
0
+3 GRD
VA
0 R
+3
Circuit
VB
0 retriggerabil
GRD C
emiţătorul RS-485
dezactivat 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
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 1.5 6 V
în gol -1.5 -6 V
Tensiunea de ieţire a emiţătorului Rt=54Ω 1.5 5 V
în sarcină -1.5 -5 V
Rezistenţa de ieşire a emiţătorului A la B 100 Ω
Curentul de scurtcircuit al ieşirea la ±250 mA
emiţătorului +12 sau -7
Timpul de creştere al ieşirii Rt=54Ω 30 % din durata
emiţătorului Ct=50pF de bit
Tensiunea de mod comun a Rt=54Ω -1 +3 V
emiţătorului
Sensibilitatea receptorului VCM≤7V ±200 mV
67
Teletransmisii de date Cap. 4 Interfeţe seriale
a) b)
(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.
69
Teletransmisii de date Cap. 4 Interfeţe seriale
Controller
Hub rădăcină
Hub
Hub Hub
Periferic