随笔分类 -  2012 USB HID多点触控

摘要:code char MouseReportDescriptor[175] = {0x05, 0x0d, // USAGE_PAGE (Digitizers)0x09, 0x04, // USAGE (Touch Screen)0xa1, 0x01, // COLLECTION (Application)0x85, 0x02, // REPORT_ID (Touch)0x09, 0x22, // USAGE (Finger)0xa1, 0x02, // COLLECTION (Logical)0x09, 0x42, // USAGE (Tip Switch)0x15, 0x00, // LOGI 阅读全文

posted @ 2013-01-04 14:50 nubia101 阅读(1916) 评论(1) 推荐(0)

摘要:我的下位机模拟的是HID多点触控设备,向上位机发送一系列触摸点的信息后,看见鼠标的光标在画图板里移动,但是没有“划线”效果,开始是以为可能是发的速度太慢了,不连贯,所以只有独立的点,没有“划线”,但是不管怎么调试,都无法成功。后来经别人点拨,发现背后的真相:鼠标的焦点不在画图板里,把焦点移到画图板里,效果就出来了。 阅读全文

posted @ 2012-12-28 14:39 nubia101 阅读(353) 评论(0) 推荐(0)

摘要:经本人验证,此两点触控报告描述符真实可用,钦此。0x05, 0x0d, // USAGE_PAGE (Digitizers)0x09, 0x04, // USAGE (Touch Screen)0xa1, 0x01, // COLLECTION (Application)0x85, 0x02, // REPORT_ID (Touch)0x09, 0x22, // USAGE (Finger)0xa1, 0x02, // COLLECTION (Logical)0x09, 0x42, // USAGE (Tip Switch)0x15, 0x00, // LOGICAL_MINIMUM (0)0 阅读全文

posted @ 2012-12-25 14:30 nubia101 阅读(3371) 评论(1) 推荐(0)

摘要:最近在研究上位机与自定义的HID多点触控通信,刚开始,上位机向HID多点触控设备发送数据包,下位机收不到,bus hound里面也捕获不到数据。我就纳闷了。再怎么着,上位机程序没问题,应该可以发送数据到端口,至少bus hound里可以捕获到的啊。后来灵光一闪,在报告描述符里加了output项,使上位机的数据包显得“明正言顺”了点,这回下位机总可以收到数据包了吧,试了下还是没反应,然后就参照网上的例子认真对照,看哪一步出了问题,后来查出是Report ID没有赋值,Report ID 很重要,白皮书里面是这样描述的:当要将同一种报告分成数个部分,则每一个部分要给予一个识别值,这时就需用到卷标. 阅读全文

posted @ 2012-12-19 10:03 nubia101 阅读(556) 评论(0) 推荐(0)

摘要:原文地址:http://hi.baidu.com/daoguchengshu/item/86b28b4d22442be7a4c0661f这里说的识别速度,主要是下载固件后两声“叮咚”的间隔。众所周知,插上USB后,PC会“叮咚”一声,然后设备管理器刷新,然后PC再“叮咚”一声,最终设备类型才会显示在设备管理器中,这时候USB设备才真正被识别到。这两声“叮咚”的间隔由什么决定呢?如何加快USB的识别速度?经过试验,在EZ USB的固件框架中,有一个EZUSB_Delay()函数,主要是这个函数内部延时在控制。EZUSB_Delay()函数会在主任务进程中被EZUSB_Discon()和EZUSB 阅读全文

posted @ 2012-12-13 10:24 nubia101 阅读(400) 评论(0) 推荐(0)

摘要:原文地址:http://bbs.ednchina.com/BLOG_ARTICLE_1933744.HTM有时候我们打开别人的KEIL程序时,会经常碰到can't execute 'c:\keil\c51\bin\c51.exe'的错误,今天到网上搜了一下,出现这样的错误人还不少,但没有找到解决方法。经过摸索,找到了解决对策:出错原因:被打开的KEIL程序的编译器安装在C盘,即c:\keil的路径下。而使用者的KEIL装在不同路径。针对这样的原因,就有两种解决方法:1、自己重建工程,把要打开的程序的文件拷贝过去,编译即可以通过,但这样做比较费事。2、打开出错的程序,选择 阅读全文

posted @ 2012-11-27 10:07 nubia101 阅读(2686) 评论(0) 推荐(0)

摘要:1 code char MouseReportDescriptor[29] = { 2 0x06,0x00,0xFF, //USAGE_PAGE (Vendor Defined Page 1) 3 0x09,0x01, //USAGE (Vendor Usage 1) 4 0xA1,0x01, //COLLECTION (Application) 5 6 0x19,0x01, //(Vendor Usage 1) ... 阅读全文

posted @ 2012-11-23 17:02 nubia101 阅读(1915) 评论(0) 推荐(0)

摘要:(1)要学习HID,首先要了解USB的工作特点,包括设备枚举、数据传输特点、设备描述符的格式等,网上的百合电子工作室在这方面有很多资料,有本书《圈圈教你玩USB》也可以参考下,电脑圈圈有相关的论坛,大家有困惑可以求上墙。(2)学习HID类设备的报告描述符,这个是关键。报告描述符很灵活,其语法不同于标准USB描述符,初学者要完全弄懂它,需多花点功夫,手头必备资料:微软白皮书两篇:《device class definition for human interface device (HID)》, 《Universal Serial Bus HID Usage Tables》,这个是基础,很重要, 阅读全文

posted @ 2012-11-23 14:06 nubia101 阅读(6902) 评论(1) 推荐(0)

摘要:最近在研究win7系统的多点触控问题,报告描述符什么的都写好了,在一个网页上看到http://topic.csdn.net/u/20110504/23/8f18af47-2261-4e78-9e73-8b0f3d46ba36.html系统枚举设备为触控设备后,会有如下反应,“在任务栏出现触摸图标,“我的电脑”系统 属性里面也会提示当前的触控设备是具有几个点的设备”,而本人电脑的系统属性里面“笔和触摸”一栏总是显示”触控输入可用于255点“,百思不得其解,难道win7系统是默认的255个点嘛,在网上搜罗了半天,明白默认的是”没有可用于此显示器的笔或触控输入”,在别人的电脑上验证了下,确实如此。后 阅读全文

posted @ 2012-11-16 11:02 nubia101 阅读(5575) 评论(0) 推荐(1)

摘要:前不久花了2300大银败了个HD-USB12协议分析仪(肉痛…)。不过还蛮好用,以后做USB固件开发就方便多了。废话少说,首先图解一下USB枚举过程。一、总线复位及向默认地址0发送GET_DESCRIPTOR指令包,请求设备描述。1)Index[4 - 5]:表示USB插入总线复位2)Index[7 - 8]:表示主机向默认地址发送GET_DESCRIPTOR指令包,详细信息也抓出来了,如(图二)所示:3)Index[15 - 17]:表示设备向主机发送设备描述数据Index[16]4)Index[18 - 19]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;二、再次 阅读全文

