Čo je to port Cat na počítači. Aké sú prístavy osobného počítača? A čo sú? Ako vypnúť porty USB, keď vypnete počítač

Popis rozhrania RS-232, formát používaných konektorov a priradenie výstupov, signálov, protokolu výmeny údajov.

všeobecný popis

Rozhranie RS-232, celkom oficiálne nazývané "EIA / TIA-232-E", ale lepšie známe ako rozhranie "COM port", predtým bol jedným z najbežnejších rozhraní v počítačový technik. Stále sa stretáva pracovné počítačeNapriek vzhľadu väčšej rýchlosti a "inteligentných" rozhraní, ako je USB a fireware. Jeho výhody z hľadiska rádiových amatérov možno pripísať nízkej minimálnej rýchlosti a jednoduchosti implementácie protokolu v domácom zariadení.

Fyzické rozhranie je implementované jedným z dvoch typov konektorov: DB-9M alebo DB-25M, druhý v aktuálne dostupných počítačoch je prakticky nenájdený.

Vymenovanie 9-pinových záverov konektorov


9-pin DB-9M typu zástrčka
Čísla kontaktných údajov
Smer signálov je uvedený v porovnaní s hostiteľom (počítačom)
Kontakt Signál Smer Popis
1 Cd vchod Zistené načítanie
2 Rxd. vchod Akceptované údaje
3 Txd. Výkon Prenášané údaje
4 DTR. Výkon Hostiteľ
5 GND. - Častý drôt
6 DSR. vchod Zariadenie je pripravené
7 Rts. Výkon Host pripravený na prenos
8 CTS. vchod Zariadenie je pripravené na prijímanie
9 RI vchod Bola nájdená výzva

Vymenovanie záverov 15-pin Connector

Kontakt Signál Smer Popis
1 Štít - Na obrazovke
2 Txd. Výkon Prenášané údaje
3 Rxd. vchod Akceptované údaje
4 Rts. Výkon Host pripravený na prenos
5 CTS. vchod Zariadenie je pripravené na prijímanie
6 DSR. vchod Zariadenie je pripravené
7 GND. - Častý drôt
8 Cd vchod Zistené načítanie
9 - - Rezerva
10 - - Rezerva
11 - - Nepoužité
12 SCD. vchod Nosič je zistený. # 2
13 Scts. vchod Zariadenie pripravené na príjem # 2
Kontakt Signál Smer Popis
14 Stxd. Výkon Prenášané údaje # 2
15 TRC. vchod Vysielač
16 Srxd. vchod Akceptované údaje # 2
17 Rcc vchod Takt na prijímači
18 Lloop. Výkon Miestna slučka
19 Srts. Výkon Host pripravený na prenos # 2
20 DTR. Výkon Hostiteľ
21 Rloop. Výkon Vonkajšia slučka
22 RI vchod Bola nájdená výzva
23 DRD. vchod Určuje rýchlosť údajov
24 Trco Výkon Vezmite externý vysielač
25 Skúška vchod Testovací mód

Tabuľka ukazuje, že 25-pinové rozhranie sa vyznačuje prítomnosťou plnohodnotného kanála druhého príjazdu (signály označené "# 2"), ako aj početné dodatočné riadiace a riadiace signály. Avšak, často, napriek prítomnosti v počítači "široký" konektor, na ňom jednoducho nie sú pripojené ďalšie signály.

Elektrické charakteristiky

Logické úrovne vysielača: "0" - od +5 do +15 voltov "1" - od -5 do -15 voltov.

Logické úrovne prijímača: "0" - nad +3 voltov, "1" - pod -3 voltov.

vstupný odpor Prijímač aspoň 3 com.

Tieto vlastnosti sú definované štandardom ako minimum, zaručenie kompatibility zariadenia, avšak skutočné vlastnosti sú zvyčajne podstatne lepšie, čo umožňuje, na jednej strane, na jednej strane, aby sa na jednej strane napájali nízko napájacie zariadenia z portu (napríklad mnohé domáce dátové káble navrhnutý pre mobilné telefóny) a na druhej strane - predložiť prístavu prístavu obrátený TTL úroveň namiesto bipolárneho signálu.

Popis hlavných signálov rozhrania

Cd - Zariadenie nastaví tento signál, keď zistí nosič v prijatom signáli. Typicky sa tento signál používa modemy, ktoré tak hlásia hostiteľa na objavovanie pracovného modemu na druhom konci riadku.

Rxd. - Dostaňte údaje hostiteľa zo zariadenia. Podrobne opísané v časti "Protokol výmeny údajov".

Txd. - Linka prenosu dát prenosu do zariadenia. Podrobne opísané v časti "Protokol výmeny údajov".

DTR. - Hostiteľ nastaví tento signál, keď je pripravený na výmenu údajov. V skutočnosti je signál nastavený, keď otvoríte port komunikačného programu a zostane v tomto stave po celú dobu, kým prístav nie je otvorený.

