vxworks实时操作系统的usb驱动程序原理与分析

vxworks实时操作系统的usb驱动程序原理与分析

ID:14942579

大小:91.00 KB

页数:8页

时间:2018-07-31

vxworks实时操作系统的usb驱动程序原理与分析_第1页
vxworks实时操作系统的usb驱动程序原理与分析_第2页
vxworks实时操作系统的usb驱动程序原理与分析_第3页
vxworks实时操作系统的usb驱动程序原理与分析_第4页
vxworks实时操作系统的usb驱动程序原理与分析_第5页
资源描述:

《vxworks实时操作系统的usb驱动程序原理与分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VxWorks实时操作系统的USB驱动程序原理与分析1、问题的提出   通用串行总线(USB)作为一种中高速的数据方式,已经很普遍地应用于外设与主机的通信中。VxWorks是当今十分流行的实时操作系统,在通信、国防、工业控制、医疗设备等嵌入式实时应用领域。很多VxWorks系统中都有USB设备,可是关于USB的驱动实现并没有相关的资料可以参考,给实际工作带来了难题。本文通过详细地分析VxWorks下的USB驱动栈,具体提出了其实际应用的方法,为USB在应用VxWorks的嵌入式系统的开发扫清了技术障碍。2、VxWorks简介   VxWorks是Win

2、dRiver公司开发的具有工业领导地位的高性能实时操作系统(RealTimOperationSystem,RTOS)内核,具有先进的网络功能。VxWorks的开放式结构和对工业标准的支持,使得开发人员易于设计高效的嵌入式系统,并可以很小的工作量移植到其它不同的处理器上。作为一种先进的实时操作系统,它具有以下特点:1.可裁剪微内核结构。2.高效的任务管理:①多任务,具有256个优先级。②具有优先级排队和循环调度。③快速的、确定性的上下文切换。3.灵活的任务间通讯:①三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。②消息队列。③套接字(Socket

3、)。④共享内存。⑤信号(Signals)4.微秒级的中断处理。5.支持POSIX1003.1b实时扩展标准。6.支持多种物理介质及标准的、完整的TCPIP网络协议。7.灵活的引导方式。支持从ROM、flash、本地盘(软盘或硬盘)或网络引导。8.支持多处理器并行处理。9.快速灵活的l/O系统。10.支持MS-DOS和RT-11文件系统。11.支持本地盘,flash,CD-ROM的使用。12.完全符合ANSIC标准。1.多个系统调用。3、USB驱动程序的结构概述图1提供了一个USB主驱动栈结构的简单概括。图2显示了USB主驱动栈的各模块之间的功能联系。 

4、图1USB主驱动栈结构简单模型 图2USB主驱动栈各模块之间的功能联系   在栈的最底部是USB主控制器(USBHC,即USBHostController),这是主系统中控制每一个USB设备的硬件部分。   目前,市场上主要有两大类USB主控制器,一种是支持由ime1公司最先提出的通用主控制器接口(UniversalHostControllerInterface,简称UHCI),另一种是支持由微软、康柏和国家半导体公司联合设计提出的开放主控制器接口(OpenHostControllerInterface,简称OHCI)。硬件厂商一般根据这两个规范设计他

5、们的USB主控制器。   对于每一类型的主控制器都有一个与硬件独立的USB主控制器驱动(HostControllerDriver,简称HCD)。WindRiver提供了两个驱动:usbHcdUhciLib(UHCI主控制器库)和usbHedOheiLib(OHCI主控制器库)。USB主驱动(USBhostdriver,简称USBD)和HCD之间的接口允许一个或超过一个的底层主控制器。而且,WindRiver的USBD能够同时连接多个USBHCD。这样的设计特点可以使开发者建立复杂的USB系统。   USBD是在HCD之上的与硬件独立的模块。USBD管理

6、每一个与主机相连的USB设备,向更高层次提供了可与USB设备通信的路径。它还负责自动处理USB电力管理以及USB带宽管理。而且,USBD还管理USBhub,Hub功能是一个驱动能否对USB正确操作的评价之一。因此WindRiver的USBD设计者要使USBD透明地处理hub的功能。这意味着,USBD还能处理USBhub和设备的动态插拔。   USBClient模块在USB主驱动栈的顶端。USB类驱动(USBClassDriver)是Client模块的典型例子。USB类驱动负责管理连接到USB上的不同类型的设备;它们依靠USBD来提供与每个设备的通信路径

7、。USBclient模块的其他例子就是那些利用USBD与USB设备通信的应用程序。4、USBD驱动详解   这一部分将要描述USBD(USBHostDriver)的典型应用。例如初始化,client注册,动态连接注册,设备配置,数据传输,同时还探讨了USBD内部设计的关键特性。这部分是VxWorks下USB驱动的核心。4.1初始化USBD:分为两步(1)必须至少调用一次函数usbdInitialize()。在一个给定的系统中,usbdlnifialize()初始化内部USBD数据结构,并依次调用其它USB驱动栈模块的入口。usbdinitialize(

8、)可以在启动时调用一次,也可以对每一个设备各调用一次。USBD自己记录了调用usbdIniti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。