当前位置:首页 >> 信息与通信 >>

通用串行总线(USB)原理及接口设计


通用串行总线(USB)原理及接口设计 至尊小伟 发表于 2006-4-12 11:05:06

摘要: 摘要:以USB1.1为基础讨论了USB的基本原理,工作 流程,通信协议和相应的关键技术,并介绍了一种USB接口 的10M以太网卡的设计方案.已经发布的USB2.0支持 480Mbps的高速数据传输, 这将使PC可以通过USB 接口传输更高速更大量的数据.还论

述了USB2.0的改进 和优点. 关键词: 通用串行总线(USB) 设备驱动程序 WDM 关键词: 通用串行总线USB (Universal Seria lBus)是Intel,Microsoft等大厂商为解 决计算机外设种类的日益增加与有限的主板插槽和端口之间 的矛盾而于1995年提出制定的. 它是一种用于将适用US B的外围设备连接到主机的外部总线结构, 主要用在中速和低 速的外设.USB同时又是一种通信协议,支持主机和USB 的外围设备之间的数据传输.目前较多设备支持的是USB 1.11,最新的USB2.03已于2000年4 月正式发布. USB设备具有较高的数据传输率,使用灵活,易扩展等

优点. USB1.1有全速和低速两种方式,低速方式的速率为 1.5Mbps,支持一些不需要很大数据吞吐量和很高实时 性的设备,如鼠标等;全速模式为12Mbps,可以外接速 率更高的外设.在刚刚发布的USB2.0中,增加了一种高 速方式,数据传输率达到480Mbps,可以满足更加高速 的外设的需要. 安装USB设备不必打开主机箱,它支持即插即用(Pl ug and Play) 和热插拔(Hot Plug).当插 入USB设备的时候, 主机检测该外设并且通过自动加载相关 的驱动程序来对该设备进行配置,并使其正常工作.

USB的结构与工作原理 1 USB的结构与工作原理 s.width=300" align=right vspace=1 border=0> 1.1物理结构

300)thi

USB的物理拓扑结构如图1所示.在USB2.0中, 高速方式下Hub使全速和低速方式的信令环境独立出来, 图 2中显示了高速方式下Hub的作用.

通过使用集线器(Hub)扩展可外接多达127个外设. USB的电缆有四根线,两根传送的是5V的电源,另外的两 根是数据线. 功率不大的外围设备可以直接通过USB总线供 电,而不必外接电源.USB总线最大可以提供5V 500 mA电流,并支持节约能源的挂机和唤醒模式. 1.2 USB设备逻辑结构 USB的设备可以分成多个不同类型, 同类型的设备可以 拥有一些共同的行为特征和工作协议, 这样可以使设备驱动程 序的编写变得简单一些.USB Forum在USB类规范 2中定义了USB的设备类型, 比如音频, 通信, HID, HUB等设备类. 每一个USB设备会有一个或者多个的逻辑连接点在里 面每个连接点叫端点. 在USB的规范中用4位地址标识端 点地址,每个设备最多有16个端点.端点0都被用来传送配 置和控制信息. 在NS公司的USB接口芯片USBN960 24中有7个端点. 管道实现了在主机的一个内存缓冲区和设备的端点之间 的数据传输,连接端点0的叫做缺省管道.管道是具有多个特 征的信道,如带宽分配,包大小,管道类别以及数据流向.管 道有两种类型分别是流管道(stream pipe)和消息

管道(messagepipe). 流管道传输的数据包的内容 不具有USB要求的结构, 它是单向传输的; 流管道支持批量, 等时和中断传输方式.而消息管道与流管道具有不同的行为. 首先,由主机发请求给USB设备,然后在适当的方向上传输 数据,最后是到达一个状态阶段.为了保证三个阶段的数据传 输,消息管道定义了一个数据结构使命令可靠地被识别和传 输.消息管道是双向的,它只支持控制传输方式. 对于同样性质的一组端点的组合叫做接口, 如果一个设备 包含不止一个接口就可以称之为复合设备(见图1). 对于同样类型接口的组合可以称之为配置. 但是每次只能 有一个配置是可用的,而一旦该配置被激活,里面的接口和端 点就都同时可以使用. 主机从设备发过来的描述字中来判断用 的是哪个配置哪个接口等等而这些描述字通常是在端点 0中传送的.

1.3 USB通信分层模型 is.width=300" align=right vspace=1 border=0>

