基于双CPU架构的智能POS安卓同步低功耗方法与流程

文档序号:11655513阅读:565来源:国知局
基于双CPU架构的智能POS安卓同步低功耗方法与流程

本发明涉及一种基于双cpu架构的智能pos安卓同步低功耗方法。



背景技术:

现有采用双cpu架构的智能pos的低功耗策略,主要通过双向通知实现在soc端进入低功耗状态的时候,通过串口等通讯手段告知mcu同步进入低功耗状态,并且在主soc唤醒之后,再通过对应的通讯手段唤醒mcu恢复正常的工作功耗。

这种策略有两个缺点:

一、在soc短时间内反复进入和退出低功耗模式的情况下,有可能受限于mcu的响应速度无法快速的同步双cpu的状态,可能导致soc一端已经退出低功耗模式,另外一端mcu仍然在低功耗模式中,一般的做法是此时检测mcu是否有响应,如果规定时间内没有响应则通过额外手段(一般是预留硬件外部中断)唤醒mcu,实现双cpu状态同步;

二、同样在soc短时间内反复进入和退出低功耗模式的情况下,还有可能出现soc已经休眠,但是mcu不处于低功耗模式中,这种情况下会导致整机待机功耗显著提高。

本专利则是解决的这个问题,在除去硬件问题的前提下,能够保证在指定时间内双cpu的低功耗模式进出状态同步。



技术实现要素:

本发明的目的在于提供一种基于双cpu架构的智能pos安卓同步低功耗方法,该方法能够稳定同步双cpu的低功耗状态及唤醒状态,从而规避多余的指令响应,避免几率性出现的双cpu状态不同步,从而导致soc低功耗模式下待机功耗偏高问题或者soc退出低功耗后mcu管控的外设模块无响应问题。

为实现上述目的,本发明的技术方案是:一种基于双cpu架构的智能pos安卓同步低功耗方法,包括如下步骤,

s1、系统正常运行:soc端的中间件和mcu均处于正常工作状态下,soc端的中间件每隔一预定时间发送心跳包给mcu,同时mcu收到任意数据包都会重置定时器,保证定时器中断事件不会被触发;

s2、系统进入低功耗模式:soc进入低功耗模式,soc端的中间件停止发送心跳包,mcu由于在一预设阈值时间内未收到心跳包,触发mcu内对应定时器中断也进入低功耗模式;

s3、系统从低功耗模式退出:soc被唤醒,soc端的中间件继续每隔一预定时间发送心跳包给mcu,使得mcu被唤醒。

在本发明一实施例中,在所述步骤s2中,soc端的中间件停止发送心跳包的同时,还拒绝应用对mcu的访问,并停止和mcu相关的操作。

在本发明一实施例中,在所述步骤s2中,在mcu进入低功耗模式时,mcu会依次记录下由其控制的各个模块的当前使用状态,同时关闭其控制的各个模块的供电,并降低mcu频率,仅留下外部中断以外部通知唤醒mcu。

在本发明一实施例中,在所述步骤s3中,mcu被唤醒后,mcu会按mcu进入低功耗模式时记录的各个模块的使用状态恢复各个模块的对应状态。

在本发明一实施例中,所述外部中断包括串口或gpio口。

在本发明一实施例中,所述预定时间为10s。

在本发明一实施例中,所述预设阈值时间为30s。

相较于现有技术,本发明具有以下有益效果:本发明方法能够稳定同步双cpu的低功耗状态及唤醒状态,从而规避多余的指令响应,避免几率性出现的双cpu状态不同步,从而导致soc低功耗模式下待机功耗偏高问题或者soc退出低功耗后mcu管控的外设模块无响应问题。

附图说明

图1为本发明系统整体框架图。

图2为本发明中间件的心跳包发送流程图。

图3为本发明mcu处理到达数据包的流程图。

图4为本发明mcu进入低功耗模式的流程图。

图5为本发明系统进入低功耗模式同步双cpu状态的流程图。

图6为本发明系统退出低功耗模式同步双cpu状态的流程图。

具体实施方式

下面结合附图,对本发明的技术方案进行具体说明。

如图2-4所示,本发明的一种基于双cpu架构的智能pos安卓同步低功耗方法,包括如下步骤,

s1、系统正常运行:soc端的中间件和mcu均处于正常工作状态下,soc端的中间件每隔一预定时间发送心跳包给mcu,同时mcu收到任意数据包都会重置定时器,保证定时器中断事件不会被触发;

s2、系统进入低功耗模式:soc进入低功耗模式,soc端的中间件停止发送心跳包,mcu由于在一预设阈值时间内未收到心跳包,触发mcu内对应定时器中断也进入低功耗模式;

