为什么我要一个没有端点的USB备用接口?

时间:2015-11-03 18:11:22

标签: interface usb endpoint alternate

Atmel为USB设备提供的示例代码具有两个备用设置的界面。第一个没有端点,第二个有端点。有没有任何理由 - 为什么不只是为所有端点设置一个备用设置?

我在互联网上找到了一个模糊的帖子,暗示这可能与节电有关。有没有人有任何想法?

2 个答案:

答案 0 :(得分:3)

啊,好像是因为带有等时端点的接口会在USB总线上保留带宽。但是如果没有等时端点的默认备用,则可以避免该问题。

来源:

http://www.makelinux.net/ldd3/chp-13-sect-1

  

接口的初始状态位于第一个设置中,编号为0.备用设置可用于以不同方式控制各个端点,例如为设备保留不同数量的USB带宽。具有等时端点的每个设备都使用相同接口的备用设置。

https://msdn.microsoft.com/en-us/library/windows/hardware/jj124028(v=vs.85).aspx

  

此测试验证当任何设备具有消耗等时带宽的接口时,该设备支持该接口的多个备用设置,并且备用设置0(零)不消耗等时带宽。

答案 1 :(得分:1)

对于音频,您必须始终为设备未使用时提供零带宽备用设置:

  

每当AudioStreaming接口需要等时数据时   端点,它至少应提供默认的备用设置   (备用设置0)带宽要求为零(无等时   数据端点定义)和另一个备用设置   包含实际的等时数据端点。

来自UAC 3.0

视频相同:

  

所有传输同步视频数据的设备都必须包含   每个VideoStreaming接口的零带宽备用设置   具有等时视频端点,并且必须是默认端点   备用设置(备用设置为零)。一个设备提供给   主机软件可暂时放弃USB带宽   切换到此备用设置。零带宽交替   设置不包含VideoStreaming等时数据端点   描述符。

来自UVC 1.5