DSR. - Zariadenie nastaví tento signál, keď je povolený a pripravený na výmenu údajov s hostiteľom. Toto a predchádzajúce (DTR) signály musia byť inštalované na výmenu údajov.

Rts. - Hostiteľ nastaví tento signál pred spustením prenosu dát do zariadenia a tiež signalizuje pripravenosť na prijímanie údajov zo zariadenia. Používa sa pri riadení hardvéru výmeny údajov.

CTS. - Zariadenie nastaví tento signál v odozve na predchádzajúcu inštaláciu hostiteľa (RTS), keď je pripravený na prevzatie dát (napríklad, keď sa dáta predchádzajúce odoslané údaje hostiteľa prenášajú do riadku v rade alebo je voľný priestor v medziprodukcii Buffer).

RI - Zariadenie (zvyčajne modem) Nastaví tento signál pri prijímaní hovoru zo vzdialeného systému, napríklad pri prijímaní hovorAk je modem nakonfigurovaný na prijímanie hovorov.

Protokol výmeny údajov

Protokol RS-232 existuje dva metódy správy dát: hardvér a softvér, ako aj dve prenosové režimy: synchrónne a asynchrónne. Protokol umožňuje používať ľubovoľné metódy riadenia spolu s akýmkoľvek režimom prenosu. Práca bez riadenia prietoku je tiež povolená, ktorá znamená konštantnú pripravenosť hostiteľa a zariadenie na prijímať dáta, keď je pripojenie nastavené (sú nainštalované signály DTR a DSR).

Metóda riadenia hardvéru Je implementovaný pomocou RTS a CTS signálov. Pre prenos dátového hostiteľa (počítač), nastavuje RTS signál a čaká na nainštalovanie CTS, ktorý sa má nainštalovať, potom, čo sa údaje spustia, kým sa nastaví signál CTS. Signál CTS je kontrolovaný hostiteľom bezprostredne pred spustením prenosu ďalšieho bajtu, takže bajt, ktorý sa už začal, bude prenášaný úplne bez ohľadu na hodnotu CTS. V režime Half-Duplexná výmena dát (zariadenie a dáta prenosu hostiteľa zase, v plnohodnotnom režime, môžu to urobiť v rovnakom čase) RTTS odstránenie signálu hostiteľom znamená jeho prechod na režim príjmu.

Metóda riadenia softvéru Je to preniesť hostiteľa špeciálnych symbolov zastavenia (symbol s 0x13 kódom, nazývaným xoffom) a obnovy (symbol s kódom 0x11, nazývaný xon). Pri prijímaní týchto znakov musí vysielacia strana primerane zastaviť alebo obnoviť ho (ak existujú údaje o prenose). Táto metóda je jednoduchšia, pokiaľ ide o implementáciu zariadenia, však poskytuje pomalšiu reakciu a podľa toho vyžaduje upozornenie vysielača vysielača, keď je voľný priestor redukovaný v prijímacom pufri na určitý limit.

Synchrónny prenosový režim To znamená nepretržitú výmenu dát, keď bity nasledujú po druhom bez dodatočných pauzy pri danej rýchlosti. Tento režim portu COM nie je podporované.

Asynchrónny prenosový režim Je to, že každý dátový bajt (a paritný ovládací bit, v prípade jeho prítomnosti), "sa ukáže" synchronizačné sekvencie jedného nulového štart-bit a jednu alebo viac jednorazových bitov. Diagram toku dát v asynchrónnom režime je prezentovaný na obrázku.

Jeden z možných algoritmov prijímača Nasledujúci:

  1. Očakávajte úroveň "0" recepčného signálu (RXD v prípade hostiteľa, TXD v prípade zariadenia).
  2. Počítajte polovicu trvania batérie a skontrolujte, či je úroveň signálu stále "0"
  3. Počítajte celé bitové trvanie a aktuálnu úroveň signálu zápis do mladšej dátovej dátovej dávky (bit 0)
  4. Opakujte predchádzajúcu položku pre všetky ostatné dátové bity
  5. Počítajte celé bitové trvanie a aktuálnu úroveň signálu, aby ste mohli overiť správnosť recepcie pomocou kontroly parity (pozri nižšie)
  6. Vytlačte celé bitové trvanie a uistite sa, že aktuálna úroveň signálu "1".

Pri výpočte je sériovým portom sériovým komunikačným rozhraním, prostredníctvom ktorého sa informácie prenášajú alebo vydávajú naraz. Pre väčšinu histórie osobných počítačov boli údaje prenášané pomocou sériových portov na zariadeniach, ako sú modemy, svorky a rôzne periférne zariadenia.

Hoci rozhrania, ako napríklad Ethernet, FireWire a USB, všetky odosielajú údaje ako sekvenčný prúd, termín "sériový port" typicky identifikuje hardvér, viac alebo menej kompatibilné s normou RS-232, ktorého cieľom je komunikovať s modemom alebo s podobným komunikačným spojením.

