Laboratoriumwerk aan "parallelle en seriële poorten en hun eigenaardigheden van het werk". Seriële en parallelle I/O-poorten

28. Parallelle en seriële poorten.
Parallelle en seriële poorten worden voor meer dan alleen gebruikt:
het aansluiten van een printer en een modem, waarvoor er tegelijkertijd waren
ontwikkelde. De eenvoud van uitvoering en het beproefde protocol voor gegevensoverdracht en -ontvangst maakten ze onmisbaar voor aansluiting op een pc
verschillende apparaten met lage snelheid die in de industrie worden gebruikt
en wetenschappelijk onderzoek.
Parallelle poort (Centronics-interface).
Het belangrijkste doel van de Centronics-interface (analoog - IRPR-M)
is de aansluiting van verschillende soorten printers op de computer.
Daarom is de distributie van connectorpinnen, het doel van signalen,
interfacebesturingssoftware is specifiek gericht op:
dit is het gebruik.
Tegelijkertijd kunt u met behulp van deze interface verbinding maken met:
computer en andere speciaal ontworpen externe apparaten.
Wisselkoers via Centronics-interface - 129-200 kB/s.
De standaard parallelle poort is alleen voor:
eenrichtingsoverdracht van informatie van een pc naar een printer.
De verbeterde parallelle poort (EPP) is:
bidirectioneel, stelt u in staat om tot 64 apparaten aan te sluiten en biedt
gegevensoverdrachtsnelheid met DMA tot 2 Mb / s.
Extended Capability Port (ECP) stelt u in staat om verbinding te maken
tot 128 apparaten en ondersteunt datacompressie (compressie) modus.

I8255A parallelle poortcontroller schema.
A1
A2
IOR
IOW
RESET
A7, A15
Apparaat
beheer
EEN
BR Datakanaal B
V
BR Datakanaal C
MET
Extern apparaat
Buffer
beheer
BR Datakanaal A
Interne databus
Systeem bus
Gegevensbuffer
Besturingssignalen:
De parallelle uitwisselingscontroller is een 3-kanaals;
byte-interface en stelt u in staat om de uitwisseling van gegevens in drie
modi:
Mode 0 - synchrone unidirectionele I/O (4 poorten A, B, C1, C2).
Mode 1 - asynchrone unidirectionele I / O (2 poorten A en B).
Mode 2 - asynchrone bidirectionele I / O (1 poort A).
Programmeren van de bedrijfsmodi van de controllerkanalen
wordt uitgevoerd door de bijbehorende code over te dragen naar de besturingsbuffer.

Centronics-signalen hebben de volgende doelen:
D0 ... D7 - 8-bit databus voor overdracht van computer naar printer.
-STROBE - data strobe (tracking) signaal.
- АСК - signaal van bevestiging van gegevensacceptatie en gereedheid van de printer.
BUSY - signaal dat de printer bezig is met het verwerken van de ontvangen gegevens en
onwil om de volgende gegevens te accepteren.
-AUTO FD - signaal voor automatische lijninvoer (wagen).
PE - signaal van het einde van het papier (standby-modus).
SLCT - ontvanger (printer) gereed signaal.
-SLCT IN - signaal aan de printer dat gegevensoverdracht zal volgen.
-ERROR - Printerfoutsignaal.
-INIT - signaal om de printer te initialiseren (resetten) en de afdrukbuffer te wissen.
Pin van computerconnector
Ketting
ik / O
Pin van printerconnector
1
-STROBE
O
1
2 … 9
DO ... D7
O
2 … 9
10
-VRAGEN
l
10
11
DRUK BEZIG
l
11
12
PE
l
12
13
SLCT
l
13
14
-AUTOFD
O
14
15
-FOUT
l
32
16
-IN HET
O
31
17
-SLCT IN
O
36
18...25
GND
-
16, 17, 19...30, 33

Vorming en ontvangst van signalen van de Centronics-interface wordt uitgevoerd
door de I / O-poorten die eraan zijn toegewezen te schrijven en te lezen.
De computer kan drie Centronics-poorten gebruiken:
LPT1 (poort 378h, IRQ5), LPT2 (poort 278h, IRQ7) en LPT3 (3BCh-poort).
Het basispoortadres wordt gebruikt om een ​​databyte naar de printer te sturen.
De gegevens die op de lijnen zijn geïnstalleerd, kunnen vanaf dezelfde poort in een pc worden gelezen.
Timingdiagram van de gegevensoverdrachtcyclus via de Centronics-interface.
D0 ... D7
>500
- STROBE
DRUK BEZIG
- ACK
>500
>500
nanoseconden
> 2500 nanoseconden
Voordat de gegevensoverdracht begint, wordt het verwijderen van de BUSY-signalen gecontroleerd.
en vraag. Vervolgens worden de gegevens bevestigd aan de bus en wordt het STROB-signaal gegenereerd.
Gedurende deze tijd moet de printer tijd hebben om gegevens te ontvangen en een signaal in te stellen
BUSY en dan VRAGEN.
De maximale lengte van de aansluitkabel is 1,8 meter.
Momenteel EPP- en ECP-normen voor parallelle poorten
opgenomen in de IEEE 1284-standaard met toevoeging van nog twee uitwisselingsmodi
gegevens: byte en nibble.

Seriële poort (RS232C-interface).
RS-232C-interface is ontworpen voor aansluiting op een computer
standaard externe apparaten (printer, scanner, modem, muis, enz.),
en ook om computers met elkaar te verbinden.
De belangrijkste voordelen van het gebruik van RS-232C over:
Centronics zijn in staat om aanzienlijk grotere over te dragen
afstanden en een veel eenvoudigere verbindingskabel.
Tegelijkertijd is het werken ermee wat lastiger: data in RS-232C
verzonden in sequentiële codebyte, en elke byte wordt omlijst
start- en stopbits.
Gegevensformaat seriële poort:
gebrek aan transmissie
"1"
«0»
begin beetje
8 bits
gegevens
stop bits
pariteitsbit
Gegevens kunnen zowel in één (half-duplex-modus) als in
beide zijden (duplex).
Uitwisseling via de RS-232C-interface vindt plaats op een speciaal
speciale seriële poorten:
COM1 (adressen 3F8h ... 3FFh, interrupt IRQ4),
COM2 (adressen 2F8h ... 2FFh, onderbreking IRQ3),
COM3 (adressen 3E8h ... 3EFh, onderbreking IRQ10),
COM4 (adressen 2E8h ... 2EFh, IRQ11 onderbreken).

I8250 seriële poortcontroller schema.
multiplexer demultiplexer
Buffer
1
beheer
Buffer
2
beheer
Buffer
3
beheer
Buffer
4
beheer
Buffer
5
beheer
Buffer
6
beheer
RESET
IRQ
Besturingsapparaat:
Beetje
balie
Codeerschema -
pakketdecodering:
Generator
sync signaal
D
RxD
CLK
Extern apparaat
Systeem bus
Gegevensbuffer
Besturingssignalen:
Een pc kan maximaal vier seriële poorten bevatten,
werkend in de RS-232C-standaard (binnenlands analoog is de C2-verbinding).
Elk van de RS-232C-apparaten is een onafhankelijke
i8250-controller uitgerust met een 25- of 9-pins connector.
De RS-232C-poortcontroller is volledig programmeerbaar
Apparaat.
De volgende uitwisselingsparameters kunnen worden ingesteld: aantal bits
data- en stopbits, pariteit en baudrate (bit/s).

Doel van oproepsignalen:
FG - beschermende aarde (afscherming).
-TxD - gegevens die door de computer in sequentiële code worden verzonden.
-RxD - gegevens ontvangen door de computer in seriële code.
RTS - Verzoek om signaal te verzenden. Actief gedurende de gehele uitzending.
CTS - reset (wissen) signaal voor verzending. Altijd actief
overdragen. Geeft aan dat de ontvanger gereed is.
DSR - Gegevensgereedheid. Wordt gebruikt om de modemmodus in te stellen.
SG - signaalaarde, nuldraad.
DCD - Detectie van gegevensdragers (ontvangen signaal).
DTR - Uitvoergegevens gereed.
RI - oproepindicator. Geeft aan dat de modem een ​​oproepsignaal ontvangt door:
telefoon netwerk.
De computer heeft meestal:
9-pins (DB9P) of
25-pins (DB25P)
connector voor aansluiting
RS-232C-interface.
Pintoewijzing
connector is gegeven in
tafel
signaal
25-pins connector
9-pins connector
ik / O
FG
1
-
-
-TxD
2
3
O
-RxD
3
2
l
RTS
4
7
O
CTS
5
8
l
DSR
6
6
l
SG
7
5
-
DCD
8
1
l
DTR
20
4
O
RI
22
9
l

Specifieke formaten van oproepen voor deze poorten zijn te vinden in:
beschrijvingen van microschakelingen voor seriële communicatie UART-controllers
(Universele Asynchrone Ontvanger / Zender), bijvoorbeeld voor i8250.
De meest gebruikte drie- of vierdraads communicatie (voor
bidirectionele transmissie).
Voor een tweedraads communicatielijn in het geval van alleen transmissie van
de computer gebruikt SG- en TxD-signalen naar een extern apparaat.
Alle 10 interfacesignalen worden alleen gebruikt wanneer ze zijn aangesloten
computer met modem.
een computer
4-draads circuit
communicatielijnen voor
RS232C-interface
TxD
RxD
RTS
CTS
DSR
DCD
DTR
RI
SG
FG
extern apparaat
TxD
RxD
RTS
CTS
DSR
DCD
DTR
RI
SG
FG
Let op: De klokfrequenties van de ontvanger en zender moeten
hetzelfde (afwijking - niet meer dan 10%) voor deze zendersnelheid
(PC) kan worden gekozen uit het bereik: 150, 300, 600, 1200, ... 57600, 115200 bit/s.

29.Subsysteem van input-output.
Doel, structuur en taken van BIOS.
BIOS (Basic Input Output System) - een stukje software
PC, met het beheer van adapters van externe apparaten, scherm
bewerkingen, testen en vervolgens het eerste laden van het besturingssysteem.
BOIS biedt een standaardinterface die de draagbaarheid van pc-besturingssystemen met compatibele processors ondersteunt.
BOIS bestaat uit de hoofdcomponenten:
1. POST - procedures voor het controleren van systeemapparaten en hun bronnen.
2. ROM-Scan - een programma voor het scannen van RAM.
3. SETAP-programma-interface voor het bekijken en aanpassen van constanten.
4. BIOS-constanten in CMOS, 256 ASCII 8x8-tekentabel.
Alle adressen van constanten zijn gedocumenteerd en moeten worden opgeslagen in
volgende BIOS-versies voor dit moederbord.
BOIS-componenten worden opgeslagen in een speciaal ROM op het moederbord
volume van 64 kB en worden meestal beschouwd als een integraal onderdeel van een pc,
ingebed in de RAM-adresruimte vanaf het adres F000: 0000.
Het basisprincipe van de inrichting van het input/output systeem:
CPU en RAM vormen de kern van de pc en verschillende randapparatuur
apparaten, waaronder elk ander apparaat dat niet
is een onderdeel van de pc-kern, zijn gekoppeld aan de systeemkern met behulp van
interfaces (een set bussen, signalen, elektrische circuits, protocollen)
overdracht van gegevens en opdrachten) die deel uitmaken van de OS-kernel voor het organiseren
uitwisselen van informatie.

Structuur van het POST-subsysteem.
De status van de processor na het inschakelen is vooraf gedefinieerd -
EFLAGS = 00000002h; EIP = 0000FFF0h; CS = 0F000h; PE (CR0) = 0.
dit adres bevat het JMP-commando voor de overgang naar de POST-procedure (Power
On Self Test) zelftest en initialisatie van basis pc-apparaten:
Een initialisatieconstante invoeren in apparaatpoort n
Lees apparaatstatusbyte n
Apparaatstatus n
komt overeen met CMOS-gegevens
Nee
Geluidssignaal,
fout indicatie uitgang:
apparaat initialisatie n
Ja
……….
Abnormale beëindiging
POST-procedures
Scanprocedure:
(verificatie) RAM
Er zijn scanfouten
Nee
Ja
functie-uitgang
fouten
scannen
werkgeheugen
Overdracht van controle naar het begin van de opstartcode van het besturingssysteem

De belangrijkste functies van het POST-subsysteem.
POST-procedures worden gebruikt om een ​​zelftest van apparaten te starten op
moederbord, waarbij hun status wordt vergeleken met CMOS-gegevens en initialisatie:
- kanalen van de systeemintervaltimer (piep is hoorbaar),
- onderbrekingscontroller,
- directe toegangscontroller,
- toetsenbordcontroller (de indicatoren op het toetsenbord lichten op),
- geheugencontroller, enz.,
dan worden de zelftestprocedures geïnitialiseerd voor apparaten met:
native BIOS:
- videocontroller (het eerste bericht verschijnt op de monitor),
- schijfcontrollers (bericht verschijnt),
- USB-controller (USB-toetsenbord of -muis wordt actief)
- geluidsadapter,
- netwerkadapter, enz.
RAM-scan bezig (weergegeven op monitor)
Na de succesvolle afronding van de testprocedures,
zoek naar opstartapparaten met 80 uur (1.000.000) bytes in de gegevensbuffer, d.w.z.
niet-uitvoerbare opdracht die in deze POST-context wordt gebruikt voor:
bevestiging van de activiteit van het opstartapparaat van het besturingssysteem.
De prioriteit van het opstartapparaat wordt gedefinieerd in SETUP CMOS.
Tijdens POST kunnen foutberichten worden gegenereerd.
Beschrijvingen van foutcodes zijn te vinden op: www.earthweb.com
of http://burks.bton.ac.uk/burks/pcinfo/hardware/bios_sg/bios_sg.htm

Toegang tot BIOS-variabelen en constanten.
Het wordt uitgevoerd via het SETUP BIOS-menu, beschikbaar in de initiële
momenten waarop het BIOS wordt geladen met de toetsen die in de berichten worden aangegeven.
Het SETUP-menu bestaat uit de hoofdsecties:
1. Standaardvariabelen: datum, tijd, parameters van RAM en schijven.
2. Aanvullende variabelen en geïnstalleerde softwaremodules
BIOS-software voor het testen van hardware, kernelapparaten
Personal computer en de directe omgeving.
3. Parameters van andere apparaten die in het systeem zijn geïntegreerd
(moeder) PCB en opties voor het toewijzen van middelen (slots
busuitbreidingen, interrupts en directe toegangskanalen).
Ook de volgorde van pollen van randapparatuur wordt hier bepaald,
die laadmodules van besturingssystemen kan bevatten.
4. Parameters van de interfaces van apparaten die op het moederbord zijn aangesloten,
bepalen van mogelijkheden voor energiebesparing.
5. Grootte van constanten die de parameters van de centrale processor bepalen
(frequentie, spanning van voeding van de kern van de centrale processor en RAM), en
ook hun grenswaarden voor signalering of uitschakeling.
6. Een set BIOS-parameters standaard geladen (in geval van fouten
handmatige instelling van parameters door de gebruiker).
7. Een wachtwoord invoeren om de variabele-editor te openen - BIOS SETUP.
8. Een wachtwoord invoeren om door te gaan met het opstarten van het BIOS en het uitvoeren van POST-procedures na het inschakelen van de pc (gebruikerswachtwoord).
De waarde van wachtwoorden kan worden gewist door het systeem-BIOS te resetten.

