USB通讯协议通用规范_第1页
USB通讯协议通用规范_第2页
USB通讯协议通用规范_第3页
USB通讯协议通用规范_第4页
USB通讯协议通用规范_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

鸿合白板硬件规范V2.035/35鸿合白板硬件设计通用规范目录一、 现状和需要解决的问题 2二、 方案设想 2三、 白板硬件和驱动程序之间的消息类型 3四、 HID白板硬件设计规范(一体式) 3HID白板的VID/PID规范: 3HID免驱模式下的协议规范(端口1):协议集H0 3HID自定义端口的协议规范(端口2):协议集H1 31. 白板握手包 32. 白板握手返回包 33. 工作模式控制包 34. 工作模式控制包回复 35. 心跳包 36. 操作数据类命令 37. Flash类命令 38. 固件升级类命令 39. 专用测试类指令 3协议集H1指令汇总 3五、 分离模式下,主控板硬件设计规范 3六、 分离模式下,HID接口板硬件设计规范 3七、 分离模式下,无线接口板硬件设计规范 3无线专用协议集汇总 3八、 分离模式下,网络接口板硬件设计规范 3九、 分离模式下,主控板和各种接口板之间的通用协议规范(协议集H2) 31. 白板握手包 32. 白板握手返回包 33. 心跳包 34. 操作数据类命令 35. Flash类命令 36. 固件升级类命令 37. 专用测试类指令 3协议集H2指令汇总: 3十、 后续驱动程序和白板主控板需要支持的协议 3鸿合研究院–技术研发中心2012/03/09V1.02012/04/13V2.0

现状和需要解决的问题目前我们自研的白板,共有红外(可能有多种方案)、电磁、压感、光学4种;这些白板中,目前以及后续可能支持的接口方式有:USB、串口、HID、无线连接、网络连接。对于每种接口方式,不同的白板都需要实现一遍,带来很多重复的开发,同时既有产品,也不便于更换接口方式。每种白板,不同的尺寸、型号以及微小变化,可能都会有一些特定的内置参数。这些白板的尺寸和快捷按键的设置,也各不相同。并不是所有的白板都支持序列号、快捷按键信息的自动获取、定位信息的保存等特性,给用户的使用带来了混乱。上述这些变化,对于固件程序的维护、驱动程序的维护、生产备料、售后维护等等方面,都会带来很大的困扰。吸取我们目前设计HID白板的经验,对于后续白板的硬件设计,非常有必要进行一个规范化的要求。在此规范化的框架之下,接口方式的变化、白板内置参数的调整、快捷按键的设置、白板序列号、固件自动升级、定位信息的自动保存等等问题,将会有一个统一的方法。已经出货以及在产的白板先不考虑,本规范适用于未来鸿合白板的硬件设计。方案设想关于接口方式的标准:未来的白板,将只支持三种接口方式:有线HID无线连接(串口)网络连接(IP)这三种接口方式,通过通用的接口板去实现。更换接口方式,主控板不用变化,只需更换不同的接口板即可。这些接口板和白板类型无关,是通用接口板。主控板可以内置在板体中,也可以外置。接口板外置在板体之外,便于更换。两者之间通过一个标准的短连接线连接。主控板只负责白板逻辑的处理,所有和接口相关的处理都放在接口板上(HID的处理、无线的处理、网络的处理等)。关于内置Flash的标准:在主控板上,内置Flash,用于存放各种内置参数、快捷按键的设置、白板序列号、白板定位信息等等内容,通过统一的协议进行写入和读取。

白板主控板(负责白板坐标逻辑处理)白板主控板(负责白板坐标逻辑处理)白板主控板,只负责坐标的获取和处理,和接口方式无关标准的标准的UART硬件接口和通讯协议硬件握手和心跳维持上行,坐标数据(多点操作)Flash参数读写指令其他(如固件升级等)FlashFlash标准接口标准接口1标准接口1标准接口1通用网络接口板通用无线接口板标准接口1标准接口1通用网络接口板通用无线接口板通用HID接口板标准接口1标准接口3标准接口3标准接口2标准接口标准接口4处理和实现与接口相关的所有功能和操作处理和实现与接口相关的所有功能和操作维持和硬件以及驱动程序的心跳……驱动程序驱动程序在这种框架下,驱动程序只需要和三种接口板打交道;不管什么接口,获取的信息都是相同的:白板类型、快捷按键的设置、固件版本号、产品序列号、定位信息的保存等等,都可以在所有的产品、所有的接口方式上实现,对于产品的标准化管理非常有利。三种接口板一旦调试稳定,则可以适用到各种白板上,不用重复开发;主控板的开发也单纯很多,不用考虑各种接口的问题,只针对鸿合内部的通讯协议即可。同一种类型的白板,不管型号、大小、快捷按键的配置等是否相同,主控板本身都是相同的。所有配置信息(包括序列号等)都存放在主控板中,生产时根据不同的型号写入不同的信息。

