NB-IoT模组实战演练

第一章 NB-IOT宝宝的成长故事

1.1 初次相见NB宝宝

  • 大家都知道WiFi(能上网),蓝牙(能传图连接鼠标耳机),ZigBee(工厂内听说过),但是对时下比较火的低功耗广域网络(LPWAN)总是模模糊糊,今天我们来讲讲LPWAN家族里的大娃:NB-IoT宝宝的成长故事。
  • NB-IoT即窄带物联网(Narrow Band-Internet of Things),具有低成本低功耗广覆盖海量连接等特点,定位于运营商级、基于授权频谱的低速率物联网市场,在位置跟踪、环境监测、智能泊车、远程抄表、农业和畜牧业等领域拥有广阔的应用前景。
  • NB-IoT的诞生并非偶然,其寄托着电信行业对物联网市场的憧憬。近10年来,由于传统的2G/3G/4G网络并不能满足物联网设备低功耗、低成本的要求,大部分物联网设备在连接时主要使用WiFi、蓝牙等免费技术,电信运营商很难从中获利。说白了也就是经济推动了技术的发展。

1.2 NB-IoT关键技术

  • NB-IoT系统的传输带宽和LTE系统的一个物理资源块的载波带宽相同,都是 180kHz,这使得NB-IoT系统能够与传统LTE系统很好地兼容。
  • NB-IoT系统的系统带宽和GSM系统的载波带宽相同,都是200kHz,这使得NB-IoT系统可以在GSM系统的频谱中实现无缝部署,对运营商重耕2G网络频谱提供了先天的便利性。
  • NB-IoT将系统带宽收窄至200kHz,将有效降低NB-IoT用户终端射频芯片的复杂度,进一步降低芯片成本及开发复杂度。

1.3 NB-IoT网络架构

这里写图片描述

华为提供NB-IoT端到端解决方案的支持,提供多种开放能力供合作伙伴快速集成应用。提供海思的NB-IoT芯片,基站网络和Ocean Connect连接管理平台。开发者可以根据芯片/模组开发手册进行终端的开发,基于IoT平台进行APP Server开发。 
● Device:NB-IoT终端(如智能水表、智能气表等)通过空口连接到eNodeB。 
● eNodeB:主要承担空口接入处理和小区管理等相关功能,通过S1-lite接口与IoT核心网进行连接,将非接入层数据转发给高层网元处理。 
● IoT Core:承担与终端非接入层交互的功能,将IoT业务相关数据转发到IoT平台进行处理。 
● IoT Platform:IoT联接管理平台汇聚从各种接入网得到的IoT数据,根据不同类型转发给相应的业务应用进行处理。 
● APP Server:是IoT数据的最终汇聚点,根据客户的需求进行数据处理等操作。

第二章 NB模组实战演练

2.1 NB模组开机流程

步骤执行
step1模组上电,初始化USIM卡
step2搜索小区信号
step3附着到NB网络,进入connect状态
step4激活PDN,获得IP地址,建立PDN承载
step5建立用户数据链接,收发用户数据
step6一段时间无数据交互后,依次进入Drx(Idle)、PSM状态
step7等待上发用户数据,或TAU(跟踪区域更新)再进入connect状态

在模组进入PSM状态后IP地址会保留,若PSM状态时模组请求发送数据,模组会转化为connect状态,但模组不会重新获取IP,还是以之前的IP发送数据。即:模组上电成功获取IP后,任何时刻查询其IP地址都是同样的IP值。

2.2 NB模组UDP数据发送测试

  • 以下为NB模组(利尔达和移远都可以)测试步骤,方框内为发送相应指令后,NB模组返回的数据;

第一步:开机/重启,模块已经正常启动!

REBOOTING 
REBOOT_CAUSE_APPLICATION_AT 
Neul 
OK

第二步:AT+NBAND? 查看当前频段信息,确定是否和模块型号对应,默认移动/联通 8,电信模块需要将NBAND设置为5,之后重启模块

第三步:AT+NBAND=5 电信模块,设置频段为850MHZ

第四步:AT+NRB 重启模块

REBOOTING 
REBOOT_CAUSE_APPLICATION_AT 
Neul 
OK

第五步:AT+NBAND? 再次查询模块频段信息,确认设置成功

+NBAND:5 
OK

第六步:AT+NCONFIG? 查询配置信息,主要包括自动连接使能配置信息,默认使能

+NCONFIG:AUTOCONNECT,TRUE // 自动连接网络 
+NCONFIG:CR_0354_0338_SCRAMBLING,TRUE 开启了扰码功能 
+NCONFIG:CR_0859_SI_AVOID,TRUE 
+NCONFIG:COMBINE_ATTACH,FALSE 
+NCONFIG:CELL_RESELECTION,FALSE 
+NCONFIG:ENABLE_BIP,FALSE 
OK

第七步:AT+CFUN? 模块是否处于全工作模式,打开射频电路,搜索信号,如果返回0,请确定AUTOCONNECT值是否为TRUE,以及是否安装NBIOT专用SIM卡

+CFUN:1 
OK

第八步:AT+CIMI 查询IMSI信息,如果返回具体数值,说明已经正常识别SIM卡

460111176314533 
OK

第九步:AT+CSQ 查询信号强度,返回的第一个数值代表信号强度,0-31代表有信号,数值越大信号越强,99代表没有NBIOT网络信号,第二个参数还没有实施,一直为99

+CSQ:21,99 
OK

第十步:AT+NUESTATS 查询模块状态

Signal power:-842 
Total power:-718 
TX power:-32768 
TX time:0 
RX time:2472 
Cell ID:79044177 
ECL:255 
SNR:-16 
EARFCN:2506 
PCI:3 
RSRQ:-148 
OK

第十一步:AT+CGATT? 查询是否模块附着成功,返回1代表成功;网络分为测试网络和商用网,SIM也分为测试卡和商用卡,确保一一对应才能附着成功,具体网络信息和SIM卡信息可跟运营商确认

+CGATT:1 
OK

第十二步:AT+CEREG? 查询网络注册状态,第二个数值返回1代表:网络注册成功,返回2代表:正在注册网络,注册时间和信号强度有关

+CEREG:0,1 
OK

第十三步:AT+CSCON? 查看模块工作的连接状态,第二个返回数值代表模块的工作状态,1代表CONNECT连接状态,0代表IDLE睡眠状态,如果没有数据交互,在CONNECT状态持续20秒,之后进入IDLE状态;如果仍然没有数据交互,10秒之后从IDLE状态进入PSM深度睡眠状态,此时模块不在接收任何下行数据,如果需要下行传输数据必须在CONNECT 和 IDLE状态下进行

+CSCON:0,0 
OK

第十四步:AT+NSOCR=DGRAM,17,5683,1 创建UDP SOCKET 传输信道,DGRAM和17固定,5683代表本地端口号,1代表使能接收下行数据;最多可创建7个SOCKET传输信道,返回数值代表信号ID号,在发送和接收数据时需要指定


OK

第十五步:AT+NSOST=0,...,####,3,303132 发送UDP数据,0代表UDP SOCKET信道ID,...代表远程服务器的IP地址(公网IP地址),####代表远程服务器端口号,3代表发送的字符个数(发送了3个字符),303132代表“012”3个hex表示的字符;返回值代表成功从0信道发送了3个字节的数据(我这里测试发送了74个字节)

AT+NSOST=0,54.223.248.94,9502,74,FFAAD0D00000490F3836353335323033303030313031390000041F0000000000000000026B44F8FCF700F1000000020018020A6C002600004D380000000000000000000200000644628E 
0,74 
OK

