USB communications

Last updated

This article provides information about the communications aspects of Universal Serial Bus (USB): Signaling, Protocols, Transactions. USB is an industry-standard used to specify cables, connectors, and protocols that are used for communication between electronic devices. USB ports and cables are used to connect hardware such as printers, scanners, keyboards, mice, flash drives, external hard drives, joysticks, cameras, monitors, and more to computers of all kinds. USB also supports signaling rates from 1.5 Mbit/s (Low speed) to 80 Gbit/s (USB4 2.0) depending on the version of the standard. The article explains how USB devices transmit and receive data using electrical signals over the physical layer, how they identify themselves and negotiate parameters such as speed and power with the host or other devices using standard protocols such as USB Device Framework and USB Power Delivery, and how they exchange data using packets of different types and formats such as token, data, handshake, and special packets.

Contents

Signaling (USB PHY)

Signaling rate (transmission rate)

Mode [1] Abbrev.Signaling rateTypical data ratesIntroduced in
Low speedLS1.5 Mbit/s (187.5 KB/s)USB 1.0
Full speedFS12 Mbit/s (1.5 MB/s)USB 1.0
High speed;
also, Hi-speed
HS480 Mbit/s (60 MB/s)w: 25–30 MB/s
r: 30–42 MB/s
USB 2.0
SuperSpeedSS5 Gbit/s (625 MB/s)w: 70–90 MB/s
r: 90–110 MB/s
USB 3.0
SuperSpeed+SS+10 Gbit/s (1.25 GB/s)USB 3.1
SuperSpeed+SS+20 Gbit/s (2.5 GB/s)USBc3.2
USB4 Gen 3 ?40 Gbit/s (5 GB/s)USB4
USB4 Gen 4 ?80 Gbit/s (10 GB/s)USB4 2.0

The maximum signaling rate in USB 2.0 is 480 Mbit/s (60 MB/s) per controller and is shared amongst all attached devices. Some personal computer chipset manufacturers overcome this bottleneck by providing multiple USB 2.0 controllers within the southbridge.

In practice and including USB protocol overhead, data rates of 320 Mbit/s (38 MB/s) are sustainable over a high-speed bulk endpoint. [2] Throughput can be affected by additional bottlenecks, such as a hard disk drive as seen a in routine testing performed by CNet, where write operations to typical high-speed hard drives sustain rates of 25–30 MB/s, and read operations at 30–42 MB/s; [3] this is 70% of the total available bus bandwidth. For USB 3.0, typical write speed is 70–90 MB/s, while read speed is 90–110 MB/s. [3] Mask tests, also known as eye diagram tests, are used to determine the quality of a signal in the time domain. They are defined in the referenced document as part of the electrical test description for the high speed (HS) mode at 480 Mbit/s.[ citation needed ]

According to a USB-IF chairman, "at least 10 to 15 percent of the stated peak 60 MB/s (480 Mbit/s) of Hi-speed USB goes to overhead—the communication protocol between the card and the peripheral. Overhead is a component of all connectivity standards". [1] Tables illustrating the transfer limits are shown in Chapter 5 of the USB spec.

For isochronous devices like audio streams, the bandwidth is constant and reserved exclusively for a given device. The bus bandwidth therefore only has an effect on the number of channels that can be sent at a time, not the speed or latency of the transmission.

Framing

The host controller divides bus time into 1 ms frames when using low speed (1.5 Mbit/s) and full speed (12 Mbit/s), or 125 μs microframes when using high speed (480 Mbit/s), during which several transactions may take place.[ citation needed ]

Electrical specification

USB signals are transmitted using differential signaling on a twisted-pair data cable with 90  Ω ± 15% characteristic impedance. [6]

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.

Signaling state

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.

Line transition state

The following terminology is used to assist in the technical discussion regarding USB PHY signaling.

