预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第22卷第2期河北省科学院学报Vo1.22NO.2 2005年6月JournaloftheHebeiAcademyofSciencesJune2005 文章编号:1001—9383{2005l02—0017—04 USB接口的驱动程序开发 盖素丽,常青 (1.河北省应用数学研究所,河北石家庄050081;2.河北经贸大学,河北石家庄050061) 摘要:介绍了USB的概况和WDM型的USB设备驱动程序结构,并结合开发的智能卡读写器驱动程序给 出关键例程主要代码。 关键词:USB;WDM;设备驱动程序 中国分类号:TP3l1文献标识码:A ThedevelopmentofdriverprogrammingforUSB GESu.1i。CHANGOingz (1.AppliedMathematicsInstituteofHebei,ShOiazhuangHebei050081,China; 2.HebeiUniversityofEconomicsandTrade,ShijiazhuangHebei,050062,China) Abstract:ThegeneralsituationandthedriverprogrammingstructureoftheWDMtypeforUSBareintro— duced.Asanexample,theprimarycodeoftheSmartCardreaderdriverprogrammeisgiven. Keywords:USB;WDM;Devicedriverprogram 随着微机技术水平的日益提高,传统的计算接口已经不能满足当前计算机高速发展的需求,计算机 业界迫切需要新的通用型、高速总线接口,通用外设接口标准USB就应运而生。USB(UniversalSerial Bus)是一种新型的、基于令牌的、高速的串行总线标准。 1USB概况 与其他总线接口相比,USB具有以下突出的优点: ①使用方便。支持热拔插。 ②传输速率高。目前的USB2.0协议速度高达480Mbps。 ③易于扩展。通过使用Hub扩展可连接多达127个外设。 ④使用灵活。共有4种传输模式:控制、同步、中断、批量,以适应不同设备的需要。 ⑤独立供电。 正由于上述优点,开发USB接口的设备已成为一种发展趋势。 一个完整的USB系统包括主机系统和USB设备。所有的传输事务都是由主机发起的。一个主机 系统又可以分为以下几个层次结构,如图1所示: USB总线接口包括USB主控制器和根集线器,其中USB主控制器负责处理主机与设备之间电气 和协议层的互连,根集线器提供USB设备连接点。USB系统使用USB主控制器来管理主机和USB设 备之间的数据传输,另外它也负责管理USB资源,如带宽等。应用软件不能直接访问USB设备硬件, 而通过USB系统和USB总线接口与USB设备进行交互。 USB设备包含一些向主机软件提供一系列USB设备的特征和能力的信息的设备描述符,用来配 置设备和定位USB设备驱动程序。这些信息确保了主机以正确的方式访问设备。通常,一个设备有一 收稿日期:2005—0l一28 作者简介:盏素丽(1977一),女,河北行唐人,研究实习员,主要从事计算机技术应用的研究 18河北省科学院学报2005年第22卷 奴省坦 一 ,且,l|IIl_==I_l接口功能 广亡 ¨SR磊有}控制管道■■L▲IusB逻辑设备 ⋯一l—I。。。 亡USB接口电缆亡 usB总线接口I=usB总线接口 {==物理信息流 圈1USB的多层次通信梗型 个或多个配置(Configuration)来控制其行为。配置是接口(Interface)的集合,接口指出软件应该如何访 问硬件。接口又是端点(endpoint)的集合,每一个与USB交换数据的硬件就为端点,它是作为通信管道 的一个终点。图1显示了一个多层次结构的通信模型,它表明了端点和管道所扮演的角色。 2WDM型的USB驱动程序结构 对于USB设备来说,其WDM驱动程序分为USB底层(总线)驱动程序和USB功能(设备)驱动程 序。USB驱动程序符合Windows2000下的内核模式驱动程序的分层体系结构,如图2所示。 圈2WDM型的USB驱动程序体系结构 从图2可以看出一般USB驱动程序的流程是: 当应用程序想对USB设备进行I/O操作,它需调用WindowsAPI函数,I/O管理器将此请求构造 成一个合适的I/O请求包(IRP)并把它传递给USB功能驱动程序。USB功能驱动程序接收到这个 IRP后,根据IRP中包含的具体操作代码构造相应USB请求块(Ul),并把此URB放到一个新的IRP 中,然后把它传递给USB底层驱动程序。USB底层