Acasă / Recenzii / Descrierea portului COM. Ce este un port COM. Modem și port COM

Descrierea portului COM. Ce este un port COM. Modem și port COM

Recent, metoda serială de transmitere a datelor o înlocuiește pe cea paralelă.
Nu trebuie să căutați departe pentru exemple: apariția magistralelor USB și SATA vorbește de la sine.
Într-adevăr, magistrala paralelă este greu de scalat (cablu mai lung, frecvență de ceas al magistralei mai mare), nu este surprinzător că tehnologiile se îndreaptă către magistralele paralele în spate.

Interfețe seriale

Astăzi, există o mulțime de interfețe de date seriale diferite.
Pe lângă USB și SATA deja menționate, se mai pot aminti cel puțin două standarde RS-232 și MIDI cunoscute (aka GamePort).
Toate sunt unite de același - transmisia în serie a fiecărui bit de informație sau interfața serială.
Astfel de interfețe au o mulțime de avantaje, iar cel mai important dintre ele este un număr mic de fire de conectare și, în consecință, un preț mai mic.

Transfer de date

Comunicarea serială poate fi implementată în două moduri: asincron și sincron.

Transmiterea sincronă a datelor implică sincronizarea funcționării receptorului și emițătorului prin includerea informațiilor de ceas în semnalul transmis sau prin utilizarea unei linii de sincronizare speciale.
Receptorul și transmițătorul trebuie conectate cu un cablu de sincronizare special, care să asigure că dispozitivele funcționează pe aceeași frecvență.

Transmisia asincronă presupune utilizarea de biți speciali care marchează începutul și sfârșitul datelor - biți de start (zero logic) și de oprire (cel logic).
De asemenea, este posibil să se utilizeze un bit de paritate special, care determină un număr par sau impar de biți unici transmisi (în funcție de convenția acceptată).
Pe partea de recepție, acest bit este analizat, iar dacă bitul de paritate nu se potrivește cu numărul de biți unici, atunci pachetul de date este trimis din nou.

Este de remarcat faptul că o astfel de verificare vă permite să detectați o eroare numai dacă un singur bit a fost transmis incorect, dacă mai mulți biți au fost transmis incorect, această verificare devine deja incorectă.
Trimiterea următorului pachet de date poate avea loc în orice moment după trimiterea bitului de oprire și, desigur, trebuie să înceapă cu bitul de pornire.
Nu este clar?

Ei bine, dacă totul Tehnologii computerizate erau simple, atunci orice gospodină ar fi sculptat cu mult timp în urmă noi protocoale în paralel cu găluște...
Să încercăm să privim procesul într-un mod diferit.
Datele sunt transmise în pachete, aproximativ ca și pachetele IP, biții de informații merg împreună cu datele, numărul acestor biți poate varia de la 2 la 3 și jumătate.
Cu jumatate?!
Da, ai auzit bine, cu jumătate!

Bitul de oprire, sau mai degrabă semnalul transmis corespunzător bitului de oprire, poate avea o durată mai mare decât semnalul corespunzător unui bit, dar mai mică decât pentru doi biți.
Deci, un pachet începe întotdeauna cu un bit de început, care este întotdeauna zero, urmat de biți de date, apoi un bit de paritate și apoi un bit de oprire, care este întotdeauna unul.
Apoi, după o perioadă arbitrară de timp, marșul bătăilor asupra Moscovei continuă.

Această metodă de transmisie implică faptul că receptorul și emițătorul trebuie să funcționeze la aceeași viteză (bine, sau aproape la aceeași viteză), altfel receptorul fie nu va avea timp să proceseze biții de date primite, fie să ia bitul vechi pentru unul nou. .
Pentru a evita acest lucru, fiecare bit este strobed, adică este trimis sincron cu un semnal special - un „strobe” generat în interiorul dispozitivului.
Există o serie de viteze specifice pentru dispozitivele asincrone - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 și 11520 biți pe secundă.

Probabil ați auzit că „baud” este folosit ca unitate pentru măsurarea ratei de transfer de date - frecvența de schimbare a stării liniei, iar această valoare va coincide cu rata de transfer de date numai dacă semnalul poate avea una dintre cele două valori. .
Dacă mai mulți biți sunt codificați într-o singură schimbare de semnal (și acesta este cazul mai multor modemuri), rata de transmisie și frecvența de schimbare a liniei vor fi valori complet diferite.

Acum câteva cuvinte despre termenul misterios „pachet de date”.
Sub pachet acest caz se referă la setul de biți transmis între biții de pornire și de oprire.
Numărul lor poate varia de la cinci la opt.
S-ar putea întreba de ce exact cinci până la opt biți?
De ce să nu transferați imediat, să zicem, un kilobyte de date într-un pachet?

Răspunsul este evident: atunci când transmitem pachete de date mici, putem pierde prin trimiterea a trei biți de serviciu cu ele (de la 50 la 30 la sută din date), dar dacă pachetul este corupt în timpul transmisiei, putem recunoaște cu ușurință acest lucru (amintiți-vă despre bit de paritate?) și-l transmite rapid din nou.
Dar într-un kilobyte de date, va fi dificil să detectați o eroare și va fi mult mai dificil să o transmiteți.

Un exemplu de dispozitiv asincron de transfer de date în serie este un port COM al computerului, un modem preferat proiectat de Trussardi și un mouse conectat la același port, pe care, din anumite motive, secretarele cu mintea îngustă încearcă întotdeauna să le introducă în PS / 2.
Toate aceste dispozitive funcționează pe interfața RS-232, sau mai degrabă pe partea sa asincronă, deoarece standardul descrie și transferul de date sincron.

Driver AMD Radeon Software Adrenalin Edition 19.9.2 Opțional

Noul driver opțional AMD Radeon Software Adrenalin Edition 19.9.2 îmbunătățește performanța în Borderlands 3 și adaugă suport pentru Radeon Image Sharpening.

Cumulativ Windows Update 10 1903 KB4515384 (adăugat)

Pe 10 septembrie 2019, Microsoft a lansat o actualizare cumulativă pentru Windows 10 versiunea 1903 - KB4515384 cu o serie de îmbunătățiri de securitate și o remediere pentru o eroare care s-a spart Windows funcționează Caută și a cauzat o utilizare ridicată a procesorului.

Un port COM este cel mai adesea folosit pentru a conecta microcontrolerul la un computer. În acest articol, vom arăta cum să trimiteți comenzi de control de la un computer și să trimiteți date de la un controler.

Pregătirea pentru muncă

Majoritatea microcontrolerelor au mai multe porturi I/O. Protocolul UART este cel mai potrivit pentru comunicarea cu un PC. Este un protocol serial de transfer de date asincron. Pentru a-l converti într-o interfață USB, placa are un convertor USB-RS232 - FT232RL.
Aveți nevoie doar de o placă compatibilă cu Arduino pentru a rula exemplele din acest articol. Folosim . Asigurați-vă că placa dumneavoastră are un LED conectat la pinul 13 și un buton de resetare.

De exemplu, să încărcăm un cod pe placă care afișează un tabel ASCII. ASCII este o codificare pentru reprezentarea cifrelor zecimale, a alfabetului latin și național, a semnelor de punctuație și a caracterelor de control.

simbol int = 33 ; void setup() ( Serial. begin(9600) ; Serial. println(" Tabel ASCII ~ Harta caracterelor " ) ; ) void loop() ( Serial. write(simbol) ; Serial. print(" , dec: " ); Serial. .print(simbol) ; Serial.print(" , hex: " ) ; Serial.print(simbol, HEX) ; Serial.print(" , oct: " ); Serial.print(simbol, OCT) ; Serial.print( " , bin: " ) ; Serial.println(simbol, BIN) ; if (simbol == 126 ) ( în timp ce (adevărat) ( ​​continuare ; ) ) simbol+ + ; )

