Kas ir datora kaķu ports. Kādas ir personālā datora ostas? Un ko viņi ir? Kā atspējot USB porti, kad izslēdzat datoru

RS-232 interfeisa apraksts, izmantoto savienotāju formāts un izejas uzdevums, signāli, datu apmaiņas protokols.

vispārīgs apraksts

RS-232 saskarne, diezgan oficiāli sauc par "EIA / TIA-232-E", bet labāk pazīstams kā "COM Port" interfeiss, iepriekš bija viena no visbiežāk sastopamajām saskarnēm datortehniķis. Viņš joprojām tiekas galda datoriNeskatoties uz vairāk ātruma izskatu un "inteliģentām" saskarnēm, piemēram, USB un FIREWARE. Tās priekšrocības no radio amatieru viedokļa var attiecināt uz zemo minimālo ātrumu un protokola īstenošanas vienkāršību pašmāju ierīcē.

Fizisko interfeisu īsteno viens no divu veidu savienotājiem: DB-9M vai DB-25M, pēdējais pašlaik pieejamajos datoros praktiski nav atrasts.

9 kontaktu secinājumu iecelšana


9-PIN DB-9M tipa spraudnis
PIN kontaktu skaits
Signālu virziens ir norādīts salīdzinājumā ar uzņēmēju (datoru)
Sazināties Signāls Virziens Apraksts
1 Cd ieeja Noteikta ielāde
2 Rxd. ieeja Pieņemtie dati
3 TXD. Izeja Pārraidītie dati
4 DTR. Izeja Saimnieks gatavs
5 GND. - Kopīgs vads
6 DSR. ieeja Ierīce ir gatava
7 Rts Izeja Host gatavs pārraidei
8 CTS. ieeja Ierīce ir gatava saņemšanai
9 Ri. ieeja Tika atrasts izaicinājums

15 kontaktu savienotāju secinājumu iecelšana

Sazināties Signāls Virziens Apraksts
1 Vairogs - Ekrāns
2 TXD. Izeja Pārraidītie dati
3 Rxd. ieeja Pieņemtie dati
4 Rts Izeja Host gatavs pārraidei
5 CTS. ieeja Ierīce ir gatava saņemšanai
6 DSR. ieeja Ierīce ir gatava
7 GND. - Kopīgs vads
8 Cd ieeja Noteikta ielāde
9 - - Rezervēt
10 - - Rezervēt
11 - - Nav izmantots
12 SCD. ieeja Pārvadātājs tiek atklāts. # 2
13 SCTS. ieeja Ierīce ir gatava uzņemšanai # 2
Sazināties Signāls Virziens Apraksts
14 Stxd. Izeja Pārraidītie dati # 2
15 Triks ieeja Raidītāja lietošana
16 Srxd. ieeja Pieņemti dati # 2
17 Rcc ieeja Uzņemiet uztvērēju
18 Lloop. Izeja Vietējā sakaru līnija
19 SRTS. Izeja Host gatavs pārsūtīt # 2
20 DTR. Izeja Saimnieks gatavs
21 Rploop. Izeja Ārējā cilpa
22 Ri. ieeja Tika atrasts izaicinājums
23 Der. ieeja Datu ātrums tiek noteikts
24 Troksnis Izeja Veikt ārējo raidītāju
25 Pārbaude ieeja Testa režīms

Tabulā redzams, ka 25 kontaktu saskarne atšķiras ar pilntiesīgu otrā saņemšanas kanālu klātbūtni (norādīti signāli "# 2"), kā arī daudzas papildu kontroles un kontroles signālus. Tomēr bieži vien, neskatoties uz klātbūtni datorā "plata" savienotājs, papildu signāli vienkārši nav savienoti ar to.

Elektriskās īpašības

Loģiskais raidītāja līmenis: "0" - no +5 līdz +15 voltiem, "1" - no -5 līdz -15 voltiem.

Uztvērēja loģiskie līmeņi: "0" - virs +3 voltiem, "1" - zem -3 volti.

ievades pretestība uztvērējs vismaz 3 com.

Šīs īpašības nosaka standarts kā minimums, garantējot ierīces saderību, tomēr faktiskās īpašības parasti ir ievērojami labākas, kas ļauj, no vienas puses, lai barotu zemas jaudas ierīces no ostas (piemēram, daudzi pašmāju datu kabeļi ir paredzēts mobilie tālruņi), un, no otras puses - iesniegt ostas ostā apgriezts TTL līmenis, nevis bipolārā signāla.

Galveno interfeisa signālu apraksts

Cd - Ierīce nosaka šo signālu, kad tas atklāj pārvadātāju saņemtajā signālam. Parasti šo signālu izmanto modemi, kas tādējādi ziņo par uzņēmēju par darba modema atklāšanu līnijas otrā galā.

Rxd. - saņemt resursdatora datus no ierīces. Detalizēti aprakstīts sadaļā "Datu apmaiņas protokols".

TXD. - Datu resursdatora pārsūtīšanas līnija uz ierīci. Detalizēti aprakstīts sadaļā "Datu apmaiņas protokols".

DTR. - Uzņēmēja iestatiet šo signālu, kad esat gatavs apmainīties ar datiem. Faktiski signāls ir iestatīts, atverot komunikācijas programmas ostu un paliek šajā valstī visu laiku, līdz osta ir atvērta.