I/O-kaart.
0000 - 00FF - 256 8-bits poorten zijn voor apparaten die:
bevindt zich op het systeem (moederbord) pc-bord,
0100 - 03FF - 768 8-bits poorten gereserveerd voor controllers
randapparatuur aangesloten op de bussen van het pc-moederbord.
Interne apparaten
randapparatuur
Bereik Apparaatnaam Bereik
000 - 01F
PDP-controller nr. 1
Toestelnaam
3B0 - 3DF VGA
020 - 03F Bedieningspaneel nr. 1 regelaar
378 - 37B LPT 1
040 - 05F Intervaltimer
37C - 37F LPT 2
060 - 06F Toetsenbordcontroller
278 - 27B LPT 3
070 - 07F CMOS-klok en -constanten
3F0 - 3F7 FDD
Diagnostisch register
3F8 - 3FF COM # 1
081 - 08F PDP-paginacontroller
2F8 - 2FF COM # 2
0A0 - 0BF Bedieningspaneel no.2 controller
3E8 - 3EF COM # 3
0C0 - 0DF RAP-controller # 2
2E8 - 2EF COM # 4
080
F000 - FFFF - 4096 extra 8-bits poorten toegewezen
voor verschillende virtuele apparaten aangesloten op externe bussen
(USB, mini-USB, SCSI, eSATA, HDD IDE ATA / ATAPI, PCI Express, enz.).

BIOS-functies bij het werken met poorten
Voor directe CPU-toegang tot I/O-poorten in de instructieset
er zijn maar 2 commando's: IN en OUT.
Maar het proces van gegevensuitwisseling met randapparatuur is ingewikkeld.
en moet rekening houden met de poortbreedte (de volgorde van het pollen van meerdere 8
bit-poorten) en het uitwisselingsprotocol dat de volgorde bepaalt van
de gereedheid van deze apparaten om gegevens op een bepaalde bus uit te wisselen, evenals:
eigenschappen van de band zelf.
Om deze reden is directe poorttoegang beperkt in Windows OS. Invoer
directe poortoproepen in applicaties kunnen vastlopen veroorzaken
programma of de abnormale beëindiging ervan vanwege een teveel aan privileges.
Voor dit doel bevat de OS-kernel een groot aantal typische
handlers - BIOS-functies die zijn gekoppeld aan een bepaalde algemene gebruikersinterrupt.
Aangezien het aantal interrupts beperkt is, is een interrupt meestal:
heeft verschillende functies en afzonderlijke functies en subfuncties van het BIOS:
10 uur onderbrekingsfuncties - werken met VGA-videocontrollerpoorten
interrupt 13h-functies - werken met schijfsystemen en DMA
interrupt 14h-functies - werken met seriële COM-poort
interruptfuncties 15h - werken met de muis
16 uur onderbrekingsfuncties - toetsenbordbediening
interrupt 17h-functies - werken met parallelle poort LPT
1Ah-onderbrekingsfuncties - bediening met timer, timingfuncties
80h interrupt-functies - werken met geluidsprocessor

30. Plug & Play-systeem voor automatische detectie van pc-apparaten.
De basisprincipes voor het bouwen van een PnP-systeem werden geformuleerd en
gedeeltelijk geïntroduceerd in 1974 voor de MCA-bus (Micro Channel Architecture).
Basisprincipes van het bouwen van een PnP-systeem:
1. Bronnen van de pc-kern (toegangspoorten en hun bitbreedte, interruptnummers, RAM-adresruimte voor informatie-uitwisseling, direct
toegang) zijn niet vast toegewezen, maar worden toegewezen door
vereiste.
2. Elk randapparaat (in relatie tot de systeemkern) heeft:
een beschrijving van de set van vereisten in uw BIOS.
3. BIOS PnP bevat een programma - een systeemconfigurator,
die nummers toewijst aan randapparatuur is
paspoorten (beschrijvingen) van deze apparaten en wijst de nodige middelen toe, met
rekening houdend met het vermijden van conflicten, levert zo nodig
optimalisatie (herallocatie) van middelen.
Apparaatpaspoorten worden opgeslagen in het register.
4. Na het laden van het besturingssysteem voor randapparatuur
de juiste systeemstuurprogramma's zijn geladen. Geïmplementeerd
hercontrole van conflictvrije werking van apparaten.
5. Bij het loskoppelen van een randapparaat of het aansluiten van een nieuw
het besturingssysteem verdeelt automatisch de vrijgekomen
resources, definieert de parameters van het nieuwe apparaat, controleert het en
biedt de nodige middelen zonder het besturingssysteem (on the fly) opnieuw op te starten.

PnP is een specificatie van de architectuur van pc-hardware die door de overeenkomstige besturingssystemen wordt gebruikt om ze te configureren en apparaatconflicten met elkaar te voorkomen.
Het belangrijkste onderdeel - alle apparatuur die op de bussen is aangesloten, bevat niet-vluchtige POS-registers (Programmable Option Select), waarin de apparaatconfiguratie en de vereiste bronnen worden opgeslagen.
Extra component - OS-bestanden die apparaten, stuurprogramma's beschrijven
voor hen en de vereiste bronnen (ini-bestanden of OS-register).
BIOS PnP-programma's die resources toewijzen zonder strijd.
Normaal opstarten van het systeem:
begin
NA
Zoeken Boot OS
Besturingssysteem opstarten
Boot BIOS PnP:
begin
Definitie van PnP
Nee
Ja
Configureren
apparaten
NA
Inspectie
apparaten
Zoeken Boot OS
Lezing
POS
lezing
ini
Besturingssysteem opstarten

Verdeling van pc-bronnen tussen apparaten.
Om de principes van het bouwen van een PnP-systeem te implementeren, rekening houdend met het
Als onderdeel van de pc-architectuur zijn er veel verouderde
apparaten met vast toegewezen systeembronnen die:
het is onpraktisch om te veranderen (toetsenbordcontroller, systeemintervaltimer, DMA-controllers, enz.), in een echt PnP-systeem wordt gebruikt
de volgende volgorde van toewijzing van middelen:
1. POST detecteert niet-PnP-apparaten.
2. Aan apparaten "niet PnP" worden allereerst middelen toegewezen volgens:
specificatie-eisen, aangezien: deze apparaten zijn niet configureerbaar.
3. Als er conflicten worden gedetecteerd, genereert BIOS PnP een melding over:
de noodzaak om conflicten handmatig op te lossen.
4. De PnP-apparaten worden vervolgens iteratief geconfigureerd.
5. Methoden voor het isoleren van apparaten van elkaar worden gebruikt (toegewezen
identifier en serienummer), waarna het apparaat wordt toegewezen
handvat.
De toewijzing van de identifier is gerelateerd aan het gebruikte busapparaat
en wordt uitgevoerd door een speciaal programma van de OS - enumerator
bus, een nieuw type buscontroller-stuurprogramma.
ID-nummers zijn uniek voor elk apparaat en
ongewijzigd voor elke volgende herstart van het besturingssysteem, bijvoorbeeld PnP
0000 - AT interruptcontroller, PnP 0100 - systeeminterval
timer, PnP 0C04 - matsoprocessor, PnP 0A03 - PCI-buscontroller, enz.

Het pc-invoer-/uitvoersubsysteem en de OS-kernel lossen de volgende taken op:
1. Implementatie van een computersysteem met variabele configuratie.
2. Parallelle werking van programma's in het geheugen en I/O-procedures.
3. Vereenvoudiging van input/output procedures, voorzien van software
onafhankelijk van de configuratie van een specifiek randapparaat.
4. Automatische herkenning door de computerkern van randapparatuur;
apparaten, de verscheidenheid van hun toestanden (gereedheid, gebrek aan media,
lees-/schrijffouten, enz.).
5. Intellectualisering van de interface, tot stand brengen van een dialoog tussen de kernel en
randapparatuur.
6. Draagbaarheid en onafhankelijkheid van het besturingssysteem van het hardwareplatform en de kernel
pc.
Manieren om deze problemen op te lossen:
1. Modulariteit - nieuwe randapparatuur veroorzaakt geen
significante veranderingen in de architectuur en passen in het bestaande
adresruimte, kanalen en toegangspoorten.
2. Unificatie in het formaat van de verzonden gegevens en opdrachten, ongeacht de gebruikte interne machinetalen van micro-operaties.
3. Uniforme interface op busbreedte, lijnset
stuursignalen en uitwisselingsprotocollen.
4. Unified in de adresruimte die beschikbaar is voor de pc-kern, en
toegangskanalen ernaar toe vanaf de centrale processor voor bewerkingen
I / O-informatie binnen deze adresruimte.

Een modern PnP-systeem bestaat uit de volgende onderdelen:
1. BIOS van de PnP-standaard.
Meldingen - een bericht aan de gebruiker over de ontdekking van een nieuwe
apparaten
Configureren - Het apparaat isoleren voordat een ID wordt toegewezen.
Gegevensondersteuning - POST-aanvullingsinformatie op toegewezen RAM.
2. Systeem van drivers-enumerators van de PCI-bus.
De buscontroller ontvangt informatie van RAM over het apparaat of van
register voor niet-PnP-apparaten en kent een uniek Vendor_ID-nummer toe.
3. Hardwareboom en register.
Een vertakking in het OS-register genaamd "HKEY_LOKAL_MACHINE \ HARDWARE"
die bestaat uit de soorten hardwareapparaten.
4. Windows 95 en hoger (of een ander PnP-besturingssysteem).
Intel biedt de PnP-specificatie aan alle OS-ontwikkelaars.
5. PnP-apparaatstuurprogramma's.
De PnP-specificatie gaat uit van meer dan alleen een BIOS-toegankelijke
apparaatinformatie in het RAM-geheugen van dit apparaat, maar ook een dynamisch geladen stuurprogramma voor dit apparaat. Er is een applicatie-interface
programmeren (API) om dergelijke stuurprogramma's voor nieuwe apparaten te maken
PnP-standaard. Het laden van dergelijke stuurprogramma's moet worden geregistreerd door de configuratiemanager en verantwoordelijk zijn voor de toegewezen middelen (geef ze af wanneer)
lossen).

6. Resource Arbiter (OS PnP-service).
Hoofdfuncties:
- Werk het register bij met de nieuwste toewijzingsinformatie
middelen in de laadfase,
- Hertoewijzing van bronnen "on the fly" aan elk PnP-apparaat, configuratie
die is veranderd.
De resource arbiter werkt in contact met de configuratiemanager,
die op elk moment de resource-arbiter kan verzoeken om de resource vrij te geven en deze vervolgens aan een ander apparaat te verstrekken.
7. Configuratiebeheer (OS PnP-service).
Verantwoordelijk voor het proces van het configureren van het gehele systeem als geheel.
De configuratiemanager werkt rechtstreeks samen met het BIOS,
en met het register, het coördineren van het configuratieproces in de loop van de gebeurtenissen:
- wanneer het BIOS het een lijst met niet-PnP-apparaten op het moederbord stuurt
bij het opstarten die middelen hebben die strikt aan hen zijn toegewezen,
- wanneer het een configuratiewijzigingsmelding ontvangt van het BIOS of van
bandentellers, die hij gebruikt om alle te identificeren
apparaten op een specifieke bus, evenals de vereisten van elk apparaat over:
toewijzing van middelen. Deze gegevens worden in het register opgenomen.
8. Gebruikersinterface (API).
Basisvereiste voor draaiende aangepaste toepassingen
in OS PnP - ze mogen geen expliciete toegang hebben tot apparaatbronnen
(I / O-poorten, interrupts of schijven) moeten deze vervangen
formeel beroep op de juiste apparaten.

PCI-busconfiguratie adresruimte
Een van de belangrijkste verbeteringen aan de PCI-bus ten opzichte van andere
I / O-architecturen zijn het configuratiemechanisme ervan geworden.
Naast de typische geheugen- en I/O-adresruimten introduceert PCI een configuratieadresruimte.
Het bestaat uit 256 bytes, die kunnen worden geadresseerd door het PCI-busnummer te kennen,
apparaatnummer en functienummer in het apparaat.
De eerste 64 bytes van de 256 zijn gestandaardiseerd en de rest van de registers kan
naar goeddunken van de fabrikant van het apparaat worden gebruikt.
De leveranciers-ID en apparaat-ID-registers identificeren het apparaat en meestal:
PCI-ID genoemd.
Het zestien-bits Vendor ID-register wordt uitgegeven door de PCI-SIG-organisatie.
Maar alleen tegen betaling van een contributie aan de organisatie.
16-bits apparaat-ID-register toegewezen door de fabrikant
apparaten.
Er is een project om een ​​database te maken van alle bekende waarden
registreert Vendor ID en Device ID.
Een vergelijkbare oplossing bestaat voor de universele serie
USB-bus.
Bus Development Community - USB-IF leidt ook
registratie van alle waarden van de Vendor ID-registers voor USB.
Om lid te worden van USB-IF, moet je $ 4000 lidmaatschapskosten betalen
jaarlijks. Dan krijgt u gratis een twee-byte VID (Vendor_ID) toegewezen.

void f_DeviceDescriptor (ongeldig) //
Descriptor van het USB-apparaatstuurprogramma

Hoe schrijf ik een PnP USB-apparaatstuurprogramma?
auteur Glazkov Igor
Artikel in 7 delen
Gepubliceerd: 13 maart 2013
http://npf-wist.com/
LLC "NPF Vist" Oekraïne
Trainingskit STK0001
gebaseerd op microcontrollers
firma "Microchip"
280 grivna (35 $)
Dit pakket bevat:
1. Een apparaat (model) dat is geprogrammeerd als USB-apparaat.
2. Programmeur, met behulp waarvan het ontwikkelde programma (zijn
binaire code) is in het apparaat (model) genaaid.
3. Kabel - USB-COM-adapter - poort als deze niet aanwezig is in UW
computer. Deze poort is nodig om de ontvangen gegevens te bekijken
programmeerbaar USB-apparaat.
4. Brochure met details over de opeenvolgende stappen voor:
een heleboel ontvangen: "USB-apparaat - stuurprogramma - programma voor toegang
apparaat ".
5. CD-ROM met extra software.

31. Algemene informatie over besturingssystemen.
Algemene concepten over het besturingssysteem.
Om alle mogelijkheden van uw computer volledig onder de knie te krijgen,
u moet het besturingssysteem kennen en begrijpen.
Het doel van het besturingssysteem is om gemak te bieden
computer controle.
Elk besturingssysteem, in de volledige zin van deze term, is
het eerste en belangrijkste programma van elke computer. Gebruikelijk,
het is ook de meest complexe, alleen gebruikt voor controle
door de computer zelf.
Het grootste deel van het werk van het besturingssysteem is:
het uitvoeren van een groot aantal routinecontroles, het controleren
betrouwbaarheid, berekening van fysieke adreswaarden, enz. enzovoort. en
ontworpen om een ​​groot aantal
complexe en onnodige details van het hardwarebeheerproces.
Een besturingssysteem bestaat doorgaans uit verschillende onderdelen:
Het eerste deel is het BIOS-systeem in het PC-ROM.
Het tweede deel is de master boot record.
Het derde deel is de hardware-bootloader van het besturingssysteem.
Het vierde deel is een pc-hardwarescanner en -configurator.
Het vijfde deel is de kernel van het besturingssysteem en de opdrachtmonitor.
Het zesde deel zijn de ini-configuratiebestanden of het OS-register.
Het zevende deel - Beheerders van objecten en apparaten.
Het achtste deel is apparaatstuurprogramma's.

Windows NT / 2000 / XP / 7/8 besturingssysteemarchitectuur.
Sollicitatie
POSIX
subsysteem
POSIX
Sollicitatie
Win32
subsysteem
Win32
Sollicitatie
besturingssysteem / 2
subsysteem
besturingssysteem / 2
Proces
registratie
in systeem
Werk subsysteem
woensdag
subsysteem
bescherming
OS-servicelagen
Aangepaste modus
Kernel-modus
Verzender
stroomvoorziening
Middelen
lokaal
telefoongesprek
procedures
Verzender
mechanismen
Plug & Play
Verzender
virtueel
geheugen
Verzender
processen
Verwijzing
toezicht houden op
bescherming
Verzender
voorwerpen
Systeemdiensten (EXEcutive modulediensten)
Verzender
invoer uitvoer
Bestandssystemen
Cache-manager
Apparaatstuurprogramma's
OS-kernel
HAL hardware-abstractielaag
Hardware-onderdeel:
Netwerkstuurprogramma's

