单片机USB描述符
为了描述不同的数据,就须以不同类型的USB描述符来加以描述,如图1所示。虽然各个描述符都有不同的信息与数据,但所有的描述符都有一些共同的特性,也即是由如表1所列的格式所组成。其中,所有的Byte o是以字节为单位的描述符长度,而所有的Byte 1 则放置如表2和表3所列的描述符类型值,紧接着的其他字节,则随着不同的描述符而不同。如果该描述符的长度比规范上所定义的还要小,那么主机将会忽略。如果此大小又比规范所定义的还要大,那主机也会忽略所超出的字节,并在其回传的真正描述符长度的尾 端开始寻找下一个描述符。

图1 各种描述符的架构与类型
在图1的描述符中,设备描述符(device descriptor)、配置描述符(configurationdescriptor)、接口描述符(interface descriptor)以及端点描述符(endpoint descriptor)是必须具有的。而其他的描述符,如字符串描述符(strtng descriptor)、 数种不同的群组描述符(class descriptor)以及报告描述符(report descriptor)则可以根据不同的设备加以添加或删减。
表1 描述符的共同格式

表2 描述符类型值表一

表3 描述符类型值表二

各种描述符可以用如图2所示的描述符层来作更深动的叙述。最上层的层是设各描述符。在设各描述符的bNumConfigurations 字段中,设置一个或多个下一层的配置描述符。在配置描述符的bNumlnterface字段中,设置一个或多个下一层的接口描述符。最后 在接口描述符的bNumEndpoints字段中,则设置最后一层的端点描述符。
因此,从设各描述符中,可以设置含有多少个配置描述符。而配置描述符,则可设置其包含了多少个接口描述符,当然从接口 描述符中,又可以再设置所含端点的数目。因此,在其中可以了解到仅有一个设各描述符而已,其余的描述符再依次设置。当然如图 2所示,每一层至少须设置一个描述符。

图2 USB描述符层图
而其中,USB设各仅能具有一个设各描述符。在设各描述符中涵盖了如设各所兼容的USB版本,用来加载适当驱动程序的VID/PID码 ,以及设各所能够具有的可能配置数目。这个配置数目能够用来表示有多少的配置描述符的分支将被遵循。在这配置描述符中设置了 许多的数值,例如,如果设各是总线供电,可设置所特定设计使用的电流量以及其所具有的配置数目。
当此设备在执行设各列举的程序时,主机会读取设各描述符,并且决定何种配置被使能。但每一次仅能有一个配置被使能。例如, 有一个设各可能具备高功率总线供电的配置,以及另一个是自我供电的配置方式·如果当此设各被接上具有主要的电源供应的主机后 ,设各驱动程序可以选择来使能这个高功率总线供电的设各。而此配置即可进一步地去使能此设各无须再连接至主要的电源供应器, 就可以获得电源。但是,如果此设各被连接至台式计算机,它也可被使能一种需要用户去接上电源供应点的第二种配置方式(自我供 电模式)。在这配置描述符中,不仅只限于设置电源的差异。每一种配置方式能够以同样的方式供电,以及流出相同的电流量,当然 也可具各不同的接口或端点的组合。然而,需注意的是,更改配置将会使在所有端点上的动作停止。虽然USB提供了这种便利性,可 是很少有设各具有超过一种配置。但对于如图3所举的复合式设各的例子就具有多种配置方式。
如果一个复合式设备具备了电话、视频会议OCD,以及传输数据的Modem功能,其所有设各可能的回报如图3所示的配置架构。因此 ,图4所示的是电话的配置,图5所示的是影像串流的配置,图6所示的是传输数据的配置,图7所示的是另一种传输数据(较高品质的语音信号)的配置。所以对于一个复合式的设备,就有需要多重的配置切换来满足各种功能需求。
设备口报所有可能的配置

图3 一个复合式设备可能回报的所有配置方式

图4 一个复合式设备的电话配置方式
如果用户具有一个包含了传真/扫描/打印机多功能(复合式设各)的事务机,那么其中第l个接口描述符就可用来描述传真机 设备的端点,第2个接口描述符就可用来描述打印机设各的端点,而第3个接口描述符就可用来描述扫描机设备的端点。那么在设备管理器的窗口下,就会呈现一个复合式设备的项目——USB Composite Device,女日图8所示。
影像串流

图5一个复合式设
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)
