我是靠谱客的博主 饱满小懒虫,最近开发中收集的这篇文章主要介绍模组使用之NB-IoT模组的工作模式、PSM、DRX和eDRX状态说明,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  模组主要由 Modem 和 AP 两部分组成, Modem主要负责与核心网的通信, AP部分主要负责操作系统
及应用层程序的运行。
  AP有两种工作模式:

  • Normal:工作状态,此模式下 AP 有任务正在处理,如有 AT 命令交互等。
  • Idle:空闲状态,当 AP 所有任务处于挂起状态, AP 将会进入 Idle 模式。

  Modem有三种工作模式:

  • Connected:连接状态,此模式下模块可以进行数据发送和接收。 Modem 在此模式下可切换到 DRX/eDRX 模式或 PSM 模式。
  • Idle:空闲状态,Idle状态又分为两种方式:DRX和eDRX,在Idle模式下只有寻呼窗口内可接收下行数据。Modem 在此模式下可切换至 Connected 或 PSM 模式。
  • PSM:省电状态,Modem 处于非连接状态,无法接收下行数据。 Modem 在此模式下可切换至 Connected 模式。

  由AP和Modem的工作模式共同决定了模组的三种工作模式:

  • Active:唤醒状态,当 AP 处于 Normal 状态或 Modem 处在 Connected 状态时,模块将处于 Active 模式,此模式下所有业务都可正常处理,功耗最高。
  • Light Sleep:轻休眠状态, 当 AP 处于 Idle 并且 Modem 处于 Idle 状态时,模块将进入 Light Sleep(轻休眠) 模式。 此时 AP 的任务被挂起, Modem不接收下行数据或者仅在寻呼窗口接收下行数据,功耗会大幅下降到 μA级别。
  • Deep Sleep:深休眠状态: 当 AP 处于 Idle 并且 Modem 进入 PSM 模式,模块将进入Deep Sleep(深休眠) 模式。 此时 CPU 会掉电,仅仅只有内部 RTC 仍在工作; 模块功耗最低, 仅 3.7μA 左右。

  如果Modem的Idle状态的工作方式是DRX,我们来看看模组的整个工作过程:
在这里插入图片描述
1、模组上电,上电后模组入网,Modem处于Connected状态,在此模式下,模组与基站处于连接状态,可以随时发送和接收数据。
2、无数据交互一段时间后,RRC就会释放,Modem进入Idle状态。为了节省功耗,模块于每个 DRX 周期监听一次寻呼信道,以检查是否有下行业务到达。如果一直没有数据交互,那么T3324时间后,Modem就会进入PSM状态,反之,如果突然有数据交互,那么Modem就会回到Connected状态。
3、Modem进入PSM状态后,就不会与基站有交互了,此时虽然依旧注册在网络中,但信令不可达,模块无法收到下行数据,直到T3412时间后或者有上行数据需要传输,Modem才会回到Connected状态。
4、T3412时间到后,Modem进入Connected状态,如果还没有数据交互,那么Modem直接进入PSM。(如果一直没有数据交互,Modem会一直进行这个循环)
5、如果在PSM状态下,有数据需要上传,Modem马上进入Connected状态,传完后,又进入Idle状态,T3324时间后,进入PSM状态。

注:

  1. 常见的 DRX 周期(DRX cycle)为 1.28 秒和 2.56 秒。
  2. DRX周期由网络决定,模块不可配。
  3. T3324时间又叫TAU 周期。

  如果Modem的Idle状态的工作方式是eDRX,我们来看看模组的整个工作过程:
在这里插入图片描述
  可以看到,eDRX模式在DRX的基础上又增加了eDRX周期,这样对基站的寻呼次数更少,更节能,但是也会导致更长的下行数据延时。模块只能在 PTW 内按 DRX周期监听寻呼信道,以便接收下行业务; PTW 外的时间不监听寻呼信道、不能接收下行业务。

注:

  1. eDRX 周期通常为 20.48 秒或 81.92 秒。
  2. 模组这侧有命令可以配置 eDRX 周期,但是最终由网络决定是否接受配置。


NB-IoT模组为什么不能实时接收下行数据?

在网络状态正常,模组功能正常的情况下,下列两个问题都有可能引起模组收不到下行数据:

(1)NB-IoT网络中,为了实现低功耗特点,引入了PSM机制和eDRX机制,终端模组在处于PSM状态和eDRX的非寻呼时间窗阶段时,无法监听来自核心网的下行寻呼,从而出现收不到下行数据的现象。

(2)此外,模组通信使用UDP协议,在传输网中,由于传输资源有限,不能无限制的维持UDP连接;所以,传输网引入了NAT映射老化机制,在当前UDP链路持续段时间不使用的情况下,传输网会回收当前UDP资源,分配给其他用户使用;从而导致传输链路中断,模组收不到下行数据的现象(目前公网的UDP映射老化时间大约为1~2min)。

  要实现数据下发,可以通过终端主动发送上行数据唤醒模组,模组自动构建数据链路;上级服务器接收到终端的上行数据后,在模组重新进入PSM状态以及传输网UDP映射回收之前,执行下行数据发送,即可完成数据下发。

  若需要实现实时下行数据业务,则需要针对上述两个方面做针对性处理,目前有两种方案可以实现实时下行数据业务:

  方案1:使用AT指令关闭模组PSM和eDRX功能,使终端不再进入低功耗状态,从而保持与接入网的连接,保证随时能收到核心网下发的寻呼;并且应用层设计1min为周期的心跳机制,维持UDP映射不被传输网回收。

  方案2:使用AT指令关闭模组PSM和eDRX功能,使终端不再进入低功耗状态,从而保持与接入网的连接,保证随时能收到核心网下发的寻呼;并且协调运营商开通专用APN,并通过GRE隧道的方式,保持长连接,此种方案下,无需使用心跳保持长连接状态。

  在保持长连接的情况下,模组无法进入低功耗状态,无低功耗功能。

最后

以上就是饱满小懒虫为你收集整理的模组使用之NB-IoT模组的工作模式、PSM、DRX和eDRX状态说明的全部内容,希望文章能够帮你解决模组使用之NB-IoT模组的工作模式、PSM、DRX和eDRX状态说明所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部