itthon / Vélemények / A COM port leírása. Mi az a COM port. Modem és COM port

A COM port leírása. Mi az a COM port. Modem és COM port

Az utóbbi időben a soros adatátviteli mód váltja fel a párhuzamost.
Nem kell messzire keresni a példákat: az USB- és SATA-buszok megjelenése önmagáért beszél.
Valójában a párhuzamos busz nehezen skálázható (hosszabb kábel, magasabb busz órajel), nem meglepő, hogy a technológiák a hátul lévő párhuzamos buszok felé fordulnak.

Soros interfészek

Manapság nagyon sok különféle soros adatinterfész létezik.
A már említett USB és SATA mellett legalább két jól ismert RS-232 és MIDI szabványt (alias GamePort) is felidézhetünk.
Mindegyiket ugyanaz egyesíti - az egyes információbitek soros átvitele vagy a soros interfész.
Az ilyen interfészek nagyon sok előnnyel rendelkeznek, és ezek közül a legfontosabb a kevés csatlakozó vezeték, és ennek következtében az alacsonyabb ár.

Adatátvitel

A soros kommunikáció kétféleképpen valósítható meg: aszinkron és szinkron.

A szinkron adatátvitel magában foglalja a vevő és az adó működésének szinkronizálását azáltal, hogy az átvitt jelben órainformációkat foglalunk, vagy speciális szinkronvonalat használunk.
A vevőt és az adót speciális szinkronizáló kábellel kell összekötni, ami biztosítja, hogy a készülékek azonos frekvencián működjenek.

Az aszinkron átvitel speciális bitek használatát jelenti, amelyek az adatok kezdetét és végét jelzik - kezdő (logikai nulla) és stop (logikai egy) bitek.
Lehetőség van egy speciális paritásbit használatára is, amely meghatározza az átvitt egyes bitek páros vagy páratlan számát (az elfogadott konvenciótól függően).
A fogadó oldalon ezt a bitet elemzik, és ha a paritásbit nem egyezik az egyes bitek számával, akkor az adatcsomagot újra elküldi.

Érdemes megjegyezni, hogy egy ilyen ellenőrzés csak akkor teszi lehetővé a hiba észlelését, ha csak egy bitet küldtek hibásan, ha több bitet hibásan továbbítottak, akkor ez az ellenőrzés már hibássá válik.
A következő adatcsomag küldése a stopbit elküldése után bármikor megtörténhet, és természetesen a startbittel kell kezdődnie.
Nem világos?

Hát ha mindent Számítógépes technológiák egyszerűek voltak, akkor bármelyik háziasszony régen új protokollokat faragott volna a gombócokkal párhuzamosan ...
Próbáljuk meg más szemmel nézni a folyamatot.
Az adatok továbbítása csomagokban történik, nagyjából az IP-csomagokhoz hasonlóan az információs bitek együtt mennek az adatokkal, ezek száma 2 és 3 és fél között változhat.
És egy fél?!
Igen, jól hallottad, félig!

A stopbit, vagy inkább a stopbitnek megfelelő továbbított jel időtartama hosszabb lehet, mint az egybitnek megfelelő jel, de kevesebb, mint két bité.
Tehát egy csomag mindig egy kezdőbittel kezdődik, ami mindig nulla, ezt követik az adatbitek, majd egy paritásbit, majd egy stopbit, ami mindig egy.
Aztán némi önkényes idő elteltével folytatódik az ütemek menetelése Moszkvában.

Ez az átviteli mód azt jelenti, hogy a vevőnek és az adónak azonos sebességgel (jól, vagy majdnem azonos sebességgel) kell működnie, különben a vevőnek vagy nem lesz ideje feldolgozni a bejövő adatbiteket, vagy a régi bitet veszi át egy újnak. .
Ennek elkerülése érdekében minden bitet villognak, azaz szinkronban küldenek egy speciális jellel - a készülék belsejében generált „villogóval”.
Az aszinkron eszközökhöz számos specifikus sebesség létezik - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 és 115200 bit/s.

