Port serial pentru computer. Porturile computerului și scopul lor. Conectarea sau deconectarea dispozitivelor periferice

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

Niveluri logice receptor:"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 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 integral, 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 bitul de date cel mai puțin semnificativ (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”.

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; 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ă dezactivezi porturile USB la oprirea computerului?

Î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 încă 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 vedea 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 cazurile 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!

Așa că am ajuns la portul COM. Dar cu el totul nu este la fel de simplu ca cu LPT, iar utilizarea sa completă va necesita mult mai mult efort. Problema principală este și principalul său avantaj - transferul de date în serie. Dacă în LPT un octet de date este transmis de-a lungul a 8 linii, câte un bit pe linie, iar starea fiecărei linii poate fi vizualizată cu ușurință, atunci în portul COM un octet de date este transmis bit cu bit de-a lungul unei linii (relativ la sol , bineînțeles) și vezi ce se transmite acolo doar cu LED-uri nu o va face. Pentru a face acest lucru, aveți nevoie de un dispozitiv special - un convertor al unui flux de date seriale într-unul paralel, așa-numitul. USART (Transmițător receptor universal sincron/asincron). De exemplu, este inclus în placa de bază a unui computer echipat cu un port COM sau în orice microcontroler mai serios.


Sper că încă sunteți descurajat în a stăpâni portul COM. Nu totul este nenorocire și întuneric. Unele rezultate pot fi obținute fără USART. Să formulăm o sarcină pe care o vom implementa în stadiul inițial de lucru cu portul COM:


"Aș dori ca un LED să fie conectat la computer prin portul COM. Lansez programul. Fac o acțiune în acest program, LED-ul se aprinde, fac altceva - LED-ul se stinge."


Sarcina este destul de specifică (ținând cont de faptul că USART nu este utilizat) și este o sarcină pur „do-it-yourself”, dar este destul de fezabilă și funcțională. Să începem să o implementăm.


1.Port COM

Din nou, luați unitatea de sistem a PC-ului și priviți în spate. Remarcăm că există un conector cu 9 pini - acesta este portul COM. În realitate pot fi mai multe dintre ele (până la 4). PC-ul meu are două porturi COM (vezi poza).


2. Extensie port COM


3. Hardware

De asemenea, va trebui să „călcăm” hardware-ul, în sensul că va fi mai complicat decât cu primul dispozitiv pentru portul LPT. Faptul este că protocolul RS-232, prin care se fac schimb de date în portul COM, are o relație logică stare-tensiune ușor diferită. Dacă de obicei, acesta este logic 0 0 V, logic 1 +5 V, atunci în RS-232 această relație este următoarea: logic 0 +12 V, logic 1 -12 V.

Și, de exemplu, după ce a primit -12 V, nu este imediat clar ce să faci cu această tensiune. De obicei, nivelurile RS-232 sunt convertite în TTL (0,5 V). Cea mai simplă opțiune sunt diodele zener. Dar îmi propun să facem acest convertor pe un cip special. Se numește MAX232.

Acum să vedem ce semnale de la portul COM putem vedea pe LED-uri? De fapt, există până la 6 linii independente în portul COM, care sunt de interes pentru dezvoltatorul de dispozitive de interfață. Două dintre ele nu sunt încă disponibile pentru noi - linii de date seriale. Dar restul de 4 sunt concepute pentru a controla și indica procesul de transfer de date și le putem „transfera” în funcție de nevoile noastre. Două dintre ele sunt destinate controlului de pe un dispozitiv extern și nu le vom atinge deocamdată, dar acum vom folosi ultimele două linii rămase. Se numesc:

  • RTS- Cerere de transfer. O linie de interacțiune care indică faptul că computerul este pregătit să primească date.
  • DTR- Computerul este gata. O linie de interacțiune care indică faptul că computerul este pornit și gata să comunice.

Acum le transferăm puțin scopul, iar LED-urile conectate la ele fie se vor stinge, fie se vor aprinde, în funcție de acțiunile din programul propriu.

Deci, haideți să punem împreună o diagramă care ne va permite să ne ducem la îndeplinire acțiunile intenționate.

