一、概述

在使用BC35 NB-IOT模块和服务交互时,用电流表记录整个交互过程的电流消耗情况,发现一次数据交互,包含终端服务器数据到服务器,服务器应答终端,模块从唤醒到进入PSM,周期大概为45s,但是终端发送数据到收到服务器的应答,时长大概为15s,收到服务器应答后,模块还处于连接状态,等待核心网检测到终端不活动超时(大约20s)后才释放RRC连接,模块随后进入eDRX状态,时长由PTW的参数决定,我一般配置为10.24s,然后终端进入PSM状态,如果模块收到服务器的应答后能立即进入PSM,则能节约20s时间的大电流(2mA)消耗。

进一步查询BC35相关手册发现,可使用RAI功能。RAI为释放辅助指示,模组发送上行数据时携带 RAI 指示标志,核心网根据此指示标志来决定是否需要立即释放当前 RRC 连接状态,具体指示标志有两种:
⚫ 当前数据发送完成后,后续没有上行或下行数据,则立即释放 RRC 连接;
⚫ 当前数据发送完成后,仅有一条下行数据(如应答或对上行数据的响应),且后续没有其他上行
数据交互,则立即释放 RRC 连接。

1、未使用释放辅助指示

终端在最后一次数据交互后等待 20 秒的连接态时长才可离开高功耗的连接态。

2、使用释放辅助指示

二、FLAG定义

0x200 RRC 连接释放指示: 上行数据发送完成后, 指示核心网立即释放连接;
0x400 RRC 连接释放指示: 上行数据发送完成并收到下行数据回复后, 指示核心网立即释放连接;
需要注意的是,如果服务器会对终端发送的数据做应答,那么需要使用0x400 flag,指示核心网在终端收到下行数据时释放RRC连接;如果这种情况使用0x200 flasg,那么终端发送上行数据后,核心网会根据RAI指示立即释放RRC连接,终端进入eDRX状态,此时终端还能接收下行数据,在PTW时间内,终端收到下行数据,终端会再次进入连接状态,直到核心网检测到终端不活动超时(大约20s)后才释放RRC连接,终端才能进入eDRX状态,然后进入PSM。
如果服务器不会对终端发送的数据做应答,那么需要使用0x200 flag。

三、启用RAI功能

BC35模块默认RAI功能为FALSE,需要发送AT+NCONFIG=RAI,TRUE(加上\r\n)指令开启RAI功能,发送此指令之后需要重启模块,RAI功能才能生效。执行AT+CSCON(加上\r\n)命令使能URC上报功能,通过URC的上报状态,可判断标志位是否生效。

四、指令示列

AT+NSOSTF=0,220.180.239.212,8052,0x200,2,AB30//使用 0x200 标志位发送数据
AT+NSOSTF=0,220.180.239.212,8052,0x400,2,AB30//使用 0x400 标志位发送数据

五、实测

BC35模块开启了RAI功能,在服务器无应答的情况下发送了两包数据,第一包数据的RAI标志为0x400,第二包数据的RAI标志为0x200

BC35模块开启了RAI功能,在服务器无应答的情况下发送了两包数据,第一包数据的RAI标志为0x200,第二包数据的RAI标志为0x200

BC35模块开启了RAI功能,在服务器有应答的情况下发送了两包数据,第一包数据的RAI标志为0x200,第二包数据的RAI标志为0x200

