一种应用程序响应方法、系统、存储介质及通信模块与流程

文档序号:20950956发布日期:2020-06-02 20:08阅读:238来源:国知局
一种应用程序响应方法、系统、存储介质及通信模块与流程

本发明属于物联网产品技术领域,尤其涉及一种应用程序响应方法、系统、存储介质及通信模块。



背景技术:

物联网(internetofthings,简称iot)产品为了尽可能降低产品成本以及挖掘通信模块的计算潜力,通过opencpu技术把mcu的工作转移到通信模块上并以app的形式完成mcu的所有任务,使用户的应用程序(application,简称app)运行于通信模块当中,这样就可以省掉物联网产品上的mcu,以在不缩减功能也不降低性能的情况下降低物联网设备的硬件成本。

现有opencpu产品都是在rtos(realtimeoperatingsystem,实时操作系统)正常运行起来、并且通信模块完成系统初始化能够正常工作后,再加载基于opencpuapi开发的app,这时app软件才能开始运行,导致app开始运行的时间通常要比通信功能晚2-3秒以上(取决于系统初始化时间)。这种方式在普通应用中不会有问题,但是对于功耗要求非常严格并且控制的实时性要求高的场景有明显缺陷,例如nb-iot产品。

nb-iot产品的通信模块支持psm状态(powersavingmode,省电模式),为了保证此状态下取得极低功耗,在psm状态下会关闭除rtc(real-timeclock,实时时钟)以外包括存储器在内的所有片上设备,保留rtc相关模块的供电及时钟以便在需要工作时能够退出psm状态进入正常工作状态。由于进入psm状态前关闭了大容量存储器而丢失了部分系统数据,所以退出psm模式后需要对系统重新初始化,此初始化过程差不多需要2-3秒才能完成,导致app的响应因系统初始化工作而延误了2-3秒钟,这个延误所增加的功耗在低功耗物联网产品中无法接受,因此在低功耗iot产品上,依然无法直接去掉mcu。



技术实现要素:

本发明的目的在于提供一种应用程序响应方法、系统、存储介质及通信模块,旨在解决现有低功耗iotopencpu产品无法去掉mcu的技术问题。

本发明实施例是这样实现的,一种应用程序响应方法,应用于通信模块当中,所述方法包括如下步骤:

当所述通信模块在省电模式下被唤醒时,获取所述通信模块的唤醒源;

判断所述唤醒源是否为预设唤醒源;

当判断结果为否,则执行预置程序的本地控制功能,以在本地响应应用程序请求。

更进一步的,在所述执行预置程序的本地控制功能,以在本地响应所述应用程序的步骤之前,还包括:

关闭预设时针和电源之外的其它时钟和电源,以降低功耗,所述预设时针和电源为所述预置程序运行所需要的时钟和电源。

更进一步的,所述方法还包括:

当判断结果为是,则初始化启动所述通信模块,并在所述通信模块初始化后响应所述应用程序请求。

更进一步的,在所述执行预置程序的本地控制功能,以在本地响应所述应用程序的步骤之后,还包括:

判断所述预置程序是否完成所有预设工作;

当判断结果为是,则控制所述通信模块进入休眠模式。

更进一步的,在所述判断所述预置程序是否完成所有预设工作的步骤之后,还包括:

当判断结果为否,则控制所述通信模块进入wfi状态,并等待所述通信模块被中断唤醒后再次执行所述预置程序。

更进一步的,判断所述预置程序是否完成所有预设工作的步骤包括:

判断所述预置程序的执行返回值是否为预设值;

当所述执行返回值为所述预设值时,则判定所述预置程序完成所有预设工作;

当所述执行返回值不为所述预设值时,则判定所述预置程序未完成所有预设工作。

更进一步的,在所述执行预置程序的本地控制功能,以在本地响应所述应用程序的步骤之后,还包括:

将所述预置程序的执行数据保存于通信模块的文件系统中。

此外,本发明实施例还提出一种应用程序响应系统,应用于通信模块当中,所述系统包括:

唤醒源获取模块,用于当所述通信模块从省电模式被唤醒时,获取所述通信模块的唤醒源;

唤醒源判断模块,用于判断所获取的唤醒源是否为预设唤醒源;

应用程序响应模块,用于当判断到所述唤醒源不为预设唤醒源时,执行预置程序的本地控制功能,以在本地响应应用程序请求。

此外,本发明实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的应用程序响应方法。

此外,本发明实施例还提出一种通信模块,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述的应用程序响应方法。

与现有技术相比:通过在获取到预置唤醒源以外的唤醒源时,采用预置程序的本地控制功能,以在本地响应应用程序请求,因预置程序运行时只使用通信模块上的处理器而不需要使用通信功能,因此大大缩短了通信模块唤醒后的系统初始化时间,把app响应时延从通常的2-3秒缩短到5毫秒以内,基本可以满足所有低功耗iot系统控制的需求,使低功耗iot产品在硬件设计上也可以完全去掉mcu,降低了低功耗iot产品的硬件成本。

