USB2.0四大传输之批量传输

批量传输事务(Bulk Tranaction)

批量传输事务分三个阶段,即令牌阶段(Token)、数据传输阶段(Data)、握手阶段(Handshake),流程如下图(摘自usb20 specification 8.5.2):

批量传输特点:

    1、批量传输包含IN和OUT传输两种

    2、当device收到IN令牌包(token)之后,可以回复data数据包、NAK或者STALL;如果令牌包有错误,则device直接丢弃,不做任何回复。

  •         如果当前端点(endpoint),没有可以传输的数据,则直接回复NAK握手包;
  •         如果当前端点被设置了halt,则回复STALL握手包;
  •         如果当前端点刚好有数据pending,则回复数据包(data packet);host收到数据包之后,确认无误,则需要回复ACK握手包,如果host收到数据包有错误,则不做任何回复。

    3、当host准备好发送数据时,先发送OUT令牌包,然后立刻跟着发送一个数据包。device收到数据包之后,可以回复ACK、NAK或者STALL,高速设备(high-speed device)还可以回复NYET。

  •         如果当前端点回复ACK,表明数据通讯正常;
  •         如果当前端点回复NAK,表明device无法接收当前包,host需要重传当前的数据包;如果是high speed device,host重传之前需要发送PING包,一直PING到device回复ACK之后,host才可以重发当前数据包。
  •         如果当前端点被设置了halt,则回复STALL握手包;
  •         如果是高速设备端点,则可能回复NYET,表明当前数据包已经接收,但无法接收下一个数据包,则host下一次发送之前需要先发送PING包,一直PING到device回复ACK之后,host才可以继续发送下一个数据包。

批量传输示例

Bulk OUT需要Ping包示例

Bulk IN示例

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值