进入低功耗状态的方法及装置、存储介质与流程

文档序号:16384846发布日期:2018-12-22 09:47阅读:421来源:国知局
进入低功耗状态的方法及装置、存储介质与流程

本发明实施例涉及但不限于一种进入低功耗状态的方法及装置、计算机可读存储介质。

背景技术

窄带物联网(narrowbandinternetofthings,nb-iot)是物联网(internetofthings,iot)领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(low-powerwide-areanetwork,lpwan)。nb-iot支持待机时间长、对网络连接要求较高的设备的高效连接。

psm(powersavingmode,低功耗模式)是窄带(narrowband,nb)终端实现低功耗的重要方式。psm是3gpp(3rdgenerationpartnershipproject,第三代合作伙伴计划)r12引入的技术,其原理是允许ue(userequipment,用户设备)在进入空闲态一段时间后,关闭信号的收发和as((accessstratum,接入层)相关功能,相当于部分关机,从而减少天线、射频、信令处理等的功耗消耗。

ue在psm期间,不接收任何网络寻呼,对于网络侧来说,ue此时是不可达的,数据、短信和电话均进不来。只有当tau(trackingareaupdate,跟踪区更新)周期请求定时器(t3412)超时,或者ue有mo(mobileoriginate,主动发起的移动业务)业务要处理而主动退出时,ue才会退出psm状态,进入空闲状态,进而进入连接态处理上下行业务。



技术实现要素:

本发明至少一实施例提供了一种进入低功耗状态的方法及装置、计算机可读存储介质,降低功耗。

本发明至少一实施例提供一种进入低功耗状态的方法,包括:

接收微控制单元发送的进入低功耗状态的命令;

进入低功耗状态。

与相关技术相比,本发明至少一实施例中,接收mcu发送的进入低功耗状态的命令后,进入低功耗状态,不用等待网络侧的信令,有利于降低功耗。

本发明至少一实施例提供一种进入低功耗状态的装置,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现任一实施例所述的进入低功耗状态的方法。

本发明至少一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任一实施例所述的进入低功耗状态的方法。

本发明至少一实施例提供一种进入低功耗模式的方法,包括:数据发送完毕后,进入低功耗模式状态。

在一实施例中,所述数据发送完毕之后,进入低功耗模式状态之前,还包括:设置快速进入低功耗模式标志;

所述进入低功耗模式状态包括:当用于进入低功耗模式计时的定时器已开启且检测到所述快速进入低功耗模式标志时,进入低功耗模式状态;当所述定时器已开启且未检测到所述快速进入低功耗模式标志时,等待所述定时器超时后进入低功耗模式状态。

在一实施例中,所述进入低功耗模式状态之前还包括:当用于进入低功耗模式计时的定时器未开启时,保持所述定时器处于关闭状态。

在一实施例中,在所述数据发送完毕之后,进入低功耗模式状态之前,还包括:向网络侧发送释放无线资源控制请求信令,以释放无限资源控制连接。

本发明至少一实施例提供一种进入低功耗模式的方法,包括,接收无线资源释放控制信令,进入低功耗模式状态。

在一实施例中,所述接收无线资源释放控制信令之后,进入低功耗模式状态之前,还包括:设置快速进入低功耗模式标志;

所述进入低功耗模式包括:当用于进入低功耗模式计时的定时器已开启且检测到所述快速进入低功耗模式标志时,进入低功耗模式状态;当所述定时器已开启且未检测到所述快速进入低功耗模式标志时,等待所述定时器超时后进入低功耗模式状态。

在一实施例中,所述进入低功耗模式状态之前还包括:当用于进入低功耗模式计时的定时器未开启时,保持所述定时器处于关闭状态。

本发明至少一实施例提供一种进入低功耗模式的装置,包括存储器和处理器,所述存储器存储有程序,所述程序在被所述处理器读取执行时,实现任一实施例所述的进入低功耗模式的方法。

本发明至少一实施例一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任一实施例所述的进入低功耗模式的方法。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为相关技术中进入psm状态的流程图;

图2为本发明一实施例提供的nb网络架构图;

图3为本发明一实施例提供的nb模组结构框图;

图4为本发明一实施例提供的进入低功耗状态的方法流程图;

图5为本发明一实施例提供的进入低功耗状态的方法流程图;

图6为本发明另一实施例提供的进入低功耗状态的方法流程图;

图7为本发明一实施例提供的进入低功耗状态的方法流程图;

图8为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图9为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图10为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图11为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图12为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图13为本发明一实施例提供的由mcu发起的进入低功耗状态的方法流程图;

图14为本发明一实施例提供的由nb模组发起的进入低功耗状态的方法流程图;

图15为本发明另一实施例提供的由nb模组发起的进入低功耗状态的方法流程图;

图16为本发明一实施例提供的由网络发起的进入低功耗状态的方法流程图;

图17为本发明一实施例提供的进入空闲状态的方法流程图;

图18为本发明另一实施例提供的进入空闲状态的方法流程图;

图19为本发明一实施例提供的进入低功耗状态装置框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示,相关技术中,nb终端进入psm状态的流程为:

步骤101,nb网络给nb终端发送rrc(radioresourcecontrol,无线资源控制)释放信令。

步骤102,所述nb终端进入空闲(idle)状态。

步骤103,所述nb终端启动定时器(activetimer)。

步骤104,所述定时器超时,所述nb终端进入psm状态。

即nb终端处理完成数据之后,先等待网络侧发来rrc释放信令。当收到rrc释放信令的时候,进入空闲态,与此同时启动activetimer,此activetimer超时后,ue进入psm状态。

上述方案中,等待rrc释放信令和等待activetimer超时这两段时间内,终端依然以较高的功耗在运行。因此,有必要提供一种方法,降低功耗。

图2为系统架构图。如图2所示,包括:mcu(microcontrollerunit,微控制单元)201、nb模组202和nb网络203。其中,nb模组202属于nb终端的一部分。mcu201和nb模组202可能处于同一设备,也可能为独立设备。mcu201与nb模组202均属于nb终端的一部分或部件,nb模组202为通信模块,用于实现mcu201和其他设备(比如nb网络203)之间的通信。系统中还可能包含服务器(图2中未示出),用于接收mcu201通过nb模组202发送的数据。

图3为nb模组202的分层结构示意图。如图3所示,所述nb模组202包括命令接收模块301、命令处理模块302、nb通信协议层303以及基带射频模块304,其中,所述命令接收模块301用于接收mcu201发送的命令,所述命令处理模块302用于处理接收到的命令,所述nb通信协议层303用于实现nb通信协议栈,所述基带射频模块304用于实现射频和基带功能。

图4为本发明一实施例提供的进入低功耗状态的方法流程图。如图4所示,包括:

步骤401,接收mcu发送的进入低功耗状态的命令;

步骤402,进入低功耗状态。

其中,nb模组接收mcu发送的进入低功耗状态的命令,进入低功耗状态。

在一实施例中,所述进入低功耗状态的命令为:预设的at(attention)命令,或者,预设gpio(general-purposeio,通用输入输出)管脚的电平为按预设模式变化。比如,预设的gpio管脚变为高电平,或者预设的gpio管脚变为低电平,设gpio管脚为高电平持续一段时间之后变为低电平、gpio管脚为低电平持续一段时间之后变为高电平,等等。其中,at命令是应用于终端设备与外部应用之间的连接与通信的命令。

在一实施例中,所述步骤401之后,所述步骤402之前,还包括:等待数据发送完毕。需要说明的是,也可以不等待数据发送完毕,在接收mcu发送的进入低功耗状态的命令后,立即进入低功耗状态。

在一实施例中,所述进入低功耗状态的命令可以是为进入低功耗模式的命令,所述进入低功耗状态为进入psm状态。在另一实施例中,所述进入低功耗状态的命令为进入空闲状态的命令,所述低功耗状态为空闲状态。其中,处于空闲状态的终端,可以使用非连续接收的方式去监听寻呼消息,在非连续接收的周期内,可以进行睡眠以降低功耗。网络如果想要给终端发送下行数据,需要先发送寻呼消息把终端唤醒。psm状态是进一步节电的模式,终端关闭射频,不再接收寻呼消息,网络下行数据不可达。

在一实施例中,所述进入低功耗状态的命令为进入低功耗模式的命令,所述进入低功耗状态为进入psm状态时,所述等待数据发送完毕后,还包括:进入idle状态。

在一实施例中,所述进入低功耗状态的命令为进入低功耗模式的命令,所述进入低功耗状态为进入psm状态时,所述接收mcu发送的进入低功耗状态的命令后,进入低功耗状态前,还包括:设置快速进入低功耗模式标志;所述快速进入低功耗模式标志可以是多种形态,包括但不限于:内存中的一个变量,或者一段内存区域,或者一项nv(non-volatilememory,非易失性存储器),或者一个文件,或者文件中的一段内容。

所述进入低功耗模式状态包括:当用于进入低功耗模式计时的定时器已开启且检测到所述快速进入低功耗模式标志时,进入低功耗模式状态;当所述定时器已开启且未检测到所述快速进入低功耗模式标志时,等待所述定时器超时后进入低功耗模式状态。其中,用于进入低功耗模式计时的定时器比如为activetimer。

在一实施例中,所述进入低功耗状态的命令为进入低功耗模式的命令,所述进入低功耗状态为进入psm状态时,所述进入低功耗状态前还包括:当用于进入低功耗模式计时的定时器未开启时,保持所述定时器处于关闭状态。

在一实施例中,所述接收微控制单元发送的进入低功耗状态的命令之后,进入低功耗状态之前,还包括:向网络侧发送释放rrc请求信令,以释放rrc连接。

在一实施例中,所述进入低功耗状态的命令为进入空闲状态的命令,所述低功耗状态为空闲状态。比如,nb模组接收微控制单元发送的进入空闲状态的命令;进入空闲状态。

如图5所示,本发明一实施例提供一种进入低功耗状态的方法,包括:步骤501,数据发送完毕后,进入低功耗模式状态。

在一实施例中,所述数据发送完毕后,进入低功耗模式状态前,还包括:设置快速进入低功耗模式标志;

所述进入低功耗模式状态包括:当用于进入低功耗模式计时的定时器已开启且检测到所述快速进入低功耗模式标志时,进入低功耗模式状态;当所述定时器已开启且未检测到所述快速进入低功耗模式标志时,等待所述定时器超时后进入低功耗模式状态。

在一实施例中,所述进入低功耗模式状态前还包括:当用于进入低功耗模式计时的定时器未开启时,保持所述定时器处于关闭状态。

在一实施例中,所述数据发送完毕之后,进入低功耗模式状态之前,还包括:向网络侧发送释放rrc请求信令,以释放rrc连接。

如图6所示,本发明一实施例提供一种进入低功耗状态的方法,包括:

步骤601,接收无线资源释放控制信令;

步骤602,进入低功耗模式状态。

在一实施例中,所述步骤601之后,步骤602之前,还包括:设置快速进入低功耗模式标志;

所述步骤602中,进入低功耗模式状态包括:当用于进入低功耗模式计时的定时器已开启且检测到所述快速进入低功耗模式标志时,进入低功耗模式;当所述定时器已开启且未检测到所述快速进入低功耗模式标志时,等待所述定时器超时后进入低功耗模式。

在一实施例中,所述步骤602之前还包括:当用于进入低功耗模式计时的定时器未开启时,保持所述定时器处于关闭状态。

图7为本发明一实施例提供的进入低功耗状态的方法流程图,本实施例中,进入低功耗状态的命令为进入psm的命令,低功耗状态为psm状态,如图7所示,包括:

步骤701,mcu发送进入psm的命令给nb模组。

其中,该进入psm的命令可以是预设的at命令,也可以是预设gpio管脚按预设模式变化,比如拉高预设的gpio管脚的电平,或者拉低预设的gpio管脚的电平,设置gpio管脚为高电平持续一段时间之后变为低电平、设置gpio管脚为低电平持续一段时间之后变为高电平,等等。

其中at命令可以基于通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)或者通用串行总线(universalserialbus,usb)端口传输。