附图说明

图1是本发明实施例一提供的应用程序响应方法的流程示意图;

图2是本发明实施例二提供的应用程序响应方法的流程示意图;

图3是本发明实施例三提供的应用程序响应系统的模块示意图;

图4是本发明实施例四提供的通信模块的模块示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明针对现有低功耗iot产品因其通信模块的系统初始化工作会使app的响应延误较长时间,导致在低功耗iot产品上,还无法将app运行于通信模块当中,导致无法直接去掉mcu的问题,提出一种应用程序响应方法、系统、存储介质及通信模块,以通过在获取到预置唤醒源以外的唤醒源时,采用预置程序的本地控制功能,以在本地运行app,大大缩短了通信模块唤醒后的系统初始化时间,从而使app可以运行于通信模块当中,这样在硬件设计上就可以去掉mcu。

实施例一

请参阅图1,是本发明实施例一提供的应用程序响应方法的流程示意图,应用于通信模块当中,所述通信模块可通过软件和/或硬件来实现所述方法,所述方法具体包括步骤s01-步骤s03。

步骤s01,当所述通信模块在省电模式下被唤醒时,获取所述通信模块的唤醒源。

需要说明的是,省电模式即为psm低功耗状态,通信模块在psm状态下会关闭除rtc以外包括大容量存储器在内的所有片上设备,仅保留rtc相关模块的供电及时钟,以便在通信模块需要唤醒工作时,控制通信模块退出psm状态,以进入正常工作状态。

其中,所述唤醒源可以为唤醒通信模块的触发事件,所述唤醒源用于唤醒通信模块,以使通信模块退出psm状态进入正常工作状态。所述唤醒源具体可以为外部中断唤醒、rtc唤醒、tau(trackingareaupdate,跟踪地区最新情况)alarm唤醒等。

步骤s02,判断所述唤醒源是否为预设唤醒源。

其中,所述唤醒源为当前获取的唤醒源,当判断到所述唤醒源不为预设唤醒源时,执行步骤s03;当判断到所述唤醒源为预设唤醒源时,则执行步骤s04。具体地,所述预设唤醒源可以为taualarm唤醒,一般来说,非taualarm唤醒表明系统有实时控制任务请求(如按键、系统掉电、定时数据采样等),此时可调用执行通讯模块当中的预置程序来进行系统所需的检测、处理和控制等工作,以响应应用程序的运行。而taualarm唤醒表明系统有更新跟踪区域的请求,此时必须借助通讯模块的通讯功能,以联网更新地区最新情况。

步骤s03,执行预置程序的本地控制功能,以在本地响应应用程序请求。

其中,所述预置程序可以为bootapp,具体可以在通信模块上增加bootloader(若已经有bootloader的通信模块则不需要再增加bootloader),通过bootloader调用执行bootapp,以执行bootapp的本地控制功能来进行系统所需的检测、处理和控制等工作,以在本地快速响应应用程序的请求。

在具体实施时,bootapp代码可存储于独立的存储空间,使用独立于bootloader的sram空间,bootapp与bootloader共享堆和栈空间,bootapp可由专门的独立于app的sdk编译得到,并且bootapp可由专门的下载工具下载到通信模块当中,也可以使用与app相同的下载工具下载到独立的bootapp分区当中。

步骤s04,初始化启动通信模块,并在所述通信模块初始化后响应所述应用程序请求。

需要指出的是,当通信模块完成系统初始化能够正常工作后,将重新启动通信模块的通讯功能,并借助通讯模块的通讯功能,以联网更新地区域,并且响应应用程序的请求。

综上,本实施例当中的应用程序响应方法,通过在获取到预置唤醒源以外的唤醒源时,采用预置程序的本地控制功能,以在本地响应应用程序请求,因预置程序运行时只使用通信模块上的处理器,而不需要使用通信功能,因此大大缩短了通信模块唤醒后的系统初始化时间,把app响应时延从通常的2-3秒缩短到5毫秒以内,基本可以满足所有低功耗iot系统控制的需求,使低功耗iot产品在硬件设计上也可以完全去掉mcu,降低了低功耗iot产品的硬件成本。

实施例二

请参阅图2,是本发明实施例二提供的一种应用程序响应方法的流程示意图,应用于通信模块当中,所述通信模块可由软件和/或硬件来实现所述方法,所述方法具体包括步骤s11至步骤s19。

步骤s11,当所述通信模块在省电模式下被唤醒时,获取所述通信模块的唤醒源。

步骤s12,判断所述唤醒源是否为预设唤醒源。

