USB基础知识培训讲师:XXX日期:2019.03.07摘要1USB的产生背景2USB的特点3USB的发展历史和前景4USB规范5USB系统的描述6USB系统的分层7USB信号8USB事务处理1USB的产生背景PC诞生20年来,其外设一直局限于在最常用的鼠标器和打印机而已,这两种外设普遍用到接口的就是串行接口和并行接口。串行接口通常又被简称为串口,英文标识为Serial或COM;并行接口也被简称为并口,英文标识为Parallel或LPT、PRN。串口可以达到115Kbps~230Kbps的数据传输带宽,这个端口一般被用来连接鼠标和Modem等;而并口的数据传输率能达到1Mbps左右,一般被用来连接打印机、扫描仪等对速率要求较高的外设。在USB产生之前,外设与PC机的通信主要是通过PC机主板所提供的各种接口来实现的,如ISA接口、PCI接口、PS/2接口、串行接口、并行接口等。这些老式接口最初是IBM公司在20世纪80年代早期设计提出的,有很多缺陷:(1)非共享式接口,只支持单个外设的连接(2)接口体积庞大,不利于PC机外设的小型化(3)接口规格不一,连接不方便(4)接口为传统的I/O模式,外设被映射为CPU的I/O地址空间,分配一个指定的IRQ或者是一个DMA通道。会带来I/O地址冲突或指定的IRQ已被其他的外设占用等问题。为克服以上缺陷PC机制造商和用户迫切需要一种新型的外设连接方式。这时USB应运而生。USB通用串行总线(UniversalSerialBus)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要是用在中速和低速的外设。USB是由COMPAQ、DIGITAL、IBM、INTEL、MICROSOFT、NEC以及NorthernTelecom七家公司共同开发的一种新的外设连接技术.这一技术将最终解决对串行设备和并行设备如何与计算机相连的争论,大大简化计算机与外设的连接过程。USB是通过PCI总线和PC的内部系统数据线连接,实现数据的传送。USB同时又是一种通信协议,他支持主系统(host)和USB的外围设备(device)之间的数据传送。上图串口和并口存在识别上的问题。上图是目前典型的主板集成扩展口的示意图,我们可以看到,并口是25孔D型的接口,而串口是两个9针的接口。而USB接口则是同一的扁形接口。可以明显地看出,串口和并口在数据传输速度上并没有优势。更为致命的是,每个串口或并口上只能连接一个设备,而通常一台电脑只具有两个串口和一个并口。所以,它们都具有扩展能力差的先天不足。另外,虽然现在很多串行/并行设备都可以实现PNP(Plug&&Play,即插即用),但热插拔仍然是个危险的动作。而USB正是为了解决速度、扩展能力和易用性这三个问题而提出的低成本解决方案。1994年,Intel、Compaq、Digital、IBM、Microsoft、NEC、Nortel等7家计算机和通讯厂为了解决上述的问题,联合成立了USB论坛,并于1995年11月正式制订了USB0.9通用串行总线(UniversalSerialBus)规范,用于形成统一的PC外设接口标准。而USB1.1是目前支持USB的计算机与外设上普遍采用的标准,它提供全速(12Mbps)和低速(1.5Mbps)的两种速率来适应各种不同类型的外设。具体而言,使用USB接口,您可以将各种不同的设备使用“菊花链”方式连接在PC上,并且最大可支持多至127个设备,加上即插即用以及热插拔,与古老的串口以及并口相比,在使用上方便了许多。2USB的特点1.USB为所有的USB外设提供了单一的、易于操作的标准的连接类型。这样一来就简化了USB外设的设计,同时也简化了用户在判断哪个插头对应哪个插槽时的任务,实现了单一的数据通用接口。2.USB排除了各个设备象鼠标、调制解调器、键盘和打印机设备对去系统资源的需求,因而减少了硬件的复杂性和对端口的占用,整个的USB的系统只有一个端口和一个中断,节省了系统资源。3.USB支持热插拔(hotplug),也就是说在不关PC的情况下可以安全的插上和断开USB设备,动态的加载驱动程序。其他普通的外围连接标准,如SCSI(见说明)设备等必须在关掉主机的情况下才能增加或移走外围设备。4.USB支持PNP。当插入USB设备的时候,计算机系统检测该外设并且通过自动的加载相关的驱动程序来对该设备进行配置,并使其正常工作。5.USB在设备供电方面提供了灵活性。USB直接连接到Hub或者是连接到Host的设备可以通过USB电缆供电,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合.并且支持节约能源的挂机和唤醒模式。6.USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设。7.针对不能处理突然发生的非连续传送的设备,如音频和视频设备,USB可以保证其固定带宽。8.为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传送类型。9.USB使得多个外围设备可以跟主机通信。当然USB的480Mb/s的传输速率还不是很高,仅为IEEE-1394的3.2Gb/s传输速率的六分之一,这使其只适用于连接低速和中速的外设,如键盘、打印机、视频等。同时,USB还缺少对老硬件设备的支持,连接距离有限,协议太复杂等等。3USB的发展历史好前景1994年11月11日,USB总线规范0.7版问世,标志着USB的正式诞生,但这时它还不够完善,当然用户也很少,直到1996年1月15日USB1.0版本发布后,USB技术才相对成熟,但windows95的OSR2.1版本公布后,它才首次在PC机上使用,而且USB技术接口的外设也很少。到USB1.1版发布后,USB开始变成一个流行的接口,市场上也出现了大量的USB外设,但传输速率仅为12Mb/s。到USB2.0版本发布后传输速率提高到480Mb/s,使USB的应用更加广泛。现在USB3.0已经开始大量应用了。USB越来越流行,它已经成为一个标准接口。目前市场上出售的PC机都支持USB,而且很多外设只推出了USB版本如移动硬盘和电子盘等。可以预USB的应用会越来越广泛,其传输速率也会越来越高4USB规范在USB规范中,将其分为5个部分,分别是控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同设备的客户端设备驱动程序。控制器(HostController):这是一个物理存在的芯片,它主要负责执行由控制器驱动程序发出的命令。目前控制器几乎全部被集成到了主板南桥芯片之中,无需用户单独购买。控制器驱动程序(HostControllerDriver):在USB与控制器之间建立通信链路。USB芯片驱动程序(USBChipDriver):提供对USB的支持。USB设备(USBDevice):与PC相连接的USB外设,包括USB集线器和设备。前者可以连接其他的USB设备,而后者是用来完成特定功能的具体设备。客户端设备驱动程序(ClientDriver):用来驱动USB设备的驱动程序,通常由USB设备制造商或操作系统提供。4.1USB规范历史USB1.0USB1.0是在1996年出现的,速度只有1.5Mb/s;1008年升级为USB1.1,速度也大大提升到12Mb/s,在部分旧设备上还能看到这种标准的接口。USB1.1是较为普遍的USB规范,其高速方式的传输速率为12Mbps,低速方式的传输速率为1.5Mbps,1MB/s(兆字节/秒)=8MBbPS(兆位/秒),12Mbps=1.5MB/s。,大部分MP3为此类接口类型。USB2.0USB2.0规范是由USB1.1规范演变而来的。它的传输速率达到了480Mbps,折算为MB为60MB/s,足以满足大多数外设的速率要求。USB2.0中的“增强主机控制器接口”(EHCI)定义了一个与USB1.1相兼容的架构。它可以用USB2.0的驱动程序驱动USB1.1设备。也就是说,所有支持USB1.1的设备都可以直接在USB2.0的接口上使用而不必担心兼容性问题,而且像USB线、插头等等附件也都可以直接使用。使用USB为打印机应用带来的变化则是速度的大幅度提升,USB接口提供了12Mbps的连接速度,相比并口速度提高达到10倍以上,在这个速度之下打印文件传输时间大大缩减。USB2.0标准进一步将接口速度提高到480Mbps,是普通USB速度的20倍,更大幅度降低了打印文件的传输时间。USB3.0由Intel、微软、惠普、德州仪器、NEC、ST-NXP等业界巨头组成的USB3.0PromoterGroup宣布,该组织负责制定的新一代USB3.0标准已经正式完成并公开发布。新规范提供了十倍于USB2.0的传输速度和更高的节能效率,可广泛用于PC外围设备和消费电子产品。USB3.0在实际设备应用中将被称为“USBSuperSpeed”,顺应此前的USB1.1FullSpeed和USB2.0HighSpeed。现在已经面世。5USB系统的描述一个USB系统主要被定义为三个部分:USB主机、USB设备和USB的连接5.1USB的主机主机主控制器客户软件5.2USB设备按照功能不同,可分为2大类:集线器和功能设备集线器为USB系统提供额外的连接点;功能设备提供额外的功能5.2.1集线器集线器可以级联,但最多是5个(不包含根集线器)USB主机集线器USB设备5.2.2功能设备可以与主机进行数据和控制信息交互,为主机提供额外的功能。是一个独立的外围设备,具有单一的功能。5.3USB的连接USB是一种常用的PC接口,只有4根线,两根电源两根信号,需要注意的是千万不要把正负极弄反了,否则会烧掉USB设备或者电脑的南桥芯片!其中ID脚在OTG功能中才使用。由于Mini-USB接口分Mini-A、B和AB接口。如果你的系统仅仅是用做Slave,那么就使用B接口。系统控制器会判断ID脚的电平判断是什么样的设备插入,如果是高电平,则是B接头插入,此时系统就做主模式(mastermode)如果ID为低,则是A接口插入,然后系统就会使用HNP对话协议来决定哪个做Master,哪个做Slave。从左往右依次为:miniUSB公口(A型插头)、miniUSB公口(B型插头)、USB公口(B型)、USB母口(A型插座)、USB公口(A型插头)6USB系统的分层客户软件(管理一个接口)USB系统软件(管理设备)USB总线接口事务处理功能单元(接口集合)USB总线接口USB逻辑设备(端点集合)主控制器SIESIE端点0接口电缆无USB格式具有USB格式具有USB格式无USB格式缺省控制管道0一组管道为便于理解主机和USB设备间的数据传输机制。从逻辑上看,客户软件通过一组管道来与USB设备的功能单元进行通信;USB系统软件和USB逻辑设备间的通信是通过缺省控制管道0实现的;所有实际的USB数据传输都是由主机和USB设备的SIE来完成。6.1功能层功能层负责实现USB设备的特定功能。该层不理解USB的串行传输机制,而只是知道应该和USB设备传输哪些数据,它由主机方的客户软件和设备方的功能单元组成。功能单元是客户软件对USB设备的抽象,且被看作是一个接口的集合。6.1.1客户软件与功能单元的关系在功能层中,客户软件仅仅对USB设备的接口感兴趣,且只需与功能单元进行通信。客户软件客户软件客户软件客户软件功能单元功能单元功能单元功能单元6.1.2传输类型在USB的数据传输中,因不同外围设备的类型和应用不同,USB协议提供了四种传输类型:控制传输、中断传输、同步传输和块传输。控制(Control)方式传送:控制传送是双向传送,数据量通常比较小。USB系统软件用来主要进行查询、配置和给USB设备发送通用的指令。该传送方式可以包括8、16、32以及64字节的数据,这依赖于USB设备和传输速率。控制传输典型地用于主计算机和USB外设之间的端点(Endpoint)之间的传输。synchronou