Valószínűleg hallottad már, hogy a „baud” mértékegységet használják az adatátviteli sebesség - a vonal állapotának megváltoztatásának gyakoriságának - mérésére, és ez az érték csak akkor esik egybe az adatátviteli sebességgel, ha a jelnek két érték közül az egyike lehet. .
Ha egy jelváltás során több bitet kódolnak (és ez sok modemnél így van), akkor az átviteli sebesség és a vonalváltási frekvencia teljesen más érték lesz.

Most néhány szó a titokzatos "adatcsomag" kifejezésről.
A csomag alatt ez az eset a start és a stop bitek között továbbított bitek halmazára utal.
Számuk öttől nyolcig változhat.
Felmerülhet az ember, miért pont öt-nyolc bit?
Miért nem viszünk át egyszerre mondjuk egy kilobájtnyi adatot egy csomagon belül?

A válasz kézenfekvő: kis adatcsomagok továbbításakor veszíthetünk, ha három szolgáltatásbitet küldünk velük (az adatok 50-30 százalékát), de ha a csomag megsérül az átvitel során, akkor ezt könnyen felismerhetjük (emlékezzünk a paritás bit?), és gyorsan továbbítsa újra.
De egy kilobájtnyi adatban nehéz lesz hibát észlelni, és sokkal nehezebb lesz továbbítani.

Az aszinkron soros adatátviteli eszközre példa a számítógép COM portja, a kedvenc Trussardi által tervezett modem és egy ugyanahhoz a porthoz csatlakoztatott egér, amit valamiért a szűklátókörű titkárnők mindig a PS / 2-be próbálnak betolni.
Mindezek az eszközök az RS-232 interfészen, vagy inkább annak aszinkron részén működnek, mivel a szabvány szinkron adatátvitelt is ír le.

AMD Radeon Software Adrenalin Edition 19.9.2 illesztőprogram, opcionális

Az új AMD Radeon Software Adrenalin Edition 19.9.2 opcionális meghajtó javítja a teljesítményt a Borderlands 3-ban, és támogatja a Radeon képélesítést.

Halmozott Windows Update 10 1903 KB4515384 (hozzáadva)

2019. szeptember 10-én a Microsoft kiadott egy összesített frissítést a Windows 10 1903-as verziójához – KB4515384, amely számos biztonsági fejlesztést és egy hibás hiba javítását tartalmazza. Windows működik Keresés és magas CPU-használatot okozott.

A COM portot leggyakrabban a mikrokontroller számítógéphez való csatlakoztatására használják. Ebben a cikkben bemutatjuk, hogyan lehet vezérlőparancsokat küldeni számítógépről és adatokat küldeni egy vezérlőről.

Felkészülés a munkára

A legtöbb mikrokontroller több I/O porttal rendelkezik. Az UART protokoll a legalkalmasabb a PC-vel való kommunikációhoz. Ez egy soros aszinkron adatátviteli protokoll. Az USB interfészké alakításához a kártya rendelkezik egy USB-RS232 átalakítóval - FT232RL.
A cikkben szereplő példák futtatásához csak Arduino-kompatibilis táblára van szüksége. Használunk . Győződjön meg arról, hogy a kártyán van egy LED a 13-as érintkezőhöz csatlakoztatva, és van-e visszaállító gomb.

Például töltsünk fel egy kódot a táblára, amely egy ASCII táblát jelenít meg. Az ASCII a decimális számjegyek, a latin és nemzeti ábécé, írásjelek és vezérlőkarakterek megjelenítésére szolgáló kódolás.

int szimbólum = 33 ; void setup() ( Serial. begin(9600 ) ; Serial. println(" ASCII Table ~ Character Map " ) ; ) void loop() ( Serial. write(szimbólum) ; Serial. print(" , dec: " ) ; Serial .print(szimbólum) ; Serial.print(" , hex: " ) ; Serial.print(symbol, HEX) ; Serial.print(" , oct: " ) ; Serial.print(symbol, OCT) ; Serial.print( " , bin: " ) ; Serial.println(szimbólum, BIN) ; if (szimbólum == 126 ) ( while (igaz) (folytatás ; ) ) szimbólum+ + ; )