需要说明的是,mcu也可以通过发送at命令和设置gpio之外的其它方式给nb模组发送快速进入psm的命令。

步骤702,所述nb模组收到所述进入psm的命令后,设置快速进入psm标志。

所述快速进入psm标志可以是多种形态,包括但不限于内存中的一个变量,或者一段内存区域,或者一项nv,或者一个文件,或者文件中的一段内容。该标志用于后续步骤判断是否立即进入psm状态。

步骤703,所述nb模组检查当前是否有数据正在发送或者等待发送,如果是,则执行步骤704;如果否,则执行步骤705。

nb模组最主要的功能是向服务器发送数据,如果立即进入psm状态,数据就不能发送了。所以,本实施例中,在进入psm状态之前,等待所有待发送的数据都发送完成。通常情况下,mcu通过at命令使nb模组向服务器发送数据,nb模组根据数据传输协议,将待发送的数据分为一个或者多个数据包向服务器发送,从而出现有些数据包正在发送,有些数据包等待发送的情况。

步骤704,所述nb模组继续发送数据,等待发送数据完成。

步骤705,所述nb模组判断当前是否为idle状态。如果当前为idle状态,则执行步骤707;如果当前不是idle状态,则执行步骤706。

其中,当所述nb网络给所述nb模组发送rrc释放信令时,nb模组即可进入idle状态。因此,步骤705中可以根据是否收到rrc释放信令来判断,如果已经收到rrc释放信令,nb模组就会进入idle状态,则可以跳过步骤706。如果还没有收到rrc释放信令,nb模组也不需要等待rrc释放信令,直接执行步骤706。

