![]() Naturally, the two interfaces are incompatible, and to make things worse, VIA Technologies licensed Intel's UHCI standard, thereby ensuring that both standards survived. Intel brought USB 1.0 to the market with its Universal Host Controller Interface ( UHCI), while Compaq, Microsoft, and National Semiconductors did the same with their Open Host Controller Interface ( OHCI). USB 1.0 Host Controllers Main article: Universal Host Controller Interface Main article: Open Host Controller Interface In other words, the host controller is what the system software uses to communicate with USB devices. The Host Controller is the USB interface to the host computer system. Although such information may be found on wiki entries discussing a particular Host Controller Driver, those wiki entries assume an understanding of the concepts and terms discussed here. Therefore, one should not expect this text to discuss specifics or code samples (e.g., as one finds in the wiki entries about VGA or PCI) detailing how the operating system initiates and maintains communication with USB devices. Such an interface is provided by one or more USB host controllers and is defined by the appropriate documentation. Please note that USB, unlike other standards like VGA or PCI, is agnostic of the hardware interface to the system bus (and, by extension, to the operating system). At the very least, the system programmer should keep a copy of the USB 2.0 specification for reference while working with USB-related hardware.įortunately, all of the necessary documentation is available for free (see Links). Ideally, the text here will establish familiarity with the terms and concepts that a hobby OS developer needs to begin implementing USB support and, if necessary, easily parse the USB specification without becoming intimidated by the amount of information. Even so, some concepts which pertain to USB hubs are briefly discussed where relevant in this article. Chapter 11 is covered thusly in its own wiki entry, USB Hubs. ![]() The information presented here attempts to summarize chapters 4, 5, and 8 through 10.Ĭhapter 11 is specific to hubs and is also essential for a full USB 2.0 implementation, however it is almost as long as chapters 4, 5, 8, 9, and 10 combined, and could be regarded as the documentation for a specific (albeit special) class of USB devices. The truth is that a software developer doesn't need to read the entire USB 2.0 specification there are sections specific to hardware developers, for example. Furthermore, the USB specification defines a plethora of terms, some used interchangeably and seemingly lazily as a lengthy technical document, it is neither easy nor practical to flip back and forth to clarify a confusing term or concept. ![]() Not only is the USB 2.0 specification long, but it's a prerequisite for the XHCI, EHCI, UHCI, and OHCI specifications, which define the actual hardware OSes interface with. 7 Typical organization of system softwareĭespite how attractive USB support is, the 650-page USB 2.0 specification manages to deter even some of the most driven hobbyists (especially if English isn't their primary language).6.1 Functions, Configurations, Interfaces, and Endpoints.5.5.4 High-Speed, High-Bandwidth Isochronous Transfers.5.4.3 Failed or corrupted ACK handshake.5.4.2 Failed or corrupted data transmissions.5.2.2.4 Function Response to SETUP Transactions.5.2.2.3 Function Response to OUT Transactions.5.2.2.2 Host Response to IN Transactions.5.2.2.1 Function Response to IN Transactions.5.2.2 Function/Host Response Circumstances.4.2 High-Speed, High-Bandwidth Endpoints.3.2.1 Device Endpoints and Endpoint Numbers.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |