USB通讯协议通用规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.
各种白板操作的数据,要考虑到电磁、压感、红外、光学等各种白板的各种特性和操作。
1)、白板操作数据:
字节
描述

0,1
报告ID
0x02 0x10
2
PenID
0x00:无效,1-n:PenId
3
操作类型
1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)
三种接口板一旦调试稳定,则可以适用到各种白板上,不用重复开发;
主控板的开发也单纯很多,不用考虑各种接口的问题,只针对鸿合内部的通讯协议即可。同一种类型的白板,不管型号、大小、快捷按键的配置等是否相同,主控板本身都是相同的。所有配置信息(包括序列号等)都存放在主控板中,生产时根据不同的型号写入不同的信息。
二、
关于接口方式的标准:
未来的白板,将只支持三种接口方式:
1、有线HID
2、无线连接(串口)
3、网络连接(IP)
这三种接口方式,通过通用的接口板去实现。更换接口方式,主控板不用变化,只需更换不同的接口板即可。这些接口板和白板类型无关,是通用接口板。主控板可以内置在板体中,也可以外置。接口板外置在板体之外,便于更换。两者之间通过一个标准的短连接线连接。主控板只负责白板逻辑的处理,所有和接口相关的处理都放在接口板上(HID的处理、无线的处理、网络的处理等)。
鸿合白板硬件设计通用规范
鸿合研究院–技术研发中心
2012/03/09V1.02012/04/13V2.0
一、
1、目前我们自研的白板,共有红外(可能有多种方案)、电磁、压感、光学4种;
2、这些白板中,目前以及后续可能支持的接口方式有:USB、串口、HID、无线连接、网络连接。对于每种接口方式,不同的白板都需要实现一遍,带来很多重复的开发,同时既有产品,也不便于更换接口方式。
13,14
X
0-0X7FFF
15,16
Y
0-0X7FFF
17,18
额外参数
对于电磁,存放实际的频率;对于压感,存放电阻值
19
信号来源
0:红外、1:电磁、2:压感、3:光学,(用于复合白板)
20
PenID
0x00:无效,1-n:PenId
21
操作类型
1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)
1、和具体接口相关的控制指令(比如无线专用类控制指令、HID握手指令等)
2、白板握手类指令(*,带星号的指令是必须支持的指令)
3、心跳类指令(*)
4、操作数据上行(要考虑多点数据)(*)
5、笔托类指令
6、硬按键类指令
7、Flash类指令(各种配置信息、定位信息的自动保存等等)(*)
8、固件升级类指令
如下内容,基本来自原“鸿合HID设备设计规范”,做了一定的优化和改进。
一体式HID主控板,在硬件上需要实现两种工作模式:免驱模式和有驱模式。
HID
现有已经出货的HID白板,VID/PID比较多,显得很混乱。
红外的VID = 0x1cbe, PID = 0x0114; 2points
电磁的VID = 0x1cbe, PID = 0x0117; 1/2
此处需要特别注意的是,对于电磁和压感白板,笔的操作类型改为由硬件进行判断,如PenUp, PenDown, PenRight等。对于电磁白板来说,各个频率范围放在白板专用参数中;对于压感白板来说,电阻值的阈值放在白板专用参数中。数据上行的时候,频率和阻值作为参数附带上传,主要用于测试和调试。
2)、笔托数据:
HID
所有指令,采用64字节定长数据包,不足部分补0;所有指令,通过自定义HID端口上下行。包括如下指令:
1.
02
1
Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Q0随机数
2.
02
1
T0 V0 V1 V2 V3 D0 D1 D2 D3 P0 Q0 0 0
T0:1:红外,2:电磁,3:压感,4:CCD,5:手写板,6:红外书写框,7:电磁书写屏,8:复合白板,9:红外多点白板,10台湾力新的光学白板,11:多点红外方案2
22,23
X
0-0X7FFF
24,25
Y
0-0X7FFF
26,27
额外参数
对于电磁,存放实际的频率;对于压感,存放电阻值
28
信号来源
0:红外、1:电磁、2:压感、3:光学,(用于复合白板)
29
PenID
0x00:无效,1-n:PenId
30
操作类型
1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)
光学的VID = 0x4623, PID = 0x0117; 1
红外多点的VID = 0x4623, PID = 0x011a; 2-4
日本模组的光学VID = 0x1477, PID = 0x1223,2
已经出货的,保持现状不动。
目前我们正在申请鸿合专用VID/PID,后续所有新研发的HID白板,将统一使用这个VID/PID,遵循统一的握手指令和数据通讯指令。
31,32
X
0-0X7FFF
33,34
Y
0-0X7FFF
35,36
额外参数
对于电磁,存放实际的频率;对于压感,存放电阻值
37
信号来源
0:红外、1:电磁、2:压感、3:光学,(用于复合白板)
特别说明:
每个数据包最多同时上行4个操作点的信息。PenId一行非常关键,如果该值为0,则表示此后所有的数据都是无效的,不用再解析下去了。否则的话,该值为操作的PenID,合法范围为1-200。
4,5
X
0-0X7FFF
6,7
Y
0-0X7FFF
8,9
额外参数
对于电磁,存放实际的频率;对于压感,存放电阻值
10
信号来源
0:红外、1:电磁、2:压感、3:光学,(用于复合白板)
11
PenID
0x00:无效,1-n:PenId
12
操作类型
1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)

