Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Seriële communicatie

En korte inleiding op
seriële verbindingen

door: Adriaan van Nijendaal

DUPACO B.V.
Olmenlaan 6
3833 AV LEUSDEN
033 - 94 88 88
Seriële communicatie

1. Inleiding
Dit artikel beschrijft de asynchrone seriële communicatie zoals die tot heden algemeen wordt gebruikt
tussen computers, terminals en printers.
Er zal daartoe worden ingegaan op de manier waarop deze apparatuur die communicatie tot stand brengt, en
er zal aandacht worden besteed aan de gangbare standaarden op dit gebied.
Dit document streeft geenszins volledigheid na, echter wél voldoende (technische) diepgang om effectief
bij te dragen aan een wat beter begrip in de complexe seriële communicatie.

2. Inleiding seriële communicatie


In computersystemen wordt op grote schaal parallelle datatransport toegepast. De data die zich van
geheugen naar CVE (centrale verwerkings eenheid) verplaatst wordt meestal over een parallelle verbinding
getransporteerd. Het aantal leidingen in zo’n verbinding kan groot zijn; in sommige mainframes kan dat
oplopen tot 64. In een computer, die gebaseerd is op de Intel 80386 of de Motorola 68020 microprocessor,
is dat aantal 32. (32 bits CPU’s)
Bij parallelle overdracht worden behalve de dataleidingen nog extra leidingen gebruikt om het datatransport
te besturen. Het aantal stuurlijnen loopt uiteen.
Het meest bekende voorbeeld van een parallelle verbinding is ongetwijfeld de gelijknamige printer. Zo’n
printer heeft een acht bits breed datapad, waarover de ASCII data wordt getransporteerd. Deze
communicatie verloopt in slechts één richting, namelijk van de computer naar de printer. De snelheid,
waarmee data van de computer naar de printer kan worden getransporteerd, ligt vrijwel altijd hoger dat de
printsnelheid van die printer. Teneinde ervoor te kunnen zorgen, dat de computer de data niet te snel
achterelkaar stuurt, is dit datapad voorzien van één stuurlijn, die vaak "strobe" wordt genoemd. Deze strobe
geeft aan, wanneer de printer niet in staat is om data te ontvangen.
Het grote nadeel van parallelle verbindingen is het grote aantal leidingen dat in de kabel moet worden
opgenomen, waardoor de kabels erg dik, maar ook erg prijzig worden. Tevens zijn bij erg lange verbingen
versterkers nodig, die natuurlijk ook parallel moeten zijn (en daardoor duurder).
En dus wordt daar waar de kosten voor het communicatiemedium (kabel, versterkers etc) hoog genoeg zijn,
serietransmissie toegepast. Bij serietransmissie wordt slechts één enkele lijn gebruikt, waarover de bits
achter elkaar worden overgezonden. Om zeker te weten, dat de ontvanger de bits weer correct kan
omzetten in parallelle informatie, moeten er aantal maatregelen worden genomen om ervoor te zorgen dat
de ontvanger begin en eind van één teken kan onderscheiden.
Het voordeel is evident: Doordat nog maar één leiding nodig is, kan de verbinding veel voordeliger worden
gemaakt; of kan diezelfde verbingen via modems en telefoons vrijwel oneindig lang worden gemaakt, één
en ander tegen alleszins acceptabele kosten.

3. Standaardisatie
Er zijn vele vormen van seriële communicatie. Van de eenvoud van een TV afstandsbediening via HP-IB
meetapparatuur besturing tot de complexiteit van inter-IC communicatie.
Eén bepaalde klasse is wel heel populair geworden: de communicatie tussen computers, terminals en
printers. Niet in de laatste plaats omdat in een vroeg stadium reeds standaard manieren zijn ontwikkeld om
deze typen apparatuur te koppelen.
Er zijn een aantal instanties bezig geweest met het standaardiseren van communicatie over seriële lijnen ten
behoeve van terminal en modem fabrikanten. Verschillende zijn uitgekomen met suggesties over hoe de de
communicatie moet verlopen. Dit is de oorzaak van veel verwarring over deze klasse van seriële
verbindingen. Tevens worden door verschillende fabrikanten de standaarden nogal eens "vrij"
geïnterpreteerd, hetgeen ook niet bijdraagt aan de duidelijkheid.

© DUPACO
2 $Revision: 1.5 $
Seriële communicatie

3.1 EIA en CCITT


De "Electrical Industry Association" (EIA) en "Comité Consultatif International Téléphonique et
Télégraphique" (CCITT) zijn het belangrijkst, en hebben een definities beschreven voor deze interfaces.
Elk instituut heeft eigen namen voor de signalen, maar desondanks zijn de overeenkomsten erg groot. De
oudste is de EIA, die de standaard RS-232 doopte. De huidige versie is C, vandaar de naam RS-232C. De
EIA is een Amerikaans instituut. Het CCITT is Frans, en werkt samen met vrijwel alle PTT’s buiten
Amerika. Het CCITT heeft RS-232C voor een goed deel overgenomen, en verbeteringen in
onduidelijkheden aangebracht, en de standaard V.24 genoemd. De standaarden definiëren een interface
tussen Data Terminal Equipment (DTE), dat zijn de apparaten aan het uiteinde van de verbindingen, te
weten computers en terminals, en Data Communication Equipment (DCE), te weten modems, automatic
calling units (tefoonnummer kiezers).

3.2 Overzicht V.24 en RS232C


De tabel geeft aan welke signalen op welke pen zitten voor de RS-232C en V.24 standaarden.

Pin nr V.24 RS-232 C Signaal naam


-
1 101 AA Protective ground
2 103 BA TxD Transmit data
3 104 BB RxD Received data
4 105 CA RTS Request to send
5 106 CB CTS Clear to send
6 107 CC DSR Data set ready
7 102 AB GND Signal ground
8 109 CF DCD Data carrier detect
9 - - Data set test
10 - - Data set test
11 126 - Select transmit frequency
12 122 SCF secondary DCD
13 121 SCB Secondary CTS
14 118 SBA Secondary transmitted data
15 114 DB Transmit clock (DCE source)
16 119 SBB Secondary received data
17 115 DD Receive clock
18 - - -
19 120 SCA Secondary RTS
20 108/2 CD DTR Data terminal ready
21 110 CG Signal quality detector
22 125 CE Ring indicator
23 111 CH/CI Data sign rate selector
24 113 DA Transmit clock (DTE source)
25 133 - RFR Ready for receiving

De standaarden zijn allen erg omvangrijk. Ze definiëren een zeer groot aantal aspecten van dit type
verbinding, waaronder testsignalen voor verschillende loop-back circuits in modems en kabels. Een
volledige uitleg zou in het kader van dit artikel te ver voeren.
Alle vet gedrukte signaal namen worden hieronder besproken en uitgelegd wat ze betekenen. De andere
signaal namen worden weinig gebruikt en zullen niet verder aan de orde komen. In 90 procent van de
gevallen kan volstaan worden met de vetgedrukte signaal namen.

© DUPACO $Revision: 1.5 $ 3


Seriële communicatie