300)th

一台主机到设备的连接需要许多层与实体之间的相互作

用. USB总线接口层提供了主机和设备之间的物理/信令/ 包的连接.在系统软件看来,USB设备层执行的是一般的U SB操作.功能接口层提供和应用软件层相对应的附加功能. 分层模型如图3所示, 虽然逻辑上USB设备层和功能层各自 与主机上的相应层通信, 但物理上都是通过USB总线接口层 实现数据传输的. 1.4 四种传输方式 USB提供了四种传输方式,以适应各种设备的需要.这 四种传输方式分别是: 控制传输方式:控制传输是双向传输,数据量通常较小, 主要用来进行查询,配置和给USB设备发送通用的命令.控 制传输主要用在主计算机和USB外设中端点0之间. 等时传输方式:等时传输提供了确定的带宽和间隔时间. 它被用于时间严格并具有较强容错性的流数据传输, 或者用于 要求恒定的数据传送率的即时应用中. 例如进行语音业务传输 时,使用等时传输方式是很好的选择. 中断传输方式: 中断方式传送是单向的并且对于主机来说 只有输入的方式. 中断传输方式主要用于定时查询设备是否有 中断数据要传送,该传输方式应用在少量的,分散的,不可预

测的数据传输.键盘,游戏杆和鼠标就属于这一类型. 大量传输方式: 主要应用在没有带宽和间隔时间要求的大 量数据的传送和接收,它要求保证传输.打印机和扫描仪属于 这种类型. 在开发USB设备时通过设置接口芯片中相应的寄存器 使端点处于不同的工作方式. 1.5 USB通信协议 USB的物理协议规定了在总线上传输的数据格式, 一个 全速的数据帧有1500字节,而对于低速的帧有187字 节.帧的作用是分配带宽给不同的数据传送方式. 一个最小的USB的数据块叫做包,包通常有同步信号, 包标识,地址,传送的数据和CRC.包的ID由八位组成, 其中后四位是纠错位.根据包功能的不同,在USB1.1中 定义了以下四类十种: token OUT IN SOF SETUP

300)this.width=300" align=right vspa

ce=1 border=0> data DATA0 DATA1 handshake ACK NAK STALL special PRE 在USB2. 0中又增加了几种类型的包以满足高速传输 的需要.其中data类型增加了DATA2和MDATA, handshake类型增加了NYET, special类 型则增加了ERR,SPLIT,PING,Reserve d. 事务是在主机和设备之间不连续地数据交换. 一个事务通 常由主机开始, 一般分三个阶段, 第一阶段发送token包, 第二阶段发送是data包(可以向上也可以向下), 在数据包 传送完之后,就会由设备返回一个handshake包. 当客户端程序通过一个USB管道发送或接收数据时, 它 首先会调用Win32API, API会发送一个IRP到U SB设备驱动程序. USB设备驱动程序的任务就是把客户端 的请求通过一个管道发送到外设合适的端点. 为了实现这个任 务,USB设备驱动程序会递交请求给总线驱动程序,总线驱 动程序可以把这些请求转变成事务, 然后将这些事务组合成帧

在总线上传输. 1.6 USB带宽分析举例 在USB1.1标准中将其有效的带宽分成帧,每帧通常 是1ms长.但由于USB2.0的传输速率可高达480M bps,因此在USB2.0增加了一种微帧,它只有原来帧 的1/8,这使得在传输数据时使用更小的缓冲.在完成了系 统的配置信息和连接之后, USB的主机就会对不同的端点和 传输方式做一个统筹安排,用来适应它的带宽.对全速和低速 的端点,系统为等时和中断方式的传输保留整个带宽的9 0%,即占每个帧时间的90%,剩下的就安排给控制方式传 送数据.在USB2.0中,对于高速的端点,则为等时和中 断方式的传输保留每个微帧的80%. 以等时传输为例, 在某个配置中作为一个等时传输管道的 端点,定义了它能传输的数据有效负载的长度.USB系统软 件用这个长度限制去保证足够的总线时间使每帧的内容能容 纳最多的数据有效负载.如果有足够的总线时间,配置才会建 立.每个等时管道的数据有效负载可以是1,2,4,..., 512,1023字节. 例如,当数据包最大有效负载为512个字节时,一个全 速帧(1500字节)最多可以传输2个这样的包. 除去协议开