0
报告ID
0x1
1
第一笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
2
第一笔笔画标识,PenId
0x00
3,4
第一笔X方向坐标
0-0X7FFF
5,6
第一笔Y方向坐标
0-0X7FFF
7
第二笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
8
第二笔笔画标识,PenID
9、各种专用测试类指令
每个白板,不一定要支持全部的指令,但是需要支持其中的主要部分(带星号的指令必须支持),而且,必须按照统一的指令格式,即本文档规定的格式。后续如果有扩充,则对本文档进行扩充和完善。
四、
现有的HID白板,不同类型的白板,HID接口电路和主控板是一体的,而且是有线连接的。对于主控板和接口板的处理,为了减低成本等原因,可以考虑保持现有的模式不动,不强制分离。但是在实现的功能和指令格式上,则需要保持一致。存在的缺陷就是:这些白板将只能支持HID有线连接,不能通过更换接口板切换到其他连接方式。
吸取我们目前设计HID白板的经验,对于后续白板的硬件设计,非常有必要进行一个规范化的要求。在此规范化的框架之下,接口方式的变化、白板内置参数的调整、快捷按键的设置、白板序列号、固件自动升级、定位信息的自动保存等等问题,将会有一个统一的方法。
已经出货以及在产的白板先不考虑,本规范适用于未来鸿合白板的硬件设计。
7.
作为一个标准属性,鸿合白板将统一支持Flash,用于存放一些特定的参数。该Flash的参数区大小,约定为1K字节。
1)、写入命令,report ID固定为F0。格式如下:
02
F0
ID Q0参数
ID:为该命令对应的命令ID
Q0:下行随机数引入随机数的概念是进一步增加匹配率,防止出错
每一个写入命令,一定要求返回一个是否成功的返回命令
02 11
PenSelected,右边的优先级最高,从左到右,依次为1-4,0表示全部放下
如果接笔托,则笔托状态发生变化的时候,上行该消息给驱动程序。
3)、硬按键数据:
02 12
ButtonNo,按键松开的时候发送该消息,从上到下,从1开始依次编号
如果有硬按键,则用户操作了硬按键的时候,上行该消息给驱动程序。
0x01
9,10
第二笔X方向坐标
0-0X7FFF
11,12
第二笔Y方向坐标
0-0X7FFF
13
第三笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
14
第三笔笔画标识,Penid
0x02
15,16
第三笔X方向坐标
0-0X7FFF
17,18
第三笔Y方向坐标
0-0X7FFF
19
第四笔报告标志位,PenType
第一笔X方向坐标
0-0X7FFF
5,6
第一笔Y方向坐标
0-0X7FFF
7
第二笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
8
第二笔笔画标识,PenId
0x01
9,10
第二笔X方向坐标
0-0X7FFF
11,Байду номын сангаас2
第二笔Y方向坐标
0-0X7FFF
13
笔画数目
2
或(4点一个包)
字节
描述
鸿合专用VID已经于2012/06月获取,10进制10071,16进制为0x2757。
HID
使用标准的Win7-touch协议,详细的指令格式(2点一个包)
字节
描述

