Ce este protocolul de comunicație serială RS232?
RS-232 este un standard care a fost introdus la începutul anilor ’60 pentru transmisia serială de date și este încă folosit pe scară largă, în principal deoarece este multifuncțional, ușor de operat și întreținut, accesibil și larg susținut. Acesta definește nu doar caracteristicile semnalului electric, precum rata de transmisie a semnalului, nivelurile de tensiune, lungimea cablului, temporizarea și comportamentul la scurtcircuit, ci și multe alte aspecte, inclusiv caracteristicile mecanice ale interfeței, conectorii și configurațiile pinilor.
Conform standardului RS-232, toate datele sunt transmise într-o serie temporală de biți. Pentru PC, cea mai comună configurație este o legătură asincronă care trimite pachete de 7 biți sau 8 biți. Totuși, acest standard acceptă și transmisia sincronă.
În ciuda tuturor avantajelor sale, RS-232 are unele limitări serioase în ceea ce privește raza de acțiune și performanța debitului de date, astfel că principalul său domeniu de aplicare este echipamentele industriale, rețelistica și echipamentele de laborator.
Specificații principale pentru RS-232
Mod de operare: single-ended
Lungime max. cablu: 15,24 metri (50 ft)
Debit max. de date: 20 kbps
Tensiune max. de ieșire a driverului: +/-25V
Rată max. de variație: 30V/uS
Curent max. al driverului în stare High Z: +/-6mA @ +/-2v (oprit)
Impedanța de sarcină a driverului: 3000-7000 Ohmi
Nivelul semnalului de ieșire al driverului: +/-5V până la +/-15V (în sarcină) sau +/-25V (fără sarcină)
Rezistența de intrare a receptorului: 3000-7000 Ohmi
Intervalul tensiunii de intrare a receptorului: +/-15V
Sensibilitatea de intrare a receptorului: +/-3V
Numărul total de drivere și receptoare pe o singură linie: 1 driver și 1 receptor
Limitări standard RS232
Care sunt problemele cunoscute ale portului serial RS-232? Utilizarea portului COM standard vine cu o serie de limitări cu care trebuie să te confrunți. Iată limitările evidente ale standardului:
- Consumul crescut de energie din cauza variației mari de tensiune este o complicație majoră pentru proiectarea sursei de alimentare.
- Multe dispozitive nu folosesc liniile de handshake pentru controlul fluxului, făcând astfel RS-232 nesigur.
- Deși problema conexiunii multi-drop a fost abordată prin alternative mai fiabile, aceasta tot nu compensează limitările de compatibilitate și viteză ale portului RS232.
- Necesitatea unui modem nul sau a unui cablu crossover ori de câte ori se conectează un periferic la un computer.
- RS-232 nu rezolvă problema prezentată de semnalizarea single-ended.
Conectori RS-232
Un dispozitiv RS-232 este fie Echipament de terminare a circuitului (DCE), fie Echipament terminal de date (DTE), în funcție de firele utilizate pentru a trimite și a primi fiecare semnal.
În conformitate cu standardul RS-232, DCE este destinat conectorilor mamă, iar DTE este pentru conectorii tată. Totuși, există dispozitive cu tot felul de combinații de tip/gen de conector și definiții de pini. De exemplu, un terminal care are conectori mamă integrați pentru a fi utilizat cu un cablu care are câte un conector tată la fiecare capăt respectă pe deplin standardul RS-232.
Până la revizia C, standardul recomandă utilizarea conectorului D-subminiatură cu 25 de pini, deși este obligatoriu doar începând cu revizia D. Acest lucru se datorează faptului că marea majoritate a dispozitivelor nu au nevoie cu adevărat de toate cele 20 de semnale specificate de standard, iar conexiunile RS-232 cu 9 pini sunt mult mai ieftine și ocupă foarte puțin spațiu. Mai compacte și mai puțin costisitoare. Acest conector RS-232 cu 9 pini este utilizat pe scară largă pentru calculatoare personale și dispozitive similare.
Conectori DB25
Merită menționat că nu fiecare conector D-sub cu 25 de pini are o interfață conformă RS-232-C. Unii producători de PC-uri optează pentru semnale și tensiuni neconforme pe anumiți pini ai pinout-ului portului COM al PC-ului. Pe PC-ul IBM original, de exemplu, conectorul D-sub mamă a fost folosit pentru portul paralel de imprimantă Centronics.
Configurație pini serială cu 25 de pini:
Pin 1: GND − Masă de ecranare.
Pin 2: TxD → Date transmise. Transportă date de la Terminalul de Date la Setul de Date.
Pin 3: RxD ← Date recepționate. Transportă date de la Setul de Date la Terminalul de Date.
Pin 4: RTS → Cerere de transmitere. Terminalul de Date semnalizează Setului de Date să se pregătească pentru transmiterea datelor.
Pin 5: CTS ← Liber pentru transmitere. Setul de Date semnalizează Terminalului de Date că este pregătit pentru recepționarea datelor.
Pin 6: DSR ← Set de Date Pregătit. DCE este pregătit să recepționeze și să transmită date.
Pin 7: GND − Masă de sistem. Referință de tensiune zero.
Pin 8: CD ← Detectare purtătoare. Setul de Date semnalizează Terminalului de Date despre purtătoarea detectată a unui alt dispozitiv.
Pin 9: Rezervat
Pin 10: Rezervat
Pin 11: STF → Selectare canal de transmitere.
Pin 12: S.CD ← Detectare purtătoare secundară.
Pin 13: S.CTS ← Liber pentru transmitere secundar.
Pin 14: S.TXD → Date transmise secundare.
Pin 15: TCK ← Temporizarea elementelor de semnal de transmisie.
Pin 16: S.RXD ← Date recepționate secundare.
Pin 17: RCK ← Temporizarea elementelor de semnal ale receptorului.
Pin 18: LL → Control buclă locală.
Pin 19: S.RTS → Cerere de transmitere secundară
Pin 20: DTR → Control buclă la distanță.
Pin 22: RI ← Indicator de apel. Setul de Date semnalizează Terminalului de Date o condiție de apel detectată.
Pin 23: DSR → Selector rată de semnal de date.
Pin 24: XCK → Temporizarea elementelor de semnal de transmisie.
Pin 25: TI ← Indicator de test.
În timpul comunicării asincrone, atât RTS, cât și CTS sunt active pe toată durata sesiunii. Totuși, dacă DTE este conectat la o linie multipunct, datele sunt transmise de câte o stație pe rând (din cauza partajării perechii telefonice de retur), astfel încât singura utilizare pentru RTS este de a porni și opri purtătoarea modemului. O stație ridică RTS când este pregătită să transmită. Modemul pornește purtătoarea, așteaptă până când aceasta se stabilizează (în mod normal durează câteva milisecunde) și ridică CTS. Cât timp CTS este activ, DTE transmite. Odată ce transmisia s-a încheiat, stația coboară RTS, iar apoi modemul coboară atât CTS, cât și purtătoarea.
Toate semnalele de ceas de pe pinii 15, 17 și 24 ai cablului serial din pinout-ul portului COM sunt doar pentru comunicații sincrone. Ceasul este extras din fluxul de date de către DSU sau modem, ori DSU îl extrage și îl trimite către DTE pentru a furniza un semnal de ceas stabil. Este important de subliniat că semnalele de ceas recepționate și transmise nu trebuie să fie identice și pot avea rate de baud diferite.
Configurație pini RS-232 cu 9 pini
Așadar, iată o versiune simplificată a configurației pinilor conexiunii seriale utilizate pe calculatoarele personale: configurația RS-232 cu 9 pini.
Pin 1: DCD ← Detectare purtător de date
Pin 2: RxD ← Recepție date
Pin 3: TxD → Transmitere date
Pin 4: DTR → Terminal de date pregătit
Pin 5: 0V/COM − 0V sau masă de sistem
Pin 6: DSR ← Set de date pregătit
Pin 7: RTS → Cerere de trimitere
Pin 8: CTS ← Liber pentru trimitere
Pin 9: RI ← Indicator de apel
Semnale RS-232
Nivelurile de tensiune care reprezintă semnalele pinilor portului serial RS232 în raport cu un comun al sistemului (masă de alimentare/logică). Nivelul semnalului în starea activă (SPACE) este pozitiv, iar nivelul semnalului în starea de repaus (MARK) este negativ în raport cu comunul. Un protocol de comunicații trebuie să fie specificat de RS-232. În plus, RS-232 are multiple linii de handshake pentru utilizare cu modemuri (în majoritatea cazurilor).
Interfața RS-232 presupune că atât DTE, cât și DCE au magistrale electrice similare, cu mase identice. Evident, această presupunere poate fi complet greșită când vine vorba de liniile lungi dintre DTE și DCE.
Tensiunea maximă în circuit deschis specificată de standardul RS232 este de 25 V, dar în mod normal nivelurile de semnal sunt de 5 V, 10 V, 12 V și 15 V.
Conform standardului RS-232, toate datele sunt bipolare. Pentru majoritatea echipamentelor, o condiție ON sau stare 0 (SPACE) este indicată de o tensiune de la +3 V la +12 V, iar o condiție OFF sau stare 1 (MARK) este indicată de o tensiune de la -3 V la -12 V. Totuși, unele dispozitive nu recunosc niciun nivel negativ și 0 V este suficient pentru starea OFF. Iar uneori tensiuni mai mici pot fi suficiente pentru a obține starea ON. Astfel, este posibil să se reducă semnificativ intervalul total pentru transmisia/recepția RS-232.
Tensiunea normală pentru semnalul de ieșire este de la +12 V la -12 V. De asemenea, există o așa-numită „zonă moartă” în intervalul de la +3 V la -3 V, destinată absorbției zgomotului de pe linie. În alte configurații de pini ale porturilor seriale similare cu RS-232 acest interval poate fi diferit (de ex., definiția V.10 are o zonă moartă de la +0.3 V la -0.3 V). Foarte mulți receptori RS-232 pot detecta cu ușurință diferențe de 1 V, sau chiar mai mici.
Specificațiile cablurilor RS-232
Nu există limite ale lungimii cablului definite direct de standardul RS-232, astfel că principalul factor determinant este capacitanța maximă tolerată de un circuit de acționare conform. Ca regulă generală, lungimea critică va fi de 15 m (sau aproximativ 300 m, cu condiția să fi fost utilizate doar cabluri cu capacitanță redusă). Sincer vorbind, pentru distanțe mai mari, standardul RS-232 nu este cea mai bună opțiune pentru transferul de date de mare viteză pe distanțe lungi.
Având în vedere că nu toți producătorii de dispozitive respectă standardul până la capăt, este o practică bună să studiezi documentația și să folosești o cutie de breakout pentru a testa fiecare conexiune nouă. În unele cazuri, doar metoda încercare și eroare poate ajuta la găsirea cablului potrivit pentru a conecta fiecare pereche de dispozitive.
În conformitate cu standardul RS-232, un dispozitiv DCE trebuie conectat la un DTE printr-un cablu care are numere de pini identice în fiecare conector (cunoscut ca „cablu drept”). Orice nepotriviri de gen ale cablului/conectorului pot fi remediate ușor cu adaptoare de schimbare a genului. De asemenea, sunt utilizate frecvent cabluri cu un conector D-sub cu 25 de pini la un capăt și un conector RS-232 cu 9 pini la celălalt. Orice echipament cu conectori 8P8C este de obicei furnizat cu un cablu care are un DB-9 sau un DB-25. Unele au chiar conectori interschimbabili pentru flexibilitate suplimentară.
Dacă nu este nevoie să exploatezi RS-232 la capacitate maximă, poți folosi o conexiune minimă cu 3 fire: transmitere, recepție și masă. Pentru un flux de date unidirecțional, există o opțiune cu 2 fire: date și masă. Iar pentru transmisie de date bidirecțională controlată hardware, cea mai bună alternativă este o versiune cu 5 fire, care este aceeași ca varianta cu 3 fire, dar cu liniile RTS și CTS adăugate.
Diagramă flux de date RS-232
Conform standardului RS-232, datele pot fi transmise în multe variații. Cea mai comună, însă, este trimiterea de pachete care includ un cuvânt de 7-8 biți și biți de start, stop și paritate. După cum puteți vedea în diagrama de mai jos, mai întâi vine bitul de start (activ pe nivel scăzut, +3 V la +15 V), apoi biții de date, urmați de bitul de paritate (dacă este cerut de protocol) și, în final, bitul de stop (folosit pentru a aduce logica pe nivel înalt, -3 V la -15 V).
Relația dintre RS232 și alte standarde
Porturile conforme RS-232 s-ar putea să nu funcționeze neapărat cu alte standarde de semnalizare serială, precum RS-422, RS-423, RS-449, RS-422, 423, RS-485 și așa mai departe. Pentru receptoare GPS și sonare care folosesc un nivel TTL apropiat de +5 și 0 volți, nivelul de marcaj se deplasează într-o zonă nedefinită a standardului. Veți avea nevoie de un convertor de nivel pentru a utiliza standardul RS-232 într-un astfel de mediu.
Cum se raportează:
- RS-422 are o viteză similară cu RS-232, dar diferă la nivel de semnalizare
- Viteza RS-423 este aceeași, fără o semnalizare echilibrată
- Rs-449 scos din uz
MIL-STD-188 este similar cu RS-232, dar are un control mult mai bun al timpului de creștere, cu o impedanță mai bună. Vă gândiți să renunțați la dispozitivul dvs. RS-232? Nu atât de repede! După cum puteți vedea, acest protocol serial continuă să contrazică toate afirmațiile că a fost înlocuit complet de USB. Deși sistemele moderne de comunicații necesită un sistem mai sofisticat, precum USB, vom continua să folosim porturile seriale standard.
Aplicațiile terțe au reușit să îmbunătățească modul în care lucrăm cu portul serial RS-232. Un exemplu este Conectorul RS232 către Ethernet dezvoltat de Electronic Team. Puteți găsi scenarii interesante de utilizare în Ghidul utilizatorului.
Cazuri de utilizare moderne ale portului serial
Porturile seriale poate că nu sunt spectaculoase, dar rămân una dintre cele mai fiabile și utilizate pe scară largă metode de comunicare în electronică și IT.
Indiferent dacă lucrezi cu sisteme industriale, dispozitive încorporate sau hardware de rețea, înțelegerea pinout-urilor porturilor seriale este încă o abilitate valoroasă.
Porturile seriale au evoluat dincolo de PC-urile vechi.
1. Comunicare USB-la-Serial
Adaptoarele permit laptopurilor moderne să se conecteze cu ușurință la dispozitive seriale.
2. Porturi seriale virtuale
Virtual Serial Port Driver poate emula porturi COM pentru testare și comunicare la distanță.
- Util în IoT și în sisteme conectate la cloud
- Permite partajarea porturilor prin rețele
3. Dezvoltare de sisteme încorporate
Serial este în continuare interfața principală de depanare pentru:
- Microcontrolere
- Dispozitive IoT
- Dezvoltarea firmware-ului
4. Configurarea dispozitivului de rețea
Multe routere și switch-uri enterprise se bazează încă pe accesul la consola serială.
Întrebări frecvente
RS (standard recomandat) a fost dezvoltat de Electronic Industries Association încă din anii ’60 pentru a facilita comunicarea între un modem și terminalele de computer.
Majoritatea laboratoarelor de automatizări industriale și de topografie continuă să utilizeze tehnologia portului serial, în ciuda limitărilor sale. Reintroducerea conectorului DB-9M pe computerul personal Tecra de către Toshiba dovedește că aceste standarde sunt aici pentru a rămâne, cel puțin deocamdată. În ciuda diferențelor lor, atât standardele USB, cât și RS-232 acceptă majoritatea programelor software în principalele sisteme de operare.