/***************************************************框架*****************************************************/
一:USB数据
USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。
-
域:
1、同步域(SYNC)------所有的USB包都由SYNC开始
2、标识域(PID)---由四位标识符 + 四位标识符反码构成
3、地址域(ADDR)---七位地址,代表了设备在主机上的地址
4、端点域(ENDP)------四位
5、帧号域(FRAM)------11位
6、数据域(DATA)---必须为整数个字节的长度
7、校验域(CRC)---对令牌包和数据包中非PID域进行校验的一种方法,模2运算
-
包:
1、令牌包
2、数据包---分为DATA0包和DATA1包,DATA0包和DATA1包交替发送,(但)在同步传输中所有的数据包都是为DATA0
3、握手包---包括 ACK、NAK、STALL以及NYET 四种
4、特殊包
-
事务:
每一种事务都由令牌包、数据包、握手包三个阶段构成(数据包不一定有,可能会提前结束进入握手包)
1、IN
2、OUT
3、SETUP---数据包阶段--只有一个固定为8个字节的DATA0包;------
-----握手包阶段--设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态,并准备下一个传输(在SETUP事务后通常是一个IN或OUT事务构成的传输)。
-
标准的USB设备请求命令
bmRequestType(1) + bRequest(1) + wvalue(2) + wIndex(2) + wLength(2)
首字母bm,b,w分别表示位图、字节,双字节
-
描述符
1——设备描述符 >2——配置描述符 >3——字符描述符 >4——接口描述符> 5——端点描述符
二:传输
USB