DSR. - Ierīce nosaka šo signālu, kad tas ir iespējots un gatavs apmainīties ar datiem ar uzņēmēju. Tas un iepriekšējie (DTR) signāli jāinstalē, lai apmainītos ar datiem.

Rts - Uzņēmēja iestata šo signālu pirms datu pārsūtīšanas uz ierīci, kā arī signalizē gatavību datu saņemšanai no ierīces. Izmanto, ja aparatūras kontrole datu apmaiņā.

CTS. - Ierīce nosaka šo signālu, atbildot uz iepriekšējo resursdatora uzstādīšanu (RTS), kad tas ir gatavs lietot datus (piemēram, kad iepriekšējie resursdatori nosūtītie dati tiek nosūtīti uz līniju rindā vai ir brīva vieta starpniekā buferis).

Ri. - ierīce (parasti modems) nosaka šo signālu, saņemot zvanu no attālās sistēmas, piemēram, saņemot telefona zvansJa modems ir konfigurēts, lai saņemtu zvanus.

Datu apmaiņas protokols

RS-232 protokols pastāv divas datu pārvaldības metodes: aparatūra un programmatūra, kā arī divi pārraides režīmi: sinhrono un asinhronā. Protokols ļauj izmantot jebkuru no vadības metodēm kopā ar jebkuru pārraides režīmu. Darbs bez plūsmas kontroles ir atļauta arī, kas nozīmē pastāvīgu gatavību uzņēmēja un ierīci, lai saņemtu datus, kad savienojums ir iestatīts (DTR un DSR signāli ir uzstādīti).

Aparatūras kontroles metode Tas tiek īstenots, izmantojot RTS un CTS signālus. Lai pārsūtītu datu resursdatoru (datoru), nosaka RTS signālu un gaida CTS signālu, kas jāinstalē, pēc kura dati tiek sākti, līdz CTS signāls ir iestatīts. CTS signālu pārbauda ar saimnieku tieši pirms nākamās baita pārraides sākšanas, tāpēc baits, kas jau ir sācis nosūtīt, tiks nosūtīts pilnībā neatkarīgi no CTS vērtības. Half-duplex datu apmaiņas režīmā (ierīce un resursdatora pārraides dati savukārt, pilna dupleksa režīmā, viņi to var izdarīt tajā pašā laikā) RTS signāla noņemšana ar uzņēmēju nozīmē pāreju uz uzņemšanas režīmu.

Programmatūras pārvaldības metode Tas ir nodot saimnieku īpašo stop simbolu (simbols ar 0x13 kodu, ko sauc par Xoff) un atjaunošanu (simbols ar kodu 0x11, ko sauc par Xon). Saņemot šīs rakstzīmes, nosūtītājai pusei ir jāpārtrauc pārraide vai jāatjauno (ja ir dati, kas gaida pārraidi). Šī metode ir vieglāka attiecībā uz iekārtu ieviešanu, tomēr nodrošina lēnāku reakciju, un, attiecīgi, pieprasa raidītāja paziņojumu par raidītāju, kad brīvā telpa tiek samazināta saņēmējā buferī noteiktā robeža.

Sinhronais pārraides režīms Tas nozīmē nepārtrauktu datu apmaiņu, kad biti seko vienam pēc otra bez papildu pauzes noteiktā ātrumā. Šis com porta režīms nav atbalstīts.

Asinhronais pārraides režīms Tas ir tas, ka katrs datu baits (un paritātes kontroles mazliet, ja tās klātbūtne), "izrādās" sinhronizējoša secība viena nulles starta bitu un viena vai vairākas atsevišķas pieturas biti. Datu plūsmas diagramma asinhronā režīmā ir attēlots attēlā.

Viens no iespējamiem uztvērēja algoritmiem sekojošs:

  1. Gaidiet uztveršanas signāla "0" līmeni (RXD, kas ir uzņēmēja, TXD ierīces gadījumā).
  2. Skaitiet pusi akumulatora ilgumu un pārbaudiet, vai signāla līmenis joprojām ir "0"
  3. Skaitīt pilnu bitu ilgumu un pašreizējo signālu līmeni, rakstiet jaunākiem datu partijai (bit 0)
  4. Atkārtojiet iepriekšējo vienumu visiem pārējiem datu bitiem
  5. Skaitīt pilnu bitu ilgumu un pašreizējo signāla līmeni, lai pārbaudītu pareizību uztveršanas, izmantojot paritātes kontroli (skatīt zemāk)
  6. Izspiediet pilnu bitu ilgumu un pārliecinieties, ka pašreizējais signāla "1" līmenis.

Aprēķinot, sērijas ports ir sērijas komunikācijas interfeiss, caur kuru informācija tiek nosūtīta vai izsniegta laikā. Lielākajai daļai personālo datoru vēstures dati tika nosūtīti caur seriālo portu ierīcēs, piemēram, modemiem, termināļiem un dažādām perifērijas ierīcēm.

Lai gan saskarnes, piemēram, Ethernet, Firewire un USB, visi sūtīt datus kā secīgu plūsmu, termins "sērijas ports" parasti identificē aparatūra, vairāk vai mazāk saderīga ar RS-232 standartu, kas paredzēts, lai mijiedarbotos ar modemu vai ar līdzīgu sakaru saiti.

