开发概述

背景简介

窄带物联网(Narrow Band Internet of Things, NB-IoT),构建于蜂窝移动通信网络,实现物与物通信、物与人通信。NB-IoT 聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。

NB-IoT 网络只消耗大约180kHz的带宽,使用 License 频段,可采取带内、保护带或独立载波等三种部署方式,与现有网络共存。可直接部署于 GSM 网络、UMTS 网络或 LTE 网络,以降低部署成本、实现平滑升级。

NB-IoT 特性

特点 NB技术特点 具体取值范围
小数据量 空口资源有限(180khz),适宜小数据通信 50字节~200字节为宜,越小越好
低频次、长周期 大部分终端应长期处于休眠状态,上报数据频次低 按天上报,每天1~2次较为合适。高频次上报(例如30分钟),对网络容量占用大。上报频次越高,对网络容量影响越大。
低功耗 NB网络PSM模式功耗最低 功耗敏感应用优选
低移动性 NB适宜慢速移动 移动速度小于30km/h
深度覆盖 NB覆盖能力较好 可支持地下室等场景覆盖
低速率 上行理论峰值速率15.6kbps,下行理论峰值速率21.25kbps 带宽型大速率的业务不能使用NB承载

NB-IoT 网络结构

image.png

NB-IoT 网络组成包括 NB-IoT 终端、NB-IoT 基站、NB-IoT 分组核心网、IoT 连接管理平台和行业应用服务器。NB-IoT 的接入网构架与 LTE 一样。

NB-IoT 省电模式

NB-IoT业务规模发展与承载业务模型密切相关,其适用场景是“小流量,上报为主,长期休眠,功耗敏感,低移动性”应用。为了实现NB-IoT网络承载海量的低功耗设备,最为重要的技术为:PSM和eDRX

NB-IoT 支持三种省电模式:PSM (Power Saving Mode,省电模式)、DRX(Discontinuous Reception,不连续接收模式),eDRX(Extended DRX,扩展不连续接收模式)。

PSM 模式

终端非业务期间深度休眠,不接收下行数据。只有终端主动发送上行数据(MO Data)时,才可接收 IoT 平台缓存的下行数据 。

在该状态下,终端射频关闭,相当于关机状态。但是核心网侧还保留用户上下文,用户进入空闲态/连接态时无需再附着 PDN 建立。

适合对下行数据无时延要求的业务;终端设备功耗低,采取电池供电方式,如抄表业务。

image.png

image.png

eDRX 模式

终端设备兼顾低功耗和对时延有一定要求的业务。在每个 eDRX 周期内,只有在设置的寻呼时间窗口内,终端可接收下行数据,其余时间终端处于休眠状态,不接收下行数据。该模式可在下行业务时延和功耗之间取得平衡,如远程关闭煤气业务。

image.png

每个eDRX周期内,有一个寻呼时间窗口 PTW( Paging Time Window ),终端在PTW内按照 DRX 周期(DRX 周期时间短,可以认为终端不休眠、一直可达)监听寻呼信道,以便接收下行数据,其余时间终端处于休眠状态。
eDRX 模式可以认为终端设备随时可达,但时延较大,时延取决于 eDRX 周期配置,可以在低功耗与时延之间取得平衡。

DRX 模式

可以认为下行业务随时可达终端设备,在每个 DRX 周期,终端都会检测一次是否有下行业务到达,适用于对时延有高要求的业务。终端设备一般采取供电的方式,如路灯业务。

image.png

由于 DRX 周期短( 1.28s,2.56s,5.12s 或者10.24s,由运营商网络侧设置决定——SIM 卡办理 APN 业务),可认为下行业务随时可达,时延小。
适用于对时延有高要求的业务,但功耗相对较高,终端设备一般采用市电供电方式。

NB-IoT 时延

首次入网时延: NB 终端开机后,终端和网络有较多消息交互(认证,建立通道,分配IP地址等),花费时间较长,需要 6-8s 才完成网络接入,才能获得 IP 地址,用于后期数据传输使用。

数据上报和接收时延:NB 终端接入成功后,当终端有数据传输时,终端会主动和基站建立无线连接(此时不再需要认证、IP地址分配等过程),无线链路建立成功后,立即发送数据。终端进行数据上报的时延与终端所处的状态、无线网络覆盖密切相关。

终端上报数据 平台下发数据(PSM) 平台下发数据(DRX) 平台下发数据(eDRX)
空口时延+专网到客户服务器之间的时延 空口时延+专网到平台之间的时延+PSM最长休眠周期(最大 310小时) 空口时延(750ms)+ DRX寻呼周期(最大为 10.24秒,最小 1.28秒) 空口时延(750ms)+ eDRX寻呼周期(最大为 2.92小时,最小 5.12秒)
秒级(3 秒到 30 秒) 小时/天级别,取决于终端上报周期 秒级,取决于DRX寻呼周期 秒级到小时级,取决于eDRX寻呼周期

NB-IoT 业务受理关键参数

从上述内容可知,NB 应用的低功耗机制和 SIM 卡运营商的配置密不可分。因此,在购买 SIM 卡时请明确好自己所办理的 APN 业务,不同 APN 适用于不同的应用场景。电信相关业务如图所示。

不清楚如何选择 APN 业务时可咨询涂鸦工作人员

TIM截图20191210180449.png

NB-IoT 功耗

终端状态 功耗消耗 某环境实测结果
PSM 状态 3 uA 2.7 uA
eDRX 空闲态 xxuA~2 mA 1 mA
DRX空闲态 1~4mA 1mA
连接状态 发送 200 mA,接收 65 mA 发送 189 mA,接收 161 mA

