一种与主机驱动实现双向信息交互的自定义USB鼠标和键盘的系统及方法与流程

文档序号:11199134阅读:1714来源:国知局
一种与主机驱动实现双向信息交互的自定义USB鼠标和键盘的系统及方法与流程

本发明涉及usb通信领域,尤其是一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的系统及方法。



背景技术:

现在很多usb鼠标和键盘都有自定义功能,即将鼠标和键盘中的某些按键功能改为用户设定的其他鼠标和键盘或组合按键等功能,一般主机驱动软件对usb鼠标和键盘只做单向的控制,没有双向的信息交互。

第一种方法是主机驱动软件通过特定指令将一些配置信息写入usb鼠标和键盘的存储器中,usb鼠标和键盘按键动作后会从存储器中读取对应的功能信息,然后将对应功能发送至主机。该方法需要存储量较大的存储器,成本较高。

第二种方法是主机驱动软件收到鼠标和键盘的动作后,屏蔽硬件鼠标和键盘功能,用软件方法发送自定义按键至系统。此方法由于不是基于底层驱动工作,很容易被第三方软件屏蔽,安全性低。

第三种方法是主机驱动软件在底层虚拟鼠标和键盘,在收到鼠标和键盘动作后,屏蔽硬件鼠标和键盘功能,通过底层虚拟鼠标和键盘将自定义功能发送给主机,该方法需要很好的兼容性,一旦底层虚拟硬件驱动兼容性不好,很容易让主机系统蓝屏,甚至损坏主机硬件。而且软件编程人员必须有底层驱动知识才能编写驱动,有一定的复杂性。



技术实现要素:

为解决上述问题,本发明提供一种安全性高、成本低、采用usb标准驱动工作的一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的系统及方法,具体技术方案为:

一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的系统,包括设置在主机中的主机系统、主机驱动软件、主机系统usb驱动以及设置在usb鼠标和键盘中的按键模块、usb发送模块、usb解包校验模块和usb按键功能分配模块;所述主机驱动软件、主机系统usb驱动和主机系统依次连接,所述主机系统usb驱动通过usb总线分别与usb解包校验模块和usb发送模块连接;所述usb解包校验模块分别与usb按键功能分配模块和按键模块连接,所述按键模块与usb发送模块连接;所述主机系统为安装在主机端的操作系统,包括windows、linux和macos;所述主机驱动软件是基于主机系统工作,在主机系统下编程开发的软件,主机驱动软件与主机系统usb驱动通信,主机系统usb驱动与usb鼠标和键盘通信,从而间接与usb鼠标和键盘通信;所述usb按键功能分配模块通过接收usb指令来分配usb鼠标和键盘各个按键功能;用户在主机驱动软件中设定自定义功能,所述主机驱动软件通过主机系统usb驱动将指令和按键分配信息发送至usb解包校验模块;所述usb解包校验模块进行解包校验,在校验正确后,将指令和按键分配信息传输到usb按键功能分配模块,通过按键分配信息分配到按键模块,或者将解包校验得到的按键信息直接传输给按键模块;所述按键模块将按键信息解析成鼠标和键盘的按键,通过usb发送模块发送至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键。

一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的方法,包括以下步骤:

s1、根据用户在主机驱动软件上设定的按键功能,主机驱动软件通过主机系统usb驱动将指令1和按键分配信息发送至usb鼠标和键盘;

s2、usb鼠标和键盘收到数据后,通过usb解包校验模块进行解包校验,在校验正确后,将指令1和按键分配信息传输到usb按键功能分配模块,通过按键分配信息分配usb鼠标和键盘中的各个按键功能;

s3、usb鼠标和键盘等待按键动作即按键按下或按键释放,按键动作触发后,先确定分配的功能,如为自定义功能按键,则通过usb发送指令2、按键序号和按键状态至主机系统usb驱动,如为鼠标和键盘硬件内置功能,则直接发送按键至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键;

s4、主机驱动软件在收到主机系统usb驱动中的指令2、按键序号和按键状态后,根据按键序号和按键状态查找对应的用户自定义按键的功能即组合按键、多媒体按键、按键按下、按键释放;

s5、主机驱动软件通过主机系统usb驱动发送指令3和用户自定义按键功能中的一个按键信息至usb鼠标和键盘,一个按键信息为按键按下或按键释放;

s6、usb鼠标和键盘收到的usb数据在经过usb解包校验模块解包校验,得到含指令3的数据后,则将按键信息传输至按键模块,按键模块将按键信息解析成鼠标和键盘的按键,通过usb发送模块发送至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键;

s7、若所有自定义按键发送完成,发送指令4至usb鼠标和键盘,若还有其他按键发送,则主机驱动软件根据用户自定义功能中设定的按键延迟等待一段时间后,继续下一个自定义按键,重复步骤s5-s7;

s8、usb鼠标和键盘收到指令4后,结束usb鼠标和键盘自定义按键发送,一次完整的自定义功能按键工作完成;

s9、回到步骤s1,并等待下一次按键动作触发。

其中,所述步骤s1-s9中usb鼠标和键盘采用中断方式工作,所有操作都在usb总线空闲时工作,不影响鼠标和键盘的正常工作。

与现有技术相比添加usb按键功能分配模块,通过接收usb指令来分配usb鼠标和键盘各个按键功能,现有技术的各个按键功能无法修改,按键动作会发送对应的按键功能至主机。