1.如果远程服务端接收模块发送的数据,必须在30s = ( CONNECT状态20s + IDLE状态10s ) 
之内发送下行数据,否则在没有数据交互的情况下模块会进入PSM深度睡眠状态,将 
无法再接收到任何下行数据,但是此时模块仍然可以再次发送数据; 
2.模块可以在CONNECT + IDLE + PSM任何状态下发送数据,只能CONNECT + IDLE 状态下 
接接收数据; 
3.只需要执行一次AT+NSOCR命令创建UDP SOCKET信道,之后任何模式下直接执行 
AT+NSOST发送数据

第十六步:+NSONMI:0,67 信息代表模块接收到新的数据,需要读取,如果不及时读取,接收到下一条数据,将不会主动上报该信息;但可以连续读取;0代表 UDP SOKECT信道,67代表有67个字节数据需要读取。

+NSONMI:0,67

第十七步:AT+NSORF=0,3 读取数据;0代表UDP SOCKET 信道,3代表需要读取数据字节长度;需要从返回值中提取出有效数据303132,代表字符“012”

0,54.223.248.94,9502,67,FFAAD1D10000430F3836353335323033303030313031390000015E8569078F03C000000002000801C1000000030012000000140000003C000003C20000000400080198,0 
OK

1.+NSONMI主动上报信息说明,如果模块接收到多包数据,但是没有使用AT+NSORF 命令读取数据,那么只会在第一次接收到数据时上报 +NSONMI 信息,此后不在主动上报,直到执行 AT+NSORF 读取数据之后才会上报。

第十八步:AT+NSOCL=0 关闭UDP SOCKET 传输信道

OK

2.3 NB-IoT COAP通信

2.3.1 名词解释

  • 南向设备:开发者自行开发的终端硬件设备(包含多个传感器和MCU)。
  • 北向应用:开发者自行开发的服务端应用(基于华为OceanConnect物联网平台提供的RESTful接口)。
  • NB-IoT:窄带物联网,华为等公司主推的物联网通讯用蜂巢网络。
  • NB芯片/模组:类似于3G/4G通信模组,将设备端数据打包发送到指定平台的硬件模块。
  • SoftRadio:用于模拟NB模组、基站、核心网的PC端软件,可用于在缺乏NB模组和NB实网环境时的设备对接调试。
  • OceanConnect:华为物联网全联接平台,南向设备和北向应用通过该平台交换数据和信令。
  • 设备Profile文件:描述设备“是什么”、“能干什么”的json格式文件,上传到OceanConnect平台(上传时是zip包格式),设备绑定平台和提供服务的关键配置文件。
  • 编解码插件:用来对NB设备上报的数据进行解码,同时对下发给NB设备的信令进行编码的插件,对接前需上传到OceanConnect平台。

2.3.2 数据上报

概念:信令下发是另一个物联网的基本业务。应用服务器通过物联网平台,发送信令到南向设备,而设备也将做出一些对应的响应。 
这里写图片描述 
流程: 
1. 应用创建信令(命令的相关项需要和设备Profile中的描述一致),发送到平台; 
2. 如果平台判断设备在线,则立即下发信令;如果平台判断设备离线,则 信令将缓存于平台的数据库中; 
3. 南向设备在某时刻上报数据,平台收到数据后,将检索对应设备在数据库中是否存在有效未下发的信令,如有,则下发该信令; 
4. 信令通过编解码插件进行编码(json到16进制码流),并被发送到设备端; 
5. 设备收到信令,执行完毕,返回信令执行结果; 
6. 平台收到上述执行结果,通过编解码插件的解析,获取信令执行的结果,修改对应的信令状态。

2.3.3 信令下发

