模组使用之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隧道的方式,保持长连接,此种方案下,无需使用心跳保持长连接状态。

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

  • 14
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
单片机与NB-IoT模组通讯的代码主要包括以下几个步骤: 1. 硬件连接:首先,需要将单片机与NB-IoT模组进行硬件连接。通常情况下,单片机的串口(UART)与NB-IoT模组的串口进行连接,并且确保单片机和模组之间的电源和地线连接正确。 2. 初始化模组:在代码中,需要对NB-IoT模组进行初始化操作。这包括设置串口通信的波特率、数据位、停止位等参数,还可以设置模组工作模式等。 3. 建立网络连接:通过发送相应的AT指令,可以在代码中实现与NB-IoT网络的连接。这通常涉及到设置APN等网络参数,并发送SIM卡中的鉴权信息。 4. 发送数据:一旦成功连接到NB-IoT网络,就可以使用单片机发送数据到服务器。在代码中,可以设置需要发送的数据,然后通过AT指令将数据发送给NB-IoT模组。同时,需要设置模组的数据传输协议和传输方式等。 5. 接收数据:除了发送数据,单片机还可以接收来自服务器的数据。通过监听串口,当模组接收到服务器发送的数据时,单片机可以读取数据并进行相应的处理。 6. 断开网络连接:在通信完成后,可以通过发送相应的AT指令来断开与服务器的连接,释放资源。 以上是一个简单的单片机与NB-IoT模组通讯的代码框架。具体实现时,需要根据单片机和NB-IoT模组的型号和厂家提供的通信协议进行代码编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【ql君】qlexcel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值