一种密码键盘USB通信异常恢复方法及系统与流程

文档序号:11133795阅读:1273来源:国知局
一种密码键盘USB通信异常恢复方法及系统与制造工艺

本发明涉及USB通信技术领域,特别是涉及一种密码键盘USB通信异常恢复方法及系统。



背景技术:

密码键盘是金融收银系统必不可少的计算机外部设备之一,广泛应用在通讯、政府、交通、政府、工商、税务、超市等服务行业,配合银行系统、POS机和管理系通中使用,主要是用来输入密码。在现有的密码键盘中,除了密码输入模块,还集成有签字板模块、声波模块和扫描模块等。在通信过程中,终端和外置密码键盘的连接正常,但是由于硬件的干扰或者周边环境的影响,使得终端和外置密码键盘出现短暂的断开,而后马上又恢复正常的情况,此时终端和外置密码键盘虽然连接正常,但是通信服务已断开。

在现有技术中,POS主机主要通过USB口连接外置密码键盘,通过USB进行通信业务数据传输,POS主机和密码键盘在通信拷机过程中,因为受到干扰导致USB断开连接,导致通信过程中出现各个底层驱动模块无法接收到响应数据,返回超时错误,使得应用程序因为非人为干扰,导致业务中断,从而影响了应用程序正常运行。



技术实现要素:

为此,需要提供一种USB通信恢复方法及系统,用于解决现有USB设备因受到干扰,而短时间断开,导致通信异常与中断的问题。

为实现上述目的,发明人提供了一种密码键盘USB通信异常恢复方法,包括以下步骤:

按数据发送的先后顺序,在密码键盘与连接设备所发送的数据中插入帧号;

在数据接收过程中,密码键盘与连接设备返回每帧数据的应答信息,应答信息包括数据接收成功、数据接收失败和数据接收超时;

检测密码键盘与连接设备的USB通信是否异常,若是,则通过通信重连机制再次建立密码键盘与连接设备的通信连接;

在通信连接再次建立后,密码键盘与连接设备通过所接收到的应答信息以及数据的帧号,判断数据是否重复接收,以及通信对方数据接收情况,并丢弃重复数据,以及进行数据重发。

进一步的,所述通信重连机制包括:

判断密码键盘与连接设备是否断开连接,若是,则检测密码键盘与连接设备是否已连接,若否,则退出重连机制;

若检测到密码键盘与连接设备是否已连接,则密码键盘与连接设备重新握手;

握手成功后,判断密码键盘与连接设备双向认证是否成功,若是,则恢复通信,若否,则拒绝通信。

进一步的,在密码键盘与连接设备通过通信重连机制再次建立通信连接后,密码键盘通过广播方式向所包含的各底层驱动模块发送当前USB通信连接状态,其中,所述各底层驱动模块包括按键输入底层驱动模块、签字板底层驱动模块和扫描枪底层驱动模块。

进一步的,在检测到USB通信异常时,密码键盘通过主动关闭USB通信后,重新打开USB通信,再次建立密码键盘与连接设备的通信连接。

为实现上述目的,发明人还提供了一种密码键盘USB通信异常恢复系统,包括插入单元、应答单元、通信重连单元和处理单元;

所述插入单元用于按数据发送的先后顺序,在密码键盘与连接设备所发送的数据中插入帧号;

所述应答单元用于在数据接收过程中,密码键盘与连接设备返回每帧数据的应答信息,应答信息包括数据接收成功、数据接收失败和数据接收超时;

所述通信重连单元用于检测密码键盘与连接设备的USB通信是否异常,若是,则通过通信重连机制再次建立密码键盘与连接设备的通信连接;

所述处理单元用于在通信连接再次建立后,密码键盘与连接设备通过所接收到的应答信息以及数据的帧号,判断数据是否重复接收,以及通信对方数据接收情况,并丢弃重复数据,以及进行数据重发。

进一步的,所述通信重连单元包括连接判断子单元、握手子单元和认证子单元;

所述连接判断子单元用于判断密码键盘与连接设备是否断开连接,若是,则检测密码键盘与连接设备是否已连接,若否,则退出重连机制;

所述握手子单元用于在检测到密码键盘与连接设备已连接时,密码键盘与连接设备重新握手;

所述认证子单元用于在握手成功后,判断密码键盘与连接设备双向认证是否成功,若是,则恢复通信,若否,则拒绝通信。

进一步的,还包括广播单元,所述广播单元用于在密码键盘与连接设备通过通信重连机制再次建立通信连接后,密码键盘通过广播方式向所包含的各底层驱动模块发送当前USB通信连接状态,其中,所述各底层驱动模块包括按键输入底层驱动模块、签字板底层驱动模块和扫描枪底层驱动模块。

进一步的,所述通信重连单元还用于在检测到USB通信异常时,密码键盘通过主动关闭USB通信后,重新打开USB通信,再次建立密码键盘与连接设备的通信连接。

