In order to realize the 480 Mbps bus operation for USB 2.0, a change in electrical specifications was necessary, but without sacrificing compatibility with USB 1.x. Furthermore, a change in protocol was required to allow 12/1.5 Mbps transfers to coexist with 480 Mbps transfers. The new specification also resolves issues that were evident in USB 1.x.

Data transfer at 480 Mbps is a key addition to the USB 2.0 specification. Since USB 2.0 promises compatibility with USB 1.1, it must be able to communicate properly when connected to a USB 1.1 system (whether the device can perform to its full potential is another issues). A device that is capable of supporting data transfer at both 12 Mbps and 480 Mbps is classified as "high-Speed capable." Note that USB 2.0 uses the same cables and connectors as USB 1.x, so there is no way to distinguish a 480 Mbps system from a 12 Mbps system by appearance. For this reason, there is a need to notify the host and function controllers what transfer speed they should be running at. This is a new need under USB 2.0, as USB 1.x distinguished between full-Speed and low-Speed based on the position of the pull-up resistor connected on the function side.

 

Chirp handshake

 

Since the position of the pull-up resistor cannot be used to determine the speed for the high-Speed mode, another method was required. A high-Speed capable device must also be able to operate at 12 Mbps. Taking advantage of this fact, all devices are first connected as a full-Speed device, and the host and function controllers later confirm the usable transfer rate. This process is referred to as a "chirp handshake." Chirp handshake is performed during the USB reset sequence, as illustrated below.

 

Chirp handsake timing

 

Chirp handshake timing

 

At the end of the chirp handshake, the pull-up resistor on the function side is set to OFF, allowing it to function as a USB 2.0 high-Speed buffer.

Get_Descriptor Device_Qualifier and Get_Descriptor Other_Speed_Configuration commands have also been added as software recovery measures for when a high-Speed capable device fails to be recognized as being capable of 480 Mbps communication.

Get_Descriptor Device_Qualifier and Get_Descriptor Other_Speed_Configuration

Under the high-Speed mode, D+ = D- = Low is used for the idle state, so an additional condition is required to distinguish between SUSPEND and USB RESET.
For this reason, when D+ = D- = Low is detected for a specified duration, the pull-up resistor on the function side is enabled as shown below, thus differentiating between SUSPEND and USB RESET.

 

SUSPEND/USBRESET Judgment