Uitleg over de architectuur van het besturingssysteem.
Gebruikersmodus.
De meeste applicaties die door de gebruiker zijn gestart, draaien in
gebruikersmodus. Al deze toepassingen hebben beperkte
toegang tot het besturingssysteem, zodat wanneer:
problemen in het applicatieprogramma, blijft de kernel van het besturingssysteem betrouwbaar beschermd
en blijft normaal functioneren.
De gebruikerstoepassing wordt uitgevoerd in een sandbox
de adresruimte die door het besturingssysteem wordt geboden.
Bij toegang tot hardwareapparaten (printer) door kernelservices
(door de I/O-manager) de bijbehorende driver wordt gestart.
Windows-services (bijv. Taakplanner, Messenger, Alerter, enz.)
werk in gebruikersmodus in een speciale gebruiker
de veiligheidscontext van de individuele werkomgeving van elke
specifieke toegepaste taak.
Kernel-modus.
Processen die in deze modus werken, hebben het hoogste niveau
voorrechten. Ze werken in dezelfde adresruimte en kunnen
directe toegang tot de computerapparatuur, met inbegrip van dergelijke belangrijke
apparaten zoals een centrale verwerkingseenheid of videoadapter.
Apparaatstuurprogramma's werken in dezelfde modus, alle systemen
dispatchers, Microkernel-module, alle diensten van de EXEcutive-module, en
systeemservices van de hardware-abstractielaag HAL (Hardware
abstractielaag).

EXEcuteve module.
Zo worden de softwarecomponenten in Windows NT / 2000 / XP aangeduid,
draaien in de kernelmodus.
Deze componenten omvatten essentiële OS-services zoals:
zoals geheugenbeheer, I/O, beveiligingssysteem,
mechanismen van interactie van processen, caching, evenals het systeem
objectbeheer.
De EXEcutive-module wordt geladen tijdens het opstarten van het besturingssysteem en
maakt deel uit van het bestand Ntoskrnl.exe.
Microkernel-module.
Bepaalt hoe de processor schakelt tussen het uitvoeren van verschillende
threads, en behandelt ook systeemonderbrekingen en uitzonderingen.
Deze module synchroniseert het werk van meerdere processors op
hardwareplatforms met meerdere processors.
In tegenstelling tot de rest van de OS-code wordt deze module nooit verplaatst.
in het virtuele geheugen, omdat de componenten ervan moeten vast zijn
fysieke adressen.
De Microkernel-module maakt ook deel uit van het bestand Ntoskrnl.exe.
Hardware-abstractielaag (HAL).
Hiermee kan het besturingssysteem worden uitgevoerd op hardwareplatforms van verschillende
configuratie en het aantal processors zonder dat het opnieuw gecompileerd hoeft te worden.
Gewoonlijk wordt HAL ontwikkeld door de fabrikant van het hardwareplatform.
De HAL-module bevindt zich in het hal.dll-bestand en wordt tijdens het proces geladen
besturingssysteem opstarten.

Processen en draden.
Een proces is een programma dat kan worden uitgevoerd in een besturingssysteemomgeving.
Elk proces heeft zijn eigen adresruimte, één of
verschillende programmathreads, evenals een identifier
Beveiligings-SID (beveiligings-ID) die overeenkomt met het account in de context
de beveiliging waarvan dit proces functioneert.
Een thread is een bestanddeel van een proces (zoiets als een proces)
binnen het proces), d.w.z. bezet code
PROCESSOR.
Op elk willekeurig moment kan één processor er maar één uitvoeren
programma stroom. Processor wisselen tussen uitvoering
verschillende programmastromen worden uitgevoerd door middel van het besturingssysteem.
Elk proces kan verschillende software bevatten
stromen. Als u bijvoorbeeld in Verkenner werkt, kunt u een nieuwe
venster, wordt er een nieuwe thread gemaakt om dit venster te beheren. Dit betekent dat in
er bestaat slechts één exemplaar van het Windows Verkenner-proces op het systeem, maar in
binnen dit proces zijn verschillende software
stromen.
Symmetrische multiprocessor-architectuur en schaalbaarheid van het besturingssysteem.
Windows NT / 2000 / XP-besturingssystemen hebben ingebouwde ondersteuning voor SMP-systemen (Symmetric Multiprocessing). Dit betekent dat als in
systeem meer dan één processor heeft, dan is de thread die vereist
uitvoering wordt uitgevoerd door de eerste vrijgekomen processor.
Het schakelen van processors tussen threads wordt uitgevoerd door de Microkernel-module.

Services en toepassingen in gebruikersmodus.
In de gebruikersmodus zijn er 3 soorten processen met verschillende
het niveau van privileges.
1. Systemische processen. Dit zijn processen die de werkomgeving beheren.
gebruikersmodus: Winlogon (gebruikers verbinden met
systeem), Service Controller (serviceverbindingsservice), Session Manager
(sessiemanager). Deze processen worden gestart door de module Ntoskrnl.exe in
opstartproces en gebruik het LocalSystem-account.
2. Windows-services. Diensten (waarschuwing, computerbrowser, enz.)
worden gestart door het Service Controller-proces (bestand services.exe) voor de toepassing
taken. Deze services functioneren als afzonderlijke threads binnen
services.exe-proces en worden niet weergegeven door Taakbeheer als
aparte processen.
De meeste services maken geen gebruik van de LocalSystem-beveiligingscontext.
3. Aangepaste applicatieprogramma's. Die. toegepast
programma's die door de gebruiker zijn gestart in de gebruikersmodus.
Elk van deze programma's werkt binnen zijn eigen
virtuele adresruimte.
Het proces is gekoppeld aan het subsysteem omgeving
subsysteem, dat oproepen ervan accepteert, geadresseerd door de API (Application
Program Interface) en zet ze om in opdrachten die aan de module zijn geadresseerd
Leidinggevend.
Om DOS te ondersteunen, wordt het runtime-subsysteem Csrss.exe gebruikt,
die automatisch start wanneer een oproep wordt gevormd.

Opstartvolgorde van het besturingssysteem.
Start een willekeurig besturingssysteem op na het voltooien van de bewerkingen
hardware-initialisatie omvat de volgende stappen:
- initialisatie van de OS-lader (Boot loader-proces),
- keuze van besturingssysteem (indien keuze gegeven),
- hardware opnieuw scannen,
- het laden van de OS-kernel en zijn initialisatie.
Nadat POST is voltooid, draagt ​​BIOS de controle over aan de eerste externe
apparaat (volgens de ingestelde prioriteit) gebufferd
databytes 80h. Het lezen van de volgende byte van deze poort wordt geactiveerd
OS hardware opstartprogramma: d.w.z. de procedure wordt uitgevoerd,
geschreven aan het begin van de MBR-sectie, waarmee u het adres van de eerste kunt vinden
actieve partitie in de partitietabel (op bytewaarde 80h), en load
het volgende commando in het JMP-tabelrecord (xx) voor uitvoering.
Het JMP-opdrachtadres is het adres van de NTLDR-hardware-bootloader
(voor Windows NT / 2000 / XP besturingssysteem), IBMBIO.COM (voor DOS) of
een soortgelijk programma voor andere besturingssystemen (bijv. UNIX, Linux, enz.).
NTLDR laadt 32-bits platte adresruimtemodus
en zal een minibestandssysteem starten dat compatibel is met FAT16, FAT32 en NTFS.
Dan leest het Boot.ini in de hoofdmap en biedt het de keuze van het besturingssysteem om op te starten.
Eenmaal geselecteerd, voert Windows XP het programma Ntdetect.com uit om
informatie verzamelen over alle fysieke apparaten die op de CPU zijn aangesloten.
Vervolgens wordt NTLDR in het RAM geladen en wordt de kernel van het besturingssysteem gestart -
het programma Ntoskrnl.exe, dat de gescande gegevens ontvangt.

Bestanden die nodig zijn om Windows XP succesvol te starten.
De opstartprocedure van het systeem zal mislukken als ten minste één van de:
de onderstaande bestanden worden niet gevonden of worden beschadigd.
Bestandsnaam
Bestandslocatie
NTLDR
Windows-hoofdmap
Boot.ini
Windows-hoofdmap
Bootsect.dos (voor OS-selectie)
Windows-hoofdmap
Ntdetect.com
Windows-hoofdmap
Ntbootdd.sys (alleen SCSI)
Windows-hoofdmap
Ntoskrnl.exe
% SystemRoot% \ System32
Hal.dll
% SystemRoot% \ System32
Registercomponent \ systeem
% SystemRoot% \ System32 \ Config
apparaatstuurprogramma's
% SystemRoot% \ System32 \ Stuurprogramma's
Het bestand Bootsect.dos bevat een kopie van de eerste sector van de partitie
alternatief besturingssysteem (in dit geval DOS), op dezelfde manier kun je
bootloaders voor UNIX en Linux en bewerk vervolgens het bestand Boot.ini:
C: \ BOOTSECT.UNX = "UNIX"
C: \ BOOTSECT.LNX = "Linux"

Verdere ontwikkeling van de architectuur van besturingssystemen.
Het opstartrecord voor DOS-versie 1.00 heeft één klein verschil.
van alle andere versies: in plaats van de naam van Robert O "Rir - de ontwikkelaar
de eerste versie van DOS, die hij volgens het prototype (Key DOS) in 2 maanden maakte,
alle volgende versies hebben de naam van het bedrijf - "Microsoft".
Momenteel duurt de ontwikkeling van een nieuwe versie van het besturingssysteem 6-10 jaar en in zijn
implementatie wordt bijgewoond door een team van 200-300 mensen.
Microsoft is een bijna monopolie geworden op de markt voor pc-besturingssystemen. Van
alternatieve besturingssystemen voor personal computers kunnen alleen voor Unix en Linux worden gespecificeerd.
Grote verbetering momenteel geïmplementeerd
- voor multi-core processors van de nieuwe generatie Itanium-architectuur
creëerde een nieuwe interface tussen OS en embedded software
hardwareplatforms - EFI (Extensible Firmware Interface),
die bedoeld is om het POST-systeem te vervangen. Nu UEFI.
Voor dit systeem heeft Microsoft een nieuwe bootloader ontwikkeld voor:
het Windows-besturingssysteem dat is opgenomen in het Windows 7/8-besturingssysteem,
bootmgr in plaats van NTLDR, Boot.ini en Ntdetect.com bestanden zijn ook uitgesloten van
systemen, omdat de informatie die daar is opgeslagen, staat in BOOT, en alles
de hardware-omgeving voldoet volledig aan de ACPI-specificatie.
Om MBR, BOOT en bootloader te isoleren van onzorgvuldige acties
gebruiker maakt een geïsoleerde systeempartitie op de harde schijf
100 MB groot.
Het Windows-register dienovereenkomstig gecorrigeerd.

Over de lange geschiedenis van de ontwikkeling van personal computers parallelle poort(parallelle poort) die vaak wordt genoemd printerpoort:(printerpoort) blijft de snelste en meest betrouwbare manier om printers en andere apparaten op een pc aan te sluiten. Parallelle overdracht van acht databits en automatische datastroombesturing met behulp van signalen erkenning(handshaking) externe circuits overbodig maken voor het decoderen van data en stuursignalen. Het wijdverbreide gebruik van parallelle poorten is te danken aan hun eenvoud en hoge prestaties. Bovendien maakt de parallelle poort invoer van maximaal negen bits en uitvoer van maximaal 12 bits tegelijkertijd mogelijk, waardoor voor veel eenvoudige taken minimale externe schakelingen nodig zijn.

Standaard parallelle poort (SPP)

Standaard parallelle poort(Standaard parallelle poort - SPP) wordt weergegeven op de achterkant van de computer met een 25-pins D-type vrouwelijke connector met gaten. Meestal heeft de kabel voor deze connector een 34-pins connector aan het andere uiteinde voor aansluiting op een printer. Het is de parallelle poort van de pc die vaak wordt genoemd printerpoort:(printerpoort). De afbeelding toont de connectoren en kabel voor het aansluiten van de printer. Aan de linkerkant bevindt zich de vastgezette connector voor de parallelle pc-poort en aan de rechterkant bevindt zich de connector voor de printer.

De computer heeft vier stuurlijnen (CONTROL), vijf statuslijnen (STATUS) en acht datalijnen (DATA) op de connector. De gegeven signaalgroepen zijn beschikbaar via de bijbehorende registers, die vaak ook worden genoemd poorten... De overige acht pinnen zijn geaard.

Nieuwere parallelle poorten worden gedefinieerd door de IEEE 1284-standaard, die in 1994 werd gepubliceerd. Deze standaard definieert vijf werkingsmodi:

    1. Compatibiliteitsmodus.
    2. Modus van notebooks (Nibble-modus).
    3. Byte-modus.
    4. Verbeterde parallelle poortmodus EPP).
    5. Poortmodus met uitgebreide mogelijkheden (Extended Capabilities Port - ECP).

Het doel van de standaard was om nieuwe stuurprogramma's en apparaten te ontwikkelen die compatibel zijn met elkaar en achterwaarts compatibel zijn met de standaard parallelle poort ( SPP). De modi Compatibiliteit, Notebook en Byte gebruiken de standaardcircuits van de originele parallelle poortkaarten, terwijl de EPP- en ECP-modi extra circuits vereisen die sneller zijn maar nog steeds achterwaarts compatibel zijn met de standaard parallelle poort.

In compatibiliteitsmodus, of Centronics-modus, zoals het gewoonlijk wordt genoemd, is het mogelijk om gegevens alleen in voorwaartse richting te verzenden, d.w.z. terugtrekken data, met een typische snelheid van ongeveer 50KB/s, maar hogere snelheden tot 150KB/s zijn mogelijk. Om gegevens in te voeren, moet u overschakelen naar de modus van notebooks of bytes. Notebook-modus staat toe: binnenkomen tetrads (4 bits) van het apparaat naar de pc. Byte-modus gebruikt een bidirectionele faciliteit (alleen te vinden op sommige kaarten) om bytes (8 bits) in te voeren.

De EPP- en ECP-poorten gebruiken extra circuits om handshakes te controleren en te genereren. Een byte uitvoeren naar een printer in compatibiliteitsmodus programma moet het volgende doen:

  1. Schrijf een byte naar de datapoort.
  2. Controleer of de printer bezet is. Als de printer bezig is, accepteert deze geen gegevens, dus alle gegevens die erop worden geschreven, gaan verloren.
  3. Geef een stroboscoopsignaal (pin 1) laag. Het geeft aan de printer aan dat er geldige gegevens op de gegevenslijnen staan ​​(pinnen 2-9).
  4. Stel de flitser hoog in en wacht ongeveer 5 s nadat het lage niveau is gevormd (in stap 3).

Software output control beperkt de snelheid van de standaard parallelle poort. De meer geavanceerde EPP- en ECP-poorten lossen dit probleem op door circuits te laten controleren of de printer bezig is en stroboscoop- en/of geschikte handshake-signalen te genereren. Hierdoor hoeft slechts één uitgangscommando te worden uitgevoerd, wat de werksnelheid verhoogt. De nieuwe poorten kunnen gegevens uitvoeren met een snelheid van 1-2 MB/sec. Bovendien gebruikt de ECP-poort Direct Memory Access ( DMA) en buffers FIFO(First In - First Out), zodat gegevens kunnen worden overgedragen zonder uitvoercommando's.

Hardware

De volgende tabel toont de pin-outs voor de 25-pins D-type computerconnector en de 34-pins Centronics-connector die gewoonlijk op printers worden aangetroffen. De IEEE 1284-standaard definieert echter drie verschillende connectoren voor gebruik met een parallelle poort. De eerste 1284 Type A-connector is een gewone 25-pins D-type connector. De tweede 36-pins 1284 Type B-connector is een Centronics-connector. De derde IEEE 1284-type C-connector is een 36-pins connector, vergelijkbaar met de Centronics-connector, maar kleiner. Het heeft een betere bevestiging, betere elektrische parameters en het is gemakkelijker om de kabel erop aan te sluiten. Er kunnen twee extra signalen worden gebruikt om te controleren of het apparaat aan staat. Deze connector wordt erkend als veelbelovend voor gebruik in nieuwe ontwerpen.

#contact
(D-25)
# contactpersoon (Centronics) SPP-signaal Richting Register Hardware
omgekeerd
1 1 nStrobe Voer uitgang in Beheer Ja
2 2 Gegevens 0 Uitgang: Gegevens
3 3 Gegevens 1 Uitgang: Gegevens
4 4 Gegevens 2 Uitgang: Gegevens
5 5 Gegevens 3 Uitgang: Gegevens
6 6 Gegevens 4 Uitgang: Gegevens
7 7 Gegevens 5 Uitgang: Gegevens
8 8 Gegevens 6 Uitgang: Gegevens
9 9 Gegevens 7 Uitgang: Gegevens
10 10 nAck Ingang Staten
11 11 Druk bezig Ingang Staten Ja
12 12 Paper-Out / Paper-End Ingang Staten
13 13 Selecteer Ingang Staten
14 14 nAuto-Linefeed Voer uitgang in Beheer Ja
15 32 nFout / nFout Ingang Staten
16 31 nInitialiseren Voer uitgang in Beheer
17 36 nSelect-Printer / nSelect-In Voer uitgang in Beheer Ja
18 - 25 19-30 aarde aarde

Brief N voor de signaalnaam betekent bijvoorbeeld een signaal met een laag activiteitsniveau nFout... Als er een fout in de printer zit, is deze lijn laag. Het is meestal op een hoog niveau om de juiste werking van de printer aan te geven. Hardware geïnverteerd betekent dat het signaal wordt geïnverteerd door de parallelle poortcircuits. Een voorbeeld hier is de regel Druk bezig... Als op deze lijn een spanning van +5 V (logisch 1) wordt gezet en het statusregister wordt uitgelezen, dan wordt dit niveau in bit 7 van het statusregister als 0 teruggegeven.

Parallelle poortsignalen worden weergegeven door conventionele TTL-niveaus. De meeste parallelle poorten zijn gebaseerd op een ASIC die Sink en Source ongeveer 12 mA heeft. In de referentiegegevens kunnen echter andere waarden voorkomen, bijvoorbeeld Sink / Source 6 mA, Source 12 mA / Sink 20 mA, Sink 16 mA / Source 4 mA.

Datalijnen zijn echte geleiders die informatie van computer naar apparaat vervoeren (en van apparaat naar computer op nieuwe poorten). Om de effecten van interferentie te verminderen, heeft elke datalijn een bijbehorende aardlijn. Deze aardleidingen bieden ook een gemeenschappelijke elektrische referentie tussen de computer en het apparaat. De rest van de lijnen evenwijdig aan de haven zijn toegewezen voor controle en handshaking.

Om ervoor te zorgen dat de printer zich in een bekende beginstatus bevindt, zet het nInitialize-signaal van de computer de printer in de staat waarin deze zich bevindt na het opstarten. Het initialiseren van de printer met het nInitialize-signaal staat dus gelijk aan het uit- en weer inschakelen van de printer.

Een signaal op de Select-lijn vertelt de computer dat de randapparatuur is ingeschakeld online(online) en klaar om gegevens te ontvangen. De computer verzendt geen gegevens als er een zwak signaal is op de Select-lijn. Meestal komt de status van dit signaal overeen met de "on-line"-indicator op de printer.

Wanneer de computer geldige datasignalen op de datalijnen heeft gegenereerd, moet het apparaat melden dat de data gereed is. Dit is precies waar het nStrobe-stroboscoopsignaal voor is ontworpen, wat het apparaat zou moeten dwingen een databyte te accepteren en op te slaan in een buffer voor latere verwerking.

Om hoge gegevensoverdrachtsnelheden te bereiken, heeft de printer een specifieke methode nodig voor het coördineren van verzendingen. De computer moet tussen bytes wachten totdat de printer klaar is om nieuwe bytes te ontvangen. Printers gebruiken het Busy-signaal om de computer te vertragen totdat de printer klaar is om de volgende byte te ontvangen. De printer genereert een hoog niveau van het Bezet-signaal als reactie op de ontvangst van het nStrobe-signaal, en dit niveau blijft totdat het zich voorbereidt om de volgende byte te ontvangen. Houd er rekening mee dat het Bezet-signaal de computer voor enige tijd kan vertragen als er een ernstige fout optreedt, zoals een papierstoring. Als de printer een byte heeft verwerkt, moet hij de wachtende computer om de volgende byte vragen. De printer verwijdert het Bezet-signaal en geeft een korte bevestigingspuls nAck. Zo sturen (bevestigen) de signalen nStrobe, Busy en nAck de gegevensoverdracht in de parallelle poort.

In sommige printers transporteert het besturingsteken Carriage Return (CR) het papier automatisch naar de volgende regel, terwijl bij andere de wagen gewoon teruggaat naar het begin van de huidige regel zonder papier te transporteren. In veel printers kan elk van deze opties worden ingesteld met een schakelaar, maar u kunt dit ook regelen met het nAuto-LineFeed-signaal. Een laag niveau van dit signaal zorgt ervoor dat de printer het papier automatisch regel voor regel transporteert wanneer het CR-controleteken wordt ontvangen.

Met de nSelect-Printer-lijn kan een computer op afstand een randapparaat online of offline brengen. De meeste parallelle poorten houden deze lijn laag, zodat het apparaat automatisch gegevens detecteert. Een hoog signaal op deze lijn verhindert de werking van het apparaat. Een nError-signaal van een randapparaat informeert de computer dat er een probleem is dat het afdrukken verhindert, maar gaat er niet verder op in. De fout kan verschillende oorzaken hebben, waarvan de details afhankelijk zijn van het randapparaat. Gewoonlijk "verzamelt" het nError-signaal situaties als de afwezigheid van papier (deze reden wordt aangegeven door het Paper Out-signaal), de aanwezigheid van een printer in offline(offline-modus) of interne printercircuitstoringen.

Centronics-interface

Centronics is een oude standaard (vaak interface en protocol genoemd) voor het overbrengen van gegevens van een computer (host) naar een printer. Erkenning van deze standaard wordt in de meeste printers gebruikt en wordt meestal geïmplementeerd in software. De afbeelding toont een vereenvoudigd diagram van het Centronics-protocol.

Eerst worden gegevens verzonden naar pinnen 2-9 van de parallelle poort. De host controleert vervolgens of de printer bezet is, d.w.z. Druk moet laag zijn. Daarna geeft het programma een flitser af, wacht minstens 1 μs en verwijdert de flitser. Gegevens worden meestal gelezen door het apparaat aan de stijgende rand van de flitser. De printer geeft aan dat hij bezig is met het verwerken van gegevens op de Bezet-lijn. Wanneer de printer de gegevens heeft ontvangen, bevestigt deze de byte met een negatieve puls van ongeveer 5 μs op de nAck-lijn.

Om tijd te besparen negeert de host vaak het signaal op de nAck-lijn. Bij het overwegen van een poort met uitgebreide ECP-mogelijkheden, zal de implementatie van de Fast Centronics Mode (Fast Centronics Mode) worden getoond, waarin het handenschudden schematisch wordt uitgevoerd. De programmeur hoeft slechts een byte aan gegevens naar de I/O-poort te schrijven. De circuits controleren of de printer bezig is en genereren een stroboscoop. Merk op dat in deze modus de nAck-lijn niet wordt bewaakt.

Poortadressen

De parallelle poort heeft drie gemeenschappelijke basisadressen, die in de volgende tabel worden weergegeven. Het basisadres 3BCh werd oorspronkelijk geïntroduceerd voor parallelle poorten op vroege grafische kaarten. Nadat de parallelle poorten van de videokaarten waren verwijderd, verdween dit adres. Vervolgens verscheen het als een optie voor parallelle poorten geïntegreerd in moederborden, waarbij de configuratie kan worden gewijzigd met behulp van het BIOS. Aan de LPT1-naam wordt gewoonlijk basisadres 378h toegewezen en aan LPT2 wordt gewoonlijk basisadres 278h toegewezen. Verder wordt echter aangetoond dat dit niet altijd het geval is. De adressen 378h en 278h worden bijna altijd gebruikt voor parallelle poorten, maar kunnen per pc verschillen.

Wanneer de computer is ingeschakeld, detecteert het BIOS het aantal beschikbare poorten en noemt deze LPT1, LPT2 en LPT3. Het BIOS kijkt eerst naar 3BCh. Als daar een parallelle poort wordt gevonden, wordt deze LPT1 genoemd en wordt het adres 378h gecontroleerd. Als daar een parallelle poort wordt gevonden, krijgt deze de eerstvolgende beschikbare naam. Het is LPT1 als er geen kaart is gevonden op adres 3BCh, of LPT2 als er wel een kaart is gevonden. De poort om 278h wordt op dezelfde manier gecontroleerd. Als gevolg hiervan is het mogelijk om LPT2 op 378 uur te hebben in plaats van de verwachte 278 uur.

De situatie wordt gecompliceerd door het feit dat sommige fabrikanten van parallelle-poortkaarten jumpers instellen waarmee u de poort kunt configureren op LPT1, LPT2, LPT3. Wat is nu het adres van LPT1? De meeste kaarten hebben LPT1 op 378h en LPT2 op 278h, maar sommige gebruiken 3BCh als LPT1, 378h als LPT1 en 278h als LPT2.

Voor een interface met een poort wordt vaak het basisadres gebruikt in plaats van een naam, in plaats van LPT1 en andere namen.De poortadrestabel bevindt zich in het BIOS-gegevensgebied. Wanneer het BIOS adressen toewijst aan printerapparaten, slaat het de adressen op in specifieke geheugenlocaties zodat ze daar kunnen worden gevonden. Opmerking * : In nieuwere BIOSen kan adres 0000: 040E uit het BIOS-gegevensgebied worden gebruikt als uitgebreid BIOS-gegevensgebied.

Standaard parallelle poort software registers (poorten)

Gegevens poort

Vooroordeel Naam Lezen schrijven Bits Afspraak
Basis + 0 Gegevens poort Schrijven ( * ) Bit 7 - 0Gegevens 7 - 0

Opmerking * : Als de poort bidirectioneel is, zijn de bewerkingen Lezen (invoer) en Schrijven (uitvoer) toegestaan.

Basisadres, gewoonlijk aangeduid als gegevens poort of gegevensregister, wordt eenvoudigweg gebruikt om gegevens uit te voeren op de datalijnen (pinnen 2-9) van de parallelle poort. Meestal is dit register alleen-schrijven. Bij het lezen van de poort wordt de laatst verzonden byte ingevoegd. In het geval van een bidirectionele poort (zie hieronder) bevinden de ontvangen gegevens zich op dit adres.

Statuspoort

De statuspoort is alleen-lezen, dus alle gegevens die erop worden geschreven, worden genegeerd. De poort heeft vijf invoerlijnen (pinnen 10, 11, 12, 13 en 15), een IRQ-interruptverzoekbit en twee gereserveerde bits. Bit 7 (Bezet) is een invoer met lage activiteit, d.w.z. als bit 7 0 bevat, dan heeft pin 11 een spanning van +5 V. Hetzelfde geldt voor bit 2 (nIRQ) - als de bit 1 bevat, is er geen interrupt opgetreden.

Beheerpoort

De beheerpoort (basisadres + 2) was alleen-schrijven. Bij aansluiting op de parallelle printerpoort worden vier stuursignalen gebruikt: Strobe (bit 0), Auto Linefeed (bit 1), Reset initialisatie (bit 2) en Select Printer (bit 3). Al deze signalen behalve Reset zijn omgekeerd.

De printer geeft geen signaal om de computer te initialiseren en vertelt de computer niet om automatische regelinvoer te gebruiken. De bovenstaande vier uitgangen kunnen echter worden gebruikt voor invoer. Als de computer de pin hoog (+5 V) duwt en het apparaat wil deze laag zetten, dan maakt de poort kortsluiting en ontstaat er een conflict. Daarom zijn deze uitgangen ontworpen volgens het "open collector"-schema. Ze hebben twee toestanden: laag (0 V) en hoge impedantie (open circuit).

Gewoonlijk heeft een printerkaart interne pull-up-weerstanden, maar niet alle kaarten hebben deze. Sommige kaarten zijn gewoon open collector-uitgangen, terwijl andere conventionele push-pull (totem)-uitgangen zijn. Er kan een externe weerstand worden gebruikt om het apparaat goed te laten functioneren met zoveel mogelijk printerpoorten. Als er al een interne weerstand is, werkt de externe weerstand parallel daaraan en in het geval van een push-pull-uitgang als een belasting.

De externe weerstandswaarde is meestal 4,7 kΩ. Het wordt niet aanbevolen om een ​​kleinere weerstand te gebruiken, omdat er mogelijk een interne weerstand op de kaart zit. In de toestand met hoge impedantie is de parallelle poortpin hoog bij +5 V. In deze toestand kan een extern apparaat de pin op laag zetten en ervoor zorgen dat de controlepoort een andere waarde leest. Hierdoor kunnen de vier pinnen van de controlepoort worden gebruikt voor bidirectionele gegevensoverdracht. Om echter gegevens via de controlepoort te lezen, moet u deze instellen op xxxx0100 zodat alle pinnen +5 V hebben en het apparaat een laag niveau kan instellen (aarde - logisch 0).

Bit 4 en 5 zijn voor interne controle. Bit 4 activeert het IRQ-interruptverzoek (zie hieronder), en bit 5 activeert de bidirectionele poort, d.w.z. Op DATA-lijnen 0-7 kunnen 8 bits worden ingevoerd. Deze modus is alleen mogelijk als de kaart dit ondersteunt. Bits 6 en 7 zijn gereserveerd, schrijven naar deze bits wordt genegeerd.

Bidirectionele poorten

Het volgende diagram toont een vereenvoudigde weergave van het parallelle poortgegevensregister. De originele parallelle poortkaarten zijn gebaseerd op de logica van de 74LS-familie. Er worden nu gespecialiseerde microschakelingen gebruikt, maar de werkingsprincipes blijven hetzelfde.

Niet-bidirectionele poorten worden uitgegeven met een uitgangssignaal nee de 74LS374 is permanent verbonden met aarde, dus de datapoort pint alleen. Wanneer ze uit het dataregister worden gelezen, worden de gegevens uit het 74LS374-circuit gehaald, dat ook is verbonden met de datapinnen. Als u het 74LS374-schema uitschakelt, kunt u een bidirectionele poort krijgen.

In bidirectionele poorten is bit 5 van het besturingsregister verbonden met de ingang om de uitgang mogelijk te maken. nee 74LS374 circuits zodat output drivers kunnen worden uitgeschakeld (uitgeschakeld). In dit geval kunt u zonder conflict gegevens van de datapinnen van de parallelle poort lezen.

Bit 5 van het besturingsregister schakelt bidirectionele werking van de parallelle poort in of uit. Het werkt alleen voor echte bidirectionele poorten. Wanneer dit bit is ingesteld op 1, worden pinnen 2-9 naar een toestand met hoge impedantie gestuurd. In deze toestand kunt u op deze regels gegevens invoeren en hun datapoort (basisadres) uitlezen. Gegevens die naar de poort zijn geschreven, worden opgeslagen, maar zijn niet beschikbaar voor gegevenscontacten. Om de bidirectionele modus uit te schakelen, moet bit 5 van de controlepoort op 0 worden gezet.