Mūsdienu datori bez seriāliem portiem var pieprasīt pārveidotājus ar sērijas interfeisu, lai nodrošinātu saderību ar RS-232 sērijas ierīcēm. Sērijas ostas joprojām izmanto tādās lietojumprogrammās kā rūpnieciskās automatizācijas sistēmas, zinātniskās ierīces, tirdzniecības sistēmas un dažas rūpniecības un patēriņa preces. Servera datori var izmantot seriālo portu kā pārvaldības konsoli vai diagnostiku. Tīkla iekārtas (piemēram, maršrutētāji un slēdži) bieži izmanto konfigurācijas sērijas konsoli. Sērijas ostas joprojām tiek izmantotas šajās jomās, jo tās ir vienkāršas, lētas, un viņu konsoles funkcijas ir ļoti standartizētas un plaši izplatītas.

Com ostas pinout (RS232)

Ir 2nd šķirnes COM ports, 25-pin veco savienotāju un nomainīja tās jaunāku 9 kontaktu savienotāju.

Zemāk ir standarta standarta 9-PIND RS232 savienotāja diagramma ar savienotājiem, šāda veida savienotāju sauc arī par DB9 savienotāju.

  1. Pārvadātāja atklāšana (DCD).
  2. Datu iegūšana (RXD).
  3. Datu pārsūtīšana (TXD).
  4. Gatavība apmaiņai no uztvērēja (DTR).
  5. Zeme (GND).
  6. Gatavība apmaiņai no avota (DSR).
  7. Pieprasījums nodot (RTS).
  8. Pārraides gatavība (CTS).
  9. Zvanu signāls (RI).

RJ-45 līdz DB-9 Informācija par secīgo portu adaptera izeju pārslēgšanai

Konsoles ports ir RS-232 sērijas interfeiss, kas izmanto RJ-45 savienotāju, lai izveidotu savienojumu ar vadības ierīci, piemēram, datoru vai klēpjdatoru. Ja jūsu klēpjdatorā vai datorā nav DB-9 PIN koda, un jūs vēlaties savienot klēpjdatoru vai datoru uz slēdzi, izmantojiet RJ-45 un DB-9 adaptera kombināciju.

Db-9.RJ-45.
Datu iegūšana2 3
Datu pārsūtīšana3 6
Apmaiņas gatavība4 7
Zeme5 5
Zeme5 4
Apmaiņas gatavība6 2
Pieprasījums nodot7 8
Gatavība pārraidei8 1

Vadu krāsas:

1 melns
2 brūnas
3 sarkans
4 oranžs
5 dzeltens
6 zaļi
7 zils
8 pelēks (vai balts)

Dažreiz jums ir jāatrisina komunikācijas uzdevums elektroniska ierīce Ar datoru, vai tas ir vienkārši apmainīt datus vai tālvadības pulti. Šajā rakstā ir aprakstīts, kā to var īstenot, izmantojot seriālo portu. Tās galvenā priekšrocība ir šī standarta programmatūra windows interfeiss (API) ļauj tieši kontrolēt izejas līnijas, dodot tiešu kontroli pār tiem, un tam ir funkcija, gaidot noteiktu notikumu, kas saistīts ar COM portu. Arī RS-232 standarts, par kuru tiek veikti COM porti, ļauj izveidot un izslēgt kabeļus ierīces darbības laikā (karstā spraudnis).

Apraksts

COM ports (sērijas ports) - divvirzienu interfeiss nosūta datus secīgā formā (bit tālāk), izmantojot RS-232 protokolu. Tas ir diezgan izplatīts protokols, ko izmanto, lai sazinātos ar vienu ierīci (piemēram, datoru) ar citiem vadiem līdz 30m. Loģiskie signāli šeit atšķiras no standarta: loģiskās vienības līmenis ir no +5 līdz + 15V, loģiskās nulles līmenis ir no -5 līdz -15V, kas prasa papildu ķēdes transformācijas, bet nodrošina labu trokšņa imunitāti.

Apsveriet 9 kontaktu savienotāju (DB-9m). Zemāk ir tā pinout:

Izejas № Nosaukt Signāla raksturs Signāls
1 DCD. Ieeja Datu pārvadātājs atklāj.
2 Rxd. Izeja Pārsūtiet datus.
3 TXD. Ieeja Saņemt datus.
4 DTR. Izeja Datu termināls gatavs
5 GND. - Zeme
6 DSR. Ieeja Datu kopa gatavs
7 Rts Izeja Pieprasījums nosūtīt.
8 CTS. Ieeja Skaidrs, lai nosūtītu.
9 Ri. Ieeja Gredzena indikators

Lielākā daļa no visiem, mēs būsim ieinteresēti PINS 2 (datu pārsūtīšana), 3 (Datu saņemšana) un 5 (zeme). Tas ir minimālais noteikts, lai nodrošinātu divpusējo ierīču iespēju.

Sākot detalizēti par protokola aprakstu, nebūs. Jo tas ir GOST un tamlīdzīgi. Tāpēc mēs dosimies tālāk un runāsim par to, kā pārvaldīt šo zvēru.

Pielietojums

