Port serial. Porturile computerului și scopul lor

Î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.

Deși interfețele precum Ethernet, FireWire și USB trimit toate datele ca flux serial, termenul „port serial” identifică de obicei 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 sunt încă folosite î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 porturi com, vechiul conector cu 25 de pini și cel mai nou conector 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. Transfer de date (TXD).
  4. Disponibilitate pentru schimb pe partea receptorului (DTR).
  5. Pământ (GND).
  6. Disponibilitate pentru schimbul sursei (DSR).
  7. Solicitare de transfer (RTS).
  8. Gata de transmitere (CTS).
  9. Semnal de apel (RI).

RJ-45 la DB-9 Informații de conectare a adaptorului de port serial 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 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
Primirea datelor2 3
Transfer de date3 6
Disponibilitatea de a face schimb4 7
Pământ5 5
Pământ5 4
Disponibilitatea de a face schimb6 2
Cerere de transfer7 8
Gata de transfer8 1

Culorile firelor:

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

Salutări, prieteni. Continuăm să studiem unitatea de sistem. Astăzi voi vorbi despre porturile de computer. Ce este? Odată cu dezvoltarea rapidă a tehnologiilor Internet, conceptul de „port” sau „socket” este familiar pentru mulți. Aceasta este o altă ramură și nu vom vorbi despre asta astăzi. Subiectul acestui articol conține informații despre conectorii (sau porturile) pur „duri”, „adevărați”, care sunt proiectați pentru a conecta diferite dispozitive la unitatea de sistem.

Hardware-ul se îmbunătățește și cu fiecare generație descoperim noi tipuri de conectori (sau porturi) pe unitățile de sistem achiziționate. La ele sunt conectate diverse așa-numite dispozitive periferice. Unitate de sistem + monitor = computer. Tot ceea ce este conectat la ele (imprimante, scanere, programatoare, plăci video, monitoare și așa mai departe) este un periferic.

Există multe porturi pe computer. Sunt amplasate pe placa de bază a unității de sistem și sunt conectori (majoritatea sunt pe spate). Unii dintre conectori sunt afișați și pe panoul frontal și sunt, de asemenea, conectați la placa de bază.

De asemenea, puteți instala dispozitive suplimentare pe el prin sloturi speciale de expansiune. Astfel de dispozitive includ plăci video discrete, plăci de rețea, adaptoare Wi-Fi, hub-uri USB, cititoare de carduri, încuietori electronice, plăci video și multe altele.

Prezența sloturilor de expansiune vă permite să asamblați independent un computer ca un set de construcție, pe baza preferințelor dvs., fără a petrece o zi în plus. Pentru că dezvoltatorii au standardizat de mult echipamentele pe care le produc. Dacă este necesar, îl puteți actualiza. Acesta este principalul motiv pentru care computerele compatibile cu IBM-PC (cum este numită această platformă) au eliminat odată Apple Macintosh de pe piață.

Unitățile lor de sistem au fost inițial neseparabile, iar echipamentul nu era înlocuibil. Este imposibil să actualizați un astfel de dispozitiv, iar mentenabilitatea unui astfel de dispozitiv este redusă.

O scurtă listă de porturi pentru computer

Trebuie să fiți capabil să distingeți vizual conectorii unul de altul. Producătorul nu indică întotdeauna numele lor. Deoarece conectorii sunt grupați pe panoul din spate al unității de sistem, vom începe de acolo. Toate porturile au un nume în limba engleză, nu puteți face nimic în acest sens. Pe scurt, acestea pot fi împărțite:

  1. porturi seriale;
  2. Port paralel;
  3. Porturi pentru computer și mouse;
  4. porturi USB;
  5. porturi SCSI;
  6. Porturi video;
  7. Conectori pentru cabluri de rețea;
  8. Conectori audio;
  9. Cititoare de carduri;

Unele dintre aceste soiuri au căzut deja în uitare și nu mai pot fi găsite pe plăcile de bază moderne. Alte soiuri, dimpotrivă, își extind funcționalitatea și există plăci de bază pentru gurmanzi - iubitorii de audio sau video de bună calitate.


