1. 开发概述
对于合作伙伴而言,NB-IOT端到端的开发工作主要包括终端侧开发和应用服务器侧的开发。终端侧的开发主要包括包含模组的硬件PCB设计、终端业务代码开发以及网络接入调试;应用服务器侧的开发主要包括profile文件开发、编解码库开发以及调用IOT平台北向接口开发应用服务器。
端到端开发之前需要进行相关的准备,主要包括:NB-IOT模组获取、IOT平台资源和SoftRadio申请。
● NB-IOT模组提供终端设备的通信功能,目前主要由移远和Ublox两个厂商提供。
● IOT平台资源是NB-IOT端到端集成开发先决条件,开发者合作伙伴在集成开发之前,必须已经获取了华为IoT平台相关资源,并且在IoT平台上进行了APP应用创建以及基于IoT平台初步完成了APP 应用的开发。
IOT平台资源申请步骤如下:
1) 开发者首先申请加入IoT解决方案伙伴计划,加入方法请参考附件《MAR系统使用简要手册》和《华为IoT合作伙伴计划政策》,请仔细阅读《华为IoT合作伙伴计划政策》。 MAR流程中合作方案审批通过后,你将收到MAR系统自动发出的知会邮件,收到后方可申请获取IoT平台资源。
2) 华为IoT平台账号与密码申请,开发者合作伙伴将 “业务合作审批通过邮件”转发到 iotadmin@huawei.com 进行申请,邮件标题为“MAR伙伴申请IoT平台远程接入”,邮件内容附加企业名称,联系人及联系方式。
3) 如何基于华为IoT平台进行应用开发以及想了解更多IoT平台信息,请参考http://developer.huawei.com/ict/cn/site-oceanconnect。
● SoftRadio是一款PC软件,合作伙伴在没有芯片/模组、NB-IOT基站和核心网的情况下,借助SoftRadio通过互联网连接到IOT平台和应用服务器,用于设备到应用服务器端到端的基本功能调试。详细介绍和申请请参考“SoftRadio”部分。
如下图是NB-IOT端到端集成开发流程。
2. 模组
目前NB-IoT的模组厂家主要是UBlox和上海移远通信技术股份有限公司。详细规格信息可以访问对应网站进行咨询。后续将会有更多厂商提供NB模组,相关信息请关注社区刷新。
● 移远
BC95 是一款高性能、低功耗的NB-IoT 无线通信模块。其尺寸仅为19.9 × 23.6 × 2.2mm,能最大限度地满足终端设备对小尺寸模块产品的需求,同时有效地帮助客户减小产品尺寸并优化产品成本。BC95 在设计上兼容移远通信GSM/GPRS 系列的M95 模块,方便客户快速、灵活的进行产品设计和升级。
目前移远提供的产品类型:
模组型号
频段
BC95-B8
8(900MHz)
BC95-B5
5(850MHz)
BC95-B20
20(800MHz)
网址:http://www.quectel.com/cn/product/bc95.htm
● UBlox
UBlox的SARA-N2模块是世界上第一款符合3GPPR13NB-IoT标准的模块。此模块专为低速率,超长待机时间及通讯安全性高的物联网应用定制。 相对于其他蜂窝无线技术,NB-IoT具有更低的设备复杂度,超低功耗,一个基站可支持15万设备。最重要的是,由于这项技术提供了比GPRS更好的20dB链路预算,在地下或楼宇内等弱信号区域都体现出出色的性能。此外,由于NB-IoT使用许可频段网络,因此拥有更强的安全性和抗干扰能力。
Ublox目前提供的产品类型:
模组型号
频段
SARA-N201
5(850MHz)
SARA-N210
20(800MHz)
SARA-N211
8(900MHz),20(800MHz)
SARA-N280
28(700MHz)
网址:https://www.u-blox.com/en/product/sara-n2-series
3. PCB Layout
终端厂商拿到模组之后,需要将模组与自己的终端进行集成。模组厂商可以提供具体的指导和参考设计,详细信息可以联系所购买的模组厂商。
如图是某些厂商PCB layout,仅供参考。
PCB设计注意事项如下表(以Ublox为例):
详细内容完成要求描述
PCB预留给模块供电接口VCC及GND能给模块供电,模块正常工作
PCB预留与外置MCU通信接口TXD及RXD外置MCU可通过AT命令与模块交互
PCB预留输出芯片DI消息调试口GPIO1和GPIO2通过DI口可接收芯片输出的DI信息
PCB预留芯片估计升级pin脚18,28,29,31,GND可通过该pin脚用JTAG升级芯片固件成功
PCB预留SIM卡接口SIM卡的大小型号如无特别要求,推荐Micro卡(中号卡)
PCB预留ANT接口,并完成天线匹配天线阻抗匹配结果良好,模块在最大发生功率下电流200mA左右
PCB预留IPX天线座(用于外置天线)便于天线对比测试
PCB板可实现对模组TXD及RXD不占用,且桥接至PC可连接可在电脑端调用AT串口升级芯片软件
终端需要支持通过近端无线维护针对不可拆卸的终端必须支持近端无线维护方式,如水表支持通过红外配置参数
4. 终端侧集成开发
目前终端通过AT命令对模组进行控制,所以终端厂商除了自身业务功能的开发,同时需要开发相关程序调用AT命令对模组进行操控。
模组厂商提供的软件包中包含终端集成开发所需要的相关工具及操作指导。例如:AT命令详细介绍、升级工具及操作指导、日志工具及操作指导等。
4.1 模组常用AT命令
终端对模组的操控是通过AT命令实现的。常用的AT命令有:
终端开机
AT+CFUN=0
查询软件版本
AT+CGMR
查询设备号
AT+CGSN=1
设置设备号
AT+NTSETID=1,xxxxx
设置IOM南向地址
AT+NCDP=xx.xx.xx.xx
设置APN
AT+CGDCONT=1,'IP','xxxx'
复位
AT+NRB
开机
AT+CFUN=1
查询sim卡imsi
AT+CIMI
基站连接通知
AT+CSCON=1
核心网连接通知
AT+CEREG=2
下行数据通知
AT+NNMI=1
数据发送成功通知
AT+NSMI=1
自动搜网
AT+CGATT=1
查询UE状态
AT+NUESTATS
查询分配ip地址
AT+CGPADDR
发送数据
AT+NMGS=1,11
查询发送缓存
AT+NQMGS
查询接收缓存
AT+NQMGR
更详细的AT命令介绍可以参考模组厂商提供的AT命令相关文档。
4.2 模组升级工具CodeLoaderInstaller
模组升级需要使用专门的升级工具CodeLoaderInstaller。CodeLoaderInstaller工具在模组厂商提供的软件版本中携带。具体使用方法如下:
● CodeLoaderInstaller用于UART口加载版本,安装方法如下:
1) 运行CodeLoaderInstaller\ Neul-Install-Code Loader-x86.msi
2) 如果提示 'Visual C++ '14' Runtime Libraries (x86)' 未安装,请自行安装。
3) 如果提示“non-proxy internet access is available”,请安装 'UELogViewer\Setup.exe'
● 串口调试工具用于输入AT命令,该软件为绿色免安装软件
● PC上安装UART转串口驱动,用于适配UART连接。
串口工具和串口驱动可以网上下载。
● UART加载芯片版本方法
安装CodeLoader UI软件。
加载步骤:
点击“port selection”选择连接UART J10的COM口;
选择要下载的安全、协议和应用Binary;
点击“update all”;
4.3 模组日志工具UELogViewer
UELogViewer用于实时观察模组日志以及记录历史日志。UELogViewer在模组厂商提供的软件版本中携带。
● UELogViewer用于显示UE输入的日志,安装方法如下:
1) 运行UELogViewer\Neul-Install-Ue-Log-Viewer-x86-v210.msi
2) 如果提示 'Visual C++ '14' Runtime Libraries (x86)' 未安装,请自行安装。
3) 如果提示“non-proxy internet access is available”,请安装 'UELogViewer\Setup.exe'
● UELogViewer使用
UELogViewer Tool需要使用对应版本的工具。正式版本发布包都会包含对应的工具。UELogViewer工具安装完毕后首先需要更新XML文件,即将对应软件版本的message.xml文件拷贝到C:\Program Files (x86)\Neul\UE Log Viewer\Decoders目录下。
打开UELogViewer软件界面如下:
出现如下打印“Using 'Neul Hi2110' Decoder”表示连接成功:
5. 应用服务器侧开发
应用服务器位于IOT平台北侧,为了确保应用服务器和IOT平台对接成功,应用服务器侧的开发内容主要包括:profile文件开发、编解码库开发和应用服务器开发。
5.1 Profile文件
Profile是设备的抽象模型,把设备的功能抽象为服务。Profile定义了设备的服务类型和设备能力。
5.2 编解码库
设备和IoT平台之间不统一应用层协议,为了能接入不同协议的设备,IoT平台支持调用设备提供的编解码插件包。编解码插件实现将设备上报的二进制码流转化成json格式,json的数据字段由profile文件的设备服务类型和设备能力决定。IoT平台根据profile文件中定义的制造商ID和设备model来决定一个编解码库。
5.3 应用服务器开发
应用服务器用于保存NB-IOT终端发送的数据,以及发送下行数据给NB-IOT终端。在标准化的NB-IOT组网结构中,应用服务器连接在IOT平台的北向。IOT平台提供了支持http和https协议的北向接口,因此应用服务器与IOT平台的交互只需要调用相应的URL接口。
IOT平台相关开发资料可参考:
http://developer.huawei.com/ict/cn/site-oceanconnect/resources
6. OpenLab调测
终端设备开发完成之后,需要到OpenLab实验室进行端到端的集成验证,验证合格之后的产品才能进行商用。
合作伙伴完成MAR流程并审批通过后,系统就为其分配了OpenLab实验室联调资源。为了提升联调效率,联调之前终端厂商首先需要完成《NB-IoT OpenLab应用孵化联调申请及入口自检表》。
7. 对接测试
终端和应用服务器开发完成之后,需要进行端到端的对接测试。针对终端而言,如果终端能够将数据发送到IoT平台以及终端能够接收到IoT平台下发的数据,此时就能表示对接测试成功。