步骤706,所述nb模组进入idle状态。

步骤707,所述nb模组判断是否已经开启定时器(activetimer)。如果是,则执行步骤708;如果未开启定时器,则执行步骤711。

相关技术中,所述nb模组进入psm状态之前会先开启定时器(activetimer)。其中,可以根据该定时器的handle(句柄)来判断是否已经开启了该定时器。

步骤708,所述nb模组检查是否存在快速进入psm标志。如果是,则执行步骤709;如果否,则执行步骤710。

其中,快速进入psm标志是步骤702设置的,步骤708根据步骤702中设置的方式,去检查该标志是否存在,比如,快速进入psm标志是一个变量,则检查该变量是否存在。比如,设置zpsm_flag=1作为快速进入psm标志,如果zpsm_flag=1则表示存在快速进入psm标志,如果zpsm_flag不等于1则表示不存在快速进入psm标志。

步骤709,所述nb模组关闭定时器(activetimer),执行步骤711。

步骤710,所述nb模组等待定时器(activetimer)超时,在定时器(activetimer)超时后,执行步骤711。

步骤711,所述nb模组进入psm状态。

本实施例中,mcu发送完数据之后,命令nb模组进入psm状态,nb模组不用等待rrc释放信令以及等待activetimer超时,可以直接进入psm状态,降低了功耗。另外,本实施例提供的方案,可以避免出现故障时,由于接收不到rrc释放信令导致无法进入psm状态以致耗尽设备电量的问题。