Protective ground Dit signaal is verbonden met de aarde van de kast waarin de aansluiting zit. Deze
pen wordt verbonden met de afschermings mantel van de kabel, aan slechts één kant
(!). (Dit om aardlussen te voorkomen)
Signal ground Dit signaal heeft eigenlijk niets te maken met aarde (ground = (eng.) aarde). Deze
leiding doet dienst als gemeenschappelijk referentie punt voor alle signalen op de
interface.
Transmitted data (output) TxD is de uitgaande data lijn van DTE naar DCE. Deze lijn vervoert de
seriële data van de DTE (terminal) naar de DCE (modem).
Received data (input) RxD is de binnenkomende data lijn. Data van DCE naar DTE.
Data set ready (input) DSR gaat van de DCE (modem) naar de DTE (terminal) DSR geeft aan, dat
de DCE (modem) met het datacommunicatie kanaal verbonden is. DCE (modem) is
dan dus niet meer in spraak, kies of test mode. DSR geeft niet aan, dat er een
verbinding is met het andere station.
Data carrier detect (input) DCD gaat van DCE (modem) naar DTE (terminal). DCD geeft aan, dat de
draaggolf van het andere station ontvangen wordt. DCD geeft dus aan, dat de
verbinding tot stand is gebracht.
Data terminal ready (output) DTR gaat van DTE (terminal) naar DCE (modem). DTR geeft aan, dat de
DTE (terminal, computer) ingeschakeld is, en dat DTE goed functioneert. Met
andere woorden: DTR geeft aan, dat DTE klaar is om data zenden of te ontvangen.
Wanneer de DTE (terminal, computer) DTR inactief maakt, dan is dat voor de DCE
(modem) reden om de verbinding te verbreken.
Request to send (output) RTS gaat van DTE (terminal) naar DCE (modem). RTS wordt gebruikt om
het modem door de terminal in zend mode te laten zetten. Na het actief maken van
RTS moet er gewacht worden totdat de DCE (modem) de CTS actief maakt.
Clear to send (input) CTS gaat van DCE naar DTE. CTS geeft aan, dat de DCE (modem) gereed is
voor dataoverdracht. (Indien natuurlijk DSR en DCD ook actief zijn)
De standaarden gaan uit van de klassieke computer - terminal verbinding waarbij een modem wordt
gebruikt. De standaard zit zó in elkaar, dat tussen modem en terminal (of computer, ook een DTE) een
kabel gebruikt wordt, die alle benodigde pennen rechtstreeks met elkaar verbindt.

4. Seriële verbindingen
Na deze beschrijving van de definities van de seriële communicatie een aantal verbindingen. De alom
gevreesde problemen treden pas op, wanneer er connecties tussen apparatuur moeten worden gemaakt, die
niet precies in het kader van de standaard vallen.

4.1 Een DTE - DTE verbinding


Het komt echter nogal eens voor, dat voor een lokale verbinding een tweetal DTE’s aan elkaar gekoppeld
dienen te worden. Bijvoorbeeld wanneer een terminal direct met de computer wordt verbonden. Deze
verbinding kan niet zonder meer tot stand worden gebracht, want in dat geval zouden twee uitgangen met
elkaar verbonden worden, terwijl ook ingangen op die manier aan elkaar komen te zitten.
Daarom is het nodig, één van de DTE’s het "uiterlijk" van een DCE te geven. Hetgeen betekent, dat de
tegenoverliggende DTE op bijvoorbeeld pen 2 een ingang te "zien" krijgt. De manier, waarop dat
gerealiseerd kan worden is door middel van een null-modem (of modem eliminator; ook: kruiskabel). Zo’n
null-modem verbindt de leidingen dusdanig, dat de tegenoverliggende DTE inderdaad "de indruk krijgt"
met een DCE te doen te hebben. Dat betekent dus, dat de signalen DTR en DCD met elkaar moeten worden
verbonden, opdat de DTE onmiddelijk een actieve DCD gepresenteerd krijgt na het actief maken van DTR.
Diezelfde DTR is verbonden met DSR van de andere DTE, daarmee de indruk wekkende dat er verbinding

© DUPACO
4 $Revision: 1.5 $
Seriële communicatie

is met de communicatie kanaal.

TxD 2 2 TxD

RxD 3 3 RxD

RTS 4 4 RTS

CTS 5 5 CTS

DSR 6 6 DSR

GND 7 7 GND

DCD 8 8 DCD

DTR 20 20 DTR

Null-modems zijn in de vorm van kleine, handzame verloopconnectoren verkrijgbaar voor erg lage prijzen.
Deze zogenaamde "jumperboxen" nodigen steeds meer bedrijven uit, om nog maar één type kabel
configuratie te gebruiken, en voor alle speciale verbindingen een jumperbox. Zodoende onstaat er minder
verwarring kan over het gebruik van bepaalde kabels.

4.2 Een DCE - DCE verbinding


