初涉USB入门 - Part Two Packets

本文深入探讨USB传输中的数据包类型,包括IN、OUT、DATA0、DATA1、ACK、NAK等,并解析它们在令牌阶段、数据阶段和握手阶段的角色。USB传输分为控制、批量、中断和等时四种方式,每个传输通常包含令牌、数据和握手三个阶段。控制传输因重要性需确保正确性,故涉及三次对话组成的会话。

  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设备间通信的最重要的传输方式,这种方式必须严格保证其正确性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值