Astfel de plăci pot accepta și formate audio sau video de la producători terți (Sony, Philips), iar apoi puteți găsi un conector corespunzător pe un astfel de computer. Porturile audio și video se laudă astăzi cu o varietate specială.

Porturi de computer pentru conectarea dispozitivelor periferice

Port serial- azi este deja un lucru învechit din punct de vedere moral. Dar pentru specialiștii care repară dispozitive electronice, acestea sunt valoroase. Inițial, acest port a fost folosit pentru a conecta un modem. Ratele tipice de transfer de date variază de la 110 la 115.200 de biți pe secundă. De obicei erau două cu conectori DB 9 tastați „tată”:

Viteza este suficientă pentru ca programatorul să flash un microcontroler sau un telefon mobil. Sau pentru a face schimb de date cu o sursă de alimentare neîntreruptibilă. Aceste porturi sunt numite COM1Și COM2.

Port paralel- este familiar pentru mulți, deoarece a fost destinat în principal pentru conectarea unei imprimante. De asemenea, o specie aproape dispărută. A fost folosit și pentru conectarea cheilor de securitate hardware.


Conectorul este folosit pentru conectare DB25 ca "mama". Viteza de transfer de date este scăzută - dar destul de suficient pentru un programator sau o imprimantă laser veche. Majoritatea computerelor vechi au avut întotdeauna două porturi seriale și un port paralel.

Porturi pentru tastatură și mouse familiar tuturor utilizatorilor. În computerele moderne, acestea sunt violet și verzi. Mufele de pe mouse și tastatură sunt de aceeași culoare. Este greu de confundat. Conectorii sunt de tip mamă cu șase pini (mini-Din). Au fost inventate în Germania și a devenit standardul. Un alt nume pentru IBM/PC2

deoarece au fost utilizate pentru prima dată pe platforma IBM PC deja menționată. Dacă conectorii sunt amestecați la conectare, dispozitivele nu vor funcționa. Un plus clar este că porturile USB economisesc bani. Minus - trebuie să reporniți computerul dacă este conectat incorect. Apropo, este și o specie pe cale de dispariție. Pe multe computere moderne, acest port este lăsat doar unul - și este, de asemenea, vopsit în violet-verde. Puteți conecta un singur dispozitiv sau mouse sau tastatură la acesta.

porturi USB. Universal Serial Bus, ( Universal Serial Bus). Din 1998, a înlocuit alte porturi; Chiar și pe radiourile auto și camerele video veți găsi astăzi acest conector. Primele generații aveau o viteză de transfer de date de aproximativ 12 MB/sec. - uimitor pentru acele vremuri. Astăzi folosim USB 3, care are o viteză de 5 Gbps

Aceste porturi nu s-au schimbat în aspect. Computerul are conectori de tip A. Conectorul oricărui dispozitiv conectat se numește de obicei „B”. Are patru contacte, două pentru curent, două pentru transmiterea datelor. În consecință, există de două ori mai mulți pini pe porturile USB 3.0.

porturi SCSI(Interfață pentru sisteme de calculatoare mici) . Un lucru destul de specific și rar pentru noi; Cred că nici în străinătate nu o vei mai găsi printre utilizatorul obișnuit. Cred că dispozitivele cu astfel de interfețe au fost făcute la comandă - pentru uz corporativ. Aceasta este o interfață de rețea pentru schimbul de date la viteze de până la 160 Mbit/s.


Am dat odată peste un laptop adus din America, fabricat în 1999, de la Dell. Avea unul dintre acele porturi multi-pin. Era amplasat în așa fel încât să poată fi folosit doar așezând laptopul pe masă. Conectorul în sine este închis cu perdele pe arcuri. În consecință, undeva în America erau mese în care era construit acest conector... Îl aduci, îl pui pe masă și este conectat la rețeaua corporativă.

Varietățile de interfețe ne sunt deja familiare DB-25, precum și 50-High-Density, 68-pin-High-Density, 80-pin SCA, Centronics. De asemenea, a fost posibil să se conecteze hard disk-uri la această interfață. O placă specială, adaptorul gazdă, este responsabilă de conexiune.


Porturi video. De asemenea, nu pot fi confundați cu alții. Portul video standard este un conector mamă VGA albastru de tip D cu 15 pini. Folosit pentru a conecta un monitor. Acesta este un standard vechi, adoptat în 1987. Nu toate plăcile de bază îl au. Dacă nu îl aveți „la bord”, atunci poate fi găsit în partea de jos a unității de sistem. În slotul de expansiune este instalată o placă video:

Dacă decideți să instalați o placă video în plus față de cea pe care o aveți deja („la bord”), atunci aceasta din urmă nu va mai funcționa. Este în regulă. Monitorul va funcționa numai atunci când este conectat la unul instalat.

Pe plăcile video moderne, portul VGA a devenit greu de găsit; acestea sunt înlocuite cu un alt tip - DVI. Pe o placă de bază de tip tranziție arată cam așa:

Foarte des există cazuri când o placă video VGA se defectează. După achiziționarea unuia nou, se dovedește că are doar porturi DVI. În acest caz, trebuie să achiziționați un adaptor și să îl instalați pe conectorul DVI:

Acordați atenție tipului de adaptor. Faptul este că conectorii DVI sunt diferiți - noile plăci video scumpe au porturi DVI-D sau DVI-I. Adaptoarele nu sunt interschimbabile, verificați acest punct cu vânzătorul.

În acest caz, nu va trebui să cumpărați un nou monitor. Monitoare noi vin și cu două tipuri de conectori - VGA și DVI.

Port HDMI. Unde am fi noi fără el în secolul XXI? Interfața multimedia este concepută pentru a transmite video și audio de înaltă definiție cu protecție împotriva copierii. În același timp, înlocuiește atât porturile video de mai sus, cât și unele porturi audio (SCART, VGA, YPbPr, RCA, S-Video.). Probabil că această interfață va înlocui în cele din urmă orice altceva. Poate fi găsit pe orice tehnologie digitală - de la o cameră la un computer (sau laptop).

Dimensiunea este comparabilă cu cea a unui port USB, iar viteza de transfer de date este enormă în comparație cu cele enumerate mai sus - până la 48 Gbps. Transmiterea datelor se realizează printr-un cablu cu protecție bună la interferențe. Cablul poate fi conectat la un laptop și la un televizor și vizionați videoclipuri. Lungimea cablului nu trebuie să depășească 10 metri, în caz contrar este nevoie de un amplificator/repetitor de semnal.

Despre conectori audio Nu voi intra în detalii. Totul arată cam la fel ca pe un DVD player acasă, dacă vorbim despre ceva special. Un exemplu în acest sens este conectorul SPDiF, care ar putea fi instalat pe un slot de expansiune:

Standard audio de la SONY și PHILIPS, acest card este conectat la placa de bază folosind un conector la conectorul corespunzător. Mufele standard pentru conectarea unui microfon, difuzoare și căști arată astfel:

Dacă doriți audio HD, poate fi necesar să conectați adaptorul corespunzător aici. Citiți documentația pentru placa de bază:

Porturi de rețea. Nu ne putem lipsi de ei în zilele noastre. Primim internetul printr-o interfață de rețea prin cablu sau radio. Plăcile de bază au un conector standard încorporat RJ 45 pentru a conecta cablul de internet:

Pe computerele vechi, viteza standard a fost de 100 Mbit/s, plăcile de rețea moderne oferă 1000 Mbit/s. Dacă o placă de rețea nu este suficientă pentru dvs., puteți cumpăra una suplimentară și o puteți introduce în slotul de expansiune:

Acest card este potrivit pentru un slot PCI. Există opțiuni mai mici pentru PCI-express:

Verificați viteza de transfer de date a unui anumit card atunci când cumpărați. Pentru fanii rețelelor wireless, există și o selecție largă de adaptoare Wi-Fi:

De asemenea, pot fi conectate la sloturi de expansiune PCI sau PCI - express. Cu toate acestea, dacă nu doriți să lucrați cu unitatea de sistem, puteți cumpăra și o versiune USB a acestui card:

Îl introduceți în port și introduceți parola WIFI. Și aveți un alt dispozitiv periferic conectat. Multe modele de imprimante de acasă au și un adaptor WIi-Fi, iar cu această configurare puteți imprima fără fir. Din fericire, astăzi există o gamă largă de plăci de rețea și imprimante.

Cum să dezactivați porturile USB când opriți computerul?

În cele din urmă, vă voi spune cum să rezolvați o problemă. Am o cască cu microfon pentru înregistrare video și chat pe Skype. Chinezii s-au îndrăgostit de împingerea LED-urilor în locuri și locuri în care nu au nevoie de ele pentru frumusețe. Când computerul se oprește, lumina de fundal rămâne în continuare aprinsă, deoarece este alimentată prin portul USB.

Tastatura strălucește și ea, ceea ce nu este în întregime convenabil noaptea, deși nu e rău (dacă tastați pe întuneric). Pentru a opri permanent porturile, încercați să tastați comanda rapidă de la tastatură Win+R iar în linia „Run” lipiți comanda powercfg /h oprit.

După care trebuie să opriți computerul. Simptomele vor dispărea probabil. Această comandă dezactivează modul de repaus și computerul se oprește complet. Puteți consulta setările de alimentare din „Planul de alimentare” din panoul de control. Dar există modele de plăci în care această setare este dezactivată prin BIOS. Dar pe cele mai avansate această funcție nu este dezactivată sau este ascunsă foarte profund. Acest lucru ar trebui să fie convenabil pentru încărcarea gadgeturilor pe timp de noapte.

În cazuri dificile, documentația plăcii de bază poate ajuta. Găsiți jumperul (jumperul) necesar și opriți manual alimentarea. Dar e prea greu. Iar cel mai simplu mod este să cumpărați un hub USB cu comutatoare și să conectați perifericele necesare la acesta. Și nu suferi. Pa, ne vedem din nou!

Descrierea interfeței RS-232, formatul conectorilor utilizați și scopul pinilor, desemnările semnalelor, protocolul de schimb de date.

descriere generala

Interfața RS-232, denumită oficial „EIA/TIA-232-E”, dar mai cunoscută ca interfață „port COM”, a fost anterior una dintre cele mai comune interfețe din tehnologia computerelor. Se găsește încă pe computerele desktop, în ciuda apariției unor interfețe mai rapide și mai inteligente, cum ar fi USB și FireWare. Avantajele sale din punctul de vedere al radioamatorilor includ viteza minimă scăzută și ușurința de implementare a protocolului într-un dispozitiv de casă.

Interfața fizică este implementată de unul dintre cele două tipuri de conectori: DB-9M sau DB-25M, acesta din urmă practic nu se găsește în computerele produse în prezent.

Atribuirea pinii conectorului cu 9 pini


Fișă tip DB-9M cu 9 pini
Numerotarea contactelor pe partea pinului
Direcția semnalelor este indicată în raport cu gazda (calculatorul)
a lua legatura Semnal Direcţie Descriere
1 CD Intrare Operatorul de transport a fost detectat
2 RXD Intrare Date primite
3 TXD Ieșire Date transmise
4 DTR Ieșire Gazda gata
5 GND - Sârmă comună
6 DSR Intrare Dispozitivul este gata
7 RTS Ieșire Gazda este gata să transmită
8 CTS Intrare Dispozitivul este pregătit pentru a primi
9 R.I. Intrare Apel detectat

Atribuirea pinii conectorului cu 25 de pini