特别说明:复合白板的结构。复合白板是一种很特殊的白板,同时集成了电磁和红外两种技术,用户可以同时使用手指和电磁笔进行操作,在高层软件一端,手指操作和电磁笔操作,可以执行不同的功能。电磁白板主控板Flash红外白板主控板Flash电磁白板主控板Flash红外白板主控板FlashUARTUARTHIDHID接口板握手处理HID接口的实现(暂时没有键盘接口,不支持免驱模式下的快捷按键和笔托操作)两种白板的坐标转换和上行心跳维护HID免驱和有驱模式的切换控制

白板硬件和驱动程序之间的消息类型如果不考虑无驱HID工作模式,则在有驱工作模式下,白板和驱动程序之间需要传递的消息,根据我们以往的经验,总共有如下的消息:和具体接口相关的控制指令(比如无线专用类控制指令、HID握手指令等)白板握手类指令(*,带星号的指令是必须支持的指令)心跳类指令(*)操作数据上行(要考虑多点数据)(*)笔托类指令硬按键类指令Flash类指令(各种配置信息、定位信息的自动保存等等)(*)固件升级类指令各种专用测试类指令每个白板,不一定要支持全部的指令,但是需要支持其中的主要部分(带星号的指令必须支持),而且,必须按照统一的指令格式,即本文档规定的格式。后续如果有扩充,则对本文档进行扩充和完善。

HID白板硬件设计规范(一体式)现有的HID白板,不同类型的白板,HID接口电路和主控板是一体的,而且是有线连接的。对于主控板和接口板的处理,为了减低成本等原因,可以考虑保持现有的模式不动,不强制分离。但是在实现的功能和指令格式上,则需要保持一致。存在的缺陷就是:这些白板将只能支持HID有线连接,不能通过更换接口板切换到其他连接方式。HID主控板HID主控板PC标准标准USB连接线如下内容,基本来自原“鸿合HID设备设计规范”,做了一定的优化和改进。一体式HID主控板,在硬件上需要实现两种工作模式:免驱模式和有驱模式。PC白板主控盒标准的PC白板主控盒标准的WIN7-Touch协议,免驱模式Win7多点触控设备的定位Win7多点触控设备的定位系统自带的HID驱动程序端口端口1系统标准的HID系统标准的HID键盘键盘端口FlashFlash自定义自定义HID通道,和驱动程序通讯,有驱模式(协议集H1)端口2端口2驱动程序

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点一个包)字节描述值0报告ID0x11第一笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效2第一笔笔画标识,PenId0x003,4第一笔X方向坐标0-0X7FFF5,6第一笔Y方向坐标0-0X7FFF7第二笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效8第二笔笔画标识,PenId0x019,10第二笔X方向坐标0-0X7FFF11,12第二笔Y方向坐标0-0X7FFF13笔画数目2或(4点一个包)字节描述值0报告ID0x11第一笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效2第一笔笔画标识,PenId0x003,4第一笔X方向坐标0-0X7FFF5,6第一笔Y方向坐标0-0X7FFF7第二笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效8第二笔笔画标识,PenID0x019,10第二笔X方向坐标0-0X7FFF11,12第二笔Y方向坐标0-0X7FFF13第三笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效14第三笔笔画标识,Penid0x0215,16第三笔X方向坐标0-0X7FFF17,18第三笔Y方向坐标0-0X7FFF19第四笔报告标志位,PenType0x04抬笔,0x07压下,0x00,无效20第四笔笔画标识,Penid0x0321,22第四笔X方向坐标0-0X7FFF23,24第四笔Y方向坐标0-0X7FFF25笔画数目4同时,该HID设备的reportconfigdescriptor必须按照上述规定进行明确的定义;该HID设备的productstringdescriptor,必须符合鸿合设备规范:HiteBoard-XXX。前10个字符,必须是“HiteBoard”。