Moderné počítače bez sériových portov môžu vyžadovať konvertory s sériovým rozhraním, aby ste zabezpečili kompatibilitu s sériovými zariadeniami RS-232. Sériové prístavy sa stále používajú v aplikáciách, ako sú systémy priemyselnej automatizácie, vedecké zariadenia, predajné systémy a určitý priemyselný a spotrebný tovar. Serverové počítače môžu používať sériový port ako riadiacu konzolu alebo diagnostiku. Sieťové zariadenia (napríklad smerovače a prepínače) často používajú sériovú konzolu pre konfiguráciu. Sériové prístavy sa stále používajú v týchto oblastiach, pretože sú jednoduché, lacné a ich konzolové funkcie sú vysoko štandardizované a rozšírené.

Com port pinout (RS232)

Existujú 2. odrody portu COM, 25-pin starý konektor a nahradia jeho novší 9-pinový konektor.

Nižšie je schéma štandardného štandardného 9-pinového konektora RS232 s konektormi, tento typ konektora sa nazýva aj konektor DB9.

  1. Detekcia nosiča (DCD).
  2. Získanie údajov (RXD).
  3. Prenos dát (TXD).
  4. Pripravenosť na výmenu z prijímača (DTR).
  5. Zem (GND).
  6. Pripravenosť na výmenu zo zdroja (DSR).
  7. Žiadosť o prevod (RTS).
  8. Pripravenosť prenosu (CTS).
  9. Hovorový signál (RI).

RJ-45 až DB-9 Informácie o produkte sekvenčného adaptéra pre prepínač

Konzolový port je sériové rozhranie RS-232, ktoré používa konektor RJ-45 na pripojenie k riadiacemu zariadeniu, ako je PC alebo notebook. Ak nie je kolík DB-9 PIN PIN na prenosnom počítači alebo PC, a chcete pripojiť notebook alebo počítač k prepínaču, použite kombináciu adaptérov RJ-45 a DB-9.

DB-9.RJ-45.
Získavanie údajov2 3
Prenos dát3 6
Výmenná pripravenosť4 7
Pôda5 5
Pôda5 4
Výmenná pripravenosť6 2
Žiadosť o prevod7 8
Pripravenosť na prenos8 1

Farby drôtu:

1 čierna
2 hnedý
3 červená
4 oranžové
5 žltá
6 zelená
7 modrá
8 sivá (alebo biela)

Niekedy musíte vyriešiť komunikačnú úlohu elektronické zariadenie S počítačom, či už je to jednoducho vymenené údaje alebo diaľkové ovládanie. Tento článok popisuje, ako sa to dá realizovať pomocou sériového portu. Jeho hlavnou výhodou je taký štandardný softvér rozhranie systému Windows (API) Umožňuje priamo riadiť výstupné riadky, ktoré nad nimi dávajú priamu kontrolu a má funkciu čakania na určitú udalosť spojenú s portom COM. Norma RS-232, pre ktorý sú vytvorené porty COM, umožňuje pripojiť a vypnúť káble počas prevádzky zariadení (horúca zástrčka).

Popis

Com port (sériový port) - Obojsmerné rozhranie prenášajúce údaje v sekvenčnom formulári (Bit Zadržiavaný) cez protokol RS-232. Toto je pomerne bežný protokol používaný na komunikáciu jedného zariadenia (napríklad počítača) s inými vodičmi do 30 m. Logické signály sú tu odlišné od štandardu: úroveň logickej jednotky je od +5 do + 15V, úroveň logickej nuly je od -5 do -15V, ktorá vyžaduje ďalšie transformácie okruhu, ale poskytuje dobrú šumovú imunitu.

Zvážte 9-pinový konektor (DB-9M). Nižšie je jeho pinout:

Výstup № názov Znak signálu Signál
1 DCD. Zaviesť Dátový nosič zistí.
2 Rxd. Výkon Prenášanie údajov.
3 Txd. Zaviesť Prijímať údaje.
4 DTR. Výkon Dátový terminál pripravený
5 GND. - Udrieť
6 DSR. Zaviesť Súprava údajov
7 Rts. Výkon Žiadosť o odoslanie.
8 CTS. Zaviesť Jasné.
9 RI Zaviesť Indikátor krúžku

Väčšina z nich budeme mať záujem o kolíky 2 (prenos dát), 3 (príjem dát) a 5 (pozemok). Ide o minimálny súbor pre možnosť obojstranných spotrebičov.

Podrobne o popise protokolu nie je. Na to existujú GOST a podobne. Preto pôjdeme ďalej a povedzme o tom, ako zvládnuť túto šelmu.

Žiadosť

