USB通信程序设计 第9页

USB通信程序设计 第9页
      图4.6 数据提交函数程序流程图
4.1.3 标准设备请求处理——D12SETUP.C
4.1.3.1 获取状态 GET STATUS(00H)
 GET STATUS请求要求接收方返回一个相应的状态,设备返回16位的状态描述。图4.7为GET STATUS的工作流程图。
4.1.3.1.1 获取设备的状态
 当GET STATUS的索引为设备时,主机获取设备的状态。如果请求是对器件,MCU必须向主机返回器件状态。
4.1.3.1.2 获取接口的状态
 因为接口状态的16位字节全部保留,所以返回0x0000即可。
4.1.3.1.3 获取端点的状态
 一个端点有输入和输出两个端点号。这里使用了索引BIT7来标识要求返回的端点的方向,BIT7=1为返回输入端点的状态;BIT7=0为返回输出端点的状态。
                         图4.7 GET STATUS的工作流程图
4.1.3.2 清除特性 CLEAR FEATURE(01H)
 CLEAR FEATURE用来清除或禁止设备的一个特定的特性。当接收到CLEAR FEATURE的请求后,设备就执行相应的操作,并返回一个空的数据表示执行完毕。图4.8为CLEAR FEATURE的工作流程图。
4.1.3.3 设置特性 SET FEATURE(03H)
 SET FEATURE用来设置或允许一个特性。SET FEATURE和CLEAR FEATURE是两个相反的动作。同样,当接收到SET FEATURE的请求后,设备就执行相应的操作,并返回一个空的数据表示执行完毕。图4.9为SET FEATURE的工作流程图。
4.1.3.4 设置地址 SET ADDRESS(05H)
 在USB设备枚举的时候,主机会分配一个新的地址给设备,以取代默认地址(默认地址为0)。当设备接收到这一设备请求的时候,要做的事情就是把设备的当前地址改为分配的地址,以让设备对新的地址作出响应。注意此设置地址请求不含数据阶段,MCU需要向主机写一个零长度的数据包作为应答阶段。
                        图4.8 CLEAR FEATURE的工作流程图
                        图4.9 SET FEATURE的工作流程图
                        图4.10 SET ADDRESS的工作流程图
4.1.3.5 获取描述符 GET DESCRIPTOR(06H)
 GET DESCRIPTOR是主机用来获取USB设备相对应的描述符的一个请求。在这里,设备请求值的高8位为要求获取的描述符的类型,设备按照请求类型返回相应的描述符。下图为GET DESCRIPTOR的工作流程图:
                        图4.11 SET DESCRIPTOR的工作流程图
4.1.3.6 获取配置信息GET CONFIGURATION(08H)
 GET CONFIGURATION用于获取当前的配置信息。如果设备已经配置,则返回信息为当前的配置值(一个字节);否则返回为0,表示还没有配置。图4.12为GET CONFIGURATION的工作流程图。
4.1.3.7 设置配置SET CONFIGURATION(09H)
 SET CONFIGURATION是用来选择设备的工作配置。SET CONFIGURATION中的值只能是0或与配置描述符中bConfiguration Value相同的值。一旦SET CONFIGURATION有效,MCU还需要向主机发送零数据包作为应答阶段。图4.13为SET CONFIGURATION的工作流程图。
4.1.3.8 获取接口信息 GET INTERFACE(0AH)
 GET INTERFACE用于返回当前的接口号。返回信息为一个字节。
4.1.3.9 设置接口 SET INTERFACE(0BH)
 SET INTERFACE用于设备支持多接口的时候,主机用来选择一个接口。如果选择正确,设备发送一个空的数据表示执行完毕。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有