SignalLine transition stateDescriptionLow speed
(D− pull-up)
Full speed
(D+ pull-up)
D+D−D+D−
JSame as idle line stateThis is present during a transmission line transition. Alternatively, it is waiting for a new packet.lowhighhighlow
KInverse of J stateThis is present during a transmission line transition.highlowlowhigh
SE0Single-ended zeroBoth D+ and D− is low. This may indicate an end of packet signal or a detached USB device.lowlowlowlow
SE1Single-ended oneThis is an illegal state and should never occur. This is seen as an error.highhighhighhigh
  • The idle line state is when the device is connected to the host with a pull-up on either D+ (for full speed USB 1.x) or D− (for low speed USB 1.x), with transmitter output on both host and device is set to high impedance (hi-Z) (disconnected output).
  • A USB device pulls one of the data lines high with a 1.5 kΩ resistor. This overpowers one of the 15 kΩ pull-down resistors in the host and leaves the data lines in an idle state called J.
  • For USB 1.x, the choice of data line indicates what signal rates the device is capable of:
    • full-bandwidth devices pull D+ high,
    • low-bandwidth devices pull D− high.
  • The K state has opposite polarity to the J state.

Line state (covering USB 1.x and 2.x)

Line state/signalDescriptionLow speedFull speedHigh speed
DetachedNo device detected. Both lines are pulled down by 15 kΩ pull-down resistors on the host side.SE0 ≥ 2 μs
ConnectUSB device pulls up either D+ or D− to wake the host from the detached line state. This starts the USB enumeration process. This sets the idle state.D− pull-upD+ pull-upAs full speed, then chirp in reset
Idle / JHost and device transmitter at Hi-Z. Sensing line state in case of detached state.As detached or connect state.
SyncStart of a packet line transition pattern.KJKJKJKK15 × KJ, then KK, for 32 symbols total.
EOPEnd of packet line transition pattern.SE0, SE0, J
ResetReset USB device to a known initial state.SE0 ≥ 2.5 ms
SuspendPower down the device, such that it would only consume 0.5 mA from VBUS. Exits this state only after a resume or reset signal is received. To avoid this state a SOF packet (high speed) or a keep alive (low speed) signal is given.J ≥ 3 ms
Resume (host)Host wants to wake device up.K ≥ 20 ms then EOP pattern
Resume (device)Device wants to wake up. (Must be in idle for at least 5 ms.)Device drives K ≥ 1 ms
Host then sends a resume signal.
Keep aliveHost wants to tell low speed device to stay awake.EOP pattern once every millisecond.

Transmission

USB data is transmitted by toggling the data lines between the J state and the opposite K state. USB encodes data using the NRZI line coding:

To ensure that there are enough signal transitions for clock recovery to occur in the bitstream, a bit stuffing technique is applied to the data stream: an extra 0 bit is inserted into the data stream after any occurrence of six consecutive 1 bits. (Thus ensuring that there is a 0 bit to cause a transmission state transition.) Seven consecutively received 1 bits are always an error. For USB 3.0, additional data transmission encoding is used to handle the higher signaling rates required.

Transmission example on a full-speed device

Example of a Negative Acknowledge packet transmitted by USB 1.1 full-speed device when there is no more data to read. It consists of the following fields: clock synchronization byte, type of packet, and end of packet. Data packets would have more information between the type of packet and end of packet. USB signal example.svg
Example of a Negative Acknowledge packet transmitted by USB 1.1 full-speed device when there is no more data to read. It consists of the following fields: clock synchronization byte, type of packet, and end of packet. Data packets would have more information between the type of packet and end of packet.
Synchronization Pattern
A USB packet 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. For high-bandwidth USB, the packet begins with a 32-bit synchronization sequence.
End of Packet (EOP)
EOP is indicated by the transmitter driving 2 bit times of SE0 (D+ and D− both below max.) and 1 bit time of J state. After this, the transmitter ceases to drive the D+/D− lines and the aforementioned pull-up resistors hold it in the J (idle) state. Sometimes skew due to hubs can add as much as one bit time before the SE0 of the end of packet. This extra bit can also result in a bit stuff violation if the six bits before it in the CRC are 1s. This bit should be ignored by receiver.
Bus Reset
A USB bus is reset using a prolonged (10 to 20 milliseconds) SE0 signal.

High speed negotiation

A special protocol during reset, called chirping, is used to negotiate the high speed mode with a host or hub. A device that is high speed capable first connects as a full speed 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, known as chirp K. This indicates to the host that the device is high bandwidth. 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 operates at high bandwidth. The device has to receive at least three sets of KJ chirps before it changes to high speed terminations and begins high speed signaling. Because SuperSpeed and beyond uses wiring that is separate and additional to that used by earlier modes, such bandwidth negotiation is not required.