a lua legatura Semnal Direcţie Descriere
1 SCUT. - Ecran
2 TXD Ieșire Date transmise
3 RXD Intrare Date primite
4 RTS Ieșire Gazda este gata să transmită
5 CTS Intrare Dispozitivul este pregătit pentru a primi
6 DSR Intrare Dispozitivul este gata
7 GND - Sârmă comună
8 CD Intrare Operatorul de transport a fost detectat
9 - - rezervă
10 - - rezervă
11 - - Nefolosit
12 SCD Intrare Operatorul #2 a fost detectat
13 SCTS Intrare Dispozitivul este gata să primească numărul 2
a lua legatura Semnal Direcţie Descriere
14 STXD Ieșire Date transmise #2
15 TRC Intrare Ceasare a transmițătorului
16 SRXD Intrare Datele primite #2
17 RCC Intrare Ceasul receptorului
18 LLOOP Ieșire Bucla locală
19 SRTS Ieșire Gazdă gata să transmită #2
20 DTR Ieșire Gazda gata
21 RLOOP Ieșire Bucla externă
22 R.I. Intrare Apel detectat
23 DRD Intrare Viteza datelor determinată
24 TRCO Ieșire Temporizarea transmițătorului extern
25 TEST Intrare Modul de testare

Din tabele se poate observa că interfața cu 25 de pini se distinge prin prezența unui al doilea canal de transmisie-recepție cu drepturi depline (semnale desemnate „#2”), precum și prin numeroase semnale suplimentare de control și control. Cu toate acestea, adesea, în ciuda prezenței unui conector „larg” în computer, semnalele suplimentare pur și simplu nu sunt conectate la acesta.

Caracteristici electrice

Nivele logice ale transmițătorului:"0" - de la +5 la +15 volți, "1" - de la -5 la -15 volți.

Nivelurile logice ale receptorului:"0" - peste +3 volți, "1" - sub -3 volți.

Impedanța de intrare a receptorului este de cel puțin 3 kOhm.

Aceste caracteristici sunt definite de standard ca fiind minime, garantând compatibilitatea dispozitivelor, cu toate acestea, caracteristicile reale sunt de obicei mult mai bune, ceea ce permite, pe de o parte, alimentarea dispozitivelor cu putere redusă din port (de exemplu, numeroase date de casă). cablurile pentru telefoane mobile sunt astfel proiectate) și, pe de altă parte, să alimenteze portul de intrare inversat Nivelul TTL în loc de semnal bipolar.

Descrierea principalelor semnale ale interfeței

CD- Dispozitivul setează acest semnal atunci când detectează un purtător în semnalul primit. De obicei, acest semnal este folosit de modemuri, care informează astfel gazda că au detectat un modem care funcționează la celălalt capăt al liniei.

RXD- Linie pentru gazda pentru a primi date de la dispozitiv. Descris în detaliu în secțiunea „Protocol de schimb de date”.

TXD- Linie de date de la gazdă la dispozitiv. Descris în detaliu în secțiunea „Protocol de schimb de date”.

DTR- Gazda setează acest semnal atunci când este gata să facă schimb de date. De fapt, semnalul este setat atunci când portul este deschis de către programul de comunicații și rămâne în această stare atâta timp cât portul este deschis.

DSR- Dispozitivul setează acest semnal atunci când este pornit și gata să comunice cu gazda. Acesta și semnalele anterioare (DTR) trebuie setate pentru schimbul de date.

RTS- Gazda setează acest semnal înainte de a începe să transmită date către dispozitiv și, de asemenea, semnalează că este gata să primească date de la dispozitiv. Folosit pentru controlul hardware al schimbului de date.

CTS- Dispozitivul setează acest semnal ca răspuns la setarea anterioară de către gazdă (RTS) atunci când este gata să primească date (de exemplu, când datele anterioare trimise de gazdă sunt transferate de către modem pe linie sau există spațiu liber în tamponul intermediar).

R.I.- Dispozitivul (de obicei un modem) setează acest ton atunci când primește un apel de la un sistem de la distanță, de exemplu când primește un apel telefonic dacă modemul este configurat să primească apeluri.

