USB技术及其驱动程序开发(学士论文).doc
《USB技术及其驱动程序开发(学士论文).doc》由会员分享,可在线阅读,更多相关《USB技术及其驱动程序开发(学士论文).doc(43页珍藏版)》请在三一办公上搜索。
1、目录第一章 绪论 .(1)1.1 USB开发的历史背景 (1) 1.2 目前通用的各种总线和接口的大体介绍 . (2)1.3 USB总线的特点及开发意义 . (2)第二章 USB技术规范 . (5)2.1 USB的电器特性 . (5)2.2 USB的数据包格式 . (8)2.3 USB的传输类型 . (10)2.4 USB的设备架构 . (13)第三章 USB驱动程序的开发. (20)3.1 驱动程序与USB设备的通讯 (20)3.2 USB键盘驱动程序 . (24)3.2.1 程序设计的基本思想 . (25) 3.2.2 部分程序代码的说明 . (28)3.3 主机应用程序与虚拟设备的通信
2、. (37)3.3.1 程序设计的基本思想 . (37) 3.3.2 部分程序代码的说明 . (38)总结 . (42)致谢 . (43)参考资料 . (44)附录 (45)摘 要 关键词:usb,通用串行总线,串行接口规范摘要 本文主要介绍USB的技术规范以及驱动程序的具体开发,并通过一个USB键盘的实例来具体说明,展示了USB应用的大好前景。AbstractKeywords: usb,universal serial bus,serial interface criterion Abstract The paper mainly introduces the usbs technology
3、 criterion and how to develop a driver procedure of usb,and shows us the usbs beautiful future by explaining a usb keyboards driver procedure.第一章 绪论Usb(Universal Serial Bus通用串行总线)是目前各个厂家投资最多的方向之一,从通用的鼠标键盘,到即插即用的Usb硬盘,各种读写卡,带Usb插口的相机等等相继推出,它有着其他总线不可比拟的优势,是今后pc外设的主流产品。1.1 USB开发的历史背景随着电脑应用的拓展,pc机的外设越来越
4、多,机箱后的插口也形形色色:并行口,串行口,键盘口,鼠标口,游戏手柄接口,音频输入输出口,视频输出口等等等等。而按常规,用户为pc增加一个新的外设却有一套复杂的操作,至少需要作以下的工作:首先打开音箱,安装新外设的接口插卡;其次,为了避免资源占用冲突,用户必须设置跳线为新的外设插卡选择合适的IRQ,DMA和I/O口地址,然后安装外设的驱动程序。上述工作的问题是:pc有限的I/O插槽无法满足日益增加的外设需要;不具备专业知识的普通用户难于选择合适的资源和完成复杂的安装工作。因此,简化外设补充方法,使之方便易行便成为各个pc厂家面临的重大研究课题。而且目前各种总线有着这样那样不足,有的是占用内存过
5、多,有的是速度不够快,因此,在1996年召开的面向pc机硬件技术工作者会议上,Compaq,Intel和Microsoft三家厂商提出了设备插架(Device Bay)概念,Usb就是设备插架的一种规范。用户只需花费很少的时间对Usb设备进行安装和配置,就可以使用;另外,它还提供即插即用功能,用户可以在不断电的情况下直接把设备插在Usb插口上,从而使连接到pc机上外设的连接和配置变得很容易。现在USB外设得到了更新更快的发展。存储器方面,以前的4兆,8兆的OnlyDisk(优盘),还有USB接口的读写卡,现在的10G20G的USB移动式硬盘,而且可以根据需要自己给生产厂家说明生产要求,需要多大
6、的硬盘就生产出多大的硬盘;速度方面,由于USB2.0规范的出现,数据传输越来越快,以前的电脑眼实时传输数据,还会出现一帧一帧的跳动,现在的数码相机,网上聊天摄像机等等,真正做到了实时传输;在办公用品方面,扫描仪,打印机等都出现了USB接口的产品,使得人们的工作和生活方便了许多。1.2 目前通用的各种总线和接口的大体介绍PCI总线Pci总线是Intel公司为Pentium处理器设计的一种新型标准总线,这种总线技术允许快速的内存,磁盘和视频访问。Pci总线结构的高传输速度限制了pci接口的数量,一般只能有两到三个(通常用于图形和硬盘控制器)。如果数据进行的是64位传输,系统时钟速度为33MHz,那
7、么最大传输速度为264Mb/s,比较起Usb2.0的最大传输速度为480Mb/s来说,还是差了很多。一般pc厂家为了适应高速据传输速度和缩小接口卡的尺寸,Pci插槽与pc,isa和Eisa不再兼容。Pci总线的最大传输速度为264Mb/s,该速度只能在基于Pentium处理器的系统中使用64位软件才能达到。在一个基于80486处理器的系统中,最大数据传输速度只有132Mb/s。SCSI总线接口Scsi是一种智能型的总线子系统,可以支持多个外设同时协同操作,每个设备都有一个优先级。单个总线系统最多可以支持7个设备。既可支持高质量的接头和电缆,也支持低质量的接头和电缆。而且在快速传输和增强型外设的
8、支持方面有很大的潜力。目前各种scsi总线中,最好的Ultra-Scsi总线支持32位数据总线,最大数据传输率为40Mb/s,可接到的最多设备数为15个。IDE接口(AT总线)Ide接口一般用于磁盘和光盘接口,它的特点是磁盘控制器做在驱动器里面,通过一个电缆直接与主板连接。这根电缆允许多个驱动器连接到系统,而不必担心总线和控制器冲突等问题。通常Ide接口还包含至少32Kb的磁盘缓存。现在典型的pc机主板上有两个Ide接口,每个接口可以连接两个硬盘或者一个硬盘和一个光驱,即最多可以接四个设备,数据传输率最大可以达到16.6Mb/s。1394接口1394接口有着很多和Usb相类似的特点,但是目前由
9、于1394外设过于昂贵,只能用于公司或者高端用户,所以还没有成为广大pc厂家所支持并流行起来的接口。1.3 USB总线的特点及开发意义USB作为计算机结构的一种新的扩展,主要致力于计算机电话一体化和应用类消费产品。它的数据传输速率比串、并口都要高 ,USB总线具有时分复用的特点 ,多个不同速度的 USB外设可以通过集线器同时连接到同一台计算机的同一个 USB口上 ,在 USB总线带宽允许的情况下 ,多个外设可以同时工作而不相互影响。 USB传输速率适用于计算机的中低速外设 ,USB高速模式下支持实时的视频、音频和压缩的视频数据传输。现在生产的pc都配备了Usb接口,Microsoft 的Win
10、98,NT,Wind2000,Windows XP以及Mac OS,Linux, FreeBSD等流行的操作系统都增加了对Usb的支持。Usb有如下的特点和优点:(1) 速度快。Usb1.1标准有高速和低速两种工作方式,主模式为高速模式,速率为12Mbps/s。Usb2.0把速度提高到480Mbps/s,可以在上面开发功能更多的电子产品,并且,在Usb2.0上,多个高速外设可以同时运行。(2) 设备配置和安装容易。如上所述,所有Usb设备支持即插即用,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关配置。(3) 易于扩展。通过使用Hub,理论上可最多接127个外设。标准的Usb电缆长度为3
11、m(低速为5m)。通过Hub或者中继器可使外设距离达到30m。可以使用多种连接方式进行扩展,图11是一个典型的外设配置方案。主机设备 设备根HUB复合设备 HUBHUB设备设备设备HUB图11(4) 能够采用总线供电。Usb总线能提供最大电压5V,最大电流500mA。这样就另外为某些低电压电流的Usb外设提供额外电源。(5) 使用灵活。Usb共有四种传输模式,控制传输,同步传输,中断传输和批量传输(这些内容的细节在第二章有详细的介绍),以适应不同的需要。基于以上的这些优于其他总线的特点,开发Usb是势在必行的方向,也是本论文所要研究的意义。但是,随之问题也就来了,尽管操作系统为Usb设备提供了
12、用户需要的驱动程序,在一般情况下,设备一插到pc上就可以使用了,这是最好不过的事情。但是,事实上并不是如此,现在已经有上千种不同的设备,而且每天还有许多不同的设备在问世,操作系统不可能为所有的设备提供全部的驱动程序;而且,即使提供了通用的驱动程序,能够驱动Usb设备进行工作,那也可能是针对某一类设备提供的通用驱动程序,许多个别设备的优点在这种通用的驱动程序驱动下,不能发挥出来;另外,作为我们消费者而言,总不能花了相对多的钱来用一个用很少的钱买的设备就能实现的功能,这对设备和人来说,都是一种浪费。在原有驱动程序的基础上,自己开发出设备新的功能,或者自己干脆从头做起,都是一种不错的选择。本论文完成
13、的关于Usb键盘的驱动程序开发,就是基于这种目的而设计的。第二章 USB技术规范设计USB的目标就是使不同厂家所生产的设备可以在一个开放的体系下得到广泛的使用。USB2.0规范改进了便携商务或家用电脑的现有体系结构,进而为系统生产商和外设开发商提供了足够的空间,以用来创造多功能的产品和开发广阔的市场,而且不必担心失去旧的接口,失去兼容性。下面从五个方面简要介绍此规范。2.1 USB的电器特性USB的电气特性主要是描述信号的发送及电压分布情况。下面我们将分别对其进行详细介绍。1、信号的发送USB通常使用一种差分的输出驱动器来控制数据信号在USB电缆上的发送,一个USB设备端的连接器是由D+、D-
14、及Vbus,GND和其它数据线构成的简短连续电路,并要求连接器上有电缆屏蔽,以免设备在使用过程中被损坏。它有两种工作状态,即低态和高态。在低态时,驱动器的静态输出端的工作电压Vo变动范围为00.3V,且接有一个15k的接地负载。处于差分的高态和低态之间的输出电压变动应尽量保持平衡,以能很好地减小信号的扭曲变形。下图是Usb电缆的示意图:图2-1在任何驱动状态下,USB设备必须能接收如图2-2所示的波形。这些波形从一个输出阻抗为3P的恒流电压源直接进入每一个USB数据口。高速USB设备的连接电缆是阻抗为9015%,最大单路时延为26ns的屏蔽双绞线电缆,其到达的最大速率为480Mb/s,并且每个
15、驱动器的阻抗必须在2844之间。低速USB设备在插口端必须要有一个带有串行口连接器的可控制电缆,其速率为12Mb/s。当电缆与设备相连时,在D+/D-线上必须要有一个200450PF的单终端电容器。低速电缆的传播时延必须小于18ns,从而保证信号在其上升沿或 靠近设备的USB连接器上的D+或D_插口USB设备USB设备上的输入保护设备可能互相排斥,故观察数据输入端口时,可能发现由电压生成器产生的信号波形会变形。 图22 USB信号发送的最大输出波形者下降沿的第一个中点产生。Usb信号的发送有其发送的标准,具体如表2-1所示,在该表中,J和K这两个数据态是两个逻辑电平,在系统中,通常被用来进行交
16、换差分数据。差分数据信号的发送并不关心信号经过的地方电平情况,它只要求桥电压在1.32.0V之间。另外,在接收端,空闲态和工作态在逻辑上分别与J态和K态等价。一般而言,数据,空闲信号及唤醒信号的发送标准均由端口的设备类型所决定。如果连结的是高速设备,则USB使用所规定的高速率来发送信号并且有很快的上升沿和下降沿时间,甚至还可用低速率来发送数据,而对于表2-1中所示的低速信号发送标准仅用在低速设备与其所连接的端口之间(上升沿和下降沿时间较长)。USB设备是一个智能型的设备,当它发现主机或集线器的下形端口上没有设备连接时,端口上自带的Rpu电阻将使D+和D-上的电压低于主机或集线器端口的单终端电压
17、,此时该端口不是由集线器控制的,这将在下形端口产生一个SE0态。如果主机或集线器不在控制数据线并且下形端口的SE0态的持续时间超过2.5ns,则此时USB设备将中断信号的发送,此时表示pc将认定没有设备连接到端口上。如果集线器发现其中一根数据线上的电压大于它的临界值的持续时间超过2.5us,则表示pc知道端口上连接了一个设备,便开始信号的发送。表21 信号发送的标准 总线状态 信 号 电 平 开始端的源连接器 (一位时端) 终端的目标连接器 需要条件 接受条件差分的“1”D+Voh(min) D-200mv(D+)Vih(min)(D+)-(D-)200mv差分的“0”D-Voh(min)D+
18、200mvD-Vih(min)(D-)-(D+)200mv单终端“0”(SE0)D+和D-Vol(max)D+和D-Vil(max)D+和D-Vihz(min)D+Vil(max)D+Vihz(min)D-Vihz(min)D+Vihz(min)D-Vih(min)唤醒状态数据K状态数据K状态包开始(SOP)数据线从空闲态转到K态包结束(EOP)SE0近似的为2位时其后仅接着1位时的JSE01位时其后仅接着一位时的J态SE01位时其后仅接着J态包结束(EOP)SE0近似地为2位时其后仅接着1位时的JSE01位时其后仅接着一位时的J态SE01位时其后仅接着J态断开(在下行端口处)N.A.SE0持
19、续时间大于等于2.5微秒连接(在上行端口处)N.A.空闲态持续时间大于等于2毫秒空闲态持续时间大于等于2.5微秒复位D+和D-小于Vol(max)的持续时间大于等于10毫秒D+和D-小于Vil(max)的持续时间大于等于10毫秒D+和D-小于Vil(max)的持续时间大于等于2.5微秒2、电压分布所有USB设备的缺省电压为低电压,当设备要从低电压变化到高电压时,则是由软件来控制的。在允许设备达到高电压之前,软件必须保证有足够的电压可供使用。 USB支持一定范围的外设来提供电压来源和电压消耗,包括如下的部分。 根端口集线器:它是直接与USB主机控制器相连的,并与其有相同的电源来源。从外部获得操作
20、电压(AC或DC)的系统,在每个端口至少支持五个单位负载,这些端口称为高电压端口。由电池组提供电压的系统可以支持一个或五个单位负载。哪些只能支持一个单位负载的端口称为低电压端口。 从总线获得电压的集线器:它的所有内部功能设备和下形端口都从它的上形端口的Vbus上获得电压。在电压升高时,它可以接一个单位负载,经过初始设置后,它可以接五个单位负载。初始设置电压被分配给了集线器,任一固定功能设备和外部端口。它的外部端口只能接一个单位负载,当集线器处于活动或挂起态时,它必须为这个端口提供电流。自给电压集线器:它的任一内部功能设备和下形端口不再从Vbus上获得电压,但当它的其余部分电压下降时,它的USB
21、接口可接一个单位负载并从Vbus处获得电压,以允许该接口能工作。从外部(从USB)获得操作电压的集线器,可在每个端口接五个单位负载。由电池组提供电压的集线器,每端口可接一个或五个单位负载。从总线获得电压的低电压功能设备,该种设备上的所有电压均来自Vbus,在任一时刻,它们最多只能接一个单位负载。从总线获得电压的高电压设备。该种设备上的所需电压均来自Vbus。在电压升高时,它们至多只能接一个单位负载,但当初始设置后,可接五个单位负载。自给电压功能设备,如图17,当它的其余设备电压下降时,它可以接一个单位负载,并从Vbus上获取所需电压,以使USB接口处于活动状态。2.2 USB的数据包格式USB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- USB 技术 及其 驱动程序 开发 学士 论文

链接地址:https://www.31ppt.com/p-2392482.html