22.6 The Universal Serial Bus (USB)
The Universal Serial Bus (USB) is being built into PCI chips. All modern PC's have them. It was originally 12 Mbps but is now 480 Mbps over a twisted pair with a 4-pin connector (2 wires are power supply). It also is limited to short distances of at most 5 meters (depends on configuration). Linux supports the bus, although not all devices that can plug into the bus are supported.
It is synchronous and transmits in special packets like a network. Just like a network, it can have several devices physically attached to it, including serial ports. Each device on it gets a time-slice of exclusive use for a short time. A device can also be guaranteed the use of the bus at fixed intervals. One device can monopolize it if no other device wants to use it. It's not simple to describe in detail.
For serial ports on the USB bus, there are numerous configuration options to use when compiling the kernel. They all start with: CONFIG_USB_SERIAL. Each one is usually for a certain brand/model of serial port, although generic is also an option. See the Configuration Help file in the kernel documentation.
For documentation, see the USB directory in /usr/share/doc/kernel ... and look at the file: usb-serial.txt. The modules that support usb serial devices are found in the modules tree: kernel/drivers/usb/serial. It would be nice to have a HOWTO on the USB. See also http://www.linux-usb.org and/or http://.www.qbik.ch/usb/ .
* License

