USB设备的配置,接口关系与interface,altsetting关系

WInScar 2011-04-13 09:17:01
  大家好。
  我进行USB设备的相关学习有些日子了,但是有些地方还是不明白,所有想在这里请教大家。
  
  我知道,一个设备有多个配置,一个配置有多个接口,一个接口有多个端点。
  换成英文,就是一个device有多个configuration,一个configuration有多个interface,一个interface有多个endpoint。是这样的吧?
  
  然后,我想问:一个altsetting应该是设备中被选中使用的配置下的一种接口模式吧?例如:我的USB设备选中了0配置下的1接口作为altsetting,那么altsetting的值就应该是1,对吧?
  但是,奇怪的是,在使用 get interface 命令进行设备当前altsetting值获取的时候,命令包要求传送一个interface的值,我就及其纳闷了。我的理解是,我就是为了获得这个interface值而传送请求的,命令包居然要我提供该值,真是不可理喻。那么,这里的interface值,是否就应该是配置值呢?

  也就是,理论上的 configuration和interface是否应该对应成命令中要传送及获得的interface和altsetting。

我把Get interfaec命令的字段写下:

bmRequestType     bRequest      wValue     wIndex     wLength
10000001B      GET_INTERFACE     Zero      Interface    One  

上述命令包,应该是返回一个字节的数据,该数据为当前被激活的 altsetting。(我的理解一直是当前被激活使用的接口interface)


这里必定是我哪里概念理解错误了,希望懂得的朋友给点指点,由衷感谢。
...全文
2325 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WInScar 2011-04-18
  • 打赏
  • 举报
回复 4
这个问题最终的结果是:altsetting是针对接口下端点的配置,随着端点的使用或不使用,一个接口下的许多端点可以形成不同的组合,就出现了altsetting的说法。
WInScar 2011-04-14
  • 打赏
  • 举报
回复 1
自己顶一下,希望懂USB的朋友帮忙看下。谢谢

4,467

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