0
报告ID
0x1
1
第一笔报告标志位,PenType
0x04抬笔,0x07压下,0x00,无效
2
第一笔笔画标识,PenId
0x00
3,4
T0 = 3:有驱工作模式。所有数据,按照自定义格式,从端口2上行。
特别说明:
这个是一个显式的强制模式设置指令,有驱动程序下发该指令,对白板的工作模式进行强制设置。同时,白板硬件也需要有一个隐含的模式切换机制:当和驱动程序之间的心跳断开之后的6-8秒内,要自动切换到无驱工作模式下。
4.
02
4
T0 0 0 0 0 0 0 0 0 0 0 0
V0 – V3:固件程序版本(BCD码)
D0 – D3:设计日期(BCD码)
P0:最大可操作点数
Q0:随机数
3.
02
4
T0 0 0 0 0 0 0 0 0 0 0 0
T0 = 1:休眠模式。可以进行Flash的读写访问,同时停止扫描,停止心跳
T0 =2:免驱工作模式。所有数据,按照标准Win7格式,从端口1上行。
特别说明:复合白板的结构。
复合白板是一种很特殊的白板,同时集成了电磁和红外两种技术,用户可以同时使用手指和电磁笔进行操作,在高层软件一端,手指操作和电磁笔操作,可以执行不同的功能。
三、
如果不考虑无驱HID工作模式,则在有驱工作模式下,白板和驱动程序之间需要传递的消息,根据我们以往的经验,总共有如下的消息:
3、每种白板,不同的尺寸、型号以及微小变化,可能都会有一些特定的内置参数。
4、这些白板的尺寸和快捷按键的设置,也各不相同。
5、并不是所有的白板都支持序列号、快捷按键信息的自动获取、定位信息的保存等特性,给用户的使用带来了混乱。
6、上述这些变化,对于固件程序的维护、驱动程序的维护、生产备料、售后维护等等方面,都会带来很大的困扰。
0x04抬笔,0x07压下,0x00,无效
20
第四笔笔画标识,Penid
0x03
21,22
第四笔X方向坐标
0-0X7FFF
23,24
第四笔Y方向坐标
0-0X7FFF
25
笔画数目
4
同时,该HID设备的report config descriptor必须按照上述规定进行明确的定义;
该HID设备的product string descriptor,必须符合鸿合设备规范:Hite Board-XXX。前10个字符,必须是“Hite Board”。
成功:T0原来的值返回
失败: T0为0xff值返回
5.
02
3
0 0 0 0 0 0 0 0 0 0 0 0 0 0
白板主控板在没有任何操作的时候,每2秒上行一个心跳包,驱动程序收到后直接回复。驱动程序在6-8秒内没有收到任何心跳,则认为连接丢失,会重新握手;白板主控板在6-8秒之内没有收到驱动返回的心跳回复,则认为驱动程序退出,自动进入免驱模式。
关于内置Flash的标准:
在主控板上,内置Flash,用于存放各种内置参数、快捷按键的设置、白板序列号、白板定位信息等等内容,通过统一的协议进行写入和读取。
在这种框架下,驱动程序只需要和三种接口板打交道;不管什么接口,获取的信息都是相同的:白板类型、快捷按键的设置、固件版本号、产品序列号、定位信息的保存等等,都可以在所有的产品、所有的接口方式上实现,对于产品的标准化管理非常有利。
相关文档
最新文档