文档介绍:USB通信协议
设备:
设备代表一个USB设备,它由一个或多个配置组成。设备描述符用于说明设备的总体信息,并指明其所含的配置的个数。一个USB设备只能有一个设备描述符。
配置
一个USB设备可以包含一个或多个配置,如USB个设备已连接上;
(3)主机一旦得知新设备已连上后,发送端口使能及复位命令给此端口;
(4)集线器将发向端口的复位信号持续10ms,当复位信号撤消后,端口己经有
效,这时USB设备处于缺省状态,并且从总线上可以得到100mA的电流,所有设
备寄存器状态已经复位,设备可对缺省地址产生响应;
(5)主机给设备分配一个唯一的地址,设备进入地址状态;
(6)在USB设备接受地址之前,其缺省控制管道在缺省地址处是可寻址的,主
机通过读取设备描述符,决定设备缺省管道的实际数据净负荷大小;
(7)主机从设备读取配置信息,从0读到n一1(n为配置个数),此操作需花费
几毫秒;
(8)基于从设备读取的配置信息及设备如何使用的信息,主机给设备一个配置
值,此刻,USB设备处于配置状态,并配置有关的端口,按照配置USB设备就可以
从VBUS得到所要求的电量。从设备的角度而言,设备己经准备就绪。
当USB设备断开时,集线器同样会通知主机,断开一个设备连接会使得设备
所连接的端口无效,一收到断开通知,主机就会更新本地拓扑信息。
2、USB的物理特性
USB使用一根屏蔽的4线电缆与设备进行互联。数据传输通过一个差分双绞线进行,这两根线分别表为D+与D-,另外两根是Vcc和Ground,其中Vcc向USB设备供电。使用USB电源的设备称为总线供电设备,而使用自己外部电源的设备叫做自供电设备。
从一个设备连回主机,称为上行连接;从主机到设备的连接,称为下行连接。为房主回环的情况发生,上行和下行的端口使用不同的连接器,所以USB在电缆和设备的连接中分别采用了两种类型的连接头。如下图:
A型连接头
1
2
3
4
B型连接头
1
2
4
3
黑
Ground
4
绿
Data+(D+)
3
白
Data-(D-)
2
红
Vcc
1
缆线颜色
信号名称
引脚编号
15
3、USB数据传输
在USB总线上所有与USB设备功能单元的数据传输都是由客户软件启动的,其传输过程必须经过四个软硬件实体:客户软件、USB总线驱动程序、USB主控制器驱动程序和USB主控制器。下图向下的箭头表示了客户软件向USB设备发送数据的情况,其传输步骤如下:
(l)客户软件把要传输的数据放入数据缓冲区,并向USB总线驱动程序发出IRP,以请求数据传输;
(2)USB总线驱动程序响应客户软件的IRP,并将其中的数据转化为一个具有USB格式的事务处理,然后将其向下传递;
(3)USB主控制器驱动程序负责为这些事务处理建立一系列以帧/小帧为单位的事务列表,并保证其不会超过USB的带宽;
(4)USB总线控制器负责读取事务列表,并将其中的事务处理以信息包为单位发送到USB总线上;
(5)USB设备接收到这些信息包后,sIE自动将其解包并将数据放入指定端点的接收缓冲区内,由芯片固件对其进行处理。
客户软件
USB总线驱动程序
USB主控制器驱动程序
事务队列
事务处理
事务处理
USB主控
USB
IRPs
数据
USBD接口
HCD接口
传输
事务处理
数据包
HW/SW
接口
4、USB事务处理
USB信息包
在USB协议中,USB的数据传输是由信息包组成,这些信息包组合起来可以构成完整的事务处理。包(packet)是USB系统中信息传送的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成:同步字段(SYNC)、包标识符字段(PID)、
数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),格式如下
SYNC字段:由8位组成,作为每个数据封包的前导,用来产生同步作用,是USB设备与总
线的包传输率同步,它的数值固定为00000001
PID字段:用来表示数据封包的类型。包标识符中的校验字段是通过对类型字段的每个位求反码,PID字段如下图所示:
信息包的类型如下图:
同步字段(SYNC)
PID字段
数据字段
CRC字段
包结尾字段(EOP)
PID0
PID1
PID2
PID3
___
PID0
___
PID1
___
PID2
___
PID3
封包类型
PID名称
PID编码
意义
令牌
OUT
0001B
从主机到设备的数据传输
IN
1001B