Evenzo kan het voorkomen, dat een tweetal DCE’s aan elkaar gekoppeld moeten worden. Een situatie waar
dat optreedt is een computer met een DCE uitgang (omdat bij overwegend gebruik van terminals (DTE’s)
dan "rechte" kabels gebruikt kunnen worden) moet worden gekoppeld aan een modem.
Een null modem lijkt dan een goede oplossing, echter de doorverbinding in de jumperbox voorkomt een
goede werking. Het is in dat geval beter, de doorverbinding weg te laten, en, afhankelijk van de besturende
software, ofwel pen 20 en 8 kruiselings te verbinden, danwel pen 20 en 6 te verbinden.

TxD 2 2 TxD

RxD 3 3 RxD

RTS 4 4 RTS

CTS 5 5 CTS

DSR 6 6 DSR

GND 7 7 GND

DCD 8 8 DCD

DTR 20 20 DTR

4.3 De meest eenvoudige verbinding


Om twee apparaten met elkaar te laten communiceren, zijn minimaal 3 verbindingen nodig: TxD, RxD en
GND. Soms is het handig, om DTR eveneens aan te sluiten, zodat de DCE kan detecteren wanneer de DTE
klaar is voor communicatie. (Of: zodat de computer kan detecteren, dat de terminal is uitgeschakeld)

5. Handshaking
Handshaking is het Engelse woord voor "handenschudden". In de computertechniek wordt deze term

© DUPACO $Revision: 1.5 $ 5


Seriële communicatie

gebruikt om stuurcode uitwisseling aan te geven tussen twee apparaten. Eerder genoemd in dit verband is
de parallelle printer, die door middel van een strobe (of busy) signaal de computer aangaf, dat geen data
ontvangen kon worden.
Ook bij seriële communicatie is het mogelijk, dat een device (apparaat) sneller kan zenden dan dat het
andere apparaat kan verwerken. Het traagste device moet dan over een mechanisme beschikken, om de
snellere tegen te kunnen houden.
Er zijn twee manieren van handshaking:
— Software handshaking; synchronisatie door middel van het uitwisselen van een speciaal teken.
— Hardware handshaking; synchronisatie door middel van veranderen van signaal niveau’s.

5.1 Software handshake


Software handshake wordt meestal toegepast volgens het Xon-Xoff principe. (Xon transmit on, Xoff
transmit off) De handshake komt als volgt tot stand: Het traagste device zendt wanneer data niet snel
genoeg verwerkt kan worden het Xoff karakter naar de zender. Het zendende station interpreteert dat
karakter als een verzoek de output te stoppen. Op het moment dat output hervat kan worden zendt het trage
device het Xon karakter, waarna de zender output mag hervatten. Meestal wordt voor Xon ’control Q’ (ˆQ)
en voor Xoff ’control S’ (ˆS) gebruikt.

5.2 Hardware handshake


Hardware handshaking houdt in dat er een speciale lijn is die aangeeft of een device klaar is om data te
ontvangen. Meestal wordt hiervoor de RTS lijn gebruikt. De interface wordt dan éénmalig geprogrammeerd
voor hardware handshake gebruik, waarna de seriële interface de afhandeling van het starten en stoppen
verzorgd.
De hardware methode verdiend soms de voorkeur, omdat die methode in het geheel niet afhankelijk is van
de drukte graad van de zendende machine. Het is bij de software oplossing namelijk mogelijk, dat een Xoff
karakter door de zender te laat wordt geëvalueerd, omdat de zender erg druk bezet is, waardoor data
verloren gaat. In het hardware schema kan één en ander zonder interventie van complexe programmatuur
worden afgewikkeld, omdat de flow control immers door hardware geregeld wordt.

5.3 Een printer aan een DCE