HID自定义端口的协议规范(端口2):协议集H1所有指令,采用64字节定长数据包,不足部分补0;所有指令,通过自定义HID端口上下行。包括如下指令:白板握手包021Q00000000000000Q0随机数白板握手返回包021T0V0V1V2V3D0D1D2D3P0Q000T0:1:红外,2:电磁,3:压感,4:CCD,5:手写板,6:红外书写框,7:电磁书写屏,8:复合白板,9:红外多点白板,10台湾力新的光学白板,11:多点红外方案2V0–V3:固件程序版本(BCD码)D0–D3:设计日期(BCD码)P0:最大可操作点数Q0:随机数工作模式控制包024T000000000000T0=1:休眠模式。可以进行Flash的读写访问,同时停止扫描,停止心跳T0=2:免驱工作模式。所有数据,按照标准Win7格式,从端口1上行。T0=3:有驱工作模式。所有数据,按照自定义格式,从端口2上行。特别说明: 这个是一个显式的强制模式设置指令,有驱动程序下发该指令,对白板的工作模式进行强制设置。同时,白板硬件也需要有一个隐含的模式切换机制:当和驱动程序之间的心跳断开之后的6-8秒内,要自动切换到无驱工作模式下。工作模式控制包回复024T000000000000成功:T0原来的值返回失败:T0为0xff值返回心跳包02300000000000000白板主控板在没有任何操作的时候,每2秒上行一个心跳包,驱动程序收到后直接回复。驱动程序在6-8秒内没有收到任何心跳,则认为连接丢失,会重新握手;白板主控板在6-8秒之内没有收到驱动返回的心跳回复,则认为驱动程序退出,自动进入免驱模式。操作数据类命令各种白板操作的数据,要考虑到电磁、压感、红外、光学等各种白板的各种特性和操作。1)、白板操作数据:字节描述值0,1报告ID0x020x102PenID0x00:无效,1-n:PenId3操作类型1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)4,5X0-0X7FFF6,7Y0-0X7FFF8,9额外参数对于电磁,存放实际的频率;对于压感,存放电阻值10信号来源0:红外、1:电磁、2:压感、3:光学,(用于复合白板)11PenID0x00:无效,1-n:PenId12操作类型1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)13,14X0-0X7FFF15,16Y0-0X7FFF17,18额外参数对于电磁,存放实际的频率;对于压感,存放电阻值19信号来源0:红外、1:电磁、2:压感、3:光学,(用于复合白板)20PenID0x00:无效,1-n:PenId21操作类型1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)22,23X0-0X7FFF24,25Y0-0X7FFF26,27额外参数对于电磁,存放实际的频率;对于压感,存放电阻值28信号来源0:红外、1:电磁、2:压感、3:光学,(用于复合白板)29PenID0x00:无效,1-n:PenId30操作类型1:PenUp,2:PenDown,3:PenRight(电磁右键),4:PenReserved(电磁保留按键),5:Eraser(电磁板擦),6:Rover(红外漫游)31,32X0-0X7FFF33,34Y0-0X7FFF35,36额外参数对于电磁,存放实际的频率;对于压感,存放电阻值37信号来源0:红外、1:电磁、2:压感、3:光学,(用于复合白板)特别说明:每个数据包最多同时上行4个操作点的信息。PenId一行非常关键,如果该值为0,则表示此后所有的数据都是无效的,不用再解析下去了。否则的话,该值为操作的PenID,合法范围为1-200。此处需要特别注意的是,对于电磁和压感白板,笔的操作类型改为由硬件进行判断,如PenUp,PenDown,PenRight等。对于电磁白板来说,各个频率范围放在白板专用参数中;对于压感白板来说,电阻值的阈值放在白板专用参数中。数据上行的时候,频率和阻值作为参数附带上传,主要用于测试和调试。2)、笔托数据:0211PenSelected,右边的优先级最高,从左到右,依次为1-4,0表示全部放下如果接笔托,则笔托状态发生变化的时候,上行该消息给驱动程序。3)、硬按键数据:0212ButtonNo,按键松开的时候发送该消息,从上到下,从1开始依次编号如果有硬按键,则用户操作了硬按键的时候,上行该消息给驱动程序。

