fbpx
Wikipedia

Host controller interface (USB, Firewire)

A host controller interface (HCI) is a register-level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software. The driver software is typically provided with an operating system of a personal computer, but may also be implemented by application-specific devices such as a microcontroller.

On the expansion card or motherboard controller, this involves much custom logic, with digital logic engines in the motherboard's controller chip, plus analog circuitry managing the high-speed differential signals. On the software side, it requires a device driver (called a Host Controller Driver, or HCD).

IEEE 1394 edit

Open Host Controller Interface edit

Open Host Controller Interface (OHCI)[1] is an open standard.

When applied to an IEEE 1394 (also known as FireWire; i.LINK or Lynx) card, OHCI means that the card supports a standard interface to the PC and can be used by the OHCI IEEE 1394 drivers that come with all modern operating systems. Because the card has a standard OHCI interface, the OS does not need to know in advance exactly who makes the card or how it works; it can safely assume that the card understands the set of well-defined commands that are defined in the standard protocol.

USB edit

Open Host Controller Interface edit

The OHCI standard for USB is similar to the OHCI standard for IEEE 1394, but supports USB 1.1 (full and low speeds) only; so as a result its register interface looks completely different. Compared with UHCI, it moves more intelligence into the controller, and thus is accordingly much more efficient; this was part of the motivation for defining it. If a computer provides non-x86 USB 1.1, or x86 USB 1.1 from a USB controller that is not made by Intel or VIA, it probably uses OHCI (e.g. OHCI is common on add-in PCI Cards based on an NEC chipset). It has many fewer intellectual property restrictions than UHCI.[2] It only supports 32-bit memory addressing,[3] so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64-bit operating system.[citation needed] OHCI interfaces to the rest of the computer only with memory-mapped I/O.[3]

Universal Host Controller Interface edit

Universal Host Controller Interface (UHCI) is a proprietary interface created by Intel for USB 1.x (full and low speeds). It requires a license from Intel. A USB controller using UHCI does little in hardware and requires a software UHCI driver to do much of the work of managing the USB bus.[2] It only supports 32-bit memory addressing,[4] so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64-bit operating system.[citation needed] UHCI is configured with port-mapped I/O and memory-mapped I/O, and also requires memory-mapped I/O for status updates and for data buffers needed to hold data that needs to be sent or data that was received.[4]

Enhanced Host Controller Interface edit

The Enhanced Host Controller Interface (EHCI)[5] is a high-speed controller standard applicable to USB 2.0. UHCI- and OHCI-based systems, as existed previously, entailed greater complexity and costs than necessary. Consequently, the USB Implementers Forum (USB-IF) insisted[when?] on a public specification for EHCI. Intel hosted EHCI conformance-testing and this helped to prevent the incursion of proprietary features.

Originally a PC providing high-speed ports had two controllers, one handling low- and full-speed devices and the second handling high-speed devices. Typically such a system had EHCI and either OHCI or UHCI drivers. The UHCI driver provides low- and full-speed interfaces for Intel or VIA chipsets' USB host controllers on the motherboard, or for any VIA discrete host controllers attached to the computer's expansion bus. The OHCI driver provides low- and full-speed functions for USB ports of all other motherboard chipset vendors' integrated USB host controllers or discrete host controllers attached to the computer's expansion bus. The EHCI driver provided high-speed functions for USB ports on the motherboard or on the discrete USB controller. More recent hardware routes all ports through an internal "rate-matching" hub (RMH) that converts all traffic involving any directly-connected ports working at full-speed and low-speed between the high-speed traffic presented to the EHCI controller and the full-speed or low-speed traffic that the ports operating at those speeds expect, allowing the EHCI controller to handle these devices.

The EHCI software interface specification defines both 32-bit and 64-bit versions of its data structures,[5] so it does not need a bounce buffer or IOMMU to work with a 64-bit operating system if a rate-matching hub is implemented to provide full-speed and low-speed connectivity instead of companion controllers using either the UHCI specification or OHCI specification, both of which are 32-bit only specifications.

Extensible Host Controller Interface edit

Extensible Host Controller Interface (xHCI) is the newest host controller standard that improves speed, power efficiency and virtualization over its predecessors. The goal was also to define a USB host controller to replace UHCI/OHCI/EHCI. It supports all USB device speeds (USB 3.1 SuperSpeed+, USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed).

Virtual Host Controller Interface edit

Virtual Host Controller Interface (VHCI) refers to a virtual controller that may export virtual USB devices not backed by physical devices. For instance, on Linux, VHCI controllers are used to expose USB devices from other machines, attached using the USB/IP protocol.

USB4 Host Interface edit

The Host Interface defined in the USB4 Specification. It makes operating system to manage USB4 Host Route for USB, DisplayPort, PCI Express, Thunderbolt or Host-to-Host Communication.

See also edit

References edit

  1. ^ http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/ohci_11.pdf [bare URL PDF]
  2. ^ a b "Linux USB FAQ". August 27, 2007. Retrieved April 13, 2014.
  3. ^ a b (PDF). Archived from the original (PDF) on 2020-05-18. Retrieved 2020-05-12.{{cite web}}: CS1 maint: archived copy as title (link)
  4. ^ a b "UHCI11D.DOC" (PDF). Ftp.netbsd.org. Retrieved 2017-01-10.
  5. ^ a b "Enhanced Host Controller Interface Specification". Intel.com. Retrieved 2017-01-10.

External links edit

  • An OHCI for USB standard document from Compaq, Microsoft and National Semiconductor(PDF)
  • Linux kernel source: OHCI and EHCI documentation
  • Intel EHCI Specification
  • Intel xHCI Specification

