NB-IoT开发都涉及什么
芯片
芯片就是半导体元件产品的统称。是集成电路的载体,由晶圆分割而成。而NB-IoT开发中用到的芯片—Boudica芯片,是作为NB-IoT中终端进行网络通信的数据通道,它保证了数据传输的高效。Boudica 120是业界首款NB-IoT 芯片,它支持3GPP标准协议,支持IP/UDP/CoAP协议;支持eDRX和PSM省电模式,降低功耗,延长电池寿命;支持带内部署、保护带部署和独立部署三种部署模式;通过FOTA特性,可以远程对软件升级。
模组
模组基于芯片搭建电路,它包括了信号接收、电源处理和数据保存功能。当前供应商有两家:ublox和移远。以移远的BC95为例,它尺寸紧凑(仅为19.9×23.6×2.2mm),超低功耗(输出功率23dBm),超高灵敏度(-135dBm),封装设计兼容性好(支持丰富的网络服务协议栈,如:UDP/COAP),满足NB-IoT模组开发需求。 
EVK
EVK开发板是实验室环境下为了便于开发者对芯片模组进行全功能测试的产品,它需要外接电源供电,再根据需求连接不同的引脚,对芯片的需求功能进行测试。 
Dongle
usb dongle是一款便捷的芯片和基站调测设备,dongle不需要独立供电,仅通过USB接入PC便可通电工作,可以方便的进行芯片的测试和功耗测试。单板USB口连接PC后,可以识别出两个串口,分别为日志输出串口和AT指令输入串口。功耗测试采用外部供电,将USB Dongle开关调至靠近USB接口处,此时USB 口不能为模组供电,可以方便的测试模组的功耗。 
TestSet
testSet主要测试芯片和基站的通信,以及测试基站的信号强度。以testSet其中一款产品NB‐IoT 多功能诊断仪为例,NB‐IoT 用于多功能诊断仪便于和基站对接测试,包括实验室测试及外场测试,而通过外场环境测试可以准确判断现网环境是否适合部署终端产品。NB-IoT 多功能诊断仪是基于Boudica芯片组开发的,该设备可以通过加载不同的测试参数来帮助开发者模拟一个真实的应用场景,集成有GPS/GPRS/蓝牙及各种传感器,可以在电池的驱动下独立工作以及配合云服务器可以模拟各种数据流来验证设备是否工作正常。设备可以通过电池供电在外界环境中做长期测试,方便第三方具体项目的评估。除此之外testSet还可以进行测试用例的检查,向服务器上报温度湿度,经纬度,信号质量等数据,支持通过WDT和Probe近端导出测试用例日志。
基于模组的开发流程
基于蜂窝的窄带物联网(NarrowBand Internet of Things,NB-IOT)成为万物互联网络的一个重要分支。NB-IOT构建于蜂窝网络,值消耗大约180KHZ的带宽,可直接部署于GSM网络、UMTS网络或者LTE网络,以降低部署成本,实现平滑升级。
NB-IOT特点
低功耗:电池寿命10年 广覆盖:相对于GSM网络增益提高20dB 大容量:单小区支持10万级连接 高安全:基于运营商网络
应用场景
基于NBIOT的特点,其可广泛应用于远程抄表、智慧农业、资产跟踪、智能停车等应用领域。
NBIOT整体架构
NB整体架构如下图1所示。终端(例如水表)集成NB模组之后,NB模组将水表数据通过基站和核心网上报到IOT平台,第三方应用服务器可以主动到IOT平台查询数据或者IOT平台将数据推送给第三方应用服务器。同时,第三方应用服务器可以通过IOT平台给终端下发数据。 
硬件&软件准备芯片形态
Boudica芯片产品心态包含EVK开发板、SARA开发板、UBlox模组和移远模组。使用boudica芯片至少要有其中一种产品。下图2是EVK开发板的样片。
配套设施
- 核心网注册的SIM卡一张;
- UART串口连接线两根(EVK开发板使用,参见下图);
- Jlink调试工具及连接线;
- 电源一个;

