查看NB-IoT的源代码
←
NB-IoT
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== PM == === 深度休眠 === 深度休眠时,除 RTC 时钟,硬件外设全断电,最低功耗,约 3uA <source lang=bash> AT+SM=LOCK # 关闭深度休眠 AT+SM=LOCK_FOREVER # 关闭深度休眠,此设置断电保持 AT+SM=UNLOCK # 打开 deep sleep AT+SM=UNLOCK_FOREVER # 打开 deep sleep,此设置断电保持 AT*SLEEP=1 # 深度休眠时串口打印提示,断电后无效 AT*MATWAKEUP=1 # 退出深度休眠时串口打印提示,断电后无效 </source> 只有进入 PSM 状态后,满足如下条件才可进入深度休眠: * AT+SM=UNLOCK_FOREVER 使能深度睡眠 * 断开模组 TCP 连接 '''模组要想成功进入深度睡眠,则睡眠前 10 秒 MCU 不能向模组发任何 AT 指令''' '''深度睡眠唤醒:''' * 硬件拉低 Power_onoff 唤醒。需拉低 83ms,触发后芯片启动时间为 173ms * 硬件拉低 wakeup_in 唤醒。需拉低 53ms,触发后芯片启动时间为 143ms * T3412 定时到,自动从 PSM 醒来,此时模组处于在网(ACTIVE)状态,可接收下行数据。此种唤醒方式模组在经过:ACTIVE 时间+T3324 延时后才能再次进入 PSM/深度休眠状态。 硬件唤醒模组方式,模组仍处于 PSM 状态,模组此时不在网,无法接收下行 数据,需MCU主动发送带网络交互的AT指令 (如AT+PING 、AT+MIPLUPDATE), 模组才退出 PSM 状态。 <br> === PSM 状态 === * PSM: 网络协议栈、射频全关,硬件外设未断电,可发 AT * PSM≠深度睡眠;只有深度休眠时模组功耗最低,约 3uA 1) 模组进入了 PSM 状态不一定能进深度睡眠,进入 PSM 后再进入深度睡眠必须满足两个条件:① AT+SM=UNLOCK_FOREVER 使能深度睡眠 ② 断开模组 TCP 连接 2) 使用模组 wakeup_in 引脚唤醒深度睡眠后,模组仍处于 PSM 状态,若要退出 PSM 需要 MCU 发送有网络交互(如 AT+PING AT+MIPLUPDATE 等)的指令 <source lang=bash> AT+CPSMS=0 # disable the use of PSM AT+CPSMS=1 # enable the use of PSM AT+CPSMS? +CPSMS: 1,,,"00100011","00100010" </source> T3412 = 1h x 3, T3324 = 1min x 2 * T3412: Requested extended periodic TAU value (GPRS Timer 3 information element) * T3324: Requested Active Time value (GPRS Timer 2 information element) <source lang=bash> AT+CPSMS=1,,,"T3412","T3324" # 使能模组 PSM 功能,并根据需要设置模组 T3324 的值,T3324 和 T3412 值的编码格式参考 GPRS timer 3(AT 文档附录),当前模组端只能设置 T3324 值,其值开卡时已固定,模组端无法修改 AT+CEREG=5 # 确认 PSM 参数是否设置成功 AT+CEREG? +CEREG: 5,1,"5F12","01248A1C",9,"00",0,0,"00100010","00100011" # 参考 AT 手册,最后两个参数分别代表 T3324 和 extended periodic TAU value(T3412) </source> 高 3 位为单位,低 5 位为值: Table 10.5.163a/3GPP TS 24.008: GPRS Timer 3 information element (T3412) <source lang=bash> 8 7 6 0 0 0 value is incremented in multiples of 10 minutes 0 0 1 value is incremented in multiples of 1 hour 0 1 0 value is incremented in multiples of 10 hours 0 1 1 value is incremented in multiples of 2 seconds 1 0 0 value is incremented in multiples of 30 seconds 1 0 1 value is incremented in multiples of 1 minute 1 1 0 value is incremented in multiples of 320 hours (NOTE) 1 1 1 value indicates that the timer is deactivated. </source> '''NOTE:''' This timer value unit is only applicable to the T3312 extended value IE and T3412 extended value IE (see 3GPP TS 24.301 [120]). If it is received in an integrity protected message, value shall be interpreted as multiples of 320 hours. Otherwise value shall be interpreted as multiples of 1 hour. * e.g. "01000111" equals 70 hours Table 10.5.172/3GPP TS 24.008: GPRS Timer 1/2 information element (T3324) <source lang=bash> Bits 6 to 8 defines the timer value unit for the GPRS timer as follows: 8 7 6 0 0 0 value is incremented in multiples of 2 seconds 0 0 1 value is incremented in multiples of 1 minute 0 1 0 value is incremented in multiples of decihours 1 1 1 value indicates that the timer is deactivated. Other values shall be interpreted as multiples of 1 minute in this version of the protocol. </source> * e.g. "00100100" equals 4 minutes [[文件:M5311-T3324-T3412.jpg]] '''当前模组端只能设置 T3324 值,T3412 值开卡时已固定 , 模组端无法修改''' [[文件:10086.NB-IoT.Modes.png | 600px]] 如下命令注销,设备即从 OneNet 下线: AT+MIPLCLOSE = 0 <br> === CMDs === <source lang=bash> AT+CEDRXS=1,5 # 使能 eDRX 功能 AT+CEDRXS? +CEDRXS: 5,"0101" AT+CPSMS=1 # enable the use of PSM AT+SM=UNLOCK_FOREVER # 使能深度休眠,此设置断电保持 AT*NBIOTRAI # 配置模组数据业务后,快速进入 IDLE 态达到节省功耗目的 AT+CSCON=1 # 设置模组断开 RRC 连接进入 idle 态自动提示,断电后无效 AT+CMSYSCTRL # 使能/配置 LED 状态灯:STATE/WAKEUP_OUT,为节省功耗(AT+CMSYSCTRL=1,1,AT+CMSYSCTRL=0,2) AT*SLEEP=1 # 模组进入深度休眠时串口打印提示,断电后无效 AT*MATWAKEUP=1 # 模组退出深度休眠时串口打印提示,断电后无效 </source> <br>
返回到
NB-IoT
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面