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) |
|
Jmenování závěrů 15-pinových konektorů
|
|
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í:
- Očekávejte úroveň "0" signálu příjmu (RXD v případě hostitele, TXD v případě zařízení).
- Počítejte polovinu trvání baterie a zkontrolujte, zda je úroveň signálu stále "0"
- Spočítejte celou dobu trvání bitů a aktuální úroveň signálu Napište na dávku mladších dat (bit 0)
- Opakujte předchozí položku pro všechny ostatní datové bity
- 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)
- 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.
- Detekce nosiče (DCD).
- Získání dat (RXD).
- Přenos dat (TXD).
- Připravenost pro výměnu z přijímače (DTR).
- Země (GND).
- Připravenost pro výměnu ze zdroje (DSR).
- Žádost o převod (RTS).
- Přenosová připravenost (CTS).
- 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í dat | 2 | 3 | |
Přenos dat | 3 | 6 | |
Výměna připravenosti | 4 | 7 | |
Přistát | 5 | 5 | |
Přistát | 5 | 4 | |
Výměna připravenosti | 6 | 2 | |
Žádost o převod | 7 | 8 | |
Připravenost k přenosu | 8 | 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.