Serieport

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 26 mars 2014; kontroller kräver 69 redigeringar .

Seriell port ( eng.  seriell port , COM-port [1] , eng.  kommunikationsport ) är slangnamnet för gränssnittet för RS-232- standarden , som var massivt utrustad med persondatorer . Porten kallas "seriell", eftersom information överförs genom den en bit , sekventiellt bit för bit (till skillnad från parallellport ). Trots att vissa datorgränssnitt (till exempel Ethernet , Firewire och USB ) också använder ett seriellt sätt att utbyta information, tilldelades namnet "seriell port" till porten i RS-232- standarden .

Utnämning

Den vanligaste standarden för serieporten på persondatorer är RS-232C. Tidigare användes serieporten för att ansluta en terminal, senare för ett modem eller en mus . Nu används den för att ansluta till avbrottsfri strömförsörjning , för att kommunicera med inbyggd datorutvecklingshårdvara , satellitmottagare, kassaapparater, programmerare, säkerhetsanordningar för anläggningar och många andra enheter.

Med hjälp av COM-porten kan du ansluta två datorer med den så kallade "nullmodemkabeln" (se nedan). En sådan kabel har använts sedan MS-DOS för att överföra filer från en dator till en annan, i UNIX för terminalåtkomst till en annan maskin och i Windows (även modern) för en felsökare på kärnnivå.

Fördelen med tekniken är utrustningens extrema enkelhet. Nackdelen är låg hastighet, stora kontakter, samt ofta höga krav på OS och förares svarstider och ett stort antal avbrott (en för halva hårdvarukön, det vill säga 8 byte).

Anslutningar

På moderkort från ledande tillverkare (till exempel Intel ) eller färdiga system (till exempel IBM , Hewlett-Packard , Fujitsu Siemens Computers ) används symbolen COM eller RS-232 för serieporten.

De vanligaste är D-formade kontakter standardiserade 1969 : 9- och 25-stift, (DE-9 respektive DB-25). Tidigare användes även DA-31 och runda åttastifts DIN-8. Den maximala baudhastigheten för en typisk port är 115200 baud .

Relevans

Utbredd i IBM PC-kompatibla datorer är RS-232-gränssnittet inte lämpligt för underhållning och kontorsuppgifter, men det används ofta i tillämpade uppgifter, så försök att bli av med arvet från gamla gränssnitt i moderna moderkort är dömda. PC99-specifikationen  är ett av de misslyckade exemplen på inkassering om ett storskaligt utbyte av "föråldrad" utrustning. De skriver om henne att den "nu är föråldrad och av rent historiskt intresse", och produktionen av "föråldrad" utrustning blomstrar. På kontors- och hemdatorer, där avstånden och störningarna är små och växelkursen efterfrågas, har RS-232 praktiskt taget ersatts av USB- gränssnittet .

Det finns standarder för emulering av seriell port via USB och över Bluetooth (denna teknik designades till stor del som "trådlös seriell port").

Ändå används mjukvaruemulering av denna port fortfarande i stor utsträckning idag. Så till exempel emulerar nästan alla mobiltelefoner en klassisk COM-port och ett modem inuti sig själva för att implementera internetdelning  - datoråtkomst till Internet via GPRS / EDGE / 3G / 4G telefonutrustning. I det här fallet används USB , Bluetooth eller Wi-Fi [2] för fysisk anslutning till datorn .

Dessutom tillhandahålls mjukvaruemulering av denna port till "gäster" på virtuella VMWare- och Microsoft Hyper-V -maskiner , vars huvudsakliga syfte är att ansluta Windows-kärnnivåfelsökningen till "gästen".

I form av UART , som skiljer sig i spänningsnivåer och frånvaron av ytterligare signaler, finns den i nästan alla mikrokontroller, förutom de allra minsta, SoC, utvecklingskort, och finns också på korten för de flesta enheter, även om kontakten visas inte på höljet. Sådan popularitet beror på det här gränssnittets enkelhet, både ur fysisk synvinkel, och den enkla åtkomsten till porten med programvara jämfört med andra gränssnitt.

Utrustning

Kontakten har kontakter:

DTR (Data Terminal Ready - beredskap att ta emot data) - utgång på datorn, ingång på modemet. Indikerar att datorn är redo att arbeta med modemet. Återställning av denna linje orsakar en nästan fullständig återställning av modemet till dess ursprungliga tillstånd, inklusive att lägga på (vissa kontrollregister överlever efter en sådan återställning). På UNIX inträffar detta när alla program har stängda filer på serieportens drivrutin. Musen använder denna kabel för att ta emot ström.

DSR (Data Set Ready - beredskap för dataöverföring) - ingång på en dator, utgång på ett modem. Indikerar att modemet är klart. Om denna rad är noll, blir det i vissa operativsystem omöjligt att öppna porten som en fil.

RxD (Receive Data - datamottagning) - ingång på datorn, utgång på modemet. En ström av data som kommer in i en dator.

TxD (Transmit Data - data transfer) - utgång på datorn, ingång på modemet. En ström av data som kommer ut från en dator.

CTS (Clear to Send - överföringsberedskap) - ingång på datorn, utgång på modemet. Datorn måste avbryta dataöverföringen tills denna ledning är inställd på ett. Används i hårdvaruflödeskontrollprotokoll för att förhindra spill i modemet.

RTS (Request to Send - request for transmission) - utgång på datorn, ingång på modemet. Modemet måste avbryta dataöverföringen tills denna tråd är inställd på ett. Används i hårdvaruflödeskontrollprotokoll för att förhindra spill i hårdvara och drivrutin.

DCD (Carrier Detect - bärarnärvaro) - ingång på datorn, utgång på modemet. Ställ in av modemet till ett efter att ha upprättat en anslutning med modemet på andra sidan, nollställ när anslutningen bryts. Datorns hårdvara kan avge ett avbrott när en sådan händelse inträffar.

