USB通信协议

编码方式
USB标准采用NRZI(翻转不归零制)方式对数据进行编码,电平保持时传送逻辑1,电平翻转时传送逻辑0。
软件架构
焊接在印刷电路板上的USB插座
一个USB主机通过hub链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个SD卡读卡器,USB的术语中设备(device)指的是功能(functions)。集线器(hub)由于作用特殊,按照正式的观点并不认为是function。直接连接到主机的hub是根(root)hub。
[编辑] 端点
设备/功能(和集线器)与管道pipe(逻辑通道)联系在一起,管道把主机控制器和被称为端点endpoint的逻辑实体连接起来。管道和比特流(例如UNIXpipeline)有着相同的含义,而在USB词汇中术语端点经常和管道混用,甚至在正式文档中。
端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能最多有32个活动管道,16个进,16个出。(出(OUT)指离开控制器,而入(IN)指进入主机控制器。)两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是字节,所以USB包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个USB设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为4类:
控制传输(Control)——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的0号管道。
同步传输(Isochronous)——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。
中断传输(Interrupt)——用于必须保证尽快反应的设备(有限延迟),例如鼠标、键盘。
批量传输(Bulk)——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的文件传输。
一旦设备(功能)通过总线的hub附加到主机控制器,主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量,一般是通过轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。
为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(device descriptor),而设备描述符有若干配置描述符(configuration descriptors)。这些配置一般与状态相对应,例如活跃和节能模式。每个配置描述符有若干接口描述符(interface setting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相
机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(default interface setting)和可能多个替代接口设置(alternate interface settings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。
[编辑] HCD (Host Controller Driver)
包含主机控制器和根HUB的硬件为程序员提供了由硬件实现定义的接口主机控制器设备 (HCD)。而实际上它在计算机上就是端口内存映射
1.0和1.1的标准有两个竞争的HCD实现。康柏的 开放主机控制器接口 (OHCI)和Intel的通用主机控制器接口 (UHCI)。VIA威盛采纳了UHCI;其他主要的芯片组多使用OHCI。它们的主要区别是UHCI更加依赖软件驱动,因此对CPU要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此USB-IF在USB 2.0的设计阶段坚持只能有一个实现规范,这就是扩展主机控制器接口 (EHCI)。因为EHCI只支持高速传输,所以EHCI控制器包括四个虚拟的全速或者慢速控制器。这里同样是Intel和Via使用虚拟UHCI,其他一般使用OHCI控制器。
某些版本的Windows上,打开设备管理器,如果设备说明中是否有“增强”("Enhanced"),就能够确认它是2.0版的。而在Linux系统中,命令lspci能够列出所有的PCI设备,而USB会分别命名为OHCI、UHCI或者EHCI。
列出为32位地址的为EHCI,16位的为OHCI
命令lsusb能够显示所有USB设备的信息。命令dmesg能够显示OS启动时关于USB设备的信息。
[编辑] USB封包格式
USB的封包格式和早期的互联网封包格式非常相似,要了解USB连接原理就一定要先了解封包格式。
usb 声卡
USB封包格式
偏移量
类型
大小
0
HeaderChksum
1
利用添加包头进行效验,不包括包头本身的校验。
1
HeaderSize
1
包头的大小,包括可用的字串。
2
Signature
2
数据值为0x1234
4
VendorID
2
USB提供商的ID
6
ProductID
2
USB产品ID
8
ProductVersion
1
产品版本号
9
FirmwareVersion
1
固件版本号
10
USB属性
1
USB Attribute:
Bit 0:如果设为1,包头包括以下三个字串:语言、制造商、产品字串;如果设为0,包头不包括任何字串。
Bit 2:如果设为1,设备自带电源;如果设为0,无自带电源。
Bit 3:如果设为1,设备可以通过总线供电;如果设为0,无法通过总线供电。
Bits 1 and 4—7:保留。
11
最大电力
1
设备需要的最大电力,以2mA(毫安培)为单位。
12
设备属性
1
Device Attributes:
Bit 0:如果设为1,CPU运行在24 MHz;如果设为0,CPU运行在12 MHz。
Bit 3:如果设为1,设备的EEPROM可以支持400 MHz;如果设为0,不支持400 MHz。
Bits 1, 2 and 4 ... 7:保留。
13
WPageSize
1
I2C的最大写入页面大小
14
数据类型
1
该数值定义设备是软件EEPROM还是硬件EEPROM。
0x02:硬件EEPROM
其它数值无效。
15
RpageSize
1
I2C最大读取页面大小。如果值为0,整个负载大小由一个I2C读取装置读取。
16
PayLoadSize
2
如果将EEPROM作为软件EEPROM使用,表示软件的大小;除此之外该值都是0。
0xxx
Language string
4
如果有,语言字串是标准的USB字串格式。
0xxx
Manufacture string
...
如果有,制造商字串是标准的USB字串格式。
0xxx
Product string
...
如果有,产品字串是标准的USB字串格式。
0xxx
Application Code
...
如果有,表示应用代码。
[编辑] 设备分类
USB随身碟
依附在总线上的设备可以是需要特定的驱动程序的完全定制的设备,也可能属于某个设备类别。这些类别定义了某种设备的行为和接口描述符,这样一个驱动程序可能用于所有此种类别的设备。一般操作系统都为支持这些设备类别,为其提供通用驱动程序。
设备分类由USB设计论坛设备工作组决定,并分配ID。
如果一个设备类型属于整个设备,该设备的描述符的bDeviceClass域保存类别ID;如果它这是设备的一个接口,其ID保存在接口描述符的bInterfaceClass域。他们都占用一个字节,所以最多有253种设备类别。(0x00和0xFF保留)。当bDeviceClass设为0x00,操作系统会检查每个接口的bInterfaceClass以确定其类别。
每种类别可选支持子类别(SubClass)和协议子定义(Protocol subdefinition)。这样可以用于主设备类型的不断修订。
常用设备类别和ID有:
0x00:保留值
0x01:USB音频设备,像声卡这样的设备。
0x02:USB通信控制设备,像网卡调制解调器串口这样的设备。
0x03:人机接口设备键盘鼠标等。
0x05:物理接口设备,像摇杆等。
0x06:静止图像捕捉设备,用在USB上的Picture Transfer Protocol
0x07:USB打印设备,像打印机
0x08:USB大容量存储设备闪存盘移动硬盘,MMC卡SD卡CF卡读卡器,数码相机,
数字音频播放器等。这一类设备显示成一个文件系统
0x09:USB集线器。
0x0A:USB通信设备("CDC"),用于调制解调器(包括软件调制解调器)、网卡(双绞线)、ISDN传真
0x0B:智能卡设备,像读卡器
0x0E:USB视频设备,类似摄像头,电视卡的动态图像捕捉设备。
0xE0:无线控制器,如蓝牙
0xFE:特殊的应用,如红外线数据桥接器。
0xFF:订制设备。
[编辑] USB接头
常用的USB延长线
接头是由USB协会所指定,接头的设计一方面为了支持众多USB的基本需求,另一方面也避免以往许多类似串行接头所出现的问题。
接头设计的相当耐用。许多以往使用的接头较脆弱,即使受力不大,有时针脚或零件也会折弯甚至断裂。而USB接头的金属导电部份周围有塑料作为保护,而且整个连接部份被金属的保护套围住,因此USB接头不论插拔,都不容易受损。由于金属保护套和外围塑料护套的保护,需要较大的力量才能造成USB接头明显的损坏。
具有防呆设计,方向相反的插头不可能插到插座里,方向正反很容易感觉出来。所以不可能把USB接口插错。
接头能相对便宜地大量生产。
在USB网络中,接头被强制使用定向拓扑。USB不支持环形网络,因此不兼容的USB设备之间接口也不兼容。不像其他通讯系统(如RJ-45电缆)不能使用转换插头,防止环形USB网络产生。
适度的插拔力。USB电缆和小型USB设备能被插口卡住(不需要夹子、螺丝或者其他接口那样的锁扣)。允许通过适当力量插拔,连接器要方便困难环境和残障人士使用。
由于接头的构造,在将USB插头插入USB座时,插头外面的金属保护套会先接触到USB座内对应的金属部份,之后插头内部的四个触点才会接触到USB座。金属保护套会连接到系统的地线,提供路径使静电可以放电,避免因静电通过电子零件而造成损坏。
USB电缆最长允许5米,更长的距离需要HUB[3]
来自:/wiki/USB

本文发布于:2024-09-22 01:52:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/369472.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   接口   控制器   接头   使用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议