Mi a számítógép macska portja. Melyek a személyi számítógép kikötői? És mi azok? Hogyan lehet letiltani az USB portokat, amikor kikapcsolja a számítógépet

Az RS-232 interfész leírása, a használt csatlakozók formátuma és a kimenetek, jelek, adatcsere protokoll hozzárendelése.

Általános leírása

Az RS-232 interfész, amely hivatalosan "EIA / TIA-232-E", de jobban ismert, mint a "COM port" felület, korábban az egyik leggyakoribb interfész volt számítástechnikus. Még mindig találkozik asztali számítógépekAnnak ellenére, hogy több sebességű és "intelligens" interfészek, mint például az USB és a Fireware. Annak előnyeit a szempontból rádióamatőrök tudható be az alacsony minimális sebesség és az egyszerűség a végrehajtás a protokoll a házi eszközt.

A fizikai interfész egyike által megvalósított két típusú csatlakozók: DB-9M vagy DB-25M, az utóbbi a jelenleg kapható számítógépek gyakorlatilag nem található.

9 pólusú csatlakozó következtetések kinevezése


9 pólusú DB-9M típusú dugó
PIN-kontaktumok
A jelek iránya a gazdagéphez képest (számítógép) vonatkozik
Kapcsolatba lépni Jel Irány Leírás
1 CD bejárat Az észlelt betöltés
2 Rxd. bejárat Elfogadott adatok
3 TXD. Kimenet Továbbított adatok
4 DTR. Kimenet Fogadó készen áll
5 GND. - Közös huzal
6 DSR. bejárat A készülék készen áll
7 Rts Kimenet Host készen áll az átvitelre
8 CTS. bejárat A készülék készen áll a fogadásra
9 Ri bejárat Kihívást találtak

A 15 pólusú csatlakozók következtetéseinek kinevezése

Kapcsolatba lépni Jel Irány Leírás
1 Pajzs. - Képernyő
2 TXD. Kimenet Továbbított adatok
3 Rxd. bejárat Elfogadott adatok
4 Rts Kimenet Host készen áll az átvitelre
5 CTS. bejárat A készülék készen áll a fogadásra
6 DSR. bejárat A készülék készen áll
7 GND. - Közös huzal
8 CD bejárat Az észlelt betöltés
9 - - lefoglal
10 - - lefoglal
11 - - Nem használt
12 SCD. bejárat A hordozó észlelhető. # 2
13 SCTS. bejárat Eszköz készen áll a # 2 recepcióra
Kapcsolatba lépni Jel Irány Leírás
14 STXD. Kimenet Továbbított adatok # 2
15 TRC. bejárat Távadó
16 Srxd. bejárat Elfogadott adatok # 2
17 Rcc bejárat Tapintat a vevőkészüléken
18 Lloop. Kimenet Helyi hurok
19 SRTS. Kimenet Host készen áll a # 2 továbbítására
20 DTR. Kimenet Fogadó készen áll
21 Rloop. Kimenet Külső hurok
22 Ri bejárat Kihívást találtak
23 DRD. bejárat Az adatok sebességét meghatározzák
24 Trco Kimenet Vegye ki a külső adót
25 Teszt bejárat Teszt üzemmódban

