一种POS机中双CPU的通讯方法技术

技术编号:20796956 阅读:28 留言:0更新日期:2019-04-06 10:33
本发明专利技术公开了一种POS机中双CPU的通讯方法,涉及POS机通讯技术领域。所述双CPU包括采用串行通信的通用CPU与安全CPU,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,既保证了低的成本,而且,在所有的串行通信方式中,硬件上可以任意选择一种串行通信方式,而软件上只需比较少的改动。方便了软件的模块化设计,项目变更通信需求时,可以极大的减少开发周期与软件的维护成本。

A Communication Method of Double CPUs in POS

The invention discloses a communication method of double CPUs in a POS machine, which relates to the communication technology field of a POS machine. The dual CPU includes a universal CPU and a secure CPU using serial communication. Event pins and state pins are set on both the universal CPU and the secure CPU, and a physical connection channel is established through event pins and state pins, which ensures low cost. Moreover, in all serial communication modes, one serial communication mode can be chosen arbitrarily in hardware, while only a few in software. Change. It facilitates the modular design of the software, and greatly reduces the development cycle and maintenance cost of the software when the project changes the communication requirements.

【技术实现步骤摘要】
一种POS机中双CPU的通讯方法
本专利技术涉及POS机通讯
,尤其涉及一种POS机中双CPU的通讯方法。
技术介绍
随着移动互联网技术的飞速发展,Android手机与平板等智能移动终端的火爆,移动支付出现了爆发式增长,作为移动支付附加产业——智能POS行业也不例外。目前,智能POS普遍采用了Android平台。因为Android平台架构,最初是为移动应用设计,并非直接针对安全,所以原生的Android平台层层都会有安全的问题,不能直接应用于智能POS上,需要经过安全的改造。为了使原生的Android平台满足智能POS的安全要求,一种比较普遍的原生的Android平台方案是:增加一颗安全CPU,用于保证重要数据的高度安全,如:密钥等。因为两颗CPU是独立运行的,所以两者必须相互通信,才能完成特定的工作。这就引入了两颗CPU的通讯问题。两颗CPU的通信总线为并行总线或串行总线。并行总线,需要使用的IO引脚较多,而CPU的IO引脚通常都是紧缺的。因此一般不会使用并行总线方式。常见的串行总线为:I2C、SPI、串口和USB。因此两颗CPU的串行通讯方式的硬件连接一般为几种连接方式,参见图3-9所示。其中,图4与图6增加了事件引脚,是因为I2C与SPI是主从模式,从机不能主动向主机发送数据,所以从机数据准备好了或有事件要通知主机,需要主机发送读取的指令时,才能向主机发送数据或事件消息。增加了事件引脚后,从机数据准备好或产生了事件,将事件引脚拉低后,主机便产生了中断,此时主机读取从机的数据或事件消息,减轻主机定时发送查询指令的负担。图7是无流控的串口连接方式,图8是有流程控的串口连接方式。采用以上任意一种串行通信方式,都可以解决两颗CPU之间的通讯问题。但是,在实际使用过程中,CPU会挂比较多的外设,有时会被迫使用另一种串行通信方式。比如,之前的CPU使用串口通信方式,但换了个串口不多的CPU之后,不能再使用串口通信方式,但可以使用SPI通信方式。这时,软件需要进行比较大的改动,才能支持SPI通信方式,从而增加了项目的开发周期与软件的维护成本。
技术实现思路
本专利技术的目的在于提供一种POS机中双CPU的通讯方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种POS机中双CPU的通讯方法,所述双CPU包括采用串行通信的通用CPU与安全CPU,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,所述事件引脚用于当安全CPU产生了事件或数据准备好了时,及时向通用CPU发送中断,通知通用CPU处理;当使用串口或USB通信方式时,安全CPU主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数专门处理安全CPU的事件,串口与USB的中断处理函数专门处理数据的通信;当使用I2C或SPI串口通信方式时,安全CPU不能主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数处理安全CPU的事件;所述状态引脚用于通用CPU事件引脚的中断处理函数获取安全CPU的忙碌或空闲的状态,如果安全CPU处于忙碌的状态,则通用CPU事件引脚的中断处理函数延后处理安全CPU的事件。优选地,通用CPU向安全CPU收发命令包的方法为:通用CPU向安全CPU发送数据前,申请访问安全CPU的互斥锁,即上锁,完成接收安全CPU的数据后,释放访问安全CPU的互斥锁;当某个进程申请访问安全CPU的互斥锁时,若已上锁,则进程挂起,即进程停止执行,进入休眠状态,直到访问安全CPU的互斥锁被释放时,挂起的进程才会被唤醒,即进程开始执行,进入工作状态。优选地,通用CPU向安全CPU收发命令包的方法,包括如下步骤:A1,申请访问安全CPU的互斥锁;A2,查询状态引脚,判断安全CPU是否处于空闲状态,如果是,则执行A4;否则,执行A3;A3,判断是否等待空闲状态超时,如果是,则执行A13,否则,执行A2;A4,发送次数置为约定值;A5,判断发送次数是否为0,如果是,则执行A13;否则,执行A6;A6,调用串行发送接口,向安全CPU发送数据包,其中,串行发送接口为I2C、SPI、串口与USB口中的任何一种;A7,查询状态引脚,判断安全CPU是否处于忙碌状态,如果是,表明安全CPU已正确接收通用CPU的数据包,并正在执行命令,则执行A10,否则,执行A8;A8,判断等待忙碌状态是否超时,如果是,表明安全CPU未能正确接收通用CPU的数据包,通用CPU重发数据包,提升通信的成功率,则执行A9,否则,表示安全CPU可能正在接收数据包,通用CPU需要等待,执行A7;A9,发送次数减一,并执行A5;A10,查询状态引脚,判断安全CPU是否处于空闲状态,如果是,表示安全CPU处理数据包结束,并向通用CPU发送了处理结果的数据包,则执行A12;否则,通用CPU需要等待安全CPU处理完成,执行A11;A11,判断等待空闲状态是否超时,如果是,表明安全CPU宕机了,无法向通用CPU返回处理结果,则执行A13,否则,通用CPU需要等待安全CPU处理结果,执行A10;A12,调用串行接收接口,接收安全CPU的数据,并执行A14;串行接收接口为I2C、SPI、串口与USB口中的任何一种;A13,复位安全CPU;A14,释放安全CPU的互斥锁;A15,返回。优选地,A13中,所述复位安全CPU通过复位引脚实现,具体的,通用CPU将复位引脚置低后,安全CPU复位;通用CPU将复位引脚置高后,安全CPU执行程序,处理通用CPU通过串行接口发送的数据包,并返回处理后的结果。本专利技术的有益效果是:本专利技术提供的POS机中双CPU的通讯方法,所述双CPU包括采用串行通信的通用CPU与安全CPU,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,既保证了低的成本,而且,在所有的串行通信方式中,硬件上可以任意选择一种串行通信方式,而软件上只需比较少的改动。方便了软件的模块化设计,项目变更通信需求时,可以极大的减少开发周期与软件的维护成本。附图说明图1是本专利技术提供的POS机中双CPU的通讯连接结构示意图;图2是本专利技术提供的POS机中双CPU的收发数据包的流程示意图;图3-9是现有技术中常用的通用CPU和安全CPU之间的串行通讯方式示意图;图10-11是本专利技术具体实施例中采用的通用CPU的接线示意图;图12是本专利技术具体实施例中采用的安全CPU的接线示意图;图13是本专利技术具体实施例中采用的串行通用接口层的结构体;图14是本专利技术具体实施例中使用串口函数来实现的串行通用接口层;图15是本专利技术具体实施例中通用CPU与安全CPU正常通信时,串行通用接口层数据。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术实施例提供了一种POS机中双CPU的通讯方法,所述双CPU包括采用串行通信的通用CPU与安全CPU,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,所述事件引脚用于当安全CPU产生了事件或数据准备好了本文档来自技高网
...