销的18个字节,剩余458个字节可以用于其他事务的传 输.因此每帧有效字节数为2个包的字节即1024字节,因 此最大带宽为1.024Mbyte/s,每个包的有效字节 占整个帧的35%.同样可推算,数据有效负载长度为64, 128或256时其最大带宽值最大,为1.28Mbyte /s. 在USB2.0高速工作方式下,每个等时管道的数据有 效负载可以是1,2,4,...,2048,3072字节. 当数据有效负载长度为1024时其最大带宽值最大,为 5.7344Mbyte/s,每个包的有效字节占整个微帧 的14%. 2 Windows USB驱动程序接口 USB驱动程序接口 USB的驱动程序和以往的直接跟硬件打交道的Win 95的VxD(Virtual DeviceDriver) 驱动程序不同, 它属于WDM(Windows Driver Model)类型的,Win98,Win2000等操作系 统均支持该类型的驱动程序. WDM首先定义了一个基本的核 心驱动程序模型,处理所有类型的数据,使驱动程序模型的内 核实现更加的固定.WDM驱动程序还是一种分层的程序结 构,可以看做是WindowsNT驱动程序的改进,WDM 驱动程序支持即插即用, 电源管理和WMI(Windows

ManagementInstrumentation)特 性. Win98和Win2000提供了一系列的系统驱动程 序,它们具有为许多标准类型设备服务所需的所有基本功能. USB的WDM驱动程序接口框图如图4所示.

300)this.width=300" align=r ight border=0> Windows提供了USB的系统类驱动程序, 它处理 USB上的所有底层通信, 这样其他驱动程序就有了一个定义 好的接口可以使用.USBHub.sys是USB集线器的 驱动程序.USBD.sys是USB类驱动程序,它使用图 4中UHCD.sys或OpenHCI.sys分别驱动两 种类型的控制器UHCI(USB Host Contro ller Driver),OHCI(Open Host C ontrollerInterface).当PCI枚举器 发现USB主机控制器后,就会装入相关的驱动程序. 通常一些设备都需要开发者写一个核模式的驱动程序来 使硬件正常工作. 在核模式下驱动程序通过IRP(I/O

Request Packet)来组织和操作一些由其他部 分发过来的要求和命令.而IRP又是通过URB(USB Request Blocks)来实现的. 但对于一些HID (Human Interface Device)的USB 设备,象键盘,鼠标和游戏操纵杆之类的设备可以被操作系统 自动识别并且支持,开发者不需要再另写驱动程序. SB接口10M 接口10 3 USB接口10M以太网卡的实现 3.1 选择器件 目前市场上USB的接口产品有两种, 一种是集成了US B接口的单片机,另一种是不带单片机的USB接口芯片.由 于前者需要专用的开发机故开发成本较高, 本文将介绍一种使 用廉价USB接口芯片USBN9602(NS公司)加高速 的51单片机实现10M以太网卡的方案. 在做设计之前一定要计算好外设所要求的带宽和USB 的速度是否匹配. 一个USB以太网卡应该包括USB通信接 口(USBN9602),8051单片机以及IEEE80 2.3的MAC层和物理层.USBN9602在全速工作方 式下可以达到12Mbit/s, 采用USBN9602基本 可以满足10M以太网的带宽需求.为达到较高的传输速率, USBN9602还应该用DMA方式与单片机通信. 电路框

图如图5所示. 3.2 设计单片机控制程序 对于单片机控制程序, 目前没有任何厂商提供自动生成微 码(firmware)的工具. USB单片机控制程序通常由 三部分组成,第一,初始化单片机和所有的外围电路(包括U SBN9602);第二,主循环部分,其任务是可以中断; 第三,中断句柄,其任务是对时间敏感的,必须马上执行. 3.3 开发USB网卡驱动程序

300)this.width=300" a lign=left vspace=1 border=0> 开发USB设备驱动程序通常采用WindowsDD K来实现, 但现在有许多第三方软件厂商提供了各种各样的生 成工具, 象Compuware的Driver Works, BlueWaters的DriverWizard等软件 能够方便地生成高质量的USB的驱动程序. 没有DDK或W DM基础的开发人员可使用KRFTech公司的开发软件 WinDriver,它的最新版本4.32已经支持USB 驱动程序的开发. 最后的驱动程序调试工作可以使用Comp uware的Softice或Microsoft的Wi

