A soros port ( angol. soros port , COM port [1] , angol kommunikációs port ) az RS-232 szabvány interfészének szleng neve , amelyet tömegesen szereltek fel személyi számítógépekkel . A portot "soros"-nak nevezik, mivel az információ egy biten keresztül, bitenként továbbításra kerül (a párhuzamos porttal ellentétben ). Annak ellenére, hogy egyes számítógépes interfészek (például Ethernet , Firewire és USB ) soros információcserét is használnak, a "soros port" nevet az RS-232 szabvány portjához rendelték .
A személyi számítógépek soros portjának leggyakrabban használt szabványa az RS-232C. Korábban a soros portot használták terminál csatlakoztatására, később modem vagy egér csatlakoztatására . Jelenleg szünetmentes tápegységekhez való csatlakozásra, beágyazott számítástechnikai fejlesztési hardverekkel , műholdvevőkkel, pénztárgépekkel, programozókkal, létesítménybiztonsági eszközökkel és sok más eszközzel való kommunikációra használják.
A COM port segítségével két számítógépet csatlakoztathat az úgynevezett "null modem kábel" segítségével (lásd alább). Ilyen kábelt az MS-DOS óta használnak a fájlok egyik számítógépről a másikra való átvitelére, UNIX-ban a terminál eléréséhez egy másik géphez, Windowsban pedig (akár modern) kernel szintű hibakeresőhöz.
A technológia előnye a berendezés rendkívüli egyszerűsége. Hátránya az alacsony sebesség, a nagy csatlakozók, valamint az operációs rendszer és az illesztőprogram válaszidejének gyakran magas követelményei, valamint a nagyszámú megszakítás (egy a hardveres várakozási sor feléért, azaz 8 bájt).
Vezető gyártók alaplapjain (például Intel ) vagy kész rendszereken (például IBM , Hewlett-Packard , Fujitsu Siemens Computers ) a COM vagy az RS-232 szimbólumot alkalmazzák a soros portként.
A leggyakrabban használt D-alakú , 1969 -ben szabványosított csatlakozók : 9 és 25 tűs, (DE-9, illetve DB-25). Korábban DA-31 és kerek nyolc tűs DIN-8-asokat is használtak. Egy tipikus port maximális adatátviteli sebessége 115200 baud .
Az IBM PC-kompatibilis számítógépekben elterjedt RS-232 interfész nem alkalmas szórakoztató és irodai feladatokra, de az alkalmazott feladatokban széles körben használják, így a modern alaplapok régi interfészeinek örökségétől való megszabadulási kísérletek kudarcra vannak ítélve. A PC99 specifikáció a beváltás egyik sikertelen példája az "elavult" berendezések nagyszabású cseréjéről. Írnak róla , hogy "már elavult és pusztán történelmi jelentőségű", és virágzik az "elavult" berendezések gyártása. Az irodai és otthoni számítógépekben, ahol kicsi a távolság és az interferencia, és az árfolyam keresett, az RS-232-t gyakorlatilag kiszorította az USB interfész .
Vannak szabványok a soros port emulációra USB-n és Bluetooth-on keresztül (ezt a technológiát nagyrészt "vezeték nélküli soros portnak" tervezték).
Ennek a portnak a szoftveres emulációját azonban ma is széles körben használják. Így például szinte minden mobiltelefon emulál egy klasszikus COM-portot és egy modemet magában az internetmegosztás megvalósítása érdekében - számítógépes internet-hozzáférés GPRS / EDGE / 3G / 4G telefonberendezésen keresztül. Ebben az esetben az USB , Bluetooth vagy Wi-Fi [2] a számítógéphez való fizikai csatlakozáshoz használatos .
Ezenkívül a port szoftveres emulációja elérhető a VMWare és a Microsoft Hyper-V virtuális gépek „vendégei” számára , amelynek fő célja a Windows kernel szintű hibakereső csatlakoztatása a „vendéghez”.
A feszültségszintekben és a kiegészítő jelek hiányában eltérő UART formájában szinte minden mikrokontrollerben jelen van, kivéve a legkisebb, SoC, fejlesztőkártyákat, és a legtöbb eszköz kártyáján is megtalálható, bár a csatlakozó nem jelenik meg a tokon. Ez a népszerűség az interfész egyszerűségének köszönhető, mind fizikai szempontból, mind a porthoz való könnyű hozzáférésnek a szoftverrel a többi interfészhez képest.
A csatlakozó érintkezői:
DTR (Data Terminal Ready – készenlét az adatok fogadására) – kimenet a számítógépen, bemenet a modemen. Azt jelzi, hogy a számítógép készen áll a modemmel való együttműködésre. Ennek a vonalnak a visszaállítása a modem szinte teljes visszaállítását eredményezi eredeti állapotába, beleértve a hívás letételét is (egyes vezérlőregiszterek fennmaradnak az ilyen alaphelyzetbe állítás után is). UNIX rendszeren ez akkor fordul elő, ha minden alkalmazás bezárt fájlokat a soros port illesztőprogramján. Az egér ezt a vezetéket használja a tápellátáshoz.
DSR (Data Set Ready - készenlét az adatátvitelre) - bemenet számítógépen, kimenet modemen. Azt jelzi, hogy a modem készen áll. Ha ez a sor nulla, akkor egyes operációs rendszerekben lehetetlenné válik a port fájlként történő megnyitása.
RxD (Receive Data - adatvétel) - bemenet a számítógépen, kimenet a modemen. Számítógépbe belépő adatfolyam.
TxD (Transmit Data - adatátvitel) - kimenet a számítógépen, bemenet a modemen. Számítógépből kilépő adatfolyam.
CTS (Clear to Send – átviteli készenlét) – bemenet a számítógépen, kimenet a modemen. A számítógépnek fel kell függesztenie az adatátvitelt, amíg ez a vezeték egyre nem áll. Hardveres áramlásvezérlő protokollban használják a modem túlcsordulásának megakadályozására.
RTS (Request to Send – átviteli kérés) – kimenet a számítógépen, bemenet a modemen. A modemnek fel kell függesztenie az adatátvitelt, amíg ez a vezeték egyre nem áll. Hardveres áramlásvezérlő protokollban használják a hardver és az illesztőprogram túlcsordulásának megakadályozására.
DCD (Carrier Detect – hordozó jelenléte) – bemenet a számítógépen, kimenet a modemen. A modem egyre állítja, miután kapcsolatot létesített a másik oldalon, nullára állítja vissza, ha a kapcsolat megszakad. Ilyen esemény bekövetkezésekor a számítógép hardvere megszakítást bocsáthat ki.
RI (Ring Indicator - hívásjel) - bemenet a számítógépen, kimenet a modemen. A modem a telefonhívás csengetési jelének észlelése után egyre kapcsolja. Ilyen esemény bekövetkezésekor a számítógép hardvere megszakítást bocsáthat ki.
SG (Signal Ground - jel földelés) - a port közös jelvezetéke, amely általában nem közös föld , a számítógép házától vagy a modemtől el van szigetelve.
A null modemkábel két keresztezőpárt használ: TXD/RXD és RTS/CTS.
Kezdetben az IBM PC-ben és az IBM PC / XT-ben a port hardver a National Semiconductor UART 8250 chipjére épült, majd a chipet 16450 váltotta fel, ami szoftveresen kompatibilis volt a korábbiakkal, de akár 115200 bites sebességet is lehetővé tett. másodpercenként, majd megjelent az 16550-es chip, amely kétirányú FIFO adatpuffert tartalmaz, hogy csökkentse a megszakításvezérlő terhelését. Jelenleg számos más eszköz mellett az alaplap SuperIO chipjében is megtalálható.
A Unix ( Linux ) operációs rendszer COM-portjai karakteres eszközfájlok. Ezek a fájlok általában a /dev könyvtárban találhatók, és el vannak nevezve
A COM-porthoz való programozott hozzáféréshez meg kell nyitnia a megfelelő fájlt olvasáshoz / íráshoz, és meg kell hívnia a tcgetattr (az aktuális beállítások megismeréséhez) és a tcsetattr (új beállítások megadásához) speciális funkciókat. Szükséges lehet bizonyos paraméterekkel ioctl hívások kezdeményezése is. Ezt követően fájlba íráskor a porton keresztül küldik az adatokat, olvasáskor pedig a COM port pufferéből kapja a már kapott adatokat a program.
A "ttyxx" nevű eszközöket szervereszközként használják, vagyis az eszközt megnyitó alkalmazás általában várja a modem bejövő hívását. A klasszikus alapértelmezett alkalmazás a getty , amely megvárja a bejövő hívást, majd a konfigurációs fájlok szerint beállítja a COM portot, ott kiadja a "login:"-t, elfogad egy felhasználónevet, és gyerekként futtatja a "loginUserName" parancsot, normál bemenettel. és a kimenet átirányítva a COM portra. Ez a parancs pedig lekéri és ellenőrzi a jelszót, és ha sikeres, elindítja (nem gyerekként, hanem saját maga helyett az execve meghívásával ugyanabban a folyamatban) az /etc/passwd fájlban megadott alapértelmezett felhasználói shellt.
Ez a technológia történelmileg az 1970-es években keletkezett, amikor az olyan számítógépeket, mint a PDP-11 (a Szovjetunióban a sorozatot SM EVM -nek hívták ) vagy a VAX -ot használták UNIX operációs rendszer alatt , lehetővé téve számos terminál csatlakoztatását sok felhasználó munkájához. A terminálokat - és így a teljes felhasználói felületet - soros portokon keresztül kötötték össze, így terminál helyett modemet lehetett csatlakoztatni, majd telefonon tárcsázni a számítógépet. Eddig a UNIX-szerű operációs rendszereknek terminálveremük és általában 3 terminálmegvalósításuk van - egy soros port, egy szöveges módú képernyő + billentyűzetkonzol , valamint egy „loopback” a vezérlőalkalmazás egyik nyitott fájljához ( így telnetd, sshd és xterm implementálva).
Sok (de nem minden) UNIX-on cuaxx-nek hívják a soros portos klienseszközöket, amelyek a külső hívásokat kezdeményezik.
Mivel a UNIX soros portja csak a terminálveremen keresztül érhető el, ez lehet folyamatok és csoportok vezérlőterminálja (a modemről való leválasztáskor SIGHUP küldése, Ctrl-C esetén pedig SIGINT küldése), támogatja az utolsó sor nyílbillentyűkkel beírt szerkesztését a kernel szintje, stb. Ennek a funkciónak a letiltásához, hogy az eszközt "csővé" alakítsa egy bájtfolyam számára, ioctl hívásokra van szükség.
A Win32 soros portjait fájlként kezeli. A CreateFile funkció egy port megnyitására szolgál. Sok port lehet, ezért COM1, COM2 stb. néven hivatkozunk rájuk abban a sorrendben, ahogyan az eszközillesztőket megtalálják. Az első 9 port névvel ellátott csőként is elérhető az adatátvitelhez ("COM1", "COM2", ... néven érhető el), ez a hozzáférési mód elavultnak tekinthető. Javasoljuk, hogy minden portot fájlként címezzen ("\\.\COM1", "\\.\COM2", ... "\\.\COMx").
A PnP-eszköznevek keresése a rendszerben a SetupDiGetClassDevs meghívásával történik. A HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM kulcs létezik a beállításjegyzékben, amely megjeleníti a jelenleg elérhető COM-portokat.
Minden porthoz van egy szakasz a beállításjegyzékben. Ezeknek a szakaszoknak a neve a következő:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000,ahol az utolsó "Serial10000" érték a rendszerhez hozzáadott minden egyes új COM port egyedi száma, a második - "Serial10001" stb.
Az elérhető COM.SYS illesztőprogram csak 4 COM portot támogat, amelyek mindegyikének saját megszakítási vonallal kell rendelkeznie. A COM portok közös megszakítási vonallal történő kiszolgálásához a SIO illesztőprogramot [3] kell használnia .
Egyes esetekben lehetséges a kábel egyszerűsített változata is, amelyben csak a 2., 3. és 5. érintkezőt használják.
UART | |||||||
---|---|---|---|---|---|---|---|
Fizikai rétegek |
| ||||||
Protokollok |
| ||||||
Felhasználási területek | |||||||
Megvalósítások |
|