Het koppelen van een printer aan een DCE (modem) is een eenvoudige zaak. De printer is (meestal) een
DTE, en behoeft er niets speciaals gedaan te worden; er is geen null-modem nodig. Toch levert dit type
verbinding frequent problemen op. Het probleem is dan meestal terug te voeren naar een handshake
probleem.
De symptomen zijn als volgt: Bij het printen van een kleine hoeveelheid data werkt alles perfect. Bij grotere
files treedt er echter een probleem op: Een deel van de informatie wordt in het geheel niet afgedrukt. Dat
komt, doordat de interne printer buffers dan volgeraakt zijn. Doordat dat buffer (bij matrixprinters meestal 2
kilobyte) één pagina tekst in één keer kan bevatten, treedt het probleem niet op bij kleine printer jobs. Een
grotere file zal, nadat het buffer volgeraakt is, weer aan het begin van het buffer worden opgeslagen.
Hetgeen de vernietiging van de printerdata in de buffer betekent, waardoor delen van de file ’verdwijnen’.
Er zijn twee oplossingen: Xon/Xoff en hardware. De software methode werkt voor normale situaties
correct, maar levert soms problemen op bij drukke machines, die niet snel genoeg het zenden van data
stoppen na ontvangst van het Xoff karakter. Dit probleem is veel lastiger te diagnostiseren, omdat het boven
beschreven probleem nu alleen nog optreedt wanneer: a. De printerjob groot is, en b. Wanneer het systeem
erg druk is. Het zal dus aanvankelijk werken, om tijdens een drukke dag (wanneer de printer waarschijnlijk
het hardst nodig is) alsnog te falen.
De hardware handshake biedt uitkomst. Het signaal RTS (Request To Send) kan gebruikt worden om de
datastroom tijdelijk te stoppen. Doordat dit geheel door de communicatie bouwstenen (de hardware) kan
worden afgehandeld, is deze oplossing niet afhankelijk van de belastingsgraad van de machine.

© DUPACO
6 $Revision: 1.5 $
Seriële communicatie

Natuurlijk moet er wel iets worden gedaan om de computer te laten reageren op het RTS signaal. De
hardware methode is mede daardoor iets lastiger te implementeren. Derhalve zal in het onderstaande een
voorbeeld geheel worden uitgewerkt.
5.3.1 De HP-laserjet aan een Computone poort
Een voorbeeld van een printer met DTE interface gekoppeld aan een DCE is de combinatie van de door
Hewlett Packard gebouwde Laserjet laserprinters aan een door Computone gemaakte seriële poort (De
combinatie die ook gebruikt is voor het printen van dit artikel).
Deze verbinding werkt ogenschijnlijk direct; de signalen passen op elkaar; er is geen null-modem nodig. De
Laserjet werkt dan ook onmiddelijk. Dit artikel is geprint met behulp van troff, een typesetter voor UNIX®.
Eroff (de troff van Elan) laadt zelf soft-fonts voor de Laserjet. Die font files kunnen zeer omvangrijk zijn:
soms wel honderden kilobytes voor één lettertype. De font files zorgen hier voor een handshake probleem.
De Laserjet kan geen data ontvangen terwijl er wordt geprint; wanneer er een soft-font wordt geladen
tijdens het doorvoeren van een vel papier, is het zonder meer noodzakelijk dat de computer wordt
tegengehouden.
Wanneer de buffer van de Laserjet vol raakt kan, afhankelijk van de instelling, een Xoff karakter naar de
computer worden verstuurd, of het DTR signaal inactief worden gemaakt.
Nu lijkt het logischer daarvoor RTS (Request To Send) te gebruiken. HP heeft echter, net zoals vele andere
printer fabrikanten, gekozen de handshake te laten verlopen via het DTR (Data Terminal Ready) signaal.
Dat signaal was daar eigenlijk niet voor bedoeld; maar vele printer fabrikanten gebruiken het ervoor.
Eigenlijk zou DTR gebruikt moeten worden wanneer het papier of de inkt o.i.d. op zou zijn, het geeft dan
aan, dat de printer niet in staat is data te ontvangen, omdat de printer niet kan functioneren, hetgeen iets
anders is dan RTS, hetgeen aangeeft dat geen data ontvangen kan worden omdat het databuffer (tijdelijk!)
vol is.
De Computone poort trekt zich in de standaard situatie niets aan van de status van het RTS signaal. Dat
moet eerst "enabled" worden via de busyready optie in de ic_control file, of door de ctsflow rtsflow
stty settings in het lineprinter interface script op te nemen. Het is verstandig, de correcte werking eerst te
controleren door middel van een break-out box. Printer "tdlaser" is ter kantore van DUPACO gekoppeld aan
ttyi23 (32 poorten, door 2 AT16’s). In de navolgende voorbeelden wordt eveneens uitgegaan van ttyi23. De
verificatie verloopt als volgt: Door middel van het versturen van een grote file wordt ervoor gezorgd dat de
poort constant data verzendt. Dat kan door middel van het commando: cp /etc/termcap
/dev/ttyi23. Er moet natuurlijk een andere devicenaam worden opgeven wanneer de printer via een
andere poort gekoppeld is. De op de poort aangebrachte LED indicator box begint dan te knipperen, na een
paar minuten dooft het weer. Door nu in ic_control toe te voegen:
ttyi23:
#
## ttyi23
#
buffers:
receive%=20
communications:
baud=9600
stopbits=1
bits=8
parity=none
handshake=busyready
wordt het Computone board dusdanig geïnitialiseerd, dat alleen data verzonden kan worden indien RTS
actief is. Die initialisatie gebeurd door middel van het programma ic_init. Dat programma wordt
automatisch gestart wanneer de machine van single naar multi-user mode gaat. Het eenvoudigst is dus de
machine te "shutten" door middel van shutdown (of haltsys).
Als de cp /etc/termcap /dev/ttyi23 nu herhaald wordt dan mogen TxD of RxD op de LED box

