Co je to kočičí port v počítači. Jaké jsou přístavy osobního počítače? A co jsou? Jak vypnout USB porty při vypnutí počítače

Popis rozhraní RS-232, formát použitých konektorů a přiřazení výstupů, signálů, protokolu výměny dat.

obecný popis

Rozhraní RS-232, docela oficiálně nazvané "EIA / TIA-232-E", ale lépe známý jako rozhraní "Com Port", dříve byl jedním z nejčastějších rozhraní počítačový technik. Stále se setká stolní počítačeNavzdory vzhledu větších rychlostí a "inteligentních" rozhraní, jako je USB a fireware. Jeho výhody z pohledu rádiových amatérů lze přispět k nízké minimální rychlosti a jednoduchosti provádění protokolu v domácím zařízení.

Fyzické rozhraní je implementováno jedním ze dvou typů konektorů: DB-9M nebo DB-25m, druhý v aktuálně dostupných počítačích se prakticky nenaleznete.

Jmenování z 9-pinových konektorových závěrů


9-pinový typ DB-9m Zástrčka
Kontaktní čísla pinů
Směr signálů je indikován vzhledem k hostiteli (počítače)
Kontakt Signál Směr Popis
1 CD vchod Zjištění načítání
2 RXD. vchod Přijatá data
3 Txd. Výstup Přenosná data
4 DTR. Výstup Připravený hostitele
5 GND. - Společný drát
6 DSR. vchod Zařízení je připraveno
7 RTS. Výstup Hostitel připraven k přenosu
8 CTS. vchod Zařízení je připraveno k přijetí
9 Ri. vchod Byl nalezen výzvou

Jmenování závěrů 15-pinových konektorů

Kontakt Signál Směr Popis
1 Štít - Obrazovka
2 Txd. Výstup Přenosná data
3 RXD. vchod Přijatá data
4 RTS. Výstup Hostitel připraven k přenosu
5 CTS. vchod Zařízení je připraveno k přijetí
6 DSR. vchod Zařízení je připraveno
7 GND. - Společný drát
8 CD vchod Zjištění načítání
9 - - Rezervovat
10 - - Rezervovat
11 - - Nepoužívá
12 SCD. vchod Nosič je detekován. # 2
13 SCTS. vchod Zařízení připravené k recepci # 2
Kontakt Signál Směr Popis
14 Stxd. Výstup Přenesená data # 2
15 TRC. vchod Užívání vysílače
16 SRXD. vchod Přijaté údaje # 2
17 Rcc. vchod Takt na přijímači
18 Lloop. Výstup Místní smyčka
19 SRTS. Výstup Hostitel připraven k přenosu # 2
20 DTR. Výstup Připravený hostitele
21 Rloop. Výstup Vnější smyčka
22 Ri. vchod Byl nalezen výzvou
23 DRD. vchod Rychlost dat je určena
24 TRCO. Výstup Vezměte externí vysílač
25 Test vchod Testovací mód

Tabulka ukazuje, že 25kolíkové rozhraní se vyznačuje přítomností plnohodnotného druhého přijímacího kanálu (signály označené "# 2"), stejně jako četné další řídicí a řídicí signály. Nicméně, často i přes přítomnost v počítači "širokoúhlý" konektor, další signály nejsou jednoduše připojeny.

Elektrické vlastnosti

Úrovně logického vysílače: "0" - od +5 do +15 voltů, "1" - od -5 do -15 voltů.

Logické úrovně přijímače: "0" - nad +3 voltů, "1" - pod -3 voltů.

vstupní odpor přijímač alespoň 3 com.

Tyto vlastnosti jsou definovány standardem jako minimální, což zaručuje kompatibilitu zařízení, nicméně skutečné vlastnosti jsou obvykle výrazně lepší, což umožňuje na jedné straně přivádějí nízkoenergetické zařízení z pólu (například mnoho domácích datových kabelů jsou navržený pro mobily) a na druhé straně - předložit do přístavu přístavu obrácený Úroveň TTL místo bipolárního signálu.

Popis hlavních signálů rozhraní

CD - Zařízení nastavuje tento signál, když detekuje nosič v přijatém signálu. Typicky tento signál používá modemy, které tak hlásí hostitele na objevování pracovního modemu na druhém konci řádku.

RXD. - Přijměte data hostitele ze zařízení. Podrobně popsáno v sekci "Protokol výměny dat".

Txd. - Data Host Přenosová vedení do zařízení. Podrobně popsáno v sekci "Protokol výměny dat".