Clock tolerance is 480.00±0.24 Mbit/s, 12.00±0.03 Mbit/s, and 1.50±0.18 Mbit/s.

USB 3.0

USB 3 uses tinned copper stranded AWG-28 cables [7] with 90±7 Ω impedance for its high-speed differential pairs. Electrical signalling uses a linear feedback shift register and 8b/10b encoding with spread spectrum clocking, sent at a nominal 1 Volt with a 100 mV receiver threshold; the receiver uses equalization training. Packet headers are protected with CRC-16, while data payload is protected with CRC-32. Power up to 3.6 W may be used. One unit load in Super Speed mode is equal to 150 mA. [8]

Protocol layer

During USB communication, data is transmitted as 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, 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. (A PID byte contains at most four consecutive 1 bits, and thus never needs bit-stuffing, even when combined with the final 1 bit in the sync field. However, trailing 1 bits in the PID may require bit-stuffing within the first few bits of the payload.)

USB PID bytes
TypePID value
(msb-first)
Transmitted byte
(lsb-first)
NameDescription
Reserved00000000 1111
Token10000001 1110SPLITHigh-bandwidth (USB 2.0) split transaction
01000010 1101PINGCheck if endpoint can accept data (USB 2.0)
Special11000011 1100PRELow-bandwidth USB preamble
HandshakeERRSplit transaction error (USB 2.0)
00100100 1011ACKData packet accepted
10100101 1010NAKData packet not accepted; please retransmit
01100110 1001NYETData not ready yet (USB 2.0)
11100111 1000STALLTransfer impossible; do error recovery
Token00011000 0111OUTAddress for host-to-device transfer
10011001 0110INAddress for device-to-host transfer
01011010 0101SOFStart of frame marker (sent each ms)
11011011 0100SETUPAddress for host-to-device control transfer
Data00111100 0011DATA0Even-numbered data packet
10111101 0010DATA1Odd-numbered data packet
01111110 0001DATA2Data packet for high-bandwidth isochronous transfer (USB 2.0)
11111111 0000MDATAData packet for high-bandwidth isochronous transfer (USB 2.0)

Packets come in three basic types, each with a different format and CRC (cyclic redundancy check):

Handshake packets

FieldSyncPIDEOP
Bits8
SignalKJ KJ KJ KKXXXX XXXXSE0 SE0 J

Handshake packets consist of only a single PID byte, and are generally sent in response to data packets. Error detection is provided by transmitting four bits, which represent the packet type twice, in a single PID byte using complemented form. The three basic types are ACK, indicating that data was successfully received; NAK, indicating that the data cannot be received and should be retried; and STALL, indicating that the device has an error condition and cannot transfer data until some corrective action (such as device initialization) occurs. [9] [10]

USB 2.0 added two additional handshake packets: NYET and ERR. NYET indicates that a split transaction is not yet complete, while ERR handshake indicates that a split transaction failed. A second use for a NYET packet is to tell the host that the device has accepted a data packet, but cannot accept any more due to full buffers. This allows a host to switch to sending small PING tokens to inquire about the device's readiness, rather than sending an entire unwanted DATA packet just to elicit a NAK. [9] [10]

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.

Token packets

Token packets consist of a PID byte followed by two payload bytes: 11 bits of address and a five-bit CRC. Tokens are only sent by the host, never a device. Below are tokens present from USB 1.0:

USB 2.0 also added a PING Token and a larger three-byte SPLIT Token:

OUT, IN, SETUP, and PING token packets

FieldSyncPIDADDRENDPCRC5EOP
Bits8745
SignalKJ KJ KJ KKXXXX XXXXXXXX XXXXXXXXXXXXSE0 SE0 J
  • ADDR: Address of USB device (maximum of 127 devices).
  • ENDP: Select endpoint hardware source/sink buffer on device. (E.g. PID OUT would be for sending data from host source buffer into the USB device sink buffer.)
    • By default, all USB devices must at least support endpoint buffer 0 (EP0). This is since EP0 is used for device control and status information during enumeration and normal operation.


SOF: Start-of-frame

