Next
USB - universal serial bus
  USB 1 (1.1) 12 Mb/s (FS full speed) or 1.5 Mb/s. (LS low speed)
    Supports 1.5Mb/s sub-channel for low speed devices, i.e keyboard, mouse.
    
  USB 2.0 480 Mib/s or 60 MiB/s. (HS high speed) Backwards compatible.
     Actual data transfer < 33 MiB/s, the rest is overhead.

  USB 3.0 
    5 Gib/s signalling - 8b/10b ~ payload 4 Gib/s theoretical

    SS (super speed)- 3.2 Gib/sec. achievable (400 MBytes/s)
    Introduced 2 additional pair of wires, bi-directional transfer.

    Cable different. 
      Ports on system and devices can still take USB 2 cables.

    Fall 2011 - available - +$30 for PCIe card.
   
    USB 3.0 on drive bays, external drives about same price as USB 2.0 

General

  Structured as a controlling root hub servicing devices.
    Devices connected to hub are "upstream"

  Capable of 127 devices per root hub.
    All devices must share the bandwidth.  
    (Hubs count as devices)
   
    As more devices added, overhead slows interface.
      7 devices are the practical limit for a particular root hub.
 
    Different speed devices on a single controller do affect each other
      in some aspects of communication. 

    However, newer systems provide each usb port with its own host.

    Maximum cable length 5 Meters for USB 2 and 3 meters for USB 1.
      Protocol requires transmission and response time between hub and device 
        to be < 1500 nSec.  
      Hubs can be used to extend distance for a total of 30 meters.
 
  Multiple root hubs in PCI slots acceptable.

  Plug and Play - auto-configured on the fly.

  Hot swapable - all devices can be on when connnecting.  
    Storage and other intelligent devices need to be unmounted to flush buffers.
    Can be problematic when used with KVM switch.

  Requires support of OS.

  Biggest advantage of USB is that the protocol covers all aspects of
    the technology.  Plugs, cables, hubs, voltage levels, signal encoding 
    protocols, timing, interface circuitry and protocols, etc. 
      More complete than firewire and cheaper.

  Defined device classes provide a grouping where existing generic drivers 
    may exist for a variety of devices, such as printers, audio, HID (mouse), 
    networking, etc.

  Devices may have custom drivers to provide additional functionality.

  Device must be intellegent. At least the usb interface requires a 
    microcontroller that can understand packets sent by root hub 
    controller.