一种用于智能POS机的基于串口的双向并发通讯方法与流程

文档序号:14250814阅读:521来源:国知局
一种用于智能POS机的基于串口的双向并发通讯方法与流程
本发明涉及网络通信技术,具体涉及智能pos机的通信技术。
背景技术
:一般智能pos机基本是基于android系统,同时为了保证安全性,都会增加一个安全芯片,然后通过安全芯片的密钥管理保证智能pos的交易安全性。而android系统芯片与安全芯片一般采用串口通讯,且通讯方法为由android系统发起命令,安全芯片接收命令后,处理完成,才返回android系统。在此过程中,android系统中的app一直保持阻塞状态。目前基于android系统的智能pos机内app与安全芯片的串口通讯方式存在以下问题。1.通讯效率低。每次通讯过程中,只有该指令返回结果后,才能进行下一个指令处理。而android系统是一个并行计算的系统,导致多个app只能排队处理。影响效率。2.不能双向通讯。由于采用阻塞方式。发送指令和返回指令必须完全匹配。这样当安全芯片检测出问题,如:由于安全保护导致的安全触发,独立给安全芯片供电的电池电压低等原因不能使用时,无法向外部传递信息。这种状态只能有上层app查询才能获取。导致用户体验较差。3.串口通讯异常时,无法第一时间检查。串口通讯时,总会有误码率。当误码情况出现时,上层应用收到后,作为接收到返回信息处理。导致处理失败。技术实现要素:针对现有基于android系统的智能pos机中串口通讯方案所存在的问题,需要一种新的智能pos机用通讯方案,以提高智能pos机的通讯效率。为此,本发明的目的在于提供一种用于智能pos机的基于串口的双向并发通讯方法,保证智能pos机的通讯效率和安全性。为了达到上述目的,本发明提供的用于智能pos机的基于串口的双向并发通讯方法,其启用接收线程和发送线程,单独处理数据发送和数据接收;建立数据发送队列和接收队列,将发下去的数据和处理后回来的数据进行数据匹配。进一步的,由业务将需要下发的数据写入到发送队列,数据发送线程轮询检查发送队列,在查询到发送队列存在数据,则进行完整性检查;在数据完整性检查完成后,通过串口向安全芯片发送数据,在安全芯片接收数据成功后,数据发送线程删除发送队列,并将发送的数据加上后续处理的回调句柄一起插入到接收队列;进一步的,系统通过接收线程获取安全芯片接收数据后,进行业务处理并通过串口返回的数据;接收线程通过报文唯一索引号,检索接收队列,查询到数据后,通过回调句柄返回数据给上层。进一步的,当安全芯片有主动上送的信息时,安全芯片通过串口直接发送指令数据到上层,系统接收线程接收数据,接收线程通过指令比对,确定为主动状态上送,则通过预先设定的上送流程进行处理。进一步的,系统提供外部订阅接口,如果相应的业务需要相应的上送信息,通过接口订阅消息,进行消息注册,并设置业务接收消息的回调函数;当收到上送消息时,检查订阅确定订阅该消息的业务,并通过该业务设置的回调函数返回该信息。进一步的,将发送指令进行分类,以此来构建二维表进行指令下发控制。本方案通过设置两个线程(接收线程和发送线程),两个队列(发送队列和接收队列)处理,解决了异步通讯发送和接收问题,提高智能pos机内基于系统的业务与安全芯片间的串口通讯效率。再者,本方案通过对指令进行分类,通过二维表对能下发和不能下发指令进行甄别,保障安全芯片处理的连续性和安全性。附图说明以下结合附图和具体实施方式来进一步说明本发明。图1为本发明实例中app数据处理的流程图;图2为本发明实例中串口发送数据的流程图;图3为本发明实例中串口接收数据的流程图。具体实施方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。本方案提供用于智能pos机的基于串口的双向并发通讯方法,其通过设置两个线程,两个队列处理,以此来解决异步通讯发送和接收问题。据此,本方案启用接收线程和发送线程,以将数据发送和数据接收单独处理,互不干扰;同时本方案还建立数据发送队列和接收队列,以将发下去的数据和处理后回来的数据进行数据匹配,由此来实现基于串口的双向并发通讯。据此本用于智能pos机的基于串口的双向并发通讯方案进行数据下发和接收数据的处理过程如下。1)数据下发智能pos机系统(如安卓系统)内的业务将需要下发的数据写入到发送队列,数据发送线程轮询检查发送队列,如果查询到发送队列存在数据,就先进行完整性检查,如报文唯一索引号,报文格式等是否符合要求。数据完整性检查完成后,通过串口向安全芯片发送数据,在安全芯片接收数据成功后,数据发送线程删除发送队列,并将发送的数据加上后续处理的回调句柄一起插入到接收队列。2)接收数据与之配合的,安全芯片接收数据后,进行业务处理,处理成功后,通过串口返回给智能pos机系统(如安卓系统),这里返回的报文数据包括下发的报文唯一索引号;系统通过接收线程获取安全芯片返回的数据;接收线程通过报文唯一索引号,检索接收队列,查询到数据后,通过回调句柄返回数据给上层。在本方案中,当安全芯片有主动上送的信息时,安全芯片通过串口直接发送指令数据到上层,系统接收线程接收数据,接收线程通过指令比对(如通过解析报文头),确定为主动状态上送,并通过预先设定的上送流程进行处理。其中,系统提供外部订阅接口,如果相应的app需要相应的上送信息,通过外部订阅接口订阅消息,进行消息注册;并设置app接收消息的回调函数。由此,当系统收到上送消息时,检查订阅该消息有那些app,并通过该app设置的回调函数返回该信息。作为举例,当安全芯片有主动上送的信息时,上送的信息包括:(1)纽扣电池电压不足;为了安全需要,安全芯片在外部没有供电情况下,能独立工作,这样就需要采用纽扣电池进行供电,当纽扣电池不足时需要及时提醒(2)安全芯片触发;由于智能pos是安全设备,当安全芯片觉得存在安全隐患时,会删除敏感信息,如密钥等。(3)打印纸缺纸。本方案针对由于安全芯片处理能力有限,前置指令处理时可能导致后续指令无法处理的问题,通过对指令进行分类,通过二维表对能下发和不能下发指令进行甄别,保障安全芯片处理的连续性和安全性。为此本方案将发送指令进行分类,针对分类的发送指令建立相应的二维表,通过该二维表来控制已经下发指令和将要下发指令,避免两者产生冲突,这样可以控制指令下发。作为举例,本方案将下发信息进行如下分类,以此来构建二维表进行指令下发控制。1.系统控制指令指令包括:系统复位,系统重启,在线升级,设置设备参数,恢复出厂设置等。指令特点:这种指令下发后,后续指令不能进行下发。需要重新初始化。2.打印类指令包括:文本打印,图片打印,二维码打印等。指令特点:由于安全芯片的资源有限,打印缓存不会太大,当前面有打印指令时,后续打印指令要等待完成打印确认才能进行转发。同时由于处理原因,在打印时,不能处理卡指令。3.卡处理指令包括:ic卡,psam卡,非接卡,磁条卡等。指令特点:一般只能进行一个卡业务处理。在进行卡处理时,不能进行打印处理。4.安全处理指令包括:加解密,随机数等。指令特点:进行安全处理时,会用到安全模块,其他安全指令不能下发。5.信息类指令包括:设备sn,ksn,版本号等。指令特点:获取特征信息。系统将下发指令后,记录当前指令的类型和状态,当返回数据时,对指令类型进行恢复处理。当下一条处理时,会获取当前指令类型,与前面未返回的指令类型状态进行匹配,来决定能不能下发。作为举例,本方案设定如下二维表:系统控制指令打印类卡处理信息类安全处理系统控制指令00000打印类00011卡处理00011信息类01111安全处理01111针对上述的基于串口的双向并发通讯方案,以下通过应用实例进行说明。参见图1,其所示为基于上述的基于串口的双向并发通讯方案,运行在智能pos机内的android系统中的app进行数据处理的流程,由图可知,整个处理流程如下:(1)查询数据接收队列是否有数据;(2)若接收队列中存在数据,则解析数据包头;(3)根据解析的析数据包头来确定处理类型:1.需要emv流程处理;2.事件注册;3.透传数据;若为需要emv流程处理,则转入步骤(4);若为事件注册,则转入步骤(16);若为透传数据,则转入步骤(20);(4)检查appid及流程状态,确定是否与当前操作冲突:若冲突,转入步骤(5);若不冲突,转入步骤(8);(5)进行冲突处理,若冲突处理结束,进入步骤(8);若冲突无法处理,则转入步骤(6);(6)删除数据接收队列;(7)socket返回操作结果;(8)进行相应的emv流程处理;(9)检测是否需要固件处理;(10)获取指定appid;(11)获取包序列号;(12)获取特征数据;(13)组串口数据包;(14)设置信号量,回调函数;(15)发送串口发送队列;(16)获取返回数据;(17)数据解析;(18)取出参数;(19)设置事件回调参数;(20)数据解析;(21)获取特征数据,组串口数据包;(22)发送串口发送队列;(23)设置信号量,回调函数;(24)发送串口发送队列;(25)获取返回数据;(26)删除数据接收队列;(27)socket返回操作结果。与之配合,串口发送数据的流程如下(参见图2):(1)检测发送队列表是否有数据;(2)获取指令类型,并判断是否与前面的指令冲突:若冲突转入步骤(3);若不冲突,转入步骤(4);(3)获取下一个appid的指令;(4)向串口发送数据;(5)在收到确认信息后,删除数据发送队列;(6)加入收据接收队列。与之配合,串口接收数据的流程如下(参见图3):(1)串口循环获取数据;(2)确定数据是否为安全芯片主动上送数据:若不是,转入步骤(3);若是,则转入步骤(8);(3)匹配接收队列数据;(4)确定是否socket返回:若不是,转入步骤(5);若是,则转入步骤(6);(5)通过回调返回数据;(6)删除数据接收队列;(7)socket返回操作结果;(8)查询对此状态需要的app;(9)获取测试app相关参数,包括通讯参数及回调参数;(10)通过回调返回数据。由上可知,本方案在具体应用时,能够有效解决异步通讯发送和接收问题,以及安全芯片的处理量和处理指令之间的兼容性。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1