其中,所述唤醒源为当前获取的唤醒源,所述预设唤醒源为taualarm唤醒。当判断到所述唤醒源不为预设唤醒源时,执行步骤s13-步骤s18,当判断到所述唤醒源为预设唤醒源时,则直接跳转至执行步骤s19。在具体实施时,可以在通信模块上增加bootloader(若已经有bootloader的通信模块则不需要再增加bootloader),并由bootloader来区分不同的唤醒源。

步骤s13,关闭预设时钟和电源之外的其它时钟和电源,所述预设时钟和电源为预置程序运行所需要的时钟和电源。

可以理解的,通过关闭所有不用设备的时钟和电源,以最低系统功耗来执行预置程序bootapp,可以有效降低通信模块的功耗,使通信模块处于极低功耗状态下运行。

步骤s14,执行所述预置程序的本地控制功能,以在本地响应应用程序请求。

其中,所述预置程序可以为bootapp,具体可通过bootloader调用bootapp的入口函数来执行bootapp,以进行系统所需的检测、处理和控制等工作。

步骤s15,将所述预置程序的执行数据保存于通信模块的文件系统中。

其中,所述预置程序的执行数据可包含在预置程序的执行返回值当中,或从所述预置程序的执行日志中提取得到,通过将bootapp执行中生产的有用数据保存于通信模块的文件系统中,以供app进行访问。

步骤s16,判断所述预置程序是否完成所有预设工作。

其中,当判断到所述预置程序完成所有预设工作时,则执行步骤s17,当判断到所述预置程序未完成所有预设工作时,则执行步骤s18。

在具体实施时,步骤s16可按以下细化步骤进行具体实施,细化步骤具体包括:

判断所述预置程序的执行返回值是否为预设值;当所述执行返回值为所述预设值时,则判定所述预置程序完成所有预设工作,当所述执行返回值不为所述预设值时,则判定所述预置程序未完成所有预设工作。

其中,所述预设值可以为0,即当bootapp执行完所有应用程序的请求后,将向bootloader返回执行状态值0,以表征bootapp执行完所有工作;否则向bootloader返回非0的执行状态值,以表征bootapp执行完部分应用程序的请求。

步骤s17,控制所述通信模块进入所述省电模式。

步骤s18,控制所述通信模块进入wfi状态,并等待所述通信模块被中断唤醒后再次执行所述预置程序。

具体地,通过bootapp返回值确定是否再次直接进入psm状态还是wfi状态,如果进入psm状态则相当于bootapp完成了所有工作等待下一次任务,如果进入wfi状态则相当于bootapp完成了部分工作,通信模块进入低功耗wfi状态并等待通信模块被中断唤醒后再次执行bootapp。

步骤s19,初始化启动通信模块,并在所述通信模块初始化后响应所述应用程序请求。

需要指出的是,当通信模块完成系统初始化能够正常工作后,将启动通信模块的通讯功能,并借助通讯模块的通讯功能,更新跟踪区域信息,并且响应应用程序的请求。

另外,需要进一步说明的是,在本实施例当中,上述各步骤均可由通讯模块的bootloader来执行,但本发明并不限于此,在其它实施例当中,也可以用bootapp替代bootloader,以在bootapp中根据唤醒源判断启动通信模块还是执行bootapp的本地控制功能。

实施例三

本发明另一方面还提出一种应用程序响应系统,请参阅图3,是本发明实施例三提供的一种应用程序响应系统的模块示意图,应用于通信模块当中,所述通信模块可由软件和/或硬件来实现,所述应用程序响应系统具体包括:

唤醒源获取模块11,用于当所述通信模块在省电模式下被唤醒时,获取所述通信模块的唤醒源;

唤醒源判断模块12,用于判断所获取的唤醒源是否为预设唤醒源;

应用程序响应模块13,用于当判断到所述唤醒源不为所述预设唤醒源时,执行预置程序的本地控制功能,以在本地响应应用程序请求。

需要说明的是,省电模式即为psm低功耗状态,通信模块在psm状态下会关闭除rtc以外包括大容量存储器在内的所有片上设备,仅保留rtc相关模块的供电及时钟,以便在通信模块需要工作时,控制通信模块退出psm状态,以进入正常工作状态。

