Mis on arvuti kassiport. Millised on personaalarvuti sadamad? Ja mis nad on? Kuidas keelata USB-pordid, kui arvuti välja lülitate

RS-232 liidese kirjeldus, kasutatud ühendused ja väljundite, signaalide, andmevahetuse protokolli vorming.

üldkirjeldus

RS-232 liides, mis nimetatakse üsna ametlikult "EIA / TIA-232-E", kuid mida tuntakse paremini kui "com port" liides, oli varem üks levinumaid liideseid arvutitehnika. Ta vastab ikka veel lauaarvutidVaatamata kiiruse ja "intelligentsete" liideste nagu USB ja tulepalli välimusele. Selle eelised raadioamatööri seisukohast võivad olla tingitud madala minimaalse kiiruse ja lihtsuse rakendamise protokolli omatehtud seadmesse.

Füüsilise liidese rakendatakse ühe kahe liigi ühendused: DB-9M või DB-25M, viimane hetkel saadaval arvutites praktiliselt ei leitud.

9-PIN-pistiku järelduste määramine


9-PIN DB-9M tüüpi pistik
Kontaktandmed
Signaalide suund on näidustatud peremehe suhtes (arvuti) suhtes
Kontakt Signaal Suund Kirjeldus
1 Cd sissepääs Avastatud laadimine
2 Rxd. sissepääs Aktsepteeritud andmed
3 TXD. Väljund Edastatud andmed
4 DTR. Väljund Vastuvõtja
5 GND. - Ühine traat
6 DSR. sissepääs Seade on valmis
7 Rts Väljund Vastuvõtja edastamiseks valmis
8 CTS. sissepääs Seade on valmis vastu võtma
9 Ri- sissepääs Leiti väljakutse

15-pin-pistiku järelduste nimetamine

Kontakt Signaal Suund Kirjeldus
1 Kilp - Ekraan
2 TXD. Väljund Edastatud andmed
3 Rxd. sissepääs Aktsepteeritud andmed
4 Rts Väljund Vastuvõtja edastamiseks valmis
5 CTS. sissepääs Seade on valmis vastu võtma
6 DSR. sissepääs Seade on valmis
7 GND. - Ühine traat
8 Cd sissepääs Avastatud laadimine
9 - - Reserv
10 - - Reserv
11 - - Pole kasutatud
12 SCD. sissepääs Kandja tuvastatakse. # 2
13 Scts. sissepääs Seade on valmis vastuvõtule # 2
Kontakt Signaal Suund Kirjeldus
14 Stxd. Väljund Edastatud andmed # 2
15 Trük sissepääs Saatja võtmine
16 Srxd. sissepääs Aktsepteeritud andmed # 2
17 Rcc sissepääs Vastuvõtja
18 Lloop. Väljund Kohalik silmus
19 SRTS. Väljund Host on valmis edastama # 2
20 DTR. Väljund Vastuvõtja
21 Rlope. Väljund Välimine silmus
22 Ri- sissepääs Leiti väljakutse
23 DRD. sissepääs Andmete kiirus määratakse kindlaks
24 Tritsi Väljund Võtke välise saatja
25 Katse sissepääs Katserežiim

Tabel näitab, et 25-pin-liides iseloomustab täieõigusliku teise vastuvõtukanali olemasolu (signaalid "# 2"), samuti arvukad täiendavad juhtimis- ja juhtimissignaalid. Sageli aga vaatamata kohalolekust arvuti "lai" pistik, täiendavaid signaale lihtsalt ei ole ühendatud seda.

Elektrilised omadused

Loogiline saatja tasemed: "0" - +5 kuni +15 volti, "1" - -5 kuni -15 volti.

Vastuvõtja loogiline tase: "0" - üle +3 volti, "1" - alla -3 volti.

sisendresistentsus Vastuvõtja vähemalt 3 com.

Need omadused on määratletud standardiga miinimumina, tagades seadme ühilduvuse, kuid tegelikud omadused on tavaliselt oluliselt paremad, mis võimaldab ühelt poolt, et toita madala võimsusega seadmeid sadamast (näiteks arvukad omatehtud andmekaablid on disainitud mobiiltelefonid) ja teisele - esitama sadama sadamasse ümberpööratud TTL-i tase bipolaarsignaali asemel.

Põhi liidese signaalide kirjeldus

Cd - Seadme seab selle signaali, kui see tuvastab kandja vastuvõetud signaali. Tavaliselt kasutavad seda signaali modemite poolt, mis teatavad sellest vastuvõtvast töö modemi avastamisest teise otsa teise otsa.

Rxd. - Võta vastuvõtva andmed seadmest. Üksikasjalikult kirjeldatud sektsioonis "Andmevahetuse protokoll".

TXD. - Andmete vastuvõtva ülekandeliin seadmele. Üksikasjalikult kirjeldatud sektsioonis "Andmevahetuse protokoll".

