Wat is USB?
USB is een afkorting voor ‘Universal Serial Bus’. Deze term staat voor
een bus waarop gegevens in seriële vorm worden overgedragen, en die zo
universeel is opgezet dat er allerlei verschillende apparaten op kunnen worden
aangesloten.
De bus is ontwikkeld door een consortium van fabrikanten, waaronder
Microsoft, Intel, IBM en Compaq. De bedoeling was om een oplossing te bieden
voor de problemen waarmee PC gebruikers geconfronteerd kunnen worden bij het
aansluiten van randapparatuur aan hun computer. Door randapparatuur via USB aan
te sluiten, kunnen een aantal wezenlijke voordelen worden behaald:
- De achterkant van een gemiddelde PC is een wirwar van snoeren, met daaraan
allerlei verschillende stekkers. Als alle randapparatuur via USB wordt
aangesloten, dan blijft er nog slechts één soort snoer over, waarmee alle
apparaten met de PC kunnen worden verbonden. Dit zal niet alleen de
overzichtelijkheid sterk bevorderen, maar bovendien is USB zodanig
uitgedacht dat het niet mogelijk is een verkeerde aansluiting te maken.
- Installeren van een nieuw apparaat is met USB een kwestie van uitpakken en
inpluggen. Daarna zal de PC het nieuwe apparaat zelfstandig ontdekken en
automatisch om de bijbehorende software vragen.
- Er kunnen op USB tot 127 apparaten tegelijkertijd worden aangesloten. Dit
is heel wat meer dan er op een PC zonder USB aangesloten kunnen worden.
- Een apparaat dat via USB wordt aangesloten, heeft nooit een eigen insteek
kaart nodig. De systeemkast hoeft dus niet open, en er worden geen vrije
slots in beslag genomen. Er zijn ook geen eigen interrupts, DMA kanalen of
I/O adressen nodig. Het nare probleem van conflicten op dat gebied wordt
hiermee uit de wereld geholpen.
- USB staat toe dat apparaten worden aangesloten of weggehaald terwijl de PC
volop in bedrijf is. Het operating system zal dit automatisch opmerken, en
de juiste actie ondernemen. Bijvoorbeeld door de juiste drivers te laden.
Snelheid
USB is zijn bestaan begonnen als USB 1. Deze standaard beschreef twee
snelheden:
- low speed (1.5 Mb/s)
- full speed (12 Mb/s)
De full-speed snelheid werd ten tijde van USB 1 ook wel 'high speed' genoemd.
De huidige stand van zaken is USB 2. Deze standaard omvat de oudere USB
1 standaard, en voegt daar een snellere optie aan toe. Op USB 2 kunnen ook USB 1
compatibele apparaten worden aangesloten. De snelheden van USB 2
zijn:
- low speed (1.5 Mb/s)
- full speed (12 Mb/s)
- high speed (480 Mb/s)
Een apparaat dat USB 2 compatibel is, hoeft dus niet noodzakelijk op de
maximale snelheid te communiceren. De standaard beschrijft drie snelheden en een
fabrikant kan zelf bepalen welke snelheid het meest geschikt is voor het
betreffende apparaat.
Om de verwarring compleet te maken, gebruiken fabrikanten soms de aanduiding
'full-speed USB 2' waarmee de suggestie gewekt wordt dat het apparaat met 480
Mb/s zou communiceren. In een poging hier enige structuur in aan te brengen
heeft de USB commissie aangeraden op
verpakkingen
alleen de termen 'USB' te gebruiken voor low- en full speed apparaten, en
'Hi-Speed USB' voor apparaten die op de volle 480 Mb/s werken.
Low speed
Low speed apparaten zijn bijvoorbeeld een muis, een joystick of een keyboard.
Deze hebben relatief weinig data te versturen, en kunnen toe met een klein deel
van de capaciteit van de bus. De snelheid waarmee deze apparaten over de bus
kunnen communiceren is beperkt tot maximaal 1.5 Mb per seconde.
Full speed
Full speed apparaten zijn bijvoorbeeld een printer, een scanner of een stel
USB luidsprekers. Deze apparaten hebben regelmatig veel data te versturen of te
ontvangen, en krijgen dan een groot deel van de beschikbare capaciteit op de bus
toegewezen. Full speed apparaten kunnen communiceren met een snelheid van 12 Mb
per seconde.
High speed
High speed apparaten zijn apparaten die de maximale bandbreedte nodig hebben.
Bijvoorbeeld een externe hard disk of een CD brander. High speed apparaten kunnen communiceren met een snelheid van
480 Mb
per seconde.
USB apparaten aansluiten
De meeste PC’s hebben twee of meer aansluitingen voor een USB kabel. Als er
meer aansluitingen nodig zijn dan op de PC al aanwezig, dan moet er een verdeeldoosje worden gebruikt. Zo’n verdeeldoos (een
‘hub’) wordt in plaats van een gewoon apparaat op de USB aansluiting van de
PC aangesloten, en levert dan een aantal (meestal vier) nieuwe USB aansluitingen
op. Een hub is geen passief ding, maar bevat alle elektronica die nodig is om de
aangesloten USB apparaten te beheren. In feite bevat de hub een groot deel van
de functies die nodig zijn om de USB bus goed te laten functioneren, en is de
USB aansluiting op een PC eigenlijk ook een hub (de zogenaamde ‘root-hub’).
HUBs
Elk USB apparaat wordt dus op een hub aangesloten, en als er nog meer
aansluitingen nodig zijn, kan op een bestaande hub weer een nieuwe hub worden
aangesloten. Natuurlijk kan dit niet steeds maar doorgaan. Vanaf de PC mag er
maximaal vier niveau’s verder gegaan worden. Dus maximaal kan de USB vanaf de
PC naar een hub worden gevoerd, van daaruit naar nog een hub, en van daaruit
naar nog weer een hub. Op deze laatste hub mogen alleen nog apparaten worden
aangesloten.
Een USB 1 hub kan op de USB 2 bus worden aangesloten, maar dan kunnen er
vanzelfsprekend alleen low- en full speed apparaten op die hub worden
aangesloten. High-speed apparaten (480 M/s) moeten een volledig USB 2 compatibel
toegangspad hebben tot de USB 2 compatibele aansluiting op de PC.
Hubs zijn los te koop, maar zijn ook vaak ingebouwd in een wat groter
apparaat dat een USB aansluiting heeft. Heel handig zijn bijvoorbeeld
beeldschermen met ingebouwde hub. Het beeldscherm zelf wordt dan bestuurd via
USB, en geeft meteen de mogelijkheid een aantal andere USB apparaten aan te
sluiten.

