资源描述:
《个鼠标的加电配置和工作过程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、个鼠标的加电配置和工作过程非常建议去这个卖USB分析仪器的厂家看看,对于理解USB的transfer/transaction/packet有好处:很好的一个网址:http://www.usbmadesimple.co.uk/ums_5.htm1.加电和设置总线地址这个厂家的检测设备知道这个是一个lowspeed设备,因为鼠标通过一个pullup电阻将D-电位拉高.之后的SUSPEND状态表示仪器没有看到任何数据,3ms.之后OS通过hub将鼠标reset,31ms.之后OS通过控制传输来获取设备的描
2、述符,以得到controlendpoint的最大数据传输长度.然后再次复位,最后通过重置传输将设备的总线地址设置为1.2.获取鼠标配置信息先是获取设备描述符,对于鼠标,其格式和数据为:然后获取设备的配置信息,先读入9个byte,得到头部,头部内有配置信息的总长,34byte,之后再次获取完整的配置信息.对于鼠标,其数据如下:这些配置信息是顺序排放的:后面的两个transfer是获取字符串描述,StringDescriptor0是支持的语言列表,而stringdescriptor2是设备描述字符串.3
3、.配置鼠标这个个序列和上边的有重复(这个不对应linux的实现).重新获取了描述字符串,设备描述符,设备配置信息,最重要的是后面三个:a)setconfiguration1指示鼠标工作于配置1,当然这只鼠标只有一个配置.之后鼠标处于工作状态.b)setidle(HIDclass)指示鼠标只在有事件发生时响应interruptIN.(如果没有事件应该是响应NAK,fixme)c)GetHIDReportDescription获取interruptINendpoint的描述符格式,这里报告的是4byte
4、的数据格式.下面就是GetHIDreportDescriptor的内容,以及他所描述的数据结构.4.鼠标正常上报事件在2秒到5秒内鼠标没有移动,这个时段内有许多的中断查询报文,鼠标以NACK作为回应.还是这只鼠标,看看一个配置传输的过程下图是USB2.0标准定义的控制传输阶段.我们看看对于鼠标的getdevicedescriptor来看看这个transfer的具体构成.这里显示这个传输的三个阶段:setuptransacton/datastagetransaction/statustransacti
5、on(最后一个反方向的传输).这个图中最后的ack他称作status,这个容易混淆,其实是transaction的handshake.再进一步展开,我们可以看到一个tansaction的几个报文:我们所讨论的UHCI中,最小可操作单位是transacton,就是上图的黄色标记部分,并且用一个TD来表示(TD是UHCI的transaction描述符).