需要说明的是,在其他实施例中,也可以不判断是否已经开启定时器,直接进入psm状态。判断是否开启定时器主要是为了兼容相关技术中使用定时器的nb模组。

需要说明的是,在其他实施例中,也可以不设置快速进入psm标志。设置快速进入psm标志可以进行向下兼容,兼容已有的不支持本申请方案的nb模组。

图8为本发明一实施例提供的进入低功耗状态的方法流程图,如图8所示,包括:

步骤801,mcu给nb模组发送at命令,通过nb模组向服务器发送数据;

比如,mcu给nb模组发送at命令:at+zipsend=3,000000<cr><lf>。nb模组回复<cr><lf>ok<cr><lf>给mcu,nb模组开始向服务器发送数据。

步骤802,mcu给nb模组发送at命令,命令nb模组进入psm状态。

比如,mcu给nb模组发送如下at命令:at+zpsm=1<cr><lf>。

需要说明的是,此处at命令仅为示例,可以定义其他at命令为进入psm状态的命令。

nb模组回复<cr><lf>ok<cr><lf>给mcu。

步骤803,nb模组设置快速进入psm标志。

所述设置快速进入psm标志比如,nb模组在内存中设置zpsm_flag=1。当然,此处仅为示例,可以使用其他信息作为快速进入psm标志。