区别于现有技术,上述技术方案通过在发送的数据中插入帧号,以及建立数据应答机制和通信重连机制,能够在通信中断后,重新建立通信服务连接,并有效解决了密码键盘USB通信因受干扰短时间中断后,相同数据重复接收和发送,引发通信双方不同步或者重复操作问题。

附图说明

图1为具体实施方式所述密码键盘USB通信异常恢复方法的流程图;

图2为具体实施方式所述数据发送与应答的示意图;

图3为具体实施方式所述通信重连机制的流程图;

图4为具体实施方式所述连接设备发送数据的流程图;

图5为具体实施方式所述连接设备数据接收响应处理流程;

图6为具体实施方式所述密码键盘USB通信异常恢复系统模块框图。

附图标记说明:

10、插入单元;

20、应答单元;

30、通信重连单元;

40、处理单元。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1,本实施例一种密码键盘USB通信异常恢复方法,该密码键盘USB通信异常恢复方法,包括以下步骤:

S101、按数据发送的先后顺序,在密码键盘与连接设备所发送的数据中插入帧号。其中,所述连接设备即为密码键盘所连接的设备,在本实施例中,所述连接设备优选为POS机。在本实施例中,所述密码键盘设有按键输入模块,在其他实施例中,所述密码键盘还包括有签字板模块和扫描枪模块,各模块分别包括硬件电路以及对应的底层驱动模块,其中,按键输入模块用于获取输入的密码等数字信息,所述签字板模块用于获取用户的签名等信息,所述扫描枪用于扫描一维码或二维码待条码信息。所述按键输入模块、签字板模块和扫描枪模块共用一个USB通信接口,各模块通过该USB通信接口进行数据收发。各底层驱动模块在与连接设备(即主机端)正常通信时,在各自所述发送的数据中插入了帧号,其中,为了便于区别不同数据,不同数据的帧号是不同的。例如发送的数据可按发送的先后顺序递增帧号。

S102、在数据接收过程中,密码键盘与连接设备返回每帧数据的应答信息,应答信息包括数据接收成功、数据接收失败和数据接收超时。所述应答信息是由USB通信协议进行发送,其中,数据发送与应答的示意图如图2所示,其中,连接设备为具体为POS机。密码键盘和连接设备在每发送或接收到响应数据后,都通过应答信息ACK来确定是否对方已收到数据,基于以上的通信流程,USB通信断开时,依据ACK接收情况进行各种USB通信错误情况判断,并进行相应的处理。

S103、检测密码键盘与连接设备的USB通信是否异常,若是,则通过通信重连机制再次建立密码键盘与连接设备的通信连接。为了使受干扰而断开的通信服务能够及时的恢复,本技术方案通过通信重连机制再次建立密码键盘与连接设备的通信连接。请参阅图3,当通信服务检测到发送数据或接收数据异常时,通信服务支持自动重连检测,当连接设备和密码键盘重新连接好时,连接设备与密码键盘重新进行握手,以及在握手成功后,进行通信双方进行双向认证,认证通过扣通信服务恢复通信功能,而当双向认证失败时,则拒绝恢复通信服务。

S104、在通信连接再次建立后,密码键盘与连接设备通过所接收到的应答信息以及数据的帧号,判断数据是否重复接收,以及通信对方数据接收情况,并丢弃重复数据,以及进行数据重发。当所接收到的数据的帧号重复了,则说明该数据已重复接收,需要将重复数据丢弃;而当接收到的应答信息为接收超时或接收失败等,则需要重新发送该数据。

在上述实施例中,密码键盘和连接设备在发送的数据中插入帧号,以及建立数据应答机制和通信重连机制,能够在通信中断后,重新建立通信服务连接,通过所述应答信息可知道发送出去的数据的接收情况,通过所述帧号可判断是否重复接收数据,因此在通信中断后,可及时的建立连接与通信服务,并能够有效解决了相同数据重复接收和发送,引发通信双方不同步或者重复操作问题。

本实施例中,帧号是由USB通信接口协议插入,而不需要各底层驱动模块进行插入帧号操作。在多个模块共用USB通信接口的情况下,由USB通信接口协议进行帧号插入,各底层驱动模块无需进行升级通信方面的程序升级。

在上述实施例中,所述密码键盘与连接设备除了在重新建立密码键盘与连接设备的通信连接时,进行数据的重发以及丢弃重复数据,在通信服务未断开情况下,只是应答信息显示数据接收失败或应答超时时,也进行数据的重和。请参阅图4,一实施例中,连接设备发送数据的流程图。连接设备发送数据包括步骤:

S401、连接设备根据接收到的应答信息,判断发送的数据是否接收失败,若否,则通信正常,若是,则转步骤S402;

S402、判断是否支持数据重发,若否,则转步骤S405;若支持数据重发,则转步骤S403;

S403、判断数据重发次数是否已满,若是,转步骤S405,若否,则转步骤S404;

S404、帧号保持不变,重发该数据;数据重发后转回至步骤S401;

S405、更新帧号接着发送下一数据,通信超时退出。

请参阅图5,为连接设备数据接收响应处理流程。该连接设备数据接收响应处理流程包括:

S501、判断是否支持数据重发机制,若是,则转步骤S502,若否,则转步骤S505;处理响应数据,更新帧号,即帧号加1;

S502、提取数据的帧号,然后转步骤S503;

S503、判断帧号是否有重复,即是否一致,若是,则转步骤S504,若否,则转步骤S505;

S504、数据重复接收,丢弃重复接收的数据;

S505、处理响应数据,更新帧号,即帧号加1。

为了支持各个底层驱动实时了解当前USB的连接状态,在上述实施例中,在密码键盘与连接设备通过通信重连机制再次建立通信连接后,密码键盘还可通过广播方式向所包含的各底层驱动模块发送当前USB通信连接状态,从而确保底层驱动模块实时掌握到当前的通信状态。

在USB通信中,密码键盘端作为USB通信的一方,也需要能够进行通信异常检测功能,并进行重连处理。密码键盘通信重连机制和流程与连接设备的通信重连机制一致,只是由于密码键盘端直接和USB硬件打交道,密码键盘端没有通信服务自动重连线程。因此密码键盘的重连机制如下:主动断开USB,再重新打开USB。当密码键盘主动断开USB连接时,连接设备能很快检测到异常,并自动进入自动重连检测和恢复;这样可以使得双方能尽快同步通信状态;通过通信协议的帧号,来区分是否是重复数据。

请参阅图6,实施例一种密码键盘USB通信异常恢复系统,该密码键盘USB通信异常恢复系统,包括插入单元10、应答单元20、通信重连单元30和处理单元40;

所述插入单元10用于按数据发送的先后顺序,在密码键盘与连接设备所发送的数据中插入帧号;

所述应答单元20用于在数据接收过程中,密码键盘与连接设备返回每帧数据的应答信息,应答信息包括数据接收成功、数据接收失败和数据接收超时;

所述通信重连单元30用于检测密码键盘与连接设备的USB通信是否异常,若是,则通过通信重连机制再次建立密码键盘与连接设备的通信连接;

所述处理单元40用于在通信连接再次建立后,密码键盘与连接设备通过所接收到的应答信息以及数据的帧号,判断数据是否重复接收,以及通信对方数据接收情况,并丢弃重复数据,以及进行数据重发。

实施例中,密码键盘和连接设备在发送的数据中插入帧号,以及建立数据应答机制和通信重连机制,能够在通信中断后,重新建立通信服务连接,通过所述应答信息可知道发送出去的数据的接收情况,通过所述帧号可判断是否重复接收数据,因此在通信中断后,可及时的建立连接与通信服务,并能够有效解决了相同数据重复接收和发送,引发通信双方不同步或者重复操作问题。

本实施例中,帧号是由USB通信接口协议插入,而不需要各底层驱动模块进行插入帧号操作。在多个模块共用USB通信接口的情况下,由USB通信接口协议进行帧号插入,各底层驱动模块无需进行升级通信方面的程序升级。

在一实施例中,所述通信重连单元包括连接判断子单元、握手子单元和认证子单元;

所述连接判断子单元用于判断密码键盘与连接设备是否断开连接,若是,则检测密码键盘与连接设备是否已连接,若否,则退出重连机制;

所述握手子单元用于在检测到密码键盘与连接设备已连接时,密码键盘与连接设备重新握手;

所述认证子单元用于在握手成功后,判断密码键盘与连接设备双向认证是否成功,若是,则恢复通信,若否,则拒绝通信。

为了支持各个底层驱动实时了解当前USB的连接状态,所述的密码键盘USB通信异常恢复系统还包括广播单元,所述广播单元用于在密码键盘与连接设备通过通信重连机制再次建立通信连接后,密码键盘通过广播方式向所包含的各底层驱动模块发送当前USB通信连接状态,其中,所述各底层驱动模块包括按键输入底层驱动模块、签字板底层驱动模块和扫描枪底层驱动模块。

所述通信重连单元还用于在检测到USB通信异常时,密码键盘通过主动关闭USB通信后,重新打开USB通信,再次建立密码键盘与连接设备的通信连接。在USB通信中,密码键盘端作为USB通信的一方,也需要能够进行通信异常检测功能,并进行重连处理。密码键盘通信重连机制和流程与连接设备的通信重连机制一致,只是由于密码键盘端直接和USB硬件打交道,密码键盘端没有通信服务自动重连线程。因此密码键盘的重连机制如下:主动断开USB,再重新打开USB。当密码键盘主动断开USB连接时,连接设备能很快检测到异常,并自动进入自动重连检测和恢复;这样可以使得双方能尽快同步通信状态;通过通信协议的帧号,来区分是否是重复数据。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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