Ako už bolo uvedené, hladiny Rs-232 sa líšia od štandardných úrovní TTL. Preto potrebujeme nejako previesť hodnoty napätia. Tí. Urobte 5V od + 15V a 0V z -15V (a naopak). Jedným zo spôsobov (a pravdepodobne najjednoduchšie) - použitie špeciálneho MAX232 mikroobvodu. Je ľahké pochopiť a zároveň môže previesť dva logické signály.

Nižšie je systém jeho zahrnutia:


Myslím, že by nemalo byť žiadne ťažkosti. Toto je jedno z použitia tohto čipu: prenos dát z mikrokontroléra na počítači a naopak. Prenášaný signál prichádza na nohy t x.Na jednej strane a na r x.Na druhej strane. Vstupné signály sú odstránené z t x.OUT a R. x.Von.

Programovanie

Ak chcete začať, povedzme o programovacích prístavoch na nízkej úrovni. Takže to bude správne. Strávil som veľa nervov, ktoré sa zaoberali týmto rozhraním, kým som nezačal ponoriť do princípu svojej práce na nižšej úrovni ako jednoduchý prenos Symboly. Ak je jasné, znamená to, že nebudú žiadne problémy s jazykmi na vysokej úrovni.

Nižšie sú adresy portov COM, s ktorými budeme musieť pracovať:

Meno portu Adresa IRQ.
Com 1. 3f8h 4
Com 2. 2f8h 3
Com 3. 3E8H. 4
Com 4. 2E8H. 3

Môžu sa líšiť. Nastavte hodnoty v nastaveniach systému BIOS. Toto sú základné adresy. Budú tiež závisieť od adresy registrov zodpovedných za prácu portov:

Adresa Dlab Čítanie / písanie Skratka Názov registra
+ 0 =0 Napísať Nárazník drží vysielač.
=0 Čítať. Nárazník prijímača.
=1 Čítaj píš. Rozdeľovacia západka Low Byte
+ 1 =0 Čítaj píš. Ier Prerušenie Povoliť register
=1 Čítaj píš. Divisor Latch Vysoký bajt
+ 2 - Čítať. IR. Zaregistrujte sa na identifikáciu prerušenia
- Napísať Fcr. Riadiaci register FIFO
+ 3 - Čítaj píš. LCR. Riadiaci register
+ 4 - Čítaj píš. MCR. Riadiaci register modemu
+ 5 - Čítať. LSR. Register stavu linky.
+ 6 - Čítať. MSR. Register stavu modemu.
+ 7 - Čítaj píš. Zachranný register.

Prvý stĺpec je adresa registra vzhľadom na základnú. Napríklad pre COM1: Adresa registra LCR bude 3F8H + 3 \u003d 3FB. Druhý stĺpec - DLAB (Divisor Capt Access Bit) bit, definujúci iný účel pre ten istý register .. t.j. To vám umožní ovládať 12 registrov pomocou iba 8 adries. Napríklad, ak DLAB \u003d 1, potom odkazuje na 3F8H, nastavíme hodnotu mladšieho bajtu frekvencie generátora hodín. Ak DLAB \u003d 0, potom odkazuje na rovnakú adresu, prenášaný alebo akceptovaný bajt bude zaznamenaný v tomto registri.

Nulový register

Vyhovuje registre / registre prenosu údajov a koeficient frekvencie generátora. Ako je uvedené vyššie, ak sa DLAB \u003d 0, potom sa register používa na zaznamenávanie prijatých / prenášaných dát, ak je 1, potom je nastavená hodnota dolného bajtu frekvenčného rozdelenia frekvencie hodín. Rýchlosť prenosu dát závisí od hodnoty tejto frekvencie. Najstarší bajt deliča je napísaný na ďalšiu pamäťovú bunku (t.j. pre port COM1, bude 3F9H). Nižšie je závislosť dátovej sadzby od koeficientu deličovateľa:

Prerušenie Povoliť register (IER)

Ak sa DLAB \u003d 0, používa sa ako registračný register prerušení z asynchrónneho adaptéra, ak DLAB \u003d 1, potom nastaví senior bajt frekvencie generátora hodín.

Interuct Identifikačný register (IIR)

Prerušenie je udalosť, pri ktorej sa začne vykonanie hlavného programu a začína postup prerušenia. Tento register určuje typ prerušenia.

Riadiaci register LINE (LCR)

Toto je riadiaci register.

Bit 7. 1 Prístupový prístup k rozvedeniu
0 Spoločný režim (prerušenie kontroly, recepcia / prenos dát)
Bit 6. MIMIC LINE LINE (odošle sekvenciu niekoľkých nuly)
BIT 3 - 5 Bit 5. Bit 4. Bit 3. Výber viery
X. X. 0 Žiadna parita.
0 0 1 Nepárna parita.
0 1 1 Rovnomerná parita.
1 0 1 Vysoká parita (lepkavá)
1 1 1 Nízka parita (lepkavá)
Bit 2. Počet zastavených bitov
0 1 zastavený bit
1 2 Stop Bity na 6,7 \u200b\u200balebo 8 dátových bitov alebo 1,5 stop bity s 5 dátovými bity.
Bity 0 a 1 Bit 1. Bit 0. Počet dátových bitov
0 0 5 bitov
0 1 6 bitov
1 0 7 bitov
1 1 8 bitov

