A first look at the role of the protocol layer in USB 3.0.
In USB 3.0, the protocol layer converts requests from the functional layer into transactions consisting of packets, and manages the end-to-end data flow between the host and the device.
Figure 1 The protocol layer of USB 3.0 manages the end-to-end flow of packets (Source: Synopsys)
The protocol layer’s functions include:
- Ensuring end-to-end reliability for packets
- Effective power management
- Effective use of bandwidth
Packets in USB 3.0 begin at the transmitter protocol layer and end at the receiver protocol layer.
The header and data packets include an address (holding the device address, endpoint number, and direction); and a route string describing the path between the host and device.
The application data is embedded in the data packet payload. The host starts all the data transfers, with packets being routed through all the intermediate hubs to the target device.
Devices respond to, or defer, the packet. All packets from the device are routed to the host. Deferred requests are restarted asynchronously by the device. The bus enters low-power mode whenever transactions are not happening.
Types of packet
There are four types of packet:
- Link Management Packet
- Isochronous Timestamp Packet
- Transaction Packet
- Data Packet
In more detail:
The Transaction Packet traverses all the links in the path directly connecting the host and a device, and is used to control the flow of data packets, configure devices and hubs, and so forth.
Transaction packets can also be used for:
- Controlling bursting
- Flow control
- Short packet management
Each downstream packet has a Route String field, a 20bit field which represents a concatenation of port numbers at each tier of the route (0 for US port; 1 to 15 for DS ports).
If you are new to designing with USB, or looking for tips on implementing USB 3.0 IP, attend Synopsys’ “USB 3.0 University.” Topics in this instructional video series range from fuller descriptions of the Link Management Packet, Isochronous Timestamp Packet, Data Packet, to each Transaction Packet’s functionality and more. Click on the links below.