包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在 USB总线 上传输的。
数据在 USB总线 上的传输以包为单位,包只能在帧内传输
。
高速USB总线的帧周期为125us,全速以及低速 USB 总线的帧周期为 1ms。
帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。EOF不是一个包,而是一种电平状态,EOF期间不允许有数据传输。
包是USB总线上数据传输的最小单位,不能被打断或干扰,否则会引发错误。
若干个数据包组成一次事务传输,一次事务传输也不能打断,属于一次事务传输的几个包必须连续,不能跨帧完成。
一次传输由 一次到多次事务 传输构成,可以跨帧完成。
USB包由五部分组成,即: //★
- 同步字段(SYNC)
- 包标识符字段(PID)
- 数据字段(ADDR + Frame Number + DATA )
- 循环冗余校验字段(CRC)
- 包结尾字段(EOP)
包
的基本格式如下图: //★