2008年11月30日星期日

Universal Serial Bus


USB mass-storage

A flash drive, a typical USB mass-storage device.
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 MIDI, PC game port, and PS/2 connectors to USB.
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 ±500 ppm, 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

USB packets
USB communication takes the form of packets. Initially, all packets are sent from the host, via the root hub and possibly more hubs, to devices. Some of those packets direct a device to send some packets in reply.
After the sync field described above, all packets are made of 8-bit bytes, transmitted least-significant bit first. The first byte is a packet identifier (PID) byte. The PID is actually 4 bits; the byte consists of the 4-bit PID followed by its bitwise complement. This redundancy helps detect errors. (Note also that a PID byte contains at most four consecutive 1 bits, and thus will never need bit-stuffing, even when combined with the final 1 bit in the sync byte. However, the OUT PID byte ends with three consecutive 1 bits, so if the following USB device address begins with three 1 bits, bit-stuffing will be required.)
Packets come in three basic types, each with a different format and CRC (cyclic redundancy check):

Handshake packets
Handshake packets consist of nothing but a PID byte, and are generally sent in response to data packets. The three basic types are ACK, indicating that data was successfully received, NAK, indicating that the data cannot be received at this time and should be retried, and STALL, indicating that the device has an error and will never be able to successfully transfer data until some corrective action (such as device initialization) is performed.
USB 2.0 added two additional handshake packets, NYET which indicates that a split transaction is not yet complete, and an ERR handshake to indicate that a split transaction failed.
The only handshake packet the USB host may generate is ACK; if it is not ready to receive data, it should not instruct a device to send any.

Token packets
Token packets consist of a PID byte followed by 11 bits of address and a 5-bit CRC. Tokens are only sent by the host, never a device.--
IN and OUT tokens contain a 7-bit device number and 4-bit function number (for multifunction devices) and command the device to transmit DATAx packets, or receive the following DATAx packets, respectively.
An IN token expects a response from a device. The response may be a NAK or STALL response, or a DATAx frame. In the latter case, the host issues an ACK handshake if appropriate.
An OUT token is followed immediately by a DATAx frame. The device responds with ACK, NAK, or STALL, as appropriate.
SETUP operates much like an OUT token, but is used for initial device setup.
Every 1 ms (12000 full-speed bit times), the USB host transmits a special SOF (start of frame) token, containing an 11-bit incrementing frame number in place of a device address. This is used to synchronize isochronous data flows. High-speed USB 2.0 devices receive 7 additional duplicate SOF tokens per frame, each introducing a 125 µs "microframe".
USB 2.0 added a PING token, which asks a device if it is ready to receive an OUT/DATA packet pair. The device responds with ACK, NAK, or STALL, as appropriate. This avoids the need to send the DATA packet if the device knows that it will just respond with NAK.
USB 2.0 also added a larger SPLIT token with a 7-bit hub number, 12 bits of control flags, and a 5-bit CRC. This is used to perform split transactions. Rather than tie up the high-speed USB bus sending data to a slower USB device, the nearest high-speed capable hub receives a SPLIT token followed by one or two USB packets at high speed, performs the data transfer at full or low speed, and provides the response at high speed when prompted by a second SPLIT token. The details are complex; see the USB specification.

Data packets
There are two basic data packets, DATA0 and DATA1. Both consist of a DATAx PID field, 0–1023 bytes of data payload (up to 1024 in high speed, at most 8 at low speed), and a 16-bit CRC. They must always be preceded by an address token, and are usually followed by a handshake token from the receiver back to the transmitter. The two packet types provide the 1-bit sequence number required by Stop-and-wait ARQ. If a USB host does not receive a response (such as an ACK) for data it has transmitted, it does not know if the data was received or not; the data might have been lost in transit, or it might have been received but the handshake response was lost.
To solve this problem, the device keeps track of the type of DATAx packet it last accepted. If it receives another DATAx packet of the same type, it is acknowledged but ignored as a duplicate. Only a DATAx packet of the opposite type is actually received.
When a device is reset with a SETUP packet, it expects a DATA0 packet next.
USB 2.0 added DATA2 and MDATA packet types as well. They are used only by high-speed devices doing high-bandwidth isochronous transfers which need to transfer more than 1024 bytes per 125 µs "microframe" (8192 kB/s).

