Serie Port

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 26. marts 2014; checks kræver 69 redigeringer .

Seriel port ( eng.  seriel port , COM-port [1] , eng.  kommunikationsport ) er slangnavnet for grænsefladen til RS-232- standarden , som var massivt udstyret med personlige computere . Porten kaldes "seriel", fordi information transmitteres gennem den en bit , sekventielt bit for bit (i modsætning til parallelport ). På trods af at nogle computergrænseflader (for eksempel Ethernet , Firewire og USB ) også bruger en seriel måde at udveksle information på, blev navnet "seriel port" tildelt porten i RS-232- standarden .

Udnævnelse

Den mest almindeligt anvendte standard for den serielle port på personlige computere er RS-232C. Tidligere blev den serielle port brugt til at forbinde en terminal, senere til et modem eller en mus . Nu bruges den til at oprette forbindelse til uafbrydelige strømforsyninger , til at kommunikere med indlejret computerudviklingshardware , satellitmodtagere, kasseapparater, programmører, facilitetssikkerhedsenheder og mange andre enheder.

Ved hjælp af COM-porten kan du forbinde to computere med det såkaldte "nullmodemkabel" (se nedenfor). Et sådant kabel er blevet brugt siden MS-DOS til at overføre filer fra en computer til en anden, i UNIX til terminaladgang til en anden maskine og i Windows (selv moderne) til en fejlretning på kerneniveau.

Fordelen ved teknologien er udstyrets ekstreme enkelthed. Ulempen er lav hastighed, store stik, samt ofte høje krav til OS og driver responstider og et stort antal interrupts (en til halvdelen af ​​hardwarekøen, altså 8 bytes).

Forbindelser

På bundkort fra førende producenter (for eksempel Intel ) eller færdige systemer (for eksempel IBM , Hewlett-Packard , Fujitsu Siemens Computers ), er symbolet COM eller RS-232 vedtaget for den serielle port.

De mest almindeligt anvendte er D-formede stik standardiseret i 1969 : 9- og 25-benet, (henholdsvis DE-9 og DB-25). Tidligere blev der også brugt DA-31 og runde otte-benede DIN-8. Den maksimale baudhastighed for en typisk port er 115200 baud .

Relevans

Udbredt i IBM PC-kompatible computere er RS-232-grænsefladen ikke egnet til underholdning og kontoropgaver, men den er meget udbredt i anvendte opgaver, så forsøg på at slippe af med arven fra gamle grænseflader i moderne bundkort er dømt. PC99-specifikationen  er et af de mislykkede eksempler på indbetaling om en storstilet udskiftning af "forældet" udstyr. De skriver om hende at det "nu er forældet og af rent historisk interesse", og produktionen af ​​"forældet" udstyr blomstrer. På kontor- og hjemmecomputere, hvor afstande og interferens er små, og valutakursen er efterspurgt, er RS-232 praktisk talt blevet erstattet af USB -interfacet .

Der er standarder for seriel port-emulering over USB og over Bluetooth (denne teknologi blev stort set designet som "trådløs seriel port").

Ikke desto mindre er softwareemulering af denne port stadig meget udbredt i dag. Så for eksempel emulerer næsten alle mobiltelefoner en klassisk COM-port og et modem inde i sig selv for at implementere tethering  - computeradgang til internettet via GPRS / EDGE / 3G / 4G telefonudstyr. I dette tilfælde bruges USB , Bluetooth eller Wi-Fi [2] til fysisk forbindelse til computeren .

Softwareemulering af denne port leveres også til "gæster" på virtuelle VMWare- og Microsoft Hyper-V -maskiner , hvis hovedformål er at forbinde Windows-kerneniveau-debuggeren til "gæsten".