DTR. - Host määrab selle signaali andmete vahetamiseks valmis. Tegelikult on signaal seatud, kui avate sideprogrammi sadama ja jääb sellesse riiki kogu aeg, kuni sadam on avatud.

DSR. - Seadme seab selle signaali sisselülitamisel ja valmis andmete vahetamiseks vastuvõtva abil. Selle ja eelmise (DTR) signaale tuleb installida andmete vahetamiseks.

Rts - Hostis seab selle signaali enne andmete edastamise alustamist seadmele ja ka signaale valmisoleku andmete vastuvõtmiseks seadmest. Kasutatakse andmete vahetamise riistvara kontrolli all.

CTS. - Seadme seab selle signaali vastuseks eelmisele vastuvõtva installimisele (RTS), kui see on valmis võtma andmeid (näiteks siis, kui eelmised vastuvõtva andmeandmed saadetud andmed edastatakse reale, või vahepeal on vaba ruum puhver).

Ri- - seade (tavaliselt modem) seab selle signaali kaugsüsteemist kõne vastuvõtmisel, näiteks vastuvõtmisel telefonikõneKui modem on konfigureeritud kõnede vastuvõtmiseks.

Andmevahetuse protokoll

RS-232 protokoll on olemas kaks andmehaldusmeetodi: riistvara ja tarkvara, samuti kaks ülekanderežiimi: sünkroonne ja asünkroonne. Protokoll võimaldab teil kasutada mõnda juhtimismeetodeid koos mis tahes ülekanderežiimis. Töötamine ilma voolujuhtimiseta töötamine on lubatud ka, mis tähendab vastuvõtva konstantset valmisolekut ja seadet andmete vastuvõtmiseks, kui ühendus on paigaldatud (DSR-signaalid).

Riistvara juhtimise meetod Seda rakendatakse RTS-i ja CTS-signaalide abil. Andmete vastuvõtva (arvuti) edastamiseks seab RTS-signaal ja ootab CTS-signaali paigaldamiseks, mille järel andmed käivitatakse, kuni CTS-signaal on määratud. CTS-signaali kontrollitakse vahetult enne järgmise baidi edastamise alustamist, nii et Byte, mis on juba hakanud edastama, edastatakse täielikult sõltumata CTS-väärtusest. Pool duplexi andmevahetuse režiimis (seade ja vastuvõtja edastavad andmed omakorda täis dupleksrežiimis, saavad nad seda samal ajal teha) RTS-signaali eemaldamine vastuvõtja poolt tähendab selle üleminekut vastuvõturežiimi.

Tarkvarahalduse meetod Special Stop-sümbolite vastuvõtmine (sümbol 0x13-koodiga, nimega Xoff) ja uuendamise (sümbol koodi 0x11, nimetatakse xon). Nende tähemärkide vastuvõtmisel peab edastava partei lõpetama ülekande vastavalt või jätkake seda (kui edastamine toimub andmete ootamise korral). See meetod on seadmete rakendamise osas lihtsam lihtsam, annab aga aeglasema reaktsiooni ja vastavalt vajadusele, et saatja saatja teavitamine, kui vaba ruum on vastuvõtvas puhvris teatud piirini vähenenud.

Sünkroonne ülekanderežiim See tähendab pidevat andmevahetust, kui bitid järgivad üksteise järel üksteise järel ilma täiendavate pausideta antud kiirusel. See com sadama režiim ei toetata.

Asünkroonne ülekanderežiim See on see, et iga andmebaasi (ja pariteedi kontrolli natuke, selle kohaloleku korral), "selgub" ühe nulli algus-bitise sünkroniseerimisjärjestuse ja ühe või mitme ühe peatamise bitti. Andmevoolu diagramm asünkroonirežiimis on esitatud joonisel.

Üks vastuvõtja võimalikke algoritme järgnev:

  1. Oodata vastuvõtusignaali "0" taset (RXD vastuvõtva, TXD puhul seadme puhul).
  2. Loendage pool aku kestust ja kontrollige, kas signaali tase on ikka veel "0"
  3. Count Full Bit kestus ja praegune signaali tase Kirjutage noorematele andmepartiile (bit 0)
  4. Korrake eelmist elementi kõigi teiste andmete bittide jaoks
  5. Loendage täieliku bitise kestus ja praegune signaali tase, et kontrollida vastuvõtu õigsuse kontrollimiseks pariteedi kontrolli abil (vt allpool)
  6. Pigistage kogu bitiku kestus ja veenduge, et signaali praegune tase "1".

Arvutamisel on seeriaportimine seeriaviisilise liidese kaudu, mille kaudu teave edastatakse või väljastatakse korraga. Enamiku personaalarvutite ajaloo eest edastati andmed seeriate sadamate kaudu seadmete, näiteks modemite, terminalide ja erinevate välisseadmete kaudu.

Kuigi liidesed nagu Ethernet, FireWire ja USB, kõik saadavad andmeid järjestikuse vooguna, mõiste "seeriaport" tavaliselt identifitseerib riistvara, Rohkem või vähem ühildub RS-232 standardiga, mis on ette nähtud modemiga või sarnase sideühendusega suhtlemiseks.

Kaasaegsed arvutid ilma seerianuppideta võib vajada muundurite seerialiidese, et tagada ühilduvus RS-232 seeriaseadmetega. Seeriaporte kasutatakse ikka veel sellistes rakendustes nagu tööstusautomaatika süsteemid, teaduslikud seadmed, müügi süsteemid ja mõned tööstuslikud ja tarbekaubad. Server arvutid võivad kasutada seeriaporti juhtimiskonsooli või diagnostikana. Võrguseadmed (näiteks ruuterid ja lülitid) kasutavad sageli konfiguratsiooni seerianuppe. Nendel aladel kasutatakse veel seeriaporte, kuna need on lihtsad, odavad ja nende konsooli funktsioonid on kõrgelt standardiseeritud ja laialt levinud.

COM PORT PINOUT (RS232)

Seal on 2. sortide COM-port, 25-pin vana pistik ja asendati selle uuema 9-pin-pistikupesa.

Allpool on diagramm standard standard 9-pin RS232 pistik pistikutega, seda tüüpi pistik nimetatakse ka DB9-pistikuks.

  1. Vedaja tuvastamine (DCD).
  2. Andmete hankimine (RXD).
  3. Andmeedastus (TXD).
  4. Vastuvõtja vahetamise valmisolek (DTR).
  5. Maa (GND).
  6. Valmidus vahetamiseks allikast (DSR).
  7. Ülekande taotlus (RTS).
  8. Käigukasti valmistus (CTS).
  9. Kõnesignaal (RI).

RJ-45-d DB-9 Teave järjestikuse pordi adapteri väljundi kohta

Konsooli sadam on RS-232 seerialiides, mis kasutab RJ-45 pistikut juhtimisseadmega ühendamiseks, näiteks arvutiga või sülearvutiga. Kui sülearvutil või arvutil ei ole DB-9 PIN-koodi ja soovite lüliti ühendada sülearvuti või arvuti, kasutage RJ-45 ja DB-9 adapteri kombinatsiooni.

DB-9.RJ-45.
Andmete hankimine2 3
Andmete ülekanne3 6
Vahetus valmisolek4 7
Maa5 5
Maa5 4
Vahetus valmisolek6 2
Ülekande taotlus7 8
Valmisolekut edastamiseks8 1

Traadi värvid:

1 must
2 pruun
3 punane
4 oranž
5 kollane
6 roheline
7 sinine
8 hall (või valge)

Mõnikord peate suhtlemise ülesande lahendama elektrooniline seade Arvutiga, kas see on lihtsalt vahetatud andmed või kaugjuhtimispult. Käesolevas artiklis kirjeldatakse, kuidas seda saab rakendada seeriapordi abil. Selle peamine eelis on see standardtarkvara windowsi liidese (API) Võimaldab teil otse juhtida väljundliinid, andes nende otsese kontrolli ja tal on funktsioon oodata teatud sündmust, mis on seotud Com-pordiga. Samuti võimaldab RS-232 standard, mille jaoks COM-sadamad on valmistatud, saate ühendada ja välja lülitada kaablid seadmete käitamise ajal (kuum pistik).

Kirjeldus

Com Port (seeriaport) - kahesuunalise liidese edastamine andmete järjestikusel kujul (natuke kaugemale) RS-232 protokolli kaudu. See on üsna ühise protokolli, mida kasutatakse ühe seadme (näiteks arvuti) edastamiseks teiste juhtmetega kuni 30 m. Loogilised signaalid erinevad siin standardist: loogilise seadme tase on +5 kuni + 15V, loogilise nulli tase on -5 kuni -15V-ni, mis nõuab ahela täiendavaid muutusi, kuid annab hea müra immuunsuse.

Mõtle 9-pin-pistikupesa (DB-9M). Allpool on selle pinout:

Väljund № Nimetus Signaali iseloom Signaal
1 DCD. Sisend Andmekandja tuvastab.
2 Rxd. Väljund Edastavad andmed.
3 TXD. Sisend Saada andmeid.
4 DTR. Väljund Andmeterminali valmis
5 GND. - Maapind
6 DSR. Sisend Andmed on valmis
7 Rts Väljund Taotlus saata.
8 CTS. Sisend Selge saata.
9 Ri- Sisend Rõnga indikaator

Kõige enam, me oleme huvitatud tihvtidest 2 (andmeedastus), 3 (andmete vastuvõtmine) ja 5 (maa). See on minimaalne kahepoolsete seadmete võimaluse jaoks.

Protokolli kirjelduse üksikasjalikult käivitamine ei ole. Selleks on GOST jms. Seetõttu läheme edasi ja räägime selle metsalise juhtimise kohta.