A szimbólumváltozó tárolja a szimbólumkódot. A táblázat 33-nál kezdődik és 126-nál végződik, tehát a szimbólum kezdetben 33-ra van állítva.
Az UART port működésének elindításához használja a funkciót Serial.begin(). Egyetlen paramétere a sebesség. A sebességet előre meg kell egyeztetni az adó és a vevő oldalon, mivel az átviteli protokoll aszinkron. Ebben a példában a sebesség 9600 bps.
Három függvényt használnak érték írására egy portra:

  1. Serial.write()– bináris formában adatokat ír a portra.
  2. Serial.print() sok értéke lehet, de mindegyik az információ emberbarát formában való megjelenítését szolgálja. Például, ha az átadandó paraméterként megadott információ idézőjelbe van zárva, a terminálprogram változatlanul jeleníti meg. Ha bármilyen értéket szeretne megjeleníteni bizonyos rendszer kalkulus, akkor hozzá kell adni egy szolgáltatásszót: BIN-bináris, OCT - oktális, DEC - decimális, HEX - hexadecimális. Például, Serial.print (25,HEX).
  3. Serial.println() ugyanazt teszi, mint Serial.print(), de az információ megjelenítése után is lefordítja a karakterláncot.

A program működésének ellenőrzéséhez szükséges, hogy a számítógép rendelkezzen egy terminálprogrammal, amely adatokat fogad a COM portról. BAN BEN Arduino IDE már beépítve. Meghívásához válassza az Eszközök->Portfigyelő menüpontot a menüből. A segédprogram ablaka nagyon egyszerű:

Most kattintson az újraindítás gombra. Az MK újraindul, és megjeleníti az ASCII táblát:

Ügyeljen a kód ezen részére:

if (szimbólum = = 126 ) ( míg (igaz) (folytatás ; ) )

Leállítja a program végrehajtását. Ha kizárja, a táblázat korlátlan ideig megjelenik.
A megszerzett tudás megszilárdításához írjon egy végtelen ciklust, amely másodpercenként egyszer elküldi a nevét a soros portra. Adja hozzá a lépésszámokat a kimenethez, és ne felejtse el lefordítani a név utáni sort.

Parancsok küldése PC-ről

Mielőtt ezt megtenné, képet kell kapnia a COM-port működéséről.
Először is, minden csere a memóriapufferen keresztül történik. Vagyis amikor elküld valamit a PC-ről egy eszközre, az adatok a memória valamilyen speciális részébe kerülnek. Amint az eszköz készen áll, beolvassa az adatokat a pufferből. A funkció lehetővé teszi a puffer állapotának ellenőrzését serial.avaliable(). Ez a függvény a pufferben lévő bájtok számát adja vissza. Ezen bájtok kivonásához a függvényt kell használni Serial.read(). Nézzük meg, hogyan működnek ezek a függvények egy példán:

int val = 0; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" Megkaptam: " ) ; Serial. write(val) ; Serial.println() ; ) )

Miután a kód betöltődött a mikrokontroller memóriájába, nyissa meg a COM port monitort. Írjon be egy karaktert, és nyomja meg az Enter billentyűt. A kapott adatmezőben a következőket láthatja: "Megkaptam:X", ahol ahelyett x a beírt karakter lesz.
A program határozatlan ideig pörög a főhurokban. Abban a pillanatban, amikor egy bájtot írunk a portra, a Serial.available() függvény 1 értéket vesz fel, vagyis a feltétel teljesül Serial.available() > 0. Következő funkció Serial.read() beolvassa ezt a bájtot, ezáltal törli a puffert. Ezt követően az Ön által már ismert függvények használatával a kimenet megtörténik.
Az Arduino IDE beépített COM-port monitorjának használatának van néhány korlátozása. Amikor adatokat küldünk a kártyáról a COM portra, a kimenet tetszőleges formátumba szervezhető. A PC-ről a táblára történő küldéskor a karakterek átvitele az ASCII-táblázatnak megfelelően történik. Ez azt jelenti, hogy például az „1” karakter beírásakor a „00110001” bináris szám (azaz „49” decimális számban) a COM-porton keresztül kerül elküldésre.
Változtassuk meg egy kicsit a kódot, és ellenőrizzük ezt az állítást:

int val = 0; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" Megkaptam: " ) ; Serial. println(val, BIN) ; ) )

A letöltés után a portfigyelőben az „1” elküldésekor a következő válasz jelenik meg: „Megkaptam: 110001”. Megváltoztathatja a kimeneti formátumot, és megnézheti, mit fogad el a tábla más karakterekkel.