Și iată implementarea sa practică. Cred că mă veți ierta că am făcut-o într-o versiune atât de proastă, pentru că nu vreau să fac o placă pentru un circuit atât de „foarte productiv”.


4. Partea software

Totul este mai simplu aici. Să creăm o aplicație Windows în Microsoft Visual C++ 6.0 bazată pe MFC pentru a gestiona două linii de comunicație prin port COM. Pentru a face acest lucru, creați un nou proiect MFC și dați-i un nume, de exemplu, TestCOM. Apoi, selectați opțiunea de construire pe baza dialogului.

Dați aspectul ferestrei de dialog a programului nostru ca în Fig. mai jos, și anume adăugați patru butoane, câte două pentru fiecare dintre rânduri. Unul dintre ele este, respectiv, necesar să „stingă” linia, celălalt să o „seteze” la una.

Clasa CTestCOMDlg: public CDialog ( // Construcție publică: CTestCOMDlg(CWnd* pParent = NULL); // constructor standard HANDLE hFile;

Pentru ca programul nostru să controleze liniile unui port COM, acesta trebuie mai întâi deschis. Să scriem codul responsabil pentru deschiderea portului la încărcarea programului.

HFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox(„Portul nu a putut fi deschis!”, „Eroare”, MB_ICONERROR); ) else ( MessageBox(„Portul a fost deschis cu succes”, „Ok”, MB_OK); )

Folosind funcția standard Win API CreateFile() deschideți portul COM COM2. În continuare, verificăm succesul deschiderii și afișăm un mesaj de informare. Aici trebuie să facem o notă importantă: COM2 este pe computerul meu, dar pe computerul tău îl poți conecta la un alt port COM. În consecință, numele său trebuie schimbat în orice port pe care îl utilizați. Puteți vedea ce numere de porturi sunt prezente pe computerul dvs. astfel: Start -> Setări -> Panou de control -> Sistem -> Hardware -> Manager dispozitive -> Porturi (COM și LPT).

Ca urmare, funcția CTestCOMDlg::OnInitDialog(), aflat în dosar TestCOMDlg.cpp, clasa noastră de dialog ar trebui să ia forma:

BOOL CTestCOMDlg::OnInitDialog() ( CDialog::OnInitDialog(); // Adăugați elementul de meniu „Despre...” în meniul de sistem. // IDM_ABOUTBOX trebuie să fie în intervalul de comandă de sistem. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); ) ) // Setați pictograma pentru acest dialog. Cadrul face acest lucru automat // când fereastra principală a aplicației nu este un dialog SetIcon(m_hIcon, TRUE); // Setați pictograma mare SetIcon(m_hIcon, FALSE); // Setați pictograma mică // TODO: Adăugați o inițializare suplimentară aici hFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox ("Nu s-a putut deschide portul!", "Ostbk", MB_ICONERROR); ) altfel ( MessageBox ("Portul a fost deschis cu succes", "Ok", MB_OK); ) returnează TRUE; // returnează TRUE dacă nu setați focalizarea pe un control )

Acum să adăugăm handlere pentru butoanele de control al liniilor. Le-am dat nume potrivite: funcția care setează unul pe linia DTR este OnDTR1(), 0 este OnDTR0(). Pentru linia RTS, în același mod. Permiteți-mi să vă reamintesc că handlerul este creat când faceți dublu clic pe buton. Ca rezultat, aceste patru funcții ar trebui să arate astfel:

Void CTestCOMDlg::OnDTR1() ( // TODO: Adăugați aici codul de gestionare a notificărilor de control aici EscapeCommFunction(hFile, 6); ) void CTestCOMDlg::OnDTR0() ( // TODO: Adăugați aici codul de gestionare a notificărilor de control EscapeCommFunction(hFile, 5); ) void CTestCOMDlg::OnRTS1() ( // TODO: Adăugați aici codul de gestionare a notificărilor de control EscapeCommFunction(hFile, 4); ) void CTestCOMDlg::OnRTS0() ( // TODO: Adăugați aici codul de gestionare a notificărilor de control aici EscapeCommFunction(hFile, 3); )

Lasă-mă să explic puțin cum funcționează. După cum puteți vedea, în interior conțin un apel către aceeași funcție Win API EscapeCommFunction() cu doi parametri. Primul dintre ele este un mâner (HANDLE) către un port deschis, al doilea este un cod de acțiune special corespunzător stării necesare a liniei.

Gata, compilam si lansam. Dacă totul este în regulă, ar trebui să vedeți un mesaj despre deschiderea cu succes a portului. Apoi, apăsând butoanele corespunzătoare, clipim LED-urile conectate la portul COM.

© Ivanov Dmitry
decembrie 2006

Inițial, când au apărut calculatoare personale, cu ele au venit și câteva nu atât de sofisticate, dar care funcționează cu succes în combinație cu toate celelalte interfețe de umplere, porturi sau circuite. Cuvântul port denotă metoda de transfer de date. Este ca o celulă de memorie. Doar informațiile sunt scrise în RAM și rămân acolo atâta timp cât un program are nevoie de ele, până când programul le procesează (sau programul în sine este încă nevoie de cineva de pe computer).

Port și memorie

Adică, programul va citi datele din memorie în procesor, va face ceva cu ele, poate primi câteva date noi din aceste informații, pe care le va scrie în altă locație. Sau dat în sine va fi pur și simplu rescris în alt loc. În orice caz, în memorie, informațiile care au fost odată înregistrate pot fi fie citite, fie șterse. Celula arată ca un cufăr sprijinit de perete. Și toată memoria constă dintr-o celulă, fiecare celulă are propria sa adresă. La fel ca cuferele stând la rând pe perete în subsolul unui cavaler zgârcit.

Ei bine, vă puteți imagina și un port ca o celulă. Numai o astfel de celulăîn spate este o fereastră care duce undeva în spatele peretelui. Puteți scrie informații în el, iar informațiile o vor lua și vor zbura pe fereastră, deși pentru o perioadă de timp va rămâne în celulă în același mod ca într-o celulă obișnuită memorie cu acces aleator.

Sau invers, informațiile pot „zbura” în celula port din fereastră. Procesorul va vedea acest lucru și va citi aceste informații noi care apar. Și o va pune la treabă - o va rescrie undeva, o va recalcula împreună cu alte date. Poate chiar să-l scrie într-o altă celulă. Sau către un alt port celular, atunci aceste informații primite prin primul port pot „zbura” în fereastra celui de-al doilea port - ei bine, așa decide procesorul. Mai exact, programul care în acest moment comandă procesorul și prelucrează datele înregistrate în memorie și care provin din porturi.

Simplu și frumos. Aceste porturi au fost imediat numite - porturi de intrare-ieșire. Prin unele dintre ele datele sunt trimise undeva, prin altele, se primesc de undeva.

Ei bine, atunci mișcarea începe într-un cerc. Există un dispozitiv și există altul. Și acum există un lanț de caractere, fiecare dintre ele constând din biți binari individuali, iar acest lanț trebuie transmis. Cum se transferă? Puteți transmite imediat un caracter întreg de-a lungul unei linii de 8 fire - un fir = un bit, apoi codul altuia, apoi un al treilea și așa mai departe până când transmiteți întregul lanț.

Și a fost posibil să se desfășoare fiecare bit nu în spațiu (prin fire), ci în timp: mai întâi transmiteți un bit al simbolului, apoi al doilea și așa mai departe de opt ori. Este clar că în al doilea caz sunt necesare niște mijloace suplimentare pentru a desfășura simbolurile în acest fel în timp.

Paralel și în serie

Și viteza de transmisie va fi diferită:

Se dovedește că fiecare opțiune are avantajele ei, dar și dezavantajele ei.

  1. Este mai rapid să transmiteți opt biți la un moment dat (adică, octet cu octet), dar aveți nevoie de opt ori mai multe fire
  2. Transmiterea câte un bit necesită o singură transmisie de informații, dar va fi de 8 ori mai lentă.

Deci, în primul caz au numit transmisia paralelă, iar în al doilea caz - serial.

Interfață de port

Și întregul sistem de astfel de transmisii - într-un caz așa, în altul - așa, numită interfață. O interfață este paralelă, cealaltă este serială. Aproape același lucru, porturi, unul paralel, celălalt serial.

Cum diferă conceptul de port de conceptul de „interfață”? În tehnologia modernă, cuvintele nu numai că apar, ele cresc și primesc „educație”. Și la fel ca în cazul oamenilor, ei pot deveni specialiști îngusti sau pot deveni „amatori”. Acesta este un cuvânt tipic amator - „interfață”. Pentru că este „un dop pentru fiecare gaură”. Interfețele sunt:

Și sensul cuvântului este ceva între ceva. Inter - între, față - față. A ieșit frumos, de aceea este folosit peste tot. De exemplu, interfața de utilizator a sistemului Windows este fața de pe ecran a sistemului, concepută pentru a comunica cu o persoană.

Și constă dintr-o imagine desenată pe ecran + reguli pentru funcționarea fiecărui element al imaginii (de exemplu, faceți clic pe un buton de pe ecran cu mouse-ul - va fi apăsat) + reguli pentru răspunsul fiecărui element și întregul sistem în ansamblu + tot hardware-ul care participă la dialog (mouse, tastatură, ecran) + toate programele care oferă dialog atât din partea întregului sistem, cât și din partea dispozitivelor individuale (driver).

Nu au menționat persoana, dar, din moment ce face parte și el în interacțiune, trebuie să aibă cunoștințe și abilități pentru a lucra în sistem, iar pentru asta există programe de pregătire, sisteme de ajutor... Și din toate acestea un frumos și apare cuvântul încăpător: interfata.

În tema noastră, interfața înseamnă lucruri puțin mai simple.

Acestea sunt mijloace de transfer hardware + software + reguli de transfer. Hardware - de înțeles. Dar software-ul pe computere și în comunicațiile moderne este întotdeauna și pretutindeni prezent. Se întâmplă chiar: mai întâi, se creează ceva funcțional pe o bază hardware, care nu se execută imediat, dar folosind programe special scrise. Și toate programele sunt personalizabile.

Și treptat, pe măsură ce funcționează noua funcție (sau bloc funcțional), programele care o „realizează” - și diferă de hardware prin faptul că pot fi configurate cu ușurință - sunt aduse într-o stare de configurare optimă. Că nu mai este nevoie să configurați. Și apoi programul din noua versiune a blocului funcțional poate fi înlocuit cu un înlocuitor bazat pe hardware pentru partea software. De exemplu, „coaseți” un lucru optim program bine reglat în memoria permanentă. Sau veniți cu un circuit logic special care va face exact același lucru pe care l-a făcut un program configurat optim - fără a se feri și uneori uitând toate setările sale utile.

De aceea interfața este adesea numită așa - software și hardware.

Sunt necesare reguli de transmisie pentru a se asigura că aceleași lucruri sunt înțelese (și procesate) în același mod la ambele capete ale interacțiunii. Vorbim despre transmiterea impulsurilor? Aceasta înseamnă că impulsurile trebuie să fie strict identice.

De exemplu, astfel încât 1 bit să vină sub forma unei căderi de tensiune de +12 sau +15 volți de la zero. Și astfel încât să fie sub forma unui dreptunghi sau a unei explozii ascuțite - al cărui vârf nu trebuie să fie mai mic decât, ei bine, + 5 volți și nu este cu adevărat necesar să se introducă o limită superioară, de exemplu. Acest lucru se datorează faptului că, atunci când se transmit impulsuri la o anumită distanță, semnalele electrice tind să slăbească și să se „decoloreze”.

Dacă se trimit strict 12 volți de la un capăt, atunci 3 volți pot ajunge la celălalt, iar acest lucru poate fi interpretat de sistemul de recepție pur și simplu ca zgomot pe linie, iar informațiile transmise se vor pierde.

Sensul impulsurilor ar trebui, de asemenea, înțeles în același mod. Iar impulsurile pot fi informaționale, service, sincronizare. Și, în general, de exemplu, nu impulsuri, ci pur și simplu tensiune constantă. Care poate fi folosit la celălalt capăt pentru a alimenta un dispozitiv mic.

Și firele în sine care au fost discutate la început ar trebui, de asemenea, înțelese în mod egal. Aici trebuie spus imediat că nu se întâmplă niciodată să existe un singur fir. Chiar și telefonul are două fire în cablu, dar în mod normal cablul ar trebui să aibă patru. Iar interfețele de date au întotdeauna mai mulți conductori. Unele dintre ele sunt informaționale, altele sunt de serviciu. Și acesta este ceea ce ar trebui recunoscut în mod egal la ambele capete ale interacțiunii. Și firele sunt recunoscute ca? După culoare, dacă în cablu și după locație, dacă în contactele de conectare.

Port este un cuvânt simplu și, de asemenea, nu complet lipsit de ambiguitate. Dar sensul este similar: că ceva este încărcat pe ceva și trimis undeva. Sau invers, ceva care acceptă ceva și descarcă ceva din el. Sensul este aproape același cu cel al interfeței hardware-software, dar cumva mai concis. Și mai stricte, ca în marina („Îți vor spune - nu te certa... dar noi nu ne certăm...”). Numai semnalele noastre circulă nu pe mare, ci prin cablu.

Pinout-ul conectorilor portului COM

Pinout-ul nu are nicio conexiune cu crucificare, deși, ca firele care rulează liber într-o singură manta de cablu, sunt dezasamblate în părți și lipite tare de știfturi, similar crucificării. Pin, în engleză „pin”, pin, prin urmare pinout, cuvântul este deja un jargon „pro-englez” de comunicații computerizate. Înseamnă să conectați firele la pinii de pe conector.

Forma conectorului, ordinea cablajului (pinii) din acesta, scopul fiecărui pin, precum și tensiunea nominală și semnificația semnalelor din fiecare - aceasta face parte din interfață. De obicei, toate aceste informații sunt compilate într-un document separat numit specificație de port. Un semn atât de simplu și clar de o pagină. În alte tipuri de interfețe, ceva de genul acesta ar putea fi numit „protocol”. Și aici ei îl numesc pur și simplu „pinout”.

Porturi COM seriale

Porturile COM ale unui computer sunt o conexiune pe distanță lungă între un complex de computer. Spre deosebire de porturile paralele și cablurile care au condus la dispozitive „grele” - imprimante, scanere, porturile Com conectau unități „ușoare” la computer - un mouse, un modem. Primele interfețe computer-la-computer (prin un „modem nul”). Mai departe, când s-au răspândit rețelele locale, iar șoarecii au început să fie conectați prin același conector ca și tastatura - port ps/2 (pe-es-in half) - portul com a fost cumva uitat.

Renașterea a venit odată cu apariția interfeței seriale USB. Deci s-a dovedit a fi o mișcare în cerc. Acum pe USB puteți găsi, pe lângă unități flash, șoareci și tastaturi USB. Imprimante, scanere, modemuri - toate perifericele sunt acum pe USB, am uitat deja de cablurile LTP paralele groase și solide, care trebuiau înșurubate pe fiecare parte cu 2 șuruburi. Și există două fire de semnal în aceste USB-uri (de fapt, există un canal, un semnal direct, celălalt la fel - invers) și două - alimentare și carcasă.

Au existat mai multe porturi COM seriale anterioare. Cel mai mic - și cel mai popular Un port cu 9 pini (D9), la care erau conectate majoritatea dispozitivelor: mouse-uri, modemuri, cabluri null-modem. Contactele au fost aranjate pe două rânduri, 5 și 4 la rând, creând un trapez. De aici și numele D9. Pe „mamă” numerotarea a mers de la stânga la dreapta și de sus în jos:

1 2 3 4 5

Cablare port COM, port RS232, 9 pini.

Desemnare Tip Descriere
1 DCD Intrare Nivel ridicat de la modem atunci când primește partenerul de modem operator
2 RxD Intrare Impulsuri de date primite
3 TxD Ieșire Impulsuri de date de ieșire
4 DTR Ieșire Un nivel ridicat (+12 V) indică că computerul este pregătit să primească date. Mouse-ul conectat a folosit acest pin ca sursă de alimentare
5 GND General Pământ
6 DSR Intrare Dispozitivul este pregătit să transmită date
7 RTS Ieșire Disponibilitatea de răspuns a dispozitivului partener
8 CTS Intrare Disponibilitatea de a primi date de la un partener
9 R.I. Intrare Un semnal care informează computerul despre un apel primit primit de modem de la linia de comunicație