FieldSyncPIDFrame numberCRC5EOP
Bits8115
SignalKJ KJ KJ KKXXXX XXXXXXXX XXXX XXXXXXXXSE0 SE0 J

Use: The first transaction in each (micro)frame. An SOF allows endpoints to identify the start of the (micro)frame and synchronize internal endpoint clocks to the host.

  • Frame number: This is a frame number that is incremented by the host periodically to allow endpoints to identify the start of the frame (or microframe) and synchronize internal endpoint clocks to the host clock.

SSPLIT and CSPLIT: Start-split transaction and complete split transaction

S/C modeField
0, SSPLITSyncPIDHub
address
S/CPort
number
SEEPCRC5EOP
1, CSPLITU
Bits87171125
SignalKJ KJ KJ KKXXXX XXXXXXXX XXXXXXXX XXXXXXXXXXXXSE0 SE0 J
  • S/C, Start, or complete:
    • 0, SSPLIT, Start split transaction
    • 1, CSPLIT, Complete split transaction
  • S: 1, Low speed; 0, High speed
  • E, End of full speed payload
  • U, U bit is reserved/unused and must be reset to zero (0 B)
  • EP, End point: type 00, control; 01, isochronous; 10, bulk; and 11, interrupt.

Data packets

FieldSyncPIDDATACRC16EOP
Bits80–819216
SignalKJ KJ KJ KKXXXX XXXX(XXXX XXXX) × byteCountXXXX XXXX XXXX XXXXSE0 SE0 J

A data packet consists of the PID followed by 0–1,024 bytes of data payload (up to 1,024 bytes for high-speed devices, up to 64 bytes for full-speed devices, and at most eight bytes for low-speed devices), [12] and a 16-bit CRC.

There are two basic forms of data packet, DATA0 and DATA1. A data packet must always be preceded by an address token, and is 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.

If the data is corrupted while transmitted or received, the CRC check fails. When this happens, the receiver does not generate an ACK, which makes the sender resend the packet. [13]

When a device is reset with a SETUP packet, it expects an 8-byte DATA0 packet next.

USB 2.0 added DATA2 and MDATA packet types as well. They are used only by high-bandwidth devices doing high-bandwidth isochronous transfers that must transfer more than 1024 bytes per 125 μs micro frame (8,192 kB/s).

PRE packet (tells hubs to temporarily switch to low speed mode)

A hub is able to support low bandwidth devices mixed with other speed device via a special PID value, PRE. This is required as a USB hub functions as a very simple repeater, broadcasting the host message to all connected devices regardless if the packet was for it or not. This means in a mixed speed environment, there is a potential danger that a low speed could misinterpret a high or full speed signal from the host.

To eliminate this danger, if a USB hub detects a mix of high speed or full speed and low speed devices, it, by default, disables communication to the low speed device unless it receives a request to switch to low speed mode. On reception of a PRE packet however, it temporarily re-enables the output port to all low speed devices, to allow the host to send a single low speed packet to low speed devices. After the low speed packet is sent, an end of packet (EOP) signal tells the hub to disable all outputs to low speed devices again.

Since all PID bytes include four 0 bits, they leave the bus in the full-bandwidth K state, which is the same as the low-bandwidth J state. It is followed by a brief pause, during which hubs enable their low-bandwidth outputs, already idling in the J state. Then a low-bandwidth packet follows, beginning with a sync sequence and PID byte, and ending with a brief period of SE0. Full-bandwidth devices other than hubs can simply ignore the PRE packet and its low-bandwidth contents, until the final SE0 indicates that a new packet follows.

Full speed preamble, PREHub setup enable output
to low speed devices.
Low speed packet exampleHub disable output
to low speed devices.
FieldSyncPID (PRE)SyncPIDADDRENDPCRC5EOP
Bits88745
SignalKJ KJ KJ KKXXXX XXXXKJ KJ KJ KKXXXX XXXXXXXX XXXXXXXXXXXXSE0 SE0 J

Transactions

USB packets are organized into transactions, consisting of a token packet, a conditional data packet, and a handshake packet.

OUT transaction

