完整版USB通讯协议通用规范Word文件下载.docx
《完整版USB通讯协议通用规范Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整版USB通讯协议通用规范Word文件下载.docx(36页珍藏版)》请在冰豆网上搜索。
这三种接口方式,通过通用的接口板去实现。
更换接口方式,主控板不用变化,只需更换不同的接口板即可。
这些接口板和白板类型无关,是通用接口板。
主控板可以内置在板体中,也可以外置。
接口板外置在板体之外,便于更换。
两者之间通过一个标准的短连接线连接。
主控板只负责白板逻辑的处理,所有和接口相关的处理都放在接口板上(HID的处理、无线的处理、网络的处理等)。
关于内置Flash的标准:
在主控板上,内置Flash,用于存放各种内置参数、快捷按键的设置、白板序列号、白板定位信息等等内容,通过统一的协议进行写入和读取。
在这种框架下,驱动程序只需要和三种接口板打交道;
不管什么接口,获取的信息都是相同的:
白板类型、快捷按键的设置、固件版本号、产品序列号、定位信息的保存等等,都可以在所有的产品、所有的接口方式上实现,对于产品的标准化管理非常有利。
三种接口板一旦调试稳定,则可以适用到各种白板上,不用重复开发;
主控板的开发也单纯很多,不用考虑各种接口的问题,只针对鸿合内部的通讯协议即可。
同一种类型的白板,不管型号、大小、快捷按键的配置等是否相同,主控板本身都是相同的。
所有配置信息(包括序列号等)都存放在主控板中,生产时根据不同的型号写入不同的信息。
特别说明:
复合白板的结构。
复合白板是一种很特殊的白板,同时集成了电磁和红外两种技术,用户可以同时使用手指和电磁笔进行操作,在高层软件一端,手指操作和电磁笔操作,可以执行不同的功能。
三、白板硬件和驱动程序之间的消息类型
如果不考虑无驱HID工作模式,则在有驱工作模式下,白板和驱动程序之间需要传递的消息,根据我们以往的经验,总共有如下的消息:
1、和具体接口相关的控制指令(比如无线专用类控制指令、HID握手指令等)
2、白板握手类指令(*,带星号的指令是必须支持的指令)
3、心跳类指令(*)
4、操作数据上行(要考虑多点数据)(*)
5、笔托类指令
6、硬按键类指令
7、Flash类指令(各种配置信息、定位信息的自动保存等等)(*)
8、固件升级类指令
9、各种专用测试类指令
每个白板,不一定要支持全部的指令,但是需要支持其中的主要部分(带星号的指令必须支持),而且,必须按照统一的指令格式,即本文档规定的格式。
后续如果有扩充,则对本文档进行扩充和完善。
四、HID白板硬件设计规范(一体式)
现有的HID白板,不同类型的白板,HID接口电路和主控板是一体的,而且是有线连接的。
对于主控板和接口板的处理,为了减低成本等原因,可以考虑保持现有的模式不动,不强制分离。
但是在实现的功能和指令格式上,则需要保持一致。
存在的缺陷就是:
这些白板将只能支持HID有线连接,不能通过更换接口板切换到其他连接方式。
如下内容,基本来自原“鸿合HID设备设计规范”,做了一定的优化和改进。
一体式HID主控板,在硬件上需要实现两种工作模式:
免驱模式和有驱模式。
HID白板的VID/PID规范:
现有已经出货的HID白板,VID/PID比较多,显得很混乱。
红外的VID=0x1cbe,PID=0x0114;
2points
电磁的VID=0x1cbe,PID=0x0117;
1/2
光学的VID=0x4623,PID=0x0117;
1
红外多点的VID=0x4623,PID=0x011a;
2-4
日本模组的光学VID=0x1477,PID=0x1223,2
已经出货的,保持现状不动。
目前我们正在申请鸿合专用VID/PID,后续所有新研发的HID白板,将统一使用这个VID/PID,遵循统一的握手指令和数据通讯指令。
鸿合专用VID已经于2012/06月获取,10进制10071,16进制为0x2757。
HID免驱模式下的协议规范(端口1):
协议集H0
使用标准的Win7-touch协议,详细的指令格式(2点一个包)
字节
描述
值
报告ID
0x1
1
第一笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
2
第一笔笔画标识,PenId
0x00
3,4
第一笔X方向坐标
0-0X7FFF
5,6
第一笔Y方向坐标
7
第二笔报告标志位,PenType
8
第二笔笔画标识,PenId
0x01
9,10
第二笔X方向坐标
11,12
第二笔Y方向坐标
13
笔画数目
或(4点一个包)
第二笔笔画标识,PenID
第三笔报告标志位,PenType
14
第三笔笔画标识,Penid
0x02
15,16
第三笔X方向坐标
17,18
第三笔Y方向坐标
19
第四笔报告标志位,PenType
20
第四笔笔画标识,Penid
0x03
21,22
第四笔X方向坐标
23,24
第四笔Y方向坐标
25
4
同时,该HID设备的reportconfigdescriptor必须按照上述规定进行明确的定义;
该HID设备的productstringdescriptor,必须符合鸿合设备规范:
HiteBoard-XXX。
前10个字符,必须是“HiteBoard”。
HID自定义端口的协议规范(端口2):
协议集H1
所有指令,采用64字节定长数据包,不足部分补0;
所有指令,通过自定义HID端口上下行。
包括如下指令:
1.白板握手包
02
Q00000000000000
Q0随机数
2.白板握手返回包
T0V0V1V2V3D0D1D2D3P0Q000
T0:
1:
红外,2:
电磁,3:
压感,4:
CCD,5:
手写板,6:
红外书写框,7:
电磁书写屏,8:
复合白板,9:
红外多点白板,10台湾力新的光学白板,11:
多点红外方案2
V0–V3:
固件程序版本(BCD码)
D0–D3:
设计日期(BCD码)
P0:
最大可操作点数
Q0:
随机数
3.工作模式控制包
T000000000000
T0=1:
休眠模式。
可以进行Flash的读写访问,同时停止扫描,停止心跳
T0=2:
免驱工作模式。
所有数据,按照标准Win7格式,从端口1上行。
T0=3:
有驱工作模式。
所有数据,按照自定义格式,从端口2上行。
这个是一个显式的强制模式设置指令,有驱动程序下发该指令,对白板的工作模式进行强制设置。
同时,白板硬件也需要有一个隐含的模式切换机制:
当和驱动程序之间的心跳断开之后的6-8秒内,要自动切换到无驱工作模式下。
4.工作模式控制包回复
4
成功:
T0原来的值返回
失败:
T0为0xff值返回
5.心跳包
3
00000000000000
白板主控板在没有任何操作的时候,每2秒上行一个心跳包,驱动程序收到后直接回复。
驱动程序在6-8秒内没有收到任何心跳,则认为连接丢失,会重新握手;
白板主控板在6-8秒之内没有收到驱动返回的心跳回复,则认为驱动程序退出,自动进入免驱模式。
6.操作数据类命令
各种白板操作的数据,要考虑到电磁、压感、红外、光学等各种白板的各种特性和操作。
1)、白板操作数据:
0,1
0x020x10
PenID
0x00:
无效,1-n:
PenId
操作类型
PenUp,2:
PenDown,3:
PenRight(电磁右键),4:
PenReserved(电磁保留按键),5:
Eraser(电磁板擦),6:
Rover(红外漫游)
4,5
X
6,7
Y
8,9
额外参数
对于电磁,存放实际的频率;
对于压感,存放电阻值
10
信号来源
0:
红外、1:
电磁、2:
压感、3:
光学,(用于复合白板)
11
12
13,14
21
22,23
24,25
0-0X7