posted @ 2012-11-07 16:29 nubia101 阅读(2105) 评论(0) 推荐(0)

摘要:原文地址:http://blog.163.com/luge_arm/blog/static/6774972620071018117290/从驱动开发网看到一篇《USB枚举详细过程分析》,依据自己的理解和经验对原文稍加改动。本文仅供参考,一些顺序并不是固定的。 本文描述的是Windows系统的USB枚举过程,但对嵌入式系统自行开发的USB主机驱动程序也有参考价值。 USB枚举详细过程剖析 1.主机集线器检测到新设备 主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将P 阅读全文

posted @ 2012-11-07 14:13 nubia101 阅读(7399) 评论(0) 推荐(0)

摘要:原文地址:http://www.cnblogs.com/image-eye/archive/2012/02/28/2372362.html在网上看了许多前辈的文章,就是无法理解报告描述符中的那些数字字符所表达的含义,几经周折,总算大致了解了。code char MouseReportDescriptor[63] = { 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x06, // USAGE (Keyboard) 0xa1, 0x01, // COLLECTION (Application) 0x05, 0x07, // USAGE_PA 阅读全文

posted @ 2012-10-24 11:38 nubia101 阅读(3185) 评论(0) 推荐(1)

摘要:原文地址:http://www.cnblogs.com/zsb517/archive/2012/06/03/2532413.html在说枚举过程之前,先把一些必须了解的说明白一.USB包结构和分类包的共同特点是,都是以同步域开始,接着是PID,最后以EOP结束,而设备端则靠SEI(串行接口引擎,硬件上实现)来进行这些底层的处理,包括CRC的校验之类的东东。8位的PID,PID0~PID3,用于表示包,高四位进行取反,进行校验各种包的如下:令牌类:OUT,IN ,SOF,SETUP数据类:DATA0,DATA1,DATA2,MDATA握手类:ACK,NCK,STALL,NYET特殊类:PRE,E 阅读全文

posted @ 2012-10-24 11:28 nubia101 阅读(2660) 评论(0) 推荐(0)

摘要:原文地址:http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html一、应用场合USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以很多简单的USB设备,喜欢枚举成HID设备,这样就可以不用安装驱动而直接使用。二、USB HID类可采用 阅读全文

posted @ 2012-10-22 10:38 nubia101 阅读(566) 评论(0) 推荐(0)

摘要:原文地址:http://hi.baidu.com/xgy1016/item/d6d7c13231be17322f20c433前言 断断续续的学*了将*三个月,才把USB的HID类搞明白,速度真是够慢的。利用晚上+周末的时间学*自己的东西确实是必要的,不过效率是有点低,以后要更专注一些才行,希望自己能做到吧。 在学*过程中,刚开始主要参考了周立功编写的一本《PDIUSBD12 USB 固件编程与驱动开发》,后面的学*主要参考电脑圈圈的资料包,包括里面的HID类的英文协议文档,还有一位台湾前辈几年前写的几篇文章,还有网络下有下得到的一些例程。在此感谢各位大虾前辈的分享。 一,学*流程 1,... 阅读全文

posted @ 2012-10-20 14:22 nubia101 阅读(784) 评论(0) 推荐(0)

导航