用户在主机驱动软件中设定的自定义功能通过指令方式发送给usb鼠标和键盘,再通过usb鼠标和键盘解包校验后,将自定义功能发送给主机。此过程采用分时分段方式信息交互方法,不影响usb鼠标和键盘的正常工作。该方法且不需要额外的存储器,成本低;主机驱动软件使用主机系统usb驱动作为底层驱动,无需在底层虚拟鼠标和键盘,兼容性好。

主机系统usb驱动是连接usb鼠标和键盘与主机驱动软件的桥梁,主机驱动软件能够从主机系统usb驱动获取usb鼠标和键盘的数据包,并可通过主机系统usb驱动对usb鼠标和键盘发送数据。用户可通过主机驱动软件自由分配各按键功能,如鼠标按键、键盘按键、各种组合按键、多媒体按键等。如按键功能为组合按键、多媒体按键等非硬件内置功能按键,则将该按键分配为自定义功能按键。自定义功能按键中的组合按键,一般包含按键和按键之间的延迟。

与现有技术相比本发明具有以下有益效果:

本发明提供的一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的系统及方法使用软硬件双向信息交互方式工作,安全性高,避免被第三方软件恶意屏蔽,无需存储器,节省生产成本,采用usb标准驱动工作,不要额外编写底层驱动程序,兼容性好,自定义功能受主机驱动软件控制,灵活、方便。

附图说明

图1是本发明的系统结构示意图;

图2是本发明的流程示意图。

具体实施方式

现结合附图对本发明作进一步说明。

实施例一

如图1和图2所示,一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的系统,包括设置在主机中的主机系统、主机驱动软件、主机系统usb驱动以及设置在usb鼠标和键盘中的按键模块、usb发送模块、usb解包校验模块和usb按键功能分配模块;

所述主机驱动软件、主机系统usb驱动和主机系统依次连接,所述主机系统usb驱动通过usb总线分别与usb解包校验模块和usb发送模块连接;所述usb解包校验模块分别与usb按键功能分配模块和按键模块连接,所述按键模块与usb发送模块连接;

所述主机系统为安装在主机端的操作系统,包括windows、linux和macos;所述主机驱动软件是基于主机系统工作,在主机系统下编程开发的软件,主机驱动软件与主机系统usb驱动通信,主机系统usb驱动与usb鼠标和键盘通信,从而间接与usb鼠标和键盘通信;所述usb按键功能分配模块通过接收usb指令来分配usb鼠标和键盘各个按键功能;

用户在主机驱动软件中设定自定义功能,所述主机驱动软件通过主机系统usb驱动将指令和按键分配信息发送至usb解包校验模块;所述usb解包校验模块进行解包校验,在校验正确后,将指令和按键分配信息传输到usb按键功能分配模块,通过按键分配信息分配到按键模块,或者将解包校验得到的按键信息直接传输给按键模块;所述按键模块将按键信息解析成鼠标和键盘的按键,通过usb发送模块发送至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键。

实施例二

如图1和图2所示,一种与主机驱动实现双向信息交互的自定义usb鼠标和键盘的方法,包括以下步骤:

s1、根据用户在主机驱动软件上设定的按键功能,主机驱动软件通过主机系统usb驱动将指令1和按键分配信息发送至usb鼠标和键盘;

s2、usb鼠标和键盘收到数据后,通过usb解包校验模块进行解包校验,在校验正确后,将指令1和按键分配信息传输到usb按键功能分配模块,通过按键分配信息分配usb鼠标和键盘中的各个按键功能;

s3、usb鼠标和键盘等待按键动作即按键按下或按键释放,按键动作触发后,先确定分配的功能,如为自定义功能按键,则通过usb发送指令2、按键序号和按键状态至主机系统usb驱动,如为鼠标和键盘硬件内置功能,则直接发送按键至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键;

s4、主机驱动软件在收到主机系统usb驱动中的指令2、按键序号和按键状态后,根据按键序号和按键状态查找对应的用户自定义按键的功能即组合按键、多媒体按键、按键按下、按键释放;

s5、主机驱动软件通过主机系统usb驱动发送指令3和用户自定义按键功能中的一个按键信息至usb鼠标和键盘,一个按键信息为按键按下或按键释放;

s6、usb鼠标和键盘收到的usb数据在经过usb解包校验模块解包校验,得到含指令3的数据后,则将按键信息传输至按键模块,按键模块将按键信息解析成鼠标和键盘的按键,通过usb发送模块发送至主机系统usb驱动,由主机系统usb驱动直接解析按键信息,并由主机系统获取按键;

s7、若所有自定义按键发送完成,发送指令4至usb鼠标和键盘,若还有其他按键发送,则主机驱动软件根据用户自定义功能中设定的按键延迟等待一段时间后,继续下一个自定义按键,重复步骤s5-s7;

s8、usb鼠标和键盘收到指令4后,结束usb鼠标和键盘自定义按键发送,一次完整的自定义功能按键工作完成;

s9、回到步骤s1,并等待下一次按键动作触发。

其中,所述步骤s1-s9中usb鼠标和键盘采用中断方式工作,所有操作都在usb总线空闲时工作,不影响鼠标和键盘的正常工作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1