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

技术编号:17781349 阅读:48 留言:0更新日期:2018-04-22 10:48
本发明专利技术公开了一种用于智能POS机的基于串口的双向并发通讯方法,其通过启用接收线程和发送线程,单独处理数据发送和数据接收;建立数据发送队列和接收队列,将发下去的数据和处理后回来的数据进行数据匹配。本方案通过设置两个线程,两个队列处理,解决了异步通讯发送和接收问题,提高智能POS机内基于android系统的APP与安全芯片间的串口通讯效率。

【技术实现步骤摘要】
一种用于智能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,版本号等。指令特点:获取特征信息。系统将下发指令后,记录当前指令的类型和状态,当返回数据时,对指令类型进行恢复处理。本文档来自技高网...
一种用于智能POS机的基于串口的双向并发通讯方法

【技术保护点】
用于智能POS机的基于串口的双向并发通讯方法,其特征在于,启用接收线程和发送线程,单独处理数据发送和数据接收;建立数据发送队列和接收队列,将发下去的数据和处理后回来的数据进行数据匹配。

【技术特征摘要】
1.用于智能POS机的基于串口的双向并发通讯方法,其特征在于,启用接收线程和发送线程,单独处理数据发送和数据接收;建立数据发送队列和接收队列,将发下去的数据和处理后回来的数据进行数据匹配。2.根据权利要求1所述的基于串口的双向并发通讯方法,其特征在于,由业务将需要下发的数据写入到发送队列,数据发送线程轮询检查发送队列,在查询到发送队列存在数据,则进行完整性检查;在数据完整性检查完成后,通过串口向安全芯片发送数据,在安全芯片接收数据成功后,数据发送线程删除发送队列,并将发送的数据加上后续处理的回调句柄一起插入到接收队列。3.根据权利要求1所述的基于串口的双向并发通讯方法,其特征在于,系统通过接收线程获取安全芯片接收数据后,进行业务处理并通过串口返回的数据;接收线程通过报...

【专利技术属性】
技术研发人员:沈勇坚胡永刚王翔平
申请(专利权)人:上海动联信息技术股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1