文档详情

VxWorks下USB设备驱动程序设计.doc

发布:2018-03-15约9.01千字共13页下载文档
文本预览下载声明
VxWorks下USB设备驱动程序设计   摘要:介绍了VxWorks下USB驱动的层次结构,分析了USB设备驱动程序开发的一般方法和关键技术。在此基础上实现了VxWorks下LM9833设备驱动,达到了预期目标。所给出的VxWorks下USB设备驱动设计的一般步骤为在VxWorks下开发其它USB设备驱动提供了参考。   关键词:VxWorks;USB设备驱动;管道;回调   中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)24-1200-04   Design of USB Device Driver Based on Real Time Operation System VxWorks   WANG Hao   (College of Computer, Xidian University, Xian 710071, China)   Abstract:The architecture of USB dirver based on VxWorks is given, general method and key technology in developing USB device dirver are analyzed.Then the device driver of LM9833 is implemented, expectant performace of target system is achieved. The general process of developing USB device dirver used in this paper can be refered by others USB device driver developing based on VxWorks.   Key words: VxWorks; USB device driver; pipe; callback      1 VxWorks下USB驱动概述      VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Time Operation System, RTOS)内核。VxWorks5.5实现了USB1.1协议栈。图1提供一个VxWorks下USB主驱动栈的简单结构。   在栈的最低层是USB主控制器(USB Host Controller, HC),这是主系统中控制每一个USB设备的硬件。在主控制器上层是一个与硬件独立的主控制器驱动(USB Host Controller Driver,HCD)。USBD是在HCD之上的与硬件独立的模块,USBD管理每一个与主机相连的设备,向高层提供可与USB设备通信的路径,USBD实现了USB总线枚举、总线带宽分配、传输控制等操作。在栈的顶层是USB Client 模块,一般是特定的USB Class Driver,负责管理与USB主机连接的不同类型的设备。用户自己的USB设备驱动程序通常是在USBD这一层上完成。      2 VxWorks下USB设备驱动详解      2.1 驱动程序提供的函数   2.1.1 向应用程序提供的接口函数   设备驱动程序的主要作用是向上层应用程序屏蔽硬件,向上层应用程序提供统一的接口函数,驱动程序一般需要实现的函数如表1所示。      图1 USB主驱动栈结构      表1 驱动程序提供的接口      usbMSCDevInit();这是一个通用的初始化例程,可以在BSP中调用,也可以由应用程序来调用,但只能被调用一次,该例程初始化必须的数据结构,并向USBD注册驱动程序。USB设备与USB主控制器之间的所有操作都通过USBD来完成,因此在调用usbMSCDevInit()之前必须确定USBD已经初始化,在使用USB设备之前也要确保USB主控制器已经挂接到USBD。   usbMSCDevCreate();这是一个创建设备例程,当有设备接入时,回调函数usbMSCDevAttachCallback()调用该例程创建一个逻辑设备,当这个例程被调用时必须在系统中存在一个实际的USB物理设备。   usbMSCDevDestroy();从系统中删除设备。首先释放设备占有的资源,从设备链表中移除该设备,同时调用usbdPipeDestroy()销毁该设备与主机之间的通信管道,最后释放设备结构体。   usbMSCDevShutDown();该例程卸载已注册的设备驱动程序,并回收所有已分配资源,包括删除设备、回收信号量等。   2.1.2 两个重要的回调函数   在编写USB设备驱动程序时,除了上述接口函数外,还需要
显示全部
相似文档