- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
维普资讯
嵌入式USB主机一71一
◆MAXIM专栏
嵌入式USB主机
LaneHauck,MaximIntegratedProducts
1USB主机控制器
1.1对于主板
早期的USB主控制器通过PCI总线与主板连
接,现今的USB功能则内建在主板芯片组中。这些
基于PCI总线的控制器可处理大量USB事务,例如
将PC和多个USB设备之间传输的数据包排序和分
级。一个USB事务可产生数十甚至数百个数据包,
这些都由主控制器处理。低速和全速设备的控制器
称为UHCH/OHCI,高速设备的控制器称为EHCI。
1.2对于嵌入式系统
嵌入式主机比主板上的主控制器更简单、更小
且更便宜。如何使用嵌入式主机.一个常见需求是
读写USB记忆棒(USBMemoryDevice.UMD)。
如果只需和一个特定设备通讯.如UMD,无需
PC提供的大量队列支持。毕竟PC无法预知将会插
入何种设备.且在同一时间可能有多个USB设备。
PC需要一个驱动程序库、大量的电源和复杂的驱动
图1利用嵌入式主控制器将USB设备添加进微控制器系
程序栈来将所有设备分类.只需知道特定设备通讯
统,可通过软件查询设备并报告其特征
的代码。这种嵌入式方案称为“单点方案”。
2优先枚举步骤适用于MAX3421E.但是任何嵌入式主控制器都具
有相似的寄存器。
为了说明如何设计一个嵌入式主机.首先了解13
IPERADDR=7lresultcode=(Hr|eg(rHRSL)&OxOF);I
USB主机枚举USB设备所需的步骤。枚举就是USB\
主机发现USB设备特征和需求的过程。它是各种设
ox@67JoI11090222000lO1、04E00lIIO ̄4B
备的通用步骤fUSB规范限定的1,因此须在各种\f\
USB主机应用之前讨论。枚举后,主机配置设备并2j\
HwreHXFR(tokIendpoint));I\
while(!Hr(reg(rHIRQ)&bmHXFRDNIRQ));
开始工作。显然这里包含了额外的设备特征代码。、.
图1内容由KeiAlRM7开发板产生.开发板包forj(=0Jpktsize:J++)//addthispackets‘datatoxDataarray
XfrData[j+xfrlen】=Hrreg(rRCVFIFO);
含有MCB2130和Maxim的MAX3421E主控制器。
ARM7通过SPI总线与MAX3421E的寄存器组通
文档评论(0)