您的位置 首页 汽车

通用串行总线(USB)原理及接口规划

以USB1.1为基础讨论了USB的基本原理、工作流程、通信协议和相应的关键技术,并介绍了一种USB接口的10M以太网卡的设计方案。

摘要:以USB1.1为根底评论了USB的根本原理、作业流程、通讯协议和相应的关键技能,并介绍了一种USB接口的10M以太网卡的规划计划。现已发布的USB2.0支撑480Mbps的高速数据传输,这将使PC能够经过USB接口传输更高速更很多的数据。还论说了USB2.0的改善和长处。
关键词:通用串行总线(USB) 设备驱动程序 WDM

通用串行总线USB (Universal SerialBus)是Intel、Microsoft等大厂商为处理计算机外设品种的日益添加与有限的主板插槽和端口之间的对立而于1995年提出拟定的。它是一种用于将适用USB的外围设备衔接到主机的外部总线结构,首要用在中速和低速的外设。USB一起又是一种通讯协议,支撑主机和USB的外围设备之间的数据传输。现在较多设备支撑的是USB1.1?1?,最新的USB2.0?3?已于2000年4月正式发布。

USB设备具有较高的数据传输率、运用灵敏、易扩展等长处。

USB1.1有全速和低速两种办法,低速办法的速率为1.5Mbps,支撑一些不需求很大数据吞吐量和很高实时性的设备,如鼠标等;全速形式为12Mbps,能够外接速率更高的外设。在刚刚发布的USB2.0中,添加了一种高速办法,数据传输率抵达480Mbps,能够满意愈加高速的外设的需求。

装置USB设备不用翻开主机箱,它支撑即插即用(Plug and Play) 和热插拔(Hot Plug)。当刺进USB设备的时分,主机检测该外设而且经过主动加载相关的驱动程序来对该设备进行装备,并使其正常作业。

1 USB的结构与作业原理

1.1物理结构

USB的物理拓扑结构如图1所示。在USB2.0中,高速办法下Hub使全速和低速办法的信令环境独立出来,图2中显现了高速办法下Hub的效果。

经过运用集线器(Hub)扩展可外接多达127个外设。USB的电缆有四根线,两根传送的是5V的电源,别的的两根是数据线。功率不大的外围设备能够直接经过USB总线供电,而不用外接电源。USB总线最大能够供给5V 500mA电流,并支撑节约能源的挂机和唤醒形式。

1.2 USB设备逻辑结构

USB的设备能够分红多个不同类型,同类型的设备能够具有一些一起的行为特征和作业协议,这样能够使设备驱动程序的编写变得简略一些。USB Forum在USB类标准?2?中界说了USB的设备类型,比方音频、通讯、HID、HUB等设备类。

每一个USB设备会有一个或许多个的逻辑衔接点在里边?每个衔接点叫端点。在USB的标准顶用4位地址标识端点地址,每个设备最多有16个端点。端点0都被用来传送装备和操控信息。在NS公司的USB接口芯片USBN9602?4?中有7个端点。

管道完成了在主机的一个内存缓冲区和设备的端点之间的数据传输,衔接端点0的叫做缺省管道。管道是具有多个特征的信道,如带宽分配,包巨细,管道类别以及数据流向。管道有两品种型别离是流管道(stream pipe)和音讯管道(messagepipe)。流管道传输的数据包的内容不具有USB要求的结构,它是单向传输的;流管道支撑批量、等时和中止传输办法。而音讯管道与流管道具有不同的行为。首要,由主机发恳求给USB设备,然后在恰当的方向上传输数据,最终是抵达一个状况阶段。为了确保三个阶段的数据传输,音讯管道界说了一个数据结构使指令可靠地被辨认和传输。音讯管道是双向的,它只支撑操控传输办法。

关于相同性质的一组端点的组合叫做接口,假如一个设备包含不止一个接口就能够称之为复合设备(见图1)。

关于相同类型接口的组合能够称之为装备。可是每次只能有一个装备是可用的,而一旦该装备被激活,里边的接口和端点就都一起能够运用。主机从设备发过来的描绘字中来判别用的是哪个装备?哪个接口等等?而这些描绘字一般是在端点0中传送的。

1.3 USB通讯分层模型

一台主机到设备的衔接需求许多层与实体之间的相互效果。USB总线接口层供给了主机和设备之间的物理/信令/包的衔接。在体系软件看来,USB设备层履行的是一般的USB操作。功用接口层供给和运用软件层相对应的附加功用。分层模型如图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

data DATA0 DATA1

handshake ACK NAK STALL

special PRE

在USB2.0中又添加了几品种型的包以满意高速传输的需求。其间data类型添加了DATA2和MDATA,handshake类型添加了NYET,special类型则添加了ERR,SPLIT,PING,Reserved。

业务是在主机和设备之间不接连地数据交换。一个业务一般由主机开端,一般分三个阶段,榜首阶段发送token包,第二阶段发送是data包(能够向上也能够向下),在数据包传送完之后,就会由设备回来一个handshake包。

当客户端程序经过一个USB管道发送或接纳数据时,它首要会调用Win32API,API会发送一个IRP到USB设备驱动程序。USB设备驱动程序的使命便是把客户端的恳求经过一个管道发送到外设适宜的端点。为了完成这个使命,USB设备驱动程序会递送恳求给总线驱动程序,总线驱动程序能够把这些恳求转变成业务,然后将这些业务组合成帧在总线上传输。

1.6 USB带宽剖析举例