RI (Ring Indicator - call signal) - ingång på datorn, utgång på modemet. Den spänns av modemet till en efter detektering av ringsignalen för ett telefonsamtal. Datorns hårdvara kan avge ett avbrott när en sådan händelse inträffar.

SG (Signal Ground - signal jord) - en gemensam signalledning för porten, är inte en gemensam jord , som regel, isolerad från datorhöljet eller modemet.

En nollmodemkabel använder två crossover-par: TXD/RXD och RTS/CTS.

Ursprungligen, i IBM PC och IBM PC / XT, byggdes porthårdvaran på UART 8250-chippet från National Semiconductor, sedan ersattes chippet av 16450, som var mjukvarukompatibelt med de tidigare, men tillät hastigheter upp till 115200 bitar per sekund, då dök 16550-chippet upp, innehållande dubbelriktad FIFO-databuffert för att minska belastningen på avbrottsstyrenheten. Den ingår för närvarande i SuperIO-chippet på moderkortet tillsammans med ett antal andra enheter.

Programmatisk åtkomst till COM-porten

UNIX

COM-portar i operativsystemet Unix ( Linux ) är teckenenhetsfiler. Dessa filer finns vanligtvis i /dev-katalogen och är namngivna

För programmatisk åtkomst till en COM-port måste du öppna motsvarande fil för att läsa/skriva och göra anrop till specialfunktionerna tcgetattr (för att ta reda på de aktuella inställningarna) och tcsetattr (för att göra nya inställningar). Det kan också vara nödvändigt att göra ioctl- anrop med vissa parametrar. Efter det, när du skriver till en fil, kommer data att skickas genom porten, och vid läsning kommer programmet att ta emot redan mottagna data från COM-portbufferten.

Enheter som heter "ttyxx" används som serverenheter, det vill säga applikationen som öppnade den här enheten väntar vanligtvis på ett inkommande samtal från modemet. Den klassiska standardapplikationen är getty , som väntar på ett inkommande samtal, sedan konfigurerar COM-porten enligt konfigurationsfilerna, matar ut "login:" där, accepterar ett användarnamn och kör kommandot "loginUserName" som ett barn, med standardinmatning och utdata omdirigeras till COM-porten. Detta kommando i sin tur begär och kontrollerar lösenordet, och om det lyckas, startar det (inte som barn, utan istället för sig självt genom att anropa execve i samma process) standardanvändarskalet som anges i filen /etc/passwd.

Denna teknik har historiskt sitt ursprung på 1970-talet, när datorer som PDP-11 (i Sovjetunionen kallades serien SM EVM ) eller VAX under UNIX OS , vilket möjliggjorde anslutning av många terminaler för många användares arbete. Terminalerna – och därmed hela användargränssnittet – kopplades upp via serieportar, med möjlighet att ansluta ett modem istället för en terminal och sedan ringa upp datorn via telefon. Hittills har UNIX-liknande operativsystem en terminalstack och vanligtvis 3 terminalimplementeringar - en seriell port, en textlägesskärm + tangentbordskonsol och en "loopback" till en av de öppna filerna i kontrollapplikationen (så här telnetd, sshd och xterm är implementerade).

Seriella portklientenheter för att ringa utåt kallas cuaxx på många (men inte alla) UNIX.

Eftersom serieporten i UNIX endast är åtkomlig genom terminalstacken, kan den vara en kontrollterminal för processer och grupper (skicka SIGHUP vid frånkoppling från modemet och SIGINT på Ctrl-C), stöd för redigering av den sista raden som angavs med piltangenterna på kärnnivån, och etc. Att inaktivera den här funktionen för att förvandla enheten till en "pipe" för en byteström kräver ioctl-anrop.

Windows

Seriella portar i Win32 behandlas som filer. CreateFile-funktionen används för att öppna en port. Det kan finnas många portar, så de kallas COM1, COM2, etc. i den ordning som drivrutinerna hittas. De första 9 portarna är också tillgängliga som namngivna pipes för dataöverföring (tillgängliga under namnen "COM1", "COM2", ...), denna åtkomstmetod anses vara föråldrad. Det rekommenderas att adressera alla portar som filer (med namnet "\\.\COM1", "\\.\COM2", ... "\\.\COMx").

Sökning efter PnP-enhetsnamn i systemet görs genom att anropa SetupDiGetClassDevs. Nyckeln HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM finns i registret, som visar de för närvarande tillgängliga COM-portarna.

Det finns ett avsnitt i registret för varje port. Dessa avsnitt har följande namn:

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

där det sista värdet "Serial10000" är ett unikt nummer för varje ny COM-port som läggs till systemet, för den andra - "Serial10001", etc.

OS/2

Den tillgängliga COM.SYS-drivrutinen stöder endast 4 COM-portar, som var och en måste ha sin egen avbrottslinje. För att serva COM-portar med en gemensam avbrottslinje måste du använda SIO-drivrutinen [3] .

Nollmodemkabel

I vissa fall är det möjligt att använda en förenklad version av kabeln, där endast stift 2, 3 och 5 används.

Se även

Anteckningar

  1. Används endast i terminologin för Windows OS - familjen , kom historiskt från MS-DOS och den klassiska IBM PC :n .
  2. [https://web.archive.org/web/20130621141521/http://skp.samsungcsportal.com/integrated/popup/FaqDetailPopup.jsp?seq=333410&cdsite=ua_ru Arkiverad 21 juni 2013 AllShare on the Wayback Machine ?]
  3. Installera ett COM-portkort i en dator (otillgänglig länk) . Hämtad 25 augusti 2010. Arkiverad från originalet 15 maj 2011. 

Länkar