DTR. - Hostitel nastaví tento signál, když je připraven k výměně dat. Signál je ve skutečnosti nastaven při otevření portu komunikačního programu a zůstane v tomto stavu po celou dobu, dokud je port otevřený.

DSR. - Zařízení nastavuje tento signál, když je povoleno a připraveno k výměně dat s hostitelem. Tyto a předchozí (DTR) signály musí být nainstalovány pro výměnu dat.

RTS. - Hostitel nastaví tento signál před zahájením přenosu dat do zařízení a také signalizuje připravenost pro příjem dat ze zařízení. Používá se při řízení hardwaru nad výměnou dat.

CTS. - přístroj nastavuje tento signál v reakci na předchozí instalaci hostitele (RTS), když je připraven k přijetí dat (například když předchozí data hostitelská data byla přenášena do řádku v řádku nebo je zde volný prostor v mezilehlém prostoru vyrovnávací paměť).

Ri. - Zařízení (obvykle modem) nastavuje tento signál při příjmu hovoru ze vzdáleného systému, například při příjmu telefonátPokud je modem nakonfigurován pro přijímání hovorů.

Protokol výměny dat

Protokol RS-232 existuje dvě metody řízení dat: hardware a software, stejně jako dva přenosové režimy: synchronní a asynchronní. Protokol umožňuje používat některý z metod řízení spolu s jakýmkoliv přenosovým režimem. Pracování bez řízení průtoku je také povoleno, což znamená konstantní připravenost hostitele a zařízení pro přijímání dat při nastavení připojení (jsou nainstalovány signály DTR a DSR).

Metoda správy hardwaru Je implementován pomocí signálů RTS a CTS. Pro přenos datového hostitele (počítače) nastaví signál RTS a čeká na instalaci signálu CTS, po kterém jsou data spuštěna, dokud není nastaven signál CTS. Signál CTS je zkontrolován hostitelem bezprostředně před zahájením přenosu dalšího bajtu, takže byte, který již začal být vysílán, bude přenášen zcela bez ohledu na hodnotu CTS. V polovičních duplexních datech výměny dat (přístroj a hostitelská data zase, v plném duplexním režimu, mohou to udělat ve stejném čase) Odstranění signálu RTS pomocí hostitele znamená jeho přechod na recepci recepce.

Metoda správy softwaru Je převést hostitele speciálních stavových symbolů (symbol s kódem 0x13, nazvaný Xoff) a obnovení (symbol s kódem 0x11, nazvaný Xon). Při příjmu těchto znaků musí přenosová strana odpovídajícím způsobem zastavit přenos nebo pokračovat (pokud jsou data čekající na přenos). Tato metoda je snazší, pokud jde o implementaci zařízení, však poskytuje pomalejší reakci, a proto vyžaduje oznámení vysílače vysílače, když je volný prostor snížen v přijímacím pufru na určitý limit.

Synchronní režim přenosu To znamená nepřetržitou výměnu dat, když bity následují jeden po druhém bez dalších pauz v dané rychlosti. Tento režim portu COM není podporováno.

Asynchronní režim přenosu Je to, že každý bajt dat (a bitový bit parity, v případě jeho přítomnosti), "se vypne" synchronizační posloupnost jednoho nulového počátečního bitů a jeden nebo více jednotlivých stop bitů. Diagram toku dat v asynchronním režimu je uveden na obrázku.

Jeden z možných algoritmů přijímače Následující:

  1. Očekávejte úroveň "0" signálu příjmu (RXD v případě hostitele, TXD v případě zařízení).
  2. Počítejte polovinu trvání baterie a zkontrolujte, zda je úroveň signálu stále "0"
  3. Spočítejte celou dobu trvání bitů a aktuální úroveň signálu Napište na dávku mladších dat (bit 0)
  4. Opakujte předchozí položku pro všechny ostatní datové bity
  5. Spočítejte celou dobu trvání bitu a aktuální úroveň signálu použít k ověření správnosti recepce pomocí ovládání parity (viz níže)
  6. Stiskněte celou dobu trvání a ujistěte se, že aktuální úroveň signálu "1".

Při výpočtu je sériový port sériovým komunikačním rozhraním, kterým jsou informace přenášeny nebo vydávány najednou. Pro většinu z historie osobních počítačů byla data přenášena prostřednictvím sériových portů na zařízeních, jako jsou modemy, terminály a různá periferní zařízení.

Ačkoli rozhraní, jako je Ethernet, FireWire a USB, všechna pošle data jako sekvenční tok, termín "sériový port" typicky identifikuje hardware, více či méně kompatibilní s normou RS-232, určené k interakci s modemem nebo podobným komunikačním odkazem.