MCU通用对接方案介绍

当产品功能复杂或SoC方案无法满足需求时,客户可以选择 MCU 对接方案。

在此方案中,涂鸦模组仅作为数据传输通道。

MCU 对接方案常用于大小家电、安防传感等类别的产品。

TIM截图20191210180449.png

优点:相对于市场上 NB-IoT 模组普遍的 AT 指令开发方式,采用涂鸦的 NB-IoT 通用对接串口协议方式,客户的开发门槛更低,维护简单,可以更轻易地实现新产品接入。

固件选型

涂鸦现在已有 MCU 通用对接 NB 模组:PSM 型通用模组、DRX 型通用模组;(eDRX 型通用模组暂未开发)。
若有特殊需求,如协议定制、功能定制等,可咨询涂鸦工作人员,确认方案可行性。

开发流程

开发流程主要包含创建产品、硬件调试、软件开发和功能调试环节。

步骤1. 创建产品

登录 IoT工作台,创建产品。根据实际需求选择产品品类,联网方式选择 NB-IoT,功耗类型根据自己产品的特性来选择。常用电池类供电、监控上报型业务的产品请选 PSM。对功耗不敏感、下发控制型业务的产品请选 DRX(注意功耗选择会关系到后续模组的寄样与生产)。产品创建完成后,可以根据产品实际需求选择功能、面板、模组、固件,就可以下载到 MCU 开发包。

创建产品在 MCU 方案概述中有详细介绍,在此就不做赘述,具体步骤请参考:产品创建-平台实操

企业微信截图_20200224162859.png

常用模组介绍

在平台创建产品选择模组时,平台会有一些常用模组型号的推荐。这里以 NB-IoT 通用方案中使用最多的 NM1 模组举例。

选定模组型号后,可在线购买模组样品。硬件工程师可以进入画板阶段,硬件开发相关资料均可在文档中心查看:

数据手册链接:NB-IoT模组数据手册

硬件设计指导:NM1 硬件设计

PCB 资料:常用模组封装库

注意:NB-IoT 通用模组工作峰值电流会达到300mA以上,电源设计时一定要留有余量。

硬件最小系统搭建

image.png

image.png

步骤2. 绑定验证

拿到模组后,可先不必着急编写代码,首先确定模组是否工作正常。使用涂鸦提供的模组调试助手( MCU 模拟模式)与模组配合可以配网实操,验证模组的同时可以熟悉协议交互流程,后边开发调试效率将极大提升。

image.png

涂鸦模组调试助手-MCU模拟模式,助手会模拟 MCU 自动回复模组正确的协议数据,用 APP 绑定模组后可测试 DP 数据的上报下发。下边简要介绍助手和模组配网实操的主要步骤,使用前需提前了解涂鸦模组调试助手的使用说明,初次使用助手的用户可提前阅读:涂鸦模组调试助手使用说明

注:NB-IoT 模组上电就会不断发送产品信息查询指令,收到正确回复后进行后续初始化协议的交互。若上电无数据发出,请检查模组外围电路是否正确。

15839146411.jpg

App扫码绑定

说明:NB-IoT 二维码需要使用涂鸦的生产打印工具生成。详情请联系涂鸦工作人员。

步骤3. 软件开发

在硬件调试环节可以看到模组与 MCU 有一系列的串口协议交互数据,这些数据怎么理解就需要看开发包中协议文档了。协议主要分为两部分:基础协议和功能协议。基础协议和产品无关,是模组共有协议,包括模组初始化指令及部分扩展功能指令。功能协议部分主要基于基础协议的上报下发命令字,对 DP 数据内容格式做了详细说明。
基础协议完整内容,文档中心保持实时更新,可点击链接查看: NB-IoT 模组通用串口协议

MCU 对接涂鸦模组协议,有两种途径:移植 MCU SDK 或自行对接协议。

自行对接协议

对于 MCU 资源有限或不适宜移植 MCU SDK 情况时,客户可以选择自行对接串口协议。

移植 MCU SDK

若 MCU 资源足够,一般建议用户直接移植 MCU SDK,开发高效便捷。开发包中 MCU SDK 是涂鸦提供的基于C语言的协议应用代码,可直接添加到 MCU 工程中。MCU SDK 对 MCU 硬件资源需求:Flash 4K字节,RAM 与 DP 点数据长度有关,一百字节左右。函数嵌套级数 9 级。若资源不足的用户,可自行对接协议,SDK 包中的函数依然可以作为参考。

MCU SDK 移植教程参考:MCU SDK移植

步骤4. 协议验证

移植MCU SDK代码开发完成后,可以使用涂鸦模组调试助手-模组模拟模式,验证代码的正确性。使用方法与MCU模拟模式类似,模组模拟模式下助手可将自动发送模组初始化交互流程验证MCU回复是否正确,对于错误数据给予相应提示。初始化交互通过后,可以手动点击其他拓展功能测试,功能验证完成可接实际模组配网联调。

注:涂鸦模组调试助手模组模拟模式,没有联网功能,仅用来验证MCU串口协议收发正确性。
image.png

image.png

步骤5. 功能联调

在使用助手验证完毕代码后,MCU可连接模组使用App配网,进入功能联调阶段。功能联调主要测试各DP点上报下发是否正确。
在调试过程有一些常用工具链接如下:

后台日志查询入口:功能联调时,经常需要查看后台数据判断问题,IoT工作台-运营中心可以满足您的需求。

涂鸦在线支持入口:涂鸦提供在线化的支持服务,如有问题文档资料解决不了,可直接在线提问专业技术团队将为您答疑。

常见问题集锦:常见问题答疑,开发对接提前了解,避免踩坑。