其中,所述唤醒源可以为唤醒通信模块的触发事件,所述唤醒源用于唤醒通信模块,以使通信模块退出psm状态进入正常工作状态。所述唤醒源具体可以为外部中断唤醒、rtc唤醒、tau(trackingareaupdate,更新跟踪区域alarm唤醒等。

具体地,所述预设唤醒源可以为taualarm唤醒,一般来说,非taualarm唤醒表明系统有实时控制请求(如按键、系统掉电、定时数据采样等),此时可调用通讯模块当中的预置程序来进行系统所需的检测、处理和控制等工作,以响应应用程序的运行。而taualarm唤醒表明系统有跟踪区域更新的请求,此时必须借助通讯模块的通讯功能,联网更新跟踪区域信息。

其中,所述预置程序可以为bootapp,具体可以在通信模块上增加bootloader(若已经有bootloader的通信模块则不需要再增加bootloader),通过bootloader调用执行bootapp,以执行bootapp的本地控制功能来进行系统所需的检测、处理和控制等工作。在具体实施时,bootapp代码可存储于独立的存储空间,使用独立于bootloader的sram和flash空间,bootapp与bootloader共享堆和栈空间,bootapp可由专门的独立于app的sdk编译得到,并且bootapp可由专门的下载工具下载到通信模块当中,也可以使用与app相同的下载工具下载到独立的bootapp分区当中。

综上,本实施例当中的应用程序响应系统,通过在获取到预置唤醒源以外的唤醒源时,采用预置程序的本地控制功能,以在本地响应应用程序请求,因预置程序运行时只使用通信模块上的处理器,而不需要使用通信功能,因此大大缩短了通信模块唤醒后的系统初始化时间,把app响应时延从通常的2-3秒缩短到5毫秒以内,基本可以满足所有低功耗iot系统控制的需求,使低功耗iot产品在硬件设计上也可以完全去掉mcu,降低了低功耗iot产品的硬件成本。

进一步地,在本发明一些可选实施例当中,所述系统还包括:

时钟和电源控制模块,用于开/关预设时钟和电源之外的其它时钟和电源,所述预设时钟和电源为所述预置程序运行所需要的时钟和电源。

进一步地,在本发明一些可选实施例当中,应用程序响应模块13还用于当判断到所述唤醒源为所述预设唤醒源时,初始化启动通信模块,并在所述通信模块初始化后响应所述应用程序请求。

需要指出的是,当通信模块完成系统初始化能够正常工作后,将启动通信模块的通讯功能,并借助通讯模块的通讯功能,联网更新跟踪区域信息,并响应应用程序的数据收发请求。

进一步地,在本发明一些可选实施例当中,所述系统还包括:

完成判断模块,用于判断所述预置程序是否完成所有预设工作;

模式控制模块,用于当判断到所述预置程序完成所有预设工作时,控制所述通信模块进入所述省电模式。

进一步地,在本发明一些可选实施例当中,模式控制模块还用于当判断到所述预置程序未完成所有预设工作时,控制所述通信模块进入wfi状态,并等待所述通信模块被中断唤醒后再次执行所述预置程序。

进一步地,在本发明一些可选实施例当中,完成判断模块还用于判断所述预置程序的执行返回值是否为预设值;当所述执行返回值为所述预设值时,则判定所述预置程序完成所有预设工作;当所述执行返回值不为所述预设值时,则判定所述预置程序未完成所有预设工作。

进一步地,在本发明一些可选实施例当中,所述系统还包括:

数据保存模块,用于将所述预置程序的执行数据保存于通信模块的文件系统中。

上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。

实施例四

本发明另一方面还提出一种通信模块,请参阅图4,所示为本发明第四实施例当中的通信模块的模块结构图,包括存储器20、处理器10以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器执行所述程序时实现如上述的应用程序响应方法。

具体地,所述通信模块可以为iot产品的无线通信模块,例如射频通信模块、蓝牙通信模块、wifi通信模块等。所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据。

其中,存储器20至少包括一种类别的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是装置的内部存储单元,例如该装置的硬盘。存储器20在另一些实施例中也可以是装置的外部存储设备,例如装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器20还可以既包括装置的内部存储单元也包括外部存储设备。存储器20不仅可以用于存储安装于装置的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。

可选地,所述通信模块还可以包括用户接口、网络接口、通信总线等,用户接口可以包括显示器(display)、输入单元比如遥控器、实体按键等,可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示装置中信息以及用于显示可视化的用户界面。网络接口可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置与其他电子设备之间建立通信连接。通信总线用于实现这些组件之间的连接通信。

需要指出的是,图4示出的结构并不构成对装置的限定,在其它实施例当中,该装置可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

综上,本实施例当中的通信模块,通过在获取到预置唤醒源以外的唤醒源时,采用预置程序的本地控制功能,以在本地响应应用程序请求,因预置程序运行时只使用通信模块上的处理器,而不需要使用通信功能,因此大大缩短了通信模块唤醒后的系统初始化时间,把app响应时延从通常的2-3秒缩短到5毫秒以内,基本可以满足所有低功耗iot系统控制的需求,使低功耗iot产品在硬件设计上也可以完全去掉mcu,降低了低功耗iot产品的硬件成本。

本实施例还提供了一种计算机可读存储介质,其上存储有上述通信模块中所使用的计算机程序30,该程序在被处理器执行时实现上述的应用程序响应方法。

其中,所述的存储介质可以为但不限于rom/ram、磁碟、光盘等。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或flash),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理后以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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