s3、系统从低功耗模式退出:soc被唤醒,soc端的中间件继续每隔一预定时间发送心跳包给mcu,使得mcu被唤醒。

在所述步骤s2中,soc端的中间件停止发送心跳包的同时,还拒绝应用对mcu的访问,并停止和mcu相关的操作。在所述步骤s2中,在mcu进入低功耗模式时,mcu会依次记录下由其控制的各个模块的当前使用状态,同时关闭其控制的各个模块的供电,并降低mcu频率,仅留下外部中断以外部通知唤醒mcu。

在所述步骤s3中,mcu被唤醒后,mcu会按mcu进入低功耗模式时记录的各个模块的使用状态恢复各个模块的对应状态。

所述外部中断包括串口或gpio口。

所述预定时间为10s。所述预设阈值时间为30s。

以下为本发明的具体实现过程。

本发明的基于双cpu架构的智能pos安卓同步低功耗方法,基于如下系统(如图1所示)实现:

1.soc端内核/android端内核

a)soc端主要依赖于原生android的低功耗管控机制,在用户应用空闲且长时间没有操作后或者用户主动按下电源键后熄灭屏幕,同时在屏幕熄灭后一段时间内逐步关闭包括蓝牙、wifi、移动数据网络等其他相关基础外设,同时挂起系统中正在运行的应用程序和后台服务(中间件会稍微延后被关闭,保证能够同步双cpu的状态),并且降低cpu和ddr内存频率,实现进入低功耗模式。(实际过程中android会定期唤醒连通网络以供部分有申请权限的应用进行短暂的数据交互,避免用户错过一些重要通知和信息,如邮件、电话或者短信)

b)当机器唤醒之后,机器依次唤醒各个应用和服务,还原到进入低功耗之前的状态。

2.soc端中间件

a)中间件主要工作是用来管控所有应用对mcu的各个模块或者外设的使用,同时负责和mcu之间的协议交互。

b)在此基础上,soc会维护和mcu端的持续数据通讯(如保证每10秒至少有一次数据交互,类似tcp通讯中常见的心跳包),而在系统内核进入低功耗之后,会停止维护和mcu端的持续数据通讯,并且拒绝任何应用继续访问和mcu相关的模块。

c)系统退出低功耗状态时,中间件亦会被唤醒,此时通过发送心跳包或者gpio唤醒mcu,以此来同步双cpu状态。

3.mcu端/安全支付相关外设及模块

a)mcu端主要包括了磁卡读卡器、接触和非接触式卡读卡器、打印机、led灯、蜂鸣器、硬加密模块和emv安全模块等安全支付相关外设。

b)开机之后在soc端送入第一个心跳包开始,每到来一个心跳包便会重置一个指定定时器,如果超过指定时间(如30秒)定时器没有被重置过,则会触发定时器中断,mcu自动进入低功耗状态

c)在进入低功耗模式的时候,mcu依次记录下各个模块的当前使用状态,同时关闭各个模块的供电(其中led可能会在充电状态下亮起,就不会被下电),并降低mcu频率,仅留下串口或者gpio等极少的外部中断用来外部通知唤醒mcu。

d)退出低功耗模式的时候,mcu会按之前各个模块的使用情况恢复各个模块的对应状态。

具体的本发明方法的实现方式如下:

这里主要分为三个策略,即系统正常运行时的策略,系统进入低功耗模式的策略,以及系统从低功耗模式退出的策略。

1.系统正常运行时,中间件和mcu都在正常状态下,中间件每隔一段时间便会发送心跳包给mcu,同时mcu收到任意数据包都会重置定时器,保证定时器中断事件不会被触发。

2.如图5所示,系统进入低功耗模式的策略,主要依赖于soc端先行进入低功耗模式,同时中间件停止发送心跳包,并拒绝其他应用对mcu的访问,停止任何和mcu相关的操作。mcu端由于在指定时间内没有收到任意数据包,则会触发对应的定时器中断也进入低功耗模式。在进入低功耗模式的时候,mcu依次记录下各个模块的当前使用状态,同时关闭各个模块的供电(其中led可能会在充电状态下亮起,就不会被下电),并降低mcu频率,仅留下串口或者gpio等极少的外部中断用来外部通知唤醒mcu。

3.如图6所示,系统从低功耗模式退出的策略,主要是用户、应用程序或者后台服务有关键操作时主动唤醒soc端。此时中间件亦会被唤醒,此时通过发送心跳包或者gpio唤醒mcu,以此来同步双cpu状态。mcu在被唤醒之后,mcu会按之前各个模块的使用情况恢复各个模块的对应状态。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

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