DIY编程器网

标题: 单片机兼容USB2.0规范的描述符 [打印本页]

作者: liyf    时间: 2012-1-27 14:14
标题: 单片机兼容USB2.0规范的描述符

                      除了上述所介绍的描述符类型外,若用户想要将1.x规范的设各兼容2.0规范,就必须对描述符作若干的修正。在双速度设各中,如 何通过读取其描述符来检测设备的目前速度,就是一个非常重要的课题。
  如表1所列,为1.x规范设备要与2.0规范设备兼容时,所须修改的描述符字段。其中,用户会发现仅具各等时端点的设各须去修 改等时端点描述符的内容,而在设备描述符中,唯一也是仅须去修改的字段是bcdDevice,且将其更改为0200h。
  在此须知道,设备的预设上,必须要求无等时的带宽。这是因为这些接口并没有使
  用等时传输的数据,若设各想要去执行等时传输,它必须支持至少一个接口设置,其中还须内含至少一个端点描述符。而有部分1.x 设备也已经符合了这个要求。所以说,若没有使用等时传输,也就无须更改这些字段设置值。
  在2.0规范中对于已存在的字段的若干位,增加了2个新的描述符与功能。但是如表1所列,所使用到的新描述符仅用在双速度的设 各上。而所存在的描述符也与规范1.x向下兼容。
表1 1.x规范与2.0规范兼容所须改变的描述符类型及其字段












  这些类别常数是编写驱动程序所加以定义的。
  在所有的群组中,最常使用的就是Human Interface Device,即人工接口设备(简称HID)群组。而关于HID群组的应用与特性将于 稍后的章节中,详细地加以介绍。此外,在表3中.分别列出了各个群组规范所设置的设备群组码与接口群组码。这些值分别设置于 稍前所叙述的设备描述符与接口描述符中。
  而之所以那么繁琐地设置各种设备群组码与接口群组码的原因,在于USB是一种正如其名的通用串行总线。因此,为了与各种设备连 接在一起,就必须加以分类。因此所有的USB设各除了必须符合稍前所描述的USB规范外,群组中所自定义的设备,也必须符合该群组 的特性与规范。(不然,怎能称之为群组呢?)更进一步地说,用户不可
  能设计或自创一种不在表3所列的USB设各或操作系统不曾认可的设备。而这也是用户在设计USB外围设各的困难之处。因此,在稍后 的章节中,将会探讨设各与驱动程序部分,了解各设备与驱动程序相关联之处。
表3??? 设备群组码与接口群组码



??????*指的是IrDA/USB Bridge,而其次群组码是0X01。
  
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2