© DUPACO $Revision: 1.5 $ 7


Seriële communicatie

niet gaan knipperen. Pas nadat CTS met RTS verbonden is (op de bij DUPACO gebruikte LED boxjes licht
de LED dan rood op) mag de TxD LED gaan knipperen. Direct nadat de verbinding weer is weggenomen,
moet de TxD LED weer groen worden, ten teken dat geen data meer gezonden wordt.
De volgende stap is het koppelen van de Laserjet aan de Computone poort. Daartoe moet een speciale
verbinding worden gemaakt, de laserprinter gebruikt immers DTR voor de handshake lijn. Nu is het
mogelijk, een speciale kabel daartoe te maken, waarbij pin 20 van de printer aan pin 4 van het computone
poort verbonden (naast, natuurlijk, alle andere verbindingen).
Een betere oplossing is een apart verloopstekkertje, waarin de speciale verbinding wordt gesoldeerd, en
voorts alleen nog rechte seriële kabels. Het geeft de mogelijkheid de configuratie op het boxje te tekenen,
waardoor nooit meer onduidelijkheden behoeven te onstaan. Deze "mini patch" boxes zijn algemeen
verkrijgbaar bij de computeronderdelen handelaar, waarmee zelf een willekeurige verbinding kan worden
gerealiseerd.
De configuratie kan het best symmetrisch worden gemaakt, zodat het niet uitmaakt aan welke kant de
printer komt te zitten. De volledige configuratie is in de figuur weergegeven.

TxD 2 2 TxD

RxD 3 3 RxD

RTS 4 4 RTS

CTS 5 5 CTS

DSR 6 6 DSR

GND 7 7 GND

DCD 8 8 DCD

DTR 20 20 DTR

Vervolgens moet de printer op DTR handshake worden gezet, dit geschied door middel van het setup menu
(de methode verschilt per printer). Door nu een LED boxje aan te sluiten kan worden gecontroleerd of de
DTR-RTS omzetting functioneert: Door de "on-line" knop in te drukken moet RTS van rood in groen
veranderen (met andere woorden: inactief worden). En vice versa, uiteraard.
De volgende stap is het koppelen. Bij het verzenden van een file (nog steeds met cp /etc/termcap
/dev/ttyi23) moet nu af en toe, wanneer de printer een vel papier doorvoert, de seriële verbinding stil
komen te liggen doordat RTS inactief wordt. Wanneer cp wordt gebruikt, moet de hardware handshake zijn
enabled in /etc/ic_control. In het geval dat het stty commando in het printer interface script van
ctsflow rtsflow wordt voorzien, moet de line printer spooler worden gebruikt voor deze test (Het
commando is dan: lpr /etc/termcap).
5.3.2 Line printer spooler interfaces op UNIX en XENIX
In het voorgaande is meerdere malen een line printer interface ter sprake gekomen. Een line printer
interface is een shell script, welke de allerlaatste stap vormt in de programmatuur die een printerjob naar de
printer stuurt. Het line printer systeem zit (globaal) als volgt in elkaar: wanneer het commando lp (of het
alias lpr) wordt gebruikt, dan wordt de printer data in een wachtrij gezet totdat de betreffende printer klaar
is om de job in behandeling te nemen.
Dit mechanisme is nodig, omdat op een multi-user systeem de gebruikers niet van elkaar (kunnen) weten,
of de printer die ze willen gebruiken vrij is. Derhalve neemt het operating system (of liever: het line printer
spooling system) de job altijd aan, maar voert die pas uit wanneer de betreffende printer vrij is. Het systeem
werkt volgens het "wie het het eerst komt, het eerst maalt" principe.