步骤804,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤805,所有数据发送完成后,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果未接收到rrc释放信令,执行步骤806;如果已进入idle状态,执行步骤807;

步骤806,nb模组不等待接收rrc释放信令,立即进入idle状态。

步骤807,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤808;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤811;

步骤808,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤809;如果zpsm_flag的值为0,则执行步骤810;

本实施例中,由于收到at命令(at+zpsm=1<cr><lf>)之后已经设置zpsm_flag=1,所以这里会立即执行步骤809。

步骤809,nb模组关闭定时器(activetimer),执行步骤811;

步骤810,nb模组继续等待定时器超时,定时器超时后,执行步骤811;

步骤811,nb模组进入psm状态。

由上述步骤可见,mcu给nb模组发送快速进入psm的命令,nb模组收到该命令后不再等待rrc释放信令和activetimer超时、立即进入idle状态并且立即进入psm状态。该方法可以使nb模组快速进入psm状态,有效地降低了功耗。

在另一实施例中,mcu给nb模组发送进入psm的命令,可以是上述实施例中的at命令,也可以是gpio管脚电平的变化。如图9所示,包括:

步骤901,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如,mcu发送如下at命令:at+zipsend=3,000000<cr><lf>。nb模组向mcu回复<cr><lf>ok<cr><lf>,nb模组开始向服务器发送数据。

步骤902,mcu改变该mcu和nb模组连接的gpio管脚电平,命令nb模组进入psm状态。

其中,mcu改变gpio管脚电平的方式,包括但不限于设置gpio高电平、设置gpio低电平、设置gpio高电平持续一段时间之后设置低电平、设置gpio低电平持续一段时间之后设置高电平。需要说明的是,所述gpio管脚不限于mcu和nb模组连接的gpio管脚,也可以是nb模组与其他部件进行连接的gpio管脚。其他实施例中类似,不再赘述。

步骤903,nb模组设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤904,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤905,所有数据发送完成后,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果未接收到rrc释放信令,执行步骤906;如果已进入idle状态,执行步骤907;

步骤906,nb模组不等待接收rrc释放信令,立即进入idle状态。

步骤907,nb模组判断是否已经开启定时器(activetimer)。如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤911;如果已经开启了定时器(activetimer),执行步骤908;

步骤908,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤909;如果zpsm_flag的值为0,则执行步骤910;

本实施例中,由于在mcu改变和mcu和nb模组连接的gpio管脚电平之后已经设置zpsm_flag=1,所以这里会立即执行步骤909。

步骤909,nb模组关闭定时器(activetimer),执行步骤911;

步骤910,nb模组继续等待定时器超时,定时器超时后,执行步骤911;

步骤911,nb模组进入psm状态。

由上述步骤可见,mcu给nb模组发送快速进入psm命令,nb模组收到快速进入psm命令后不再等待rrc释放信令和activetimer超时,立即进入idle状态并且立即进入psm状态。

前边的实施例中从连接(connect)状态进入psm状态,也可以扩展为从idle状态进入psm状态。例如下边的两个实施例。

本发明一实施例提供一种进入低功耗状态的方法,如图10所示,包括:

步骤1001,nb模组当前处于idle状态。

步骤1002,mcu给nb模组发送at命令,命令nb模组进入psm状态。

比如,mcu发送如下at命令:at+zpsm=3<cr><lf>。nb模组回复<cr><lf>ok<cr><lf>给mcu。

步骤1003,所述nb模组接收到所述进入psm的命令后,设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1004,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1005;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1008;

步骤1005,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1006;如果zpsm_flag的值为0,则执行步骤1007;

本实施例中,由于收到at命令(at+zpsm=3<cr><lf>)之后已经设置zpsm_flag=1,所以这里会执行步骤1006。

步骤1006,nb模组关闭定时器(activetimer),执行步骤1008;

步骤1007,nb模组继续等待定时器超时,定时器超时后,执行步骤1008;

步骤1008,nb模组进入psm状态。

本发明一实施例提供一种进入低功耗模式的方法,如图11所示,包括:

步骤1101,nb模组当前处于idle状态。

步骤1102,mcu改变mcu和nb模组连接的gpio管脚电平,命令模组进入psm状态。

其中,mcu改变gpio管脚电平的方式,包括但不限于拉高预设的gpio管脚的电平,或者拉低预设的gpio管脚的电平,设置gpio管脚为高电平持续一段时间之后变为低电平、设置gpio管脚为低电平持续一段时间之后变为高电平,等等。

步骤1103,nb模组设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1104,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1105;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1108;

步骤1105,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1106;如果zpsm_flag的值为0,则执行步骤1107;

本实施例中,由于在mcu改变和mcu和nb模组连接的gpio管脚电平之后已经设置zpsm_flag=1,所以这里会立即执行步骤1106。

步骤1106,nb模组关闭定时器(activetimer),执行步骤1108;

步骤1107,nb模组等待定时器超时,定时器超时后,执行步骤1108;

步骤1108,nb模组进入psm状态。

上述实施例可以有效的降低nb模组的功耗,在一实施例中,nb模组快速进入psm状态时,还可以通知nb网络,nb网络可以快速释放该终端的连接,以达到释放资源的目的。

nb模组发送完数据候通知nb网络,nb网络立即给nb模组发送rrc释放信令,nb模组收到rrc释放信令之后,快速进入psm。如图12所示,包括:

步骤1201,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如,mcu向nb模组发送at命令:at+zipsend=3,000000<cr><lf>。nb模组向mcu回复<cr><lf>ok<cr><lf>,nb模组开始向服务器发送数据。

步骤1202,mcu给nb模组发送at命令,命令nb模组进入psm状态。

比如,mcu给nb模组发送at命令:at+zpsm=1<cr><lf>。nb模组向mcu回复<cr><lf>ok<cr><lf>。需要说明的是,此处仅为示例,可以定义其他at命令作为进入psm状态的命令。

当然,在另一实施例中,步骤1202也可以替换为:mcu改变和mcu和nb模组连接的gpio管脚电平,命令nb模组进入psm状态。

步骤1203,nb模组设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1204,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤1205,nb模组发送完数据,向nb网络发送释放rrc请求信令。

步骤1206,nb网络收到释放rrc请求信令,给该nb模组发送rrc释放信令,并释放rrc连接。

步骤1207,nb模组收到rrc释放信令,进入idle状态。

步骤1208,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1209;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1212;

步骤1209,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1210;如果zpsm_flag的值为0,则执行步骤1211;

本实施例中,由于收到at命令(at+zpsm=1<cr><lf>)之后已经设置zpsm_flag=1,所以这里会立即执行步骤1210。

步骤1210,nb模组关闭定时器(activetimer),执行步骤1212;

步骤1211,nb模组等待定时器超时,定时器超时后,执行步骤1212;

步骤1212,nb模组进入psm状态。

在另一实施例中,nb模组发送完数据通知nb网络,nb网络直接释放rrc连接;nb模组不等待接收rrc释放信令,立即进入psm状态。如图13所示,包括:

步骤1301,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如,mcu向nb模组发送at命令:at+zipsend=3,000000<cr><lf>。

nb模组向mcu回复<cr><lf>ok<cr><lf>,nb模组开始向服务器发送数据。

步骤1302,mcu给nb模组发送at命令,命令nb模组进入psm状态。

比如,mcu给nb模组发送如下at命令:at+zpsm=1<cr><lf>。nb模组向mcu回复<cr><lf>ok<cr><lf>。

当然,在另一实施例中,步骤1302也可以替换为:mcu改变mcu和nb模组连接的gpio管脚电平,命令nb模组进入psm状态。

步骤1303,nb模组设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1304,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤1305,nb模组发送完数据,向nb网络发送释放rrc请求信令。

步骤1306,nb网络收到释放rrc请求信令,释放rrc连接。

步骤1307,nb模组不等待接收rrc释放信令,立即进入idle状态。

步骤1308,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1309;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1312;

步骤1309,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1310;如果zpsm_flag的值为0,则执行步骤1311;

