USB标准要求

时间:2008-12-22

  在USB接口的通信协议中,由于主机取得的主控权,所以对于设备而言,只有“听命行事”。因此,主机与设备之间就必须遵循某种已沟通的特定命令格式,以达到通信的目的。这个命令的格式就是USB规范中所制定的“标准要求”。这个标准要求的设置、清楚与取得都须通过控制传输的数据交易来达成。

  在控制传输设置层的数据交易中包含了令牌封包→数据封包→握手封包这3个封包阶段。其中的数据封包就是放置“标准要求”的地方。它是一个8字节的DATA1数据封包。表1列出了标准要求的要求形态内容。

  表1 执行设置层数据交易时,标准要求的要求形态内容

  事实上,表1的8字节放置于跟随在SETUP令牌封包后的数据封包字段内。除此之外,表1的数据格式还须与表2的“标准要求”配合在一起才金额以执行完整的标准要求。

  表2内的8字节放置于跟随在SETUP令牌封包后的数据封包字段内。为了取得这8字节的标准设各要求,一般的USB单片机通常使用一个数组或特定的FIFO来存储这个重要的SETUP数据;而在EZ-USB EX单片机中,使用定义为SETUP[7]数组来加以存储。

  表2 标准要求的格式

  若以之前所举的Get_Descriptor为例,就可以了解一个设备要求执行的过程。可以从图41和表2了解到bRequest的类型,而在此图中以Get_Descriptor为例,利用wValueH字段值延伸至DEVICE(设备)、CONΠGURATION(配置)以及STRING(字符串)等取得描述符标准要求,即分别为取得设备描述符、取得配置描述符以及取得字符串描述符等的标准要求。

  综合了描述符与设各要求的章节,可以归纳一些重点,也就是说,这些设各要求与描述符在控制传输时,放置于何处呢?用户可以了解到设各要求放置于设置层的数据封包内的数据域位中:

  设置层→数据封包→数据域位→设备要求

  而描述符则放置于数据层的数据封包的数据域位中:

  数据层→数据封包→数据域位→描述符

  因此,用户必须执行一个完整的控制读取或写人传输,才可执行标准要求,以及取得真正所要的描述符内容。可以这样说,标准要求是个“命令”,而描述符所内含的内容才是所要取得的“数据”。当然,这个数据层可以根据描述符的数目,而以8字节为一组的方式,依序读取数个数据层的数据封包内的数据域位内含值。图2为控制传输的意义与目的。

  换句话说,对于控制读取传输而言,SETUP封包(设置层),其后所跟随的数据封包的内含值,为所要设置的标准设各要求。在IN封包(数据层),其后所跟随的即为所要接收的设各的各种描述符。而OUT令牌封包(状态层),其后所跟随的数据封包的内含值为空的,以说明整个控制传输已经结束了。

  以下,针对bmRequestType[4:0]位,再区分为3种类型:标准设备要求、标准配置要求以及标准端点要求。这些标准要求与各个描述符有相当大的关系。

  图1 标准要求的架构示意图

  图2 控制传输的意义与目的

  欢迎转载,信息来源维库电子市场网(www.dzsc.com


  
上一篇:汇编语言的程序结构
下一篇:ARM系统体系结构

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料