全部博文(20)
发布时间:2013-01-13 00:04:17
USB协议: 先看USB接口 可以看出,在USB使用了4根线,分别为电源线,地线,信号线和差分信号线 差分信号线用于检测信号线的传输是否正确 下面我们只关注信号线 然后是USB的串口传输 在串口传输中,由于所有的信号共用一根数据线,所以不仅有先来后到的问题,而且在一个设备和另一个设备进行通信的时候,如果别的设备也进来插一脚,就会导致信号的出错,所以这个时候需要一个管理者,他说好,A设备和我通信,A设备才和管理者通信,通信完成后,管理者说现在到B设备和我通信,A设备你歇一歇,于是B设备才能和管理者通信 在USB协议中,这个管理者称为host,在一个usb组成的......【阅读全文】
发布时间:2012-12-23 12:26:10
走完之前的程序后的数据结构如下 注意,之后会把local中的数据清空好,到下一组为0x09, 0x01这是一个局域项目,重新向局域结构中添加项目下一个组为0xa1, 0x00这是一个主项目,用于物理集合收集的开始添加完成后的数据结构如下 又把局域结构中的数据清零到下一组,为0x05, 0x09这是一个全局项目,重设用途继续下一组, 0x19, 0x01这是一个局域项目,用途为设定添加项目的最小值//设置开始设置的最小项 c......【阅读全文】
发布时间:2012-12-23 11:52:44
现在终于开始匹配设备的接口驱动了目标当然是hid,当然在了解驱动初始化过程之前,让我们先看看一下hid协议我对hid协议的理解是建立在鼠标上的,所以如果有理解不当的地方,请务必请大家指出我们先来看鼠标的结构,鼠标有左键,右键,中键,滚轮,X轴和Y轴这6个量其中左键,右键和中键的点击可以用0和1两个数值来表达,呢么就占1bit然后是X轴,Y轴和滚轮,我们假设他们的相对数值变化范围为-127到127,呢么就是255个数,用8个bit也就是1个字节来表示如下图 左键,右键和中键属于按键而X轴,Y轴,滚轮属于量在hid中不同两种类别的数据需要用字节来间隔,也就是说左键,右键和中键......【阅读全文】
发布时间:2012-12-23 11:52:15
Andrew Huang <bluedrum@163.com> 转载请注明作者及出处(http://bluedrum.cublog.cn) 在USB的枚举后,即交互完 设备描述符(device descriptor),配置描述符(configure descriptor),接口描述符(interface descriptor)和终端描述符(endpointer desciptor)。如果是HID设备,即class值为3设备交互还会发送一系统的特殊包来描述HID设备的特性。 这一些描述HID的特性称为Report Desc......【阅读全文】
发布时间:2012-12-21 00:42:57
------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 继前面分析过UHCI和HUB驱动之后,接下来以HID设备驱动为例来做一个具体的USB设备驱动分析的例子.HID是Human Interface Devices的缩写.翻译成中文即为人机交互设备.这里的人机交互设备是一个宏观上面的概念,任何设备,只要符合HID spec,都可以称之为HID设备.常见的HI......【阅读全文】