Eszközvezérlés COM porton keresztül

Nyilvánvaló, hogy a számítógépről érkező parancsokkal a mikrokontroller bármely funkcióját vezérelheti. Töltse le a programot munka irányítása VEZETTE:

int val = 0; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; if (val= = "H" ) digitalWrite(13 , HIGH) ; if (val= = "L" ) digitalWrite(13 , LOW) ; ) )

Amikor a „H” karaktert küldjük a COM portra, a 13. kimeneten lévő LED világít, az „L” elküldésekor a LED kialszik.
Ha a COM portról érkező adatok fogadásának eredménye alapján azt szeretné, hogy a program különböző műveleteket hajtson végre a főhurokban, ellenőrizheti a főhurok feltételeit. Például.

A COM-port vagy soros port egy kétirányú soros interfész, amelyet bájtadatok cseréjére terveztek. Eleinte ezt a portot használták a terminál csatlakoztatására, majd a modem és az egér csatlakoztatására. Ma már bevett szokás a forrás összekapcsolására és a beágyazott számítástechnikai rendszerek feldolgozásával való kommunikációra is.

Használat

Tehát, mielőtt részletesebben beszélnénk a COM-portról, a múltba kell tekintenünk, hogy megértsük a jelentését. Szó szerint 15 évvel ezelőtt egy módszert alkalmaztak az eszközök számítógéphez való csatlakoztatására egy speciális szabványos csatlakozó segítségével, amely a hátsó panelen található. rendszerblokk speciális RS-232 soros kábel segítségével. Ennek a módszernek számos hátránya van. Egy ilyen kábel a modern szabványok szerint rendkívül alacsony adatátviteli sebességet biztosít - körülbelül száz kilobit másodpercenként. A csatlakozók fizikai bekötésének időpontja mellett a berendezéseket le kellett kapcsolni, és ezek maguk is a megbízhatóságot biztosító csavarokkal voltak egymáshoz rögzítve, miközben méreteik jelentősen eltértek egymástól.

Egy kis történelem

Az akkori számítógépeken a COM-port hagyományosan 1-es vagy 2-es számozású volt, mivel általában nem volt kettőnél több. Szükség esetén további portok telepíthetők. Amikor a felhasználó beállította szoftver, nem kellett összetéveszteni, és pontosan azt kellett telepíteni, amelyhez a csatlakozás biztosított szükséges felszerelést. Mindegyik COM-porthoz szükség volt a megfelelő sebességbeállításokra, valamint számos további titokzatos paraméterre, amelyeket csak a szakemberek szűk köre tudott. Ahhoz, hogy a berendezés csatlakoztatása sikeres legyen, valahonnan minden szükséges paramétert ki kellett találni, vagy kísérletileg ki kellett választani, mivel ebben az esetben nem volt automatikus konfiguráció. Ezenkívül a COM-porton keresztüli kapcsolat lehetővé tette bármilyen szoftver csatlakoztatását tetszőleges külső eszközökhöz, még a teljesen inkompatibilisekhez is, amelyek hatalmas számú hibát okoztak a beállítási folyamat során.

Modernség

Most a COM-porton keresztüli kapcsolatot teljesen kiszorították többre modern módszer, melynek megvalósítása nem igényel speciális ismereteket, mégpedig USB porton keresztül. Ez a módszer mentes a korábban említett hátrányoktól. A mindenféle GPS-berendezés és a nagyon heterogén szoftverek csatlakoztatásának modern szabványai azonban már elég régen kialakultak a COM-portok koncepciója körül, amelyek mára archaikussá váltak.

Ennek az az oka, hogy kezdetben szinte minden berendezés, így a GPS is, külső volt, és a számítógéphez való csatlakozása az egyik hardverporthoz csatlakoztatott soros kábelen keresztül történt. A konfigurációs folyamat során a felhasználónak helyesen kellett kiválasztania a port számát és a rajta keresztüli adatátvitel sebességét. Ekkor jelent meg a fő szabvány a GPS-vevőről egy programra történő adatátvitelre, amelyet ma NMEA-0183-nak hívnak. Valójában ez a szabvány megköveteli a legmodernebb hardver- és szoftverfejlesztőktől is, hogy COM-portokon keresztül cseréljenek adatot. És mindezt olyan körülmények között modern számítógépek, valamint a PDA-kon is az USB szabvány régóta a fő. És még egy sajátosság, hogy az utóbbi időben egyre gyakrabban szerelik be közvetlenül a készülékházba a GPS-vevőket, vagyis nincs összekötő kábel közte és a fő készülék között.