本实施例中,由于收到at命令(at+zpsm=1<cr><lf>)之后已经设置zpsm_flag=1,所以这里会立即执行步骤1310。

步骤1310,nb模组关闭定时器(activetimer),执行步骤1312;

步骤1311,nb模组继续等待定时器超时,定时器超时后,执行步骤1312;

步骤1312,nb模组进入psm状态。

需要注意的是,在上述两个实施例中,nb模组向nb网络发送释放rrc请求信令,该信令并非nb协议中规定的标准信令,是扩展信令,需要nb模组和nb网络进行支持。

前文的实施例mcu给nb模组发送快速进入psm的命令,nb模组进入psm是由mcu发起的,上述方案也可以扩展为nb模组自身在发送完数据后快速进入psm。如图14所示,包括:

步骤1401,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如,mcu发送at命令给nb模组:at+zipsend=3,000000<cr><lf>。nb模组回复<cr><lf>ok<cr><lf>给mcu,nb模组开始向服务器发送数据。

步骤1402,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤1403,nb模组在数据发送完成后,设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1404,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果已进入idle状态,执行步骤1404;如果未接收到rrc释放信令,执行步骤1405;

步骤1405,nb模组不等待接收rrc释放信令,立即进入idle状态。

步骤1406,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1407;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1410;

步骤1407,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1408;如果zpsm_flag的值为0,则执行步骤1409;

本实施例中,由于发送数据之后已经设置zpsm_flag=1,所以这里会立即执行步骤1408。

步骤1408,nb模组关闭定时器(activetimer),执行步骤1410;

步骤1409,nb模组继续等待定时器超时,定时器超时后,执行步骤1410;

步骤1410,nb模组进入psm状态。

需要说明的是,在另一实施例中,步骤1404和步骤1405替换为:

步骤1404a:nb模组在数据发送完成后,向nb网络发送释放rrc请求信令。

步骤1405a:nb模组接收nb网络发送的rrc释放信令,进入idle状态。

在另一实施例中,步骤1404替换为:

步骤1404b:nb模组在数据发送完成后,向nb网络发送释放rrc请求信令。

前文的实施例都是mcu连接nb模组的情况,在一些情况下,终端设备中没有mcu这个硬件单元,或者mcu的控制程序集成到nb模组内部。上述方案也可以扩展为nb模组没有外置连接mcu的情况下,nb模组自身在发送完数据后快速进入psm状态。如图15所示,包括:

步骤1501,nb模组向服务器发送数据,并等待所有数据发送完成。

步骤1502,nb模组在数据发送完成后,设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1503,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果未接收到rrc释放信令,执行步骤1404;如果已进入idle状态,执行步骤1403;

步骤1504,nb模组不等待接收rrc释放信令,立即进入idle状态。

步骤1505,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1506;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1509;

步骤1506,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1507;如果zpsm_flag的值为0,则执行步骤1508;

本实施例中,由于发送数据之后已经设置zpsm_flag=1,所以这里会立即执行步骤1507。

步骤1507,nb模组关闭定时器(activetimer),执行步骤1509;

步骤1508,nb模组继续等待定时器超时,定时器超时后,执行步骤1509;

步骤1509,nb模组进入psm状态。

需要说明的是,在另一实施例中,步骤1503和步骤1504替换为:

步骤1503a:nb模组在数据发送完成后,向nb网络发送释放rrc请求信令。

步骤1504a:nb模组接收nb网络发送的rrc释放信令,进入idle状态。

在另一实施例中,步骤1503替换为:

步骤1503b:nb模组在数据发送完成后,向nb网络发送释放rrc请求信令。

前文的实施例中,nb模组进入psm是由mcu发起的,或者nb模组自身发起的,该方案也可以扩展为由nb网络发起,即nb网络发送rrc释放信令给nb模组,nb模组收到rrc释放信令后,快速进入psm状态。如图16所示,包括:

步骤1601,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如mcu发送at命令给nb模组,比如如下at命令:at+zipsend=3,000000<cr><lf>。

nb模组回复<cr><lf>ok<cr><lf>给mcu,nb模组开始向服务器发送数据。

步骤1602,nb模组发送完数据,等待nb网络发送rrc释放信令。