OUT transaction (3 packets total)
HostHostDevice
Packet PIDOUTDATAxACK
Packet typeTokenDataHandshake
DescriptionTell device on
ADDRx
to start listening for incoming data packet on endpoint
EPx.
Tell USB device the data that you want to send to it.Device tells the host that it has successfully received and loaded the data payload to buffer EPx.

IN transaction

IN transaction (3 packets total)
HostDeviceHost
Packet PIDINDATAxACK
Packet typeTokenDataHandshake
DescriptionTell device on
ADDRx
to send any data that it has on its endpoint buffer
EPx.
Device checks its EPx endpoint buffer and sends the requested data to host.Host lets device know that it has successfully received the payload and has loaded the payload into its EPx buffer.

SETUP transaction

This is used for device enumeration and connection management and informs the device that the host would like to start a control transfer exchange.

SETUP transaction (3 packets total)
HostHostDevice
Packet PIDSETUPDATA0ACK
Packet typeTokenDataHandshake
DescriptionTell device on
ADDRx
to start setup mode and be ready for a data packet.
Send to device the 8 bytes long setup packet.Device acknowledge reception of SETUP data and updates its setup state machine.

Setup packet

A setup transaction transfers an 8-byte setup packet to the device. The setup packet encodes the direction and length of any following data packets.

FieldOffsetBytesBitsDescription
bmRequestType010–4Recipient: USB software component being addressed
0 = Device
1 = Interface
2 = Endpoint
3 = Other
4–31 (reserved)
5–6Type: Used with bRequest byte
0 = Standard (supported by all USB devices)
1 = Class (Depends on USB device class)
2 = Vendor
3 (reserved)
7Direction:
0 = Host to device, or no data transfer (wLength == 0)
1 = Device to host (wLength > 0 bytes of status returned)
bRequest11Setup command: When Recipient = 0 (Device) and Type = 0 (Standard), defined requests are:
0 = GET_STATUS (2-byte read)
1 = CLEAR_FEATURE (0 bytes; feature selected by wValue)
3 = SET_FEATURE (0 bytes; feature selected by wValue)
5 = SET_ADDRESS (0 bytes; address in wValue)
6 = GET_DESCRIPTOR (wLength-byte read; descriptor type & index in wValue)
7 = SET_DESCRIPTOR (wLength-byte write; descriptor type & index in wValue)
8 = GET_CONFIGURATION (1-byte read)
9 = SET_CONFIGURATION (0 bytes; configuration selected by wValue)
wValue22Parameter value: Interpretation depends on bRequest
wIndex42Secondary parameter: Specifies the Interface or Endpoint this request is addressed to. For string descriptors (Recipient = Device), this is the language code.
wLength62Data transfer length: The number of bytes to be transferred after the setup packet.

Control transfer exchange

The control transfer exchange consist of three distinct stages, each consisting of their own transactions:

This allows the host to perform bus management action like enumerating new USB devices via retrieving the descriptors of the new devices. Retrieval of the descriptors would especially allow for determining the USB Class, VID, and PID, which are often used for determining the correct USB driver for the device.

Also, after the descriptors is retrieved, the host performs another control transfer exchange, but instead to set the address of the USB device to a new ADDRx.

See also

Related Research Articles

<span class="mw-page-title-main">Ethernet</span> Computer networking technology

Ethernet is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 1983 as IEEE 802.3. Ethernet has since been refined to support higher bit rates, a greater number of nodes, and longer link distances, but retains much backward compatibility. Over time, Ethernet has largely replaced competing wired LAN technologies such as Token Ring, FDDI and ARCNET.

Network throughput refers to the rate of message delivery over a communication channel, such as Ethernet or packet radio, in a communication network. The data that these messages contain may be delivered over physical or logical links, or through network nodes. Throughput is usually measured in bits per second, and sometimes in data packets per second or data packets per time slot.

<span class="mw-page-title-main">USB</span> Standard for computer data connections

Universal Serial Bus (USB) is an industry standard that allows data exchange and delivery of power between many types of electronics. It specifies its architecture, in particular its physical interface, and communication protocols for data transfer and power delivery to and from hosts, such as personal computers, to and from peripheral devices, e.g. displays, keyboards, and mass storage devices, and to and from intermediate hubs, which multiply the number of a host's ports.

<span class="mw-page-title-main">I²C</span> Serial communication bus

