📄 c-hoststack.html
字号:
<dl class="margin"><dd><div class="Anchor"><a name="85268"></a><img class="figure" border="0" alt="" src="images/libs.gif"></div></dl></dl></p><dl class="margin"><dl class="margin"> </p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85272"></a>Related Documentation</i></h4></font><dl class="margin"><dl class="margin"><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85273"></a><i class="title">USB Developer's Kit Release Notes, 1.1.1</i> </li></ul></p><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85274"></a><i class="title">Universal Serial Bus Specification</i>, Revision 1.1, September 23, 1998. All USB specifications are available at <b><a href="www.usb.org/developers/docs.html" class="url">www.usb.org/developers/docs.html</a></b>. </li></ul></p><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85275"></a>USB device class specifications. All USB specifications are available at <b><a href="www.usb.org/developers/docs.html" class="url">www.usb.org/developers/docs.html</a></b>. </li></ul></p><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85276"></a>OHCI and UHCI host controller specifications:</li></ul></p><dl class="margin"><dd><ul class="DashSingle2" type="circle"><li><a name="85277"></a>for OHCI: <br><b><a href="http://www.compaq.com/productinfo/development/openhci.html" class="url">http://www.compaq.com/productinfo/development/openhci.html</a></b></li></ul><dd><ul class="DashSingle2" type="circle"><li><a name="85278"></a>for UHCI: <br><b><a href="http://developer.intel.com/design/USB/UHCI11D.htm" class="url">http://developer.intel.com/design/USB/UHCI11D.htm</a></b></li></ul></dl><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85279"></a><i class="title">Tornado User's Guide 2.0</i></li></ul></p><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85280"></a><i class="textVariable">VxWorks Programmer's Guide 5.4</i></li></ul></p><dd><p class="listspace"><ul class="Bullet" type="disc"><li><a name="85281"></a><i class="textVariable">VxWorks Reference Manual 5.4</i></li></ul></p></dl></dl><br class="H2"><a name="85283"></a><br class="H2navbar"><font face="Helvetica, sans-serif" class="sans"><h3 class="H2"><i>1.2 Architecture Overview</i></h3></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85327"></a><a href="c-hostStack.html#85290">Figure 2</a> presents a simplified overview of the USB host driver stack architecture. </dl></dl><p class="frame"><dl class="margin"><dd><p class="EntityTitle"><a name="85290"></a><font face="Helvetica, sans-serif" size="-1" class="sans">Figure 2: <b>USB Host Driver Stack</b></font></p></dl><dl class="margin"><dl class="margin"><dd><div class="Anchor"><a name="85326"></a><img class="figure" border="0" alt="" src="images/c-hostStack2.gif"></div></dl></dl></p><dl class="margin"><dl class="margin"></p><dd><p class="Body"><a name="85328"></a>At the bottom of the stack is the <i class="term">USB host controller</i> (USB HC), the piece of hardware in the host system that controls each USB. Currently, there are two major families of USB host controllers on the market, those supporting the Universal Host Controller Interface (UHCI) originally put forth by Intel, and those supporting the Open Host Controller Interface (OHCI) designed by Microsoft, Compaq, and National Semiconductor. A number of hardware manufacturers have built USB HCs around one or the other of these specifications.</p><dd><p class="Body"><a name="85329"></a>For each type of host controller there is a single, hardware-dependent <i class="term">USB host controller driver</i> (HCD). For example, Wind River provides the source for two pre-built drivers:</p></dl><dl class="margin"><dd><p class="listspace"><ul class="Dash" type="circle"><li><a name="85330"></a><b class="library">usbHcdUhciLib</b> for UHCI HCs</li></ul></p><dd><p class="listspace"><ul class="Dash" type="circle"><li><a name="85331"></a><b class="library">usbHcdOhciLib</b> for OHCI HCs</li></ul></p></dl><dl class="margin"><dd><p class="Body"><a name="85332"></a>The interface between the <i class="term">USB host driver</i> (USBD) and the HCD allows for each HCD to control one or more underlying HCs. Also, Wind River's USBD is capable of connecting to multiple USB HCDs simultaneously. These design features allow you to build a range of complex USB systems. </p><dd><p class="Body"><a name="88523"></a>The USBD is the hardware-independent module above the HCD(s). The USBD manages each USB connected to the host and provides the path through which higher layers communicate with the USB. Among its responsibilities, the USBD handles USB power management and USB bandwidth management automatically. Also, unique to the Wind River architecture, the USBD manages USB hubs. Hub functionality is critical to the proper operation of the USB, so the designers of the Wind River USBD concluded that hub functionality should be handled transparently by the USBD. This means that the USBD also handles the dynamic attachment and removal of USB hubs and devices.</p><dd><p class="Body"><a name="85337"></a><a href="c-hostStack.html#85290">Figure 2</a> shows the USB Client Module at the top of the stack. USB class drivers are typical examples of client modules. USB class drivers are responsible for managing individual types of devices that can be connected to the USB; they rely on the USBD to provide the communication path to the individual devices. Applications, diagnostics, and test programs are other examples of client modules that rely on the USBD to communicate with USB devices. For example, Wind River provides the test application/module <b class="library">usbTool</b>, which gives you interactive control over the USB and USB devices.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="85338"></a>Host Module Roadmap</i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="85342"></a>The diagram in <a href="c-hostStack.html#85346">Figure 3</a> illustrates the functional relationships among the modules that comprise Wind River's USB host driver stack. Each module is further described in this section; for additional information on USB-related libraries and subroutines, see the associated reference pages in the online <i class="title">VxWorks Reference Manual: USB Libraries</i>. </dl></dl><p class="frame"><dl class="margin"><dd><p class="EntityTitle"><a name="85346"></a><font face="Helvetica, sans-serif" size="-1" class="sans">Figure 3: <b>Host Module Roadmap</b></font></p></dl><dl class="margin"><dl class="margin"><dd><div class="Anchor"><a name="85430"></a><img class="figure" border="0" alt="" src="images/c-hostStack3.gif"></div></dl></dl></p><dl class="margin"><dl class="margin"></p></dl><dl class="margin"><dd><div class="Item"><a name="85432"></a><b class="library">usbTool</b></div><dl class="margin"><dd><div class="Follow"><a name="85433"></a>This module is a test application that gives you interactive control of the USB host driver stack. The <b class="library">usbTool</b> utility exports a single entry point, <b class="routine">usbTool( )</b>, that invokes a command-line-driven interactive environment in which the operator can initialize components of the USB driver stack, interrogate each USB connected to the system, send USB commands to individual USB devices, and test other elements of the USB stack. The <b class="library">usbTool</b> test application is most useful during development and testing and does not need to be included in a shipped product. </div><br></dl></dl></dl><dl class="margin"><dd><p class="table"><table border="0" cellpadding="2" cellspacing="0"><tr valign="top"><td colspan=1 rowspan=1></td><td><hr></td></tr><tr valign="top"><td><img border="0" alt="*" src="icons/note.gif"> </td><td colspan=1 rowspan=1><div class="CalloutCell"><a name="85438"></a><b class="symbol_UC"><font face="Helvetica, sans-serif" size="-1" class="sans">NOTE: </font></b>The <b class="library">usbTool </b>module relies internally on static data; you should not run multiple instances of <b class="library">usbTool</b> simultaneously.</div></td></tr><tr valign="top"><td colspan=1 rowspan=1></td><td colspan=1 rowspan=1><hr></td></tr><tr valign="middle"><td colspan="20"></td></tr></table></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -