Datasheet
2017 Microchip Technology Inc. DS60001516A-page 691
SAM9G20
Figure 37-2: USB Host Communication Channels
37.4.2 Host Controller Driver
Figure 37-3: USB Host Drivers
USB Handling is done through several layers as follows:
• Host controller hardware and serial engine: Transmits and receives USB data on the bus.
• Host controller driver: Drives the Host controller hardware and handles the USB protocol.
• USB Bus driver and hub driver: Handles USB commands and enumeration. Offers a hardware independent interface.
• Mini driver: Handles device specific commands.
• Class driver: Handles standard devices. This acts as a generic driver for a class of devices, for example the HID driver.
Operational
Registers
Mode
HCCA
Status
Event
Frame Int
Ratio
Control
Bulk
Host Controller
Communications Area
Interrupt 0
Interrupt 1
Interrupt 2
Interrupt 31
Done
. . .
. . .
Open HCI
Shared RAM
Device Register
in Memory Space
Device Enumeration
= Transfer Descriptor = Endpoint Descriptor
. . .
Host Controller Hardware
HUB Driver
Host Controller Driver
USB Driver
Mini Driver
Class Driver Class Driver
User Application
Kernel Drivers
User Space
Hardware