步骤1603,nb模组收到nb网络发送的rrc释放信令,进入idle状态。

步骤1604,nb模组设置快速进入psm标志。

比如,nb模组在内存中设置zpsm_flag=1。

步骤1605,nb模组判断是否已经开启定时器(activetimer)。如果已经开启了定时器(activetimer),执行步骤1606;如果还没有开启定时器(activetimer),则不必开启该定时器,执行步骤1609;

步骤1606,nb模组检查内存中zpsm_flag的值。如果zpsm_flag的值为1,则执行步骤1607;如果zpsm_flag的值为0,则执行步骤1608;

本实施例中,由于收到rrc释放信令之后已经设置zpsm_flag=1,所以这里会立即执行步骤1607。

步骤1607,nb模组关闭定时器(activetimer),执行步骤1609;

步骤1608,nb模组继续等待定时器超时,定时器超时后,执行步骤1609;

步骤1609,nb模组进入psm状态。

需要说明的是,在另一实施例中,步骤1602替换为:

步骤1602a,nb模组发送完数据,向nb网络发送释放rrc请求信令,等待nb网络发送rrc释放信令。

mcu给nb模组发送快速进入psm的命令,可以扩展为快速进入idle状态的命令。下面通过两个实施例进一步说明。

本发明一实施例提供一种进入空闲状态的方法,如图17所示,包括:

步骤1701,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

比如,mcu向nb模组发送at命令:at+zipsend=3,000000<cr><lf>。

nb模组回复<cr><lf>ok<cr><lf>给mcu,nb模组开始向服务器发送数据。

步骤1702,mcu给nb模组发送at命令,命令nb模组进入idle状态。

例如,mcu向nb模组发送如下at命令:at+zpsm=2<cr><lf>。

nb模组向mcu回复<cr><lf>ok<cr><lf>。

步骤1703,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤1704,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果未接收到rrc释放信令,执行步骤1705,如果已进入空闲状态,执行步骤1706;

步骤1705,nb模组不等待接收rrc释放信令,立即进入idle状态,结束;

步骤1706,结束。

本实施例提供的方案,nb模组可以接收到mcu的进入空闲状态的命令后,快速进入空闲状态,无需等待rrc释放信令,降低了功耗。本实施例中,后续所述nb模组可以启动定时器(activetimer),在所述定时器超时后,所述nb模组进入psm状态。当然,也可以直接进入psm状态。

本发明另一实施例提供一种进入空闲状态的方法,如图18所示,包括:

步骤1801,mcu给nb模组发送at命令,通过nb模组向服务器发送数据。

mcu给nb模组发送at命令:at+zipsend=3,000000<cr><lf>。

nb模组给mcu回复<cr><lf>ok<cr><lf>,开始向服务器发送数据。

步骤1802,mcu改变mcu和nb模组连接的gpio管脚的电平,命令nb模组进入idle状态。

其中,mcu改变gpio管脚电平的方式,包括但不限于:设置gpio管脚为高电平、设置gpio管脚为低电平、设置gpio管脚为高电平持续一段时间之后变化为低电平、设置gpio管脚为低电平持续一段时间之后变化为高电平。

步骤1803,nb模组检查是否还有正在发送和待发送的数据,等待所有数据发送完成。

步骤1804,nb模组检查是否已经收到rrc释放信令并且进入idle状态。如果未接收到rrc释放信令,执行步骤1805;如果已进入idle状态,执行步骤1806;

步骤1805,nb模组不等待接收rrc释放信令,立即进入idle状态,结束;

步骤1806,结束。

本实施例提供的方案,nb模组可以快速进入空闲状态,无需等待rrc释放信令,降低了功耗。本实施例中,后续所述nb模组可以启动定时器(activetimer),在所述定时器超时后,所述nb模组进入psm状态。当然,也可以直接进入psm状态。

如图19所示,本发明一实施例提供一种进入低功耗状态的装置190,包括存储器1910和处理器1920,所述存储器1910存储有程序,所述程序在被所述处理器1920读取执行时,实现任一实施例所述的进入低功耗状态的方法。

本发明一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现任一实施例所述的进入低功耗状态的方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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