Flash类命令作为一个标准属性,鸿合白板将统一支持Flash,用于存放一些特定的参数。该Flash的参数区大小,约定为1K字节。1)、写入命令,reportID固定为F0。格式如下:02F0IDQ0参数 ID:为该命令对应的命令ID Q0:下行随机数 引入随机数的概念是进一步增加匹配率,防止出错 每一个写入命令,一定要求返回一个是否成功的返回命令2)、写入命令的返回(是否成功) 所有写入的返回使用同一个指令,reportID固定为F1。格式如下:02F1IDQ0K0 ID:对应的写入命令的reportID Q0:对应写入命令下行的随机数 K0:0:写入成功,1:写入失败 只有当ID相同、Q0相同、且K0=0的时候,才认为本写入指令成功。3)、读出命令,reportID固定为F2。格式如下:02F2IDQ0 ID:对应的写入命令的ID Q0:下行随机数 引入随机数的概念是进一步增加匹配率,防止出错 每一个写入命令,一定要求返回一个或者多个返回命令4)、读出命令的返回reportID固定为F3。格式如下:02F3IDQ0Seq参数 ID:对应的读出命令的reportID Q0:对应的读出命令下行的随机数 Seq:返回的结果顺序号,从0开始编制。有些查询命令,可能会返回多条结果。详细的指令如下:Flash“信息有效”标志写入/读出,ID=2002F020Q0T0T1T2T3T4T5T0–T5:固定的字符串,“HHTHID”。如果读取时不是这个字符串,说明该设备没有初始化。其返回数据包格式如下:02F120XX0/1XX等于对应写入命令的Q0其他写入数据的返回数据包格式依次类推,不再一一列举。读取Flash“信息有效”标志的数据包格式如下:02F220XXXX是下行的随机数其他读取数据包格式依次类推,不再一一列举Flash“信息有效”标志读出信息的返回包格式如下:02F320XX0T0T1T2T3T4T5其他读取数据的返回数据包格式依次类推,不再一一列举子型号写入/读出,ID=21参数列表:T0-T11S0–S14T0-T11:子型号,为便于扩展,设置12个字节,字符串型。比如红外的3175、3282,电磁的8088L等。此处的字节顺序要注意:如果是3175,则T0=‘3’(0x33),T1=’1’(0x31),T2=’7’(0x37),T3=’5’(0x35),T4=0。如果是8088H,则T0=‘8’(0x38),T1=’0’(0x30),T2=’8’(0x38),T3=’8’(0x38),T4=‘H’,T5=0。S0-S14:物料编号写入指令示例: 02F021XX‘H’‘H’‘T’‘H’‘I’‘D’00000000…写入指令返回示例: 02F121XX0/1读取指令示例: 02F221XX读取指令返回示例: 02F321XX0‘H’‘H’‘T’‘H’‘I’‘D’……序列号写入/读出,ID=22参数列表:T0T1T2T3T4T5T6T7T8T9T10T11T12T13共14个字节,表示序列号,比如,若序列号为:EA5U050C970001则T0=‘E’,T1=‘A’……快捷按键配置参数写入/读出,ID=23参数列表:K0K1K2K3Y0WHI所有各种白板都会用到的通用参数设置。K0:快捷按键方案 K1:左侧快捷按键数量 K2:右侧快捷按键数量 K3:底边快捷按键数量 Y0:物理硬按键数量(功能待定) W:快捷按键的宽度,相对值 H:快捷按键的高度,相对值 I:快捷按键的间隔,相对值

白板专用参数写入/读出,ID=24各个白板专用参数设置指令,每个字节的含义由各个白板自行解释,以总包长64个字节计算,目前专用参数最多60个字节。参数列表:P0P1P2……………该专用参数主要用于一些白板本身特殊的控制,比方说操作点数的限制、工作电压、电流、红外管数量等等方面的参数,这些参数在生产的时候,会根据不同的型号配置,会烧录到白板中。比如,对于光学白板,可能需要如下的一些参数:P0:平均亮度上限

P1:平均亮度下限P2:预曝光时间P3:最大镜头增益P4:镜头:每个镜头一组P5:H方向

00顺向FF为逆向P6:V方向

00顺向FF为逆向快捷按键信息的写入/读出,ID=30参数列表:T0X00X01Y00Y01X10X11Y10Y11K0K1K2C0T0:免驱模式下,硬件需要处理的快捷键编号0–30,不分左右或者底边,纯粹的顺序号X00:X0低八位X01:X0高八位Y00:Y0低八位Y01:Y0高八位X10:X1低八位X11:X1高八位Y10:Y1低八位Y11:Y1高八位K0:位0到7对应键盘的E0-E7用途IDK1:键盘用途IDK2:键盘用途IDC0:免驱模式下,硬件需要处理的快捷键的总个数这里需要特别申明一下:X0、Y0、X1、Y1只是每个快捷按键的四个边界的坐标,并不一定(X0,Y0)是左上角,(X1,Y1)是右下角。因为不同的白板,感应坐标的方向都是不太一样的。此处约定一个规则:X0永远比X1小,Y0永远比Y1小。硬件只要判断感应坐标:x>=X0&&x<=X1&&y>=Y0&&y<=Y1,则表示落在这个快捷按键的范围内。 对于这种有多条信息的内容,为了简便起见,读取指令略有特殊,进行单条指定读取:读取指令示例: 02F230XXT0//T0为需要读取的序号,含义同上读取指令返回示例: 02F330XXT0X00……..