ndows Debugger来进行. Windows下的网卡驱动程序需符合NDIS规范 (Network Driver Interface Sp ecification).网络驱动程序不直接调用操作系 统的例程,而是通过NDIS进行系统调用,NDIS还根据 需要调用了驱动程序提供的例程,共同完成网卡的功能. USB网卡驱动程序可分为NDIS中间介质小端口驱 动程序和USB驱动程序两部分, 然后将两部分驱动程序动态 连接. 如果USB设备未连接和被禁止, 使USB驱动不可用, 那么NDIS驱动会返回一个NOT_AVAILABLE 的状态. 这种实现方法可以保证用户不必重新安装NDIS或 重启就可以连接或拔掉USB设备. 4 小结与展望 目前Win98, Win2000和WinCE均支持U SB设备, USB并且已经得到了一个由450家技术公司组 成的技术联盟的支持,今后新PC都会装有USB端口.AP PLE公司更是推出了完全采用USB技术实现计算机与外 设连接的新型计算机iMAC系列. 市场上也已经出现了越来 越多的支持USB的外设, 用户将从中享受到对外设选择范围 更广和与外设数据交换速度更快的好处. 据Dataques

t公司统计结果显示, 2000年全球将会售出近1亿台US B设备. USB2.0已经于2000年4月27日正式发布.U SB2.0将向下兼容, 使用与1. 1版相同的电缆,连接器, 软件接口,拓扑结构.对普通用户来说,在使用时不会觉得有 什么改变,但是USB2.0将可以达到480Mbps的高 速,用户将从2.0所提供的更高速的外设中受益.预计20 00年第四季度USB2.0的外围设备将试生产,2001 年将投入商业生产,USB2.0使USB具有了更好的应用 前景.

相关文章:
通用串行总线(USB)原理及接口设计
通用串行总线(USB)原理及接口设计_信息与通信_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 通用串行总线(USB)原理及接口设计_信息与通信_工程科技_专业...
通用串行总线(USB)原理及接口设计
通用串行总线(USB)原理及接口设计 隐藏>> 摘要: 摘要:以USB1.1为基础讨论了USB的基本原理、工作流程、通信协议和 相应的关键技术,并介绍了一种USB接口的10M以太...
通用串行总线(USB)原理及接口设计
通用串行总线(USB)原理及接口设计_信息与通信_工程科技_专业资料。通用串行总线(USB)原理及接口设计通用串行总线(USB)原理及接口设计 原理及接口设计 通用串行总线 ...
通用串行总线接口USB 3.0接口定义
USB 3.0接口将有望达到1A 以上的供 电电流,而且 USB 3.0接口经过了优化设计(如采用铜导线),它的传输效率更快,还具备了自身能耗降低功 能。 通用串行总线接口 ...
USB接口原理解析
USB接口的通讯原理 3页 免费 USB原理及接口设计 2页 1下载券 USB接口的通讯原理...USB 接口百科名片 USB Logo 通用串行总线(英文:Universal Serial Bus,简称 USB...
各种接口连线图解
USB 接口 USB 延长线 USB 的英文缩写是 ...翻译成中文就是“通用串行总线”,也称通用串联接口。...3、S 端子 前几年介绍 S 端子原理的文章很多,...
单片机与USB接口设计
单片机与 USB 接口设计摘要: 51 系列芯片的串口通信速率较低,会在其串口通信中形成一个 速度瓶颈。通用串行总线(USB)作为一种新的微机总线接口规范,具 有便捷、...
USB接口设计
USB接口设计_信息与通信_工程科技_专业资料。USB接口设计USB 引脚图与引脚定义 usb 是 Universal Serial Bus (通用串行总线)的缩写,由 Compaq, Digital, IBM, Int...
USB接口是什么(通用串行总线)
USB接口是什么(通用串行总线)_信息与通信_工程科技_专业资料。USB接口是什么(通用...就是将原来的 D 型接头改成了圆形接头,并且为了 防止误插在一边设计了一个...
通用串行总线
编辑词条 通用串行总线目录[隐藏] 通用串行总线概念...USB设计为非对称式的,它由一个主机(host)控制...标准 USB 接口接口: 标准 USB 接口 触点 功能(...
更多相关标签:
通用串行总线控制器 | win7通用串行总线驱动 | 通用串行总线驱动下载 | 通用串行总线 | 通用usb串行总线驱动 | 通用串行总线usb恢复 | xp通用串行总线控制器 | 通用串行总线驱动 |