Kā jau minēts, RS-232 līmenis atšķiras no standarta TTL līmeņiem. Tāpēc mums ir nepieciešams kaut kādā veidā pārvērst sprieguma vērtības. Tiem. Padarīt 5V no + 15V un 0V no -15V (un otrādi). Viens no veidiem (un, iespējams, vienkāršākais) - īpaša maksimālā Max232 mikroshēmas izmantošana. Ir viegli saprast, un tajā pašā laikā var pārvērst divus loģiskus signālus.

Zemāk ir tās iekļaušanas shēma:


Es domāju, ka nevajadzētu būt grūtībām. Tas ir viens no šīs mikroshēmas izmantošanas: datu pārraide no mikrokontrollera uz datora un otrādi. Nosūtītais signāls nāk uz kājām t x.Vienā pusē un uz r x.No otras puses. Ievades signāli tiek noņemti no t x.Un R. x.Attiecīgi.

Programmēšana

Lai sāktu ar, runāsim par programmēšanas ostām zemā līmenī. Tāpēc tas būs pareizāks. Es pavadīju daudz nervu, kas nodarbojas ar šo interfeisu, līdz es sāku iedziļināties tās darba principā zemākā līmenī nekā, nevis drīzāk vienkārša pārsūtīšana Simboli. Ja ir skaidrs, tas nozīmē, ka nebūs problēmu ar augsta līmeņa valodām.

Zemāk ir COM ostu adreses, ar kurām mums būs jāstrādā:

Ostas nosaukums Adrese IRQ.
Com 1. 3f8h 4
Com 2. 2f8h 3
Com 3. 3E8h 4
Com 4. 2E8h. 3

Tie var atšķirties. Iestatiet vērtības BIOS iestatījumos. Tā ir galvenās adreses. Tie būs atkarīgi arī no reģistru adreses, kas atbild par ostu darbu:

Adrese Dulbīt Lasīšana / rakstīšana Abreviatūra Reģistrēt nosaukumu
+ 0 =0 Rakstīt Raidītāja turēšanas buferis.
=0 Lasīt. Uztvērēja buferis.
=1 Lasīt rakstīt. Dalītājs aizturēts zems baits
+ 1 =0 Lasīt rakstīt. Ier Pārtraukt iespējot reģistru
=1 Lasīt rakstīt. Dalītājs aizbīdnis augsts baits
+ 2 - Lasīt. Iir. Pārtraukt identifikācijas reģistru
- Rakstīt FCR. FIFO kontroles reģistrs
+ 3 - Lasīt rakstīt. Lcr. Līnijas kontroles reģistrs
+ 4 - Lasīt rakstīt. Mcr. Modema kontroles reģistrs
+ 5 - Lasīt. LSR. Līnijas statusa reģistrs.
+ 6 - Lasīt. MSR. Modema statusa reģistrs.
+ 7 - Lasīt rakstīt. Scratch Register.

Pirmā kolonna ir reģistra adrese attiecībā pret pamata. Piemēram, attiecībā uz COM1: LCR reģistra adrese būs 3F8H + 3 \u003d 3fb. Otrajā kolonnā - DLAB (dalītāja aizbīdņa piekļuves bits), kas definē atšķirīgu mērķi vienam un tam pašam reģistram ...e. Tas ļauj darboties ar 12 reģistriem, izmantojot tikai 8 adreses. Piemēram, ja DLAB \u003d 1, tad atsaucoties uz 3f8h, mēs iestatīsim jaunākās baitu pulksteņa ģeneratora frekvences vērtību. Ja DLAB \u003d 0, pēc tam atsaucoties uz to pašu adresi, nosūtītais vai pieņemtais baits tiks ierakstīts šajā reģistrā.

Nulles reģistrs

Tas atbilst reģistriem / datu pārraides reģistriem un ģeneratora frekvences dalītāja koeficientu. Kā minēts iepriekš, ja DLAB \u003d 0, tad reģistrs tiek izmantots, lai ierakstītu saņemtos / pārraidītos datus, ja tas ir 1, tad ir iestatīts vērtība apakšējā baitu pulksteņa ģeneratora frekvences dalītāja. Datu pārraides ātrums ir atkarīgs no šīs frekvences vērtības. Vecākais dalītāja baits ir uzrakstīts uz nākamo atmiņas šūnu (I.E., COM1 ostai, tas būs 3f9h). Zemāk ir atkarīga no datu pārraides ātruma no dalītāja koeficienta:

Pārtraukt iespējot reģistru (Ier)

Ja DLAB \u003d 0, tas tiek izmantots kā reģistra reģistrs pārtrauc no asinhronas adaptera, ja DLAB \u003d 1, tad tas nosaka vecāko baitu pulksteņa ģeneratora frekvencē.

Pārtraukt identifikācijas reģistru (iir)

Pārtraukšana ir notikums, kurā sākas galvenās programmas izpilde un sākas pārtraukuma procedūra. Šis reģistrs nosaka pārtraukuma veidu.

Līnijas kontroles reģistrs (LCR)

Tas ir kontroles reģistrs.