Niet alle poorten werken echter op dezelfde manier. Voor sommige poorten moet bit 6 van de controlepoort worden ingesteld om de bidirectionele modus in te schakelen en bit 5 om deze uit te schakelen. Verschillende fabrikanten implementeren hun bidirectionele poorten anders. Als u een bidirectionele poort moet gebruiken voor gegevensinvoer, controleer dan eerst of de poort bidirectioneel is met een logische sonde of multimeter.

De parallelle poort gebruiken om acht bits in te voeren

Als de parallelle poort de bidirectionele modus niet ondersteunt, kunt u nog steeds maximaal negen bits invoeren. Hiervoor kunt u de vijf invoerlijnen van de statuspoort en de vier invoerlijnen (open collector) van de controlepoort gebruiken volgens het volgende diagram.

De parallelle poortingangen zijn geselecteerd om verbindingen te vereenvoudigen. Het Busy-signaal is het meest significante bit van 7 van de statuspoort, gevolgd door de Ack-, Paper Out- en Select-signalen van de statuspoort, die een bovenste knabbel vormen. De streepjes geven aan welke ingangen hardwarematig zijn geïnverteerd, d.w.z. +5 V wordt gelezen als logisch 0 en 0 V als logisch 1. De statuspoort heeft slechts één geïnverteerde ingang.

De jongste nibble wordt gelezen vanaf de controlepoort (Select Printer, Init, Auto Linefeed, Strobe). Hier worden open-collectoromvormers gebruikt. Hiervoor zijn mogelijk 4,7k pull-up-weerstanden nodig.

Notebook-modus

Nibble-modus is de beste manier om acht bits gegevens in te voeren zonder de poort in omgekeerde modus te zetten en datalijnen te gebruiken. Deze modus is het gemakkelijkst te implementeren. Een multiplexer (viervoudig 2: 1) wordt gebruikt voor het achtereenvolgens lezen van notebooks. Het samenvoegen van notebooks in bytes wordt programmatisch uitgevoerd. Natuurlijk is deze methode iets langzamer dan de vorige. Hier vereist het lezen van een enkele byte meerdere I / O-opdrachten en vereist een externe microschakeling.

De 74LS157 multiplexer werkt net zo eenvoudig als vier schakelaars. Wanneer ingang A / B = 0 (laag), worden ingangen A geselecteerd, d.w.z. ingang 1A wordt overgedragen naar uitgang 1Y, ingang 2A naar uitgang 2Y, enz. Wanneer ingang A / B = 1 (hoog), wordt gekozen voor ingangen B. De Y-uitgangen worden aangesloten op de statuspoort van de parallelle poort zodat ze het hoge-orderegister van het statusregister zijn. Hoewel een dergelijke verbinding optioneel is, vereenvoudigt het het programma enigszins.

De IRQ-interrupt van de parallelle poort gebruiken

Het onderbrekingsverzoek voor de parallelle poort wordt niet gebruikt voor DOS-afdrukken. Onderbrekingen zijn goed voor apparaten waarvan de activeringstijd onbekend is, zoals een hogetemperatuursensor. In dit geval is het efficiënter om aan een interrupt te werken dan om de sensor periodiek softwarematig te pollen. Daarnaast zijn interrupts vooral belangrijk voor een multitasking besturingssysteem.

Gewoonlijk is een IRQ 5- of IRQ 7-lijn een onderbrekingsverzoek voor een parallelle poort, maar dit kan anders zijn. Het is mogelijk dat onderbrekingen op de kaart volledig worden uitgeschakeld als deze alleen voor afdrukken wordt gebruikt. Onderbrekingen van parallelle poorten kunnen worden in- en uitgeschakeld met behulp van bit 4 van het besturingsregister - schakel IRQ in via de Ack-lijn (Enable IRQ Via Ack Line). Een ingeschakelde interrupt treedt op wanneer het nAck-signaal van laag naar hoog gaat (stijgende flank). Sommige kaarten activeren echter een hoog-naar-laag-interrupt.

Parallelle poortmodi in BIOS

De meeste parallelle poorten zijn nu multimode-poorten. Ze zijn meestal software die is geconfigureerd voor een van de verschillende modi met behulp van BIOS-procedures. Typische modi:

    Printermodus, ook wel Standaard- of Normale modus genoemd
    Standaard en bidirectioneel (SPP)
    EPP1.7 en SPP-modus
    EPP1.9 en SPP-modus
    ECP-modus:
    ECP- en EPP1.7-modus
    ECP- en EPP1.9-modus

Printermodus is de eenvoudigste modus - deze komt alleen overeen met de pin van de standaard parallelle poort. Het mist bidirectionele functionaliteit, dus bit 5 van de controlepoort is uitgeschakeld. Standaard en bidirectioneel (SPP) is bidirectionele modus. In deze modus keert bit 5 van de controlepoort de richting van de poort om, zodat u de invoerwaarde over de datalijnen kunt lezen.

EPP1.7 en SPP-modus is een combinatie van EPP 1.7 (Enhanced Parallel Port) en SPP-modi. Deze werkwijze geeft zowel toegang tot de SPP-registers (data-, status- en controleregisters) als toegang tot de EPP-registers. In dezelfde modus kunt u de richting van de poort wijzigen met bit 5 van het besturingsregister. De eerste versie van EPP 1.7 heeft mogelijk geen Timeout-bit.

EPP1.9 en SPP-modus vergelijkbaar met de vorige, maar nu wordt EPP-versie 1.9 gebruikt. Toegang tot de SPP-registers wordt hier nog steeds geboden, inclusief bit 5 van de controlepoort. Maar deze modus is anders dan EPP1.7- en SPP-modi in die zin dat u toegang hebt tot het Timeout-bit van de EPP-poort.

ECP-modus: biedt een Extended Capabilities Port. De modus van deze poort kan vervolgens worden ingesteld met behulp van het Extended Control Register (ECR) van de ECP-poort. In deze modus echter vanuit het BIOS EPP-modus:(100) zal niet beschikbaar zijn.

ECP- en EPP1.7-modus en ECP- en EPP1.9-modus biedt een poort met verbeterde ECP-mogelijkheden zoals in de vorige modus. maar EPP-modus: in de ECR van de ECP-poort is nu beschikbaar. V ECP- en EPP1.7-modus je hebt EPP1.7-poort tot je beschikking, en in ECP- en EPP1.9-modus- EPP1.9-poort.

De overwogen modi worden geconfigureerd via het BIOS. De gebruiker kan met zijn programma opnieuw configureren, maar doe dit: Niet aangeraden... Softwareregisters op de adressen 2FAh, 3F0h, 3F1h zijn alleen bedoeld voor toegang vanuit BIOS. Er is geen vaste standaard voor deze configuratieregisters, dus de toepassing die ze gebruikt, wordt draagbaar.

Veel beter om uit BIOS te kiezen ECP- en EPP1.7-modus of ECP- en EPP1.9-modus en gebruik vervolgens het ECP Extended Control Register om de parallelle poortmodus in te stellen. In de EPP1.7-modus waren er verschillende problemen in verband met de vorming van gegevensflitsers en het adres voor het starten van een cyclus, ongeacht de wachtstatussen, dus deze modus wordt nu niet toegepast. Het is het beste om de parallelle poort in te stellen op: ECP- en EPP-modus 1.9.

Parallelle poortmodi en ECP-besturingsregister voor uitgebreide poorten

Eerder werd aangetoond dat het wordt aanbevolen om de parallelle poort in te stellen op: ECP- en EPP1.9-modus en gebruik vervolgens het uitgebreide controleregister van de ECP-poort om verschillende bedrijfsmodi te selecteren. ECP-poortregisters zijn gestandaardiseerd door Microsoft.

Bits Functie
7:5
000 Standaard modus
001 Byte-modus
010
011 ECP FIFO-modus
100 EPP-modus:
101 Gereserveerd
110 FIFO-testmodus
111 Configuratiemodus:
4 ECP-interruptbit
3 DMA-bit inschakelen
2 ECP-servicebit
1 FIFO is vol (Vol)
0 FIFO leeg

Bij het installeren ECP-modus: een nieuwe set registers is beschikbaar bij Base + 400h. Een gedetailleerde overweging hiervan wordt gegeven in het materiaal over de ECP-poort, maar hier hebben we alleen het uitgebreide controleregister op Base + 402h nodig. Het formaat van dit register is weergegeven in de tabel aan de linkerkant. Merk op dat de ECP-registers niet beschikbaar zijn voor de poort met basisadres 3BCh.

Tot nu toe zijn we alleen geïnteresseerd in de drie meest significante bits van het uitgebreide besturingsregister, die de bedrijfsmodus bepalen. Er zijn zeven mogelijke werkingsmodi, maar niet alle poorten ondersteunen alle modi. Sommige poorten worden bijvoorbeeld niet ondersteund EPP-modus:... De volgende tabel geeft meer gedetailleerde informatie over de werkingsmodi.

Bedrijfsmodi:

Standaard modus
Byte-modus
Parallelle poort FIFO-modus
ECP FIFO-modus
EPP-modus: / Gereserveerd Volgens Uitgebreide mogelijkheden Poortprotocol en ISA-interfacestandaard
GereserveerdVoorlopig gereserveerd. - Volgens
FIFO-testmodus
Configuratiemodus:

Als de ECP-modus is ingesteld in het BIOS of als de kaart als jumper is geconfigureerd voor ECP, wordt aanbevolen om de ECP-poort voor gebruik te initialiseren naar een vooraf gedefinieerde status. Bij gebruik van SPP is de eerste stap het instellen van de poort in de standaardmodus. Er kan niet worden aangenomen dat de poort al in de standaard (SPP)-modus staat.

In sommige modi kunnen de SPP-registers verdwijnen of niet goed werken. Als u SPP gebruikt, moet u het ECR-register in de standaardmodus zetten.

Verbeterde parallelle poort (EPP)

Verbeterde parallelle poort(Verbeterde parallelle poort - EPP) is ontwikkeld door Intel, Xircom en Zenith Data Systems. EPP-poorten werden eerst gedefinieerd in EPP 1.7 en vervolgens opgenomen in IEEE 1284 (1994). De EPP-poort heeft twee standaarden EPP 1.7 en EPP 1.9. Er zijn verschillen tussen hen die de werking van de apparaten kunnen beïnvloeden (zie hieronder). Gegevensoverdrachtsnelheden variëren van 500 KB/s tot 2 MB/s. Dit wordt bereikt door het feit dat handshaking, strobing en andere bewerkingen worden gevormd door de poortcircuits, en niet programmatisch, zoals in de Centronics-interface.

Hobbyisten gebruiken de EPP-poort vaker dan de Extended Capabilities Port (ECP). De EPP-poort verschilt van de ECP-poort doordat de EPP-poort alle transmissies van/naar het randapparaat genereert en bestuurt. Aan de andere kant vereist de ECP-poort dat het randapparaat de reverse link bevestigt en de handshaking controleert. Dit is moeilijk te bereiken met conventionele eenvoudige circuits en vereist een speciale controller of ECP Peripheral Chip.

Hardware

In de EPP-modus krijgt elke lijn verschillende functies en labels, zoals weergegeven in de volgende tabel.

Contact SPP-signaal EPP-signaal Voer uitgang in Functie
1 StroboscoopSchrijven Uitgang:Een laag niveau op deze regel geeft Schrijven aan en een hoog niveau geeft Lezen aan.
2-9 Gegevens 0-7 Gegevens 0-7Voer uitgang in Bidirectionele databus.
10 Ack OnderbrekenIngang Breuklijn. Een interrupt vindt plaats op een positieve (stijgende) flank.
11 Druk bezig WachtIngang Gebruikt voor erkenning. De EPP-cyclus kan op een laag niveau beginnen en op een hoog niveau eindigen.
12 Papier op / einde ReserveIngang
13 Selecteer ReserveIngang Gereserveerd - niet gebruikt bij EPP-handshake.
14 Automatische regelinvoer GegevensstroboscoopUitgang: Geeft gegevensoverdracht op laag niveau aan.
15 Fout / fout ReserveIngang Gereserveerd - niet gebruikt bij EPP-handshake.
16 Initialiseren ResettenUitgang: Lage activiteit reset.
17 Selecteer printer Adres StrobeUitgang: Als het laag is, wordt de overdracht van het adres weergegeven.
18-25 aarde aardeGNDaarde

De signalen Paper Out, Select en Error zijn niet gedefinieerd in de EPP-handshake en de gebruiker kan de bijbehorende lijnen naar eigen inzicht gebruiken. De toestanden van deze lijnen kunnen op elk moment worden bepaald door het statusregister uit te lezen. Helaas zijn er geen redundante uitgangen, wat voor bepaalde problemen kan zorgen.

EPP-poort handdruk

Om een ​​correcte communicatie via de EPP-poort uit te voeren, moet de EPP-handshake in acht worden genomen. Aangezien alle bewerkingen in een circuit worden uitgevoerd, mag alleen hardware handshaking gebruiken, geen software, zoals het geval is met de SPP-poort. Om de EPP-cyclus te starten, hoeft het programma slechts één I / O-bewerking in het bijbehorende EPP-register uit te voeren (zie hieronder voor meer details).

EPP-gegevensschrijfcyclus

1. Het programma schrijft naar het EPP-gegevensregister (Base + 4).
2. Er wordt een laag nWrite-niveau gegenereerd, wat wijst op een schrijfbewerking.
3. Gegevens worden op datalijnen 0-7 geplaatst.
4. De nData Strobe wordt uitgegeven als Wait laag is (u kunt een lus starten).

6. De nData Strobe is verwijderd.
7. De EPP-gegevensschrijfcyclus eindigt.

EPP-lus schrijfadres

1. Het programma schrijft het adres naar het EPP-adresregister (Base + 3).
2. Er wordt een laag niveau van het schrijfsignaal gevormd, wat een schrijfbewerking aangeeft.
3. Het adres wordt op datalijn 0-7 geplaatst.
4. De Address Strobe wordt uitgegeven als Wait laag is (u kunt beginnen met herhalen).
5. De computer wacht op bevestiging - hoog niveau op nWait (u kunt de cyclus beëindigen).
6. De nAddress Strobe is verwijderd.
7. De EPP-adresregistratiecyclus eindigt.

EPP data leescyclus

1. Het programma leest het EPP-gegevensregister (Base + 4).
2. De nData Strobe wordt uitgegeven als Wait laag is (u kunt een lus starten).


5. De nData Strobe is verwijderd.
6. De EPP-leescyclus eindigt.

EPP adres leescyclus

1. Het programma leest het EPP-adresregister (Base + 3).
2. De nAddr-stroboscoop wordt afgegeven als Wait laag is (u kunt een lus starten).
3. De computer wacht op bevestiging - hoog niveau op nWait.
4. Gegevens worden gelezen van de pinnen van de parallelle poort.
5. De nAddr-stroboscoop is verwijderd.
6. De cyclus van het lezen van het EPP-adres eindigt.

Opmerking Met EPP 1.7 handshaking (tot IEEE 1284) kunnen dataslagen en adressen worden uitgegeven om een ​​cyclus te starten, ongeacht de wachtstatus. In de EPP 1.9 standaard start de cyclus pas als het Wachtniveau laag is. Zowel EPP 1.7 als EPP 1.9 vereisen een hoog wachtniveau om de cyclus te beëindigen.

EPP-poortsoftwareregisters

De EPP-poort heeft ook een nieuwe set registers, waarvan er drie zijn overgenomen van de standaard SPP-parallelle poort. De volgende tabel toont de nieuwe en bestaande registers.

Zoals u kunt zien, zijn de eerste drie adressen precies hetzelfde als die van de SPP-poortregisters en werken ze op dezelfde manier. Daarom kunt u bij gebruik van de EPP-poort gegevens naar het Base + 0-adres uitvoeren op dezelfde manier als in SPP. Wanneer u een printer aansluit en de compatibiliteitsmodus gebruikt, moet u controleren of de poort bezet is, en vervolgens flikkeren en een flitser openen met behulp van de controle- en statuspoorten, en vervolgens wachten op een bevestiging.