I2C (Inter-Integrated Circuit; pronounced as “eye-squared-see” or “eye-two-see”), alternatively known as I2C or IIC, is a synchronous, multi-controller/multi-target (historically-termed as master/slave), single-ended, serial communication bus invented in 1982 by Philips Semiconductors. It is widely used for attaching lower-speed peripheral ICs to processors and microcontrollers in short-distance, intra-board communication.

<span class="mw-page-title-main">PCI Express</span> Computer expansion bus standard

PCI Express, officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common motherboard interface for personal computers' graphics cards, sound cards, hard disk drive host adapters, SSDs, Wi-Fi and Ethernet hardware connections. PCIe has numerous improvements over the older standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot-swap functionality. More recent revisions of the PCIe standard provide hardware support for I/O virtualization.

<span class="mw-page-title-main">CAN bus</span> Standard for serial communication between devices without host computer

A controller area network (CAN) is a vehicle bus standard designed to enable efficient communication primarily between electronic control units (ECUs). Originally developed to reduce the complexity and cost of electrical wiring in automobiles through multiplexing, the CAN bus protocol has since been adopted in various other contexts. This broadcast-based, message-oriented protocol ensures data integrity and prioritization through a process called arbitration, allowing the highest priority device to continue transmitting if multiple devices attempt to send data simultaneously, while others back off. Its reliability is enhanced by differential signaling, which mitigates electrical noise. Common versions of the CAN protocol include CAN 2.0, CAN FD, and CAN XL which vary in their data rate capabilities and maximum data payload sizes.

The Parallel Line Internet Protocol (PLIP) is a computer networking protocol for direct computer-to-computer communications using the parallel port normally used for connections to a printer.

Throughput of a network can be measured using various tools available on different platforms. This page explains the theory behind what these tools set out to measure and the issues regarding these measurements.

<span class="mw-page-title-main">RapidIO</span> High-speed interconnect technology

The RapidIO architecture is a high-performance packet-switched electrical connection technology. It supports messaging, read/write and cache coherency semantics. Based on industry-standard electrical specifications such as those for Ethernet, RapidIO can be used as a chip-to-chip, board-to-board, and chassis-to-chassis interconnect.

<span class="mw-page-title-main">Wireless USB</span> Wireless radio communication protocol

Wireless USB (Universal Serial Bus) is a short-range, high-bandwidth wireless radio communication protocol created by the Wireless USB Promoter Group, which is intended to increase the availability of general

<span class="mw-page-title-main">USB hub</span> Device that expands a single USB port into several

A USB hub is a device that expands a single Universal Serial Bus (USB) port into several so that there are more ports available to connect devices to a host system, similar to a power strip. All devices connected through a USB hub share the bandwidth available to that hub.

<span class="mw-page-title-main">DisplayPort</span> Digital display interface

DisplayPort (DP) is a proprietary digital display interface developed by a consortium of PC and chip manufacturers and standardized by the Video Electronics Standards Association (VESA). It is primarily used to connect a video source to a display device such as a computer monitor. It can also carry audio, USB, and other forms of data.

Protocol spoofing is used in data communications to improve performance in situations where an existing protocol is inadequate, for example due to long delays or high error rates.

The Microcom Networking Protocols, almost always shortened to MNP, is a family of error-correcting protocols commonly used on early high-speed modems. Originally developed for use on Microcom's own family of modems, the protocol was later openly licensed and used by most of the modem industry, notably the "big three", Telebit, USRobotics and Hayes. MNP was later supplanted by V.42bis, which was used almost universally starting with the first V.32bis modems in the early 1990s.

<span class="mw-page-title-main">Token Ring</span> Technology for computer networking

Token Ring is a physical and data link layer computer networking technology used to build local area networks. It was introduced by IBM in 1984, and standardized in 1989 as IEEE 802.5. It uses a special three-byte frame called a token that is passed around a logical ring of workstations or servers. This token passing is a channel access method providing fair access for all stations, and eliminating the collisions of contention-based access methods.

<span class="mw-page-title-main">USB 3.0</span> Third major version of the Universal Serial Bus standard