BC35 RAI功能应用相关推荐

  1. NB-IoT设备并发错峰及优化方法

    通过上一篇<重要!NB-IoT模组选型及项目初始必看!>(网址:http://onemo10086.com/#/school/article/270 )我们知道了NB-IoT并发能力有限这 ...

  2. NB-IOT模块 小区重选和异频组网详解

    概述 关于NB-IOT模块 小区重选和异频组网详解. 异频组网是指同一区域基站的小区频点配置是不同的. 启动异频组网的原因在于同频组网有以下劣势: ●所有基站小区都是同一频点会导致同频干扰,提升了通信 ...

  3. 大尺度功能脑组织结构:6个主要原则

    在前二十年对人脑功能图谱的研究中,人们主要想去找到的是对应于特定实验操作的脑响应所在的具体脑区.但人们逐渐发现大多数的认知功能都需要多个脑区的协同工作,所以最初那种画出个体大脑的认知图谱的目标就被认为 ...

  4. TI 评级报告 | RAI Finance:B,展望正面

    ↯ 要点总结 RAI Finance 是基于波卡 Polkadot 网络的跨链交易协议,由中国韩国团队合力开发,旨在通过 Polkadot 的 Parachain 连接和集成,为协议内各种资产提供发行 ...

  5. Arduino 使用 BC26/BC35 连接至阿里云平台

    Arduino BC26/BC35 连接阿里云平台 一.前言 二.开始调试前的准备工作 1.通信模块的选择与软件版本 2.固件的烧录 3.调试前需要一个干净的桌面 三.开始调试硬件 四.阿里云平台的设 ...

  6. 如果你没用过maven的install,你应该了解一下!maven中的install功能及用法。

    maven中有一个大多数人都忽视或者没有用到过的一个功能--install,大多数java开发人员都了解maven,使用maven进行依赖管理.但使用的大多数功能不过是clean清理.compile编 ...

  7. 一个form表单,多个提交按钮(实现不同功能和地址的提交)

    直接上代码 表单部分: <form action="" name="find" method="post" enctype=" ...

  8. nginx介绍及常用功能

    什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务. Apache:重量级的,不支持高并发的服务器.在Apache上运行数以万计的并发访 ...

  9. java action dao_java中Action层、Service层和Dao层的功能区分

    一.Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DA ...

最新文章

  1. Linux grep,egrep及相应的正则表达式用法详解
  2. 关于一个简易的实时内存监控系统的思维导图
  3. Kingbase金仓更改表空间
  4. 专访格灵深瞳CTO赵勇:为 计算机视觉 赋予智慧的光芒
  5. java 静态类设置null_JAVA中对null进行强制类型转换(null可以强转为任意对象,并执行对象的静态方法)...
  6. 像素游戏的动态光影效果
  7. android120 zhihuibeijing 开机页面
  8. [Computation]集合、关系、语言
  9. WIKIOI 1519 过路费
  10. Spring 由构造函数自动装配
  11. 整理总结一下:git恢复本地误删除的分支
  12. 睡眠音频分割及识别问题(十二)--基于IOS的YAMNet音频识别(总结)
  13. 此计算机到未能识别网络连接,本地连接显示“未识别的网络”
  14. 车险赔付率分析报告_汽车保险理赔案例分析报告.ppt
  15. 设计一个求立方体体积的父类,包含一个显示底面各个形状信息的统一方法,信息显示方式 “类别+周长+面积”;一个计算和显示立方体体积的统一方法 设计三个子类(利用继承关系):圆柱、长方体、三棱柱
  16. 软件自动化测试脚本如何编写,编写自动化测试脚本的几点注意事项
  17. 织梦php版本图片不能上传,让dedecms织梦后台支持上传bmp格式的图片的教程
  18. 一个很有意思的并查集详解
  19. 微信“开放”第三天,互联网有什么不一样?
  20. 一周信创舆情观察(1.11~1.17)

热门文章

  1. 禅道登录显示用户名密码错误
  2. MES的转型升级,智能制造呼唤新理念
  3. 4.23以上UE4 版本HTC-VIVE VR项目打包的注意事项
  4. 老司机 iOS 周报 #62 | 2019-04-08
  5. 【无标题】申请测绘资质的详细流程及所需详细资料有哪些?
  6. 推荐截图小软件--红蜻蜓抓图精灵
  7. 敏捷宣言的内容及准则
  8. LeetCode 6036. 构造字符串的总得分和
  9. 怎么调整计算机安全等级,win10电脑怎么设置安全等级_win10电脑设置安全等级的方法 - 系统家园...
  10. CSS首字母下沉怎么设置?