PRE "packet"
Low-speed devices are supported with a special PID value, PRE. This marks the beginning of a low-speed packet, and is used by hubs which normally do not send full-speed packets to low-speed devices. Since all PID bytes include four 0 bits, they leave the bus in the full-speed K state, which is the same as the low-speed J state. It is followed by a brief pause during which hubs enable their low-speed outputs, already idling in the J state, then a low-speed packet follows, beginning with a sync sequence and PID byte, and ending with a brief period of SE0. Full-speed devices other than hubs can simply ignore the PRE packet and its low-speed contents, until the final SE0 indicates that a new packet follows.

USB protocol analyzers
Due to the complexities of the USB protocol, USB protocol analyzers are invaluable tools to USB device developers. USB analyzers are able to capture the data on USB and display information from low-level bus states to high-level data packets and class-level information.

USB connector properties

Series "A" plug and receptacle.
The connectors specified by the USB committee were designed to support a number of USB's underlying goals, and to reflect lessons learned from the varied menagerie of connectors then in service.

Usability
It is difficult to incorrectly attach a USB connector. Connectors cannot be plugged-in upside down, and it is clear from the appearance and kinesthetic sensation of making a connection when the plug and socket are correctly mated. However, it is not obvious at a glance to the inexperienced user (or to a user without sight of the installation) which way around the connector goes, thus it is often necessary to try both ways. More often than not, however, the side of the connector with the trident logo should be on top.
Only a moderate insertion/removal force is needed (by specification). USB cables and small USB devices are held in place by the gripping force from the receptacle (without the need for the screws, clips, or thumbturns that other connectors require). The force needed to make or break a connection is modest, allowing connections to be made in awkward circumstances or by those with motor disabilities.
The connectors enforce the directed topology of a USB network. USB does not support cyclical networks, thus the connectors from incompatible USB devices are themselves incompatible. Unlike other communications systems (e.g. RJ-45 cabling) gender-changers are almost never used, making it difficult to create a cyclic USB network.

USB extension cord

Durability
The connectors are designed to be robust. Many previous connector designs were fragile, with pins or other delicate components prone to bending or breaking, even with the application of only very modest force. The electrical contacts in a USB connector are protected by an adjacent plastic tongue, and the entire connecting assembly is usually further protected by an enclosing metal sheath. As a result USB connectors can safely be handled, inserted, and removed, even by a small child.
The connector construction always ensures that the external sheath on the plug contacts with its counterpart in the receptacle before the four connectors within are connected. This sheath is typically connected to the system ground, allowing otherwise damaging static charges to be safely discharged by this route (rather than via delicate electronic components). This means of enclosure also means that there is a (moderate) degree of protection from electromagnetic interference afforded to the USB signal while it travels through the mated connector pair (this is the only location when the otherwise twisted data pair must travel a distance in parallel). In addition, the power and common connections are made after the system ground but before the data connections. This type of staged make-break timing allows for safe hot-swapping and has long been common practice in the design of connectors in the aerospace industry.
The newer Micro-USB receptacles are designed to allow up to 10,000 cycles of insertion and exertion between the receptacle and plug, compared to 500 for the standard USB and Mini-USB receptacle. This is accomplished by adding a locking device and by moving the leaf-spring connector from the jack to the plug, so that the most-stressed part is on the cable side of the connection. This change was made so that the connector on the (relatively inexpensive) cable would bear the most wear instead of the micro-USB device.

Compatibility
The USB standard specifies relatively loose tolerances for compliant USB connectors, intending to minimize incompatibilities in connectors produced by different vendors (a goal that has been very successfully achieved). Unlike most other connector standards, the USB specification also defines limits to the size of a connecting device in the area around its plug. This was done to prevent a device from blocking adjacent ports due to its size. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does.
Two-way communication is also possible. In general, cables have only plugs, and hosts and devices have only receptacles: hosts having type-A receptacles and devices type-B. Type-A plugs only mate with type-A receptacles, and type-B with type-B. However, an extension to USB called USB On-The-Go allows a single port to act as either a host or a device — chosen by which end of the cable plugs into the socket on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This facility targets units such as PDAs where the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance.

fsa bicycle parts


PTZ Dome Camera


14 ibook battery


bronze marine hardware


countdown clock timer


Water Pump Plier


Air Ratchet Wrench


Metal Oxide Varistor


volvo scan tool


aluminum oxide abrasive


tongkat ali extract


Glue Chip Glass


textile machinery spares


SNAP Lock Punch


Cardboard Counter Display


Dpdt Rocker Switch


C Band LNB


wrench ratchet set


Pin Tumbler Lock


CCD Module Camera


indoor dome camera


copper master alloy


Ku Satellite Dish


zoom stereo microscope


abb circuit breaker


Reverse Parking Sensor


digital thermometer waterproof


medical ozone generator


foil stamp machine


Car Wheel Balancer

没有评论: