一、NB-IOT介绍
基于蜂窝的窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。
NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWA)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。据说NB-IoT设备电池寿命可以提高至至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。
二、NB的三种工作模式
2.1 CONNECT态
- 连接态,可以收发数据
2.2 IDLE态
- 空闲态,可以收发数据
2.3 PSM态
- 休眠态,可以发送数据,不能接受数据,当NB模组主动发送一条数据(转换为非PSM态)之后可以接收数据
2.4 三者转换原理
三、IPSO规范整理
在设备侧具有5级层级结构,分别是 产品(Product)、设备(Device)、对象(Object)、实例(Instance)、属性(Resource)。
通过OneNET平台直接创建产品(产品ID),一个产品之下包含多个设备(设备ID)
Object(对象):表示某类传感器类型
Instance(实例):同一类传感器的编号,从“0”开始编号,依次增加
Resource(属性):传感器某些特性描述
例如:
智能家居产品下有多个设备包括温度检测设备、湿度检测设备等
开发模组需要使用2个温湿度传感器来采集数据,那么:
Object(对象):有1个对象:温湿度传感器
Instance(实例):温湿度传感器对象中有2个实例,编号为0和1
Resource(属性) :温湿度传感器实例1有两个属性,温度和湿度
又例如:
智能锁产品下包含两个设备,分别为debug设备和debug1设备, 每个设备下都有不同的对象,每一个对象下都有不同的实例,每一个实例下都有不同的属性,例如debug设备下,有一个3300的对象, 这个对象下有一个实例,实例编号从0开始,这个实例有一个5750的属性
- 在NB模组连接OneNET平台后,使用
AT+MIPLNOTIFY=0,0,3300,0,5750,5,1,"0",2,1
进行数据上报
1.1 产品
1.2 设备
1.3 对象
Object(对象)部分描述
Object(对象) | Object ID(对象编号) | 含义 |
---|---|---|
Digital Input | 3200 | 数字输入 |
Digital Output | 3201 | 数字输出 |
Analogue Input | 3202 | 模拟输入 |
Analogue Output | 3203 | 模拟输出 |
Generic Sensor | 3300 | 通用传感器 |
Illuminance Sensor | 3301 | 光照传感器 |
Presence sensor | 3302 | 节能感应器 |
Temperature Sensor | 3303 | 温度传感器 |
Humidity Sensor | 3304 | 湿度传感器 |
Power Measurement | 3305 | 电力测量 |
Actuation | 3306 | 启动 |
Set Point | 3308 | 设定点 |
Load Control | 3310 | 负荷控制 |
Light Control | 3311 | 灯光控制 |
Power Control | 3312 | 电源控制 |
Accelerometer | 3313 | 加速度计 |
Magnetometer | 3314 | 磁力计 |
Barometer | 3315 | 气压计 |
Voltage | 3316 | 电压 |
Current | 3317 | |
Frequency | 3318 | 频率 |
Depth | 3319 | 深度 |
Percentage | 3320 | 百分比 |
Altitude | 3321 | 高度 |
Load | 3322 | 加载 |
Pressure | 3323 | 压力 |
Loudness | 3324 | 响度 |
Concentration | 3325 | 浓度 |
Acidity | 3326 | 酸度 |
Conductivity | 3327 | 电导率 |
Power | 3328 | 供电 |
Power Factor | 3329 | 功率因数 |
Distance | 3330 | 距离 |
Energy | 3331 | 能量 |
Direction | 3332 | 方向 |
Time | 3333 | 时间 |
Gyrometer | 3334 | 陀螺仪 |
Color | 3335 | 颜色 |
GPS Location | 3336 | GPS 定位 |
Positioner | 3337 | 定位器 |
Buzzer | 3338 | 蜂鸣器 |
Audio Clip | 3339 | 音频剪辑 |
Timer | 3340 | 计时器 |
Addressable Text Display | 3341 | 可寻址文本显示 |
On/Off Switch | 3342 | 开/关 开关 |
Dimmer | 3343 | 调光器 |
Up/Down Control | 3344 | 上/下 控制 |
Multiple Axis Joystick | 3345 | 多轴操纵杆 |
Rate | 3346 | 比率 |
Push Button | 3347 | 按按钮 |
Multi-state Selector | 3348 | 多状态选择器 |
Bitmap | 3349 | 位图 |
Stopwatch | 3350 | 秒表 |
1.4 实例
1.5 属性
Resource(属性)部分描述
Resource(属性) | Resource ID(属性编号) | Operations(操作:R/W/E 分别表示 可读/可写/可执行) | Type(数据类型) | 含义 |
---|---|---|---|---|
Digital Input State | 5500 | R | Boolean | 数字输入状态 |
Digital Input Counter | 5501 | R | Integer | 数字输入计数器 |
Digital Input Polarity | 5502 | R,W | Boolean | 数字输入极性 |
Digital Input Debounce | 5503 | R,W | Integer | 数字输入去抖动 |
Digital Input Edge Selection | 5504 | R,W | Integer | 数字输入边缘选择 |
Digital Input Counter Reset | 5505 | E | 数字输入计数器复位 | |
Current Time | 5506 | R,W | Time | 当前时间 |
Fractional Time | 5507 | R,W | Float | 分数时间 |
Min X Value | 5508 | R | Float | 最小 X 值 |
Max X Value | 5509 | R | Float | 最大 X 值 |
Min Y Value | 5510 | R | Float | 最小 Y 值 |
Max Y Value | 5511 | R | Float | 最大 Y 值 |
Min Z Value | 5512 | R | Float | 最小 Z 值 |
Max Z Value | 5513 | R | Float | 最大 Z 值 |
Latitude | 5514 | R | String | 纬度 |
Longitude | 5515 | R | String | 经度 |
Uncertainty | 5516 | R | String | 不确定性 |
Velocity | 5517 | R | Opaque | 速度 |
Timestamp | 5518 | R | Time | 时间戳 |
Min Limit | 5519 | R | Float | 最小极限 |
Max Limit | 5520 | R | Float | 最大极限 |
Delay Duration | 5521 | R,W | Float | 延迟时间 |
Clip | 5522 | R,W | Opaque | 剪切 |
Trigger | 5523 | E | 触发 | |
Duration | 5524 | R,W | Float | 持续时间 |
Minimum Off-time | 5525 | R,W | Float | 最小关闭时间 |
Mode | 5526 | R,W | Integer | 模式 |
Text | 5527 | R,W | String | 文本 |
X Coordinate | 5528 | R,W | Integer | X坐标 |
Y Coordinate | 5529 | R,W | Integer | Y坐标 |
Clear Display | 5530 | E | 清除显示 | |
Contrast | 5531 | R,W | Float | 对比 |
Increase Input State | 5532 | R | Boolean | 增加输入状态 |
Decrease Input State | 5533 | R | Boolean | 减少输入状态 |
Counter | 5534 | R,W | Integer | 计数器 |
Current Position | 5536 | R,W | Float | 当前位置 |
Transition Time | 5537 | R,W | Float | 过渡时间 |
Remaining Time | 5538 | R | Float | 剩余时间 |
Up Counter | 5541 | R,W | Integer | 向上计数 |
Down Counter | 5542 | R,W | Integer | 向下计数 |
Digital State | 5543 | R | Boolean | 数字状态 |
Cumulative Time | 5544 | R,W | Float | 累积时间 |
Max X Coordinate | 5545 | R | Integer | 最大X坐标 |
Max Y Coordinate | 5546 | R | Integer | 最大Y坐标 |
Multi-state Input | 5547 | R | Integer | 多状态输入 |
Level | 5548 | R,W | Float | 级别 |
Digital Output State | 5550 | R,W | Boolean | 数字输出状态 |
Digital Output Polarity | 5551 | R,W | Boolean | 数字输出极性 |
Analog Input State | 5600 | R | Float | 模拟输入状态 |
Min Measured Value | 5601 | R | Float | 最小测量值 |
Max Measured Value | 5602 | R | Float | 最大测量值 |
Min Range Value | 5603 | R | Float | 最小范围值 |
Max Range Value | 5604 | R | Float | 最大范围值 |
Reset Min and Max Measured Values | 5605 | E | 重置最小和最大测量值 | |
Analog Output Current Value | 5650 | R,W | Float | 模拟输出电流值 |
Sensor Value | 5700 | R | Float | 传感器值 |
Sensor Units | 5701 | R | String | 传感器单元 |
X Value | 5702 | R | Float | X值 |
Y Value | 5703 | R | Float | Y值 |
Z Value | 5704 | R | Float | Z值 |
Compass Direction | 5705 | R | Float | 指南针方向 |
Colour | 5706 | R,W | String | 颜色 |
Application Type | 5750 | R,W | String | 应用类型 |
Sensor Type | 5751 | R | String | 传感器类型 |
Instantaneous active power | 5800 | R | Float | 瞬时有功功率 |
Min Measured active power | 5801 | R | Float | 最小实测有功功率 |
Max Measured active power | 5802 | R | Float | 最大实测有功功率 |
Min Range active power | 5803 | R | Float | 最小范围有功功率 |
Max Range active power | 5804 | R | Float | 最大范围有功功率 |
Cumulative active power | 5805 | R | Float | 累积有功功率 |
Active Power Calibration | 5806 | W | Float | 有功功率校准 |
Instantaneous reactive power | 5810 | R | Float | 瞬时无功功率 |
Min Measured reactive power | 5811 | R | Float | 最小测量无功功率 |
Max Measured reactive power | 5812 | R | Float | 最大测量无功功率 |
Min Range reactive power | 5813 | R | Float | 最小范围无功功率 |
Max Range reactive power | 5814 | R | Float | 最大无功功率范围 |
Cumulative reactive power | 5815 | R | Float | 累积无功功率 |
Reactive Power Calibration | 5816 | W | Float | 无功功率校准 |
Power Factor | 5820 | R | Float | 功率因数 |
Current Calibration | 5821 | R,W | Float | 电流校准 |
Reset Cumulative energy | 5822 | E | 重置累积能量 | |
Event Identifier | 5823 | R,W | String | 事件标识 |
Start Time | 5824 | R,W | Float | 开始时间 |
Duration In Min | 5825 | R,W | Float | 持续时间(分钟) |
Criticality Level | 5826 | R,W | Integer | 临界水平 |
Avg Load Adj Pct | 5827 | R,W | String | 平均负荷调整Pct |
Duty Cycle | 5828 | R,W | Integer | 占空比 |
On/Off | 5850 | R,W | Boolean | 开/关 |
Dimmer | 5851 | R,W | Integer | 调光器 |
On Time | 5852 | R,W | Integer | 开启时间 |
Muti-state Output | 5853 | R,W | String | 多状态输出 |
Off Time | 5854 | R,W | Integer | 关闭时间 |
Set Point Value | 5900 | R,W | Float | 设定值 |
Busy to Clear delay | 5903 | R,W | Integer | 忙清除延迟 |
Clear to Busy delay | 5904 | R,W | Integer | 清除忙延迟 |
Bitmap Input | 5910 | R | Integer | 位图输入 |
Bitmap Input Reset | 5911 | E | 位图输入重置 | |
Element Description | 5912 | R,W | String | 元素描述 |
UUID | 5913 | R,W | String | 通用单一标识符 |
四、AT命令介绍
-
每条命令必须以AT或at开头,以回车符**<CR>结尾。命令发送成功后通常会有包含<CR><LF>response<CR><LF>**的响应消息。
-
AT 命令类型
- 测试命令:AT+<CMD>=?
- 读取命令:AT+<CMD>?
- 配置命令:AT+<CMD>=<p1>[,<p2>[,<p3>,[…]]]
- 执行命令:AT+<CMD>
-
其中
<…> 尖括号中是参数,实际输入时不带尖括号;
[…] 方括号中的参数是可选参数;
abc 下划线标出的参数值为参数缺省时默认值。 -
AT 命令响应内容有以下两种情况
-
若 AT 命令格式错误或者其他错误,会返回“ERROR”字符串。
-
如果启用了扩展错误报告(+CMEE),会返回字符串“+CME ERROR:<err>”或者“+CMS ERROR:<err>”,
<err>表示错误码,错误码可在手册中查询。 -
例如:
+CME ERROR:10 //未插 SIM 卡 +CME ERROR:332 //网络超时 ... ...
-
-
如果 AT 命令执行成功,会返回每条命令对应的语法结构里的响应内容以及“OK”。
-
例如
发: AT //一条测试命令 收: OK //返回OK表示与模组可以正常收发指令
-
-
五、NB模组驻网流程(中国移动OneNET&中国电信CTWing)
5.1 注意事项
- 使用AT命令与NB模组进行通信
- 上述提到的两个平台均采用LwM2M协议与设备端进行通信,该协议是基于UDP协议封装而来,众所周知,UDP协议属于非长连接协议,那么就要求云端下发指令必须在1-2min左右完成,否则平台将响应超时,设备端将不会收到云端下发的指令
5.2 驻网流程(使用AT命令)
5.2.1 对模组
发送给MN316的AT命令(AT命令的具体配置详见开发手册):
AT
AT+CSCON=1 (信令连接状态)
AT+CPIN? (安全性命令 读取命令)
AT+CGSN=1 (获取 IMEI 号码)
AT+CIMI (获取 IMSI 号码)
AT+NCCID (读取 ICCID)
AT+CFUN? (读取命令)
AT+CSQ (查询信号强度)
AT+CEREG=1 (网络注册状态 配置命令)
AT+CEREG? (网络注册状态 读取命令)
AT+CEDRXS=0,5 (扩展 DRX 设置 配置命令 : 禁用 eDRX, E-UTRAN (NB-S1 mode))
AT+CPSMS=1,,,,"00000011" (省电模式设置 启用 PSM 6秒)
5.2.2 对平台
5.2.2.1 中国移动OneNET
连接中国移动OneNET的AT命令(AT命令的具体配置详见开发手册):
AT+MIPLCREATE=56,130038F10003F2002A04001100000000000010196E62696F7462742E6865636C6F7564732E636F6D3A35363833000131F300087100000000,0,56,0 (该命令用于创建一个 OneNET 设备实例。)
AT+MIPLADDOBJ=0,3300,1,"1",0,1 (该命令用于添加一个 object 及其所属的 instance。)
AT+MIPLDISCOVERRSP=0,3300,1,4,"5750" (该命令用于设置指定 object 的所需资源列表)
AT+MIPLOPEN=0,172800,30 (该命令用于向平台发起注册请求或查询是否注册平台。注册失败)
AT+CSCON=1 (信令连接状态 配置命令)
AT+CFUN? (读取命令 用于设置 MS 的模式。)
AT+WORKLOCK=1 (申请锁省电锁)
AT+CGATT? (读取命令 附着/去附着)
AT+MIPLNOTIFY=0,0,3300,0,5750,2,266,"4A74523558582F6F4470636F397A37675454726D2F413D3D4048315A6C547754356F4873326F446749466C6E395A4567344F6535767A76474249452B5176555751724D56506A41304955615150446A526937723634504E436E6C3459476C6F4A4C4A33786F702F5069646654544D53456F6D2B51634A77697161594B6D6E6D61684976553D",0,0x400,1 (该命令用于向平台上报指定资源的数据。 数据上传)
5.2.2.2 中国电信CTWing
连接中国电信CTWing的AT命令(AT命令的具体配置详见开发手册):
-
接入 CTWing
AT+MCWCREATE=221.229.214.202,5683 (设置 CTWing IP 及端口)
AT+MCWCFGEX=1,1 (配置数据模式)
AT+MCWOPEN=1,86400 (注册至 CTWing,保活时间 86400 秒。)
-
发送数据至 CTWing
AT+MCWSEND=4,11111111,1 (CON 数据) AT+MCWSEND=4,22222222,0 (NON 数据)
-
读取 CTWing 下行数据
AT+MCWREAD (读取一条数据)
-
注销 CTWing
AT+MCWCLOSE (执行注销命令)
六、NB模组低功耗实现原理
- NB模组的三种低功耗模式:PSM、DRX、eDRX
6.1 PSM(Power Saving Mode,省电模式)
-
特点
- 非业务期深度睡眠,不接受下行数据,只有终端主动发送上行数据时可接收IOT平台(例如OneNET)缓存的下行数据
- 适合对下行数据无时延要求的业务
- 终端设备功耗低,采取电池供电方式,如抄表业务
- 终端99%的时间在PSM模式
-
模式示意图
-
PSM模式下三种工作状态的切换
6.2 DRX(Discontinuous Reception,不连续接收模式)
-
特点
- 下行业务随时可以到达终端设备(在每个DRX周期(1.28s、2.56s、5.12s、10.24s),终端都会检测下行业务到达)
- 适用于对时延有高要求的业务
- 终端设备功耗相对较高, 终端设备一般采用供电方式,如路灯业务
-
模式示意图
6.3 eDRX(Extended DRX,扩展不连续接收模式)
-
特点
- 终端设备兼顾低功耗和对时延有一定要求的业务
- 在每个eDRX周期内,只有在设置的寻呼时间窗口内,终端可接收下行数据,其余时间终端处于休眠状态,不接收下行数据
- 可以认为终端设备随时可达,但时延较大,时延取决于eDRX周期配置,可在低功耗和时延之间取得平衡
- 可在下行业务时延和功耗之间取得平衡,如远程关闭煤气业务
-
模式示意图
- 每个eDRX周期内,有一个寻呼时间窗口PTW(Paging Time Window),终端在PTW内按照DRX周期监听寻呼信道,以便接收下行数据,其余时间处于休眠状态