Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
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
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.
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
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
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ă
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
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
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
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ă
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
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.
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.
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.
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ă
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ă
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ă
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
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
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
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
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
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
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ă
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
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
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
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
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.
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