毕业设计(论文)-USB接口的设计.doc_第1页
毕业设计(论文)-USB接口的设计.doc_第2页
毕业设计(论文)-USB接口的设计.doc_第3页
毕业设计(论文)-USB接口的设计.doc_第4页
毕业设计(论文)-USB接口的设计.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北科技学院毕业设计(论文) 第 i 页 共 58 页 本科毕业 设计(论文) 题目: usb 接口的设计 2007 年 6 月 usb 接口的设计 第 ii 页 共 58 页 usb 接口的设计 摘要:usb 即通用串行总线(universal serial bus) ,是一种高传输速率的串行接口 总线,具有非常广阔的应用前景。 本文研究了利用 usb 总线进行数据传输的几个重要方面:外部设备的硬件组成和 外设与主机的连接、配置,并给出 pc 机上的设备驱动程序和用于验证数据传输过程的 应用程序。具体研究内容如下: 研究了 usb 总线的原理和规范,并掌握了数据传输机制和总线工作方式。usb 设备 都可以归结为控制器和 usb 电气接口这两个基本部分的组合。在设计中,采用的控制 器是 51 单片机 at89c51,usb 电气接口则是 philips 公司的 usb 接口芯片 pdiusbd12。 接着介绍了系统软件的具体实现,包括固件程序,系统驱动程序和应用程序的设 计实现。这一部分重点阐述了系统固件的实现,以及如何运用软件工具 win driver 开 发系统驱动和应用程序;论文最后一部分讲述了系统的调试过程,包括硬件测试和在 win driver 环境下的系统调试,以及在调试过程遇到的问题和解决方法。 关键词:usb;单片机系统;pdiusbd12;数据传输;外部设备 华北科技学院毕业设计(论文) 第 iii 页 共 58 页 the design of usbs connection abstract :universal serial bus(usb) is a kind of the serial buses with high speed on transmitting which will be wildly used in the future. this paper discusses some important aspects of the method of data transmitting: the hardware constituting the peripheral, the connecting and configuring between peripheral and pc. introducing the device driver on pc and the application program is being used to illuminate the progress of transmitting data through usb. the specific content of studying is as following. this paper is to study the theory and the specification of usb, and master its mechanism of data transmitting and the method on which the bus works. in later chapters, we can see, all the usb apparatus can come down to two basic association of part: a controller and a usb electric interface. in this system, i adopted 51 one-chip computer at89c51 as its controller, the chip pdiusbd12 of philips company as its electric interface. the following part recommended the software of the system, including the design of firmware program, driver and employ program. this chapter will emphasize in describing the design of firmware. key words:usb;single-chip computer system;pdiusbd12;data transmitting peripheral 华北科技学院毕业设计(论文) 第 iii 页 共 58 页 目 录 摘 要 i abstractii 1 绪论1 1.1 课题研究的目的和意义1 1.2 usb 的发展历程2 1.2.1 usb1.13 1.2.2 usb2.04 1.2.3 usb 的应用与前景5 1.3 主要研究内容6 2 usb 通用串行总线的规范及基本原理7 2.1 引言7 2.2 usb 总线体系结构7 2.2.1 总线拓扑结构 7 2.2.2 usb 的通信模型8 2.2.3 数据流 8 2.2.4 usb 硬件结构9 2.2.5 usb 软件结构10 2.2.6 总线协议 11 2.2.7 总线工作过程 12 2.3 usb 的主要特点及应用范围13 2.3.1 usb 的主要特点13 usb 接口的设计 第 iv 页 共 58 页 2.3.2 usb 的应用空间14 2.3.3 当前 usb 最佳的应用领域14 2.4 usb 与 ieee1394 的比较15 2.5 本章小结15 3 系统硬件电路设计16 3.1 引言16 3.2 总体方案16 3.3 各芯片的简介和连接方式17 3.4 pdiusbd12 命令代码功能与用法19 3.5 本章小结22 4 usb 外设的设备驱动和应用程序23 4.1 引言23 4.2 固件程序的设计与实现23 4.3 驱动程序的设计与实现23 4.4 系统应用程序开发24 4.5 本章小结27 5 结论28 参考文献29 致谢30 附录 a31 附录 b39 附录 c39 华北科技学院毕业设计(论文) 第 5 页 共 58 页 1 绪论 1.1 课题研究的目的和意义 随着计算机技术的不断提高,计算机已经逐渐深入生产生活的各个层面,并带来 了翻天覆地的变革。随之而来的是计算机外设的极大丰富,并对计算机的接口标准有 了更高的要求。本课题的研究的目的是为了实现数据在 pc 机和 usb 外设之间的传输和 存储。基于 usb 总线采用级联的拓扑结构,一个 usb 控制器可以连接多达 127 个外设。 它的这种特性使得在计算机外围设备连接中有效的节省计算机资源。所以研究在主机 和 usb 设备之间的数据通信又有特别重要的意义。usb 即插即用、易于扩展和高传输数 率的特点也使得 usb 的应用成为一种必然趋势。 usb 是一种通用串行总线系统,是最近两年针对多媒体传输的需要而新出现的连接 系统。它为多媒体计算机网络实现桌面办公室自动化提供了强有力的支持工具。可支 持声音、音频及压缩视频的实时传送,其主要目的是为满足桌面总线系统,但它也能 实时地应用于移动环境要求。usb 的主要特性包括: (1)适合带宽几 kbps 至 12mbps 的设备(2.0 版的带宽可达 480mbps) (2)支持同步和异步传输 (3)最大支持 127 个物理设备的连接 (4)支持主机和外围设备之间多个数据和信息流的传输 (5)保证了如电视、音频等低带宽和低时延要求 和传统的计算机系统相比,usb 系统具有很多突出的优点。usb 将不同标准的接口 统一起来。那些原来需要配接插卡才能使用的一般外设,如果配有 usb 接口就不需要 插卡。用户插入外设后,计算机能够自动识别外设,而不需要重新启动系统,用户可 以带电插拔。为 usb 设计的驱动程序和应用软件可以自行启动,用户无需干预 usb 设 备,也不涉及 irq 冲突等问题,它单独使用自己的保留中断,不会同其它设备争用 pc 的有限资源,为用户省去了硬件配置的麻烦。usb 能真正做到“即插即用” ,usb 的通 用性简化了用户在判断那个插头对应那个插槽的任务,实现了单一的数据通用接口, 并且其通用性使它很适合笔记本计算机。 usb 可以为外设提供电源,而不像普通的串、并口的设备都需要单独的电源系统。 也就是说 usb 在设备供电方面提供了灵活性。usb 直接连接到集线器(hub)或是连接 到主机(host)的设备可以通过 usb 电缆供电,也可以通过电池或其它电力设备来供 usb 接口的设计 第 6 页 共 58 页 电,或使用两种供电方式的组合,并且支持节约能源的挂起和唤醒模式。 快速是 usb 技术的突出特点之一。usb 接口可工作在低速状态(1.5mbps)和全速 状态(12mbps) ,到 2.0 版本,usb 接口的传输数率可达 480mbps。 由上述可知,对于 usb 通用串行接口数据传输的研究具有非常重要的意义。掌握 并能应用 usb 接口的电器特性与协议等规范,对于我们今后开发新的 usb 外设,建立 计算机与外界之间的数据通信有着很重要的作用。它使我们的连接更简单方便,数据 的传输速度更快,性能也更可靠。 1.2 usb 的发展历程 usb 在 1995 年被提出,并由 compaq、digital equipment corp、 (现在属于 compaq) 、ibm、intel、microsoft、nec 和 northern telecom 七个计算机与通信工业 领先的公司所组成的联盟所定义和加以推广。同一年,该联盟建立了实施者论坛 (usb-if)来加速 usb 标准的高质量兼容设备的开发。 在 1996 年,usb-if 公布了 usb 规范 1.0,这是第一个为所有的 usb 产品提出设计 请求的标准。1998 年,在进一步对以前版本的标准进行阐述和扩充的基础上,发布了 usb 标准的 1.1 规范。而此时联盟仅剩四个核心的成员公司,它们是 compaq、intel、microsoft 和 nec 公司。由于 usb 的方向已偏离了通信的相关领域, 使得 ibm 和 northern telecom 退出了该联盟。这样,也造成了目前应用于电话的 usb 设备的发展仍然稍嫌缓慢一些。 第三个版本的 usb2.0 是发布于 1999 年。此时,hewlett packard、philips 和 lucent 三个公司加入了 usb-if 联盟,使得联盟的核心成员数重新又恢复为七个。之后, 随着 usb 的普及与推广,usb 的成员一直持续不断地增加,如今已是非常庞大的推广组 织了。 1.2.1 usb1.1 当前,usb1.1 的接口设备采用两种不同的速度:12mbps(全速)和 1.5mbps(慢 速) ,其中,慢速主要是应用于人机接口(hid)上。这是一个用于连接鼠标、键盘、 摇杆等设备的 usb 的群组。尽管当前的 usb1.1 的最大带宽速度为 12mbps,但是主机端 应用程序与其他的接口设备仍占据了部分的带宽。 1.2.2 usb2.0 虽然 usb 号称具有热插拔、即插即用、最多同时连接 127 个设备等功能,但是其 华北科技学院毕业设计(论文) 第 7 页 共 58 页 中还是有若干缺点。例如,热插拔多次后往往会造成系统不正常死机以及连接过多的 设备就会导致传输速度变慢等问题(usb 的传输带宽是由设备共享的) ,因此如何改进 这些缺点便成为 usb-if 推广组织所要努力的目标。 在 usb 接口设备不断地被广泛应用后,许多的设备,如视频会议的 ccd、移动硬 盘、光盘记录机、扫描仪、卡片阅读机便成为 usb 接口非常流行的应用。市场上许多 早期应用的 usb 产品是视频会议专用的 ccd,而 usb 的即插即用的特点使得这些 ccd 易 于安装和使用。然而,若要在 pc 的屏幕上获得高分辨率的图像,则需要 ccd 输出大量 的影像数据。像上述的产品都需要作大量的数据传输,也即是需要非常高速的传输。 若同时将北类设备连接到 pc 机上,的确使 usb 技术面临考验。但 usb2.0 的高传输速 度却能够有效地解决目前建置于 v1.0 及 v1.1 版上设备的传输瓶颈。 usb2.0 的传输速度最高可以达到 480mbps,也即是 480mbits/s(换算后等于 60mbytes/s) ,若要传送 1gb 的数据,在换算后也仅需在 1 分钟之内就可以传输完毕, 这不但是目前 usb1.1 版的 40 倍,而且也高过于目前另一种传输接口 ieee1394 的 400mbps。 另外,usb2.0 不但与 usb1.1 一样,具有向下兼容的特性,同样最高可以连接 127 个设备。更重要的是,在连接端口扩充的同时,各种采用 usb2.0 的设备仍可以维 持 480mbps 的最高传输速度。另外,usb2.0 也同样支持即插即用功能。在 usb2.0 规范 制定出来之后,目前 usb 接口 cd-rom 光驱读取速度所造成的限制,到时也都可以迎刃 而解。当然,目前已普遍采用 usb 接口的打印机、扫描仪等计算机外围设备,未来也 将可以有更快的传输速度。 usb2.0 利用传输时序的缩短(微帧)以及相关的传输技术,将整个传输速度从原 本 12mbps 提高到 480mbps,整整提高了 40 倍。在兼容性方面,usb2.0 采用往下兼容 的作法,未来 usb2.0 仍可向下支持目前各种以 usb1.1 为传输接口的各种外围产品, 也就是旧有的 usb1.x 版传输线、usb hub 依旧可以使用;不过,若是要达到 480mbps 的速度,还是需要使用 usb2.0 规范的 usb hub。当然,各个外围设备也要重新嵌入新 的芯片级以及驱动程序才可以达到这个功能。也就说,若需要使用高速传输设备,就 接上 usb2.0 版的 usb hub;而只要低速传输需求的外围设备(如鼠标、键盘等) ,则接 上原有的 usb hub,便可过到高低速设备共存的目的。对于旧有的 usb1.1 规范设计产 品的传输速度最高仍仅能维持 12mbps。 usb2.0 对许多消费性电子应用,如视频会议 ccd、扫描仪、打印机以及外部存储 usb 接口的设计 第 8 页 共 58 页 设备(硬盘以及光驱)来说拥有相当大的吸引力。以目前采用 usb1.1 版规范的视频会 议 ccd 来说,用户必须在里面加上特殊的数据压缩引擎 asic;但是在新的 usb2.0 版下, 这个数据压缩引擎可以因为 usb2.0 版更高的数据传输能力而省下。因此,采用 usb2.0 版规范的视频会议摄影机将会变得更便宜,却拥有更好的分辨率。 1.2.3 usb 的应用与前景 到目前为止,usb 已经在 pc 机的多种外设上得到应用,包括扫描仪、数码相机、 数码摄像机、音频系统、显示器、输入设备等等。 扫描仪和数码相机、数码摄像机是从 usb 中最早获益的产品。传统的扫描仪,在 执行扫描操作之前,用户必须先启动图像处理软件和扫描驱动软件,然后通过软件操 作扫描仪。而 usb 扫描仪则不同,用户只需放好要扫描的图文,按一下扫描仪的按钮, 屏幕上会自动弹出扫描仪驱动软件和图像处理软件,并实时监视扫描的过程。usb 数码 相机、摄像机更得益于 usb 的高速数据传输能力,使大容量的图像文件传输在短时间 内即可完成。 usb 在音频系统可以把数字音频信号传送到音箱,不再需要声卡进行数模转换,音 质也较以前有一定的提高。usb 技术在输入设备上的应用也很成功,usb 键盘、鼠标器 以及游戏杆都表现得极为稳定,很少出现问题。 早在 1997 年,市场上就已经出现了具备 usb 接口的显示器,为 pc 机提供附加的 usb 口。这主要是因为大多数的 pc 机外设都是桌面设备,同显示器连接要比同主机连 接更方便、简单。目前市场上出现的 usb 设备还有 usb modem、iomega 的 usb zip 驱 动器以及 etek 的 usb pc 网卡等等。 对于笔记本电脑来说,使用 usb 接口的意义更加重大,通用的 usb 接口不仅使笔 记本电脑对外的连接变得方便,更可以使笔记本电脑生产厂商不再需要为不同配件在 主板上安置不同的接口,这使主板的线路、组件的数量以及复杂程度都有不同程度的 削减,从而使系统运行中的散热问题得到了改善,也将促进更高主频的处理器可以迅 速应用在移动计算机中,使笔记本电脑与桌面 pc 的差距进一步缩小。 现在,支持 usb 的 pc 及外设越来越多,在软件上 usb 也已成为 windows 98 的一 个关键部分,并很快在 windows ce/me 和 windows 2000/xp 中得到支持。apple 的操作 平台早已提供对 usb 的支持,预计今后 sun 和 digital 的平台也将会提供对这一技术 的支持。 usb 的应用会越来越广泛,一些业界人士甚至预测,未来的 pc 将是一个密封设备, 华北科技学院毕业设计(论文) 第 9 页 共 58 页 所有外设都将通过 usb 或其他外部接口连接。 1.3 主要研究内容 本文主要的研究内容有: (1)研究 usb1.1 和 usb2.0 的规范 (2)完成 usb 设备的设计和搭建 (3)编写用来完成硬件和软件之间联系的 usb 设备驱动程序 usb 接口的设计 第 10 页 共 58 页 2 usb 通用串行总线的规范及基本原理 2.1 引言 通用串行总线 usb(universal serial bus)是用来实现计算机外设的机外连接的 总线结构。同时又是一种通信协议,它支持主机系统(host)和 usb 的外围设备之间 的数据传送。它具有传输速率快、使用方便、支持即插即用、热插拔等特点,有着传 统的串行接口所不能比拟的优越性。 2.2 usb 总线体系结构 一个 usb 系统可以从三个方面加以描述: (1)usb 互联 (2)usb 设备 (3)usb 主机 usb 互联是指一个 usb 设备与主机相联并和其通信的方式,它包括: (1)总线拓扑结构:usb 主机和 usb 设备的连接模型 (2)层间关系:usb 在系统中的每一层都要完成一定的任务 (3)数据流模型:usb 系统中信源和信息之间的数据传送方式 2.2.1 总线拓扑结构 usb 系统 usb 设备和 usb 主机通过 usb 总线连接。usb 的物理连接是一个星型拓扑 结构(图 2-1) ,集线器(hub)位于每个星型结构的中心,每一段都是主机和某个集线 器或某一功能设备之间的一个点到点的连接,也可以是一个集线器与另一个集线器或 功能模块之间的点到点的连接。总线上允许一次可同时连接多达 127 个设备,多达 6 级。总的引线长度,对于低速 usb 传送,不允许超过 5m,对于高速传送,则不允许超 过 3m,通过 hub 或中继器可以使外设距离达到 30m。 华北科技学院毕业设计(论文) 第 11 页 共 58 页 图 2-1 usb 总线物理拓扑结构 图 2-2 usb 总线逻辑拓扑结构 由于 usb 设备以星形拓扑结构与主机相连,所以主机与每一个逻辑设备之间的通 信好像是跟直接在根集线器上相连的设备一样。图 2-2 给出了与 图 2-1 的物理拓扑结 构相对应的逻辑拓扑结构。集线器也是一个逻辑设备,但在图 2-2 中并未给出。虽然 大多数主机和逻辑设备的操作都使用这种逻辑视图,但为了处理集线器的移出操作, 主机仍然需要了解实际的物理构成情况。 在 usb 规范标准中也定义了两种外围设备:(1)单机设备,如鼠标等;(2)复和性 设备,如数字照相机和音频处理器共享一个 usb 通信端口等。每个接口设备都具有 “端点” (endpoint)地址,它是由令牌封包内的 4 位字段(endp)所构成的。而主机 主机 逻辑器件逻辑器件 逻辑器件 逻辑器件逻辑器件 usb 接口的设计 第 12 页 共 58 页 与端点的通信,是经过“虚拟管线” (virtual pipe)所构成的。而一旦虚拟管线建立 好这后,每个端点就会传回“描述” (descriptor)此设备的相关信息(即是描述符) 给主机。这种“描述”信息内含了:群组特性、传输类别、最大封包大小与带宽关于 此外围设备的重要信息。而在目前 usb 的数据传输类别有四种类型:控制、中断 (interrupt) 、批量(bulk)与等时(isochronous) 。 对于 usb 的通信,用户可以将其视为一种虚拟管线的概念。在整个 usb 的通信中 包含了一个大的虚拟管线(12mbps)以及高达 127 个小的虚拟管线,而每一个小的虚 拟管线可比拟为 usb 的设备。这是由于在 usb 令牌封包中都含有 7 个用来寻址的位 (位于令牌封包的地址数据域 addr) ,因此最多可寻址到 128 个设备。但是由于地址 0 是预设地址,且用来指定给所有刚连上的设备。这也就是为什么 usb 总路线上最多能 连接到 127 个设备的原因。 每一个连接到设备的小虚拟管线又可再细分为许多的微虚拟管线。这些微虚拟管 线可比拟为端点(endpoint) 。由于在令牌封包中,包含了 4 个位的端点地址(位于端 点数据域,endp)以及一个位于端点描述符中的输入/输出方向(in/out)位,所以在 一个单独的小虚拟管线内最多可再分割成 16 组的微虚拟管线(端点) ,也就是可对 16 个输入/输出的端点(共 32 个端点)寻址,并可将 usb 的令牌封包中定义为 in(设备 至主机)或 out(主机至设备)两类型的令牌封包。如果设备收到了一个 out 令牌封包, 则它将会从主机接收到数据。 2.2.2 usb 的通信模型 图 2-3 给出了 usb 通信模型的基本通信流和相互关系。主机和设备可以分成图 2- 3 中描述的层次。主机上的实际通信用垂直箭头指出。在主机和设备之间进行的通信, 最终都必须出现在物理的 usb 电缆上。但是,在水平方向上的各层之间都有主机和设 备的逻辑接口驻留在主机上的客户软件和设备所提供的功能模块之间存在的这些通信, 都是以根据当前正在使用设备和设备所提供的功能的应用的需要而进行的联系为代表。 华北科技学院毕业设计(论文) 第 13 页 共 58 页 usb系统软件 usb主机控制器 功能 usb逻辑设备 usb总线接口 客户软件 互连主机设备 实际数据流逻辑数据流实现区 usb功能层 usb设备层 usb接口层 图 2-3 usb 的通信模型 每一个 usb 中只有一个主机,它的主要分层是: (1)usb 总线接口 (2)usb 系统 (3)客户 usb 总线接口控制了电气和协议层的交互。从互连的角度看,一个类似的 usb 总线 接口由主机和设备一起提供。但是在主机上,由于在 usb 内主机所拥有的唯一性,usb 总线接口具有额外的责任并且以主控制器的形式而实现。 usb 系统有三个基本的组件: (1)主控制器驱动程序 (2)usb 驱动程序 (3)主机软件 客户层描述了所有负责直接同其外设打交道的软件实体。当每一个设备分别接入 系统时,这些客户可以直接同外围硬件打交道。usb 的共享特性被存放在客户和其设备 之间所存在的一个 usb 软件堆栈内,也就是说,一个客户不能直接访问设备硬件。 总的来说,主机层提供了下列功能: (1)检测 usb 设备的接入和拆除操作 usb 接口的设计 第 14 页 共 58 页 (2)管理在主机和 usb 设备之间所进行的 usb 标准流量控制 (3)管理主机和 usb 设备之间所存在的数据流 (4)搜集状态和性能统计信息 (5)控制主控制器和 usb 设备之间存在的电气接口,还包括提供有限的电源 2.2.3 数据流 主控制器负责在主机和 usb 设备之间传输数据流。这些数据传输将被作为一个连 续的字节流来对待。usb 支持四种基本的数据传输类型: (1)控制信息传输:用于在 usb 接入总线时对其进行配置,其它的驱动软件可以根 据具体的应用来选择使用控制传输。这种数据传输不会丢失数据。 (2)批量数据传输:典型的批量数据包括像使用打印器或扫描仪时所出现的数据量 的数据。这种批量数据是连续的。通过在硬件中实现差错检测功能,并且有选择地进 行一定的硬件重试操作,可以在硬件层次上保证数据的可靠交换。而且,批量数据可 以占有总线上所有可用的和其它传输类型未用的带宽。 (3)中断数据传输:由设备自发产生的数据传输是中断数据传输。这类数据传输可 以由 usb 设备在任意时刻发起,而且 usb 总线以不低于设备说明的速率进行传输。典 型的中断数据包括事件指示、特性等。它们由一个或数个字节组成,例如来自一个指 定设备的同步信号。尽管 usb 协议并不需要一个明确的时钟速率,但数据交互会有 usb 协议必须支持的反应时间限制。 (4)同步传输:同步数据在产生、传送和处理过程中都是连续的和实时的。在稳定 的同步数据发送和接收速率中包含了相应的时钟信息。为了保持定时关系,同步数据 必须按照接收的速率进行传输。除了传输速率,同步数据也可能会对传送敏感。对同 步管道而言,所需的带宽与相应功能设备的抽样特性有关。而时延要求则与每一端点 的缓冲能力有关。同步数据的典型例子是声音信号。如果这些数据流的传送速率不保 持一致的话,由于缓冲区或帧结构溢出或欠载工作,数据流会出现假信号。即使数据 以适当的速率进行传输,传送时延也会损害一些具有实时性的要求,例如电话会议。 可以保证对同步数据的实时传送,但是要以数据中存在潜在的数据暂时丢失可能性为 代价。换句话说,任何在传输中电气方面出现的错误都不能用像重试这样的硬件机制 来加以纠正。在实际中,usb 的误比特率很低,可以不予考虑。协议中允许在整个 usb 带宽中分出一部分专门用于 usb 同步数据流,从而保证了这些数据可以按所需的速率 进行传输。usb 同样支持要求时延很小的同步数据传输。 华北科技学院毕业设计(论文) 第 15 页 共 58 页 2.2.4 usb 硬件结构 一个 usb 系统一般分三个部分:usb 主机、usb 设备、usb 集线器。 (1)usb 主机:主机控制着总线上的数据和控制信息的流动。无论在软件还是硬件 层次上,usb 主机都处于 usb 系统的核心。主机系统不仅包含了用于和 usb 外设进行通 讯的 usb 主机控制器及用于连接的 usb 接口(sie) ,更重要的是主机系统是 usb 系统 软件和 usb 客户软件的载体。每个系统允许仅有一个主机,而为 usb 器件连接主机系 统提供主机接口的部件被称为 usb 主机控制器。usb 主机控制器是一个由硬件、软件和 固件组成的复合体。 (2)usb 设备:可以分为 usb hub 和 usb 功能设备。usb 功能设备即可以为主机系 统提供某种功能的 usb 器件,功能设备为主机系统提供更好的性能,涉及像键盘或游 戏棒和监视器,或更先进的数字电话和图像等典型的 pc 设备。usb 的功能设备作为 usb 功能,它必需保持和 usb 协议的完全兼容,并可以回应标准的 usb 操作。同样,用 于表明自己身份的“bios”系统对于 usb 外设也是必不可少的,这在 usb 外设上被称 为协议层。 (3)usb 集线器 根集线器 一块具有 usb 接口的主板通常集成了一个成为 root hub 的部件,它 为主机提供一个到多个可以连接其它 usb 外设的 usb 扩展接口,我们通常在主板上见 到的 usb 接口都是由 root hub 提供的。根集线器对主控制器是最高连接,usb 描述中 要求系统只有一个根集线器,且连接到主控制器上。 集线器:它是 usb 结构的特定成分,它提供总线连接接口、设备的连接和悬挂 及设备电源等关键特性,还提供总线故障检测和恢复。 用户可以了解到 usb 接口的数据传输方式是采用串行的方式,其类似于 rs-232 串 行传输的方式。当然,采用串行的方式,最主要是可以降低使用的信号线数目,并可 让信号传递较远的距离。所以 usb 的连接线内部仅有 4 条线,其中 2 条是+5v(vbus) 接地线(gnd) ,另外 2 条则是差动的数据线(d+与 d) ,长度最长可以达到 5m(对全 速设备而言) 。 由图 2-1 的阶层梯式星形的拓扑结构,可以看到主机端与集线器或设备必须依循 由上下或由下上的连接方向。为了避免连接错误,在 usb 规范中定义了两种不同 大小形状的 usb 连接头。 a 型连接头:用来连接下游端口的设备,且为长方扁平的形状,所以在 pc 主机 usb 接口的设计 第 16 页 共 58 页 机壳后的根集线器以及在集线器中往下扩充的连接端口就是 a 型连接头。 b 型连接头:用来连接上游端口的设备或集线器,且为正方形。 2.2.5 usb 软件结构 a 软件模块结构 usb 系统是基于模块化、面向对象方法的结构。可分为三个模块(见图 2-4):通 用主控制驱动器;usb 驱动器;usb 驱动器的客户软件。 图 2-4 usb 软件模块结构 a 主控制器驱动器(uhcd):软件结构的最底层是 uhcd,由它来管理和控制 usb 主 控制器,usb 主控制器定义了一个标准的硬件接口以提供一个统一的主控制器可编程接 口。uhcd 实现了与 usb 主控制器通信和控制 usb 主控制器的一些根本细节,且它对系 统软件的其它部分是隐蔽的,usb 系统软件中更高层软件就位于 uhcd 之上,且通过 uhcd 的软件与主控制器通信。 b usb 驱动器(usbd):usb 系统软件的第二个主要部分是 usb 驱动器(usbd) , 它位于 uhcd 之上。usbd 提供设备驱动器级的接口,满足现有设备驱动器设计的要求, usb 所实现的准确细节随不同的操作系统环境而有所不同,但 usbd 在不同的操作系统 环境下完成的是一样的工作。 c usb 的客户软件(csw):usb 软件结构的第三部分就是 usbd 的客户软件,它位 于软件结构的最高层。在逻辑上和外设的功能部分进行数据交换。通常 usbd 客户软件 usb 客户软件 即 usb 设备驱动 usb 总线驱动 通用主控制器驱动 uhcd usb 主控制器 总线枚举 管理配置 华北科技学院毕业设计(论文) 第 17 页 共 58 页 是负责处理特定 usb 的设备驱动器。例如在 windows95 中设备驱动器用即插即用来处 理 usb 设备的连接和悬挂及配置等工作。即插即用的 usb 设备驱动器允许设备动态配 置,使用户的使用与配置无关。另外 windows95 中由总线枚举来管理处理 usb 的集线 器,它只不过是 usb 集线器设备驱动器,用 windows95 的配置管理通知 usb 总线上有 设备连接和悬挂的系统。 b usb 系统驱动软件 a 操作系统中的驱动程序内容:usb 设备驱动(或客户驱动)程序向 usbd 发出输 入输出请求包(irp) 。 usb 系统驱动软件包括: (1)usb.sys:为客户软件驱动提供接口服务、分配总线带宽和管理设置参数的 过程。当收到 usb 客户驱动的 irps 时,usbd 将其组织到各个独立的处理任务中去。 (2)uhcd.sys:控制 pc 机控制器的操作,计划数据处理和控制处理后的结束状 态。uhcd 负责处理任务在 usb 中广播的计划工作。通过建立处理任务表,uhcd 决定 1ms 帧的顺序传播内容。 b usb 系统驱动软件实现的关键功能、关键内容有以下几项: (1)参数设置 设备参数设置:包括读取设备的描述符,决定 usb 需要的资源,为每个端点建立 通讯管道。 usb 参数设置:如通讯管道的初始化,需要初始化的内容包括设定服务时间、最大 数据传输量等。 功能参数设置:对于特定的设备驱动需要完成特定的一些功能。 (2)分配 usb 资源 确定电源:usb 提供给每个端口设备的电流为 100500ma,同时 usb 系统软件有 责任报告电源匮乏。 跟踪及分配带宽:usb 系统软件需要知道通讯管道的初始化参数以分配带宽。 复用带宽:usb 系统软件通过复用带宽,可将残留带宽分配给控制传输和块传输这 些优先级较低的传输方式,提高带宽利用率。 c 客户软件 a 操作系统中的客户软件:windows 操作系统已经配置了有关的软件(称之为驱动 软件) 。因此,pc 已可对 usb 外设进行识别,故不必为每一种新的外设购买或装配附加 usb 接口的设计 第 18 页 共 58 页 的软件。然而,新的外设产品意味着该适用的外设与软件之间有一“缝隙”需要通过 升级来连接,所以在拿到该外设的同时,还会收到一张软盘,其中有该新 usb 外设的 某些更新的驱动软件信息。 b 客户软件可编程机制:usb 驱动提供一种客户编程接口,用来帮助客户软件控制 和读取 usb 设备。其具体提供的软件机制有: 命令机制允许客户设定和控制 usbd 操作,从而设定和控制 usb 设备的运行。 管道机制允许 usbd 的客户对设备特定的数据和控制传输进行管理。 2.2.6 总线协议 总线上的所有处理都包括最多三个分组的传输。每一次处理操作开始时,都是由 usb 主控制器根据一个计划的步骤,发送一个用于描述处理类型和方向、usb 设备地址、 端点号的 usb 分组,这一分组被当作令牌分组。被寻址的 usb 设备通过对恰当的地址 域进行解码就可以知道这是发给自己的分组。对一个特定的处理操作而言,数据总是 由主机传向 usb 设备或者是由 usb 设备传向主机,这种数据传送方向在令牌分组中加 以规定。然后处理操作的信源就可以发送数据分组或指出它自己没有数据需要发送。 通常情况下,信宿通过“握手分组”来指明这次传送是否成功。 usb 总线上的这种在主机和设备端点之间的数据传输模型称之为“管道” ,共有两 种管道类型:流管道和消息管道。流管道的数据没有确定的 usb 帧结构,而消息管道 中的数据却有。另外,管道还同数据传输带宽、传送数据类型和像传送缓冲区大小这 类的端点特性相联系。只要某一 usb 设备完成了配置之后,就会存在管道 0。当一个 usb 设备上电后,控制管道 0 这一消息管道就总是存在。因为这一管道要提供对设备配 置、状态和控制信息的访问。 对处理操作进行安排可以对一些流模式的管道实现流控功能。对于硬件而言,流 控功能可以使用 nack 信号来扼制数据速率,以此来来防止缓冲区溢出情况的发生。当 有可以利用的总线时间出现时,系统可以为一个受到否定应答的处理操作重新发出令 牌分组。这种流控机制允许建立灵活的操作规则,从而可以服务于许多不同类型的流 管道通信。因此,在 usb 中多个流管道可以拥有大小不同的分组,并可以在不同时间 获得服务。 2.2.7 总线工作过程 a usb 总线上的数据传输类型 usb 为了满足不同外设的要求,既要满足数据传输量大的外设,又要满足数据传输 华北科技学院毕业设计(论文) 第 19 页 共 58 页 量小但要反应快的外设,usb 描述规定了四种传输类型,即控制传输、等时传输、中断 传输和数据块传输。每种外设都支持控制传输类型,这样主机 pc 与外设之间就可以传 送配置和命令状态信息。 b usb 的数据传输模式 在 usb 系统中,数据是通过 usb 电缆采用 usb 数据包从主机传送到外设或是从外 设传送到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论