Virtuális COM portok

Feltalálták a kiutat, nevezetesen "virtuális" COM portokat fejlesztettek ki. Kiderült, hogy a PDA belső eszközét, például a GPS-vevőt szoftveresen szimulálják COM port formájában, miközben hardveres értelemben nem az. Ugyanakkor egy ilyen szabványon keresztüli interfészre tervezett programnak nincs különbsége a megvalósítás módjában. Itt a virtuális szimuláció jelenléte megengedett, és nem a hardveres megvalósítás kötelező jelenléte. Így biztosítható a régi típusú GPS programok kompatibilitása a modern berendezésekkel.

Változások végrehajtva

A COM port kezelése ugyanakkor lényegesen nem változott. A felhasználónak a régi módon bonyolult beállításokat szinte manuálisan kell elvégeznie. A modern COM-port azonban már nem az a terjedelmes eszköz, amely a rendszeregység hátlapján volt, hanem egy teljesen más eszköz. És itt az egész az, hogy szoftveres szempontból minden implementációjuk arctalannak tűnik, vagyis nincs különbség a virtuális és a valós portok között. A szoftvereknél a portok csak a PDA-gyártók által hozzájuk rendelt számokban térnek el teljesen véletlenszerűen. Például az ASUS vevőegység általában a COM5-ön található, míg a PocketLOOX 560 a vevőt a COM8-on mutatja. Kiderült, hogy egy GPS-vevőről adatokat fogadni kívánó programnak eleinte nincs megbízható információja arról, hogy milyen feltételes szám alatt jelenik meg az a port, amely a vevő számára megfelelő ezen a PDA-n van előírva.

Hogyan működik mindez?

Tekintettel arra, hogy az összes rendelkezésre álló COM-port közül megteheti automatikus keresés megfelelő, az ilyen felmérés eljárása meglehetősen megbízhatatlan és meglehetősen körülményes. Ez annak köszönhető, hogy a rendszerben COM portként megjelenített eszközök meglehetősen sokfélék lehetnek, és semmi közük a GPS-hez, teljesen kiszámíthatatlanul tudnak reagálni egy ilyen felmérésre. Például egy PDA-n vannak olyan portok, amelyek egy belső cellás modemhez, USB-porthoz, infravörös porthoz, valamint más elemekhez vannak társítva. Ha egy adott eszközzel való működésre tervezett programmal hozzáférünk hozzájuk, az teljesen kiszámíthatatlan reakcióhoz, valamint különféle meghibásodásokhoz vezethet, amelyek gyakran a PDA lefagyását okozzák. Éppen ezért egy COM-port nyitási kísérlete váratlan helyzetekhez vezethet, egészen a Bluetooth vagy a És még több érthetetlen eset is előfordulhat.

COM port működése

A COM-portokhoz egy aszinkron univerzális adó-vevő chip szolgál alapul. Ez a mikroáramkör többféle változatban létezik: Intel 16550A, 16550, 16450, 8250. Minden COM porthoz adatvevő és adó regisztereket, valamint számos vezérlőregisztert tartalmaz, amelyek BIOS, Windows és MS DOS programokon keresztül érhetők el. Nál nél legújabb verziói A mikrochip pufferkészlettel rendelkezik az elküldött és fogadott adatok ideiglenes tárolására. Ennek a lehetőségnek köszönhetően lehetőség nyílik a központi processzor munkájának ritkábban történő megszakítására, valamint az adatátvitel sebességének összehangolására.

fő paraméterei

A COM port eszköz a következő jellemzőkkel rendelkezik:

Az információ bemeneti és kimeneti portjának alapcíme;

Hardveres megszakítási számok;

Egy információblokk mérete;

Az adatok továbbításának sebessége;

Őszinteség észlelési mód;

Információáramlás-kezelési módszer;

A stop bitek száma.