Variabila simbol stochează codul simbolului. Tabelul începe la 33 și se termină la 126, așa că simbolul este setat inițial la 33.
Pentru a începe funcționarea portului UART, utilizați funcția Serial.begin(). Singurul său parametru este viteza. Viteza trebuie negociată în prealabil pe partea de transmisie și de recepție, deoarece protocolul de transmisie este asincron. În acest exemplu, viteza este de 9600 bps.
Sunt utilizate trei funcții pentru a scrie o valoare într-un port:

  1. Serial.write()– scrie datele în port în formă binară.
  2. Serial.print() pot avea multe valori, dar toate servesc la afișarea informațiilor într-o formă prietenoasă cu oamenii. De exemplu, dacă informațiile specificate ca parametru de transmis sunt incluse între ghilimele, programul terminal le va afișa neschimbat. Dacă doriți să afișați orice valoare în anumit sistem calcul, apoi trebuie să adăugați un cuvânt de serviciu: BIN-binar, OCT - octal, DEC - zecimal, HEX - hexazecimal. De exemplu, Serial.print(25,HEX).
  3. Serial.println() face la fel ca Serial.print(), dar tot traduce șirul după afișarea informațiilor.

Pentru a verifica funcționarea programului, este necesar ca computerul să aibă un program terminal care primește date de la portul COM. LA Arduino IDE deja încorporat. Pentru a-l apela, selectați Tools->Port Monitor din meniu. Fereastra acestui utilitar este foarte simplă:

Acum faceți clic pe butonul de repornire. MK va reporni și va afișa tabelul ASCII:

Acordați atenție acestei părți a codului:

dacă (simbol = = 126 ) ( în timp ce (adevărat) ( ​​continuare ; ) )

Oprește execuția programului. Dacă îl excludeți, tabelul va fi afișat pe o perioadă nedeterminată.
Pentru a consolida cunoștințele dobândite, încercați să scrieți o buclă infinită care vă va trimite numele la portul serial o dată pe secundă. Adăugați numere de pași la rezultat și nu uitați să traduceți linia după nume.

Trimiterea comenzilor de pe PC

Înainte de a face acest lucru, trebuie să vă faceți o idee despre cum funcționează un port COM.
În primul rând, toate schimburile au loc prin intermediul memoriei tampon. Adică, atunci când trimiteți ceva de la un PC la un dispozitiv, datele sunt plasate într-o secțiune specială a memoriei. De îndată ce dispozitivul este gata, citește datele din buffer. Funcția vă permite să verificați starea tamponului serial.avaliable(). Această funcție returnează numărul de octeți din buffer. Pentru a scădea acești octeți, trebuie să utilizați funcția Serial.read(). Să vedem cum funcționează aceste funcții cu un exemplu:

int val = 0 ; void setup() ( Serial. begin(9600) ; ) void loop() ( dacă (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" Am primit: " ) ; Serial. scrie (val) ; Serial.println () ; ) )

După ce codul este încărcat în memoria microcontrolerului, deschideți monitorul portului COM. Tastați un caracter și apăsați Enter. În câmpul de date primite veți vedea: „Am primit:X”, unde în loc de X va fi caracterul pe care l-ai introdus.
Programul se rotește la nesfârșit în bucla principală. În momentul în care un octet este scris în port, funcția Serial.available() ia valoarea 1, adică condiția este îndeplinită Serial.available() > 0. Următoarea funcție Serial.read() citește acest octet, ștergând astfel memoria tampon. După aceea, folosind funcțiile deja cunoscute de dvs., apare rezultatul.
Utilizarea monitorului portului COM încorporat al Arduino IDE are unele limitări. La trimiterea datelor de pe placă la portul COM, ieșirea poate fi organizată într-un format arbitrar. Iar la trimiterea de la PC la placă, transferul de caractere are loc în conformitate cu tabelul ASCII. Aceasta înseamnă că atunci când introduceți, de exemplu, caracterul „1”, binarul „00110001” (adică „49” în zecimal) este trimis prin portul COM.
Să schimbăm puțin codul și să verificăm această declarație:

int val = 0 ; void setup() ( Serial. begin(9600) ; ) void loop() ( dacă (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" Am primit: " ) ; Serial. println(val, BIN) ; ) )

După descărcare, în monitorul portului când trimiteți „1”, veți vedea ca răspuns: „Am primit: 110001”. Puteți schimba formatul de ieșire și puteți vedea ce acceptă placa cu alte caractere.

Controlul dispozitivului prin portul COM

Evident, prin comenzi de la un PC, poți controla orice funcții ale microcontrolerului. Descărcați programul gestionarea muncii LED:

int val = 0 ; void setup() ( Serial. begin(9600) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; if (val= = "H" ) digitalWrite(13 , HIGH); dacă (val= = "L" ) digitalWrite(13 , LOW) ; ) )

Când caracterul „H” este trimis la portul COM, LED-ul de pe a 13-a ieșire se aprinde, iar când „L” este trimis, LED-ul se va stinge.
Dacă, pe baza rezultatelor primirii datelor de la portul COM, doriți ca programul să efectueze diferite acțiuni în bucla principală, puteți verifica condițiile din bucla principală. De exemplu.

Un port COM, sau port serial, este o interfață serială bidirecțională care este concepută pentru a schimba date de octeți. La început, acest port a fost folosit pentru a conecta terminalul, iar apoi pentru modem și mouse. Acum este obișnuit să-l folosești pentru a conecta sursa, precum și pentru a comunica cu procesarea sistemelor de calcul încorporate.

Utilizare

Deci, înainte de a vorbi mai în detaliu despre ce este un port COM, trebuie să ne uităm în trecut pentru a înțelege semnificația acestuia. Cu 15 ani în urmă, a fost folosită o metodă de conectare a dispozitivelor la un computer folosind un conector standard special situat pe panoul din spate. bloc de sistem folosind un cablu serial RS-232 special. Această metodă are multe dezavantaje. Un astfel de cablu, conform standardelor moderne, oferă o rată de transfer de date extrem de scăzută - aproximativ o sută de kilobiți pe secundă. Pe lângă momentul în care s-a făcut conexiunea fizică a conectorilor, a fost necesar să se oprească echipamentul și ei înșiși au fost atașați unul de celălalt cu șuruburi care asigurau fiabilitatea, în timp ce dimensiunile lor diferă în dimensiuni considerabile.

Un pic de istorie

Portul COM de pe computerele din acea vreme era în mod tradițional numerotat cu 1 sau 2, deoarece de obicei nu erau mai mult de două. Pot fi instalate porturi suplimentare dacă este necesar. Când utilizatorul a configurat software, s-a cerut să nu se încurce și să se instaleze corect exact pe cel la care a fost asigurată conexiunea echipamentul necesar. Fiecare port COM necesita setările corecte de viteză, precum și o serie de alți parametri misterioși care erau cunoscuți doar de un cerc restrâns de specialiști. Pentru ca conectarea echipamentului să aibă succes, toți parametrii necesari trebuiau aflați de undeva sau selectați experimental, deoarece în acest caz nu exista o configurație automată. În plus, conexiunea prin portul COM a permis conectarea oricărui software cu echipamente externe arbitrare, chiar și complet incompatibile, ceea ce a provocat un număr mare de erori în timpul procesului de setări.

Modernitatea

Acum conexiunea prin portul COM este complet înlocuită de mai multe metoda modernă, care nu necesită cunoștințe speciale pentru implementare și anume printr-un port USB. Această metodă este lipsită de toate dezavantajele menționate mai devreme. Cu toate acestea, standardele moderne pentru compatibilitatea conectării tuturor tipurilor de echipamente GPS și software foarte eterogene s-au format cu destul de mult timp în urmă în jurul conceptului de porturi COM, care au devenit arhaice în acest moment.

Acest lucru se datorează faptului că inițial aproape orice echipament, inclusiv GPS, era extern, iar conexiunea acestuia la computer se făcea printr-un cablu serial conectat la unul dintre porturile hardware. În timpul procesului de configurare, utilizatorului i sa cerut să selecteze corect numărul portului și viteza de transmitere a datelor prin acesta. În acel moment, a apărut standardul principal pentru transmiterea datelor de la un receptor GPS la un program, care acum se numește NMEA-0183. De fapt, acest standard cere tuturor dezvoltatorilor chiar și a celor mai moderne hardware și software să facă schimb de date prin porturile COM. Și toate acestea în condițiile de calculatoare moderne, precum și pe PDA-uri, standardul USB a fost de multă vreme cel principal. Și încă o caracteristică este că recent receptoarele GPS sunt instalate din ce în ce mai mult direct în carcasa dispozitivului, adică nu există niciun cablu de conectare între acesta și dispozitivul principal.

Porturi COM virtuale

A fost inventată o cale de ieșire, și anume, au fost dezvoltate porturi COM „virtuale”. Se pare că dispozitivul intern al PDA-ului, de exemplu, un receptor GPS, este simulat în software sub forma unui port COM, deși nu este așa din punct de vedere hardware. În același timp, un program care este conceput pentru a interfața printr-un astfel de standard nu are nicio diferență în modul în care este implementat. Aici este permisă prezența unei simulări virtuale, și nu prezența obligatorie a unei implementări hardware. Deci este posibil să se asigure compatibilitatea programelor GPS de stil vechi cu echipamente moderne.

Modificări efectuate

În același timp, managementul portului COM nu s-a schimbat semnificativ. Utilizatorul, în vechea manieră, trebuie să facă setări complexe aproape manual. Cu toate acestea, un port COM modern nu mai este acel dispozitiv voluminos situat pe panoul din spate al unității de sistem, ci un dispozitiv complet diferit. Și aici ideea este că, din punct de vedere software, toate implementările lor arată fără chip, adică nu există nicio diferență între porturile virtuale și cele reale. Pentru software, porturile diferă doar prin numerele atribuite lor de către producătorii de PDA în mod complet aleatoriu. De exemplu, receptorul ASUS este de obicei situat pe COM5, în timp ce PocketLOOX 560 arată receptorul pe COM8. Se pare că un program care dorește să primească date de la un receptor GPS nu are inițial nicio informație sigură despre numărul condiționat, sub care apare portul, care este prescris corespunzător pentru receptorul de pe acest PDA.

Cum funcționează totul?

Având în vedere că printre toate porturile COM disponibile, puteți căutare automată potrivit, procedura pentru un astfel de sondaj este destul de nesigură și destul de greoaie. Acest lucru se datorează faptului că dispozitivele afișate în sistem ca porturi COM pot fi destul de diverse și nu au nicio legătură cu GPS-ul, ele pot răspunde complet imprevizibil la un astfel de sondaj. De exemplu, pe un PDA există porturi asociate unui modem celular intern, cu USB, cu port infraroșu, precum și cu alte elemente. Accesarea acestora printr-un program conceput să funcționeze cu un anumit dispozitiv poate duce la o reacție complet imprevizibilă, precum și la diverse disfuncționalități, care deseori provoacă înghețarea PDA-ului. De aceea, o încercare de deschidere a unui port COM poate duce la situații neașteptate, până la pornirea Bluetooth sau și pot fi mai multe cazuri de neînțeles.

Operarea portului COM

Pentru porturile COM, un cip transceiver universal asincron este folosit ca bază. Acest microcircuit există în mai multe varietăți: Intel 16550A, 16550, 16450, 8250. Pentru fiecare port COM, conține registre de recepție și transmițător de date, precum și o serie de registre de control care pot fi accesate prin intermediul programelor BIOS, Windows și MS DOS. La ultimele versiuni microcipul are un set de buffer-uri pentru stocarea temporară a datelor transmise și primite. Datorită acestei posibilități, este posibil să se întrerupă mai rar activitatea procesorului central, precum și să se coordoneze viteza de transmitere a datelor.

Setări principale

Dispozitivul cu port COM are următoarele caracteristici:

Adresa de bază a portului pentru intrarea și ieșirea informațiilor;

Numere de întrerupere hardware;