Moderní počítače bez sériových portů mohou vyžadovat převodníky s sériovým rozhraním, aby byla zajištěna kompatibilita s sériovými zařízeními RS-232. Sériové porty jsou stále používány v aplikacích, jako jsou průmyslové automatizační systémy, vědecká zařízení, prodejní systémy a některé průmyslové a spotřební zboží. Serverové počítače mohou používat sériový port jako konzola pro správu nebo diagnostiku. Síťové vybavení (například směrovače a přepínače) často používají sériovou konzolu pro konfiguraci. Sériové porty jsou stále používány v těchto oblastech, protože jsou jednoduché, levné, a jejich funkce konzoly jsou vysoce standardizované a rozšířené.

COM Port Pinout (RS232)

Existují 2. odrůdy přístavu COM, 25-pinový starý konektor a nahradil svůj novější 9kolíkový konektor.

Níže je uveden diagram standardního standardního 9kolíku konektoru RS232 s konektory, tento typ konektoru se také nazývá konektor DB9.

  1. Detekce nosiče (DCD).
  2. Získání dat (RXD).
  3. Přenos dat (TXD).
  4. Připravenost pro výměnu z přijímače (DTR).
  5. Země (GND).
  6. Připravenost pro výměnu ze zdroje (DSR).
  7. Žádost o převod (RTS).
  8. Přenosová připravenost (CTS).
  9. Volání signál (RI).

RJ-45 pro DB-9 Informace o výstupu adaptéru sekvenčního portu pro přepínač

Port konzoly je sériové rozhraní RS-232, které používá konektor RJ-45 pro připojení k řídicím zařízení, například PC nebo notebook. Pokud není na notebooku nebo PC žádný kód PIN DB-9, a chcete připojit notebook nebo počítač k přepínači, použijte kombinaci adaptéru RJ-45 a DB-9.

DB-9.RJ-45.
Získávání dat2 3
Přenos dat3 6
Výměna připravenosti4 7
Přistát5 5
Přistát5 4
Výměna připravenosti6 2
Žádost o převod7 8
Připravenost k přenosu8 1

Barvy drátu:

1 black.
2 hnědá
3 červená
4 oranžová
5 žlutá
6 zelená
7 modrý
8 šedá (nebo bílá)

Někdy musíte řešit komunikační úkol elektronické zařízení S počítačem, ať už je to jednoduše vyměňováno daty nebo dálkové ovládání. Tento článek popisuje, jak to lze implementovat pomocí sériového portu. Jeho hlavní výhodou je standardní software windows Interface (API) Umožňuje přímo ovládat výstupní řádky, které předkládají přímou kontrolu a má funkci čekání na určitou událost spojenou s přístavem COM. RS-232 Standard, pro které jsou vytvořeny porty COM, umožňuje připojení a vypnout kabely během provozu zařízení (horká zástrčku).

Popis

COM port (sériový port) - Bidirectional Interface Přenos dat v sekvenčním tvaru (bit mimo) přes protokol RS-232. Jedná se o spíše běžný protokol použitý pro sdělení jednoho zařízení (například počítače) s jinými vodiči do 30 m. Logické signály se zde liší od Standard: Úroveň logické jednotky je od +5 do + 15V, úroveň logické nuly je od -5 do -15V, která vyžaduje další transformace obvodu, ale poskytuje dobrou imunitu hluku.

Zvažte 9kolíkový konektor (DB-9m). Níže je jeho pinout:

Výstup № název Signální charakter Signál
1 DCD. Vstup Data nosič detekuje.
2 RXD. Výstup Přenosová data.
3 Txd. Vstup Přijímat data.
4 DTR. Výstup Datový terminál Ready.
5 GND. - Přízemní
6 DSR. Vstup Ready dat
7 RTS. Výstup Požádat o odeslání.
8 CTS. Vstup Odeslat.
9 Ri. Vstup Indikátor kruhu

Především budeme mít zájem o piny 2 (přenos dat), 3 (recepce dat) a 5 (pozemek). To je minimální sada pro možnosti oboustranných spotřebičů.

Počínaje podrobně na popis protokolu nebude. Pro tohle je gost a podobně. Proto půjdeme dál a promluvíme si o tom, jak řídit tuto bestii.

aplikace

