Design Article
Comment
Onwaeke
Please I enjoyed the article and it is very educative to me. I appreciate the ...
Introduction to USB—Part III
Christian Legare, Micrium
12/12/2012 10:51 AM EST
Introduction to USB--Part 3, Page 2.
A host needs to check the following three items before authorizing a device on the bus:
If these three elements are not met, the host will not enable the device on the bus.
When the host transmits a packet of data, the packet is sent to every device connected to a given port. Only one device, the addressed one, actually accepts the data. And only one device at a time is able to transmit data to the host, in response to a direct request from the host. Each hub in the chain repeats and resynchronizes the data as it relays it.
As stated above a maximum of 127 devices (including hubs) may be connected. This is because the address field in a packet is 7 bits long, and the address 0 cannot be used as it has special significance. (In most systems the bus would be running out of bandwidth, or other resources, long before the 127 devices was reached.)
Although host controllers that adhere to the OHCI, UHCI and EHCI standards are common on desktops and laptop computers, many of the MCUs that feature integrated USB host controllers do not follow these standards. Sometimes, the host controller does not include certain hardware-managed operations that are defined in the standard, or sometimes, additional hardware is added to the MCU for customized automation. The result is that standard USB host drivers cannot be used with such MCUs, which complicates product development.
1-5-4 DEVICE STATES
The USB 2.0 specification defines six different states and is listed in Table 1-7.

1-5-5 HOST CONTROLLERS
On typical desktop/laptop today, we can typically find multiple USB ports. These ports are driven by USB host controllers.

Each host controller can drive one bus by itself (up to 127 devices on one host port). It can provide current up to 500 mA at 5 Volts. The host controller is responsible for complete bus management. When the host controller does not recognize a device, it can reset the device. The controller can shut down USB ports to save power.
A host needs to check the following three items before authorizing a device on the bus:
- Can it supply the power required by the device?
- Does it have the driver matching the configuration requirements provided by the device during enumeration?
- Does the bus have sufficient bandwidth to satisfy the requirements of the device?
If these three elements are not met, the host will not enable the device on the bus.
When the host transmits a packet of data, the packet is sent to every device connected to a given port. Only one device, the addressed one, actually accepts the data. And only one device at a time is able to transmit data to the host, in response to a direct request from the host. Each hub in the chain repeats and resynchronizes the data as it relays it.
As stated above a maximum of 127 devices (including hubs) may be connected. This is because the address field in a packet is 7 bits long, and the address 0 cannot be used as it has special significance. (In most systems the bus would be running out of bandwidth, or other resources, long before the 127 devices was reached.)
Although host controllers that adhere to the OHCI, UHCI and EHCI standards are common on desktops and laptop computers, many of the MCUs that feature integrated USB host controllers do not follow these standards. Sometimes, the host controller does not include certain hardware-managed operations that are defined in the standard, or sometimes, additional hardware is added to the MCU for customized automation. The result is that standard USB host drivers cannot be used with such MCUs, which complicates product development.
1-6 USB PACKETS
The fundamental element of communications is the packet.

A packet is made of three parts: SYNC, INFORMATION, and END-OF-PACKET (EOP).

The last two bits indicate where the PID fields starts.
INFORMATION
The INFORMATION field varies from 1 byte up to 1024 bytes
- Packet Identifier (PID) – 4bits + complement
- Payload and CRC – Not present in handshake packets
EOP
End of packet. The EOP field is indicated by having both D+ and D- low for 3 bits (full-/low-speed) or 8 bits (high-speed).Next: USB Packet Types
µC/USB Device: Universal Serial Bus Device Stack for the Renesas RX63N, Chapter 2, by Christian Legare, is excerpted with permission. The text is available at Micrium.
Navigate to related information


Onwaeke
1/3/2013 3:58 PM EST
Please I enjoyed the article and it is very educative to me. I appreciate the article.
Sign in to Reply