host, controller, interface, firewire, this, article, multiple, issues, please, help, improve, discuss, these, issues, talk, page, learn, when, remove, these, template, messages, this, article, includes, list, general, references, lacks, sufficient, correspond. This article has multiple issues Please help improve it or discuss these issues on the talk page Learn how and when to remove these template messages This article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations April 2014 Learn how and when to remove this message This article s factual accuracy may be compromised due to out of date information Please help update this article to reflect recent events or newly available information November 2010 Learn how and when to remove this message A host controller interface HCI is a register level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software The driver software is typically provided with an operating system of a personal computer but may also be implemented by application specific devices such as a microcontroller On the expansion card or motherboard controller this involves much custom logic with digital logic engines in the motherboard s controller chip plus analog circuitry managing the high speed differential signals On the software side it requires a device driver called a Host Controller Driver or HCD Contents 1 IEEE 1394 1 1 Open Host Controller Interface 2 USB 2 1 Open Host Controller Interface 2 2 Universal Host Controller Interface 2 3 Enhanced Host Controller Interface 2 4 Extensible Host Controller Interface 2 5 Virtual Host Controller Interface 2 6 USB4 Host Interface 3 See also 4 References 5 External linksIEEE 1394 editOpen Host Controller Interface edit Open Host Controller Interface OHCI 1 is an open standard When applied to an IEEE 1394 also known as FireWire i LINK or Lynx card OHCI means that the card supports a standard interface to the PC and can be used by the OHCI IEEE 1394 drivers that come with all modern operating systems Because the card has a standard OHCI interface the OS does not need to know in advance exactly who makes the card or how it works it can safely assume that the card understands the set of well defined commands that are defined in the standard protocol USB editOpen Host Controller Interface edit The OHCI standard for USB is similar to the OHCI standard for IEEE 1394 but supports USB 1 1 full and low speeds only so as a result its register interface looks completely different Compared with UHCI it moves more intelligence into the controller and thus is accordingly much more efficient this was part of the motivation for defining it If a computer provides non x86 USB 1 1 or x86 USB 1 1 from a USB controller that is not made by Intel or VIA it probably uses OHCI e g OHCI is common on add in PCI Cards based on an NEC chipset It has many fewer intellectual property restrictions than UHCI 2 It only supports 32 bit memory addressing 3 so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64 bit operating system citation needed OHCI interfaces to the rest of the computer only with memory mapped I O 3 Universal Host Controller Interface edit Universal Host Controller Interface UHCI is a proprietary interface created by Intel for USB 1 x full and low speeds It requires a license from Intel A USB controller using UHCI does little in hardware and requires a software UHCI driver to do much of the work of managing the USB bus 2 It only supports 32 bit memory addressing 4 so it requires an IOMMU or a computationally expensive bounce buffer to work with a 64 bit operating system citation needed UHCI is configured with port mapped I O and memory mapped I O and also requires memory mapped I O for status updates and for data buffers needed to hold data that needs to be sent or data that was received 4 Enhanced Host Controller Interface edit The Enhanced Host Controller Interface EHCI 5 is a high speed controller standard applicable to USB 2 0 UHCI and OHCI based systems as existed previously entailed greater complexity and costs than necessary Consequently the USB Implementers Forum USB IF insisted when on a public specification for EHCI Intel hosted EHCI conformance testing and this helped to prevent the incursion of proprietary features Originally a PC providing high speed ports had two controllers one handling low and full speed devices and the second handling high speed devices Typically such a system had EHCI and either OHCI or UHCI drivers The UHCI driver provides low and full speed interfaces for Intel or VIA chipsets USB host controllers on the motherboard or for any VIA discrete host controllers attached to the computer s expansion bus The OHCI driver provides low and full speed functions for USB ports of all other motherboard chipset vendors integrated USB host controllers or discrete host controllers attached to the computer s expansion bus The EHCI driver provided high speed functions for USB ports on the motherboard or on the discrete USB controller More recent hardware routes all ports through an internal rate matching hub RMH that converts all traffic involving any directly connected ports working at full speed and low speed between the high speed traffic presented to the EHCI controller and the full speed or low speed traffic that the ports operating at those speeds expect allowing the EHCI controller to handle these devices The EHCI software interface specification defines both 32 bit and 64 bit versions of its data structures 5 so it does not need a bounce buffer or IOMMU to work with a 64 bit operating system if a rate matching hub is implemented to provide full speed and low speed connectivity instead of companion controllers using either the UHCI specification or OHCI specification both of which are 32 bit only specifications Extensible Host Controller Interface edit Main article Extensible Host Controller Interface Extensible Host Controller Interface xHCI is the newest host controller standard that improves speed power efficiency and virtualization over its predecessors The goal was also to define a USB host controller to replace UHCI OHCI EHCI It supports all USB device speeds USB 3 1 SuperSpeed USB 3 0 SuperSpeed USB 2 0 Low Full and High speed USB 1 1 Low and Full speed Virtual Host Controller Interface edit Virtual Host Controller Interface VHCI refers to a virtual controller that may export virtual USB devices not backed by physical devices For instance on Linux VHCI controllers are used to expose USB devices from other machines attached using the USB IP protocol USB4 Host Interface edit The Host Interface defined in the USB4 Specification It makes operating system to manage USB4 Host Route for USB DisplayPort PCI Express Thunderbolt or Host to Host Communication See also editAdvanced Host Controller Interface AHCI Non Volatile Memory Host Controller Interface NVMHCI Wireless USB WHCI 1 0 RAID Controller Host adapter LPCIOReferences edit http download microsoft com download 1 6 1 161ba512 40e2 4cc9 843a 923143f3456c ohci 11 pdf bare URL PDF a b Linux USB FAQ August 27 2007 Retrieved April 13 2014 a b Archived copy PDF Archived from the original PDF on 2020 05 18 Retrieved 2020 05 12 a href Template Cite web html title Template Cite web cite web a CS1 maint archived copy as title link a b UHCI11D DOC PDF Ftp netbsd org Retrieved 2017 01 10 a b Enhanced Host Controller Interface Specification Intel com Retrieved 2017 01 10 External links editAn OHCI for USB standard document from Compaq Microsoft and National Semiconductor PDF Linux kernel source OHCI and EHCI documentation Intel EHCI Specification Intel xHCI Specification Retrieved from https en wikipedia org w index php title Host controller interface USB Firewire amp oldid 1190470310 Enhanced Host Controller Interface, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.