All USB data transfers are initiated by the USB host. The host controls communication time by maintaining frame intervals. At the beginning of each frame, the host sends out a Start of Frame (SOF) sequence on the USB data line. The frame interval is determined by the specified USB speed. One of the capabilities required for USB compliance certification is for the host to accurately issue the SOF.
At low or full speed, the SOF interval is 1 ms, while at high speed, it is 125us.
The USB host and devices engage in transactional communication during the frame intervals.

The USB host receives data from the device #
If a device’s program wishes to communicate with the host, it places a message in the IN endpoint. This message remains in the IN endpoint until the host initiates a READ transaction. The READ transaction results in sending the content of the IN endpoint to the host.
Communication Parameters #
The data rate of communication between USB and endpoints depends on three factors:
- The signal rate of frames is determined by the specified USB speed.
- The size of the endpoint (the amount of data moved in each transaction).
- The frequency at which the host initiates transactions to the endpoint. This can vary from a few transactions per frame to several frames between endpoint transactions.
Information about all endpoint parameters and communication requirements is defined by the device and provided to the host when the device is plugged into the host and successfully enumerated. The enumeration process informs the host which transfer type to use when communicating with device endpoints.
Control and Configuration #
Every USB device reserves endpoint 0 as the unique endpoint known as the control endpoint. Endpoint 0 IN contains the USB device’s descriptors that the host reads during enumeration. Endpoint 0 OUT allows the host to send configuration commands to the device.