嵌入式计算机系统中USB主机驱动分析.docVIP

嵌入式计算机系统中USB主机驱动分析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式计算机系统中USB主机驱动分析.doc

嵌入式计算机系统中USB主机驱动分析   摘 要 通过对VxWorks操作系统的体系、嵌入式2.0标准的通用串行总线、USB主机协议栈等进行分析,说明VxWorks操作系统中USB主机协议栈各层间的关系及USB驱动程序结构的特点,从而阐明基于嵌入式计算机中USB主机驱动程序的可行性。   关键词 VxWorks操作系统;嵌入式系统;驱动程序;USB   中图分类号:TP368 文献标识码:A 文章编号:1671-7597(2013)21-0039-01   目前,2.0标准的通用串行总线作为一种集即插即用、具有热插拔、数据传输、速度快、低成本等优点为一体的计算机外围串行通信接口被广泛地应用于嵌入式系统设计中。一般而言,PC计算机里的USB接口包括:主设备、USB集线器。由于在PC计算机中USB需要经过PCI总线,但一般嵌入式计算机没有PCI总线。本文通过对Intel主板的板级支持包下嵌入式VxWorks操作系统的USB主机驱动协议栈进行分析,揭示USB在嵌入式计算机系统的应用可行性。   1 VxWorks操作系统体系结构   VxWorks操作系统具可裁减性、商用性、互操作性等特性,还能支持众多的硬件平台心。它主要通过二进制信号量、计数器信号量、管道等使任务间灵活通信。VxWorks操作系统的结构:多任务调度内核(优先级中断驱动)、文件管理、网络扩、设备管理、运行接口(能兼容POSIX协议)。   2 USB主机结构介绍   USB系统使用的是级联星型拓扑模型,这一模型主要涉及下述几个部分,即功能设备、集线器和主机。USB系统主机通常也可叫做根,通常属于一种计算机上锁安装的适配卡。根集线器和主控制器是主机的两个主要构成部分,主机能够对USB总线上的信息流动和数据进行有效控制。同时,所有的USB系统均与其独立的根集线器相互配合,且与主控制器相互连接。但是,集线器可以利用端口的点实现USB总线与设备之间的相互连通。在对总线上设备连接情况进行检测的同时,还能够作为设备的主要电源来源,并排除和检测总线中存在的故障现象。如果需要在嵌入式系统中使用USB总线,则还应通过USB类别驱动程序、USB主机协议栈、USBHost控制器等设备。其主要原因在于,USB总线一方面属于通信协议的一种,另一方面,也作为主机与设备相互连接的主要外部总线结构。   3 USB主机驱动在嵌入式计算机系统中的应用   在以Intelpc计算机为基础的Vxworks主板系统中,通常利用USB主机驱动协议栈5大模块作为运行的基础。上述的5大模块包括:应用层、设备驱动层、USB核心驱动层、控制器驱动程序层和硬件层。由硬件层面来看,USB主机控制器、时钟定时器、断控制器等是特定的USB功能得以实现的主要硬件构成。由控制器驱动程序层面来看,通常涉及HCD接口模块和HCD核心功能模块两部分。利用HCD核心功能模块实施Controller驱动,在此基础上根据UHCI规范和OpenHCI规范编写。   HCD核心功能模块能够实现与USB主机控制器的交互操作,并实现参数设置、主机驱动程序初始化以及USB主机寄存器和控制器初始化等功能。利用输入参数的针对性识别,能够通过功能不同的代码,为上级模块提供相应的入口函数,利用这一方法,能够实现HCD的相应功能。   虽然HCD核心功能模块只能够接受HCD接口模块的调用,但HCD接口模块的功能主要是通过USBD层接口得到实现的,并且能够从上层模块中调用所有的功能函数。HCD接口模块仅仅能够受到USBD核心功能模块的凋用,利用上层模块封装的HCD驱动进行工作。   在USB核心驱动层中,其相关操作都是通过USBD核心功能模块与SBD接口模块实现的。USBD核心功能模块在USB核心的驱动下运行,但USB驱动代码并不能影响到系统硬件平台。为了保证实现传输控制、总线带宽分配、USB总线枚举等功能的良好实现,USBD核心功能模块能够进行HCD接口模块的向下调用,并进行与HCD层之间的通信。USBD功能能够利用充分调用各类输入参数以及为向上层模块提供入口函数,进而实现相应的功能代码。   由USB主机驱动协议栈的设备驱动层来看,实现USB设备中特定初始化目标是前提,然后将上层永华的应用程序需求转化,实现USBD驱动程序的调用。在设备驱动层中,利用相应的API函数,对USB细节进行屏蔽处理。然后,实现USB主机驱动协议栈应用层的USB主机驱动程序、设备驱动程序、测试程序以及应用程序等功能。   在USB驱动程序中,应对USB设备的总线枚举加以关注。USB设备总线的枚举过程通常包括下述几个基本步骤。   1)在下游端口接入与USB设备集线器相互连接后,如果主机收到USB设备集线器的信息(此信息通过“状态改变管道”传递

文档评论(0)

jingpinwedang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档