Kontrola pripravenosti znamená prenos ďalšej bitky - bod pripravenosti. Jeho hodnota je nastavená tak, že v bitovom pakete bol celkový počet jednotiek (alebo nuly) dokonca alebo nepárny, v závislosti od inštalácie registrov portov. Tento bit sa používa na detekciu chýb, ktoré sa môžu vyskytnúť počas prenosu dát v dôsledku rušenia na riadku. Prijímacie zariadenie prevyšuje paritu údajov a porovnáva výsledok s paritou bitom. Ak parita nebráni, predpokladá sa, že údaje sa prenášajú s chybou.

Zastavovací bit znamená ukončenie prenosu dát.

Register riadiaceho modemu (MCR)

Riadiaci register modemu.

Trocha Hodnota
0 Riadok DTR.
1 Linka RTS.
2 Line OUT1 (náhradný)
3 Riadok out2 (náhradný)
4 Spustenie diagnostiky pri zadávaní asynchrónneho adaptéra, uzavreté na jeho výstup.
5-7 Rovná 0.

Register stavu linky (LSR)

Register Definovanie stavu riadku.

Trocha Hodnota
0 Údaje sa získavajú a pripravení na čítanie, automaticky resetovať pri čítaní údajov.
1 Chyba pretečenia. Bol prijatý nový byte dát a predchádzajúci program ešte nečítal. Predchádzajúci bajt sa stratí.
2 Po prečítaní stavu riadku sa resetuje chyba chyby.
3 Chyba synchronizácie.
4 Žiadosť o prerušenie prenosu "Break" je zistený - dlhý rad nuly.
5 Register ukladania vysielača je prázdny, môžete zaznamenať nový bajt na prenos.
6 Register Shift Vysielač je prázdny. Tento register dostáva údaje z úložného registra a prevádza ich na sériový typ na prenos.
7 TIME-OUT (zariadenie nie je pripojené k počítaču).

Register stavu modemu (MSR)

Register stavu modemu.

To je všetko. Prevádzka týchto registrov môžete priamo komunikovať s portom COM, ovládať prenos a príjem údajov. Ak nechcete rozprávať s pamäťou, môžete použiť už hotové komponenty pre rôzne programovacie prostredie: C ++, VB, DELPHI, PASCAL, atď. Sú tu intuitívne, myslím si, že tu nestojí za pozornosť.

Stopbits. - Nastaví počet stop bitov. Možno
Urobte nasledujúce hodnoty:


  • Onestopbit. - jeden zastavený bit;
  • One5stopbit. - jeden a pol zastavení bity (prakticky nie
    použitý);
  • Twostopbit. - dve stop bity.

Po vyplnení všetkých polí štruktúry DCB, potrebujete
Konfigurácia portu volaním funkcie SETCOMMSTATE:

BOOL SETCOMMSTATE (

Rukoväť hfile

LPDCB LPDCB.

V prípade úspešného ukončenia sa funkcia vráti odlišnú od nuly
a v prípade chyby - nula.

Druhá povinná štruktúra pre konfiguráciu portu je
Konštrukcia commertime. Definuje dočasné parametre oneskorenia
Pri prijímaní. Tu je popis tejto štruktúry:

tYPEEDEF STRUKTY _MOMMIMETYUTS (

DWORD READIMERVALTIBY;

DWORD ReadTotaaliTimeOUTMULTIPLIPLIPLIVO

DWORD ReadTOTTOTTOTTOPNUTIE;

DWORD WRITETLOTTERIMULTYMULTVY;

DWORD WRITETOLOTTERITEOSTI;

) Commitmeouts, * lpcommmets;

Polia štruktúry commitmeouts majú nasledujúce hodnoty:


  • Readintervalitimeout. - maximálny časový interval
    (v milisekundách) prípustné medzi dvoma čitateľnými
    Komunikačná čiara podľa následných znakov. Počas
    Čas čítania časového obdobia začína odpočítavať
    Príjem prvého symbolu. Ak interval medzi dvoma
    Sekvenčné znaky presiahnu špecifikovanú hodnotu, prevádzku
    Čítanie a všetky údaje nahromadené v pufri sa prenášajú
    v programe. Nulová hodnota toto pole znamená, že dané
    Časový limit sa nepoužíva.
  • ReadtotaltimeoutMultipier - Určuje multiplikátor (v


    vynásobené počtom požadovaných znakov.
  • ReadTotaaliTimeoutConstant - Určuje konštantu (v

    Čítanie operácií. Pre každú operáciu čítania táto hodnota
    plus do výsledku násobenia readtotaltimeoutMultiplika
    Počet požadovaných znakov. Nulové polia
    ReadTotaaliTimeoutMultiplika a ReadTotaaliTimeoutConstant znamená
    Že celkový časový limit pre operáciu čítania sa nepoužíva.
  • WriteTotaaliTimeoutMultipier - Určuje multiplikátor (v
    Milliseconds) používané na výpočet celkového časového limitu

    vynásobené počtom písomných znakov.
  • WriteTotaaliTimeoutConstant - Určuje konštantu (v
    Milliseconds) používané na výpočet celkového časového limitu
    Záznamové operácie. Pre každú záznamovú operáciu túto hodnotu
    Pridané do výsledku množenia WriteTotaaliTimeoutMultelpier na
    Počet zapisovateľných znakov. Nulové polia
    WRITETOTALTIMEOUTMULTIPLY A WRITETOTALTIMATIONS
    Že celkový časový limit pre operáciu záznamu sa nepoužíva.

Trochu podrobnejšie o časových časopisoch. Nech sme čítali z prístavu 50
Symboly s rýchlosťou 9 600 bitov / s. Ak sa používa 8 bitov
na symbol, doplnenie parity a jedného zastavenia, potom jeden
Symbol vo fyzickej línii predstavuje 11 bitov (vrátane štartovacích bitov).
To znamená, že 50 znakov rýchlosťou 9 600 bitov bude akceptovaná

50 × 11/9600 \u003d 0,0572916

alebo asi 57,3 milisekúnd za predpokladu, že nulový interval
medzi prijímaním po sebe idúcich znakov. Ak interval medzi
Znaky sú približne polovica času prenosu
symbol, t.j. 0,5 milisekúnd, čas recepcie bude

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

alebo asi 82 \u200b\u200bmilisekúnd. Ak je viac v procese čítania
82 milisekunds, potom máme právo predpokladať, že sa vyskytla chyba
práce externého zariadenia a môže zastaviť čítanie, čím
vyhnúť sa zamrznutiu programu. Toto je celková prevádzka časopisu
čítanie. Podobne existuje celkový časový limit operácie záznamu.

Formulácia pre výpočet celkového časového limitu, napríklad, \\ t
Čítanie, vyzerá to takto:

Numofar x readtotaltimeoutMultiplilas
ReadTotaaliTimeoutConstant

kde numofar je počet požadovaných pre operáciu čítania.

V našom prípade nie je možné použiť nahrávanie časového limitu a
Nastavte ich rovné nule.

Po vyplnení štruktúry cestovného závodu musíte zavolať
Funkcia inštalácie časového limitu:

Bool setcomomtimeouts (

Rukoväť hfile

Lpcommmets lpcommtimeouts.

Keďže operácie prijímania prenosu sa vykonávajú pri nízkej rýchlosti,
Použité dátové vyrovnanie. Nastavenie veľkosti recepčného pufra a
Prevody musia používať funkciu:

Bool setupcomm (

Rukoväť hfile

DWORD DWINQUEUE,

DWORD DWUTHOUEUE.

Predpokladajme, že si vymieňate s balíčkami externého zariadenia
Informácie o veľkosti 1024 bajtov, potom rozumnú veľkosť pufrov
Tam bude hodnota 1200. Funkcia SetupComm je zaujímavá, pretože to môže
Urobte si svoje rozmery na poznámku tým, že si vytvoríte vlastné úpravy alebo
Vo všeobecnosti odmietate veľkosti vyrovnávacej pamäte, ktorú vám ponúka - v tomto prípade
Táto funkcia je dokončená chyba.

Dostanem príklad otvárania a konfigurácie sekvencií
prístav com1. Pre stručnosť - bez definície chýb. V tomto príklade
Port sa otvorí, aby pracoval rýchlosťou 9 600 bitov / c, použité 1
Stop bit, paritný bit sa nepoužíva:

#Include.

. . . . . . . . . .

Rukoväť;

Commitmeouts CommerTime;

DCB DCB;

rukoväť \u003d createfile ("com1", generic_read | generic_write,
Null, , open_existrovanie, súbor_flag_overlapped, null);

Setupcomm (Rukoväť, SizeBuffer, SizeBuffer);

Getcommstate (rukoväť, & dcb);

dcb.baudrate \u003d CBR_9600;

dcb.fbinary \u003d true;

dcb.foutxctsflow \u003d false;

dcb.foutxdsrflow \u003d false;

dcb.fdtrontrol \u003d dtr_control_handshake;

dcb.fdsrsensitiity \u003d false;

dcb.fnull \u003d false;

dcb.frtscontrol \u003d RTS_CONTROL_DISABLE;

dcb.fabortonError \u003d FALSE;

dcb.bytessize \u003d 8;

dcb.Parity \u003d noparity;

dcb.stopbits \u003d 1;

Setcommstate (rukoväť, & dcb);

Commityouts.ReadInTervaliTimeout \u003d 10;

Commityouts.readtotaltimeoutMultiplile \u003d 1;

// Hodnoty tohto času - outs sú dosť dosť
recepcia

// Aj pri rýchlosti 110 Baud

Commityouts.readtotaltimeoutConstant \u003d 100;

// použité b tento prípad ako čakacia doba
balík

Commtimeouts.writeTaLimeoutMultipier \u003d 0;

Commitmeouts.writeTaLimeoutConstant \u003d 0;

SETCOMMIMETY (RUKTORY, A COMMATIMEOUTS);

Purgecomm (rukoväť, purge_rxClear);

Purgecomm (rukoväť, purge_txClear);

Po otvorení portu, prvá vec, ktorú potrebujete, aby ste to stratili, tak
Rovnako ako v nárazníkoch recepcie a prenosu môže byť "odpadky". Preto B.
Koniec príkladu sme použili túto funkciu, ktorá bola predtým známa
Purgecomm:

Bool purgecomm (

Rukoväť hfile

DWORD DWFLAGS

Táto funkcia môže vykonávať dve úlohy: Vyčistite frontu
Príjem a prenos v vodiči alebo dokončenie všetkých operácií
I / O Čo presne akcie na vykonanie, nastavenie na iné
Parameter:


  • Purge_txabort
    záznamy, aj keď nie sú dokončené;
  • Purge_rxabort. - okamžite zastaví všetky operácie
    Čítanie, aj keď nie sú dokončené;
  • Purge_txClear - vymaže prenosový front v ovládači;
  • Purge_rxclear - Vymaže recepčný front
    Vodiča.
    Tieto hodnoty môžu byť kombinované pomocou porazeného
    Alebo. \\ T Po chybách sa odporúčajú čisté pufre
    prijatie a po ukončení prístavu.

Je čas zvážiť priamo operácie
Read-Write pre port. Pokiaľ ide o prácu so súbormi, použité
READFILE A WORTFILE VLASTNOSTI. Tu sú ich prototypy:

Bool Readfile (

Rukoväť hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTESTOREAD,

LPDWORD LPNUMOFBYTESREAD,

Lpoverlapped lpoverlap.

BOOL WROPFILE (

Rukoväť hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTEWRITE,

LPDWORD LPNUMOFBYTHIRITRITENTEN

Lpoverlapped lpoverlap.

Zvážte pridelenie parametrov týchto funkcií:


  • hfile - deskriptor otvorený súbor Komunikácia
    port;
  • lpBuffer. - Adresa rezervy. Pre údaje o operáciách zápisu z
    Tento pufor bude prenášaný do portu. Pre operáciu čítania v tomto
    Nárazník bude umiestnený údajmi prevzatými z riadku;
  • nNUMOFBYTESTOREAD, NNUMOFBYTEWRITE - počet očakávaných
    na prijímanie alebo určenie pre prenos bajtov;
  • nnumofbyTesRead, Nnumofbyteswritten. - počet skutočných
    akceptované alebo prenášané bajty. Ak je akceptované alebo prenesené menej
    údaje, ako je požadované, svedčí o súborovom súbore
    O chybe, a pre komunikačný prístav nie je nevyhnutne.
    Príčina Timeouts.
  • Lpoverlapped. - Adresa použitej prekrývanej štruktúry
    Pre asynchrónne operácie.

V prípade normálneho dokončenia sa funkcia vráti
odlišné od nuly, v prípade chyby - nula.

Dostanem príklad čítania a písania:

#Include.

…………..

DWORD NUMBYTS, NUMBYTES_OK, TEMP;

Comstat comstate;

Prekrývajúce sa prekrývanie;

char Buf_in \u003d "Ahoj!";

numbytes \u003d 6;

// Ak temp nie je nula, znamená to, že port je schopný
Chyby

ak (! temp) zápis (rukoväť, buf_in, numbytes,
& Numbytes_OK, & prekrytie);

ClearCommerrror (Rukoväť, & Temp, & Comstate);

ak (! Temp) Readfile (Rukoväť, Buf_in, Numbytes, & Numbytes_OK,
A prekrývanie);

// v premennej NUMBYTES_OK obsahuje skutočné číslo
odovzdaný

// akceptované bajt

V tomto príklade sme ma predtým použili dva neznáme
Comstat a prekrývajúce sa štruktúry, ako aj funkcia ClearCommerror. Pre
Náš komunikačný prípad "v troch vodičoch" sa prekrýva
Zvážte (len použiť ako v príklade). Prototypová funkcia
CLEARCOMMERROR má formulár:

Bool ClearCommerrror (

Rukoväť hfile

LPDWORD LPERRORS,

Lpcomstat lpstat.

Táto funkcia resetuje znak chyby portu (ak existuje
miesto) a vráti informácie o stave prístavu v štruktúre
Comstat:

typedef struct _comstat.

DWORD FCTHOLD: 1;

DWORD FDSRHOLD: 1;

DWORD FRLSDOLD: 1;

DWORD FXOFTHOLD: 1;

DWORD FXOFFSENT: 1;

DWORD FEOF: 1;

DWORD FTXIM: 1;

DWORD FRERVED: 25;

DWORD CBINQUE;

DWORD CBOUTQUE;

) Comstat, * lpcomstat;

Môžeme použiť dve oblasti tejto štruktúry:


  • Cbinque - počet znakov v prijímacej rezerve. Tieto symboly
    z riadku, ale ešte nečítajú funkciu na čítanie;
  • Cboutuque - počet znakov v prenosnom pufri. Títo
    Symboly ešte nie sú prenášané do čiary.

Zostávajúce oblasti tejto štruktúry obsahujú informácie o
Chyby.

Nakoniec, po ukončení práce s portom, malo by byť zatvorené.
Zatvorenie objektu vo Win32 vykoná funkciu Contardle:

Bool Closhhandle (

Rukoväť hobject.

Na našej stránke nájdete úplné znenie triedy za prácu s
Sekvenčný port v asynchrónnom režime "v troch vodičoch" a
Tiež príklad programu pomocou tejto triedy. Toto všetko
Napísané pod Builder C ++, ale pretože sa používajú iba funkcie.
API Win32, textový text sa ľahko mení pre ľubovoľný kompilátor C ++.
Je tiež možné, že trieda nie je napísaná celkom "podľa pravidiel" - pýtam sa
ospravedlnenie, autor nie je "správny" programátor a píše
Ako je to pohodlné j.

Vítam všetkých znova na stránkach vášho blogu a dnes chcem povedať, ako pripojiť com uSB vstup V systéme Windows. Poďme hovoriť, že je a za to, čo sa používa. Myslím, že pre začínajúcich správcov siete a len pre pokročilých používateľov to bude zaujímavé, naraz to bolo len nejaký druh mágie, ktorý vám umožní konfigurovať serverové vybavenie.

Čo je pripojené cez port COM

Cez predtým pripojené modemy COM portu, myši. Teraz sa používa na pripojenie k zdrojom neprerušovaný výkon, na komunikáciu s rozvojom hardvéru vstavaných počítačových systémov, satelitné prijímače, pokladničné registre, so zariadeniami pre bezpečnostné systémy objektov, ako aj s mnohými ďalšími zariadeniami.

Pomocou portu COM môžete pripojiť dva počítače pomocou tzv. "Zero-modem kábel" (pozri nižšie). Používa sa z MS-DOS Times na čerpanie súborov z jedného počítača do druhého, v Unixe pre terminál prístup k inému stroju av systéme Windows (Dokonca aj moderné) - pre Debugger úrovni jadra.

Ale v sieťovom svete prostredníctvom portu COMpripojte sa k konzolovému portu sieťových zariadení (spínače, smerovače, značky, ako je Cisco alebo Juniper)

Aký je obvod pripojenia k prepínačom cez sériový port. Existujú adaptéry, napríklad z ST-laboratória na jednom konci USB, ktorý sa pripojíte k počítaču, a druhý je COM port.

Inštalácia portu USB COM v systéme Windows

Bohužiaľ v systéme Windows pripojených zariadeniami nie je USB k COM vždy automaticky nainštalovaný v systéme, a musíte hľadať ovládače. Ak ste si ho kúpili sami, potom bol pohon zahrnutý s ovládačmi a môžete ho použiť, ak to nie je, potom sa pozrite na to, ako nájsť ovládače.

Otvorte Správcu zariadení v systéme Windows. Ak neviete, ako stlačte kláves CTR + Pauza Breake, alebo stlačte WIN + R a zadajte DEVMGMT.MSC v okne. Ako vidíte v sekcii portov (COM a LPT), bol som nájdený na treťom COM port neznámym drôtom a vodiči pre neho nenájdu zo systému, ktorý nám hovorí žltá ikona.

Prejdite na vlastnosti toto zariadenie A vyberte si ID zariadenia, budete mať, niečo podľa typu USB Vid_067B & PID_2303 & REV_0300, tu kopíruje a hľadáte v Google alebo Yandex.

Potom kliknite na kliknite pravým tlačidlom myši na zariadenie v Správcovi zariadení a vyberte položku Inštalovať ovládače, uveďte cestu k nim a položte, či je všetko v poriadku, potom máte ikona zmizne Varovania.

Ďalej môžete použiť možnosti portu COM, pomocou takýchto nástrojov na zdanie TUTTY, kde vyberiete seriál a zadajte požadovaný port portu COM, môžete ho vidieť v rovnakom správcovi zariadení.

Dúfam, že ste sa naučili a zistili, ako pripojiť COM USB port v systéme Windows.