In the version 1.x age, there were two competing HCD implementations, Open Host Controller Interface (OHCI) and Universal Host Controller Interface (UHCI). OHCI was developed by Compaq, Microsoft and National Semiconductor; UHCI was by Intel.
VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. UHCI is more software-driven, making UHCI slightly more processor-intensive than OHCI but cheaper to implement. The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations, which increased cost.
HCD standards are out of the USB specification's scope, and the USB specification does not specify any HCD interfaces. In other words, USB defines the format of data transfer through the port, but not the system by which the USB hardware communicates with the computer it sits in.
During the design phase of USB 2.0, the USB-IF insisted on only one implementation. The USB 2.0 HCD implementation is called the Enhanced Host Controller Interface (EHCI). Only EHCI can support hi-speed (480 Mbit/s) transfers. Most of PCI-based EHCI controllers contain other HCD implementations called 'companion host controller' to support Full Speed (12 Mbit/s) and may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device. Device classes are decided upon by the Device Working Group of the USB Implementers Forum.
USB implements connections to storage devices using a set of standards called the USB mass storage device class (referred to as MSC or UMS). This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices, particularly flash drives. This generality is because many systems can be controlled with the familiar idiom of file manipulation within directories (The process of making a novel device look like a familiar device is also known as extension).
Though most newer computers are capable of booting off USB Mass Storage devices, USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE), Serial ATA (SATA), and SCSI fulfill that role. However, USB has one important advantage in that it is possible to install and remove devices without opening the computer case, making it useful for external drives. Originally conceived and still used today for optical storage devices (CD-RW drives, DVD drives, etc.), a number of manufacturers offer external portable USB hard drives, or empty enclosures for drives, that offer performance comparable to internal drives. These external drives usually contain a translating device that interfaces a drive of conventional technology (IDE, ATA, SATA, ATAPI, or even SCSI) to a USB port. Functionally, the drive appears to the user just like another internal drive. Other competing standards that allow for external connectivity are eSATA and FireWire.
Another use for USB Mass Storage devices is the portable running of software applications without the need of installation on the host computer, eg. Web Browser, VoIP, etc.
Human-interface devices (HIDs)
Mice and keyboards are frequently fitted with USB connectors, but because most PC motherboards still retain PS/2 connectors for the keyboard and mouse as of 2007, they are often supplied with a small USB-to-PS/2 adaptor, allowing usage with either USB or PS/2 interface. There is no logic inside these adaptors: they make use of the fact that such HID interfaces are equipped with controllers that are capable of serving both the USB and the PS/2 protocol, and automatically detect which type of port they are plugged into. Joysticks, keypads, tablets and other human-interface devices are also progressively migrating from
Apple Macintosh computers have been using USB exclusively for all external wired mice and keyboards since January 1999. The original iMac raised public awareness of USB considerably in August 1998, as it discarded legacy ports to use only USB. PCs had USB ports prior to the iMac's introduction, but they were included with a full complement of traditional ports which slowed down USB's adoption. The iMac's influence can be seen in the number of USB peripherals with matching translucent, colored plastic enclosures that were available in the late '90s and early '00s.
USB signaling
USB supports three data rates:
- The Full Speed rate of 12 Mbit/s (1.5 MB/s) is the basic USB data rate defined by USB 1.0. All USB hubs support Full Speed.
- A Low Speed rate of 1.5 Mbit/s (187.5 kB/s) is also defined by USB 1.0. It is very similar to full speed operation except that each bit takes 8 times as long to transmit. It is intended primarily to save cost in low-bandwidth Human Interface Devices (HID) such as keyboards, mice, and joysticks.
- A High-Speed (USB 2.0) rate of 480 Mbit/s (60 MB/s) was introduced in 2001. All high-speed devices are capable of falling back to full-speed operation if necessary.
Experimental data rate:
- A Super-Speed (USB 3.0) rate of 4.8 Gbit/s (600 MB/s). The USB 3.0 specification was released by Intel and its partners in August 2008, according to early reports from CNET news. Products using the 3.0 specification are likely to arrive in 2009 or 2010.
USB signals are transmitted on a twisted pair data cable with 90Ω ±15% impedance, labeled D+ and D−. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high in Full Speed (FS) and Low Speed (LS) modes, and -10–10 mV for low and 360–440 mV for high in High Speed (HS) mode. In FS mode the cable wires are not terminated, but the HS mode has termination of 45Ω to ground, or 90Ω differential to match the data cable impedance.
A USB connection is always between a host or hub at the "A" connector end, and a device or hub's upstream port at the other end. The host includes 15 kΩ pull-down resistors on each data line. When no device is connected, this pulls both data lines low into the so-called "single-ended zero" state (SE0 in the USB documentation), and indicates a reset or disconnected connection.
A USB device pulls one of the data lines high with a 1.5 kΩ resistor. This overpowers one of the pull-down resistors in the host and leaves the data lines in an idle state called "J". The choice of data line indicates a device's speed support; full-speed devices pull D+ high, while low-speed devices pull D− high.
USB data is transmitted by toggling the data lines between the J state and the opposite K state. USB encodes data using the NRZI convention; a 0 bit is transmitted by toggling the data lines from J to K or vice-versa, while a 1 bit is transmitted by leaving the data lines as-is. To ensure a minimum density of signal transitions, USB uses bit stuffing; an extra 0 bit is inserted into the data stream after any appearance of six consecutive 1 bits. Seven consecutive 1 bits is always an error.
A USB frame begins with an 8-bit synchronization sequence 00000001. That is, after the initial idle state J, the data lines toggle KJKJKJKK. The final 1 bit (repeated K state) marks the end of the sync pattern and the beginning of the USB frame proper.
A USB frame's end, called EOP (end-of-packet), is indicated by the transmitter driving 2 bit times of SE0 (D+ and D- both below Vil max) and 1 bit time of J state. After this, the transmitter ceases to drive the D+/D− lines and the aforementioned resistors hold it in the J (idle) state. A receiver may take extra time to decode the SE0 state, and will see the first bit time as a repetition of the last data bit. Since USB frames are always a multiple of 8 bits long, this extra "dribble bit" can be detected and ignored.
A USB bus is reset using a prolonged (10 to 20 milliseconds) SE0 signal.
USB 2.0 devices use a special protocol during reset, called "chirping", to negotiate the High-Speed mode with the host/hub. A Device that is HS capable first connects as an FS device (D+ pulled high), but upon receiving a USB RESET (both D+ and D- driven LOW by host for 10 to 20 mS) it pulls the D- line high. If the host/hub is also HS capable, it chirps (returns alternating J and K states on D- and D+ lines) letting the device know that the hub will operate at High Speed.
Clock tolerance is 480.00 Mbit/s ±500ppm, 12.000 Mbit/s ±2500 ppm, 1.50 Mbit/s ±15000 ppm.
Though Hi-Speed devices are commonly referred to as "USB 2.0" and advertised as "up to 480 Mbit/s", not all USB 2.0 devices are Hi-Speed. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or Hi-Speed after passing a compliance test and paying a licensing fee. All devices are tested according to the latest spec, so recently-compliant Low-Speed devices are also 2.0 devices.
The actual throughput currently (2006) attained with real devices is about two thirds of the maximum theoretical bulk data transfer rate of 53.248 MB/s. Typical hi-speed USB devices operate at lower speeds, often about 3 MB/s overall, sometimes up to 10–20 MB/s.
.... Continue


No comments:
Post a Comment