《USB总线技术及应用.doc》由会员分享,可在线阅读,更多相关《USB总线技术及应用.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、USB总线技及术应用 摘要:USB是通用串行总线(Universal Serial Bus)的简称,是一种应用在计算机领域的新型接口技术(也越来越多地应用于嵌入式便携设备),是当前最流行的接口技术之一。USB以其卓越的易用性、稳定性、兼容性、扩展性、完备性、网络性和低功耗等诸多优点得到了迅速发展和广泛的应用。USB是英文Universal Serial Bus的简称,是一种应用在计算机领域的新型接口技术(也越来越多地应用于嵌入式便携设备),是当前最流行的接口技术之一。USB以其卓越的易用性、稳定性、兼容性、扩展性、完备性、网络性和低功耗等诸多优点得到了迅速发展和广泛的应用。当今的计算机外部设备
2、都在追求高速度和高通用性。为了满足用户的需求,以Intel为首的七家公司Intel、Compaq、Microsoft、IBM、DEC、Northern、Telecom以及日本NEC于1994年11月推出了USB(Universal Serial Bus)通用串行总线协议的第一个草案专用于低中速的计算机外设,USB可把多达127个外设同时连到用户的系统上,所有的外设通过协议来共享USB的带宽,其12Mbps的带宽对于键盘鼠标等低中速外设是完全足够。随着USB技术的应用不断深入,在2000年发布的USB规范版本2.0中已经将USB支持的带宽提升到480Mbps。USB 正在不断地占领PC外设的市场
3、,成为了PC外设的主流接口。在自己的产品中使用USB已经成为了一种潮流。如果希望产品被市场接受开发者往往不得不使用USB。现在USB不光成为了微机主板上的标准端口而且还成为了所有微机外设(包括键盘、鼠标、显示器、打印机、数字相机、扫描仪和游戏手柄等等)与主机相连的标准协议之一。这种连接较以往普通并口(Parallel port)和串口(serial port)的连接而言主要的优点是速度高、功耗低、支持即插即用(Plug& Play)和使用维护方便。因此我觉得USB的应用将越来越广泛。特别是在电气专业领域,工业现场控制,便携测试设备等方面。1 USB的基本原理1.1 USB协议概述USB是英文U
4、niversal Serial Bus的简称。它以其易用性、稳定性、兼容性、扩展性、完备性、网络性和低功耗等优点得到了迅速发展和广泛的应用。学习USB的相关知识是进行USB项目开发的基础。USB系统均有主机和从机两个部分,要注意的是由于USB系统是被动通信系统,从机只能被动的执行主机的命令。主机理论上可以是任何带有CPU的控制器,目前由于PC的强大的处理能力和存储空间,被广泛的应用为主机。USB从机一般就是指USB设备,可以实现一定的功能。这篇认识报告主要整理了三方面内容。第一部分是整理了USB的通信协议,第二部分主要整理了USB项目开发的步骤,第三部分主要介绍了USB接口芯片CH372的功能
5、和接口电路,普通的USB通信的实现。整理的资料对初学USB有一定的参考意义。1.2 USB的主要优点USB有自供电(Self-Powered)和总线供电(Bus-Powered)两种供电模式。如果3ms内没有总线操作,设备就自动挂起,降低功耗。能够实现即插即用(PnP,Play and Plug)。在USB的电气结构上能够判断设备的接入和拔出。1.3 USB系统组成USB整体通信模型:也就是USB的星形拓扑结构,以USB主机为核心,建立USB主机与USB设备之间的数据通信,通过USB Hub为节点连接主机与设备。USB数据通信协议:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本
6、的完整信息单元,包含了一系列数据信息。数据包也可以包括很多称为“域”的层次;以包为基础,构成USB的四种数据传输类型,进而组成不同的传输类型,传输各种类型的数据,实现USB的各种功能。软硬件架构:包括主机,HUB与设备架构;主机与设备通信的流程、步骤;软硬件设计方法等。这是USB系统开发工程师最终的目的,也是学习和掌握USB技术的目的。2 USB基本结构和特点2.1引言主要是对USB的基本结构和特性作初步的介绍,是否了解这些知识对于设计USB设备系统至关重要,只有清楚地理解这些概念才能更好的进行设计。2.2 USB的物理连接如图2-1所示,USB采用4线电缆。其中Vbus为总线电源线,GND为
7、地线,这两根线为下行(downstream)设备提供电源;D+和D-是差动(differential)信号线,用于串行传输USB数据。采用差动信号线的目的在于消除传输过程中的噪声,从而提高传输可靠性。USB电缆支持两种速率模式:全速模式(12Mbps)和低速模(1.5Mbps)。全速电缆与低速电缆的区别在于:全速电缆的数据信号线是双绞线,并且需要屏蔽层;而低速电缆的数据信号线不需要双绞,也不需要屏蔽层。 USB连接器有两种类型:A型和B型。A型连接器是连接USB设备的主要方式,所有USB设备都必须具备一个A型连接器;A型插座作为USB主机和集线器的下行输出口;A型插头用于上行连接到USB主机和
8、集线器。B型连接器用于厂家提供的标准的可分离(detachable)电缆,以方便最终用户根据需要替换电缆;B型插座作为USB设备和集线器的上行输入口;B型插头用于下行连接到USB设备。下图所示为USB电缆分别连接到PC主机、打印机的插头: 2.3 USB1.1协议总览总的来说,USB1.1是一个传输率可达12Mbps的串行接口,并由不同类型的PC外设一起分享这个串行总线接口中,而且可以高达127个外设对应于一个PC主机。其中,USB主机是整个总线上的主控者掌握所有的主控权,负责对各个外设发出各设定命令和配置。USB是以令牌包为主的通信协议,而主机将会于总线上发布一种令牌包,此时一定会有一个符合
9、其地址的设备根据这个令牌包做出相应的操作。此外,12Mbps的总线带宽是被分割为1ms的帧,所有位于此总线的设备就会以时间分隔的多任务传输来分享它。以实体的观点来看,USB仅含有四条线,两条是电源线(Vcc与GND),两条是以差分方式产生的信号线(D+与D-)。2.4 USB总线结构USB系统中的设备与主机的连接方式采用的是新型的层次化的星形连接,如下图所示。图中的Hub是一类特殊的USB设备,它是一组USB的连接点,主机中有一个被嵌入的Hub叫根Hub(root Hub)。主机通过根Hub提供若干个连接点。图 2-22.5数据流模式USB对于与设备之间的通信提供了特定的协议。虽然USB系统的
10、总线拓扑是新型的层次化的星形连接,但实际上USB主机与设备的连接方式却是如图2-3所示的一对一的连接形式,这被称为USB总线的逻辑拓扑结构,而数据流的模式则是以这些逻辑连接为基本结构。主机逻辑设备逻辑设备逻辑设备USB为主机上的软件和客户的USB功能模块之间提供了通信服务。功能模块会对通信流有不同的要求。需要不同的客户来实现相互作用。通过允许将不同的USB功能模块的不同通信流分离开来,USB提供了更好的整体总线利用率.每一个通信流都要使用某一总线访问来完成客户和功能模块之间的通信,并且终止于设备上的某一端点。设备端点用于区别任意的通信流。 端 点 是 主机与设备之间的一个逻辑通道,也是一个US
11、B设备唯一可以确认的部分,它是主机与设备之间的通信流终点.一个USB逻辑设备对整个系统而言就是一个端点的集合。根据其使用的接口,端点可以被分成不同的端点集。软件只能通过一个或多个端点与一个USB设备通信。利用设备的地址和端点号就可以唯一地指定任一个端点。管 道 就 是在USB主机上的一个软件功能和一个USB设备之间建立的一个虚连接,是设备上的一个端点和主机上的软件的联合体,在USB技术中有两类管道:流管道和消息管道。对一个USB设备进行配置后就会形成道。一个客户软件通常是通过向一个管道发出IRP请求来要求发送数据,如果需要的话一个客户软件还可以使管道返回所有未处理的请求。2.6 USB的传输类
12、型 针对设备对系统资源需求的不同,USB共有4种数据传输类型:控制传输、中断传输、同步传输和块传输。控制传输:此方式适用于传输少量的、且对传输时间和传输速率均无要求、但必须保证传输的数据。控制传输主要用于发送和接收与USB设备的配置信息有关的数据,如设备地址、配置描述符等,但它也可用于舆其他用途的数据。控制传输可用于低速、全速或高速设备,且所有的USB设备都必须支持控制舆。具体来说,任何USB设备都必须在其0号端点的缺省管道中支持传输,USB系统软件会使用该管道来访问USB设备的,并对其进行配置。从优先级别来说,它是级别最高的传输方式。中断传输:该方式用于传输少量或中量的、且对服务周期有要求的
13、数据,这些数据需要及时处理,以达到实时效果。USB采用差错和重试机制来确保中断传输的正确性。总的来说中断传输特别适合于键盘、鼠标类设备,因为对于它们,所需处理的事件只是键盘按下、鼠标点击和移动等,其数据量很少,而且用户不希望在使用键盘和无懈可击时出现明显的延迟,所以首先考虑固定的服务周期。同步传输:该方式用于需要连续传输,而且对数据的正确性要求不高,但对时间极为敏感的外设。同步传输以固定的传输速率连续不断的在主机和USB外设之间传输数据,在传输数据发生错误时,USB并不处理这些错误,百是继续传送新的数据。所以在此方式下数据包结束时没有CRC校验。同步传输特别适合于音频和视频类设备,如CD播放机
14、、扬声器等;因为对于它们,数据被及时发送和接收远比其正确性重要。批量传输:又叫块传输。该方式主要用于大量非周期数据的传输,它采用差错控制和重试机制来确保数据传输的正确性。批量传输特别适合于打印机和扫描仪类设备,因为对于它们,数据无错误地发送和接收远比其传输速率重要。批量传输只能用于高速或全速USB设备,但全速/高速设备可以不支持批量传输传输类型端点类型传输方式所传输数据的特点批量传输批量端点IN或OUT大量、无传输时间和传输速率要求中断传输中断端点IN或OUT少量或中量、有周期性同步传输 同步端点IN或OUT大量、速率恒定、有周期性控制传输 控制端点IN或OUT少量、无传输时间要求、传输有保证
15、2.7 USB接口的传输协议总的来说,USBI.1 是一个传输率可达12Mbps的串行接口,并由不同类型的PC外设一起分享这个串行总线接口,而且可以高达127个外设对应于一个PC主机。其中,USB主机是整个总线上的主控者,掌握所有的主控权,负责对各个外设发出各设定命令和配置o USB是以令牌包为主的通信协议,而主机将会于总线上发布一种令牌包,此时一定会有一个符合其地址的设备根据这个令牌包做出相应的操作。此外,12Mbps的总线带宽是被分割为lms的帧,所有位于此总线的设备就会以时间分隔的多任务传输来分享它。以实体的观点来看,USB仅含有四条线,两条是电源线(V,。与GND),两条是以差分方式产
16、生的信号线(D+与D_)。传输协议:主机与设备之间通过称为事务的离散交互进行通信;一个或多个事务完成一次传输请求。一个传输事务由若干个包(packet)组成。包是总线传输的最小数据块,通常由多个域组成。包仅沿一个方向传送-主机到设备或设备到主机。数据地串行数据线上传输时,先发送最低有效位(LSb),然后是次低位,最后是最高有效位(MSb)。为了保证发送方和接受方在信号级上的同步,串行数据采用NRZI(不归零反相编码)和比特填充技术:遇到0信号发生跳变而遇到1时保持不变;当出现连续7个1时插入一个0比特。另外,所有包以一个同步域(SYNC)开始。该域为一个IDLE状态后面跟随以NRZI编码的二进
17、制串“00000001”(数据80H)。SYNC域中的最后两位用于SYNC域的结束标志同时表示PID域的开始。每个包发送完毕,发送方使两根数据线变为低电平保持2个比特位的时间,其后再跟随1比特时间的IDLE状态,该总线状态称为EOP(End of Packet)。通信协议:前面提及过USB接口是以令牌包为主的总线协议,而且PC主机掌握了这个总线的主控权,就是说一切的沟通都是由PC主机来负责启动的。另外由于use不占用任何PC的中断向量或是输入/输出的资源,因此必须通过严谨的协议才能与外设达成通信的协议,以执行各项命令。如图2 -4显示了PC主机如何与设备执行通信协议.从图中可以看到在USB 总
18、线上执行通信协议的荃本单位就是最下层的数据域。几个不同型式的数据域可以组合成一个分组,有1个、2个或3个不同型式的分组又可以组成一个数据交易。因此,对高速设备而言,在lms的帧内可能包含各个设备所提交的数据交易,这些数据交易则可能涵盖于不同的客户端驱动程序所启动的输出入要求分组中,图中只显示了2个客户端的驱动程序。 由上可知,要了解所有的通信协议就需要从数据域来谈起。通过由下而上的顺序,可以从最基本的通信协议单位组合成各种复杂的通信协议。2.7.1 组成USB包的数据域根据不同的令牌包的类型,含有不同数量与类型的数据域。以下将依序介绍各种数据域的规格和结构。USB的传输顺序是由LSB(最低位)
19、到MSB(最高位)。 1.同步顺序(SYNC)数据域SYNC数据域的长度的定义为8bit,是一个数据分组的前导,是用来产生同步的作用,所以它的数值是固定的,为00000001。2.包标示符(PID)数据域一个 PID包括一个4bit的分组类型域和一个4bit的校验域,如图2-4示.PID紧跟在SYNC后面,用来指出数据分组的类型,并且可以据此推断出分组格式和分组所应用的检错方式。 图2-5 PID格式主机和所有的功能设备必须能对所有接收到的PID域进行完整的解码。如果任意一个接收到的PID的检验域出现错误或者其解码后为一个未定义的值,就认为其受到了破坏。那么该PID 及分组的其余部分都将被分组接收器忽略。PID类型、编码和有关说明都列在了表2一2中。PID可以分成四个码组:令牌、数据、握手和特殊类型,其中所传输的前两个PID比特用于指示码组类型。PID类型PID名称PID3:0说明令牌OUTINSOFSETUPB0001B1001B0101B1101地址主机中的端点号功能设备处理地址功能设备中的端点号主机处理帧标记和帧标号开始地址主机中的端点号用于一个控制端点建立的功能设备处理数据DATA0B0011数据分组偶PID握手ACKB0010接收设备不能接受数据或发送设备不能发送数据端点被禁止特定PREB1100主机发出前同步信号。激活至低速设备的下行总线数据流
限制150内