USB控制传输是否可以保证交付?

时间:2016-08-16 18:09:17

标签: usb

USB 2.0 specifies 4种类型的转移(第5.4节转移类型):

  • 控制转移
  • 同步转移
  • 中断转移
  • 批量转移

第5.8节说批量转让提供:

  
      
  • 在带宽可用的基础上访问USB
  •   
  • 在由于总线错误导致的偶然交付失败的情况下重试转移
  •   
  • 保证数据传输但不保证带宽或延迟
  •   

(强调我的。)

我没有看到类似的控制转移声明。他们还保证交货吗?如果没有,用户如何处理失败?

请提供引文以支持您的答案。

1 个答案:

答案 0 :(得分:3)

USB规范为控制传输提供强大的错误检测和恢复功能。控制传输将完成或USB主机将知道它失败,我认为这是“保证交付”应该是什么意思。这很重要,因为控制传输用于在将设备插入计算机时设置设备,并且它们也被各种USB设备类用于许多重要目的(例如,它们用于设置串行端口的波特率) USB CDC ACM设备)。

从USB 2.0规范的第5.5.5节开始:

  

USB为控制传输期间发生的错误提供强大的错误检测和恢复/重传功能。发送器和接收器可以在控制传输中保持同步,并以最小的努力恢复。接收器可以通过分组中的数据重试指示符来检测数据和状态分组的重传。发送器可以通过对分组的握手中返回的信息可靠地确定其对应的接收器已成功接受所发送的分组。该协议允许区分重传的分组与其原始分组,除了控制设置分组。由于传输错误,可能会重新发送设置数据包;但是,Setup数据包无法指示数据包是原始数据包还是重试数据包。

唯一没有保证交付的转移类型是等时的。此外,帧起始(SOF)数据包没有保证传送。