Hogyan lehet ellenőrizni a számítógép COM portját? Mire kell figyelni?

Mint korábban említettük, ez a típusú port kétirányú interfész bitszintű soros úton. A párhuzamos porttal összehasonlítva itt az adatok bitenkénti átvitele a megkülönböztető jellemzője. A COM port anatómiája olyan, hogy nem ez az egyetlen a számítógépen, amely soros adatátviteli módszert használ. Például az olyan interfészek, mint az Ethernet vagy az USB, szintén hasonló elven működnek, de történelmileg megtörtént, hogy az RS232 szabványos soros portját szokás hívni.

Nagyon gyakran meg kell nyitni egy COM portot a számítógép javításához és diagnosztikájához, miközben ellenőrizni kell a működőképességét. Nagyon könnyű elégetni egy elemet. Ez leggyakrabban a felhasználó hibájából következik be, aki hibásan bontja le az eszközt, kihúzza a csatlakozót, miközben az interfész csatlakoztatva van. A legegyszerűbb módja annak, hogy ellenőrizze, működik-e az interfész, ha egeret csatlakoztat hozzá. Nagyon nehéz azonban teljes képet kapni, mivel a manipulátor a rendelkezésre álló nyolc jelvonalnak csak a felét használja. Csak egy speciális csatlakozó és program használata teszi lehetővé a teljesítmény ellenőrzését. Erre a célra már létezik egy speciálisan kifejlesztett szoftver.

A soros portokat a könnyű karbantartás és használat miatt szeretik a fejlesztők.

És persze a terminálprogram konzoljára írni minden jó, de szeretnék egy saját alkalmazást, ami a képernyőn egy billentyű megnyomásával elvégzi a szükséges műveleteket;)

Ebben a cikkben leírom hogyan kell dolgozni com port C++ nyelven.

A megoldás egyszerű, de valamiért nem találtak azonnal működő példát. Sim-hez ide mentem.

Természetesen használhatsz platformközi megoldásokat, mint például a QSerial – egy Qt-beli könyvtár, valószínűleg fogom, de a jövőben. Most a "tiszta" Windowsról beszélünk C++. Visual Studioban fogunk írni. Nekem 2010 van, bár ez nem játszik szerepet...

Hozzon létre egy új konzol Win32 projektet.

Fejlécfájlok hozzáadása:

#beleértve #beleértve névtér használata std;

Egy com port kezelőt deklarálunk:

HANDLE hSerial;

Globálisan csinálom, így nem kell aggódnom a mutatók miatt, amikor függvényeknek adom át.

int _tmain(int argc, _TCHAR* argv) (

Nem bírom a Windows programozási stílust. Mindent a maguk módján hívtak, és ujjongva ülnek ...

Most egy karakterlánc deklarálása a port nevével. Az a baj, hogy magát a chart nem tudja átalakítani.

LPCTSTR sPortName = L"COM1";

A soros portokkal való munka a Windows rendszerben úgy működik, mint egy fájl esetében. Az első megnyitása com port az íráshoz/olvasáshoz:

HSerial = ::Fájl létrehozása(sPortName,ÁLTALÁNOS_OLVASD | ÁLTALÁNOS_ÍRÁS,0,0,NYITOTT_MEGESZTŐ,FILE_ATTRIBUTE_NORMAL,0);

A funkcionalitás ellenőrzése:

If(hSerial==INVALID_HANDLE_VALUE) ( if(GetLastError()==ERROR_FILE_NOT_FOUND) ( cout<< "serial port does not exist.\n"; } cout << "some other error occurred.\n"; }

Most be kell állítania a csatlakozási paramétereket:

DCB dcbSerialParams = (0); dcbSerialParams.DCBlength=sizeof(dcbSerialParams); if (!GetCommState(hSerial, &dcbSerialParams)) ( cout<< "getting state error\n"; } dcbSerialParams.BaudRate=CBR_9600; dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT; dcbSerialParams.Parity=NOPARITY; if(!SetCommState(hSerial, &dcbSerialParams)) { cout << "error setting serial port state\n"; }

Az msdn-en tanácsos először beszerezni a paramétereket, majd módosítani. Még tanulunk, úgyhogy a kérés szerint csináljuk.

Most deklaráljuk az átadandó karakterláncot és az ehhez szükséges változókat:

Char data = "Üdvözöljük a C++-ból"; // karakterlánc a duplaszó átadásához dwSize = sizeof(data); // ennek a karakterláncnak a mérete DWORD dwBytesWritten; // itt lesz a ténylegesen átvitt bájtok száma

Karakterlánc küldése. Hadd emlékeztesselek arra, hogy a példa a legegyszerűbb, ezért nem teszek különösebb ellenőrzést:

BOOL iRet = WriteFile(hSerial,data,dwSize,&dwBytesWritten,NULL);

Úgy döntöttem, hogy megjelenítem a karakterlánc méretét és a vezérléshez küldött bájtok számát:

Cout<< dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;

A program végén végtelen hurkot készítünk az olvasási adatokból:

While(1) ( ReadCOM(); ) return 0; )

