USB is PNP, low cost and is easier for people to use as there are now I/O, IRQ,
or DMA configuration issues. You can have 127 devices, including hubs.
The bus is self-describing, you have device descriptors. Configuration allow for
varying functionality and levels of power use.
The USB bus is a 12Mbit/s bus, and devices can request 4 kinds of different
transfer types to reserve more or less of the bandwidth available from time
critical (video/audio) to best effort (scanner/disk storage)
The upcoming USB 2.0 that Intel hopes will replace IEEE1394 (Firewire) will offer 480Mbit/s and compatibility with the current USB devices.
As far as device support is concerned, you have both OHCI and UHCI host
controllers and the one you get depends on the vendor.
You have 6 classes of drivers: Hub, ACM, Audio, Mass storage, Printers, and
HID. In addition to that, you have the vendor specific devices like web cams,
scanners, ethernet, mp3 players and more...
usbdevfs is a dynamic filesystem that allows control of the USB bus from user
space via a binary control interface through ioctls of the libusb library.
It's however a good idea to use libusb because that binary control interface
may change in the future.
Apps can poll /proc/bus/usb/devices for changes.
In the issues, there is hotplug support where linux needs improvements for USB,
as well as PCI-hotplug, SCSI, PCMCIA, and IEEE1394. A dynamic /dev
(or at least /dev/usb) seems to be needed.
Other issues are bandwidth allocation and management, power management, and
USB 2.0.
You can find the talk slides here
Picture library | Back to Main Page | Next page |
2000/08/24 (00:32): Version 1.0