Bitu 7. 1 Dalītājs Fiksatoru piekļuves bits - datu apmaiņas ātrums
0 Kopējais režīms (pārtraukt kontroli, uztveršanu / datu pārraidi)
Bits 6. MIMIC līnijas pārtraukums (nosūta vairāku nulšu secību)
Biti 3 - 5 Bits 5. 4. Bitu 3. Ticības izvēle
X. X. 0 Nav paritātes
0 0 1 Nepāra paritāte.
0 1 1 Pat paritāte.
1 0 1 Augsta paritāte (lipīga)
1 1 1 Zema paritāte (lipīga)
Bit 2. Stop Bitu skaits
0 1 STOP BIT
1 2 Stop biti pie 6,7 vai 8 datu biti vai 1.5 pārtraukt biti ar 5 datu biti.
Biti 0 un 1 Bits 1. Bits 0. Datu bitu skaits
0 0 5 biti
0 1 6 biti
1 0 7 biti
1 1 8 biti

Gatavības pārbaude nozīmē citas bitu pārraidi - gatavības punktu. Tās vērtība ir noteikta tādā veidā, ka bitu paketē kopējais vienību skaits (vai nulles) bija pat vai nepāra, atkarībā no ostas reģistru uzstādīšanas. Šis bits tiek izmantots, lai noteiktu kļūdas, kas var rasties datu pārraides laikā līnijas traucējumu dēļ. Saņēmēja ierīce atkārtoti aprēķina datu paritāti un salīdzina rezultātu ar paritātes bitu. Ja paritāte nav sakritusi, tiek uzskatīts, ka dati tiek nosūtīti ar kļūdu.

STOP BIT nozīmē beigt datu pārsūtīšanu.

Modema kontroles reģistrs (MCR)

Modema kontroles reģistrs.

Bits Vērtība
0 Line DTR.
1 RTS līnija.
2 Līnija out1 (rezerves)
3 Līnija out2 (rezerves)
4 Sākot diagnostiku, ievadot asinhrono adapteri, slēgta tās izejā.
5-7 Vienāds 0.

Līnijas statusa reģistrs (LSR)

Reģistrēties definējot līnijas statusu.

Bits Vērtība
0 Dati tiek iegūti un gatavi lasīšanai, automātiski atiestatīt datus.
1 Pārplūdes kļūda. Tika pieņemts jauns datu baits, un iepriekšējais iepriekšējais nebija lasīts programmā. Iepriekšējais baits ir zaudēts.
2 Readnersner kļūda tiek atiestatīta pēc līnijas statusa nolasīšanas.
3 Sinhronizācijas kļūda.
4 Ir atklāts pieprasījums pārtraukt pārraides "pārtraukumu" - garu nulšu rindu.
5 Raidītāja uzglabāšanas reģistrs ir tukšs, jūs varat ierakstīt jaunu baitu pārraidei.
6 Raidītāja maiņas reģistrs ir tukšs. Šis reģistrs saņem datus no uzglabāšanas reģistra un pārvērš tos ar sērijas veidu pārraidei.
7 Time-out (ierīce nav savienota ar datoru).

Modema statusa reģistrs (MSR)

Modema statusa reģistrs.

Tieši tā. Darbojoties ar šiem reģistriem, jūs varat tieši sazināties ar COM portu, kontrolēt datu pārraidi un saņemšanu. Ja jūs nevēlaties sajaukt ar atmiņu, jūs varat izmantot jau gatavus komponentus dažādām programmēšanas vidēm: C ++, VB, Delphi, Pascal utt. Viņi ir intuitīvi, tāpēc es domāju, ka šeit nav vērts uzmanību.

Stopbits. - Iestata pieturas bitu skaitu. Lauks varbūt
Veikt šādas vērtības:


  • Onestopbit. - viens pieturas mazliet;
  • Viens5stopbit. - pusotru stundu biti (praktiski nav
    izmanto);
  • Twostopbit. - divi pieturas biti.

Pēc tam, kad visi DCB struktūras lauki ir aizpildīti, jums ir nepieciešams
Ostas konfigurēšana, zvanot uz SetCommstate funkciju:

Bool setcommstate (

Rokturis hfile

LPDCB LPDCB.

Veiksmīgas pabeigšanas gadījumā funkcija atgriezīsies atšķiras no nulles
Vērtība un kļūdu gadījumā - nulle.

Otrā obligātā obligātā struktūra ostas konfigurēšanai ir
Kompleksa struktūra. Tas nosaka pagaidu aizkaves parametrus
Saņemot. Šeit ir šīs struktūras apraksts:

typedef struktūru _comm33

DWORD READINTERVALTIOUT;

DWORD READTOTALTIOUTMULTIPTER;

DWORD READTOTOLTIOUTCONSTANT;

Dword writetoltimeOutmultiplier;

DWORD WRITETOLTIOUTCONSTANT;

) Komiteju, * lpcommimeouts;