Als u met een EPP-compatibel apparaat moet communiceren, hoeft u alleen maar de verzonden gegevens in het EPP-gegevensregister op Base + 4 te laden en de kaart zal alle vereiste bevestigingssignalen genereren. Evenzo, als het nodig is om een ​​adres aan het apparaat te geven, gebruikt u het EPP-adresregister op Base + 3.

De EPP-adres- en dataregisters zijn leesbaar en beschrijfbaar, dus dezelfde registers kunnen worden gebruikt om data van het apparaat te lezen. De EPP-kaart van de printer moet echter een leescyclus starten, aangezien zowel nData Strobe als nAddress Strobe outputs zijn. Het apparaat kan het leesverzoek signaleren met een interrupt en ervoor zorgen dat de Interrupt Service Routine (ISR) de leesbewerking uitvoert.

De statuspoort heeft één kleine wijziging. Bit 0, dat is gereserveerd in de SPP-poortregisterset, is nu het EPP-time-outbit. Deze bit wordt ingesteld wanneer de time-out van de EPP-poort optreedt. Dit gebeurt wanneer het signaal op de nWait-lijn niet wordt verwijderd ongeveer 10 µs (afhankelijk van de poort) nadat de IOW of IOR is afgegeven. De IOW en IOR signaallijnen voor het schrijven en lezen van I/O zijn aanwezig op de ISA bus.

De EPP-modus is sterk afhankelijk van de timing van de ISA-bus. Wanneer een leescyclus aan de gang is, moet de poort de juiste lees-/schrijfhandshake maken en gegevens retourneren op die ISA-buscyclus. Dit gebeurt natuurlijk niet in één ISA-cyclus, dus gebruikt de poort het IOCHRDY-signaal (I/O Channel Ready) op de ISA-bus om wachtstatussen in te voeren voordat de cyclus is voltooid. Wat gebeurt er nu als de EPP-poort Lezen of Schrijven wordt gestart en het randapparaat niet is aangesloten? De poort zal nooit een bevestiging (nWait) ontvangen en zal statusverzoeken in behandeling houden terwijl de computer is geblokkeerd. Daarom wordt er een watchdog-timer bijgehouden in de EPP-poort, die is ingesteld op ongeveer 10 µs.

De drie registers met de adressen Base + 5, Base + 6 en Base + 7 kunnen worden gebruikt voor 16- en 32-bits lees- en schrijfbewerkingen, als de poort ze ondersteunt. Dit kan het aantal I/O-bewerkingen verminderen. De parallelle poort kan slechts acht bits tegelijk verzenden, dus het 32- of 16-bits woord dat naar de parallel wordt geschreven, wordt opgesplitst in bytes en verzonden via de acht datalijnen van de poort.

Functies voor EPP-poortprogrammering

De EPP-poort heeft slechts twee hoofdregisters en een time-outvlag. Wat moet je configureren? Voordat EPP-poortcycli kunnen worden geactiveerd door het lezen van en schrijven naar datapoorten en EPP-adressen, moet de poort correct worden geconfigureerd. Als de EPP inactief is, heeft de nAddress Strobe, nData Strobe, nWrite en nReset-lijnen passief (hoog). Sommige poorten vereisen deze instelling voordat een EPP-cyclus wordt gestart. Daarom is de eerste taak om deze lijnen handmatig te initialiseren met behulp van de SPP-poortregisters. Schrijf hiervoor de XXXX0100-code naar de beheerpoort.

Op sommige kaarten kan de EPP-schrijfcyclus niet worden uitgevoerd als de parallelle poort is ingesteld op de omgekeerde modus. Daarom wordt aanbevolen om de EPP-poort in de directe modus te zetten voordat u deze gebruikt. Het wissen van bit 5 in het controleregister zou moeten resulteren in een correcte werking.

We hebben de time-outbit van de EPP-poort al besproken. Als deze bit is ingesteld, werkt de poort mogelijk niet goed. Daarom is het aan te raden om altijd FFh in een adres- of datacyclus uit te lezen. Deze bit moet worden gewist voor een betrouwbare werking en moet continu worden gecontroleerd.

Extended Capabilities Port (ECP)

Advanced Mode is ontwikkeld door Hewlett-Packard en Microsoft voor implementatie als: Uitgebreide mogelijkheden Poortprotocol en ISA-interfacestandaard... Dit protocol gebruikt extra circuits om handshake-signalen te genereren op dezelfde manier als in de EPP-modus, en werkt sneller dan de EPP-poort. Deze modus werkt echter beter onder Windows, omdat het Direct Memory Access (DMA)-kanalen kan gebruiken voor gegevensoverdracht. Het gebruikt ook een FIFO-buffer voor ontvangen en verzonden gegevens.

Een ander kenmerk van ECP is realtime datacompressie. Het Run Length Encoding (RLE)-algoritme biedt compressieverhoudingen tot 64:1. Dit is handig voor scanners en printers waar veel van de gegevens zich in herhalende reeksen bevinden.

De ECP-poort ondersteunt de kanaaladresseringsmethode. Het is niet bedoeld om te worden gebruikt in daisy-chain-apparaten, maar maakt het mogelijk om meerdere apparaten binnen één apparaat te adresseren. Een voorbeeld zijn veel moderne faxapparaten die een parallelle poort hebben voor interface met een computer. Het faxapparaat kan worden opgesplitst in afzonderlijke apparaten, zoals een scanner, modem/fax en printer, en elk onderdeel kan afzonderlijk worden aangesproken, ook als andere apparaten geen gegevens kunnen lezen vanwege volle buffers.

Hardware

Hoewel de ECP-printerpoorten dezelfde D25-connector gebruiken als de standaard parallelle poort (SPP), wijst de ECP-poort verschillende functies toe aan de pinnen (net als de EPP-poort). Daarom gebruikt de ECP-poortinterface een andere handshaking-methode.

De ECP-poort is achterwaarts compatibel met SPP- en EPP-poorten. In de SPP-modus werken de afzonderlijke lijnen hetzelfde als in de SPP-poort en worden ze Strobe, Auto Linefeed, Init, Busy, enz. genoemd. Wanneer ze in de EPP-modus werken, voeren de lijnen functies uit in overeenstemming met de methode die wordt beschreven in het EPP-poortprotocol en wordt een andere handshakingmethode gebruikt. Wanneer de poort in ECP-modus staat, worden de lijnen als volgt gedefinieerd.

Contact SPP-signaal ECP-signaal Voer uitgang in Functie
1 Stroboscoop HostCLKUitgang: Een laag niveau op deze regel geeft aan dat de host geldige gegevens heeft. Wanneer dit signaal wordt verwijderd, moet de positieve flank van de synchronisatie worden gebruikt om de gegevens in het apparaat te bevriezen.
2-9 Gegevens 0-7 Gegevens 0-7Voer uitgang in Bidirectionele databus.
10 Ack PeriphCLKIngang Een laag niveau op deze regel geeft aan dat het apparaat geldige gegevens heeft. Wanneer dit signaal wordt verwijderd, moet de positieve flank van de klok worden gebruikt om gegevens op de host te bevriezen.
11 Druk bezig PeriphAckIngang In de omgekeerde richting geeft een hoog niveau een gegevenscyclus aan en een laag niveau een opdrachtcyclus. In voorwaartse richting werkt het als een PeriphAck.
12 Papier op / einde nAckReverseIngang Het apparaat bevestigt het Reverse Request met een laag niveau.
13 Selecteer X-vlagIngang Uitbreidbaarheid vlag.
14 Automatische regelinvoer Host bevestigingUitgang: In voorwaartse richting geeft een hoog niveau een gegevenscyclus aan en een laag niveau een opdrachtcyclus. In de tegenovergestelde richting werkt het als HostAck.
15 Fout / fout PerifereRequestIngang Een laag niveau dat door het apparaat is ingesteld, geeft de beschikbaarheid van inverse gegevens aan.
16 Initialiseren nReverseRequestUitgang: Een laag niveau duidt op gegevensoverdracht in omgekeerde richting.
17 Selecteer printer 1284 ActiefUitgang: Een hoog niveau geeft aan dat de host in de 1284-overdrachtsmodus werkt. Een laag niveau beëindigt deze modus.
18-25 aarde aardeGNDaarde

Signalen op de HostAck- en PeriphAck-lijnen geven aan of data of een commando op databus 0-7 staat. Als deze lijnen hoog zijn, staat er data op de databus (pinnen 2-9). Als de opdrachtcyclus is geïmplementeerd, is de bijbehorende regel laag; als de host bijvoorbeeld een opdracht geeft, is de HostAck-regel laag en als het apparaat een opdracht geeft, is de PeriphAck-regel laag.

De opdrachtcyclus kan een van de twee zijn: de RLE-teller of het adres, dat wordt bepaald door bit 7 van de datalijnen (pin 9). Als bit 7 0 bevat, dan is de rest van de gegevens (bits 0-6) de RLE-lengteteller die in het compressiealgoritme wordt gebruikt. Maar als bit 7 1 bevat, dan zijn de gegevens in bits 0-6 het kanaaladres. Als er één bit ontbreekt, kan het getal alleen een waarde van 0 tot 127 zijn.

Handshake ECP-poort

De ECP-poort-handshake verschilt van de SPP-poort-handshake. Het meest voor de hand liggende verschil is dat de ECP-poort op elk moment gegevens in elke richting kan verzenden, en dit vereist extra signalering. Vervolgens wordt de bevestiging van de ECP-poort voor voorwaartse en achterwaartse richtingen overwogen.

ECP directe datalus


2. De host toont vervolgens een datacyclus door een laag HostAck-signaal te geven.

4. Het randapparaat geeft zijn validatiebevestiging af door het PeriphAck-signaal af te geven.
5. De host voert het HostClk-signaal hoog uit. De positieve rand wordt gebruikt om gegevens in het randapparaat te bevriezen.
6. Het randapparaat geeft een bevestigingsbyte af, waardoor het PeriphAck-signaal wordt verwijderd.

ECP-opdracht voorwaartse lus

1. De host zet data op de datalijn.
2. De host toont vervolgens de opdrachtlus en verwijdert HostAck.
3. De host geeft de geldigheid van de gegevens aan door een laag HostClk-signaal te genereren.
4. Het randapparaat geeft een geldige gegevensbevestiging af door het PeriphAck-signaal te genereren.
5. De host trekt het HostClk-signaal hoog. De positieve rand wordt gebruikt om gegevens in het randapparaat te bevriezen.
6. Het apparaat geeft een bevestigingsbyte af, waardoor het PeriphAck-signaal wordt verwijderd.

ECP-gegevens omgekeerd




4. Het apparaat selecteert vervolgens een datacyclus door een hoog PeriphAck-signaal te genereren.




ECP Commando Inverse Cyclus

1. De host stelt het nReverseRequest-signaal laag in om een ​​invers kanaal aan te vragen.
2. Het randapparaat bevestigt het verzoek van het inverse kanaal door een laag nAckReverse-signaal af te geven.
3. Het apparaat zet gegevens op de datalijn.
4. Het apparaat selecteert vervolgens een opdrachtcyclus door een laag PeriphAck-signaal te genereren.
5. Het apparaat toont geldige gegevens met een laag PeriphClk-signaal.
6. De host geeft zijn validatiebevestiging af met een hoge HostAck-signaalsterkte.
7. Het apparaat stelt het PeriphClk-signaal hoog in. De positieve rand wordt gebruikt om gegevens door te geven aan de host.
8. De host geeft zijn bevestigingsbyte af, waardoor een laag HostAck-signaal wordt gegenereerd.

Vergelijking van ECP en SPP handshaking

SPP-handshake bestaat uit slechts vijf stappen:

  1. Schrijf een byte naar de datapoort.
  2. Controleer of de printer bezet is. Als de printer bezig is, accepteert deze geen gegevens, dus alle gegevens die worden weggeschreven, gaan verloren.
  3. Genereer een laag niveau van het Strob-signaal (pin 1). Het vertelt de printer dat er correcte gegevens op de gegevenslijnen staan ​​(pinnen 2-9).
  4. Vorm na ongeveer 5 μs een hoog niveau van het stroboscoopsignaal.
  5. Controleer de Ack-bevestiging van het apparaat.

Aan de andere kant vereist ECP-poortbevestiging meer stappen. Daarom lijkt het erop dat de ECP-poort langzamer zal zijn dan de SPP-poort. Dit is echter niet het geval, aangezien de besturing van alle fasen van de handshaking schematisch wordt uitgevoerd. Als de handshake in software zou zijn geïmplementeerd, zou deze aanzienlijk langzamer zijn dan de handshake van de SPP-poort.

RLE-codering

Eerder werd kort vermeld dat het ECP-poortprotocol een eenvoudig compressiealgoritme bevat voor Run Length Encoding ( RLE). Het biedt een maximale compressieverhouding van maximaal 64: 1 en werkt door dubbele bytes te verzenden als segmenttellers en één kopie van de byte. De segmentteller bepaalt hoe vaak de volgende byte moet worden herhaald.

Als bijvoorbeeld een reeks van 25 letters "A" wordt verzonden, moet eerst de segmenttellerbyte gelijk aan 24 worden verzonden, gevolgd door de "A"-byte. Het ontvangende apparaat zal, na ontvangst van de Run Length Count, de volgende byte het door de teller bepaalde aantal keren verlengen (herhalen).

De slicetellerbyte moet verschillen van andere bytes in het gegevenspad. Het wordt als een opdracht naar de adres-FIFO-poort verzonden. De bytes die naar dit register worden gestuurd, kunnen een segmentlengteteller of een adres zijn. Ze worden onderscheiden door de meest significante bit 7. Als bit 7 1 bevat, dan zijn de overige zeven bits (0-6) het kanaaladres. Als bit 7 is ingesteld op 0, dan zijn de minst significante zeven bits de segmentlengteteller. In dit geval zijn kanaaladressen en segmentlengtetellers beperkt tot zeven bits (waarden van 0 tot 127).

ECP-poortsoftwareregisters

De volgende tabel bevat de ECP-poortregisters. De eerste drie registers zijn gelijk aan de SPP-poortregisters. Merk echter op dat de bidirectionele poortinschakelbit (besturingspoortbit 5) verschijnt. Deze bit geeft de huidige richting van de ECP-poort aan en beïnvloedt de FIFOpFull FIFOpEmpty-bits in het ECR-register (zie hieronder).

Adres Poortnaam Lezen schrijven
Basis + 0 Gegevenspoort (SPP)Schrijven
ECP FIFO-adres (ECP-modus)Lezen schrijven
Basis + 1Statuspoort (alle modi) Lezen schrijven
Basis + 2Beheerpoort (alle modi) Lezen schrijven
Basis + 400h FIFO-gegevens (parallelle poort FIFO-modus) Lezen schrijven
FIFO-gegevens (ECP-modus) Lezen schrijven
FIFO-controle (testmodus)Lezen schrijven
Configuratieregister A (configuratiemodus) Lezen schrijven
Basis + 401hConfiguratieregister B (configuratiemodus) Lezen schrijven
Basis + 402h Uitgebreid controleregister (gebruikt door alle modi) Lezen schrijven

Uitgebreid controleregister (ECR)

Beetje Functie
7:5 Selecteer de huidige bedrijfsmodus
000 Standaard modus
001 Byte-modus
010 Parallelle poort FIFO-modus
011 ECP FIFO-modus
100 EPP-modus:
101 Gereserveerd
110 FIFO-controlemodus
111 Configuratiemodus:
4 ECP-interruptbit
3 DMA-bit inschakelen
2 ECP-servicebit
1 FIFO vol
0 FIFO leeg