调试工具
- UE logView用于显示UE输入的日志,安装方法如下:
- 运行UELogViewer\Neul-Install-Ue-Log-Viewer-x86-v210.msi
- 如果提示"Visual C++ "14" Runtime Libraries (x86)" 未安装,请自行安装。
- 如果提示“non-proxyinternet access is available”,请安装 "UELogViewer\Setup.exe"
- CodeLoaderInstaller用于UART口加载版本,安装方法如下:
- 运行CodeLoaderInstaller\Neul-Install-Code Loader-x86.msi
- 如果提示"Visual C++ "14" Runtime Libraries (x86)" 未安装,请自行安装。
- 如果提示“non-proxyinternet access is available”,请安装 "UELogViewer\Setup.exe"
- UART加载芯片版本方法
- 安装CodeLoader UI软件。
- 点击“port selection”选择连接UART J10的COM口;
- 选择要下载的安全、协议和应用Binary;
- 点击“update all”;

- UE logView使用 UE LogView Tool需要使用对应版本的工具。正式版本发布包都会包含对应的工具。UE LogView工具安装完毕后首先需要更新XML文件,即将对应软件版本的message.xml文件拷贝到C:\Program Files (x86)\Neul\UE Log Viewer\Decoders目录下。 打开UE LogView软件界面如下:

- JLink连接工具
如果是JLink连接开发板,则点击“UE Port Selector”选择JLink,然后点击“Connect”即可连接。 
出现如下打印“Using 'Neul Hi2110' Decoder”表示连接成功: 
AT命令概述
AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data TerminalEquipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(DataCircuit Terminal Equipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(Mobile Station,MS)的功能,与网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。 模组通过AT命令对外提供接口。第三方终端厂商通过AT命令操控模组进行配置、入网、数据发送和数据接收等功能。
基本业务操作
- 入网流程
在串口工具中依次输入如下三条命令。 打开协议栈: AT+CFUN=1 输入成功后,AT窗口返回“OK” 设置IP类型及APN: AT+CGDCONT=1,"IP","HUAWEI.COM" 输入成功后,AT窗口返回“OK” 发起ATTACH接入: AT+CGATT=1 输入成功后,AT窗口返回“OK”
- 设置IMEI
终端设备是通过IMEI,即DeviceId进行区分的。可以通过AT命令“AT+NTSETID=1,123456789012345”进行设置。这里,“123456789012345”为样例,需要保证不重复。设置完成之后可以通过AT+CGSN=1进行查询。
- CoAP业务
a) 设置IOM服务器的IP AT命令如下: AT+NCDP=138.3.13.5 输入成功窗口会返回: OK b) 设置串口业务数据回显 AT命令如下: AT+NNMI=1 输入成功窗口会返回: OK c) 发送上行CoAP数据 AT命令如下: AT+NMGS=140,7B0D0A226964656E746966696572223A223132333435363738222C0D0A226D736754797065223A22646576696365526571222C0D0A22646174612215 3A5B0D0A7B0D0A227365727669636554797065223A2242617474657279222C0D0A227365727669636544617461223A7B0D0A22626174746572794C6576656C223A31300D0A7D0D0A7D0D0A5D0D0A7D0D0A 该命令输入成功后窗口会返回ok,如果有下行数据,会同时将下行数据带回。 +NNMI:273,7B226964656E746966696572223A223132333435363738222C226D736754797065223A22636C6F7564527370222C2272657175657374223A226577304B496D6C6B5A57353061575A705A5849694F6949784D6A4D304E5459334F43497344516F6962584E6E56486C775A534936496D526C646D6C6A5A564A6C6353497344516F695A474630595349365777304B6577304B496E4E6C636E5A70593256556558426C496A6F69516D4630644756796553497344516F6963325679646D6C6A5A555268644745694F6E734E43694A69595852305A584A35544756325A5777694F6A45774451703944517039445170644451703944516F3D222C22657272636F6465223A302C226861734D6F7265223A2230227D
羞羞的铁狼