概念:信令下发是另一个物联网的基本业务。应用服务器通过物联网平台,发送信令到南向设备,而设备也将做出一些对应的响应。 
这里写图片描述 
流程: 
1. 应用创建信令(命令的相关项需要和设备Profile中的描述一致),发送到平台; 
2. 如果平台判断设备在线,则立即下发信令;如果平台判断设备离线,则信令将缓存于平台的数据库中; 
3. 南向设备在某时刻上报数据,平台收到数据后,将检索对应设备在数据库中是否存在有效未下发的信令,如有,则下发该信令; 
4. 信令通过编解码插件进行编码(json到16进制码流),并被发送到设备端; 
5. 设备收到信令,执行完毕,返回信令执行结果; 
6. 平台收到上述执行结果,通过编解码插件的解析,获取信令执行的结果,修改对应的信令状态。

NB-IoT的中文指令集,基于BC95 657 SP2版本翻译的。 —————————————————————— AT 命令 描述 实现的状态 3GPP Commands (27.007) AT+CGMI 查询制造商 ID B350+ AT+CGMM 查询模块型号 B350+ AT+CGMR 查询固件版本 B350+ AT+CGSN 查询模块序列号 B350+ AT+CEREG 查询网络注册状态 B350+ AT+CSCON 查询信号连接状态 B350+ AT+CLAC 列出可用命令 B350+ AT+CSQ 获取信号强度 B350+ AT+CGPADDR 显示 PDP 地址 B350+ AT+COPS 选择接入的网络 B350+ AT+CGATT PS 连接或分离 B350+ AT+CGACT 激活或停用 PDP 上下文 B657SP1+ AT+CIMI 查询国际移动设备身份码 B350+ AT+CGDCONT 定义一个 PDP 上下文 B350+ AT+CFUN 设置终端功能 B350+ AT+CMEE 报告移动终端错误 B600+ AT+CCLK 返回当前日期和时间 B656+ AT+CPSMS 省电模式设置 B657SP1+ AT+CEDRXS eDRX 设置 B657SP1+ AT+CEER 扩展错误报告 B657SP1+ AT+CEDRXRDP eDRX 阅读动态参数 B657SP1+ AT+CTZR 时区报告 B657SP1+ ETSI Commands(正在开发中) AT+CSMS 选择短消息服务 B657SP1+ AT+CNMA 模块消息提醒 B657SP1+ AT+CSCA 服务中心地址 B657SP1+ AT+CMGS 发送短消息 B657SP1+ AT+CMGC 发送短信命令 B657SP1+ AT+CSODCP 通过控制层发送原始数据 B657SP1+ AT+CRTDCP 通过控制层传送终端数据 B657SP1+ General Commands 通用命令 AT+NMGS 发送消息到 CDP 服务器 B350+ AT+NMGR 接收 CDP 服务器消息 B350+ AT+NNMI 接收消息标志 B350+ AT+NSMI 发送消息的标志 B350+ AT+NQMGR 查询接收到的消息量 B350+ AT+NQMGS 查询发送的消息量 B350+ AT+NMSTATUS 信息注册状态 B657SP1+ AT+NRB 模块重启 B350+ AT+NCDP 配置和查询 CDP 服务器设置 B350+ AT+NUESTATS 获取的操作统计 B350+ AT+NEARFCN 指定搜素频率 B350+ AT+NSOCR 创建 Socket B350+ AT+NSOST 发送数据 B350+ AT+NSOSTF 发送有标记数据 B656+ AT+NSORF 接收命令 B350+ AT+NSOCL 关闭 Socket B350+ +NSONMI 指示 Socket 消息到达(只响应) B350+ AT+NPING 测试 IP 网络连接到远程主机 B350+ AT+NBAND 设置频段 B600+ AT+NLOGLEVEL 设置日志级别 B600+ AT+NCONFIG 配置模块的功能 B650+ AT+NATSPEED 配置 UART 端口波特率 B656+ AT+NCCID 卡片识别 B657SP1+ AT+NFWUPD 通过 UART 更新固件 B657SP1+ AT+NRDCTRL 控制无线配置 B657SP1+ AT+NCHIPINFO 读取系统信息 B657SP1+ Temporary Commands 临时命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值