显示区信息的写入/读出,ID=31参数列表:X00X01Y00Y01X10X11Y10Y11X00:X0低八位X01:X0高八位Y00:Y0低八位Y01:Y0高八位X10:X1低八位X11:X1高八位Y10:Y1低八位Y11:Y1高八位这里需要特别申明一下:X0、Y0、X1、Y1是显示区的四个边界的坐标,(X0,Y0)是左上角,(X1,Y1)是右下角。X0可能比X1小,,也可能比X1大;同理,Y0可能比Y1小,也可能比Y1大。定位信息写入/读出,ID=40-42总共最多需要保存17个点的定位信息,每个定位点的信息为(intX,intY),即每个定位点需要4个字节(最大65536),总共需要68字节的Flash存储空间,分为3个数据包。依次包含5、6、6个定位点信息。参数列表:T0,X00X01Y00Y01X10X11Y10Y11…X0=X00*256+X01Y0=Y00*256+Y01ID=40的数据包:T0,(X0,Y0)-(X4,Y4)T0:Flash烧录的次数,每次读取之后再写入定位信息,这个值要加1。当这个值超过80次之后,就不能再写入了。ID=41的数据包:(X5,Y5)-(X10,Y10)ID=42的数据包:(X11,Y11)-(X16,Y16)结束参数写入命令,ID=50考虑到Flash的实际特性,是按照区块操作的。前期的写入操作,一般只是写到固件的内存中,不会直接写Flash。所以一旦所有的写入操作结束,会发送一个正式写入的指令,将所有相关设置统一保存到Flash中,这样也可以有效较少对于Flash的访问。 写入指令示例: 02F050XX 写入指令返回示例: 02F150XX0/1 该指令没有对应的读出指令。开始参数写入命令,ID=51参数写入过程是一个非常规状态,固件程序可能需要进行一些特殊的处理,比方说:停止扫描、进入休眠模式等。 写入指令示例: 02F051XX 写入指令返回示例: 02F151XX0/1 该指令没有对应的读出指令。固件升级类命令待定。专用测试类指令这个和具体的白板有关,和测试内容也有关系,待定。

协议集H1指令汇总指令含义握手类指令0201驱动主动下行,白板握手包0201…主控板回复,上行,握手返回包0204驱动主动下行,模式控制包0204…主控板回复,上行,模式控制返回包心跳指令0203主控板主动上行,心跳包0203驱动回复,下行,心跳包数据类指令0210…主控板主动上行,白板操作数据0211xx主控板主动上行,笔托操作0212xx主控板主动上行,硬按键操作FLASH类指令02F020…有效标志,驱动主动下行,写入02F120…有效标志,主控板回复,上行,写入的返回02F220…有效标志,驱动主动下行,查询02F320…有效标志,主控板回复,上行,查询的返回02F021…子型号,驱动主动下行,写入02F121…子型号,主控板回复,上行,写入的返回02F221…子型号,驱动主动下行,查询02F321…子型号,主控板回复,上行,查询的返回02F022…序列号,驱动主动下行,写入02F122…序列号,主控板回复,上行,写入的返回02F222…序列号,驱动主动下行,查询02F322…序列号,主控板回复,上行,查询的返回02F023…快捷按键配置参数,驱动主动下行,写入02F123…快捷按键配置参数,主控板回复,上行,写入的返回02F223…快捷按键配置参数,驱动主动下行,查询02F323…快捷按键配置参数,主控板回复,上行,查询的返回02F024…白板专用参数,驱动主动下行,写入02F124…白板专用参数,主控板回复,上行,写入的返回02F224…白板专用参数,驱动主动下行,查询02F324…白板专用参数,主控板回复,上行,查询的返回02F030…快捷按键信息,驱动主动下行,写入02F130…快捷按键信息,主控板回复,上行,写入的返回02F230…快捷按键信息,驱动主动下行,查询02F330…快捷按键信息,主控板回复,上行,查询的返回02F031…显示区信息,驱动主动下行,写入02F131…显示区信息,主控板回复,上行,写入的返回02F231…显示区信息,驱动主动下行,查询02F331…显示区信息,主控板回复,上行,查询的返回02F040-42…定位参数,驱动主动下行,写入02F140-42…定位参数,主控板回复,上行,写入的返回02F240-42…定位参数,驱动主动下行,查询02F340-42…定位参数,主控板回复,上行,查询的返回02F050…结束Flash参数写入,驱动主动下行02F150…主控板回复,上行,写入是否成功02F051…开始Flash参数写入,驱动主动下行02F151…主控板回复,上行,是否准备好写入