Configuratie
Als een apparaat op de USB bus wordt aangesloten, moet de betreffende hub
weten met welke snelheid het apparaat kan worden benaderd. De hub kan herkennen
of het een low-speed (1.5Mb per seconde) apparaat betreft, omdat een low-speed apparaat
een pull-up weerstand op de D- lijn heeft. Zodra de
snelheid waarmee het apparaat communiceert bekend is, kan er data transport
plaatsvinden.
Alle USB apparaten hebben een tabel aan boord waarin de basisgegevens staan
die nodig zijn om het apparaat te herkennen. Deze tabel kan door de host worden
uitgelezen. Daardoor krijgt de host gegevens over het soort apparaat, de
fabrikant, het type, etc. Aan de hand van deze gegevens kan de host de juiste
drivers laden. Als deze geladen zijn, krijgt het apparaat van de host een eigen
nummer, waarmee het op de USB bus geadresseerd kan worden. Dat adres wordt vanaf
dat moment bij alle communicatie tussen de host en het apparaat gebruikt.
Software
USB wordt op Windows machines niet ondersteund op operating systems vóór
Windows ’95 OSR2.5 (dit is OSR2.1, met een speciale USB uitbreiding die los
geinstalleerd moet worden.) De OSR-versies (‘OEM Service Release’) zijn niet
los te koop, maar konden alleen worden geleverd bij aanschaf van een nieuwe PC.
Als USB gebruikt gaat worden, verdient het zonder meer aanbeveling om Windows
XP te installeren. Windows geeft vanaf '98 volledige ondersteuning van USB.
Meer informatie over de software vindt u hier.
Drivers
Als een apparaat herkend is door Windows, gaat Windows een bijbehorende
driver zoeken. Als die niet op de hard disk gevonden kan worden, wordt de
gebruiker om een driver gevraagd. Als deze eenmaal een keer geinstalleerd is,
weet Windows welke driver bij het betreffende apparaat hoort, en zal deze
voortaan laden als het apparaat wordt aangesloten.
Elk apparaat zou dus een eigen driver moeten hebben. Alle fabrikanten van
muizen, joysticks, keyboards, etc zouden dan eigen drivers moeten schrijven voor
al hun producten. Aangezien zeer veel apparaten erg veel op elkaar lijken, zou
dit niet erg efficiënt zijn. Voor dit type apparaten (HID apparaten, Human
Interface Devices) is dan ook een alternatief geboden.
Voor apparaten die de interface tussen de gebruiker en het systeem vormen, is
een aparte klasse opgesteld. Hiertoe behoren onder andere:
- Keyboard
- Muis
- Joystick
- Monitor
- etc…
Voor apparaten van dit type heeft Windows (vanaf Windows ’98, dus NIET
Windows ’95 OSR2.5) eigen drivers aan boord.
Bij aansluiten wordt een HID apparaat herkend door een speciale verwijzing in
de configuratie tabel die bij aansluiten uit het apparaat wordt opgehaald. Deze
verwijzing laat Windows weten dat het met een HID apparaat van doen heeft.
Windows zal dan niet om een specifieke driver vragen, maar zal nog meer tabellen
uit het apparaat ophalen, om uit te vissen wat voor soort apparaat het is, welke
inputs het apparaat kan leveren, welke outputs er zijn, etc. Dus de beschrijving
van wat het apparaat allemaal precies kan is opgeslagen in tabellen in het
apparaat zelf. De wijze waarop de tabellen vorm gegeven moeten worden is
vastgelegd in een specificatie.
Als er speciale drivers in Windows moeten worden geladen om een apparaat te
besturen, kan dit apparaat nooit worden gebruikt voordat Windows is geladen en
actief is. Dit is een probleem bij apparaten zoals een keyboard. Dit moet al
meteen beschikbaar zijn nadat de PC is aangezet, en al voordat Windows compleet
geladen is.
Ook hier biedt de HID specificatie een oplossing. Het BIOS kan de
allernoodzakelijkste code bevatten voor het aansturen van bijvoorbeeld een HID
keyboard. Deze code zal dan werken met elk keyboard dat volgens de HID
specificatie is gebouwd, zonder dat voor elk type een eigen driver nodig is.
|