vxworksusb驱动精辟演示(有图).pdf

vxworksusb驱动精辟演示(有图).pdf

ID:48116573

大小:337.87 KB

页数:18页

时间:2019-10-08

vxworksusb驱动精辟演示(有图).pdf_第1页
vxworksusb驱动精辟演示(有图).pdf_第2页
vxworksusb驱动精辟演示(有图).pdf_第3页
vxworksusb驱动精辟演示(有图).pdf_第4页
vxworksusb驱动精辟演示(有图).pdf_第5页
资源描述:

《vxworksusb驱动精辟演示(有图).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VxWorks下USB1.1协议栈与驱动学习笔记(一)协议栈剥离与驱动调试tearing@cevx.com/bbs很多朋友可能还不清楚USB设备客户端驱动以及USB协议栈的相关调试方法。先借用风河USB文档的图片来看下USB1.1协议栈的层次结构吧。(栈,多么美好的一个字-。-)USBHC层:为栈最底层的硬件-USB主控制器(USBHostController),实现USB主机功能。目前,USB控制器主要有3类:¾UHCI,UniversalHostControllerInterface通用的主控制器,由Intel最先设计并制定相应规范;¾OHCI,OpenHostCo

2、ntrollerInterface开放的主控制器,由Microsoft,Compaq和NationalSemicondtlctor最先设计并制定相应规范;¾EHCI,EnhancedHostControllerInterface增强的主控制器,该控制器支持USB2.0.。且它是一种为联合设备companiontype。简单来说内部包含了UHCI。如果有2.0设备接入,则EHCI工作,如果1.1设备接入,则UHCI工作。例如我的本本里的USB控制器如图所示:电脑常见USB控制器HCD层:每一主控制器在其上都有相对应的主控制器驱动程序(HCD),这些设备驱动程序与底层的硬件

3、相关,为上层提供统一的功能接口。相应的驱动分别在usbHcdOhciLib.c和usbHcdUhciLib.c中定义。USBD层:USB主机驱动(USBHostDriver)与底层硬件无关,通过HCD与底层控制器通信。USBD管理连接到主机上的每一个USB连接,并提供高层与USB设备通信的通道。除此之外,USBD还自动对USB设备进行电源管理和分配带宽。USBCM:在协议栈的最顶层是USB设备驱动程序ClientModule。设备驱动程序依赖USBD提供的通信通道,驱动连接到USB系统中的USB设备。因为平常都是通过Tornado的工程配置管理器来配置USB相关组件,在

4、VxWorks启动的时候就将USB协议栈及驱动初始化了,而1.1的协议栈又没有USB2.0协议栈那样的编译时定义分级DEBUG宏来输出相关信息。为了能够更好的学习USB相关知识,我们可以把USB相关的代码单独拿出来制作一个.out工程,在VxWorks启动后,下载并调试。这篇文章就分析该需要哪些文件,如何剥离协议栈和驱动代码进行相关调试。(备注:其实不从系统分离也可以调试,需要重新编译targetlibxxxcommonlibUsb.a带-g调试信息,设置断点则要打开待调的文件,很麻烦,不如从工程直接打开来的方便!)可能还有很多初探USB的朋友,对一些术语还不是

5、很清楚,我会在之后的学习笔记中慢慢说明(希望我能坚持下去,-。-我会努力的)。大家看这篇文章,只要把调试USB的环境建立好,目的也就达到了。1、开发环境硬件带有USB1.1主机控制器HostController(UHCI、OHCI),X86基于UHCI的比较多软件Tornado2.2(或2.2.1)forPentiumCD1(开发环境和基本组件等)&CD2(BSP包)注CD4-PID2.0包则包含了USB2.0的协议栈,暂时可不装补丁:USB1.1协议栈补丁包USB1.1.2/3CumulativePatch#1forTornado2.2本教程暂时没用补丁,方法是重点这

6、里以Pentium环境为例。其他环境的可以参照此进行。还有,剥离前最好先用Tornado为VxWorks配置上USB相关组件,看能不能枚举设备等,可以的话,再继续下文的工作。2、VxWorksUSB组件配置分析2.1组件配置图通过下图的配置,我们就可以为VxWorks镜像配置上USB1.1协议栈和鼠标驱动了主机控制器及协议栈配置设备客户端驱动配置USB相关组件配置2.2工程源码分析首先我们来看看做了2.1节的配置后,工程源码会有哪些变化,会有什么文件被编译进来。2.2.1sysLib.c对于VxWorks的C:Tornado2.2targetconfigyour

7、BSPpacketsysLib.c文件USB1.1的OHCI控制器需要做如下调用为该OHCI设备进行MMU内存映射。而UHCI则无需做这步。UHCI是Port-mappedI/O映射方式。E(O)HCI是Memory-mappedI/OsysUsbOhciPciInit的实现在BSP包下的usbPciStub.c。所以,如果要使用OHCI控制器,则需要在BSP的config.h中先定义#defineINCLUDE_USB,这样才能在VxWorks启动的时候进行内存映射,否则在镜像启动完毕后,就没法再去映射内存。那么在剥离后的USB协议栈

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

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

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