Het belangrijkste register van de ECP-poort is het Extended Control Register ( ECR), dus laten we eerst eens kijken hoe het werkt. Dit register bepaalt in welke modus de ECP-poort zal werken en stelt ook de status van de FIFO-buffer in. De functies van dit register worden weergegeven in de volgende tabel.

De drie meest significante bits van het uitgebreide besturingsregister bepalen de werkingsmodus. Er zijn zeven mogelijke werkingsmodi, maar niet alle poorten ondersteunen alle modi. Sommige poorten worden bijvoorbeeld niet ondersteund EPP-modus:... De volgende tabel geeft meer gedetailleerde informatie over de werkingsmodi.

Standaard modus Als u deze modus instelt, werkt de ECP-poort als een standaard parallelle poort zonder bidirectionele capaciteit.
Byte-modus Werkt als SPP in bidirectionele modus. Bit 5 zet de poort in de omgekeerde modus.
Parallelle poort FIFO-modus In deze modus worden alle gegevens die naar de gegevens-FIFO worden geschreven naar het randapparaat gestuurd met SPP-handshake. De nodige bevestiging wordt geïmplementeerd in een circuit. Deze modus is handig voor niet-ECP-apparaten zoals printers. Sommige ECP-mogelijkheden zijn aanwezig, zoals FIFO-buffers en circuitgeneratie van handshake, maar met een SPP-handshake in plaats van een ECP-handshake.
ECP FIFO-modusStandaardmodus voor de ECP-poort. In deze modus wordt ECP-handshake gebruikt. - Wanneer de ECP-modus is ingesteld via BIOS en het ECR-register is ingesteld op ECP FIFO-modus (011), kunnen de SPP-registers verdwijnen.
EPP-modus: / Gereserveerd EPP-modus is ingeschakeld indien beschikbaar. Als onder BIOS de ECP-modus is ingesteld, is het meer dan waarschijnlijk dat deze modus geen optie is. Maar als het BIOS is ingesteld op ECP en EPP1.x-modus, wordt EPP 1.x ingeschakeld. - Volgens Uitgebreide mogelijkheden Poortprotocol en ISA-interfacestandaard deze modus is leverancierspecifiek.
GereserveerdVoorlopig gereserveerd. - Volgens Uitgebreide mogelijkheden Poortprotocol en ISA-interfacestandaard deze modus is leverancierspecifiek.
FIFO-testmodusIn deze modus worden alle gegevens die naar het Test FIFO-register zijn geschreven in de FIFO geplaatst en alle gegevens die uit het Test FIFO-register worden gelezen, worden gelezen uit de FIFO-buffer. De statusbits FIFO vol / leeg geven hun werkelijke waarde weer, dus in deze modus kunt u enkele kenmerken van de FIFO definiëren, zoals de diepte.
Configuratiemodus:In deze modus komen twee configuratieregisters cnfgA en cnfgB op hun adressen beschikbaar.

Zoals eerder getoond, fungeert een poort als deze is ingesteld om in de standaardmodus te werken als een SPP-poort zonder bidirectionele gegevensoverdracht. Als bidirectionele verzending vereist is, stelt u de bytemodus in. De FIFO- en ECP FIFO-modi met parallelle poort gebruiken circuits om de vereiste handshake-signalen te genereren. Het enige verschil tussen de twee is dat de FIFO met parallelle poort SPP-handshake gebruikt en kan worden gebruikt met een SPP-printer. ECP FIFO-modus maakt gebruik van ECP-poort-handshake.

De FIFO-controlemodus kan worden gebruikt om de capaciteit van de FIFO-buffers te testen en te controleren of ze correct werken. In deze modus wordt elke byte die naar het TEST FIFO-register (Base + 400h) wordt geschreven in de FIFO-buffer geplaatst en wordt elke byte die uit dit register wordt gelezen uit de FIFO-buffer gehaald. Dit kan worden gebruikt in combinatie met de FIFO Full en FIFO Empty bits van het uitgebreide besturingsregister ECR om de capaciteit van de FIFO-buffer te bepalen. De FIFO-diepte is meestal rond de 16 bytes.

De andere bits van het ECR-register spelen ook een belangrijke rol bij de werking van de ECP-poort. De interrupt-bit (bit 4) maakt het gebruik van interrupts mogelijk, en de DMA-enable-bit (bit 3) maakt het gebruik van directe geheugentoegang mogelijk. Het ECP-servicebit (bit 2) geeft aan of een interruptverzoek is gestart. Indien aanwezig, wordt dit bit ingesteld. Dit bit wordt in verschillende microschakelingen anders gewist. Bij sommige moet je het bit wissen, d.w.z. schrijf er 0 naar, terwijl anderen resetten wanneer ze uit het register worden gelezen.

De FIFO Full-bit (bit 1) en de FIFO Empty (bit 0) geven de status van de FIFO-buffer aan. Deze bits zijn richtingsafhankelijk, dus bit 5 van het besturingsregister moet in aanmerking worden genomen. Als bit 0 (FIFO leeg) is ingesteld, is de FIFO leeg en als bit 1 is ingesteld, is de FIFO vol. Als geen van deze bits is ingesteld, staan ​​er wel gegevens in de FIFO, maar is de buffer nog niet vol. Deze bits kunnen in de FIFO-controlemodus worden gebruikt om de capaciteit van de FIFO-buffer te bepalen.

Configuratieregister A (cnfgA)

Configuratieregister A (cnfgA) is een van de twee ECP-poortconfiguratieregisters. De configuratieregisters zijn alleen beschikbaar in de configuratiemodus. Het cnfgA-registeradres is Base + 400h. Het cnfgA-registerformaat wordt weergegeven in de volgende tabel.

Beetje Functie
7 1 Onderbrekingen worden geactiveerd door het niveau
0 Interrupts worden door de rand geactiveerd
6:4 00u Accepteert woorden met een breedte van max. 16 bits
01hAccepteert woorden met een breedte van max. 8 bits
02uAccepteert woorden met een breedte van max. 32 bits
03h: 07hGereserveerd voor uitbreiding
3 Gereserveerd
2 Host Recovery: Pipeline / Transmitter Byte opgenomen in FIFO?
0 In de voorwaartse richting heeft één byte in de zenderpijplijn geen invloed op FIFO Full.
1 In de voorwaartse richting telt één byte in de zenderpijplijn als onderdeel van de FIFO Full.
1:0 Hostherstel: niet-verzonden bytes in FIFO
00 Volledig woord
01 1 geldige byte
10 2 twee geldige bytes
11 3 geldige bytes

Configuratieregister A kan worden gelezen voor aanvullende informatie over het ECP. Bit 7 geeft aan of de kaart level- of edge-interrupts genereert. Het hangt af van het type bus dat door de kaart wordt gebruikt. Bits 6: 4 tonen de breedte van de bussen in de kaart. Sommige kaarten gebruiken alleen een 8-bits datapad, terwijl andere 16- of 32-bits gebruiken. Om het meeste uit de kaart te halen, moet het programma de status van deze bits lezen om de maximale woordgrootte te bepalen die naar de poort moet worden uitgevoerd.

De minst significante drie bits worden gebruikt voor Host Recovery. Om te herstellen van een fout, moet het programma weten hoeveel bytes zijn overgedragen, om te bepalen of er nog bytes in de FIFO zijn. Sommige implementaties kunnen rekening houden met hangende bytes in het zenderregister als onderdeel van de FIFO Full-status, terwijl andere dat niet doen. Bit 2 bepaalt een bepaalde situatie.

Een ander probleem is dat de uitvoer van de parallelle poorten slechts acht bits breed is en dat het programma 16- of 32-bits I/O-commando's kan gebruiken. In dit geval kan een deel van het poortwoord worden verzonden. Daarom geven bits 0 en 1 het aantal geldige bytes aan dat nog in de FIFO zit en opnieuw kan worden verzonden.

Configuratieregister B (cnfgB)

Configuratieregister B is, net als configuratieregister A, alleen beschikbaar in de configuratiemodus. Het adres in deze modus is Base + 401h. Het cnfgB-registerformaat wordt weergegeven in de volgende tabel.

Beetje Functie
7 1 Comprimeer de uitvoergegevens met behulp van het RLE-algoritme
0 Gegevens niet comprimeren
6 Interrupt State - Toont de huidige status van de IRQ-pin
5:3 Selecteert of toont de status van de IRQ-onderbrekingsverzoekregel.
000 Interrupt geselecteerd met jumper
001 IRQ 7
010 IRQ 9
011 IRQ 10
100 IRQ 11
101 IRQ 14
110 IRQ 15
111 IRQ 5
2:0 Selecteert of toont de status van het DMA-kanaal dat door de printerkaart wordt gebruikt
000 Gebruikt door jumpers geselecteerd 8-bits DMA-kanaal
001 Kanaal 1 DMA
010 Kanaal 2 DMA
011 Kanaal 3 DMA
100 Gebruikt door jumpers geselecteerd 16-bits DMA-kanaal
101 Kanaal 5 DMA
110 Kanaal 6 DMA
111 Kanaal 7 DMA

Configuratieregister B (cnfgB) kan een lees-schrijftoegangscombinatie zijn. Sommige poorten zijn softwarematig configureerbaar met IRQ- en DMA-bronnen die vanuit het register zijn ingesteld. Anderen zijn configureerbaar via BIOS of via jumpers op de kaart, zodat het register alleen kan worden gelezen.

Bit 7 bepaalt of de uitvoergegevens al dan niet moeten worden gecomprimeerd met behulp van het RLE-algoritme: 1 - de host comprimeert de gegevens vóór verzending, 0 - de gegevens worden onbewerkt (ongecomprimeerd) naar het apparaat verzonden. Bit 6 retourneert de status van de IRQ-pin. Het kan worden gebruikt om conflicten te diagnosticeren, omdat het niet alleen de IRQ-status van de parallelle poort laat zien, maar ook het andere apparaat dat deze IRQ-lijn gebruikt.

Bits 5: 3 geven de toewijzingsstatus van de IRQ-lijn aan de poort aan, en bits 2: 0 geven de toewijzingsstatus van het DMA-kanaal aan de poort aan. Zoals eerder vermeld, kunnen deze velden worden gelezen en geschreven. Voor verdwijnende jumperboards geven deze bits eenvoudigweg de bronnen aan als "Jumpered" of correcte regelnummers. In dit geval kunnen ze natuurlijk alleen worden gelezen.

I / O-poorten. Parallelle en seriële I/O-apparaten

I / O-poort

Gegevensoverdrachtskanaal tussen het apparaat en de microprocessor. Een poort wordt in de microprocessor weergegeven als een of meer geheugenadressen waaruit gegevens kunnen worden gelezen of waarnaar gegevens kunnen worden geschreven.

Parallelle poort

I / O-connector voor het aansluiten van parallelle interface-apparaten. De meeste printers zijn aangesloten op de parallelle poort.

Seriële poort

Computerpoort voor byte-organisatie asynchrone communicatie. Een seriële poort wordt ook wel een communicatie- of COM-poort genoemd.

Asynchrone communicatie

Een vorm van gegevensoverdracht waarbij informatie met onregelmatige tussenpozen wordt verzonden en ontvangen, één teken per keer. Aangezien gegevens met onregelmatige tussenpozen worden ontvangen, moet een bericht naar de ontvangende modem worden verzonden om te bepalen wanneer de gegevensbits van het teken beginnen en eindigen. Hiervoor zijn de start- en stopbits bedoeld.

Parallelle poort (LPT)

(25 - pins connector). Ontworpen om een ​​printer, scanner en - externe apparaten aan te sluiten voor het opslaan en transporteren van informatie (schijven). Tot voor kort had het een relatief hoge gegevensoverdrachtsnelheid (ongeveer 2 MB / s). In de regel is LPT de enige connector aan de achterkant van de computer.

Seriële poorten (COM) (9- en 25-pins connector) verschillen veel lagere snelheid (ongeveer 112 KB/s). Daarom was het hun lot om allerlei "ongehaaste" apparaten te ondersteunen - bijvoorbeeld een muis of een modem. Aanvankelijk waren er vier COM-poorten op de computer, maar na verloop van tijd bleven er slechts twee over. De muis koos zijn eigen PS / 2-connector boven de seriële poort en deelde deze met het toetsenbord, en de COM-poort bleef over met alleen trage modemondersteuning. Na verloop van tijd zal de modem emigreren naar de nieuwe USB-poort - dan zal de COM-poort definitief en onherroepelijk tot het verleden behoren.

Ooit waren de muis en het toetsenbord aangesloten op verschillende connectoren: een muis naast een modem op een COM-poort, en het toetsenbord had zijn eigen, in tegenstelling tot al het andere. PS / 2 - De poort verscheen voor het eerst op reguliere moederborden in 1998. Je kunt er niets anders op aansluiten dan een muis en toetsenbord.

Seriële poort en USB-interface.

Dit nieuwe product, dat met succes debuteerde in 2000, wordt een van de belangrijkste innovaties van het decennium genoemd. Een van de belangrijkste voordelen van USB is dat er 127 apparaten op één USB-poort kunnen worden aangesloten (in tegenstelling tot de oude poorten: er kon slechts één apparaat op elke poort worden aangesloten). Alle USB - apparaten kunnen "in een ketting" op een computer worden aangesloten - als elke "link" zijn eigen USB - poort of USB - hub heeft voor meerdere poorten tegelijk. De enige regel die in acht moet worden genomen bij het werken met USB, is dat de meest productieve apparaten de eerste in de keten moeten zijn: printer, scanner, luidsprekers, schijven. En helemaal aan het einde - een traag toetsenbord en muis.

Een andere belangrijke kwaliteit van USB - met deze interface kunt u elk apparaat op uw computer aansluiten zonder het systeem opnieuw op te starten.

De snelheid van de eerste USB-modificatie (namelijk alle apparaten die vóór eind 2000 zijn uitgebracht, behoren tot deze standaard) is ongeveer 12 MB / s (in feite werken een aantal apparaten die op USB zijn aangesloten op een veel lagere snelheid - tot 1.5 MB/s). De nieuwe USB 2.0-specificatie, aangenomen in april 2000, was van plan de gegevensoverdrachtsnelheid te verhogen tot 60 MB / s, maar nieuwe apparaten die deze overdrachtssnelheid ondersteunen, kwamen pas aan het einde van het jaar op de markt. USB 2.0 is compatibel met oudere USB-apparaten, maar werkt met dezelfde snelheid.

Infraroodpoort

Een optische poort voor het verbinden van een computer met andere computers of apparaten via infraroodstraling, zonder kabels. Infraroodpoorten worden gebruikt op sommige laptops, printers en camera's.

Een van de oudste poorten op een computer is de LPT-poort of parallelle poort. En hoewel de LPT-poort nu niet op elk moederbord te zien is, zijn lezers misschien geïnteresseerd om te weten wat het is.

Laten we eerst de naam van de poort achterhalen. Misschien weet niet iedereen waar de afkorting LPT voor staat. In feite is LPT een afkorting voor Line Print Terminal. Zo wordt duidelijk dat de LPT-poort in de eerste plaats bedoeld was om printers aan te sluiten. Daarom heeft de LPT-poort een andere naam - de printerpoort. Hoewel er theoretisch ook andere apparaten op LPT kunnen worden aangesloten.

De LPT-poort heeft een lange geschiedenis. Het is ontwikkeld door Centronics (daarom wordt deze poort vaak de Centronics-poort genoemd), die al vóór het pc-tijdperk, in de vroege jaren zeventig, dot-matrixprinters produceerde. En in het begin van de jaren tachtig begon IBM de LPT-poort in hun computers te gebruiken en werd deze enige tijd de standaardpoort voor het aansluiten van (op dat moment) hogesnelheidsapparaten.

Het uiterlijk van de parallelle poort aan de achterkant van de computer