Komiteju struktūras laukiem ir šādas vērtības:


  • ReadIntervaltimeout. - Maksimālais laika intervāls
    (milisekundēs) pieļaujama starp diviem lasāmiem
    Sakaru līnija pēc secīgām rakstzīmēm. Laikā
    Laika perioda lasīšanas laiks sāk paļauties no
    Pirmā simbola saņemšana. Ja intervāls starp diviem
    Secīgas rakstzīmes pārsniegs norādīto vērtību, darbību
    Lasīšana un visi buferis uzkrātie dati tiek pārraidīti
    programmā. Nulles vērtība Šis lauks nozīmē, ka dots
    Time-out netiek izmantots.
  • ReadtotaltimeOutmultiplier - Norāda reizinātāju (


    reizināts ar lasāmo rakstzīmju skaitu.
  • ReadtotaltimeOutConstant - Norāda nemainīgu (in

    Lasīšanas operācijas. Par katru lasīšanas darbību šī vērtība
    PLUS Reizināšanas ReadtToTallTTIOUTMULTIPLIELS
    Lasāmo rakstzīmju skaits. Nulles lauki
    ReadtotaltimeOutmultiplier un ReadToTalTameOutConstant nozīmē
    Ka nav izmantots vispārējais lasīšanas darbības taimauts.
  • Writetotaltimeoutmultiplier - Norāda reizinātāju (
    milisekundēm), ko izmanto, lai aprēķinātu kopējo taimautu

    reizināts ar rakstīto rakstzīmju skaitu.
  • Writetotaltimeoutconstant - Norāda nemainīgu (in
    milisekundēm), ko izmanto, lai aprēķinātu kopējo taimautu
    Ierakstīšanas operācijas. Katrai ieraksta darbībai šī vērtība
    Pievienots Raksturinātāja reizināšanas rezultātam
    Rakstāmu rakstzīmju skaits. Nulles lauki
    WritetotaltimeOutmultiplier un writetotaltkārteOutConstant nozīmē
    Ka netiek izmantots reģistrācijas operācijas taimauts.

Nedaudz sīkāk par taimautiem. Ļaujiet lasīt no ostas 50
Simboli ar ātrumu 9 600 biti / s. Ja tiek izmantoti 8 biti
uz simbola, papildus paritātes un vienas pieturas mazliet, tad viens
Simbols fiziskajā līnijā veido 11 bitus (ieskaitot sākuma bitus).
Tas nozīmē 50 rakstzīmes ar ātrumu 9 600 biti tiks pieņemti

50 × 11/9600 \u003d 0.0572916 ar

vai apmēram 57,3 milisekundes, nodrošināja nulles intervālu
starp secīgām rakstzīmēm. Ja intervāls starp
Rakstzīmes ir aptuveni puse no viena pārraides laika
simbols, I.E. 0.5 milisekundes, uzņemšanas laiks būs

50 × 11/9600 + 49 × 0,0005 \u003d 0,0817916

vai aptuveni 82 milisekundes. Ja vairāk lasīšanas procesā
82 milisekundes, tad mums ir tiesības pieņemt, ka radās kļūda
ārējās ierīces darbu un var pārtraukt lasīšanu, tādējādi
izvairoties no programmas iesaldēšanas. Tas ir vispārējais taimauta darbība
lasījums. Tāpat ir kopējais ieraksta darbības taimauts.

Formula, lai aprēķinātu kopējo taimauta darbību, piemēram,
Lasīšana izskatās šādi:

Numofchar X ReadtotaltimeOutmultiplier +
ReadtotaltimeOutConstant

ja Numoftchar ir lasīšanas operācijas pieprasīto rakstzīmju skaits.

Mūsu gadījumā laika ierakstīšanu nevar izmantot un
Iestatiet tos vienādus ar nulli.

Pēc aizpildot komisijas struktūru, jums ir nepieciešams zvanīt
Timeout instalācijas funkcija:

Bool setcommimeouts (

Rokturis hfile

Lpcommimeouts LPCOMMTIOUS.

Tā kā pārvades uztveršanas operācijas tiek veiktas ar zemu ātrumu, \\ t
Izmantoja datu buferizāciju. Lai iestatītu uztveršanas bufera izmēru un
Pārskaitījumi ir jāizmanto funkcija:

Bool setupcomom (

Rokturis hfile

DWORD DWINQUEEUE,

DWORD DWOUTQUEEUEE.

Pieņemsim, ka jūs apmainīsieties ar ārējo ierīču paketēm
informācija par 1024 baitu lielumu, tad saprātīgs buferu lielums
Būs vērtība 1200. SETUPCOMM funkcija ir interesanta, jo tas var
Vienkārši ņemiet savu izmēru atzīmēt, veicot savas korekcijas vai
Kopumā noraidīt jūs piedāvātos bufera izmērus - šajā gadījumā
Šī funkcija ir pabeigta ar kļūdu.

Es sniegšu piemēru atvēršanas un konfigurēšanas secīgu
porta com1. Par īsumu - bez kļūdu definīcijas. Šajā piemērā
Osta atveras strādāt ar ātrumu 9 600 biti / c, ko izmanto 1
STOP BIT, paritātes bitu netiek izmantots:

#Include.

. . . . . . . . . .

Rokturi;

Komiteju komandas;

Dcb dcb;

rokturis \u003d Createfile ("COM1", GENERIC_READ | Generic_write,
Nulle, , Open_existing, File_flag_overlapped, null);

Setupcomm (rokturis, Sizebuffer, SizeBuffer);

Getcommstate (rokturis, & dcb);

dcb.baudrate \u003d cbr_9600;

dcb.fbinary \u003d taisnība;

dcb.foutxctsflow \u003d FALSE;

dCB.FOUTXDSRFLOW \u003d FALSE;

dcb.fdtrcontrol \u003d dtr_control_handhake;

dcb.fdrsensitība \u003d FALSE;

dcb.fnull \u003d false;

dcb.frtscontrol \u003d rts_control_disable;

dcb.fabortonerror \u003d FALSE;

dcb.byteesize \u003d 8;

dcb.Parity \u003d narkomānija;

dcb.stopbits \u003d 1;

SetCommstate (rokturis, & DCB);

Commtimeouts.readintervaltimeout \u003d 10;

Commtimeouts.ReadtotaltimeOutmultiplier \u003d 1;

// Šo laika vērtības - Outs ir pietiekami, lai pārliecinātos
uzņemšana

// pat ar ātrumu 110 baude

Comm3outs.Readtotaltimeoutconstant \u003d 100;

// izmantots b Šis gadījums Tāpat kā gaidīšanas laiks
paku

Comm3outs.writeTaltkārteoutmultiplier \u003d 0;

Komandaouts.writeTaltkārteoutconstant \u003d 0;

SetCommimits (rokturis un komandas);

Purgecomm (rokturis, purge_rxclear);

Purgecomm (rokturis, purge_txclear);

Pēc ostas atvēršanas pirmā lieta, kas jums jāzaudē, tā
Tāpat kā uztveres un transmisijas buferos var būt "atkritumi". Tāpēc B.
Piemēra beigas, ko mēs izmantojām, kas mums nav zināma mums
Purgecomm:

Bool Purgecomm (

Rokturis hfile

DWORD DWFLAGS

Šī funkcija var veikt divus uzdevumus: notīriet rindu
Vadītāja uztveršana un pārraide vai visu darbību pabeigšana
I / O Ko tieši darbības, lai veiktu, iestatīts uz citu
Parametrs:


  • Purge_txabort
    ieraksti, pat ja tie nav pabeigti;
  • Purge_rxabort. - nekavējoties pārtrauc visas darbības
    lasījums, pat ja tie nav pabeigti;
  • Purge_txclear - dzēš pārvades rindu vadītāja;
  • Purge_rxclear - Notīra uzņemšanas rindu
    Vadītājs.
    Šīs vērtības var apvienot, izmantojot uzvarētu
    Operācijas vai. Pēc kļūdām ieteicams tīru buferi
    pieņemšana un pēc pabeigšanas ar ostu.

Ir pienācis laiks apsvērt tieši operācijas
Lasiet rakstiet ostai. Kā strādā ar izmantotajiem failiem
Redfile un rakstītās funkcijas. Šeit ir viņu prototipi:

BOOL READFILE (

Rokturis hfile

LPVOID LPBUFFER,

Dword nnumofbytestoread,

LPDWord lpnumofbytesread,

Lpoverlapped lpoverlapped.

BOOL WINDFILE (

Rokturis hfile

LPVOID LPBUFFER,

Dword nnumofbytewrite,

LPDWord Lpnumofbyteswritenten,

Lpoverlapped lpoverlapped.

Apsveriet šo funkciju parametru piešķiršanu:


  • hfile. - deskriptors atver failu Komunikācija
    osta;
  • lpbuffer. - bufera adrese. Lai rakstītu darbības datus no
    Šis buferis tiks nosūtīts uz ostu. Lai lasītu darbību šajā jomā
    Buferi novietos no līnijas veiktajiem datiem;
  • nnumofbytestoread, nnumofbytewrite. - sagaidāmo skaitu
    saņemt vai paredzēt pārvades baitu;
  • nnumofbytesread, nnumofbyteswritten. - faktisko skaitu
    pieņemti vai nosūtīti baiti. Ja to pieņem vai nodod mazāk
    dati, nekā pieprasīts, tas liecina uz diska failu
    Par kļūdu, un sakaru ostā ne vienmēr ir.
    Iemesls taimautiem.
  • Lpoverlapped. - pārklājās struktūras adrese
    Par asinhronām operācijām.

Normāla pabeigšanas gadījumā funkcija tiek atgriezta
atšķiras no nulles, kļūdas gadījumā - nulle.

Es sniegšu piemēru lasīšanas un rakstīšanas darbību:

#Include.

…………..

DWORD NUMBYTS, NUMBYTES_OK, TEMP;

Comstat comstate;

Pārklājās pārklāšanās;

char buf_in \u003d "hello!";

numBytes \u003d 6;

// Ja temp nav nulle, tas nozīmē, ka osta ir spējīga
Kļūdas

ja (! Temp) WriteFile (rokturis, Buf_in, NumBytes,
& Numbytes_ok, un pārklāšanās);

Clearcomerror (rokturis, & temp, & Comstate);

ja (! Temp) ReadFile (rokturis, buf_in, NumBytes un NumBytes_OK,
& Pārklājas);

// numbytes_OK mainīgajā satur reālu skaitli
nosūtīts

// Pieņemts baits

Šajā piemērā mēs izmantojām divus nezināmus mani agrāk
Comstat un pārklāti konstrukcijas, kā arī Clearcomerror funkcija. Priekš
Mūsu komunikācijas gadījums "trīs vadu struktūrā pārklājas
Apsveriet (vienkārši izmantot kā piemērā). Prototipa funkcija
ClearCommerror ir veidlapa:

Bool clearcomerror (

Rokturis hfile

LPDWord Lperrors,

Lpcomstat lpstat.

Šī funkcija atiestata ostas kļūdas zīmi (ja tāds ir
vietu) un atgriež informāciju par stāvokli ostas struktūrā
Comstat:

typedef struktūra _comstat.

DWORD FCTSHOLD: 1;

DWORD FDSRhold: 1;

DWORD FRLSDHOST: 1;

DWORD FXOffhold: 1;

DWORD fxoffsent: 1;

DWORD FEOF: 1;

DWORD FTXIM: 1;

DWORD FRERVED: 25;

DWORD CBINQUE;

Dword cboutque;

) Comstat, * lpcomstat;

Mēs varam izmantot divas šīs struktūras laukus:


  • Cbinks - rakstzīmju skaits saņēmējā buferī. Šie simboli
    ņemti no līnijas, bet vēl nav lasījuši ar Readfile funkciju;
  • Cboutque - rakstzīmju skaits pārraides buferī. Šie
    Simboli vēl nav nosūtīti uz līniju.

Atlikušās šīs struktūras jomas satur informāciju par
Kļūdas.

Visbeidzot, pēc darba pabeigšanas ar ostu, tas būtu jāaizver.
Objekta aizvēršana Win32 izpilda closehandle funkciju:

Bool chighthandle (

Rokturis Hopjecj.

Mūsu vietnē jūs varat atrast pilnu klases tekstu darbam ar
secīga osta asinhronā režīmā "trīs vados", un
Arī programmas piemērs, izmantojot šo klasi. Viss šis
Rakstīts zem Builder C ++, bet tāpēc, ka tiek izmantotas tikai funkcijas.
API Win32, programmas teksts ir viegli maināms jebkuram C ++ kompilatoram.
Iespējams, ka klase nav rakstīta diezgan "Saskaņā ar noteikumiem" - es jautāju
Atvainojiet, autors nav "pareizais" programmētājs un raksta tā
Kā tas ir ērts j.

Es atzinīgi vērtēju ikvienu vēlreiz jūsu emuāra lapās un šodien es vēlos pateikt, kā savienot com uSB ports Windows. Runāsim, ka tas ir un par to, kas tiek izmantots. Es domāju par iesācēju tīkla administratoriem, un tikai pieredzējušiem lietotājiem tas būs interesants, man, vienā reizē tas bija tikai kāda veida maģija, kas ļauj konfigurēt servera iekārtas.

Kas ir savienots ar COM portu

Izmantojot COM portu iepriekš pieslēgtos modemus, pelēm. Tagad to izmanto, lai izveidotu savienojumu ar avotiem nepārtraukta jauda, lai sazinātos ar iegulto skaitļošanas sistēmu aparatūras izstrādi, \\ t satelītu uztvērēji, Kases aparāti, ar ierīcēm objektu drošības sistēmām, kā arī ar daudzām citām ierīcēm.

Izmantojot COM portu, varat savienot divus datorus, izmantojot tā saukto "nulles modema kabeli" (skatīt zemāk). Izmanto no MS-DOS reizes, lai sūknētu failus no viena datora uz citu, Unix termināla piekļuvei citai iekārtai un Windows (pat modernā) - par kodola līmeņa atkļūdotāju.

Bet tīkla pasaulē izmantojot comsavienojiet ar tīkla ierīču konsoles ostu (slēdži, maršrutētāji, piemēram, Cisco vai kadiķi)

Kas ir savienojuma ķēde, izmantojot seriālo portu. Ir adapteri, piemēram, no St-Lab vienas USB galā, kuru izveidojat savienojumu ar datoru, un otrais ir COM ports.

Instalēšana Com Drivers USB portu Windows

Diemžēl Windows pievienotajās ierīcēs, USB uz COM ne vienmēr tiek automātiski instalēta sistēmā, un jums ir jāmeklē viņiem vadītājiem. Ja esat to iegādājies pats, tad disks tika iekļauts vadītājiem, un jūs varat to izmantot, ja tas nav, tad apskatiet, kā atrast draiverus.

Atveriet ierīces pārvaldnieku sistēmā Windows. Ja jūs nezināt, kā, tad nospiediet Ctr + Pause Breake, vai nospiediet Win + R un ievadiet DevMGMT.MSC logā. Kā jūs varat redzēt Osts sadaļā (COM un LPT), es atradu trešajā com ostas nezināmā vadā, un autovadītāji neatrada viņam no sistēmas, kas dzeltenā ikona stāsta mums.

Iet uz īpašībām Šī ierīce Un izvēlieties aprīkojuma ID, jums būs, kaut kas pēc tipa USB \\ Vid_067B & PID_2303 & REV_0300, šeit jūs kopēt to un meklēt Google vai Yandex.

Pēc tam noklikšķiniet uz labo klikšķi uz ierīces ierīces pārvaldniekā un izvēlieties Instalēt draiverus, norādiet ceļu uz tiem un ielieciet, ja viss ir OK, tad jums ir ikona pazudīs Brīdinājumi.

Tālāk jūs jau varat izmantot COM ostas iespējas, izmantojot šādus komunālos pakalpojumus špakteles līdzība, kur izvēlaties Serial un norādiet vēlamo COM portu, to var redzēt tajā pašā ierīces pārvaldniekā.

Es ceru, ka jūs uzzināju un sapratāt, kā savienot COM USB portu Windows.