USB Architecture in Computer Organization
The USB system is logically a tree topology but physical is a star topology because each USB device communicates directly with the Root Hub. There is only one host Controller in any USB system. A USB system consists of:
- USB host controller
- Root Hub
- USB cable
- USB device
- Client software
- Host controller software
The host controller initiates all data transfer, and the root hub provides a connection between devices and the host controller. The root hub receives transactions generated by the host controller and transmits them to the USB devices. The host controller uses polling to detect a new device that connected to the bus or disconnected from it. Also, the USB host controller performs the following functions:
i. Host controller
ii. Packet generation
iv. Process request from device and host
v. Manage USB protocol
vi. Managing flow between host and USB devices.
vii. Assign address to the devices.
viii. Execute client software.
ix. Collecting status bit from USB ports.
The root hub performs power distribution to the devices, enables and disables the ports, and reports the status of each port to the host controller. The root hub provides the connection between the host controller and USB ports.
Hubs are used to expand the number of devices connected to the USB system. Hubs can detect when a device is attached or removed from the port. The below figure shows the architecture of the hub. The upstream port is connected to the host, and USB devices are connected to the downstream port.
In downstream transmission, all devices that are connected to the hub will receive the packet, but only the device accepts the packet that the device address matches with the address in the token. In upstream transmission, the device sends the packet to the hub, and the hub transmits the packet to its upstream port only. USB improves its speed and every few years a new version was developed.
A USB port has four pins, which consists of four wires, with the V bus used to power the devices.
USB device is divided into the classes such as a hub, printer, or mass storage. The USB device has information about its configuration such as class, type, manufacture ID, and data rate. The host controller uses this information to load device software from the hard disk. USB device might have multiple functions such as a volume in a speaker. Each function in a USB device is specified by the endpoint address.