分离模式下,主控板硬件设计规范为避免重复开发,后续HID白板的研发,建议使用分离式结构。由HID专用接口板负责HID相关部分的处理(有驱、无驱等),该部分的处理和白板无关。白板主控板则专注于白板本身的处理,该部分的处理,和接口方式无关。网络白板和无线白板的主控板,理论上也遵循这一原则。也就是说,不管什么接口,主控板是完全相同的。PC各种通用接口板通用主控板PC各种通用接口板通用主控板标准标准UART硬件连接标准通讯协议(H2)和各种接口板的通用硬件接口规范:接口板和主控板之间,通过UART连接,为了降低成本,增加可靠性,连接方式使用一根20cm左右长度的屏蔽线。总共4根电缆:电源线2根;UART数据线2根。UART波特率115200,8bit,1个停止位,不带校验位。和各种接口板的通用协议接口规范:支持标准的协议集H2。主控板本身需要完成如下的工作:白板操作坐标的获取与上行接到白板上的笔托、硬按键等标准外部设备的信息处理(可选项)Flash的维护,各种配置参数的处理、定位信息的保存等空闲时间心跳的维护固件升级处理(可选项)生产测试指令的处理(可选项)

其他外设物理硬按键笔托其他外设物理硬按键笔托主控板主控板固件升级模块心跳的维护白板坐标逻辑Flash固件升级模块心跳的维护白板坐标逻辑Flash的维护笔托、硬按键等外部设备处理模块测试指令处理模块笔托、硬按键等外部设备处理模块测试指令处理模块绿色部分为必有模块绿色部分为必有模块褐色部分为可选模块褐色部分为可选模块标准的接口板规范层标准的接口板规范层硬件心跳上行、操作数据上行硬件心跳上行、操作数据上行DriverDriver下行的各种指令以及返回硬件握手以及返回硬件握手以及返回接口板接口板

分离模式下,HID接口板硬件设计规范该HID接口板,对下连接通用的主控板,对上连接PC,实现通用的HID接口。不管什么主控板,该HID接口板是通用的。支持两种模式:有驱模式和无驱模式。PCHID接口板PCHID接口板通用主控板标准标准USB连接线HID设备接口协议集H1(有驱)协议集H0(免驱)标准标准UART硬件连接标准通讯协议(H2)此时有一个问题要特别注意:PC的驱动程序和HID接口板之间,由于是HID接口,为了自动和一体式HID设备兼容,所以会使用HID握手协议和数据格式(H1);此时HID接口板要将这个握手协议和格式,转换为和通用主控板之间的握手格式和数据协议格式(H2)。因为HID接口板后面连接的是通用的主控板,而通用主控板只支持协议集H2。HID接口板需要实现的任务:对于PC,实现标准的HID接口和自定义端口在标准HID接口上,实现Win7标准协议;免驱模式,支持协议集H0在自定义端口上,实现鸿合标准的协议集H1提供标准HID键盘接口,实现免驱下的某些快捷按键支持对于MCU,通过标准的硬件接口连接(UART),提供数据和电源,并实现鸿合标准的协议集H2有驱和免驱,维护两种工作模式之间的切换两种工作模式下,上下行数据的格式转换和数据转发,以及免驱下的按键模拟关于免驱下的快捷按键支持,特别说明如下:HID接口板上电之后,要通过指令02F230,从主控板的Flash中,获取快捷按键的相关信息,用于免驱下处理快捷按键。这个仅仅是HID接口板才需要有的操作。在免驱模式下,HID接口板的工作方式如下:接收主控板上行的操作坐标检查这些坐标是否落在某个快捷按键范围,如果是,则通过键盘接口,模拟相应的按键,不再上行坐标数据了如果不是,则按照协议集H0的规则,从端口1上行坐标数据

