基于RTOS的USB设备端驱动程序研究与设计.pdf

基于RTOS的USB设备端驱动程序研究与设计.pdf

ID:53570477

大小:194.17 KB

页数:6页

时间:2020-04-18

基于RTOS的USB设备端驱动程序研究与设计.pdf_第1页
基于RTOS的USB设备端驱动程序研究与设计.pdf_第2页
基于RTOS的USB设备端驱动程序研究与设计.pdf_第3页
基于RTOS的USB设备端驱动程序研究与设计.pdf_第4页
基于RTOS的USB设备端驱动程序研究与设计.pdf_第5页
资源描述:

《基于RTOS的USB设备端驱动程序研究与设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第21卷第1期北京理工大学学报Vol.21No.12001年2月JournalofBeijingInstituteofTechnologyFeb.2001文章编号:1001-0645(2001)01-0123-03基于RTOS的USB设备端驱动程序研究与设计张雪兰翁铁城(北京理工大学计算机科学与工程系北京100081)摘要:对USB进行分析研究并开发RTOS上USB的设备端驱动程序0采用V-model的软件工程开发方法0所开发的设备端驱动程序顺利地通过USB设备端仿真器的测试所得结果正确0USB作为一种新型的串行通信标准统一了外设接口提高了传输速率0关键词:实时操作系统9通用串行总

2、线9驱动程序中图分类号:TP303文献标识码:A通用串行总线(USBuniversalserialbus)作为一种新型的~基于令牌的~高速串行总线标准对各种外设提供了统一的接口其传输速度达12MB/s[1]极大地提高了数据传输速率0USB的出现对计算机技术的发展有着重要的研究和实用价值为此作者在研究USB协议的基础上为一种USB设备端芯片开发了基于VxWorks平台的设备端驱动程序0[1]1USB体系结构1.1USB体系结构USB作为一种串行总线由两根通信线两根电host源线组成0它是一种基于令牌的总线标准基于令牌deviceroothubdevice的方法与令牌环形网和FDDI相

3、似[2]0USB的拓扑为复合设备分层的星型结构如图1所示0host是根控制总线的hubhub数据通信0hub作为USB中的专用设备是各种外设与host建立连接的通道其突出特点是支持热拔插0devicedevicedevicedeviceUSB最多允许接入127种外部设备每种设备的接图1USB拓扑结构口是统一的01.2USB数据结构[3]USB数据结构由SYNC域和Packet域组成0SYNC域与IEEE802.3标准相同0Packet域共有3种分组格式它们是令牌分组~数PID地址endpoint号码CRC5据分组和握手分组0令牌分组长度为24bitsPID(分组图2令牌分组格式标识

4、)跟在SYNC之后用来描述分组的类型如图2所示校验位由类型位按位取反产生0地址共7bits对每一设备惟一0endpoint是USB设备与收稿日期:20000625基金项目:国际合作项目作者简介:张雪兰(1953-)女副教授0124北京理工大学学报第21卷[2]hOst数据传输中数据的发送点或接受点,其性质与网络中的SAP相似,不同之处是endpOint为单工或半双工方式0CRC5为校验码,作用于地址和endpOint两部分0数据分组由PID~数据域和CRC16组成,其数据域的长度是可变的(O~1O23B),按照数据传输方式的不同而不同0握手分组中只有PID,分为3种:ACK,NAK

5、和STALL(设备故障停止)0其中NAK的意义与网络数据链路层的NAK不同,USB中的NAK表示设备正忙,无法接收所传的数据,要求hOst端重发01.3数据传输USB支持4种数据传输方式:大数据量传输~控制传输~中断传输和同步传输02Vxworks的驱动程序结构VxWOrks是美国WindRiver公司开发的实时操作系统(RTOS)0标准接口支持两种设备:块设备和字符设备0其中块设备经过文件系统,字符设备不经过文件系统0应用程序通过文件名(即应用起动代码(装于操作系统的引导程序中)设备名)和文件描述符找到设Open()Create()ClOse()Read()Write()IOct

6、l()备驱动程序0驱动程序通过设IOLib.h备描述符和设备标识使用设IOsDrvInstall()IOsDevAddIOsLib.h备,3者为一链型调用方式,--调用过程如图3所示0其中xxDrv()xxDevCreate()xxOpen()xxClOse()xxRead()xxWrite()xxIOctl()xxDrv()调用OS的API-图3驱动程序调用过程iOsDrvInstall()把7个主要的驱动程序API装入操作系统的驱动程序表(drivertable)中,返回一个驱动程序号0xxDevCreate()调用OS的API-iOsDevAdd()将所需设备的描述符的设备头

7、装入OS设备的双向链表中,此表中包括设备名和相应的驱动程序号0这样设备便与驱动程序连接起来0应用程序使用时先调用操作系统的Open()函数0Open()首先通过设备名调用相应的驱动程序xxOpen(),得到设备描述符的首地址和驱动程序号,然后将这两项添入文件描述符表的一个空白项中,最后返回此项的指针,即文件描述符0以后其它应用函数便可以通过文件描述符找到所需的设备和驱动程序,完成各自的操作03USB设备端的驱动程序设计3.1USB设备端功能分析USB设备端的主要功能是

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

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

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