USB的枚举(实验第四讲)ppt课件.ppt

USB的枚举(实验第四讲)ppt课件.ppt

ID:59414189

大小:188.50 KB

页数:46页

时间:2020-09-19

USB的枚举(实验第四讲)ppt课件.ppt_第1页
USB的枚举(实验第四讲)ppt课件.ppt_第2页
USB的枚举(实验第四讲)ppt课件.ppt_第3页
USB的枚举(实验第四讲)ppt课件.ppt_第4页
USB的枚举(实验第四讲)ppt课件.ppt_第5页
资源描述:

《USB的枚举(实验第四讲)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、USB的枚举第四讲前言在上次实验中,我们成功接收到了主机发来的8字节数据主机在发送8字节数据后,一直在请求输入,但我们尚未完成程序,并不能给主机提供数据,所以D12一直回答NAK,当主机超时后就会对总线复位,并继续进行尝试,总共要进行三次操作,三次失败后主机将总线挂起这次实验我们将要开始处理读进来的8字节数据端点0接收到的8字节的含义它是一个USB标准设备请求这8个字节是在控制传输的建立过程通过默认控制端点0发出的8个字节里面包含数据过程所需要传输数据的传输方向传输长度数据类型USB标准设备请求的数据结构长度为8个字节包含5个数据域bmRequestTyp

2、e长度1字节bRequest长度1字节wValue长度2字节wIndex长度2字节wLength长度2字节先研究第一个数据域bmRequestType这个数据域用来确定请求的特性D7:数据传输的方向0=主机到设备1=设备到主机D6~5:请求的类型0=标准1=类2=厂商3=保留D4~0:请求的接收者0=设备1=接口2=端点3=其他4~31=保留我们的课程暂时只考虑标准请求以我们上次的实验结果为例,第一个字节的内容是0x80,其二进制代码为10000000B,表示是一个标准请求,请求的接收者是设备,请求来的数据要从设备传输到主机第二个数据域bRequest这个

3、数据域用来确定请求的代码,也就是说,前一个数据域确定了是一个标准请求,这个数据域进一步确定是标准请求里面的哪一种一共有11个标准请求数据域bRequest的值与请求的对应关系见下表标准请求以及代码bRequestvaluebRequestvalueGET_STATUS0GET_CONFIGURATION8CLEAR_FEATURE1SET_CONFIGURATION9SET_FEATURE3GET_INTERFACE10SET_ADDRESS5SET_INTERFACE11GET_DESCRIPTOR6SYNCH_FRAME12SET_DESCRIPTOR

4、7红色部分就是上次实验得到的结果代码所表示的请求0x06剩余的3个数据域的含义这三个数据域的取值都依赖于前面我们确定的请求种类,不同的请求会导致下面三个域有不同的取值具体的取值请见下一页的图表wValuewIndexwLength数据过程所需要传输的字节数GET_DESCRIPTOR请求上次实验主机传送来的8字节数据是0x800x060x000x010x000x000x400x00前面两个域已经解释了,下面再来看看后三个域的取值bmRequestTypebRequestwValuewIndexwLengthwValue第一字节(低字节)表示的是索引号,用来

5、选择同一种描述符中具体的某个描述符,在本例中为0x00第二字节,表示描述符的类型编号,具体见下表本例是0x01wIndex和wLengthwIndex域只在获取字符串描述符时有用,本例为0wLength在本例中为0x400x00注意这个数据,因为采用小端结构,低字节在前,所以wLength的值为64表示请求设备返回64个字节的数据实际的设备描述符可以比wLength少设备描述符的实现现在我们知道,收到的8字节数据是主机向设备请求设备描述符,返回数据长度为64字节换句话说,就是设备需要将设备描述符准备好,放在端点0的输入缓冲区,等待主机来取走那么设备描述符是

6、什么?怎么实现?不同的USB设备有不同的属性,这些属性我们通过在设备描述符里面不同的值来表现设备描述符是一个有18字节的数据包含若干个数据域,每个数据域表示设备的某个属性所以,我们需要准备18个描述设备属性的字节,写到D12的端点0输入缓冲区内设备描述符的结构:偏移量字段名称字段大小字段值说明0bLength1B数字描述符的大小=12H1bDescriptorType1B常数设备描述符类型=01H2bcdUSB2BBCDUSB规划发布号4bDeviceClass1B类型类型代码5bDeviceSubClass1B子类型子类型代码6bDeviceProtoc

7、ol1B协议协议代码7bMaxPacketSize01B数字端点0最大分组大小8idVendor2BID供应商ID10idProduct2BID产品ID12bcdDevice2BBCD设备出厂编号14iManuafacturer1B索引厂商字符串索引15iProduct1B索引产品字符串索引16iSeriaNumber1B索引设备序列号字符串索17bNumconfiguration1B索引可能的配置数本例中的设备描述符结构codeuint8DeviceDescriptor[0x12]={0x12,0x01,0x10,0x01,0x00,0x00,0x00,

8、0x10,0x880x88,0x01,0x00,0x00,0x01

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。