分离模式下,无线接口板硬件设计规范该无线接口板,对下连接通用的主控板,对上连接PC上的Dongle,实现通用的无线接口。不管什么主控板,该无线接口板是通用的。PC无线接口板通用主控板PC无线接口板通用主控板DongleDongle电源适配器电源适配器标准标准UART硬件连接标准通讯协议(H2)DongleDongle设备无线专用协议集无线接口板需要实现的任务:对于PC,实现和dongle之间的通讯讯道,使用协议集H2+无线专用协议集对于MCU,通过标准的硬件接口连接(UART),提供数据和电源,并实现标准的协议集H2电源的处理维持和dongle之间的连接,完成上下行数据的透明转发

无线专用协议集汇总指令含义无线握手指令PH030001PE驱动主动下行,驱动和dongle之间的握手PH0B0022…PEdongle回复,上行,无线握手返回包搜索指令PH040003T0PE驱动主动下行,搜索子节点PH1E0006…PEdongle回复,上行,返回搜索结果绑定类指令PH1C0005…PE驱动主动下行,绑定某个指定的子节点PH0C0008…PEdongle回复,上行,返回绑定结果PH0C0007…PE驱动主动下行,解除某个指定的子节点的绑定PH0C000A…PEdongle回复,上行,返回解除绑定结果无线测试专用指令PH040021xxPE驱动主动下行,开始无线专用测试PH0D00FA…PEdongle回复,上行,返回测试包,多条无线握手协议驱动和dongle之间的握手。通过这个协议,驱动程序能够知道是否存在无线dongle。所有无线协议,使用统一的格式,包括统一的包头(PH)、总长度(不包括包头和包尾,以兼容旧的白板格式)、ID(dongle的ID为0,子节点的ID=1-200)、命令类型Cmd、数据包内容(0-100字节)、包尾(PE)。暂定PH=0x7E,PE=0xCE。PC下行指令格式:包头LenIDCmdData包尾PH0x030x000x01无PE 返回(Dongle上行指令):在1秒钟之内,必须回复。包头LenIDCmdData包尾PH0x0B0x000x22Dongle的IEEE(8Bytes)PE 为了和老式的无线方案区分,此时返回的cmd=0x22。(老式的无线方案,cmd=0x02)。主要区别在于:新的无线方案,支持最新的协议集2,不再支持非透明传输包、不主动下行心跳而是使用标准协议回复心跳。搜索指令以及返回驱动程序通过这个指令,获取本dongle工作范围内的所有子节点列表(包括内节点和外节点)。PC下行指令格式:包头LenIDCmdData包尾PH0x040x000x03Type(0:全部内外子节点,1:全部内节点,2:全部外节点)PE 返回(Dongle上行指令):在3秒钟之内,dongle必须对本指令进行回复。包头LenIDCmdData包尾PH0x1E0x000x06Total(1Byte,总节点数量)、节点的IEEE(8Bytes)、ID(1Byte,对于外节点,ID=0)、DESC(16字节,描述信息)外节点频率(1Byte)PE绑定指令以及返回对于某个外节点进行绑定操作,同时写入描述字符。PC下行指令格式:包头LenIDCmdData包尾PH0x1C0x000x05节点的IEEE(8Bytes)、DESC(16字节,描述信息)外节点频率(1Byte)PE 返回(Dongle上行指令):在3秒钟之内,必须回复。如果绑定成功,则返回其内部ID,且将这个节点加入到内节点列表中。包头LenIDCmdData包尾PH0x0C0x000x08Dongle的IEEE(8Bytes)、ID(0:失败、n:成功)PE解除绑定指令以及返回对于某个内节点进行解除绑定操作,同时将描述字符清空。PC下行指令格式:包头LenIDCmdData包尾PH0x0C0x000x07节点的IEEE(8Bytes)、IDPE 返回(Dongle上行指令):在3秒钟之内,必须回复。如果解除绑定成功(需要清除该节点的描述字符),将这个节点从内节点列表中删除。包头LenIDCmdData包尾PH0x0C0x000x0ADongle的IEEE(8Bytes)、Ret(0:失败、原ID:成功)PE丢包率测试指令驱动程序下行一个控制指令,命令硬件回复一定数量的用户数据包下行指令:包头LenIDCmdData包尾PH0x0400x21Num(需要返回的测试数据包的数量)PE上行指令:(多条)包头LenIDCmdData包尾PH0x0D00xFAFFFFFFFFFFFFFFFFCurSeqTotalNumPECurSeq是当前序号,从0开始编制,顺序递增;TotalNum是本次测试需要上行的总包数透明传输包上述指令1-6,都是无线模组内部流动的指令,所有这些指令仅在驱动程序和无线模组内部流通、处理。透明传输包指令则是驱动程序和MCU之间的指令交换,其实就是后续要讲述的协议集H2。所有这些指令,无线模组要进行完全透明的上下行传输。这些指令的一个共同特点就是:下行包指令(cmd=0x7A)包头LenIDCmdData包尾PH0xxxID0x7APE上行指令(cmd=0xFA)包头LenIDCmdData包尾PH0xxxID0xFAPE