Protocol de comunicare

În protocolul RS-232, există două metode de control al schimbului de date: hardware și software, precum și două moduri de transmisie: sincron și asincron. Protocolul vă permite să utilizați oricare dintre metodele de control împreună cu orice mod de transmisie. De asemenea, este posibil să funcționeze fără control al fluxului, ceea ce înseamnă că gazda și dispozitivul sunt întotdeauna gata să primească date atunci când se stabilește comunicarea (semnalele DTR și DSR sunt stabilite).

Metoda de control hardware implementat folosind semnale RTS și CTS. Pentru a transmite date, gazda (calculatorul) setează semnalul RTS și așteaptă ca dispozitivul să seteze semnalul CTS, apoi începe să transmită date atâta timp cât semnalul CTS este setat. Semnalul CTS este verificat de gazdă imediat înainte ca următorul octet să înceapă să fie transmis, astfel încât un octet care a început deja să fie transmis va fi transmis în întregime, indiferent de valoarea CTS. În modul de schimb de date semi-duplex (dispozitivul și gazda transmit date pe rând, în modul full-duplex pot face acest lucru simultan), eliminarea semnalului RTS de către gazdă înseamnă că acesta trece în modul de recepție.

Metoda de control software constă din partea de recepție care transmite transmisii speciale de oprire (caracter cu cod 0x13, numit XOFF) și reluare (caracter cu cod 0x11, numit XON). Când aceste caractere sunt primite, partea care trimite trebuie să oprească transmisia sau să o reia în consecință (dacă există date care așteaptă să fie transmise). Această metodă este mai simplă în ceea ce privește implementarea hardware, dar oferă un răspuns mai lent și, în consecință, necesită notificarea prealabilă a transmițătorului atunci când spațiul liber din bufferul de recepție este redus la o anumită limită.

Mod transmisie sincronă implică un schimb continuu de date atunci când biții urmează unul după altul fără pauze suplimentare la o viteză dată. Acest mod este portul COM nu sunt acceptate.

Mod de transfer asincron constă în faptul că fiecare octet de date (și bit de paritate, dacă este prezent) este „înfășurat” cu o secvență de sincronizare de un bit de start zero și unul sau mai mulți biți de stop. Diagrama fluxului de date în modul asincron este prezentată în figură.

Unul dintre algoritmii posibili de funcționare a receptorului Următorul:

  1. Așteptați nivelul semnalului de recepție „0” (RXD în cazul unei gazde, TXD în cazul unui dispozitiv).
  2. Numărați jumătate din durata biților și verificați dacă nivelul semnalului este încă „0”
  3. Numărați durata completă a bitului și scrieți nivelul curent al semnalului la cel mai puțin semnificativ bit de date (bit 0)
  4. Repetați pasul anterior pentru toți biții de date rămași
  5. Numărați durata completă a bitului și nivelul curent al semnalului, utilizați-l pentru a verifica recepția corectă folosind verificarea parității (vezi mai jos)
  6. Numărați durata completă a bitului și asigurați-vă că nivelul curent al semnalului este „1”.

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

Și, bineînțeles, scrierea în consola unui program de terminal este bine și bine, dar îți dorești propria ta aplicație, care, atunci când apeși o tastă de pe ecran, efectuează acțiunile de care ai nevoie;)

În acest articol voi descrie cum se lucrează cu portul com în C++.

Soluția este simplă, dar din anumite motive nu a fost găsit imediat un exemplu de lucru. Așa că îl salvez aici.

Desigur, puteți folosi soluții multi-platformă precum QSerial - o bibliotecă inclusă î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 contează deloc...

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;

Fac acest lucru la nivel global pentru a nu mă deranja cu pointerii atunci când îl transmit la funcții.