A táblázat azt mutatja, hogy a 25-tűs interfész különbözteti meg a jelenléte egy teljes értékű második vételi csatorna (jeleket jelzi „# 2”), valamint számos további ellenőrzési és vezérlőjelek. Azonban gyakran, annak ellenére, hogy a "széles" csatlakozó jelenléte, további jelek egyszerűen nem kapcsolódnak hozzá.

Elektromos jellemzők

Logikai adószintek: "0" - +5-től +15 V-ig, "1" - -5-től -15 V-ig.

A vevő logikai szintjei: "0" - +3 Volt felett, "1" - -3 volt.

bemeneti ellenállás A vevő legalább 3 com.

Ezek a jellemzők határozzák meg a standard minimális, ami garantálja eszköz kompatibilitás, azonban a tényleges jellemzők általában lényegesen jobb, ami lehetővé teszi, egyrészt, hogy takarmány alacsony fogyasztású eszközöket a port (például számos házi Adat kábelek valamire tervezve mobiltelefonok), másrészt - a kikötő kikötőjének benyújtása fordított TTL szint a bipoláris jel helyett.

A fő felület jelei leírása

CD - A készülék beállítja ezt a jelet, amikor észleli a vivőanyagot a fogadott jelben. Jellemzően ezt a jelet a modemek használják, amelyek tehát jelentést tesznek a gazdaszervezetnek a működő modem felfedezésére a vonal másik végén.

Rxd. - Fogadja meg a fogadó adatokat az eszközről. Részletesen az "Data Exchange Protocol" szakaszban.

TXD. - adatszolgáltató átviteli vonal az eszközhöz. Részletesen az "Data Exchange Protocol" szakaszban.

DTR. - A fogadó beállítja ezt a jelet, ha készen áll az adatok cseréjére. Valójában a jel beállítása akkor van beállítva, amikor megnyitja a kommunikációs program portját, és ebben az állapotban marad, amíg a kikötő nyitva van.

DSR. - A készülék beállítja ezt a jelet, ha engedélyezve van és készen áll az adatok cseréjére a gazdagépekkel. Ezt és az előző (DTR) jeleket az adatok cseréjére kell telepíteni.

Rts - A fogadó állítja ezt a jelet, mielőtt adatátvitel a készülék, valamint jelzi készségét adatokat fogad a készülék. Az adatok cseréjének hardvervezérlése.

CTS. - A készülék beállítja ezt a jelet, válaszul a korábbi befogadó telepítés (RTS), amikor készen áll, hogy az adatok (például, ha az előző gazda küldött adatokat adatokat továbbítják a vonal vonal, vagy van egy szabad hely a közbenső puffer).

Ri - A készülék (általában modem) beállítja ezt a jelet, ha hívást fogad a távoli rendszerből, például a fogadáskor telefon hívásHa a modem hívásokat fogad.

Adatcsere-protokoll

Az RS-232 protokoll két adatkezelési módszert tartalmaz: hardver és szoftver, valamint két átviteli mód: szinkron és aszinkron. A protokoll lehetővé teszi, hogy bármely irányítási módszert használjon bármely átviteli móddal együtt. Az áramlásszabályozás nélkül történő működés is megengedett, ami magában foglalja a fogadó és a készülék állandó készenlétét, hogy adatokat fogadjon a kapcsolat beállításakor (a DTR és a DSR jelek telepítve vannak).

Hardvervezérlő módszer Az RTS és a CTS jelek használatával valósul meg. Az adatszolgáltató (számítógép) átviteléhez beállítja az RTS jelet, és várja a telepítendő CTS jelet, amely után az adatok elindulnak, amíg a CTS-jel be van állítva. A CTS jelet a fogadó azonnal ellenőrzi, mielőtt elindítaná a következő bájt továbbítását, így a már elkezdett továbbításra került bájtot teljesen a CTS értéktől függetlenül továbbítják. A fél-duplex adatcserét módban (az eszköz és a fogadó adási adatokat viszont, teljes-duplex üzemmódban, tudják csinálni egyidejűleg) RTS jelet eltávolítjuk a fogadó azt jelenti való áttérés a vételi mód.

Szoftverkezelési módszer Ez át a számos különleges ütköző jelképek (szimbólum 0x13 kódot, az úgynevezett XOFF) és megújítási (szimbólum kód 0x11, az úgynevezett xon). A karakterek fogadásakor az átviteli félnek meg kell állnia az átvitelt, vagy folytassa újra (ha van adat várakozásra az átvitelre). Ez a módszer egyszerűbb szempontjából a végrehajtása a berendezés, azonban egy lassabb reakció, és ennek megfelelően, megköveteli az adó értesítést az adó, ha a szabad terület csökken a fogadó puffer egy bizonyos határig.

Szinkron átviteli mód Folyamatos adatcserét jelent, amikor a bitek egymás után követik egymást, anélkül, hogy további szünetet tartanak egy adott sebességnél. Ez a COM port mód nem támogatott.

Aszinkron átviteli mód Ez az, hogy minden adatbájt (és a paritásvezérlő bit, jelenléte esetén), a "nulla start-bit és egy vagy több egyszeri stop bit szinkronizáló szekvenciája. Az aszinkron üzemmódban lévő adatáramlási diagram az ábrán látható.

A vevőegység egyik lehetséges algoritmusai következő:

  1. Várja a vételi jel "0" szintjét (RXD egy eszköz, TXD esetén egy eszköz esetében).
  2. Számolja fel az akkumulátor időtartamát, és ellenőrizze, hogy a jelszint még mindig "0"
  3. Számoljon teljes bit időtartamot és aktuális jelszintet írjon a fiatalabb adatköteghez (0 bit)
  4. Ismételje meg az előző elemet az összes többi adatbit esetében
  5. Számolja meg a teljes bit időtartamot és az aktuális jelszintet, hogy ellenőrizze a recepció helyességét paritásvezérléssel (lásd alább)
  6. Nyomja meg a teljes bit időtartamot, és győződjön meg róla, hogy az "1" jel jelenlegi szintje.

A számításkor a soros port egy soros kommunikációs felület, amelyen keresztül az információt továbbítják vagy kiadják egyszerre. A személyi számítógépek többségének többségében az adatokat az eszközökön lévő soros portokon keresztül továbbították, például modemek, terminálok és különböző perifériás eszközök.

Bár interfészek, például Ethernet, Firewire és USB, az összes adatot szekvenciális áramként küldi, a "soros port" kifejezés jellemzően azonosítja hardver, többé-kevésbé kompatibilis az RS-232 szabványnak, amelynek célja, hogy kölcsönhatásba lépjen egy modemmel vagy hasonló kommunikációs kapcsolattal.

A soros portok nélküli modern számítógépek soros interfésszel rendelkező átalakítót igényelhetnek az RS-232 soros eszközökkel való kompatibilitás érdekében. A soros portokat továbbra is alkalmazzák olyan alkalmazásokban, mint az ipari automatizálási rendszerek, tudományos eszközök, értékesítési rendszerek és néhány ipari és fogyasztási cikkek. A kiszolgálói számítógépek egy soros portot használhatnak kezelési konzolként vagy diagnosztikával. Hálózati berendezések (például útválasztók és kapcsolók) gyakran használják a soros konzolt a konfigurációhoz. A soros portokat továbbra is használják ezeken a területeken, mivel ezek egyszerűek, olcsóak, és konzol funkciói nagyon szabványosítottak és széles körben elterjedtek.

COM port Pinout (RS232)

A COM port, a 25 pólusú régi csatlakozó 2. fajta és az újabb 9 pólusú csatlakozó cseréje.

Az alábbiakban egy szabványos szabványos, 9 pólusú RS232 csatlakozó diagramja csatlakozóval, az ilyen típusú csatlakozót a DB9 csatlakozónak is nevezik.

  1. Carrier Detection (DCD).
  2. Adatszerzés (RXD).
  3. Adatátvitel (TXD).
  4. A vevőegységből származó csere készsége (DTR).
  5. Föld (GND).
  6. A forrásból származó csere készsége (DSR).
  7. Átviteli kérelem (RTS).
  8. Átviteli készség (CTS).
  9. Hívásjel (RI).

RJ-45 a DB-9-hez a Sequential port adapter kimenetéről a kapcsolóhoz

A konzol port az RS-232 soros interfész, amely az RJ-45 csatlakozót használja a vezérlőberendezéshez, például PC-hez vagy laptophoz. Ha nincs DB-9 tűs pin a laptop vagy PC-re, és szeretne csatlakozni a laptop vagy PC-ről a kapcsolót, akkor a RJ-45 és a DB-9 adapter pályára.

DB-9.RJ-45.
Az adatok megszerzése2 3
Adatátvitel3 6
Csere készség4 7
Föld5 5
Föld5 4
Csere készség6 2
Átviteli kérelem7 8
Az átvitelre való készség8 1

Huzal színek:

1 fekete
2 barna
3 piros
4 narancssárga
5 sárga
6 zöld
7 kék
8 szürke (vagy fehér)

Néha meg kell oldania a kommunikációs feladatot elektronikai eszköz Számítógéppel, függetlenül attól, hogy egyszerűen kicserélt adatokat vagy távirányítót. Ez a cikk leírja, hogy ez hogyan valósítható meg a soros port használatával. Fő előnye az, hogy a szabványos szoftver windows interfész (API) Lehetővé teszi, hogy közvetlenül szabályozható kimeneti vonalakon, így közvetlen irányítást felette, és a feladata, hogy vár egy bizonyos esemény társított COM port. Továbbá az RS-232 szabvány, amelyre a COM portok készülnek, lehetővé teszi a kábelek csatlakoztatását és kikapcsolását az eszközök működése során (forró dugó).

Leírás

COM port (soros port) - Kétirányú interfész, amely adatokat közvetít egy szekvenciális formában (kicsit túl) az RS-232 protokollon keresztül. Ez egy meglehetősen közös protokoll, amelyet egy eszköz (például egy számítógép) kommunikálnak, más vezetékekkel akár 30 m-ig is. A logikai jelek különböznek a standardból: a logikai egység szintje +5 és + 15V között van, a logikai nulla szintje -5-től -15V-ig terjed, ami további transzformációkat igényel, de jó zajmennyiséget biztosít.

Vegyünk egy 9-pólusú csatlakozót (DB-9M). Az alábbiakban látható:

Kimenet № Név Jel karakter Jel
1 DCD. Bemenet Adathordozó észlelése.
2 Rxd. Kimenet Adatok továbbítása.
3 TXD. Bemenet Adatok fogadása.
4 DTR. Kimenet Adatkimenet készen áll
5 GND. - Talaj
6 DSR. Bemenet Az adatok készen állnak
7 Rts Kimenet Küldési kérelem.
8 CTS. Bemenet Küldje el.
9 Ri Bemenet Gyűrűjelző

Legtöbbjük, érdeklődünk a 2-es csapok (adatátvitel), 3 (adatfogadás) és 5 (föld). Ez a minimális készlet a kétoldalas készülékek lehetőségének lehetőségére.

A protokoll leírásának részletesen megkezdése nem. Ehhez vannak gost és hasonlók. Ezért tovább megyünk, és beszélünk arról, hogyan kell kezelni ezt a fenevadat.

Alkalmazás

Amint már említettük, az RS-232 szintje eltér a szabványos TTL-szintektől. Ezért valahogy átalakítani kell a feszültségértékeket. Azok. Készítsen 5V-t + 15V-tól és 0V-tól -15V-tól (és fordítva). Az egyik módja (és valószínűleg a legegyszerűbb) - egy speciális Max232 mikroáramkör használata. Könnyen érthető, és ugyanakkor két logikai jelet konvertálhat.

Az alábbiakban a beilleszkedés rendszere:


Azt hiszem, nincs nehézség. Ez a chip egyik használata: adatátvitel egy mikrokontrollerről a számítógépen, és fordítva. A továbbított jel a lábakra kerül x.Az egyik oldalon és r x.A másikon. A bemeneti jeleket eltávolítják t x.És R. x.Ki, illetve.

Programozás

Kezdjük, beszéljünk a portok programozásáról alacsony szinten. Tehát helyesbb lesz. Rengeteg idegeket töltöttem, foglalkoztam ezzel az interfészrel, amíg elkezdtem az alacsonyabb szinten elvetni munkájának elvét, mint inkább egyszerű transzfer Szimbólumok. Ha világos, akkor azt jelenti, hogy a magas szintű nyelvek nem lesznek problémát.

Az alábbiakban a COM-portok címei vannak, amellyel dolgoznunk kell:

Portnév Cím IRQ.
COM 1. 3f8h 4
COM 2. 2F8H 3
COM 3. 3e8h 4
Com 4. 2e8h. 3

Változhatnak. Állítsa be az értékeket a BIOS beállításaiban. Ez alapvető címek. A kikötők munkájáért felelős regiszterek címét is függenek:

Cím Dlab Olvasás írás Rövidítés Regisztráció neve
+ 0 =0 Ír. Adó tartó puffer.
=0 Olvas. Vevő puffer.
=1 Ír olvas. Divisor retesz alacsony bájt
+ 1 =0 Ír olvas. Ier Megszakítja az engedélyező regisztrációt
=1 Ír olvas. Divisor retesz magas bájt
+ 2 - Olvas. IR. Megszakításazonosító nyilvántartás
- Ír. FCR. FIFO vezérlési nyilvántartás
+ 3 - Ír olvas. LCR. Vonalvezérlő nyilvántartás
+ 4 - Ír olvas. MCR. Modemvezérlő nyilvántartás
+ 5 - Olvas. LSR. Vonalállapot-nyilvántartás.
+ 6 - Olvas. MSR. Modem állapotregiszter
+ 7 - Ír olvas. Scratch Regisztráció.

Az első oszlop a nyilvántartási cím az alaphoz képest. Például a COM1 esetében: Az LCR regiszter címe 3F8H + 3 \u003d 3FB. A második oszlop - DLAB (Divisor Latch Access Bit) bit, amely egy másik célt ad meg ugyanazon a regiszterhez .. Lehetővé teszi, hogy 12 regiszterrel működjön, csak 8 címmel. Például, ha DLAB \u003d 1, akkor hivatkozva 3F8h, akkor az értéket a fiatalabb byte az órajel-generátor frekvenciáját. Ha a DLAB \u003d 0, akkor ugyanazon a címre hivatkozva, a továbbított vagy elfogadott byte-t ebben a regiszterben rögzítik.

Nulla regiszter

Megfelel a nyilvántartások / adatátviteli nyilvántartások és a generátor frekvencia osztó együtthatójának. Amint fentebb említettük, ha a dlab \u003d 0, akkor a regisztert a beérkezett / továbbított adatok rögzítésére használják, ha az 1, akkor az óra generátor frekvenciaválasztójának alsó bájt értéke van beállítva. Az adatátviteli sebesség a frekvencia értékétől függ. A legidősebb osztó byte a következő memóriacellába (azaz a COM1 port esetében lenne, 3f9h lesz). Az alábbiakban az adattovábbítás függése az osztó együtthatójából:

Megszakítja az Enable Register (IER)

Ha DLAB \u003d 0, akkor használják Regisztráció megszakítások egy aszinkron adapter, ha DLAB \u003d 1, akkor ez határozza meg a vezető byte az órajel-generátor frekvenciáját.

Megszakítási azonosító regiszter (IR)

A megszakítás olyan esemény, amelyen a fő program végrehajtása megáll, és megkezdődik a megszakítási eljárás. Ez a regiszter meghatározza a megszakítás típusát.

Vonalvezérlő regiszter (LCR)

Ez a vezérlőregiszter.

7. bit. 1 Divisor reteszelési bit - adatcsere sebesség
0 Közös mód (megszakításvezérlés, vétel / adatátvitel)
6. bit. Mimic Line Break (több nulla szekvenciát küld)
Bit 3 - 5 5. bit. 4. 3. bit. A hit választása
X. X. 0 Nincs paritás.
0 0 1 Furcsa paritás.
0 1 1 Még a paritás is.
1 0 1 Magas paritás (ragadós)
1 1 1 Alacsony paritás (ragadós)
2. bit. Stop bitek száma
0 1 stop bit
1 2 stop bitek 6,7 vagy 8 adatbit vagy 1,5 stop bit 5 adatbit.
0 és 1 bitek 1. bit. 0 bit. Adatbitek száma
0 0 5 bit
0 1 6 bit
1 0 7 bit
1 1 8 bit

A készenlét ellenőrzése azt jelenti, hogy egy másik bit - a készenléti pont. Az értéke olyan módon van beállítva, hogy a bitcsomagban az egységek (vagy a nullák) teljes száma akár vagy furcsa volt, a kikötői nyilvántartások telepítésétől függően. Ezt a bitet használják olyan hibák észlelésére, amelyek az adatátvitel során bekövetkezhetnek a vonal beavatkozása miatt. A fogadó eszköz újra kiszámítja az adatok paritását, és összehasonlítja az eredményt egy paritásbital. Ha a paritás nem egybeesett, úgy vélik, hogy az adatokat hibával továbbítják.

A STOP BIT eszköz az adatátvitel befejezését jelenti.

Modemvezérlő regiszter (MCR)

Modem vezérlő nyilvántartás.

Bit Érték
0 Line DTR.
1 RTS vonal.
2 Line Out1 (tartalék)
3 Line Out2 (tartalék)
4 A diagnosztika elindítása az aszinkron adapter beírásakor, a kimeneten zárva.
5-7 Egyenlő 0.

Vonalállapot-nyilvántartás (LSR)

Regisztráljon a vonal állapotát.

Bit Érték
0 Az adatokat az adatok olvasása során automatikusan vissza kell állítani, automatikusan visszaállítani.
1 Túlcsordulási hiba. Új adatbájtot fogadtak el, és az előzőt még nem olvasta meg a program. Az előző bájt elveszett.
2 A hiba állapotát a vonal állapota után visszaállítja.
3 Szinkronizációs hiba.
4 A "Break" átvitel megszakítására irányuló kérés észlelhető - a nullák hosszú sora.
5 Az adótároló nyilvántartás üres, új bájtot rögzíthet az átvitelhez.
6 A távadó eltolódási nyilvántartás üres. Ez a regiszter adatokat kap a tárolóregiszterről, és átalakítja azokat a sebességváltóhoz.
7 Time-out (a készülék nincs csatlakoztatva a számítógéphez).

Modem állapotregiszter (MSR)

Modem állapotregiszter.

Ez az. A regiszterek működtetése közvetlenül kommunikálhat a COM portdal, ellenőrizheti az adatok átvitelét és fogadását. Ha nem akarja megrázni a memóriát, akkor már kész alkatrészeket használhat különböző programozási környezetekhez: C ++, VB, Delphi, Pascal, stb. Ők intuitívek, úgy gondolom, hogy ez nem érdemes a figyelmet itt.

Stopbits. - Beállítja a stop bitek számát. Talán a mező
Vegye ki a következő értékeket:


  • ONESTOPBIT. - egy stop bit;
  • One5Stopbit. - másfél stop bit (gyakorlatilag nem
    használt);
  • Twostopbit. - Két stop bit.

Miután kitöltötte a DCB szerkezeti mezőket, szükség van rá
A port konfigurálása a SetCommstate funkció hívásával:

Bool setcomstate (

Fogantyú hfile

Lpdcb lpdcb.

Sikeres befejezés esetén a funkció nullától eltérő lesz
érték, és hiba esetén - nulla.

A kikötő konfigurálásának második kötelező szerkezete
Commiteouts struktúra. Meghatározza az ideiglenes késleltetési paramétereket
Fogadáskor. Itt van a struktúra leírása:

typedef struktúra _commtimeouts (

DWORD SEASTINTERVALIMEOUT;

DWORDTOTTALTITITIMEOUTMULIPRIPER;

DWORDTOTOTOLIMEOUTCONSTANT;

DWORD WRITETOLIMEOUTMUSIPRIPER;

DWORD WRITETOLIMEOUTCONSTANT;

) COMMTIMTIOUTS, * LPCOMMMIMEOUTS;

A COMMTIMTIMTIOUTS A struktúra mezők a következő értékek vannak:


  • LEADINTERVALTIMEOUT. - maximális időintervallum
    (milliszekundumban) két olvasható
    Kommunikációs vonal egymást követő karakterekkel. Alatt
    Az idő leolvasásának ideje, hogy számoljon le
    az első szimbólum fogadása. Ha a kettő közötti intervallum
    A szekvenciális karakterek meghaladják a megadott értéket, a műveletet
    Az olvasás és a pufferben felhalmozott adatok továbbítása
    A programban. Nulla érték ez a mező azt jelenti, hogy adott
    A töltés nem használható.
  • ReadTotalTimeOutmultiplier - Megadja a szorzót (a


    szorozva az olvasásra kért karakterek számával.
  • ReadTotalTimeOutconstant - meghatározza az állandó (be)

    Olvasási műveletek. Minden olvasási művelethez ez az érték
    plusz a receptotaltimeOutmultiplier
    Az olvasásra kért karakterek száma. Nulla mezők
    ReadTotalTimeOutmultiplier és ReadTotalTimeOutconstant eszközök
    Hogy az olvasási művelet általános időtúllása nem használható.
  • WRITETOTALTIMEOUTMULIPRIPER - Megadja a szorzót (a
    milliszekundum) a teljes időtúllépés kiszámításához használt

    az írott karakterek számával szorozva.
  • WriteTotalTimeOutconstant - meghatározza az állandó (be)
    milliszekundum) a teljes időtúllépés kiszámításához használt
    Felvételi műveletek. Minden rekord működéséhez ez az érték
    Hozzáadódik a WriteTotalTimeOutmultiplier szorzásához
    Az írható karakterek száma. Nulla mezők
    WriteTotalTimeOutmultiplier és WriteTotalTimeOutconstant eszközök
    Hogy a rögzítési művelet általános időtúllása nem használható.

Egy kicsit részletesebben az időtúllásokról. Hagyjuk olvasni az 50-es porton
9.600 bit / s sebességgel rendelkező szimbólumok. Ha 8 bitet használnak
a szimbólumon, a paritás és egy stop bit mellett, akkor egy
A fizikai vonal szimbóluma 11 bit (beleértve a kezdőbiteket is).
Ez azt jelenti, hogy 50 karaktert 9.600 bitet fognak elfogadni

50 × 11/9600 \u003d 0,0572916

vagy körülbelül 57,3 milliszekundum, feltéve, hogy a nulla intervallum
az egymást követő karakterek fogadása között. Ha az intervallum között
A karakterek körülbelül az átviteli idő körülbelül fele
szimbólum, azaz 0,5 milliszekundum, a vételi idő lesz

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

vagy körülbelül 82 milliszekundum. Ha több az olvasás folyamatában
82 milliszekundum, akkor joga van feltételezni, hogy hiba történt
a külső eszköz munkája, és leállíthatja az olvasást, ezáltal
elkerülve a program befagyasztását. Ez a teljes időtúllépés
Olvasás. Hasonlóképpen a rekord működésének teljes időtúllása van.

A teljes időtúllépés működésének kiszámításához, például,
Olvasás, így néz ki:

NumofChar X ReadTotalTimeOutmultiplier +
ReadTotalTimeOutconstant

ha a numofchar az olvasási művelethez kért karakterek száma.

A mi esetünkben az időtúllépés nem használható és
Állítsa meg őket nulla.

A COMMTIMTIMTIMTIOUTS struktúrájának kitöltése után meg kell hívnia
Timeout telepítési funkció:

Bool setcommtimeouts (

Fogantyú hfile

Lpcommtimeouts lpcommtimeouts.

Mivel az átviteli vételi műveleteket alacsony sebességgel végezzük,
Használt adatpufferelés. A fogadó puffer méretének beállításához és
A transzfereket a funkcióval kell használni:

Bool setupcomm (

Fogantyú hfile

Dword-dwinqueue,

DWORD DWOUTQUEUE.

Tegyük fel, hogy cserélsz a külső eszközcsomagokkal
A 1024 bájt méretének információi, majd ésszerű méretű pufferek
1200 érték lesz. A SetupComm funkció érdekes, mert képes
Csak vegye fel a dimenziókat, hogy megjegyezzük, hogy saját kiigazításait vagy
Általánosságban elmondható, hogy elutasítja az Ön által kínált pufferméreteket - ebben az esetben
Ez a funkció hiba történt.

Egy példát adok a szekvenciális megnyitására és konfigurálására
COM1 port. Rövidítéshez - hiba definíció nélkül. Ebben a példában
A kikötő 9.600 bit / c sebességgel működik, használt 1
Stop bit, a paritásbit nem használható:

#Inlude.

. . . . . . . . . .

Fogantyú fogantyú;

COMMTIMTIOUTS COMMTIMTIOUTS;

DCB DCB;

fogantyú \u003d createfile ("com1", generic_read | generic_write,
NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPED, NULL);

Setupcomm (fogantyú, méretű, sietbuffer);

Getcomstate (fogantyú és dcb);

dcb.baudrate \u003d CBR_9600;

dcb.fbinary \u003d igaz;

dcb.foutxctsflow \u003d FALSE;

dcb.foutxdrlow \u003d FALSE;

dcb.fdtrcrontrol \u003d dtr_control_handshake;

dcb.fdsrsensitiity \u003d hamis;

dcb.fnull \u003d hamis;

dcb.frottcontrol \u003d RTS_Control_Disle;

dcb.fabortonerror \u003d hamis;

dcb.bytesize \u003d 8;

dcb.paritás \u003d noparitás;

dcb.stopbits \u003d 1;

SETCOMMSTATE (fogantyú és DCB);

Commiteouts.readintervaltimeout \u003d 10;

Commiteouts.readtotaltimeOutmultiplier \u003d 1;

// ezek az idő értékei - a kimenetek eléggé eléggé eléggé
recepció

// Még a 110-es sebességnél is

Commiteouts.readtotaltimeOutconstant \u003d 100;

// használt b ez az eset mint a várakozási idő
csomag

Commiteouts.writealtimeOutmultiplier \u003d 0;

Commiteouts.writealtimeOutconstant \u003d 0;

SetCommtimeOuts (fogantyú és közös kommunikációs);

PurgeComm (fogantyú, purge_rxclear);

PurgeComm (fogantyú, purge_txclear);

A kikötő megnyitása után az első dolog, amit elveszíteni kell, így
Mint a recepció puffereiben, és az átvitel lehet "szemét". Ezért B.
A példa vége a korábban nem ismert funkciót alkalmaztuk
PurgeComm:

Bool PurgeComm (

Fogantyú hfile

DWORD DWFLAGS

Ez a funkció két feladatot végezhet: tisztítsa meg a sorot
Recepció és továbbítás a vezetőben vagy az összes művelet befejezése
I / o Pontosan mit kell tennie, hogy végre legyenek
Paraméter:


  • PURGE_TXABORT
    nyilvántartások akkor is, ha nincsenek kitöltve;
  • PURGE_RXABORT. - azonnal megállítja az összes műveletet
    olvasás, még akkor is, ha nincsenek kitöltve;
  • Purge_txclear - törli az átviteli várólistát a vezetőben;
  • Purge_rxclear - törli a recepciós várólistát
    Sofőr.
    Ezek az értékek kombinálhatók egy megverték használatával
    Vagy. A hibák után tiszta pufferek ajánlottak
    elfogadás és befejezés után a kikötővel.

Itt az ideje, hogy fontolja meg közvetlenül a műveleteket
Olvassa el a portot. Ami a fájlok használatát használja, használt
Olvasható és írási funkciók. Íme a prototípusuk:

Bool Readfile (

Fogantyú hfile

Lpvoid lpbuffer,

Dword nnumofbytestoread,

Lpdword lpnumofbytesread,

Lpoverlaped Lpoverled.

Bool írófájl (

Fogantyú hfile

Lpvoid lpbuffer,

DWORD NNUMOFBYTEWRITE,

Lpdword lpnumofbyteswritenten,

Lpoverlaped Lpoverled.

Tekintsük a funkciók paramétereinek hozzárendelését:


  • hfile - leíró fájl megnyitása Kommunikáció
    kikötő;
  • lpbuffer. - A puffer címe. Az írási műveleti adatokhoz
    Ez a puffer továbbításra kerül a kikötőbe. A művelet olvasásához ebben
    A puffert a vonalból származó adatokkal kell elhelyezni;
  • nnumofbytestoread, nnumofbytewrite. - Várható számú
    az átviteli bájtok fogadásához vagy megszerzéséhez;
  • nnumofbytesread, nnumofbyteswritten. - a tényleges szám
    Elfogadott vagy továbbított bájtok. Ha elfogadják vagy kevesebbet továbbítanak
    A kért adatok, a lemezfájlhoz igazolják
    A hiba miatt, és a kommunikációs kikötő nem feltétlenül.
    Az időtúllépés oka.
  • Lpoverled. - Az átfedő struktúra címe
    Az aszinkron műveletekhez.

Normál befejezés esetén a funkció visszatért
eltér a nullától, hiba esetén.

Egy példát adok az olvasási és írási műveletre:

#Inlude.

…………..

Dword numbys, numbytes_ok, temp;

Comstat Comstate;

Átfedéses átfedés;

char buf_in \u003d "Hello!";

numbytes \u003d 6;

// Ha a temp nem nulla, azt jelenti, hogy a port képes
Hibák

ha (! Temp) írófájl (fogantyú, buf_in, numbytes,
& Numbytes_OK, & Overap);

ClearCommError (fogantyú, temp, és comstate);

ha (! Temp) olvasmány (fogantyú, buf_in, numbytes, & numbytes_ok,
És átfedés);

// a numbytes_ok változóban valós számot tartalmaz
továbbított

// Elfogadott byte

Ebben a példában két ismeretlenséget használtunk korábban
Comstat és átfedő struktúrák, valamint a ClearcommError funkció. -Ért
Kommunikációs ügyünk "három vezetékes" szerkezet átfedésben van
Fontolja meg (csak használja a példát). Prototípus funkció
A ClearCommError űrlapja van:

Bool clearcommerror (

Fogantyú hfile

Lpdword lerrors,

Lpcomstat lpstat.

Ez a szolgáltatás visszaállítja a port hibajelvet (ha van ilyen)
helyen), és adja meg a szerkezetben lévő kikötő állapotáról szóló információkat
Comstat:

typedef struktúra _comstat.

DWORD FCTSHOLD: 1;

DWORD FDSRHOLD: 1;

DWORD FRLSDHOLD: 1;

DWORD FXOFFOLD: 1;

DWORD FXOFFSENT: 1;

DWORD FEOF: 1;

DWORD FTXIM: 1;

DWORD BRUXED: 25;

DWORD CBINQUE;

DWORD CBOUTQUE;

) Comstat, * lpcomstat;

A szerkezet két területét használhatjuk:


  • Cbinque - a fogadó pufferben szereplő karakterek száma. Ezek a szimbólumok
    a vonalból, de még nem olvassa el a READFILE funkciót;
  • Cboutque - Az átviteli pufferben lévő karakterek száma. Ezek
    A szimbólumokat még nem továbbítják a vonalhoz.

A struktúra fennmaradó területei tartalmaznak információkat
Hibák.

Végül, miután befejezte a portot a kikötővel, le kell zárni.
Az objektum bezárása a Win32 végrehajtja a közelkép funkciót:

Bool CloseSandle (

Fogantyú.

Honlapunkon megtalálja az osztály teljes szövegét
szekvenciális kikötő aszinkron üzemmódban "három vezetékben", és
Emellett egy példa egy programra, amely ezt az osztályt használja. Ez mind
Írta az építő C ++ alatt, de azért, mert csak funkciókat használnak.
API Win32, a program szövege könnyen változtatható bármilyen C ++ fordítóhoz.
Lehetséges, hogy az osztály nem íródott meg "a szabályok szerint" - kérdezem
Elnézést, a szerző nem "jobb" programozó és írja
Hogyan kényelmes j.

Megint mindenkit üdvözlöm a blogod oldalán, és ma meg akarom mondani, hogyan connect com uSB csatlakozó Ablakokban. Beszéljünk, hogy ez az, amit használnak. Azt hiszem, a kezdő hálózati rendszergazdák, és csak a fejlett felhasználók számára érdekes lesz számomra, egyszerre csak valamiféle mágia volt, amely lehetővé teszi a kiszolgálóberendezések konfigurálását.

Mi van csatlakoztatva COM porton keresztül

A COM porton keresztül korábban csatlakoztatott modemek, egerek. Most a forrásokhoz való csatlakozásra szolgál folyamatos hatalom, a beágyazott számítástechnikai rendszerek hardverfejlesztésével kapcsolatos kommunikációhoz, műholdvevők, Pénztárgépek, az objektum biztonsági rendszereihez, valamint sok más eszközhöz.

A COM port használatával két számítógépet csatlakoztathat az úgynevezett "nulla modemkábellel" (lásd alább). Használt MS-DOS-szor szivattyú fájlokat egyik számítógépről a másikra, a UNIX terminál hozzáféréséhez egy másik gépre, és a Windows (még modern) - a kernel szintű hibakereső.

De a hálózati világban a COM porton keresztülcsatlakozzon a hálózati eszközök konzolos portjához (kapcsolók, routerek, márkák, például Cisco vagy Juniper)

Mi a csatlakozás áramkör a soros porton keresztül. Vannak adapterek, például az ST-Labtól az USB egyik végén, amely számítógéphez csatlakozik, és a második egy COM port.

A COM DRIVERS USB port telepítése Windows rendszerben

Sajnos a Windows csatlakoztatott eszközöket, USB COM nem mindig automatikusan telepítve van a rendszerben, és meg kell keresni őket járművezetők. Ha megvásárolta magát, akkor a meghajtó szerepelt a járművezetőkkel, és használhatja, ha nem, akkor nézd meg, hogyan találhat meg illesztőprogramokat.

Nyissa meg az Eszközkezelőt a Windows rendszerben. Ha nem tudja, hogyan, nyomja meg a CTR + PAUSE BEAKE gombot, vagy nyomja meg a WIN + R gombot, és adja meg a DEVMGMT.MSC-t az ablakban. Amint az a kikötők szakaszban (COM és LPT) látható, a harmadik COM port ismeretlen vezetékén találtam, és az illesztőprogramok nem találtak őt a rendszerből, amelyet a sárga ikon azt mondja nekünk.

Menjen a Tulajdonságokhoz ez az eszköz És válassza ki a berendezés azonosítóját, akkor valami típus USB \\ vid_067b & pid_2303 & rev_0300, itt másol, és keresni a Google vagy a Yandex.

Ezután kattintson a jobb egérgombbal a készülékre az eszközkezelőben, és válassza a Telepítés telepítése lehetőséget, jelezze az ösvényt, és tegye, ha minden rendben van, akkor van az ikon eltűnik Figyelmeztetések.

Következő, akkor már használja a lehetőségeket a COM port, az ilyen közművek a látszatát Putty, ahol kiválaszthatja Soros és adja meg a kívánt COM port port, akkor láthatjuk, hogy az azonos eszközkezelő.

Remélem, megtanultad, és kitaláltad, hogyan kell csatlakoztatni a COM USB portot a Windows rendszerben.