Taotlus

Nagu juba mainitud, erinevad RS-232 tasemed standardist TTL-i tasemest. Seetõttu peame kuidagi teisendama pinge väärtusi. Need. Tee 5V + 15V-st ja 0V-st -15V-st (ja vastupidi). Üks viise (ja ilmselt kõige lihtsam) - spetsiaalse max232 mikrotsircuigi kasutamine. See on lihtne mõista ja samal ajal saab teisendada kahte loogilist signaali.

Allpool on selle lisamise skeem:


Ma arvan, et ei tohiks olla raskusi. See on selle kiibi üks kasutamist: andmete edastamine mikrokontrollerist arvutis ja vastupidi. Edastatud signaal tuleb jalgadel t x.Ühel küljel ja r x.Teisel. Sisendsignaalid eemaldatakse t x.Ja R. x.Vastavalt.

Programmeerimine

Kõigepealt räägime programmeerimise sadamatest madalal tasemel. Seega on see õigem. Ma veetsin palju närve, mis tegelevad selle liidesega, kuni hakkasin oma töö põhimõttesse vähenema madalamal tasemel kui pigem lihtne ülekanne Sümbolid. Kui see on selge, tähendab see, et kõrgetasemeliste keelte puhul ei ole probleeme.

Allpool on adressaadid COM-porti, millega me peame töötama:

Sadama nimi Aadress IRQ.
KOM 1. 3f8h 4
Com 2. 2f8h 3
Com 3. 3E8H 4
Com 4. 2e8h. 3

Nad võivad erineda. Määra väärtused BIOS-i seadetes. See on põhilised aadressid. Need sõltuvad ka sadamate töö eest vastutavate registrite aadressilt:

Aadress Dlab Lugemine / kirjutamine Lühend Registreeri nimi
+ 0 =0 Kirjutage. Saatja hoidja puhver.
=0 Loe. Vastuvõtja puhver.
=1 Lugema kirjutama. Divisor Latch Low Bay
+ 1 =0 Lugema kirjutama. Ier Katkestus Luba Registreerimine
=1 Lugema kirjutama. Divisor lukustus High Bay
+ 2 - Loe. Iir. Katkestada identifitseerimisregister
- Kirjutage. FCR. FIFO kontrolliregister
+ 3 - Lugema kirjutama. Lcr. Rida kontrollregister
+ 4 - Lugema kirjutama. MCR. Modemi juhtimisregister
+ 5 - Loe. LSR. Line olekuregister.
+ 6 - Loe. MSR. Modemi olekuregister
+ 7 - Lugema kirjutama. Kraapimisregister.

Esimene veerg on registri aadress põhiline. Näiteks COM1 jaoks: LCR-i registri aadress on 3F8H + 3 \u003d 3FB. Teine veerg - DLAB (DIVISOR LUNK LIBLENCE BIT) Biti, mis määratleb sama registri jaoks teistsuguse eesmärgi .. I.E. See võimaldab teil tegutseda 12 registriga, kasutades ainult 8 aadressi. Näiteks, kui DLAB \u003d 1, siis viidates 3F8H-le, määrame kella generaatori sageduse noorema baiti väärtuse. Kui DLAB \u003d 0, siis viidates samal aadressil edastatud või aktsepteeritud bait registreeritakse sellesse registrisse.

Nullregister

See vastab registritele / andmeedastuse registritele ja generaatori sageduse jagaja koefitsiendile. Nagu eespool mainitud, siis kui DLAB \u003d 0, kasutatakse registrit vastuvõetud / edastatavate andmete salvestamiseks, kui see on 1, siis määratakse kella generaatori sageduse jagaja alumise bait. Andmeülekande määr sõltub selle sageduse väärtusest. Eldimasti jagaja bait on kirjutatud järgmisele mälukambrile (s.o com1 sadama jaoks, see on 3F9H). Allpool on andmemäära sõltuvus jagaja koefitsiendist:

Katkestus Enable Register (IER)

Kui DLAB \u003d 0, kasutatakse see registri registri registri registrina asünkroonse adapteri katkestuste registrist, kui DLAB \u003d 1, siis seab see kella generaatori sageduse vanem bait.

Katkestada identifitseerimisregister (IIR)

Katkestus on sündmus, kus peamiste peatuste täitmine ja katkestusprotseduur algab. See register määrab katkemise tüübi.

Line kontrollregister (LCR)

See on kontrollregister.

Bit 7. 1 Divisor lukustuse bitt - andmevahetuse kiirus
0 Ühine režiim (katkestusjuhtimine, vastuvõtt / andmeedastus)
Bit 6. Mimic Line Break (saadab mitme nulli järjestuse)
Bitti 3 - 5 Bit 5. Bit 4. Natuke 3. Veendumuste valik
X. X. 0 Pariteedi puudumine
0 0 1 Paaritu pariteet.
0 1 1 Isegi pariteet.
1 0 1 Kõrge pariteedi (kleepuv)
1 1 1 Madal pariteet (kleepuv)
Bit 2. Stop bittide arv
0 1 Stop bitt
1 2 Stop bitt 6,7 või 8 Data bitti või 1,5 Stop bitti 5 Data Bitti.
Bitid 0 ja 1 Natuke 1. Natuke 0. Andmebittite arv
0 0 5 bitti
0 1 6 bitti
1 0 7 bitti
1 1 8 bitti

Kontrollige valmisoleku kontrollimine tähendab teise bitti edastamist - valmisolekupunkti. Selle väärtus on seatud nii, et bittipaketis oli üksuste (või nulli) koguarv isegi või paaritu, sõltuvalt sadamaregistrite paigaldamisest. Seda bitt kasutatakse andmete edastamise ajal tekkivate vigade tuvastamiseks rida häirete tõttu. Vastuvõttev seade arvutab andmete pariteedi uuesti ja võrdleb tulemust pariteediga. Kui pariteedi ei ole langenud kokku, arvatakse, et andmed edastatakse veaga.

Stopp bit tähendab lõpp-andmeedastuse.

Modemi juhtimisregister (MCR)

Modemi juhtimisregister.

Natuke Väärtus
0 Line DTR.
1 RTS-liin.
2 Rida välja1 (varu)
3 Line Out2 (Spare)
4 Alustades diagnostika asünkroonse adapteri sisenemisel, suletud selle väljundile.
5-7 Võrdne 0.

Line Status Register (LSR)

Registreerige liini oleku määratlemine.

Natuke Väärtus
0 Andmed saadakse ja lugemiseks valmis andmete lugemiseks automaatselt andmete lugemisel.
1 Ülevoolu viga. Vastu võeti uus andmebaasi ja programmi eelmine ei lugenud veel programmi. Eelmine bait on kadunud.
2 Veareaktsiooni lähtestatakse pärast joone oleku lugemist.
3 Sünkroonimisviga.
4 Taotlus katkestada ülekande "Break" - avastatakse - pikk rida nulli.
5 Saatja salvestusregister on tühi, saate salvestada uue baidi edastamiseks.
6 Saatja Shift Register on tühi. See register saab andmekapitali registrist andmeid ja teisendab need edastamise jaoks seerianumbriks.
7 Aeg-out (seade ei ole arvutiga ühendatud).

Modemi olekuregister (MSR)

Modemi olekuregister.

See ongi see. Nende registrite kasutamine, saate otseselt suhelda Com-pordiga, kontrollides andmete edastamist ja vastuvõtmist. Kui te ei soovi mäluga segadust segada, saate kasutada juba valmis komponente erinevate programmeerimiskeskkondade jaoks: C ++, VB, Delphi, Pascal jne Nad on intuitiivsed, nii et ma arvan, et siin ei ole tähelepanu väärt.

Stopbits. - määrab peatusbittite arvu. Võib-olla on väli
Võtke järgmised väärtused:


  • OneStopbit. - üks peatus bitt;
  • One5stopbit. - üks ja pool peatusbitti (praktiliselt mitte
    kasutatud);
  • Twostopbit. - kaks peatusbitti.

Pärast kõiki DCB-struktuuri väljad on täidetud, vajate
Sadama konfigureerimine helistades SETCOMMSTATE funktsiooni:

Bool setcomstate (

Käepide hfile

LPDCB LPDCB.

Eduka lõpuleviimise korral naaseb funktsioon nullist
Väärtus ja vea korral null.

Sadama konfigureerimise teine \u200b\u200bkohustuslik struktuur on
Komplektide struktuur. See määratleb ajutise viivituse parameetrid
Vastuvõtmisel. Siin on selle struktuuri kirjeldus:

typedef struktuur _Commemeouts (

DWORD READINTERVALTUOUTIOUT;

DWORD READTTOTALTUOUTMUTTIPTIPT;

DWORD ReadTotalTuutConstant;

DWORD WRRTETTOLTUOUTMUTTIPTIPT;

DWORD WRITETOLIUTOUTCONSTANT;

) Komplektiilid, * LPCommateouts;

Komplektiilide struktuuri väljad on järgmised väärtused:


  • ReadIntervaltime. - maksimaalne ajavahemik
    (millisekundites) lubatud kahe loetava
    Sideliin järjestikuste tähemärkide järgi. Ajal
    Ajaperioodi lugemise aeg hakkab arvestama
    Esimese sümboli vastuvõtmine. Kui intervall kahe vahel
    Järjestikused tähemärgid ületavad määratud väärtuse, operatsiooni
    Lugemine ja kõik puhvris kogunenud andmed edastatakse
    Programmis. Nullväärtus see väli tähendab seda
    Aeg-välja ei kasutata.
  • ReadTotalTuutMuT-i. - täpsustab mitmekordistaja (sisse


    korrutatuna lugemise taotletud tähemärkide arvuga.
  • ReadTotalTuutConConstant - Määrab konstantse (sisse

    Lugemistoimingud. Iga lugemisoperatsiooni puhul
    pluss korrutamise tulemusena readtotalTuutMuT-i
    Lugemise taotletud tegelaste arv. Nullväljad
    READTOTALTUOUTMUTTIPTIVER JA READETOTALTUOUTCONSTANT
    Seda lugemistoimingu üldist aegumist ei kasutata.
  • WRITETOTALTUOUTMUTIPTIPT - täpsustab mitmekordistaja (sisse
    Millisekundid) kasutatakse kogu aeg

    korrutatakse kirjalike tähemärkide arvuga.
  • WRITETOTALTIMEOUTCONSTANT - Määrab konstantse (sisse
    Millisekundid) kasutatakse kogu aeg
    Salvestusoperatsioonid. Iga rekordilise operatsiooni puhul
    Lisatud tulemustele korrutamine WrireTotalTuutMuTKulli
    Kirjutajate arv. Nullväljad
    WRITETOTALTUOUTMUTTIPT ja WRITETOTALTUOUTCONSTANT tähendab
    Et rekordilise operatsiooni üldine aegumine ei kasutata.

Veidi üksikasjalikumalt timeoutsi kohta. Olgu me lugeda port 50
Sümbolid kiirusega 9 600 bitti / s. Kui kasutatakse 8 bitti
sümbolil, lisaks pariteedile ja ühe peatuse bittile, siis üks
Füüsilise joont sümbol moodustab 11 bitti (sh lähtebitti).
See tähendab 50 tähemärki kiirusega 9,600 bitti

50 × 11/9600 \u003d 0,0572916 koos

või umbes 57,3 millisekundit, tingimusel null intervalli
järjestikuste tähemärkide vastuvõtmise vahel. Kui intervall
Tähemärgid on umbes pool edastamise ajal ühe
Sümbol, st 0.5 millisekundit, vastuvõtuaeg on

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

või umbes 82 millisekundit. Kui lugemise protsessis rohkem
82 millisekundit, siis on meil õigus eeldada, et ilmnes viga
välise seadme töö ja seeläbi lõpetada lugemine
Programmi külmutamise vältimine. See on üldine aeg
lugemine. Samamoodi on rekordilise operatsiooni kogu aeg.

Näiteks kokku aegumise toimimise arvutamise valem, näiteks
Lugemine, näeb välja selline:

Numofchar X ReadTotalTulAUTMultPer +
ReadTotalTuutConConstant

kui Numofchar on lugemisoperatsiooni jaoks taotletud tegelaste arv.

Meie puhul ei saa ajakirjandust kasutada ja
Seadke need nulliga võrdseks.

Pärast operatsioonide struktuuri täitmist peate helistama
Timeout Paigaldusfunktsioon:

Bool SetCommateouts (

Käepide hfile

LPCommateouts LPCommateouts.

Kuna ülekandevõimalused viiakse läbi madala kiirusega, \\ t
Kasutatud andmete puhverdamine. Vastuvõtupuhvri suuruse määramiseks ja
Ülekanded peavad kasutama funktsiooni:

Bool Setupcomm (

Käepide hfile

DWORD DWINQUEUUE,

Dwordi dwoutqueue.

Oletame, et vahetate väliste seadme pakenditega
Teave suurus 1024 baiti, siis mõistliku suurusega puhvreid
Seal on väärtus 1200. Setupcomm funktsioon on huvitav, sest see võib
Lihtsalt võtke oma mõõtmed märkida, tehes oma kohandusi või
Üldiselt lükake teile pakutavad puhversuurused - sel juhul
See funktsioon on lõpetatud veaga.

Ma annan näite järjestikuse avamise ja seadistamise kohta
Port Com1. Lühiduse jaoks - ilma vea määratluseta. Selles näites
Sadam avaneb tööle kiirusel 9 600 bitti / c, mida kasutatakse 1
Stopp bitt, parity bitt ei kasutata:

#Include.

. . . . . . . . . .

Käepide käepidemega;

Komplektiilide seadmed;

DCB DCB;

käepide \u003d CREEDIC_READi CREEDIC_READ ("COM1"
Null, , open_existing, file_flag_overlated, null);

Setupcomm (käepide, suurusbuffer, suurusegust);

GetCommstate (käepide ja DCB);

dCB.Baudrate \u003d CBR_9600;

dcb.fbinary \u003d TRUE;

dCB.FOUTXCTSFlow \u003d FALSE;

dCB.FOUTXDSRFLOW \u003d FALSE;

dCB.FdTRControl \u003d DTR_Control_handshake;

dcb.fdsrsensityity \u003d FALSE;

dCB.FNull \u003d FALSE;

dcb.frtsControl \u003d RTS_Control_Disable;

dCB.FabortonError \u003d FALSE;

dcb.bytesize \u003d 8;

dcb.parity \u003d noplane;

dcb.stopbits \u003d 1;

Setcommstate (käepide, & DCB);

Seadmed.Readintervaltuuri \u003d 10;

Seadmed.ReadtotalTuulOutMultPer \u003d 1;

// Nende aja väärtused - väljapoole jäävad kindlad
vastuvõtt

// isegi kiirusega 110 baud

Seadmed.ReadtotalTuutConstant \u003d 100;

// kasutatud b sel juhul Nagu ooteaeg
maatükk

Komplektiilid.WritetalTuulOutMultPer \u003d 0;

Seadmed.WritetalTuutConstant \u003d 0;

SetcomMimeouts (käepidemed ja seadmed);

PurgeComm (käepide, purge_rxclear);

PurgeComm (käepide, purge_txclear);

Pärast sadama avamist, esimene asi, mida vajate selle kaotamiseks, nii et
Nagu vastuvõtmise ja edastamise puhvrites võib olla "prügi". Seetõttu B.
Lõpp näite rakendasime funktsiooni varem teada meile
PurgeComm:

Bool PurgeComm (

Käepide hfile

DWORD DWFLAGS

See funktsioon võib täita kahte ülesannet: puhastada järjekorda
Vastuvõtt ja edastamine juhtis või lõpetades kõik toimingud
I / O Mida täpselt toimingud teha, teise
Parameeter:


  • Purge_txabort
    dokumendid isegi siis, kui nad ei ole lõpetatud;
  • Purge_rxabort. - Peatuge kohe kõik toimingud
    lugemine, isegi kui nad ei ole lõpetatud;
  • Purge_txclear - kustutab juhtimise järjekorda juht;
  • Purge_rxclear - Puhastab vastuvõtu järjekorda sisse
    Juht.
    Neid väärtusi saab kombineerida pekstud abil
    Toimingud Or. Pärast vigu soovitatakse puhtad puhvrid
    vastuvõtmine ja pärast sadama lõpetamist.

On aeg kaaluda otseselt toiminguid
Loe-kirjutada sadamasse. Mis puutub toimikutega töötamiseks
Readfile ja kirjutusfunktsioonid. Siin on nende prototüübid:

Bool readfile (

Käepide hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTESTOREAD,

LPDWORD LPNUMOFBYTESREAD,

Lpoverlated lpoverlatipped.

Bool Fritefile (

Käepide hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTEWRITE,

LPDWORD LPNUMOFBYTSWRITENTEN,

Lpoverlated lpoverlatipped.

Mõtle nende funktsioonide parameetrite loovutamisele:


  • hfile - deskriptor avatud fail Kommunikatsioon
    sadam;
  • lpbuffer. - puhvri aadress. Kirjutamise andmed
    See puhver edastatakse sadamasse. Selle lugemiseks
    Puhver paigutatakse joonest võetud andmed;
  • nnumofbyTestoread, nnumofbytewrite. - oodatud arv
    ülekande baitide vastuvõtmiseks või ette nähtud;
  • nnumofbytesread, nnumofbyteeswriten. - tegeliku arv
    aktsepteeritud või edastatud baitide. Kui see aktsepteerib või üle
    andmed kui taotletud, tunnistab ta kettafaili
    Viga ja kommunikatsiooni sadama jaoks ei pruugi olla tingimata.
    Põhjustada aegumist.
  • Lpoverlated. - kasutatud kattuvate struktuuri aadress
    Asünkroonsete operatsioonide jaoks.

Normaalse valmimise korral tagastatakse funktsioon
Erinevalt nullist, viga - null.

Ma annan näite lugemise ja kirjutamise operatsiooni:

#Include.

…………..

DWORD NUMBYTS, NUMBYTES_OK, TEMP;

Comstat Comstate;

Kattuvad kattuvad;

char buf_in \u003d "Tere!";

numbytes \u003d 6;

// Kui temp ei ole , tähendab see, et sadam on võimeline
Vead

kui (! temp) kirjutamine (käepide, Buf_in, Numbytes,
& Numbytes_ok ja kattuvad);

Clearcombarror (käepide ja temp, & comstate);

kui (! Temp) readfile (käepide, Buf_in, Numbytes, & Numbytes_ok,
& Kattuvad);

// Numbytes_ok muutuja sisaldab reaalarvu
edastatud

// aktsepteeritud bait

Selles näites kasutasime mind varem kaks tundmatut
Comstat ja kattuvad struktuurid, samuti Clearcombarrori funktsioon. Jaoks
Meie kommunikatsiooni juhtum "kolmes juhtmes" struktuur kattus
Kaaluge (lihtsalt kasutage näiteks näiteks). Prototüübi funktsioon
Clearcombarror on vorm:

Booe Clearcombarror (

Käepide hfile

LPDWordi Lerrors,

Lpcompstat lpstat.

See funktsioon taastab sadama vea märk (kui see on olemas
koht) ja tagastab informatsiooni struktuuri riigi riigi kohta
Comstat:

typedef struktuur _compstat.

DWORD FCCTHOLD: 1;

DWORD FDSRHOLHOD: 1;

DWORD FRLSDHOE: 1;

DWORD FXOffhold: 1;

DWORD FXOFFSENT: 1;

DWORD FEOF: 1;

DWORD FTXIM: 1;

DWORD: 25;

DWORD CBINQUE;

DWORD CBOUTQUE;

) Comstat, * lpcompstat;

Me saame kasutada selle struktuuri kahte valdkonda:


  • Cbinque - vastuvõtupuhvri tähemärkide arv. Need sümbolid
    võetud rida, kuid ei ole veel lugenud lugemisfunktsiooni järgi;
  • Cboutque - tähtede arv edastava puhvris. Need
    Sümbolid ei ole veel rida edastatud.

Selle struktuuri ülejäänud väljad sisaldavad teavet
Vead.

Lõpuks pärast töö lõpetamist sadamasse peaks see olema suletud.
Objekti sulgemine Win32 täidab CloseHandle funktsiooni:

Booel Closehandle (

Käsitsege hobjeti.

Meie saidil leiate klassi täieliku teksti töötamiseks
järjestikune sadam asünkroonirežiimis "Kolmes juhtmes" ja
Ka selle klassi kasutava programmi näide. Kõik see
kirjutatud Builder C ++ all, kuid kuna kasutatakse ainult funktsioone.
API Win32, programmi teksti on lihtne muuta C ++ kompilaatori jaoks.
Samuti on võimalik, et klassi ei kirjuta üsna "vastavalt reeglitele" - ma küsin
Vabandust, autor ei ole "õige" programmeerija ja kirjutab nii
Kuidas see on mugav j.

Ma tervitan kõiki oma blogi lehekülgedel ja täna ma tahan öelda, kuidas Ühendage com uSB-port Windowsis. Räägime, et see on ja mida kasutatakse. Ma arvan, et algajavõrgu administraatorid ja just arenenud kasutajad on huvitav, minu jaoks, korraga oli see lihtsalt mingi maagia, mis võimaldab teil seadistada serveri seadmeid.

Mis on ühendatud Com Port

Läbi Com sadama varem ühendatud modemid, hiired. Nüüd kasutatakse seda allikate ühendamiseks katkematu võimsusSuhtlemiseks varjatud arvutisüsteemide riistvara arendamisega, \\ t satelliitvastuvõtjadKas sularaharegistrid, objektide turvasüsteemide seadmetega, samuti paljude teiste seadmetega.

Kasutades Com Port, saate ühendada kaks arvutit kasutades nn null-modemi kaabel "(vt allpool). Kasutatakse MS-DOS-ajast, et pumbata faile ühest arvutist teise, UNIX-is Terminal Juurdepääsu teisele masinale ja Windowsis (isegi kaasaegne) - kerneli tasandi silumiseks.

Aga võrgu maailma läbi com sadamaÜhendage võrguseadmete (lülitid, ruuterid, kaubamärgid nagu Cisco või Juniper).

Mis on ühendamise ahela lülitub läbi seeriapordi. On adapterid, näiteks ST-Labl ühes otsas USB, mis te ühendate arvutiga ja teine \u200b\u200bon com sadam.

COM-draiverite installimine USB-porti Windowsis

Kahjuks Windowsi ühendatud seadmetega ei ole USB COM-ile süsteemi alati süsteemi sisse ja te peate otsima neid draivereid. Kui ostsite selle ise, siis draiveriga kaasati draiveritega ja saate seda kasutada, kui see ei ole, siis vaata, kuidas leida draivereid.

Avage Windowsi seadmehaldur. Kui te ei tea, kuidas, seejärel vajutage CTR + Pause Breati või vajutage Win + R ja sisestage aknas DevMGMT.MSC. Nagu näete sadamates (COM ja LPT), leiti ma kolmandal Com-pordi tundmatu traadil ja draiverid ei leidnud teda süsteemist, mis kollane ikoon meile ütleb.

Mine omadusi see seade Ja valige seadmete ID, teil on midagi tüüpi USB-vid_067b & pid_2303 & rev_0300, siin kopeeritakse ja otsige seda Google'is või Yandexis.

Seejärel klõpsake seadmehalduris seadmes paremat nuppu ja valige installi draiverid, märkige tee neile ja panna, kui kõik on OK, siis teil on ikoon kaob Hoiatused.

Järgmisena saate juba kasutada Com-pordi võimalusi, kasutades selliseid kommunaalteenuseid kittide poolanguga, kus valite Serial ja määrate soovitud COM-pordi sadama, näete seda samas seadmehalduris.

Loodan, et sa õppisid ja arvasin välja, kuidas ühendada arvuti USB-porti Windowsis.