原文地址:USB2.0通讯协议
作者:spalish
USB2.0通讯协议(spalish)
1.包(packet)
包是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成,同步字段(sync)、包标识符(PID)、数据字段、CRC和包结尾字段(EOP)。
包类型(由PID区分):
令牌:OUT
IN
SOF
SETUP
数据:DATA0
DATA1
握手:ACK
NAK
STALL
特殊:PRE
2.事务(transaction)
USB系统上一次接收或发送的处理过程称为事务。事务处理的类型有:输入事务,输出事务,设置事务,帧开始,帧结尾
还有一个特殊的事务类型:拆分事务(splittransaction),用来支持高速hub上连接低速或全速设备。这种特殊事务类型只是和host和hub有关,但是对设备是透明的。
3.传输
控制传输、中断传输、批量传输、等时传输
所有的四种传输方式都由上面的事务来处理,也就是说
传输由不同类型的
事务组成,事务由不同类型的
包的收发组成
3.包传送和frame的关系?帧(frame)和微帧(microframe)
USB总线上的传输由帧组成。
低速或全速设备通过帧来传送,周期1ms
高速设备通过微帧,周期125us
host每1ms产生SOF包(相当于微帧的时候是每8个微帧产生一个SOF包)
一个帧可以包含多个事务。每N个帧总线会分配带宽给中断传输或是等时传输
可以这么理解:总线时隙分成一个个帧,每个帧里面由事务组成。hostcontroller的作用就是根据传输类型合理分配这些事务在总线上的调度。