© DUPACO
8 $Revision: 1.5 $
Seriële communicatie

Wanneer een printer job eenmaal aan de beurt is, dat wordt de data niet zomaar naar de printer poort
gestuurd, maar eerst door een interface programma geleid. Dat programma is dan verantwoordelijk voor het
aansturen van een sheetfeeder, of het manipuleren van het communicatie kanaal. De printerdata van de job
wordt tijdelijk bewaard in een file op de harddisk, in de directory /usr/spool/lp/request (tenzij
anders aangegeven bij het starten van de opdracht).
Het interface programma, dat meestal bestaat uit een shell script, krijgt zes argumenten. Die zijn:
id De id is het volgnummer waaronder de printerjob in het print systeem bekend is.
user De login-naam van de gebruiker die de print opdracht gaf.
title De eventuele titel (wanneer die is meegegeven door de gebruiker).
copies Het aantal exemplaren dat moet worden afgedrukt.
options Alle extra, met de -o vlag meegegeven, opties. Deze kunnen per printer interface nogal
uiteenlopen.
file De volledige naam van de file, waarin de printerdata zich bevindt.
De standard input (de "file", waar de input van het programma uit wordt gehaald), is /dev/null. Een
eventuele leesactie van het interface script zal dus niets opleveren. De standard error wordt opgevangen in
een file, die per electronische post (mail) naar de gebruiker wordt gezonden. De standard out gaat naar het
device.
In de interface bevindt zich meestal een stty commando, dat de communicatie parameters van de printer
poort kan zetten. Daar is het mogelijk, de baudrate te zetten, en de handshake methode te kiezen. Met
behulp van een normale editor kan deze file eenvoudig worden aangepast (zie boven).
De locatie van het interface script is verschillend:
XENIX /usr/spool/lp/interface
UNIX /usr/spool/lp/admins/lp/interfaces.
De files moeten lees- en executeerbaar zijn voor de gebruiker "lp". Meestal is het overnemen van de
permissies van de andere files in de directory het zekerst. Soms is het voor de andere (niet-
systeembeheerder-) gebruikers handig dat de interfaces leesbaar zijn. Wanneer er geen beveiligingsgevaren
aan kleven kan lees permissie voor allen worden gegeven.
Inhoudsopgave

1. Inleiding ............................................................................................................................................... 2
2. Inleiding seriële communicatie ............................................................................................................ 2
3. Standaardisatie ..................................................................................................................................... 2
3.1 EIA en CCITT .............................................................................................................................. 3
3.2 Overzicht V.24 en RS232C ........................................................................................................... 3
4. Seriële verbindingen ............................................................................................................................ 4
4.1 Een DTE - DTE verbinding .......................................................................................................... 4
4.2 Een DCE - DCE verbinding ......................................................................................................... 5
4.3 De meest eenvoudige verbinding .................................................................................................. 5
5. Handshaking ........................................................................................................................................ 5
5.1 Software handshake ...................................................................................................................... 6
5.2 Hardware handshake ..................................................................................................................... 6
5.3 Een printer aan een DCE .............................................................................................................. 6
5.3.1 De HP-laserjet aan een Computone poort .......................................................................... 7
5.3.2 Line printer spooler interfaces op UNIX en XENIX .......................................................... 8

You might also like