【技术保护点】
1.一种POS机中双CPU的通讯方法,所述双CPU包括采用串行通信的通用CPU与安全CPU,其特征在于,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,所述事件引脚用于当安全CPU产生了事件或数据准备好了时,及时向通用CPU发送中断,通知通用CPU处理;当使用串口或USB通信方式时,安全CPU主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数专门处理安全CPU的事件,串口与USB的中断处理函数专门处理数据的通信;当使用I2C或SPI串口通信方式时,安全CPU不能主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数处理安全CPU的事件;所述状态引脚用于通用CPU事件引脚的中断处理函数获取安全CPU的忙碌或空闲的状态,如果安全CPU处于忙碌的状态,则通用CPU事件引脚的中断处理函数延后处理安全CPU的事件。

【技术特征摘要】
1.一种POS机中双CPU的通讯方法,所述双CPU包括采用串行通信的通用CPU与安全CPU,其特征在于,通用CPU与安全CPU上均设置有事件引脚和状态引脚,并通过事件引脚和状态引脚建立物理连接通道,所述事件引脚用于当安全CPU产生了事件或数据准备好了时,及时向通用CPU发送中断,通知通用CPU处理;当使用串口或USB通信方式时,安全CPU主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数专门处理安全CPU的事件,串口与USB的中断处理函数专门处理数据的通信;当使用I2C或SPI串口通信方式时,安全CPU不能主动向通用CPU发送数据,通用CPU事件引脚的中断处理函数处理安全CPU的事件;所述状态引脚用于通用CPU事件引脚的中断处理函数获取安全CPU的忙碌或空闲的状态,如果安全CPU处于忙碌的状态,则通用CPU事件引脚的中断处理函数延后处理安全CPU的事件。2.根据权利要求1所述的POS机中双CPU的通讯方法,其特征在于,通用CPU向安全CPU收发命令包的方法为:通用CPU向安全CPU发送数据前,申请访问安全CPU的互斥锁,即上锁,完成接收安全CPU的数据后,释放访问安全CPU的互斥锁;当某个进程申请访问安全CPU的互斥锁时,若已上锁,则进程挂起,即进程停止执行,进入休眠状态,直到访问安全CPU的互斥锁被释放时,挂起的进程才会被唤醒,即进程开始执行,进入工作状态。3.根据权利要求2所述的POS机中双CPU的通讯方法,其特征在于,通用CPU向安全CPU收发命令包的方法,包括如下步骤:A1,申请访问安全CPU的互斥锁;A2,查询状态引脚,判断安全CPU是否处于空闲状态,如果是,则执行A4;否则,执行A3;A3,判断是否等待空闲状态超时...

【专利技术属性】
技术研发人员:廖泽才王琳斌詹闽
申请(专利权)人:艾体威尔电子技术北京有限公司
类型:发明
国别省市:北京,11

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

1