Universal Serial Bus 3.0, marketed as SuperSpeed USB, is the third major version of the Universal Serial Bus (USB) standard for interfacing computers and electronic devices. It was released in November 2008. The USB 3.0 specification defined a new architecture and protocol, named SuperSpeed, which included a new lane for a new signal coding scheme providing full-duplex data transfers that physically required five additional wires and pins, while preserving the USB 2.0 architecture and protocols and therefore keeping the original four pins and wires for the USB 2.0 backward-compatibility, resulting in nine wires in total and nine or ten pins at connector interfaces. The new transfer rate, marketed as SuperSpeed USB (SS), can transfer signals at up to 5 Gbit/s with nominal data rate of 500 MB/s after encoding overhead, which is about 10 times faster than High-Speed. USB 3.0 Type-A and B connectors are usually blue, to distinguish them from USB 2.0 connectors, as recommended by the specification. and by the initials SS.

In mobile-telephone technology, the UniPro protocol stack follows the architecture of the classical OSI Reference Model. In UniPro, the OSI Physical Layer is split into two sublayers: Layer 1 and Layer 1.5 which abstracts from differences between alternative Layer 1 technologies. The actual physical layer is a separate specification as the various PHY options are reused in other MIPI Alliance specifications.

The eXtensible Host Controller Interface (xHCI) is a technical specification that provides a detailed framework for the functioning of a computer's host controller for Universal Serial Bus (USB). Known alternately as the USB 3.0 host controller specification, xHCI is designed to be backward compatible, supporting a wide range of USB devices from older USB 1.x to the more recent USB 3.x versions.

CAN FD is a data-communication protocol used for broadcasting sensor data and control information on 2 wire interconnections between different parts of electronic instrumentation and control system. This protocol is used in modern high performance vehicles.

References

  1. 1 2 "USB 2.0's Real Deal". News & Trends. PC World. 28 February 2002. Archived from the original on 5 December 2010.
  2. Zhou, Jing; Qi, Xin; Su, Xin; Yang, Haibin (2012-08-08). "Investigation on USB 2.0 in software-defined radio". 7th International Conference on Communications and Networking in China. pp. 833–837. doi:10.1109/ChinaCom.2012.6417600. ISBN   978-1-4673-2699-5. S2CID   17421546.
  3. 1 2 "Seagate FreeAgent GoFlex Ultra-portable" (review). CNet. Archived from the original on 14 April 2011. Retrieved 22 May 2011.
  4. "NEC ready to sample 'world's first' USB 3.0 controller chip". Archived from the original on 23 May 2009. Retrieved 15 June 2009.
  5. "When will USB 3.0 products hit the market?". Archived from the original on 30 April 2009. Retrieved 11 May 2009.
  6. "USB in a NutShell—Chapter 2—Hardware". BeyondLogic.org. Archived from the original on 20 August 2007. Retrieved 25 August 2007.
  7. "Technical Specifications of the USB 3.0 SuperSpeed Cables". Archived from the original on 14 April 2011.
  8. "Universal Serial Bus 3.0 Specification, Rev 1.0 November 12, 2008" (PDF). Archived from the original (PDF) on 13 November 2013.
  9. 1 2 "USB Made Simple, Part 3. Data Flow". usbmadesimple.co.uk. 2008. Archived from the original on 5 October 2014. Retrieved 17 August 2014.
  10. 1 2 "USB in a NutShell, Chapter 3. USB Protocols". beyondlogic.org. 17 September 2010. Archived from the original on 5 August 2014. Retrieved 17 August 2014.
  11. "Part 7, High Speed Transactions: Ping Protocol". UsbMadeSimple.co.uk. 2008. Archived from the original on 3 October 2014. Retrieved 16 August 2014.
  12. "USB in a Nut Shell". Chapter 4 - Endpoint Types. Archived from the original on 2 September 2014. Retrieved 5 September 2014.
  13. "Debugging Common USB Issues". Archived from the original on 15 June 2013. Retrieved 5 June 2013.
  14. 1 2 "USB in a NutShell - Chapter 4 - Endpoint Types". BeyondLogic.org. Retrieved 2023-01-12.
  15. "Universal Serial Bus 2.0 Specification, Rev 2.0". USB-IF. 27 April 2000. Archived from the original on 3 September 2019. Retrieved 12 January 2023. Alt URL