USB的传输总是低位在前,高位在后。
USB的传输方向:从设备到主机的数据为输入;从主机到设备的数据叫做输出。
1. 包结构
以同步域开始,紧跟着一个包标识符PID(Packet Identifier),最终以包结束符EOP(End of Packet)结束这个包。
同步域
作用:① 通知USB串行接口引擎数据要开始传输;② 同步主机和设备之间的时钟。
格式:① 全速/低速设备的同步域为00000001;② 高速设备的同步域为31个0,后面跟1个1;注意:这是对发送端的要求,接收端在解码时,0的个数可以少于这个数。
包标识符PID
包标识符PID是用来标识一个包的类型。
PID共有8位,目前USB协议仅使用4位(PID0~PID3),另外4位(PID4~PID7)是PID0~PID3的取反,用来校验PID。
传输的顺序为PID0,PID1,PID2,PID3,...,PID7。
包结束符EOP
全速/高速模式的EOP是一个约为2个数据宽度的SE0;
高速模式的EOP是通过故意的位填充错误实现的。
单端0(SE0):D+和D-同时保持低电平。
单端0的用处:① 包结束;② 复位信号(USB集线器对USB设备的复位操作,就是将总线设置为SE0约10ms)。
Q: 如何一个位填充错误是EOP还是传输错误?A: 通过CRC校验,即如果CRC正确,则说明这个位填充是EOP;否则说明传输错误。
2. 包分类
根据包标识符PID的不同,包可以分为四种包:令牌包(token packet, PID1~0为01)、数据包(data packet, PID1~0为11)、握手包(handshake packet, PID1~0为10)、特殊包(special packet, PID1~0为00)。

2.1 令牌包
令牌包用来启动一次USB传输。由于USB是主从结构的拓扑结构,所以所有的数据传输都是主机发起的(唯一的例外是支持远程唤醒的设备能够主动改变总线的状态,让集线器感知到设备的唤醒信号,但是这一过程并不发送数据,只是改变总线的状态)。
令牌包分4种:输出(OUT)、输入(IN)、建立(SETUP)、帧起始(SOF)。
输出令牌包:主机将要向设备发送一个数据包。
输入令牌包:主机将要从设备读取一个数据包。
建立令牌包:与输出令牌包几乎相同,不同之处是建立令牌包只使用DATA0,并且发送到设备的控制端点,设备必须接收建立令牌包。
帧起始令牌包:在每帧(或微帧)开始时发送,并且以广播的形式发送,使得总线上的所有USB全速/高速设备都可以接收到SOF令牌包。
| 同步域 | 8位标识符PID | 7位地址 | 4位端点号 | 5位CRC5校验 | EOP |
OUT、IN、SETUP令牌包结构图
| 同步域 | 8位标识符PID | 11位帧号 | 5位CRC5校验 | EOP |
SOF令牌包结构图
2.2 数据包
| 同步域 | 8位标识符PID | 字节0 | 字节1 | … | 字节n | 16位CRC16校验 | EOP |
数据包的结构图
数据包类型不匹配主要发生在握手包。
2.3 握手包
| 同步域 | 8位标识符PID | EOP |
握手包结构图
ACK:正确接收数据,并且有足够的空间容纳数据。主机和设备都可以使用ACK来确认,而NAK、STALL、NYET只有设备才能够返回,主机不能使用这些握手包。
NAK:① 没有数据需要返回;② 数据接收正确,但是没有足够的空间容纳数据。
STALL:设备无法执行这个请求或者设备已挂起。设备返回STALL,需要主机干预才能解除这种STALL状态。
NYET:只在USB2.0高速设备输出设备中使用,表示设备本次数据成功接收,但是没有足够的空间来接收下一次的数据。主机在下一次输出数据前,将使用PING令牌包来探测设备是否有足够的空间接收数据,以免浪费不必要的带宽和时间。
2.4 特殊包
暂不介绍。

相关推荐
三星优先考虑2nm/4nm改进,2028-29前不太可能实现1.4nm
S3C44B0X中文数据手册第十四章
S3C44B0X中文数据手册第十二章
台积电等外资项目将助力美国FDI回升
从“维斯比”舰看舰艇全隐身
苹果、高通、联发科2纳米大乱斗 台积电是大赢家
俄即将发射新型导航卫星
PX5 FILE嵌入式FAT文件系统的ASIL D认证
MCU市场触底 部分厂商攻高阶应用求生
S3C44B0X中文数据手册第九章
多拦截器——弹道导弹防御的新锐
周易易学视频教学光盘曲炜中级四柱面授班曲炜高级四柱面授班曲炜六爻中级面授班
S3C44B0X中文数据手册第十一章
首款采用DeepX AI芯片的SoM
免费的仿真工具有效优化机器人单元
创意2纳米Tape-out 瞄准两大CSP
[公告]西安傅立叶上海办事处诚聘英才
日月光拼先进封装 要掌握机器人「眼口鼻」
Intro to TechTalk
CS5157H构成的有12V偏压的3.3V至2.5V/7A变换器
卖氧气,都市中的新行当
西安傅立叶上海办事处诚聘英才
用于高侧或低侧测量的1%电流感应放大器 IC
程控开关电源用于片心逻辑―Pentium Pro处理器
CS5157H构成的5.OV至3.3V/10A变换器
CS5157H构成的有遥控检测的l2V至3.3V/5.0A变换器
S3C44B0X中文数据手册第十三章
CS5157H构成的有电流共用的5.0V至3.3V/10A变换器
存储器的混乱
[公告]西安傅立叶上海办事处诚聘英才