Jak již bylo uvedeno, úrovně RS-232 se liší od standardních hladin TTL. Proto musíme nějakým způsobem převést hodnoty napětí. Ty. Udělejte 5V od + 15V a 0V od -15V (a naopak). Jedním ze způsobů (a pravděpodobně nejjednodušší) - použití speciálního max232 mikroobvodu. Je snadné pochopit a zároveň může převést dva logické signály.

Níže je uveden režim jeho začlenění:


Myslím, že by neměly být obtížné. Jedná se o jeden z použití tohoto čipu: přenos dat z mikrokontroléru na počítači a naopak. Přenosný signál přichází na nohy t x.Na jedné straně a na r x.Na druhé straně. Vstupní signály jsou odstraněny z t x.A r. x.V tomto pořadí.

Programování

Chcete-li začít, pojďme mluvit o programovacích portů na nízké úrovni. Tak to bude správnější. Strávil jsem spoustu nervů, zabývající se tímto rozhraním, dokud jsem začal ponořit se do principu jeho práce na nižší úrovni než spíše jednoduchý přenos Symboly. Pokud je jasné, znamená to, že neexistují problémy s jazyky na vysoké úrovni.

Níže jsou uvedeny adresy přístavů COM, s nimiž budeme muset pracovat:

Název portů Adresa IRQ.
Com 1. 3F8h. 4
Com 2. 2F8h. 3
Com 3. 3e8h. 4
Com 4. 2e8h. 3

Mohou se lišit. Nastavte hodnoty v nastavení systému BIOS. Toto je základní adresy. Budou také záviset na adrese registrů odpovědných za práci přístavů:

Adresa Dlab. Čtení psaní Zkratka Název registrace
+ 0 =0 Napsat Vysílač Holding Buffer.
=0 Číst. Přijímací pufr.
=1 Číst psát. Divizorová západka nízký bajt
+ 1 =0 Číst psát. Erer. Přerušení Povolit registru
=1 Číst psát. Divisor Latch High Byte
+ 2 - Číst. IIR. INTERRUCHE Identifikační registr
- Napsat Fcr. FIFO řídicí registr
+ 3 - Číst psát. Lcr. Registr řízení linky
+ 4 - Číst psát. MCR. Registr řízení modemu
+ 5 - Číst. Lsr. Stavový registr řádku.
+ 6 - Číst. Msr. Stavový registr modemu.
+ 7 - Číst psát. Registrace poškrábání.

První sloupec je registrační adresa ve vztahu k základnímu. Například pro COM1: Adresa registr LCR bude 3F8H + 3 \u003d 3FB. Druhý sloupec - DLAB (Divisor Latch přístupový bit) bit, definování jiného účelu pro stejný registr .. I.e. To vám umožní pracovat s 12 registry pomocí 8 adres. Například, pokud DLAB \u003d 1, pak se odkazuje na 3F8H, nastavíme hodnotu mladšího bajtu frekvence generátoru hodin. Pokud DLAB \u003d 0, pak se odkazuje na stejnou adresu, bude v tomto registru zaznamenán přenášený nebo přijatý bajt.

Nulový registr. \\ t

Vyhovuje registrům / registrům přenosu dat a koeficientu děliče frekvence generátoru. Jak je uvedeno výše, pokud DLAB \u003d 0, pak se registr používá k záznamu přijatých / přenosných dat, pokud je 1, pak je nastavena hodnota dolního bajtu frekvenční frekvence hodinového generátoru. Míra přenosu dat závisí na hodnotě této frekvence. Nejstarší děličový byte je zapsán do další paměťové buňky (tj. Pro přístav COM1, bude to 3F9H). Níže je v závislosti na datové rychlosti z koeficientu rozdělovače:

Povolit přerušení registr (IER)

Pokud DLAB \u003d 0 se používá jako registr registru přerušení od asynchronního adaptéru, pokud DLAB \u003d 1, pak nastaví senior bajt frekvence generátoru hodin.

Identifikační registr přerušení (IIR)

Přerušení je událost, při které provedení hlavního programu zastaví a začne postup přerušení. Tento registr určuje typ přerušení.

Registr řízení linky (LCR)

Toto je registr řízení.

Bit 7. 1 Divizorová západka přístupový bit - rychlost výměny dat
0 Běžný režim (řízení přerušení, přenos příjem / dat)
Bit 6. Mimic Line Break (pošle posloupnost několika nula)
Bity 3 - 5 Bit 5. Bit 4. Bit 3. Volba víry
X. X. 0 Žádná parita.
0 0 1 Lichá parita.
0 1 1 Dokonce i parita.
1 0 1 Vysoká parita (lepkavý)
1 1 1 Nízká parita (lepkavý)
Bit 2. Počet stop bitů
0 1 Stop Bit.
1 2 STOP BITS na 6,7 \u200b\u200bnebo 8 datových bitů nebo 1,5 stop bity s 5 datovými bity.
Bity 0 a 1 Bit 1. Bit 0. Počet datových bitů
0 0 5 bitů
0 1 6 bitů
1 0 7 bitů
1 1 8 bitů

