usb协议简介剖析_第1页
usb协议简介剖析_第2页
usb协议简介剖析_第3页
usb协议简介剖析_第4页
usb协议简介剖析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、USB协议简介USB枚举USB,全称是UniversalSerialBus(通用串行总线),它是在1994年底康柏、IBM、Misosoft等多家公司联合制订的USB1.1和USB2.0USB1.1是较为普遍的USB规范,其高速方式的传输速率为12Mbps,低速方式的传输速率为l.5Mbps(b是Bit的意思),lMB/s=8MBPS(兆位/秒),12Mbps=1.5MB/So当前,大部分MP3为此类接口类型。USB2.0规范是由USBL1规范演变而来的。它的传输速率达到了480Mbps,折算为MB为60MB/S,足以满足大多数外设的速率要求。使用USB为打印机应用带来的变化则是速度的大幅度提

2、升,USB接口提供了12Mbps的连接速度,相比并I速度提高达到10倍以J在这个速度之卜打印文件传输时间大大缩减。USB2.0标准进一步将接口速度提高到480Mbps,是普通USB速度的20倍,更大幅度降低了打印文件的传输时间。USB系统的核心是HostUSB为了支持多个设备互相,而不需要另外接Host,比如个数码相机和一个打印机,希望把打印机和数码相机直接相连接,然后就可以实现通过USB,把数据从数码相机传送到打印机中,打印机就可以打印了。0TG引入了个新的概念,HNP(HostNegotiationProtocol),主机协商协议,允许两个设备之间互相协商谁去当Host©不过,即

3、使在0TG中,也只是同时刻,只存在单个的Host,而不允许存在多个Host的。标准USB,Mini-USB接口定义USB是一种常用的PC接口,只有4根线,两根电源两根信号,需要注意的是干万不要把正负极弄反了,否则会烧掉USB设备或者电脑的南桥芯片!a型us,接口(公口)型us接口(对口)USB弓唧定义:型us按口(公口)Pin 2PinPin 4型ush接口(母口)31琳解备注1VBus红电源由2Data-白数船LData!辘+4GND黑_£_普通PC端USB设备的接口型 Nini II!;接口(公口)b型 w” 1f按口(公口)其中ID脚在OTG功能中才 使用。由于Mini-USB

4、接口 分Mini-A、R和AR接口。如果你的系统仅仅是用做 Slave,那么就使用B妾口。Pin 1Pin 5ini-QSB接口(母口)通用Mini-USB引脚定义:系统控制器会判断ID脚的 电平判断是什么样的设备 插入,如果是高电平,则 是B接头插入,此时系统 就做主模式(master mode) 如果ID为低,则是A接口插 入,然后系统就会使用 HNP对话协议来决定咖个 做Master,哪个做Slave。引脚功能颜色备注1V Bus红电源正5 V2Dat a-白数据-3Data+绿鞅据+4IDA型:与地相连B型:不接地(空)5GND黑数码相机,移动硬盘等移动设备Micro 用口Micro

5、AMicro BMicro USBMicro USB是侬标准的一 个便携版本,化当前部分手机 使用的Mini USB接口也小, Micro-USB 是 Mini-USB 的下一 代规格,由USB标准化组织美 国USB Implementers Forum 飞SB-IF)于2007年1月41T制 定完成。(A型插头)(B型插头)(B型)USB母口(A型插座) LSB公口(A型插头)从左往右依次为:miniUSB公口(A型插头)、miniUSB公口(B型插头)、USB公口(B型)、USB母口(A型插座)、USB公口(A型插头)USB描述符 标准的描述符有5种,USB为这些描述符定义了编号: 1一一

6、设备描述符 2一一配置描述符 3一一字符描述符 4接口描述符 5一一端点描述符设备描述符一个设备只仃一个设备描述符,而一个设备描述符可以包含多个配置描述符,向一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如卜说明;设备描述符struct_DEVICE_DEscriptOR_STRUCT(BYTEbLength:设备描述符的字节数大小,为0x12BYTEbDescriptof»pe;描述符类型编号,为0x01WORDbcdUSB;/USB版本号BYTEbDeviceClass;USB分配的设备类代码,OxOJOxf

7、e为标准设得类,Oxflf为厂商自定义类型0x00不是在设备描述符中定义的,如HIDBYTEbDeviceSubClass;u$b分配的子类代码,同上,值由USB规定和分配的BYTEbDeviceProtocI;USB分配的设备协议代码,同上BYTEbMaxPackctSizcO;端点0的最大包的大小WORDidVcndor;厂商编号WORDidProduct;产品编号WORDbcdDcvicc;设备出厂编号BYTEiManufacturer;描述厂商字符串的索引BYTEiProduct;描述产品字符串的索引BYTEiSerialNumber;描述设备序列号字符串的索引BYTEbNumConf

8、iguralion;可能的配置数M表USB设备描述符的结构偏移状域大小值描述0bLength1数字此描述表的字节数1bDecriptorType1常量描述符的类型(此处应为0x01,即设备描述符)2bcdUSB2BCD码此设备。描述表兼容的USB设备说明版本号(BCD码)4bDeviceClass1类设备类码:如果此域的值为。则一个设置卜每个接口指出它自己的类,各个接口各自独立工作。如果此域的伤处TFEH之间,则设备在不同的接口上支持不同的类。并这些接口可能不能独立工作。此值指出了这些接口集体的类定义。如果此域设为FFH,则此设备的类由厂商定义。5bDeviceSubClass1了类r类挖码这

9、些码值的JI体含义根据bDeviceClass域来亿如bDeviceClass域为零.此域也须为零如bDeviceClass域为FFH.此域的所仃值保留。6bDevicePortocol1协议协议码这些64的值彳见bDeviceClass和bDeviceSubClass的"ufu定.如果设备支持设备类相关的协议,此码标志r设备类的值.如果此域的值为零.则此设备不支持设备类相关的协议,然而,可能它的接口支持设备类相关的协议如果此域的值为FFH,此设备使用厂商定义的协议。7bMaxPacketSizeO1数字端点。的最大包大小(仅8,16,32,64为合法值)8idVendor2ID厂商

10、标志(由USB-IF组织赋值)bDescriptorType为描述符的类型.,其含义可杳卜表(此友也适用卜标准命令Get_Descriptor中wValue域高字节的取值含义):表USB描述符的类型值类型描述符描述符值标准描述符设备描述符(DeviceDescriptor)0x01配置描述符(ConfigurationDescriptor)0x02字符串描述符(StringDescriptor)0x03接口描述符(InterfaceDescriptor)0x04端点描述符<EndPontDescriptor)0x05类描述符维线器类描述符(HubDescriptor)0x29人机接口类描

11、述符(HID)0x21广商定义的描述符OxFFUSB的设备类型(deviceclass)表USBClass表BaseClassDescriptorUsageDescriptionOOh.DeviceUseclassinformationintheInterfaceDescriptors种类信息定义在接口描述符中OlhInterfaceAudio音频设备02hBothCommunicationsandCDCControl通信设备(手机,Class_02&SubClass_02&Prot_01)03hInterfaceHID(HumanInterfaceDevice)人机接口设备0

12、5hInterfacePhysical物理设备06hInterfaceImage图像设备(可能是IPhone手机,Class_06&SubClass_01&Prot_01)07hInterfacePrinter打印机08hInterfaceMassStorage大容量存储(可能是手机,Class08&SubClass06&Prot50)OMMB09hDeviceHub集线器OAhInterfaceCDC-Data通信设备(手机,ClassOA&SubClassOO&Prot00)OBhInterfaceSmartCard智能kODhInterfa

13、ceContentSecurity内容安全设备OEhInterfaceVideo视频设备(摄像头,Class_0e&SubClass_03&Prot_00)orhInterfacePersonalHealthcare个人健康设备DChBothDiagnosticDevice诊断设备(USB2兼容设备)EOhInterfaceWirelessController无线控制器(蓝牙设备等)EFhBothMiscellaneous杂项(ActiveSync,PalmSync,各种协会等)FEhInterfaceApplicationSpecific应用专有规范(固件升级,红外,USB测

14、试与测量等)FFhBothVendorSpecific供应商自定义规范(手机,Class-FF&SubClass_FF&Prot.FF)为何会有这么多USB的Class分类?用单一的USB接口,取代之前种类繁多的各种其他接口。而为了取代其他各种接口,那意味着就要实现,或者是支持,之前别的接口,所对应的各种功能。因此,USB协议设计的时候,就是要把鼠标,键盘,大容量存储,图像等,这些之前是通过其他接口所实现的,各种的功能,都囊括进来。并旦在协议中有对应的规范定义,支持这些功能。因此,才有了如此多的各种USB的Clas,即分类,根据功能而分出的各种类别。不同的Class分类,用于实

15、现对应的功能,适用于相应的设备。配置描述符struct_CONFIGURATION_DEscriptOR_STRUCT(BYTEbLength;设备描述符的字节数大小BYTEbDescriptorType;描述符类型编号WORDwTotalLength;配置所返回的所有数量的大小BYTEbNumlnterface;此配置所支持的接口数量BYTEbConfigurationVale;Set_Configuration命令需要的参数值一BYTEiconfiguration;描述该配置的字符串的索引值BYTEbmAttribute;供电模式的选择BYTEMaxPower;设备从总线提取的最大电流字符

16、描述符struct_STRING_DEscript0R_STRUCT(BYTEbLength;设备描述符的字节数大小BYTEbDescriptorType;描述符类型编号BYTESomeDescriptor36;/UNICODE编码的字符串)接口描述符struct_INTERFACE_DEscriptOR_STRUCT(BYTEbLength;设备描述符的字节数大小BYTEbDescriptorType;描述符类型编号BYTEblnterfaceNunber;接口的编号BYTEbAlternateSetting;备用的接口描述符编弓BYTEbNumEndpoints;该接口使用端点数,不包括端

17、点0BYTEblnterfaceClass;接口类型BYTEblnterfaceSubClass;接口子类型BYTEblnterfaceProtocol;接口所遵循的协议BYTE.Interface;描述该接口的字符串索引值端点描述符struct_ENDPOIN_DEscriptOR_STRUCT(BYTEbLength;设备描述符的字节数大小,为0x07BYTEbDescriptorType;描述符类型编号,为0x05BYTEbEndpointAddress;端点地址及输入输出属性.BYTEbmAttribute;端点的传输类型属性0x02WORDwMaxPacketSize;端点收、发的最

18、大包的大小BYTEbIntervaI;主机查询端点的时间间隔)枚举过程USB的枚举过程分为4个状态.1 .接入态。主机检测到USB设备插上,击活端口,并发送复位命令(保持10ms)2 .默忒态 :主机使用默认地址读取设备描述符(GET_DESCRIPTOR)。主机分配给设备一个总在线的唯一地址(SET_ADDRESS)3.地址态 :主灯L从新的地1止获取设备描(GET_FULL_DEV_DESC) 主机获取所有设备的配置描述符(占ET_CFG_6kSC)4.配置态:生机密置描述符(设备,配置)(GET_FULL_CFG_DESC)。主机读取配置状态(可选)(get_c6nfi或jraYRdn)

19、。主机读取接口状态(可选)(GETJNTERFACE)USB传输方式在U5B规范中规定了四种不同的数据传输方式:1、等时传输方式(Isochronous)该方式用来联接需要连续传输数据,II对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、嗽叭以及电话等。等时传输方式以固定的传输速率,连续不断地在主机与USB设备之间传输数据,在传送数据发生错误时,USB并不处理这些错误,而是继续传送新的数据。2、中断传输方式(Interrupt)该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及操纵杆等设备上。3、控制传输方式(Control)该方式用来处理

20、主机到USB设备的数据传输。包括设备控制指令、设备状态杳询及确认命令。当USB设备收到这些数据和命令后,将依据先进先出的原则处理到达的数据。4、批(Bulk)传输方式该方式用来传输要求正确无误的数据。通常打印机、扫描仪和数字相机以这种方式与生机联接USB抓包工具bushoundQoptureSettingsDevices tjelp ExitClick in the chedc box to select a device:骨(0) lntel(R) 7 ScricB/CZ I 6 CViipsct Fumily 4 port Seriul ATA Sturugc Cuiitrullcr 1

21、E00 骨(2)主要IDE曲道 一次要IDE通道 U (1J lntel(H) / Seriee/CZl 6 Ctiipset Family 2 port Serial AI A Sturaye Controller 1EO8骨主要IOE泡道官(5)次要 IDE ifflijt . (6) ST9500/I23AS,. (7) Ifitel(R) 7 Serieu/C21 6 Chipuet Family USB Enhanced Ho»t Controller - 1 E2D口行(1 P) usn Root Huh(1 5) Generic USB Hub,.(IAllnrn U

22、S13-01 n nt err,(33| I KD Sending Card(6) Intel(R) 7 Serieu/CZ 1 6 Chipset 尸USB Enliancrd Host Controller - 1EZ6(1 3) USB Root HubL - . R7) Generic USR Hub;28 USB人体学愉入我备、|?9) ftIID-complinnt matis«R二(<i)fi 印AL端 口 (LPrij (Id) Printer Port Logical InterfaceL Auto salact hot plugged davicas Pro

23、pertiesEnclpoxt 0 :EdpoiTit 1 OUT:Endpoint 1 INHord“oru IDDoto Rood: m 1 n iTyj>e-CTI.Classr* ffSxih>C laas- 00Px-otocol -00MaxPocket - 8TvT>e-BUI.kfSxifeC 1»as-00Protocol -00MaxrPaickct -40Tv pc-BULKCl«9S£S:-ffSutjC Icasrx:- 00Fx-otocol -00MaxF4»cke-1 -40USBSVid_0 4 8 3

24、&«F±d_5 7106xR=v 0200 180 bytD= 57KB 门二一主机笫次发出请求描述符命令,数据流为:8006000200000900,bRequest的值为0x06,代表Get_Descriptor命令,但为什么描述符呢?wValue的高字'。表示T描述符的类型,此处wValue的值为0x0100.所以高字节为0x01,设备返回的数据为:120100020000004083041057000201020301,第,个字节bLenght的值为0x12,表示此描述符的长度。第二个字节bDecriptorType的值为0x01,代表设备描述符。b

温馨提示

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

评论

0/150

提交评论