I form af UART , som adskiller sig i spændingsniveauer og fraværet af yderligere signaler, er det til stede i næsten alle mikrocontrollere, undtagen de allermindste, SoC, udviklingstavler, og er også til stede på boards af de fleste enheder, selvom stik er ikke vist på kabinettet. En sådan popularitet skyldes enkelheden af ​​denne grænseflade, både fra et fysisk synspunkt, og den lette adgang til porten med software sammenlignet med andre grænseflader.

Udstyr

Konnektoren har kontakter:

DTR (Data Terminal Ready - parathed til at modtage data) - output på computeren, input på modemmet. Angiver, at computeren er klar til at arbejde med modemmet. Nulstilling af denne linje medfører en næsten fuldstændig nulstilling af modemmet til dets oprindelige tilstand, inklusive lægning (nogle kontrolregistre overlever efter en sådan nulstilling). På UNIX sker dette, når alle programmer har lukkede filer på den serielle portdriver. Musen bruger denne ledning til at modtage strøm.

DSR (Data Set Ready - parathed til dataoverførsel) - input på en computer, output på et modem. Indikerer, at modemmet er klar. Hvis denne linje er på nul, bliver det i nogle operativsystemer umuligt at åbne porten som en fil.

RxD (Receive Data - data modtagelse) - input på computeren, output på modemmet. En strøm af data, der kommer ind i en computer.

TxD (Transmit Data - data transfer) - output på computeren, input på modemmet. En strøm af data, der kommer ud af en computer.

CTS (Clear to Send - transmissionsberedskab) - input på computeren, output på modemmet. Computeren skal suspendere dataoverførslen, indtil denne ledning er indstillet til én. Anvendes i hardwareflowkontrolprotokol for at forhindre overløb i modemmet.

RTS (Request to Send - request for transmission) - output på computeren, input på modemmet. Modemmet skal suspendere datatransmission, indtil denne ledning er indstillet til én. Anvendes i hardwareflowkontrolprotokol for at forhindre overløb i hardware og driver.

DCD (Carrier Detect - carrier tilstedeværelse) - input på computeren, output på modemmet. Indstillet af modemmet til én efter at have etableret forbindelse med modemmet på den anden side, nulstilles når forbindelsen afbrydes. Computerhardwaren kan udsende et afbrydelse, når en sådan hændelse opstår.

RI (Ring Indicator - opkaldssignal) - input på computeren, output på modemmet. Modemmet kobler den til en efter detektering af ringesignalet for et telefonopkald. Computerhardwaren kan udsende et afbrydelse, når en sådan hændelse opstår.

SG (Signal Ground - signal jord) - en fælles signalledning i porten, er ikke en fælles jord , som regel isoleret fra computerens kabinet eller modem.

Et nulmodemkabel bruger to crossover-par: TXD/RXD og RTS/CTS.

Oprindeligt, i IBM PC og IBM PC / XT, blev porthardwaren bygget på UART 8250 chippen fra National Semiconductor, derefter blev chippen erstattet af 16450, som var softwarekompatibel med de foregående, men tillod hastigheder op til 115200 bits sekund, så dukkede 16550-chippen op, indeholdende tovejs FIFO-databuffer for at reducere belastningen på interrupt-controlleren. Den er i øjeblikket inkluderet i SuperIO-chippen på bundkortet sammen med en række andre enheder.

Programmatisk adgang til COM-porten

UNIX

COM-porte i Unix -operativsystemet ( Linux ) er tegnenhedsfiler. Disse filer er normalt placeret i mappen /dev og navngives

For programmatisk adgang til en COM-port skal du åbne den tilsvarende fil til læsning/skrivning og foretage opkald til specialfunktionerne tcgetattr (for at finde ud af de aktuelle indstillinger) og tcsetattr (for at indstille nye indstillinger). Det kan også være nødvendigt at foretage ioctl- kald med visse parametre. Derefter, når du skriver til en fil, vil data blive sendt gennem porten, og ved læsning vil programmet modtage allerede modtagne data fra COM-portbufferen.

Enheder med navnet "ttyxx" bruges som serverenheder, det vil sige, at programmet, der åbnede denne enhed, normalt venter på et indgående opkald fra modemmet. Den klassiske standardapplikation er getty , som venter på et indgående opkald, derefter konfigurerer COM-porten i henhold til konfigurationsfilerne, udsender "login:" der, accepterer et brugernavn og kører kommandoen "loginUserName" som et barn, med standardinput og output omdirigeret til COM-porten. Denne kommando anmoder og kontrollerer på sin side adgangskoden, og hvis den lykkes, starter den (ikke som et barn, men i stedet for sig selv ved at kalde execve i samme proces) standardbrugerskallen angivet i filen /etc/passwd.

Denne teknologi opstod historisk i 1970'erne, hvor computere som PDP-11 (i USSR blev serien kaldt SM EVM ) eller VAX blev brugt under UNIX OS , hvilket muliggjorde tilslutning af mange terminaler til arbejdet for mange brugere. Terminalerne - og dermed hele brugergrænsefladen - var forbundet via serielle porte, med mulighed for at tilslutte et modem i stedet for en terminal og derefter ringe til computeren via telefon. Indtil nu har UNIX-lignende OS'er en terminalstack og normalt 3 terminalimplementeringer - en seriel port, en teksttilstandsskærm + tastaturkonsol og en "loopback" til en af ​​de åbne filer i kontrolapplikationen (dette er hvordan telnetd, sshd og xterm er implementeret).

Serielport-klientenheder til at foretage opkald udefra kaldes cuaxx på mange (men ikke alle) UNIX'er.

Da den serielle port i UNIX kun er tilgængelig gennem terminalstakken, kan den være en kontrolterminal for processer og grupper (send SIGHUP ved afbrydelse af modemmet og SIGINT på Ctrl-C), understøtter redigering af den sidste linje indtastet med piletasterne på kerneniveauet osv. Deaktivering af denne funktion for at gøre enheden til et "rør" for en bytestrøm kræver ioctl-kald.

Windows

Serielporte i Win32 behandles som filer. CreateFile-funktionen bruges til at åbne en port. Der kan være mange porte, så de omtales som COM1, COM2 osv. i den rækkefølge, enhedsdriverne findes. De første 9 porte er også tilgængelige som navngivne rør til dataoverførsel (tilgængelig under navnene "COM1", "COM2", ...), denne adgangsmetode anses for at være forældet. Det anbefales at adressere alle porte som filer (navngivet "\\.\COM1", "\\.\COM2", ... "\\.\COMx").

Søgning efter PnP-enhedsnavne i systemet udføres ved at kalde SetupDiGetClassDevs. Nøglen HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM findes i registreringsdatabasen, som viser de aktuelt tilgængelige COM-porte.

Der er en sektion i registreringsdatabasen for hver port. Disse sektioner har følgende navne:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000,

hvor den sidste værdi "Serial10000" er et unikt nummer for hver ny COM-port tilføjet til systemet, for den anden - "Serial10001" osv.

OS/2

Den tilgængelige COM.SYS-driver understøtter kun 4 COM-porte, som hver skal have sin egen afbrydelseslinje. For at servicere COM-porte med en fælles afbrydelseslinje skal du bruge SIO-driveren [3] .

Null modem kabel

I nogle tilfælde er det muligt at bruge en forenklet version af kablet, hvor kun ben 2, 3 og 5 bruges.

Se også

Noter

  1. Brugt kun i terminologien for Windows OS - familien , kom historisk fra MS-DOS og den klassiske IBM PC .
  2. [https://web.archive.org/web/20130621141521/http://skp.samsungcsportal.com/integrated/popup/FaqDetailPopup.jsp?seq=333410&cdsite=ua_ru Arkiveret 21. juni 2013 på Wayback Machine AllShare på Wayback Machine ?]
  3. Installation af et COM-portkort i en computer (utilgængeligt link) . Hentet 25. august 2010. Arkiveret fra originalen 15. maj 2011. 

Links