Kontrola připravenosti předpokládá přenos jiného bitu - bod připravenosti. Jeho hodnota je nastavena tak, že v bitovém paketu byl celkový počet jednotek (nebo nula) dokonce nebo lichý, v závislosti na instalaci registrů přístavu. Tento bit se používá k detekci chyb, které se mohou vyskytnout během přenosu dat v důsledku interference na řádku. Příjem zařízení znovu vypočítá paritu dat a porovnává výsledek s paritním bitem. Pokud se parita nespadá, předpokládá se, že data jsou přenášena s chybou.

Stop bit znamená ukončení přenosu dat.

Registr řízení modemu (MCR)

Registr řízení modemu.

Bit Hodnota
0 Řádek DTR.
1 Linie RTS.
2 Řádek out1 (náhradní)
3 Řádek out2 (náhradní)
4 Spuštění diagnostiky při vstupu do asynchronního adaptéru, uzavřen na výstupu.
5-7 Rovna 0.

Stavový registr řádku (LSR)

Zaregistrujte se definování stavu řádku.

Bit Hodnota
0 Data jsou získána a připravena ke čtení, automaticky se resetují při čtení dat.
1 Chyba přetečení. Byl přijat nový datový bajt a předchozí program ještě nebyl čten. Předchozí bajt je ztracen.
2 Chyba Přišetření je resetována po přečtení stavu řádku.
3 Chyba synchronizace.
4 Požadavek na přerušení přenosu "Break" je detekován - dlouhý řádek nul.
5 Rejstřík ukládání vysílače je prázdný, můžete nahrát nový bajt pro přenos.
6 Registr posunu vysílače je prázdný. Tento registr obdrží data z úložného rejstříku a převádí je na sériový typ přenosu.
7 Časový limit (zařízení není připojeno k počítači).

Stavový registr modemu (MSR)

Stavový registr modemu.

A je to. Provozování těchto registrů můžete přímo komunikovat s přístavem COM, ovládat přenos a příjem dat. Pokud nechcete nepořádat s pamětí, můžete použít již hotové komponenty pro různé programovací prostředí: C ++, VB, Delphi, Pascal, atd. Jsou intuitivní, takže si myslím, že to nestojí za pozornost zde.

Zastávky. - Nastaví počet stop bitů. Možná
Proveďte následující hodnoty:


  • Onestopbit. - jeden stop bit;
  • Jeden5stopbit. - jeden a půl zastávky bitů (prakticky ne
    použitý);
  • TWOSTOPBIT. - Dva stopové kousky.

Po vyplnění všech polí struktury DCB, potřebujete
Konfigurace portu voláním funkce SETCOMMStATE:

Bool setcommstate (

Rukojeť hfile

LPDCB LPDCB.

V případě úspěšného dokončení se funkce vrátí od nuly
hodnota a v případě chyby - nula.

Druhá povinná struktura pro konfiguraci přístavu je
Struktura č. Definuje dočasné parametry zpoždění
Při příjmu. Zde je popis této struktury:

typedef struct _Commtimeouts (

DWORD ReadInterValtimeout;

DWORD readtotaltimultiplipliplier;

DWORD readtotoltimeoutconstant;

Dord writetoltimultion;

Dord writetoltimeoutconstant;

) Commtimeouts, * lpcommmtimeouts;

Pole Struktura Commtimeouts mají následující hodnoty:


  • ReadIntervaltimeout. - maximální časový interval
    (v milisekundách) přípustné mezi dvěma čitelnými
    Komunikační linie postupnými znaky. Během
    Čas čtení časového období začíná odpočítávat
    Příjem prvního symbolu. Pokud interval mezi dvěma
    Sekvenční znaky překročí zadanou hodnotu, provoz
    Čtení a všechna data akumulovaná v bufferu jsou přenášena
    v programu. Nulová hodnota toto pole znamená, že dané
    Časový limit není použit.
  • Readtotaltimeoutmultiplier. - Určuje násobitel (v


    Vynásobené počtem požadovaných znaků ke čtení.
  • Readtotaltimeoutconstant - Určuje konstantu (v

    Čtení operací. Pro každou operaci čtení tato hodnota
    plus výsledky násobení readtotaltimultiplier
    Počet požadovaných znaků na čtení. Nulová pole
    ReadtotalTimeoutMultiplier a readtotaltimeoutconstant znamená
    Že se nepoužívá celkový časový limit pro operaci čtení.
  • WritetotalaltimeoutMultiplier. - Určuje násobitel (v
    Milisekund) slouží k výpočtu celkového časového limitu

    vynásobené počtem písemných znaků.
  • Writetotaltimeoutconstants. - Určuje konstantu (v
    Milisekund) slouží k výpočtu celkového časového limitu
    Záznamové operace. Pro každou operaci záznamu, tato hodnota
    Přidán do výsledku násobení writetotaltimultiplier
    Počet zapisovatelných znaků. Nulová pole
    Writetotaltimeoutmultiplier a writetotaltimeoutconstant znamená
    Že celkový časový limit pro provozní operaci se nepoužívá.

O něco podrobněji o časových limitech. Necháme od přístavu 50
Symboly s rychlostí 9 600 bitů / s. Pokud se používá 8 bitů
na symbolu, navíc k paritě a jeden stop bit, pak jeden
Symbol ve fyzické lince účtuje 11 bitů (včetně výchozích bitů).
To znamená, že 50 znaků rychlostí 9 600 bitů bude přijato

50 × 11/9600 \u003d 0.0572916 s

nebo asi 57,3 milisekund, poskytl nulový interval
mezi přijetím po sobě následujících znaků. Pokud interval mezi
Znaky jsou přibližně poloviny přenosu jedné
symbol, tj. 0.5 milisekund, doba příjmu bude

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

nebo asi 82 \u200b\u200bmilisekund. Je-li více v procesu čtení
82 milisekund, pak máme právo předpokládat, že došlo k chybě
Práce externího zařízení a může přestat číst, čímž
vyhýbat se zmrazení programu. Toto je celkový časový provoz
čtení. Stejně tak existuje celkový časový limit rekordní operace.

Vzorec pro výpočet celkové operace časového limitu, například
Čtení, vypadá takto:

Numofchar x readtotaltimultimultiplier +
Readtotaltimeoutconstant

kde je numofchar počet požadovaných znaků pro operaci čtení.

V našem případě nelze nahrávání časového limitu použít a
Nastavte je rovna nule.

Po vyplnění struktury Commtimeouts je třeba zavolat
Instalace časového limitu:

Bool setcommtimeouts (

Rukojeť hfile

Lpcommmtimeouts lpcommmtimeouts.

Protože operace přenosu recepce se provádějí při nízké rychlosti,
Použité vyrovnávací paměti dat. Nastavení velikosti přijímací vyrovnávací paměti a
Funkce musí být použity transfery:

Bool setupcomm (

Rukojeť hfile

Dword Dwinqueue,

Dword dwoutqueue.

Předpokládejme, že si vyměníte s balíčky externího zařízení
Informace o velikosti 1024 bajtů, pak rozumnou velikost nárazníků
Bude existovat hodnota 1200. Funkce SetupComm je zajímavá, protože to může
Jen si vezměte své rozměry, abyste si všimli vlastním přizpůsobením nebo
Obecně odmítnout velikosti vyrovnávací paměti nabízených vámi - v tomto případě
Tato funkce je doplněna chybou.

Dám příklad otevření a konfigurace sekvenčního
Port COM1. Pro stručnost - bez definice chyby. V tomto příkladu
Port se otevírá pracovat rychlostí 9 600 bitů / C, použité 1
Zastavit bit, paritní bit se nepoužívá:

#Zahrnout.

. . . . . . . . . .

Rukojeť;

Commtimeouts commtimeouts;

DCB DCB;

rukojeť \u003d createfile ("com1", generic_read | generic_write,
NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLED, NULL);

Setupcomm (popisovač, SizeBuffer, SizeBuffer);

GetCommmstate (rukojeť, a dcb);

dcb.baudrate \u003d CBR_9600;

dcb.fbinary \u003d true;

dcb.foutxctSflow \u003d false;

dcb.foutxdsrflow \u003d false;

dCB.FDTRCONTROL \u003d DTR_CONTROL_HANDSHINE;

dcb.fdsrsensitiity \u003d false;

dcb.fnull \u003d false;

dcb.frtscontrol \u003d rty_control_disable;

dcb.fabortonerror \u003d false;

dcb.bytesize \u003d 8;

dcb.parity \u003d noparita;

dCB.Stopbits \u003d 1;

Setcommmstate (rukojeť, a dcb);

Commtimeouts.readintervalTimeout \u003d 10;

COMMTIMEOUTS.READTOTETALTUTMULIPLIPIPLIQUIPLIVCE \u003d 1;

// hodnoty tohoto času - výstupy jsou dostatečně dost
recepce

// i při rychlosti 110 baud

Commtimeouts.readtottottimeoutconstant \u003d 100;

// použitý b. tento případ jako čekací doba
balíček

Commtimeouts.writetaltimeoutMultiplier \u003d 0;

Commtimeout.writetaltimeoutconstant \u003d 0;

Setcommmtimeouts (popisovač, & commtimeouts);

Purgecomm (rukojeť, purge_rxclear);

Purgecomm (rukojeť, purge_txclear);

Po otevření přístavu, první věc, kterou musíte ztratit, tak
Stejně jako v bufferech recepce a přenosu může být "odpadky". Proto B.
Konec příkladu jsme použili funkci dříve, která nám nebyla známa
Purgecomm:

Bool purgecomm (

Rukojeť hfile

Dword Dwflags.

Tato funkce může provádět dvě úkoly: Vyčistěte frontu
Příjem a přenos v řidiči nebo dokončení všech operací
I / O. Jaké přesně akce provádějí, nastavit do druhého
Parametr:


  • Purge_txabort.
    záznamy, i když nejsou dokončeny;
  • Purge_rxabort. - okamžitě zastaví všechny operace
    čtení, i když nejsou dokončeny;
  • Purge_txclear. - vymaže přenosovou frontu v ovladači;
  • Purge_rxClear. - vymaže frontu přijímání v
    Řidič.
    Tyto hodnoty lze kombinovat pomocí poraženého
    Nebo. Po chybách se doporučuje čisté pufry
    přijetí a po dokončení s přístavem.

Je čas zvážit přímo operace
Čtení-psát pro přístav. Pokud jde o práci se soubory, použité
Funkce readfile a writefile. Zde jsou jejich prototypy:

Bool readfile (

Rukojeť hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTESTOREAD,

Lpdword lpnumofbytesRead,

LpoverLapped Lpoverlped.

Bool writefile (

Rukojeť hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTEWRITE,

Lpdword lpnumofbyteswritenten,

LpoverLapped Lpoverlped.

Zvažte přiřazení parametrů těchto funkcí:


  • hfile - deskriptor otevřít soubor Sdělení
    přístav;
  • lpbuffer. - Adresa vyrovnávací paměti. Pro data zápisu
    Tato vyrovnávací paměť bude přenášena do přístavu. Pro čtení operace v tomto
    Vyrovnávací paměť bude umístěn údaji odebranými z řádku;
  • nnumofbytestoread, nnumofbytewrite. - počet očekávaných
    přijímat nebo určené pro převodové bajty;
  • nnumofbytesRead, nnumofbyteswritten. - počet skutečných
    přijata nebo přenášené bajty. Pokud je přijat nebo převeden méně
    Data než požadovaná, svědčí svědčí o souborovém souboru
    O chybě a pro komunikační port není nutně.
    Způsobit v časových limitech.
  • Lpoverlped. - adresa použité překryté struktury
    Pro asynchronní operace.

V případě normálního dokončení se funkce vrátí
liší od nuly, v případě chyby - nula.

Dám příklad čtení a psaní:

#Zahrnout.

…………..

DWORD NUMBYS, NUMBYTES_OK, TEMP;

Comstat comstate;

Překrývající se překrývání;

char buf_in \u003d "Dobrý den!";

numbytes \u003d 6;

// Pokud teplota není nula, znamená to, že port je schopný
Chyby

pokud (! temp) writefile (rukojeť, buf_in, numbytes,
& Numbytes_ok a překrytí);

ClearCommError (popisovač, a temp, a comstate);

pokud (! TEMP) ReadFile (rukojeť, buf_in, numbytes, & numbytes_ok,
& PŘEKRYTÍ);

// V proměnné numbytes_ok obsahuje reálné číslo
přenosný

// přijatý byte.

V tomto příkladu jsme použili dříve dva neznámé
COMSTAT a překrývá struktury, stejně jako funkce ClearCommError. Pro
Naše komunikační případ "ve třech vodičích" se překrývá
Zvážit (jen použít jako v příkladu). Funkce prototypu
ClearCommError má formulář:

Bool ClearCommError (

Rukojeť hfile

LPDWord LPRRORS,

Lpcomstat lpstat.

Tato funkce resetuje znakovou značku portu (pokud existuje
místo) a vrátí informace o stavu přístavu ve struktuře
COMSTAT:

typedef struct _comstat.

DWORD FCTSHOLD: 1;

DWORD FDSRhold: 1;

DWORD FRLSDOLD: 1;

DWORD FXOFFHOLD: 1;

DWORD FXOFFSent: 1;

DWord Feof: 1;

DWORD FTXIM: 1;

DWORD se zabývají: 25;

Dord cbinque;

Dword cboutque;

) COMStat, * lpcomstat;

Můžeme použít dvě pole této struktury:


  • Cbinque. - počet znaků v přijímacím vyrovnávací paměti. Tyto symboly
    převzato z řádku, ale dosud čtení funkce readfile;
  • Cboutque. - počet znaků v přenosu pufru. Tyto
    Symboly ještě nejsou přenášeny na linku.

Zbývající pole této struktury obsahují informace o
Chyby.

Konečně, po dokončení práce s přístavem by mělo být uzavřeno.
Zavření objektu ve Win32 provede funkci CloseShandle:

Bool closdandle (

Zvládnout hobject.

Na našich stránkách naleznete celý text třídy pro práci
Sekvenční port v asynchronním režimu "ve třech vodičích" a
Také příklad programu pomocí této třídy. Tohle všechno
Napsáno pod Tvůrcem C ++, ale používají se pouze funkce.
API Win32, textový text se snadno mění pro libovolný kompilátor C ++.
Je také možné, že třída není napsána docela "podle pravidel" - žádám
Omluvte, autor není "správný" programátor a píše tak
Jak je to pohodlné j.

Znovu vítám všechny na stránkách svého blogu a dnes chci říct, jak připojte COM. uSB port V systému Windows. Promluvme si, že je to a pro to, co se používá. Domnívám se, že pro začínající síťové správce, a jen pro pokročilé uživatele to bude zajímavé, pro mě, najednou to bylo jen nějaký druh magie, který vám umožní konfigurovat serverové vybavení.

Co je připojeno přes COM port

Prostřednictvím přístavu COM dříve připojené modemy, myši. Nyní se používá k připojení k zdrojům nepřerušovaný výkon, pro komunikaci s hardwarovým vývojem integrovaných výpočetních systémů, satelitní přijímače, pokladní registry, se zařízeními pro zabezpečení objektů, stejně jako s mnoha jinými zařízeními.

Pomocí portu COM můžete připojit dva počítače pomocí tzv. "Kabelu s nulovým modemem" (viz níže). Používá se od MS-DOS časy k čerpacím souborům z jednoho počítače do druhého, v Unixu pro přístup k terminálům k jinému počítači a v systému Windows (i moderní) - pro ladicí ladicí program jádra.

Ale v Síťovém světě prostřednictvím přístavu COMpřipojení k konzolovému portu síťových zařízení (přepínače, směrovače, značky, jako je Cisco nebo Juniper)

Co je obvod připojení k přepne sériovým portem. Existují například adaptéry, například z ST-laboratoře na jednom konci USB, které se připojujete k počítači a druhý je COM port.

Instalace COM ovladače USB port v systému Windows

Bohužel v připojených zařízeních se systémem Windows, USB až COM není vždy automaticky nainstalován v systému a musíte vyhledávat ovladače. Pokud jste to koupil sami, pak byl jednotka zahrnuta s ovladači a můžete ji použít, pokud to není, pak se podívejte na to, jak najít ovladače.

Otevřete Správce zařízení v systému Windows. Pokud nevíte, jak, stiskněte klávesu Ctr + Pause Breake, nebo stiskněte Win + R a zadejte Devmgmt.msc v okně. Jak vidíte v sekci Porty (COM a LPT), byl jsem nalezen na třetím COM portu neznámého drátu a řidiči pro něj pro něj nenašli ze systému, který nám žlutá ikona říká.

Jít na reality toto zařízení A vyberte ID zařízení, budete mít něco podle typu USB VID_067B & PID_2303 & REV_0300, zde kopírujete a vyhledejte v Google nebo Yandex.

Poté klikněte pravým tlačítkem myši na tlačítko Správce zařízení a vyberte možnost Instalovat ovladače, uveďte cestu k nim a dejte, zda je vše v pořádku, pak máte ikona zmizí Varování.

Dále můžete již používat možnosti přístavu COM pomocí takových nástrojů na zdání Putty, kde vyberete sériové a určete požadovaný port COM port, můžete jej vidět ve stejném Správci zařízení.

Doufám, že jste se naučili a zjistili, jak připojit port COM USB v systému Windows.