beijingyu
驱动牛犊
驱动牛犊
  • 注册日期2007-04-17
  • 最后登录2009-07-07
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望79点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
阅读:1295回复:4

关于复合设备的一点理解,请高手指点:)

楼主#
更多 发布于:2007-05-11 15:55
下面是我的一点理解:
我现在想在一个设备上实现两个类型,CDC 类 和 mass storage 类,是不是需要这个设备有两个接口(如果一个接口可以实现一定要告诉我:)),每个接口的描述符中的device class 和 子类 以及类码根据所选的类进行设置,为每个接口分配所需的端点,这样主机端是否可以识别这两个设备呢?
另外,我还有两个疑问:
1、如果CDC是设备类,按照协议所说,设备类必须对设备描述符中的device class 和 子类 以及类码进行设置。而接口类要在接口描述符中设置,同时设备描述符的相应class 、subclass位为0。这样以来设备类设置了设备描述符,接口类要求设备描述符为0,那这两个类能同时用吗?
2、接口的描述符中有一个备选设置,那可以有几个备选设置,只有一个吗?我可不可以让这同一个接口的两个设置使用不同的类呢?
这是我这段时间很困惑的问题,请大侠们指点一下,哪怕是其中一个问题,都感激涕零了!
hiro_fantasy
驱动牛犊
驱动牛犊
  • 注册日期2007-05-10
  • 最后登录2007-09-26
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-12 09:56
我也是你这么想的,一个usb不是只能够支持一种设备描述符吗?而同一种设备可以支持多个接口.复合设备应该就是接口定义和端点定义的不同.我也在做关于复合设备的东西,可以一起探讨一下.
qq: 31564797
驱网无线,快乐无限
hiro_fantasy
驱动牛犊
驱动牛犊
  • 注册日期2007-05-10
  • 最后登录2007-09-26
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望8点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-12 15:52
这个论坛真冷清,不知是不是大牛们都不屑回答简单的问题,论坛本就是一个交流的地方,没有交流开这个论坛还有什么意义?
驱网无线,快乐无限
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-05-14 09:52
两个接口是可以实现的,每个接口有一套相应的端点描述符
但是设备在同一时间只能用一套接口和端点
具体怎么转换倒没有研究过。
beijingyu
驱动牛犊
驱动牛犊
  • 注册日期2007-04-17
  • 最后登录2009-07-07
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望79点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-05-14 10:51
那现在可以确定的是:一个设备要实现多个类,就需要有多个接口,每个接口对应一个设备类(在接口描述表中设置device class 和 子类 以及类码)。
但现在有一个问题是:
  CDC是设备类,按照协议所说,设备类必须在设备描述符中的device class 和 子类 以及类码进行设置。而mass storage是接口类,要在接口描述符中设置,同时设备描述符的相应class 、subclass位为0。这样的话,设备类和接口类还能否在同一个设备中使用?
游客

返回顶部