在USB1.1标准中将其有用的带宽分红帧,每帧一般是1ms长。但因为USB2.0的传输速率可高达480Mbps,因而在USB2.0添加了一种微帧,它只要本来帧的1/8,这使得在传输数据时运用更小的缓冲。在完成了体系的装备信息和衔接之后,USB的主机就会对不同的端点和传输办法做一个统筹安排,用来习惯它的带宽。对全速和低速的端点,体系为等时和中止办法的传输保存整个带宽的90%,即占每个帧时刻的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的驱动程序和以往的直接跟硬件打交道的Win95的VxD(Virtual DeviceDriver)驱动程序不同,它归于WDM(Windows DriverModel)类型的,Win98、Win2000等操作体系均支撑该类型的驱动程序。WDM首要界说了一个根本的中心驱动程序模型,处理一切类型的数据,使驱动程序模型的内核完成愈加的固定。WDM驱动程序仍是一种分层的程序结构,能够看做是WindowsNT驱动程序的改善,WDM驱动程序支撑即插即用、电源办理和WMI(Windows ManagementInstrumentation)特性。Win98和Win2000供给了一系列的体系驱动程序,它们具有为许多标准类型设备服务所需的一切根本功用。

USB的WDM驱动程序接口框图如图4所示。

Windows供给了USB的体系类驱动程序,它处理USB上的一切底层通讯,这样其他驱动程序就有了一个界说好的接口能够运用。USBHub.sys是USB集线器的驱动程序。USBD.sys是USB类驱动程序,它运用图4中UHCD.sys或OpenHCI.sys别离驱动两品种型的操控器?UHCI(USB Host Controller Driver),OHCI(Open Host ControllerInterface)。当PCI枚举器发现USB主机操控器后,就会装入相关的驱动程序。

一般一些设备都需求开发者写一个核形式的驱动程序来使硬件正常作业。在核形式下?驱动程序经过IRP(I/O Request Packet)来安排和操作一些由其他部分发过来的要求和指令。而IRP又是经过URB(USB Request Blocks)来完成的。但关于一些HID(Human Interface Device)的USB设备,象键盘、鼠标和游戏操纵杆之类的设备能够被操作体系主动辨认而且支撑,开发者不需求再另写驱动程序。

3 USB接口10M以太网卡的完成

3.1 挑选器材

现在市场上USB的接口产品有两种,一种是集成了USB接口的单片机,另一种是不带单片机的USB接口芯片。因为前者需求专用的开发机故开发本钱较高,本文将介绍一种运用廉价USB接口芯片USBN9602(NS公司)加高速的51单片机完成10M以太网卡的计划。

在做规划之前一定要计算好外设所要求的带宽和USB的速度是否匹配。一个USB以太网卡应该包含USB通讯接口(USBN9602)、8051单片机以及IEEE802.3的MAC层和物理层。USBN9602在全速作业办法下能够抵达12Mbit/s,选用USBN9602根本能够满意10M以太网的带宽需求。为抵达较高的传输速率,USBN9602还应该用DMA办法与单片机通讯。电路框图如图5所示。

3.2 规划单片机操控程序

关于单片机操控程序,现在没有任何厂商供给主动生成微码(firmware)的东西。USB单片机操控程序一般由三部分组成,榜首、初始化单片机和一切的外围电路(包含USBN9602);第二、主循环部分,其使命是能够中止;第三、中止句柄,其使命是对时刻灵敏的,有必要立刻履行。

3.3 开发USB网卡驱动程序

开发USB设备驱动程序一般选用WindowsDDK来完成,但现在有许多第三方软件厂商供给了各式各样的生成东西,象Compuware的Driver Works,BlueWaters的DriverWizard等软件能够方便地生成高质量的USB的驱动程序。没有DDK或WDM根底的开发人员可运用KRFTech公司的开发软件WinDriver,它的最新版别4.32现已支撑USB驱动程序的开发。最终的驱动程序调试作业能够运用Compuware的Softice或Microsoft的Windows Debugger来进行。

Windows下的网卡驱动程序需契合NDIS标准(Network Driver Interface Specification)。网络驱动程序不直接调用操作体系的例程,而是经过NDIS进行体系调用,NDIS还依据需求调用了驱动程序供给的例程,一起完成网卡的功用。

USB网卡驱动程序可分为NDIS中心介质小端口驱动程序和USB驱动程序两部分,然后将两部分驱动程序动态衔接。假如USB设备未衔接和被制止,使USB驱动不行用,那么NDIS驱动会回来一个NOT_AVAILABLE的状况。这种完成办法能够确保用户不用重新装置NDIS或重启就能够衔接或拔掉USB设备。

4 小结与展望

现在Win98、Win2000和WinCE均支撑USB设备,USB而且现已得到了一个由450家技能公司组成的技能联盟的支撑,往后新PC都会装有USB端口。APPLE公司更是推出了彻底选用USB技能完成计算机与外设衔接的新式计算机iMAC系列。市场上也现已呈现了越来越多的支撑USB的外设,用户将从中享受到对外设挑选规模更广和与外设数据交换速度更快的优点。据Dataquest公司计算成果显现,2000年全球将会售出近1亿台USB设备。

USB2.0现已于2000年4月27日正式发布。USB2.0将向下兼容,运用与1.1版相同的电缆、衔接器、软件接口、拓扑结构。对普通用户来说,在运用时不会觉得有什么改动,可是USB2.0将能够抵达480Mbps的高速,用户将从2.0所供给的更高速的外设中获益。估计2000年第四季度USB2.0的外围设备将试出产,2001年将投入商业出产,USB2.0使USB具有了更好的运用远景。


声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/284781.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部