Int _tmain(int argc, _TCHAR* argv) (

Nu suport stilul de programare Windows. Au pus totul pe numele lor și au stat acolo bucurându-se...

Acum magia declarării unui șir cu numele portului. Faptul este că nu poate converti caracterul în sine.

LPCTSTR sPortName = L"COM1";

Lucrul cu porturi seriale în Windows funcționează ca un fișier. Deschiderea primului 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 transfera și variabilele necesare pentru aceasta:

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

Trimitem un ș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 la control:

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

La sfârșitul programului facem o buclă nesfârșită 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) // dacă ceva este acceptat, imprimați cout<< sReceivedChar; } }

Acesta este tot exemplul.

Recent, metoda serială de transmitere a datelor a înlocuit-o 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, deoarece o magistrală paralelă este greu de scalat (lungirea cablului, creșterea frecvenței de ceas al magistralei), nu este surprinzător că tehnologiile întorc spatele magistralelor paralele.

Interfețe seriale

Astăzi există o mulțime de interfețe seriale de transfer de date.
Pe lângă USB și SATA deja menționate, puteți reaminti și cel puțin două standarde cunoscute RS-232 și MIDI (cunoscute și sub numele de GamePort).
Toate au același lucru în comun - transmisia secvenţială a fiecărui bit de informaţie sau interfaţa serială.
Există o mulțime de avantaje ale unor astfel de interfețe, iar cel mai important dintre ele este un număr mic de fire de conectare și, prin urmare, un preț mai mic.

Transfer de date

Transmiterea datelor în serie 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 printr-un cablu special de sincronizare, care să asigure funcționarea dispozitivelor la aceeași frecvență.

Transmisia asincronă implică utilizarea de biți speciali care marchează începutul și sfârșitul datelor - un bit de început (zero logic) și un bit de oprire (cel logic).
De asemenea, este posibil să se utilizeze un bit de paritate special, care determină dacă numărul de biți unu care trebuie transmis este par sau impar (în funcție de convenția adoptată).
La capătul de recepție, acest bit este analizat, iar dacă bitul de paritate nu corespunde numărului de biți unu, 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 incorectă.
Expedierea 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 pot înțelege nimic?

Ei bine, dacă toate tehnologiile informatice ar fi simple, atunci orice gospodină ar fi creat de mult timp noi protocoale în paralel cu găluște...
Să încercăm să privim procesul diferit.
Datele sunt transmise în pachete, la fel ca și pachetele IP, alături de date există și biți de informații, numărul acestor biți putând varia de la 2 la 3 și jumătate.
Și o jumătate?!
Da, ai auzit bine, exact 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 scurtă 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 bițurilor împotriva 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 va confunda bitul vechi cu un una noua.
Pentru a evita acest lucru, fiecare bit este gated, adică trimis sincron cu un semnal special - un „stroboscop”, generat în interiorul dispozitivului.
Există o serie de viteze specifice pentru dispozitivele asincrone - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19.200, 38.400, 57.600 și 115 biți pe secundă.

Probabil ați auzit că unitatea de măsură pentru viteza de transfer de date este „baud” - frecvența schimbărilor în starea liniei, iar această valoare va coincide cu viteza de transfer de date numai dacă semnalul poate avea una dintre cele două valori.
Dacă într-o singură schimbare de semnal sunt codificați mai mulți biți (și acest lucru se întâmplă în multe modemuri), viteza de transmisie și frecvența de schimbare a liniei vor fi valori complet diferite.

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

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 deteriorat în timpul transmisiei, îl putem recunoaște cu ușurință (rețineți că bit de paritate?) și-l transmite rapid din nou.
Dar va fi dificil să detectați o eroare într-un kilobyte de date ș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 secretarele proști, dintr-un motiv oarecare, încearcă întotdeauna să-l pună în PS/2.
Toate aceste dispozitive funcționează prin interfața RS-232, sau mai degrabă prin partea asincronă a acesteia, deoarece standardul descrie și transferul de date sincron.

Driver opțional AMD Radeon Software Adrenalin Edition 19.9.2

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 tehnologia Radeon Image Sharpening.

Actualizare cumulativă Windows 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 a întrerupt Căutarea Windows și a cauzat o utilizare ridicată a procesorului.