分离模式下,网络接口板硬件设计规范该网络接口板,对下连接通用的主控板,对上连接墙上的RJ45网络插座,通过IP和PC建立动态的连接。不管什么主控板,该网络接口板是通用的。网络接口板通用主控板网络接口板通用主控板RJ45RJ45插座标准网线协议集H2标准网线协议集H2电源适配器标准UART硬件连接标准通讯协议(H2)网络接口板需要实现的任务:对于PC,通过标准网线连接到局域网上,呈现标准的网络设备,使用协议集H2+网络专用协议集(IP的查找等)对于MCU,通过标准的硬件接口连接(UART),提供数据和电源,并实现标准的协议集H2电源的处理维持和驱动程序之间的socket连接,完成上下行数据的透明转发

分离模式下,主控板和各种接口板之间的通用协议规范(协议集H2)使用统一的指令格式,每个指令包括统一的包头(PH)、总长度(不包括包头和包尾)、ID(固定为0)、命令类型Cmd、数据包内容(0-100字节)、包尾(PE)。暂定PH=0x7E,PE=0xCE。其实就是对协议集H1进行了用户数据包的封装(上行:FA,下行:7A,对数据长度做了处理)。白板握手包包头LenIDCmdData包尾PH0x060x000x7A0201Q0PEQ0随机数白板握手返回包包头LenIDCmdData包尾PH0x100x000xFA0201T0V0V1V2V3D0D1D2D3P0Q0PET0:1:红外,2:电磁,3:压感,4:CCD,5:手写板,6:红外书写框,7:电磁书写屏,8:复合白板,9:红外多点白板,10台湾力新的光学白板,11:多点红外方案2V0–V3:固件程序版本(BCD码)D0–D3:设计日期(BCD码)P0:最大可操作点数Q0:随机数心跳包白板主控板在没有任何操作的时候,每2秒上行一个心跳包,驱动程序收到后直接回复。驱动程序在6-8秒内没有收到任何心跳,则认为连接丢失,会重新握手;白板主控板在6-8秒之内没有收到驱动返回的心跳回复,则认为驱动程序退出,自动进入免驱模式。上行心跳包包头LenIDCmdData包尾PH0x050x000xFA0203PE驱动程序回复的下行心跳包包头LenIDCmdData包尾PH0x050x000x7A0203PE操作数据类命令各种白板操作的数据,要考虑到电磁、压感、红外、光学等各种白板的各种特性和操作。1)、白板操作数据:包头LenIDCmdData包尾PH0xxx0x000xFA0210xxxxxxxxxx参见H1协议集,指令0210PE2)、笔托数据:包头LenIDCmdData包尾PH0x060x000xFA0211PenSelected,右边的优先级最高,从左到右,依次为1-4,0表示全部放下PE如果接笔托,则笔托状态发生变化的时候,上行该消息给驱动程序。3)、硬按键数据:包头LenIDCmdData包尾PH0x060x000xFA0212ButtonNo,按键松开的时候发送该消息,从上到下,从1开始依次编号PE如果有硬按键,则用户操作了硬按键的时候,上行该消息给驱动程序。

Flash类命令参见协议集H1的相关约定。对H1协议集的相应指令,进行封包处理。有效标志写入/读出,ID=20包头LenIDCmdData包尾PH0x0D0x000x7A02F020Q0T0–T5PE有效标志写入指令返回包:包头LenIDCmdData包尾PH0x080x000xFA02F120Q00/1PE有效标志读取指令:包头LenIDCmdData包尾PH0x080x000x7A02F220Q0PE有效标志读取返回包指令:包头LenIDCmdData包尾PH0x0D0x000xFA02F320Q0T0–T5PE子型号写入/读出,ID=21序列号写入/读出,ID=22快捷按键配置参数写入/读出,ID=23白板专用参数写入/读出,ID=24快捷按键信息的写入/读出,ID=30显示区信息的写入/读出,ID=31定位信息写入/读出,ID=40-42结束参数写入命令,ID=50开始参数写入命令,ID=51固件升级类命令专用测试类指令这个和具体的白板有关,和测试内容也有关系,待定。

协议集H2指令汇总:指令含义握手指令PH06007A0201Q0PE驱动主动下行,白板

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论