Dimensiunea unui bloc de informații;

Viteza cu care sunt transmise datele;

Modul de detectare a onestității;

Metoda de management al fluxului de informații;

Numărul de biți de oprire.

Cum se verifică portul COM al computerului? La ce să fii atent?

După cum am menționat mai devreme, acest tip de port este o interfață bidirecțională pentru un mod serial la nivel de biți. O caracteristică distinctivă în comparație cu portul paralel aici este transferul de date bit cu bit. Anatomia unui port COM este de așa natură încât nu este singurul de pe un computer care utilizează o metodă de transfer de date în serie. De exemplu, interfețele precum Ethernet sau USB folosesc și ele un principiu similar, dar istoricul s-a întâmplat ca se obișnuiește să apeleze portul serial standard RS232.

Foarte des este necesar să deschideți un port COM pentru repararea și diagnosticarea unui computer, în timp ce acesta trebuie, de asemenea, verificat pentru funcționare. Este foarte ușor să ardeți un element. Cel mai adesea acest lucru se întâmplă din vina utilizatorului, care deconectează dispozitivul incorect, trăgând conectorul în timp ce interfața este conectată. Cel mai simplu mod de a verifica dacă interfața funcționează este să conectați un mouse la ea. Cu toate acestea, este atât de dificil să obțineți o imagine completă, deoarece manipulatorul folosește doar jumătate din liniile de semnal din cele opt disponibile. Doar utilizarea unui mufă special și a unui program va permite o verificare a performanței. În aceste scopuri, există deja un software special dezvoltat.

Porturile seriale sunt iubite de dezvoltatori pentru ușurința lor de întreținere și utilizare.

Și, bineînțeles, scrierea în consola programului terminal este bine, dar vreau propria mea aplicație, care, apăsând o tastă de pe ecran, efectuează acțiunile de care aveți nevoie;)

În acest articol voi descrie cum să lucrezi cu port comîn C++.

Soluția este simplă, dar din anumite motive nu a fost găsit imediat un exemplu de lucru. Pentru sim il salvez aici.

Desigur, puteți folosi soluții multiplatforme precum QSerial - o bibliotecă în Qt, probabil o voi face, dar în viitor. Acum vorbim despre Windows „pur”. C++. Vom scrie în Visual Studio. Am 2010, deși asta nu joacă niciun rol...

Creați un nou proiect de consolă Win32.

Includeți fișierele antet:

#include #include folosind namespace std;

Declarăm un handler de port com:

MÂNER hSerial;

O fac la nivel global, așa că nu trebuie să-mi fac griji cu privire la indicatori atunci când îl transmit la funcții.

