[发明专利]一种多鼠标/键盘模拟装置有效
申请号: | 201110239584.4 | 申请日: | 2011-08-20 |
公开(公告)号: | CN102298446A | 公开(公告)日: | 2011-12-28 |
发明(设计)人: | 赵润林;乔超;戴斌;潘凤 | 申请(专利权)人: | 运城学院 |
主分类号: | G06F3/02 | 分类号: | G06F3/02;G06F3/033;G06F13/38 |
代理公司: | 太原科卫专利事务所(普通合伙) 14100 | 代理人: | 朱源 |
地址: | 044000 山西省运城*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及计算机的鼠标、键盘模拟装置,具体为一种多鼠标/键盘模拟装置。本发明解决了现有计算机的模拟鼠标/键盘控制装置只能控制一个鼠标或键盘以及无法向上层应用反馈操作结果的问题。一种多鼠标/键盘模拟装置,包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成。本发明所述的装置可靠性强,可广泛适用于计算机模拟鼠标/键盘控制。 | ||
搜索关键词: | 一种 鼠标 键盘 模拟 装置 | ||
【主权项】:
一种多鼠标/键盘模拟装置,其特征在于:包括主处理机工作组、若干个从处理机工作组、标准通信总线、主控制机工作组、若干个被控制机工作组、主板、电源、以及软件模块;主处理机工作组、标准通信总线和从处理机工作组均集成在主板上;电源与主板的电源端相连;标准通信总线由总线控制器、以及通信介质构成;主处理机工作组和从处理机工作组均由处理机、通信模块和内部通信模块构成;其中,主处理机工作组的处理机称为主处理机,从处理机工作组的处理机称为从处理机;被控制机工作组包括被控制机、以及通信模块;主控制机工作组包括主控制机、以及通信模块;主处理机工作组的内部通信模块经标准通信总线的总线控制器分别与各个从处理机工作组的内部通信模块相连;主处理机工作组的通信模块与主控制机工作组的通信模块相连,构成物理链路,并在其上根据标准通信协议进行通信;从处理机的通信模块分别与对应的被控制机通信模块相连,构成物理链路,并在其上根据PS/2协议、USB协议或无线通信协议进行通信;主控制机命令包括命令类型和参数对象两个数据项;命令类型为枚举型或整型,包括键盘操作、鼠标操作、获取从处理机配置、更新从处理机配置;参数对象包含对应命令的参数信息;主处理机收到主控制机命令,经过处理后,向对应的从处理机发送对应的主处理机命令,并接收从处理机工作组发来的从处理机消息;从处理机机工作组收到主处理机命令后,进行处理,通过从处理机的通信模块按标准通信协议USB协议、PS/2协议或无线通信协议向被控制机发送相应信息,并接收被控制机的反馈信息,处理后再生成从处理机消息发给主处理机工作组;软件模块包括设于主控制机内的控制机驱动软件模块、设于主处理机内的主处理机软件模块、以及设于从处理机内的从处理机软件模块;控制机驱动软件模块为标准硬件驱动程序,提供配置从处理机和向主处理机发送鼠标/键盘操作命令的软件接口,它由操作系统和上层应用软件调用;主处理机软件模块在加电时自动加载,负责处理主控制机命令和从处理机消息,并向主控制机发送响应主控制机命令或报告主处理机工作组和从处理机工作组状态的主处理机消息,向从处理机发送主处理机命令;从处理机软件模块在加电时自动加载,负责处理主处理机命令,并向主处理机工作组报告主处理机命令的执行结果及其工作状态的从处理机消息;控制机驱动软件模块包含驱动初始化子模块、配置模拟装置子模块、获取模拟装置配置表子模块、发送模拟操作命令子模块、接收主处理机消息子模块、处理主处理机消息子模块、通信子模块、以及模拟装置配置数据模块;控制机驱动软件模块的驱动初始化子模块在操作系统检测到模拟装置硬件后由操作系统调用,从模拟装置配置数据模块中读取初始化数据,生成初始化命令,并调用通信子模块发送初始化命令、接收主处理机工作组消息,根据主处理机工作组消息生成下一个初始化命令,循环处理直到初始化交互完成;控制机驱动软件模块的配置模拟装置子模块由上层应用软件调用,有两个参数,分别为从处理机ID号和模拟设备类型;从处理机ID号指明要配置哪个从处理机工作组;模拟设备类型指明要将该从处理机工作组配置为鼠标模拟器还是键盘模拟器;其工作流程为:1001.生成配置从处理机命令;1002.调用通信子模块向主处理机工作组发送配置从处理机命令;1003.结束操作;控制机驱动软件模块的获取模拟装置配置子模块由上层应用程序调用,参数为主处理机ID号,表示要获取的主处理机的ID号,可用 1或大于最大从处理机ID号的值表示主处理机;工作流程为:1101.检查模拟装置配置数据模块中是否有参数表中的主处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;1102.产生一个空的主控制机命令;1103.将主控制机命令的命令类型设置为获取配置;1104.将参数列表中的主处理机ID号封装为主控制机命令的参数对象;1105.调用通信子模块发送主控制机命令;1106.结束操作;控制机驱动软件模块的发送模拟操作命令子模块由上层应用软件调用,包含的参数有:本命令ID号、从处理机ID号、操作类型和操作描述符;操作类型有键盘操作和鼠标操作;操作类型为键盘操作时操作描述符中包含的信息有操作哪个按键和操作的类型,如按下或者释放;操作类型为鼠标操作时操作描述符包含的信息为各方向移动距离、方向和各按键状态;其工作流程为:1201.检查模拟装置配置数据模块中是否有参数表中的从处理机ID号,如果没有,报错,结束操作;如果有,执行下一步;1202.检查模拟装置配置数据模块中参数表中的从处理机ID号对应的模拟类型是否为键盘;如果不是,报错,结束操作;如果是,执行下一步;1203.检查键盘操作描述符是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;1204.产生一个命令ID号;1205.产生一个空的主控制机命令;1206.将主控制机命令的命令类型设置为键盘操作;1207.将命令ID号、参数列表中的从处理机ID号和键盘操作描述符封装为主控制机命令的参数对象;1208.调用通信子模块发送主控制机命令;1209.将命令ID号放入待反馈命令列表中;1210.结束操作;控制机驱动软件模块的接收主处理机消息子模块由上层应用程序调用,工作流程为:1301.初始化超时标记;1302.调用通信子模块接收主处理机发送的主处理机消息;1303.如果收到,执行步骤1305;否则检测是否超时,如果超时执行步骤1304,否则执行步骤1302;报错,结束操作;以接收到的主处理机消息为参数,调用处理主处理机消息子模块;结束操作;控制机驱动软件模块的处理主处理机消息子模块,参数为主处理机消息;工作流程为:检查参数是否合法;如果不合法,报错,结束操作;如果合法,执行下一步;1402.检查主处理机消息的消息类型,如果消息类型是更新从处理机状态,则执行步骤1403;如果消息类型是命令反馈,则执行步骤1405;1403.更新模拟装置配置数据模块中对应的从处理机状态,结束操作;从主处理机消息中取出参数对象;1405.查找待反馈命令列表中是否有参数对象中包换的命令ID号,没有则结束操作;1406.检查参数对象中的命令执行结果,如果表示执行成功,将该命令 ID号从待反馈命令列表中删除;如果表示执行不成功,则将该命令ID号从待反馈命令列表中移动到未成功执行命令列表中;1407.结束操作;控制机驱动软件模块的通信子模块包括接收和发送两个子单元,根据标准通信协议规定的流程接收和发送数据;控制机驱动软件模块的模拟装置配置数据模块中保存标准通信协议所规定的配置信息,以及各从处理机工作组的状态信息,如待机/正常工作/故障、当前模拟鼠标还是键盘、ID号;主处理机软件模块包括主处理机配置表数据子模块、临时数据子模块、主处理机主函数模块、主处理机初始化子模块、接收主控制机命令子模块、发送主处理机消息子模块、处理主控制机命令子模块、接收从处理机消息子模块、处理从处理机消息子模块、以及发送主处理机命令子模块;主处理机软件模块的主处理机配置表数据子模块为数据模块,保存模拟装置设备描述信息、各从处理机配置信息和状态信息,从机状态信息的初始值为未初始化;主处理机软件模块的临时数据子模块包括待发送主处理机命令列表、待发送主处理机消息列表、待处理从处理机消息列表、待处理主控制机命令列表、以及待反馈命令列表;主处理机软件模块的主处理机主函数子模块在模拟装置加电时自动加载;其工作流程为:2001.检查与主控制机建立通信信道是否已建立,如果尚未建立,则调用主处理机初始化子模块与主控制机建立通信信道;分别执行以下六个步骤,执行顺序可互换:2002.1 调用接收主控制机命令子模块;2002.2调用处理主控制机命令子模块;2002.3调用接收从处理机消息模块;2002.4调用处理从处理机消息模块;2002.5调用发送主处理机消息模块;2002.6调用发送主处理机命令模块;执行步骤2001;主处理机软件模块的主处理机初始化子模块从主处理机配置表数据模块获取配置信息,按标准通信协议从通信模块中读取初始化命令数据包,或写入初始化命令数据包,建立与主控制机的通信信道;主处理机软件模块的接收主控制机命令子模块用于接收主控制机发来的数据,其工作流程为:检测主处理机的通信模块缓冲区中是否有数据,有则执行下一步,没有则执行步骤2104;2102.从主处理机的通信模块缓冲区中读取数据;2103.检查读取到的数据是否为主控制机命令,如果是则执行步骤2103.1,否则执行步骤2104; 2103.1将数据格式化为主控制机命令;2103.2将该主控制机命令添加到待处理主控制机命令列表中;2103.3执行步骤2101;2104.结束操作;主处理机软件模块的发送主处理机消息子模块用于向主控制机发送主处理机消息,工作流程为:2201.检查待发送主处理机消息列表是否为空,如果为空则结束操作,否则执行下一步;2202.从待发送主处理机消息列表中取出一个主处理机消息作为当前主处理机消息;2203.按标准通信协议要求将当前主处理机消息格式化为数据包;2204.向主处理机的通信模块缓冲区中写入数据包;2205.执行步骤2201;主处理机软件模块的处理主控制机命令子模块用于处理已收到的主控制机命令,工作流程为:2301.检查待处理主控制机命令列表是否为空,如果为空,则结束操作,否则执行下一步;2302.从待处理主控制机命令列表中取出一个主控制机命令作为当前主控制机命令;检查命令类型,如果命令类型是键盘操作或鼠标操作,则执行步骤2303. 1;如果是获取从处理机配置,则执行步骤2303.2;如果是更新从处理机配置,则执行步骤2303.3;2303.1检查对应从处理机的模拟类型是否与命令类型一致,如果一致执行步骤2303.1.1,否则执行步骤2303.1.2;2303.1.1 将当前主控制机命令格式化为主处理机命令,并添加到待发送主处理机命令列表;2303.1.2 从当前主控制机命令中取出命令序号,和错误码一起封装成主处理机消息,放入待发送主处理机消息列表中;2303.2从主处理机配置表数据模块中取出对应从处理机的配置信息,封装成主处理机消息,放入待发送主处理机消息列表中;2303.3 检查主控制机命令中的参数对象所列从处理机配置是否与主处理机配置表数据模块中对应从处理机当前的配置信息完全相同,如果完全相同,则执行步骤2303. 3. 1,否则执行步骤2303. 3. 2;2303.3.1从当前主控制机命令中取出命令序号,和执行成功码一起封装成主处理机消息,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机消息列表中;2303.3.2 将命令序号、与对应从处理机当前配置信息不同的配置项、以及对应从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;执行步骤2301;主处理机软件模块的接收从处理机消息子模块用于接收从处理机发来的从处理机消息,其工作流程为:2401.根据标准通信协议检测是否有从处理机请求通信,如果有执行下一步,否则结束操作;2402.根据标准通信协议接收从处理机发来的数据;2403.检查收到的数据是否为从处理机消息,是则执行下一步,否则执行步骤2405:2404.将收到的数据格式化为从处理机消息,放入待处理从处理机消息列表中;2405.执行步骤2401;主处理机软件模块的处理从处理机消息子模块用于处理已收到的从处理机消息,工作流程为:检查待处理从处理机消息列表是否为空,如果为空,则结束操作,否则执行下一步:从待处理从处理机消息列表中取出一个从处理机消息作为当前从处理机消息;检查消息类型,如果是获取配置信息,则执行步骤2503.1;如果是命令反馈,则执行步骤2503.2;2503.1取出对应从处理机的配置信息,将其和从处理机ID封装成主处理机命令,将对应从处理机的工作状态改为“繁忙”,放入待发送主处理机命令列表;2503.2 根据消息中的原命令类型和参数对象修改对应从处理机的工作状态,编写对应的主处理机消息,并将其放入待发送主处理机消息列表中;2504. 结束操作;主处理机软件模块的发送主处理机命令子模块用于向从处理机发送主处理机命令,工作流程为:检查待发送主处理机命令列表是否为空,如果为空则结束操作,否则执行下一步;从待发送主处理机命令列表中取出一个主处理机命令作为当前主处理机命令;检查主处理机配置表数据模块中对应从处理机的工作状态,如果状态为“就绪”,则执行下一步,否则将其重新放回待发送主处理机命令列表,执行步骤2601;按标准通信协议要求将当前主处理机命令格式化为数据包;根据标准通信协议向从处理机发送数据包;将对应从处理机的工作状态改为“繁忙”;将当前主处理机命令放入待反馈命令列表中;2607.执行步骤2601;从处理机软件模块包括从处理机配置数据子模块、从处理机主程序子模块、初始化从处理机子模块、接收主处理机命令子模块、处理主处理机命令子模块、发送从处理机消息子模块、发送键盘/鼠标命令子模块;从处理机软件模块的从处理机配置数据子模块保存从处理机的配置信息,包括设备描述符、从处理机ID号、模拟类型和待处理主处理机命令、待发送从处理机消息、键盘/鼠标命令;从处理机软件模块的从处理机主程序子模块在从处理机加电时自动执行,工作流程为:调用初始化从处理机子模块;调用接收主处理机命令子模块,检查是否接收到主处理机命令,如果接收到了执行下一步,否则执行步骤3002;调用处理主处理机命令子模块,处理接收到的主处理机命令;调用发送键盘/鼠标命令子模块;调用发送从处理机消息子模块;执行步骤3002;从处理机软件模块的初始化从处理机子模块负责从主处理机获取配置信息,并与被控制机建立通信信道,工作流程为:编写表示请求从处理机配置信息的从处理机消息;调用发送从处理机消息子模块,发送从处理机消息;循环调用接收主处理机命令模块,直到收到包含本从处理机配置信息的主处理机命令,执行下一步;根据主处理机命令中包含的从处理机配置信息更新从处理机配置数据子模块中相应的数据;根据从处理机配置信息和标准通信协议从通信模块的缓冲区中读取和写入初始化数据包;3106.检测是否正确建立与被控制机之间的通信信道,如果没有,执行步骤3105,否则执行下一步;3107.编写表示从处理机工作状态为就绪的从处理机消息;3108.调用发送从处理机消息子模块,发送从处理机消息;3109.结束操作;从处理机软件模块的接收主处理机命令子模块根据标准通信协议检测主处理机是否请求发送数据,如果检测到请求,根据标准通信协议规定接收数据,接收完数据后,将其格式转化为主处理机命令形式记录在从处理机数据子模块中;从处理机软件模块的处理主处理机命令子模块从从处理机数据子模块中取出待处理主处理机命令,判断命令类型,如果是更新配置信息,则根据主处理机命令中包含的配置信息更新对应的配置信息项,编写用于反馈的从处理机消息,并调用发送从处理机消息子模块发送该从处理机消息;然后重新启动本从处理机;如果是键盘/鼠标操作命令,根据主处理机命令包含的参数对象编写对应的键盘/鼠标操作命令,并将其写入从处理机数据子模块中;然后清除从处理机数据子模块中的待处理主处理机命令数据项;从处理机软件模块的发送从处理机消息子模块从从处理机数据子模块中取出待发送从处理将消息,按标准通信协议将其发送给主处理机;然后将从处理机数据子模块中的待发送从处理机消息清除;从处理机软件模块的发送键盘/鼠标命令子模块按标准通信协议把从处理机数据模块中的待发送键盘/鼠标命令封装为标准的数据包,放入通信模块的缓冲区中;检测是否发送成功;编写表示发送成功或失败的从处理机消息,并将其放任从处理机数据子模块中;清除从处理机数据子模块中的待发送键盘/鼠标命令。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于运城学院,未经运城学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110239584.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种覆晶插件式发光二极管芯片结构及其制造方法
- 下一篇:紧套光缆光纤连接器