USB传输时所用的数据包在上节中已经初步介绍,这节详细地记录下USB传输中包的不同类型。
USB包的类型根据包头的PID来区分,PID分别有:
IN OUT DATA0 DATA1 ACK NAK
SOF SETUP STALL PRE ……
下面介绍他们分别所处的传输阶段和出现含义:
IN,OUT,SOF,SETUP 包含在令牌包内;
DATA0 ,DATA1 包含在数据包内;
ACK,NAK,STALL 包含在握手包内;
PRE 包含在特殊包内。
令牌阶段,数据阶段,握手阶段正是主机与USB设备一次交互的三个阶段。
令牌阶段的令牌包标识:
IN(Host):出现在主机要求USB设备输入数据的情况,表示要从USB设备接收数据;
OUT(Host):出现在主机要向USB设备输出数据的情况,表示要向USB设备发送设备;
SETUP(Host):出现在枚举阶段主机向USB设备询问信息的情况;
数据阶段的数据包标识:
DATA0(Host & Slave):OUT 情况下的首个数据包标识,表示数据包内是正常数据;
DATA1(Host & Slave):IN 情况下的首个数据包标识,表示数据包内是正常数据;
握手阶段的数据包标识:
ACK(Host & Slave):表示主机或USB设备成功接收数据的确认;
NAK(Slave):IN,OUT 情况下出现的数据包标识,表示USB设备没有准备好发送或接收数据;
STALL(Slave):IN,OUT 情况下出现的数据包标识,表示USB设备出现了问题;
USB的传输方式包括四种:控制传输,批量传输,中断传输与等时传输。
一般来说,一次普通的主机与USB设备的对话,例如批量传输,中断传输等,包括三个阶段,令牌阶段,数据阶段,握手阶段。
而当主机使用控制指令时,即主机使用控制传输时,主机与USB设备间必须通过三次对话组成的会话才能完成,也就是说,控制传输时,主机与USB设备之间必须有三次对话,每次对话又有三个阶段。这么做的原因是控制传输是主机与USB设备间通信的最重要的传输方式,这种方式必须严格保证其正确性。
本文深入探讨USB传输中的数据包类型,包括IN、OUT、DATA0、DATA1、ACK、NAK等,并解析它们在令牌阶段、数据阶段和握手阶段的角色。USB传输分为控制、批量、中断和等时四种方式,每个传输通常包含令牌、数据和握手三个阶段。控制传输因重要性需确保正确性,故涉及三次对话组成的会话。
1797

被折叠的 条评论
为什么被折叠?