Most az olvasási funkció:

Void ReadCOM() ( DWORD iSize; char sReceivedChar; while (true) (ReadFile(hSerial, &sReceivedChar, 1, &iSize, 0); // kap 1 bájtot, ha (iSize > 0) // nyomat nyomtatása, ha valami érkezik<< sReceivedChar; } }

Valójában ez az egész példa.

A számítástechnikában a soros port egy soros kommunikációs interfész, amelyen keresztül információ továbbítása vagy kiadása történik egy időben. A személyi számítógépek történetének nagy részében az adatokat soros portokon keresztül vitték át olyan eszközökre, mint a modemek, terminálok és különféle perifériák.

Míg az olyan interfészek, mint az Ethernet, a FireWire és az USB, mind soros adatfolyamként küldik az adatokat, a "soros port" kifejezés általában az RS-232 szabvánnyal többé-kevésbé kompatibilis hardvert jelöli, amelyet modemmel vagy hasonló kommunikációs eszközzel való interfészre terveztek.

A soros portok nélküli modern számítógépek soros átalakítókat igényelhetnek az RS-232 soros eszközökkel való kompatibilitás biztosítása érdekében. A soros portokat továbbra is használják olyan alkalmazásokban, mint az ipari automatizálási rendszerek, tudományos műszerek, értékesítési pontrendszerek, valamint egyes ipari és fogyasztói termékek. A kiszolgáló számítógépek a soros portot felügyeleti vagy diagnosztikai konzolként használhatják. A hálózati berendezések (például útválasztók és switchek) gyakran a soros konzolt használják a konfigurációhoz. A soros portok továbbra is használatosak ezeken a területeken, mert egyszerűek, olcsók, és a konzolos funkcionalitásuk erősen szabványosított és elterjedt.

COM port kivezetés (RS232)

2 féle com port létezik, egy 25 tűs régi csatlakozó és egy újabb 9 tűs csatlakozó váltotta fel.

Az alábbiakban egy tipikus szabványos 9 tűs RS232 csatlakozó diagramja látható csatlakozókkal, ezt a típusú csatlakozót DB9 csatlakozónak is nevezik.

  1. Carrier Detect (DCD).
  2. Adatok fogadása (RXD).
  3. Adatátvitel (TXD).
  4. A vevő cserére kész (DTR).
  5. Föld (GND).
  6. Forrás készen áll a cserére (DSR).
  7. Küldési kérés (RTS).
  8. Átvitelre kész (CTS).
  9. Hívójel (RI).

Az RJ-45–DB-9 soros port adapter tűjének információi a kapcsolóhoz

A konzolport egy RS-232 soros interfész, amely RJ-45 csatlakozót használ a vezérlőeszközhöz, például számítógéphez vagy laptophoz való csatlakozáshoz. Ha laptopja vagy számítógépe nem rendelkezik DB-9 csatlakozótűvel, és laptopját vagy számítógépét a kapcsolóhoz szeretné csatlakoztatni, használja az RJ-45 és a DB-9 adapter kombinációját.

DB-9RJ-45
Adatok beszerzése2 3
Adatátvitel3 6
Cserekészség4 7
föld5 5
föld5 4
Cserekészség6 2
Áthelyezési kérvény7 8
Átvitel kész8 1

A vezeték színei:

1 Fekete
2 Barna
3 Piros
4 Narancs
5 Sárga
6 Zöld
7 Kék
8 Szürke (vagy fehér)