int _tmain(int argc, _TCHAR* argv) (

Nu suport stilul de programare Windows. Au chemat totul în felul lor și stau bucurându-se...

Acum magia declarării unui șir cu numele portului. Problema este că nu este capabil să se transforme în sine.

LPCTSTR sPortName = L"COM1";

Lucrul cu porturi seriale în Windows funcționează ca și cu un fișier. Deschiderea primei port com pentru scriere/citire:

HSerial = ::CreateFile(sPortName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

Verificarea functionalitatii:

If(hSerial==INVALID_HANDLE_VALUE) ( if(GetLastError()==ERROR_FILE_NOT_FOUND) (cout<< "serial port does not exist.\n"; } cout << "some other error occurred.\n"; }

Acum trebuie să configurați parametrii de conexiune:

DCB dcbSerialParams = (0); dcbSerialParams.DCBlength=sizeof(dcbSerialParams); dacă (!GetCommState(hSerial, &dcbSerialParams)) ( cout<< "getting state error\n"; } dcbSerialParams.BaudRate=CBR_9600; dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT; dcbSerialParams.Parity=NOPARITY; if(!SetCommState(hSerial, &dcbSerialParams)) { cout << "error setting serial port state\n"; }

Pe msdn, se recomandă să obțineți mai întâi parametrii și apoi să îi schimbați. Încă învățăm, așa că facem cum ne-am cerut.

Acum să declarăm șirul pe care îl vom transmite și variabilele necesare pentru aceasta:

Date Char = "Salut din C++"; // șir pentru a trece DWORD dwSize = sizeof(data); // dimensiunea acestui șir DWORD dwBytesWritten; // aici va fi numărul de octeți transferați efectiv

Trimiterea unui șir. Permiteți-mi să vă reamintesc că exemplul este cel mai simplu, așa că nu fac verificări speciale:

BOOL iRet = WriteFile(hSerial,data,dwSize,&dwBytesWritten,NULL);

De asemenea, am decis să afișez dimensiunea șirului și numărul de octeți trimiși pentru a controla:

Cout<< dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;

La sfârșitul programului, facem o buclă infinită de citire a datelor:

While(1) ( ReadCOM(); ) returnează 0; )

Acum funcția de citire:

Void ReadCOM() ( DWORD iSize; char sReceivedChar; while (true) ( ​​​​ReadFile(hSerial, &sReceivedChar, 1, &iSize, 0); // obțineți 1 octet dacă (iSize > 0) // print cout dacă se primește ceva<< sReceivedChar; } }

Acesta este de fapt întregul exemplu.

În calcul, un port serial este o interfață de comunicație serială prin care informațiile sunt transmise sau scoase la un moment dat. Pentru cea mai mare parte din istoria computerelor personale, datele au fost transferate prin porturi seriale către dispozitive precum modemuri, terminale și diverse periferice.

În timp ce interfețele precum Ethernet, FireWire și USB trimit toate datele ca flux serial, termenul „port serial” identifică în general hardware-ul mai mult sau mai puțin compatibil cu standardul RS-232, conceput pentru a interfața cu un modem sau un dispozitiv de comunicație similar.

Calculatoarele moderne fără porturi seriale pot necesita convertoare seriale pentru a asigura compatibilitatea cu dispozitivele seriale RS-232. Porturile seriale sunt încă folosite în aplicații precum sistemele de automatizare industrială, instrumentele științifice, sistemele de puncte de vânzare și unele produse industriale și de consum. Calculatoarele server pot folosi portul serial ca o consolă de management sau de diagnosticare. Echipamentele de rețea (cum ar fi routerele și comutatoarele) folosesc adesea consola serială pentru configurare. Porturile seriale continuă să fie utilizate în aceste zone deoarece sunt simple, ieftine, iar funcționalitatea consolei lor este foarte standardizată și răspândită.

Pinout portul COM (RS232)

Există 2 tipuri de port com, un conector vechi cu 25 de pini și un conector mai nou cu 9 pini care l-a înlocuit.

Mai jos este o diagramă a unui conector RS232 standard cu 9 pini cu conectori, acest tip de conector fiind numit și conector DB9.

  1. Detectarea purtătorului (DCD).
  2. Primire date (RXD).
  3. Transmiterea datelor (TXD).
  4. Receiver Ready to Exchange (DTR).
  5. Pământ (GND).
  6. Sursă gata de schimb (DSR).
  7. Solicitare de trimitere (RTS).
  8. Gata de transfer (CTS).
  9. Semnal de apel (RI).

Informații despre pinul adaptorului pentru portul serial RJ-45 la DB-9 pentru comutator

Portul de consolă este o interfață serială RS-232 care utilizează un conector RJ-45 pentru a se conecta la un dispozitiv de control, cum ar fi un PC sau un laptop. Dacă laptopul sau computerul dvs. nu are un pin conector DB-9 și doriți să vă conectați laptopul sau computerul la comutator, utilizați o combinație de adaptor RJ-45 și DB-9.

DB-9RJ-45
Obținerea datelor2 3
Transfer de date3 6
Disponibilitate de a face schimb4 7
Pământ5 5
Pământ5 4
Disponibilitate de a face schimb6 2
Cerere de transfer7 8
Transfer gata8 1

Culorile firelor:

1 Negru
2 Maro
3 Roșu
4 Portocaliu
5 Galben
6 Verde
7 Albastru
8 gri (sau alb)