LPT-interface bestond in verschillende edities. In de originele versie was de LPT-poort unidirectioneel, dat wil zeggen dat deze gegevens slechts in één richting kon verzenden - naar een randapparaat. Deze situatie was natuurlijk niet geschikt voor gebruikers, aangezien er printers waren die gegevensoverdracht in beide richtingen vereisten. Daarom werd de LPT-interface vervolgens verschillende keren verbeterd totdat de internationale standaard IEEE 1284 werd ontwikkeld. In overeenstemming met deze standaard ondersteunde de parallelle poortinterface verschillende bedrijfsmodi en was ook compatibel met oude standaarden. Bovendien ondersteunde de definitieve versie van de interface relatief hoge gegevensoverdrachtsnelheden - tot 5 Mb / s.

Hoe de parallelle poort werkt

De LPT-poort wordt parallel genoemd omdat in de kabel die erop is aangesloten, gegevens parallel worden verzonden, dat wil zeggen gelijktijdig over meerdere geleiders. Deze eigenschap verschilt de parallelle poort van een andere poort op de computer, de seriële COM-poort.

In een Centronics kabel zitten 8 geleiders die de data doorsturen en daarnaast zitten er meerdere lijnen in de kabel die stuursignalen dragen.

Hoewel de parallelle poort meestal wordt gebruikt voor het aansluiten van printers, waren er ook andere toepassingen. Ten eerste kunt u met behulp van de LPT-poort twee computers rechtstreeks aansluiten - met behulp van een speciale Interlink-kabel. Vóór de wijdverbreide toepassing van Ethernet-netwerkkaarten was een dergelijke verbinding, hoewel deze de gebruiker geen hoge gegevensoverdrachtsnelheid bood, toch vaak de enige manier om twee computers met elkaar te verbinden. Er zijn ook elektronische sleutels die zijn ontworpen om op de LPT-poort aan te sluiten.

Datakabel tussen computers - Interlink

Net als bij veel andere apparaten op het moederbord, kunnen de parallelle poortmodi vaak worden geconfigureerd via BIOS Setup. Meestal worden hiervoor BIOS-opties zoals Parallel Port, Parallel Port IRQ, Parallel Port DMA, etc. gebruikt.

Parallelle connector op moederbord en Centronics-kabel

De LPT-poortconnector bevindt zich meestal direct op het moederbord, hoewel tot het midden van de jaren negentig. het was meestal aanwezig op een zogenaamde multi-card die in een uitbreidingsslot was gestoken, waarop ook andere computerpoorten zaten. De poortuitgang is een 25-pins vrouwelijke connector, een DB25-connector genoemd.

ISA multicard met LPT (DB25 - "moeder") en gamepoort aan boord.

Er wordt een speciale kabel gebruikt om de printer aan te sluiten - de Centronics-kabel. Het ene uiteinde (stekker) van de Centronics-kabel wordt aangesloten op een poort, het andere (ook een stekker) op een speciale connector op de printer. De laatste connector heeft 36 pinnen. Het bijzondere van de Centronics-kabel is dan ook dat deze aan beide zijden verschillende connectoren heeft.

Buitenkant van de Centronics-kabel.

Hoewel de connector van de moederbordkabel vaak een Centronics-connector wordt genoemd, is een Centronics-connector strikt genomen slechts een 36-pins connector voor aansluiting op een printer, niet op het moederbord. De kabelconnector voor aansluiting op de poort heet de Amphenolstacker-connector, naar de naam van het Amerikaanse bedrijf Amphenol dat deze heeft ontwikkeld en die connectoren produceert.

Kenmerken van de parallelle poort

Omdat de LPT-poort parallelle gegevensoverdracht ondersteunt, werd deze poort in de eerste pc's beschouwd als een van de snelste computerpoorten. Gegevensoverdracht over meerdere lijnen brengt de LPT-interface in veel opzichten dichter bij computerbussen in de architectuur. Niettemin legt deze omstandigheid ook een beperking op aan de lengte van de kabel, die door de in de kabel optredende interferentie niet meer dan 5 m kan bedragen.

De maximale spanning die wordt gebruikt in de signaallijnen van de poort is +5 V. Voor eenvoudige datatransmissie zijn slechts tien signaallijnen vereist - dit zijn 8 datalijnen, een stroboscoopsignaallijn, dat wil zeggen een signaal dat de poort klaar is om gegevens verzenden, en een bezette lijn ... De rest van de lijnen worden gebruikt voor compatibiliteit met de Centronics-standaard.

Vrouwelijke LPT-poort met pinnummering.

Parallelle DB25-connectorpin-outs:

  • 1 - Gegevensstroboscoop
  • 2-9 - Gegevens, bits 0-7
  • 10 - Erkennen
  • 11 - Bezet
  • 12 - Papier op
  • 13 - Selecteer
  • 14 - Automatische invoer
  • 15 - Fout
  • 16 - Begin
  • 17 - Selecteer ingang
  • 18-25 - Aarde

Conclusie

De LPT-poort is een personal computer-interface die momenteel als verouderd wordt beschouwd en die geen significante ondersteuning van computerhardware- en softwarefabrikanten heeft. De parallelle poort wordt echter nog steeds met succes gebruikt in veel oudere computers en printers.

De poort wordt "serieel" genoemd omdat informatie er bit voor bit, bit voor bit sequentieel doorheen wordt verzonden (in tegenstelling tot een parallelle poort). Ondanks dat sommige computerinterfaces (bijvoorbeeld Ethernet, FireWire en USB) ook een seriële methode gebruiken om informatie uit te wisselen, wordt de naam "seriële poort" toegewezen aan de poort van de RS-232-standaard.

Afspraak

De meest gebruikte seriële poort voor personal computers is de RS-232C-standaard. Voorheen werd de seriële poort gebruikt om een ​​terminal aan te sluiten, later voor een modem of muis. Nu wordt het gebruikt om verbinding te maken met, voor communicatie met hardware-ontwikkelingstools voor embedded computersystemen, satellietontvangers, kassa's, programmeurs, met apparaten voor beveiligingssystemen van objecten, evenals met vele andere apparaten.

Met een COM-poort kunt u twee computers aansluiten met een zogenaamde "nullmodemkabel" (zie hieronder). Het wordt al sinds de dagen van MS-DOS gebruikt voor het overbrengen van bestanden van de ene computer naar de andere, in UNIX voor terminaltoegang tot een andere machine en in Windows (zelfs modern) voor een debugger op kernelniveau.

Het voordeel van de technologie is de extreme eenvoud van de apparatuur. De nadelen zijn lage snelheid, grote connectorgroottes, evenals vaak hoge vereisten voor de responstijden van het besturingssysteem en de driver en een groot aantal interrupts (één per de helft van de hardwarewachtrij, dat wil zeggen 8 bytes).

Gerelateerde video's

Connectoren

Op moederborden van toonaangevende fabrikanten (bijvoorbeeld Intel) of kant-en-klare systemen (bijvoorbeeld IBM, Hewlett-Packard, Fujitsu Siemens Computers), wordt de seriële poort aangeduid als COM of RS-232.

DE-9 COM-poortconnectoropties

De meest gebruikte D-connectoren zijn in 1969 gestandaardiseerd: 9- en 25-pins (respectievelijk DB-9 en DB-25). Voorheen werden ook DA-31 en ronde acht-pins DIN-8 gebruikt. De maximale baudrate voor een conventionele poort is 115.200 baud.

Relevantie

Er zijn standaarden voor het emuleren van een seriële poort via USB en via Bluetooth (deze technologie is grotendeels ontworpen als een "draadloze seriële poort").

Desalniettemin wordt software-emulatie van deze poort nog steeds veel gebruikt. Zo emuleren bijvoorbeeld bijna alle mobiele telefoons een klassieke COM-poort en een modem in zichzelf voor tethering - computertoegang tot internet via GPRS / EDGE / 3G / 4G-telefoonapparatuur. Tegelijkertijd worden USB, Bluetooth of Wi-Fi gebruikt voor fysieke verbinding met een computer.

Ook wordt software-emulatie van deze poort geleverd aan "gasten" van virtuele VMWare- en Microsoft Hyper-V-machines, waarvan het belangrijkste doel is om de Windows-foutopsporing op kernelniveau te verbinden met de "gast".

In de vorm van een UART, die verschilt in spanningsniveaus en de afwezigheid van extra signalen, is deze aanwezig in bijna alle microcontrollers, behalve de kleinste, SoC's, ontwikkelborden, en is ook aanwezig op de borden van de meeste apparaten , hoewel de connector niet naar de behuizing is gebracht. Deze populariteit is te danken aan de eenvoud van deze interface, zowel vanuit fysiek oogpunt, als aan de gemakkelijke toegang tot de poort vanaf de softwarekant in vergelijking met andere interfaces.

Apparatuur

De connector heeft contacten:

DTR (Data Terminal Ready - gereedheid om gegevens te ontvangen) - uitvoer op de computer, invoer op de modem. Geeft aan dat de computer klaar is om met de modem te werken. Het resetten van deze lijn veroorzaakt een bijna volledige herstart van de modem naar de oorspronkelijke staat, inclusief het laten vallen van de buis (sommige controleregisters overleven na zo'n reset). Op UNIX gebeurt dit wanneer alle toepassingen bestanden op het seriële stuurprogramma hebben gesloten. De muis gebruikt deze draad om stroom te krijgen.

DSR (Data Set Ready) - invoer naar de computer, uitvoer naar de modem. Geeft aan dat de modem gereed is. Als deze regel op nul staat, wordt het in sommige besturingssystemen onmogelijk om de poort als een bestand te openen.

RxD (Receive Data) - invoer op de computer, uitvoer op de modem. Gegevensstroom die de computer binnenkomt.

TxD (Transmit Data) - uitvoer op de computer, invoer op de modem. Gegevensstroom uitgaand van de computer.

CTS (Clear to Send) - invoer op de computer, uitvoer op de modem. De computer is verplicht de gegevensoverdracht op te schorten totdat deze draad op één is gezet. Gebruikt in het hardwarestroomcontroleprotocol om overloop in de modem te voorkomen.

RTS (Request to Send) - output op de computer, input op de modem. De modem is verplicht de datatransmissie op te schorten totdat deze draad op één is gezet. Gebruikt in het om overloop in hardware en stuurprogramma te voorkomen.

DCD (Carrier Detect) - invoer op de computer, uitvoer op de modem. Door de modem op één gezet na het tot stand brengen van een verbinding met de modem aan de andere kant, reset naar nul wanneer de verbinding wordt verbroken. De computerhardware kan een interrupt uitzenden wanneer een dergelijke gebeurtenis zich voordoet.

RI (Ring Indicator) - invoer op de computer, uitvoer op de modem. Door de modem op één gezet na het detecteren van een belsignaal van een telefoongesprek. De computerhardware kan een onderbreking uitzenden wanneer een dergelijke gebeurtenis zich voordoet.

SG (Signal Ground) - gemeenschappelijke signaaldraad van de poort, is geen gemeenschappelijke grond, in de regel geïsoleerd van de computerkast of modem.

Een nulmodemkabel gebruikt twee gekruiste paren: TXD / RXD en RTS / CTS.

Aanvankelijk, in de IBM PC en IBM PC / XT, werd de poorthardware gebouwd op een UART 8250-microschakeling van National Semiconductor, daarna werd de microschakeling vervangen door een 16450, software die compatibel was met de vorige, maar snelheden tot 115200 bits per ten tweede verscheen er een 16550-microschakeling met een bidirectionele FIFO-gegevensbuffer om de belasting van de interruptcontroller te verminderen. Momenteel opgenomen in de SuperIO-chip op het moederbord samen met een aantal andere apparaten.

Programmatische toegang tot de COM-poort

UNIX

COM-poorten in het Unix-besturingssysteem (Linux) zijn tekenapparaatbestanden. Meestal bevinden deze bestanden zich in de map / dev en worden genoemd

  • ttyS0, ttyS1, ttyS2 enz. op Linux
  • ttyd0, ttyd1, ttyd2 enz. (of ttyu0, ttyu1, tyu2 enzovoort sinds 8.0) op FreeBSD
  • tja, ttyb, ttyc enz. op Solaris
  • ttyf1, ttyf2, ttyf3 enzovoort in IRIX
  • tty1p0, tty2p0, tty3p0 enz. in HP-UX
  • tty01, tty02, tty03 enz. op Digital Unix
  • ser1, ser2, ser3 enz. in QNX

Voor programmatische toegang tot de COM-poort moet u het bijbehorende bestand openen om te lezen / schrijven en de speciale functies tcgetattr (om de huidige instellingen te achterhalen) en tcsetattr (om nieuwe instellingen in te stellen) aanroepen. Mogelijk moet u ook ioctl-aanroepen doen met specifieke parameters. Daarna worden bij het schrijven naar een bestand gegevens via de poort verzonden en bij het lezen ontvangt het programma reeds ontvangen gegevens van de COM-poortbuffer.

Apparaten met de naam "ttyxx" worden gebruikt als serverapparaten, dat wil zeggen dat de applicatie die dit apparaat heeft geopend, gewoonlijk wacht op een inkomende oproep van de modem. De klassieke dergelijke applicatie die standaard wordt gebruikt, is getty, die wacht op een inkomende oproep, vervolgens de COM-poort configureert in overeenstemming met de configuratiebestanden, daar "login:" uitvoert, een gebruikersnaam neemt en het commando "loginUserName" uitvoert als een afstammeling, met standaard invoer en uitvoer omgeleid naar de COM-poort. Dit commando vraagt ​​op zijn beurt om en controleert het wachtwoord, en indien succesvol, start het (niet als een kind, maar in plaats van zichzelf door execve aan te roepen in hetzelfde proces) de standaard gebruikersshell gespecificeerd in het / etc / passwd bestand.

Deze technologie ontstond historisch in de jaren zeventig, toen computers zoals PDP-11 (in de USSR werd de serie SM-computers genoemd) of VAX onder UNIX OS werden gebruikt, waardoor de aansluiting van veel terminals voor het werk van veel gebruikers mogelijk werd. Terminals - en dus de hele gebruikersinterface - waren verbonden via seriële poorten, met de mogelijkheid om een ​​modem aan te sluiten in plaats van een terminal en vervolgens telefonisch naar een computer te bellen. Tot nu toe is er een terminalstack in UNIX-achtige besturingssystemen, en er zijn meestal 3 terminalimplementaties - een seriële poort, een tekstmodusconsole + toetsenbord en een "loopback" naar een van de open besturingstoepassingsbestanden (deze is hoe telnetd, sshd en xterm worden geïmplementeerd).

Clientapparaten met seriële poorten om naar buiten te bellen, worden op veel (maar niet alle) UNIX-apparaten cuaxx genoemd.

Aangezien de seriële poort in UNIX alleen toegankelijk is via de terminal-stack, kan het de controlerende terminal zijn voor processen en groepen (stuur SIGHUP wanneer de verbinding van de modem wordt verbroken en SIGINT wanneer u op Ctrl-C drukt), op kernelniveau, ondersteuning het bewerken van de laatste regel die is ingevoerd met de pijltoetsen, enz. Om deze functie uit te schakelen en het apparaat in een "pijp" voor een stroom van bytes te veranderen, zijn ioctl-aanroepen vereist.

ramen

Seriële poorten worden in Win32 als bestanden behandeld. De functie CreateFile wordt gebruikt om de poort te openen. Er kunnen veel poorten zijn, dus ze worden aangeduid als COM1, COM2, enz. in de volgorde waarin de bijbehorende apparaatstuurprogramma's worden gevonden. De eerste 9 poorten zijn ook beschikbaar als named pipes voor datatransmissie (beschikbaar onder de namen "COM1", "COM2", ...), deze toegangsmethode wordt als verouderd beschouwd. Het wordt aanbevolen om alle poorten als bestanden te behandelen (met de namen "\\. \ COM1", "\\. \ COM2", ... "\\. \ COMx").