×
嵌入式 > 技术百科 > 详情

GD32407Z-NB-IOT开发板测评——带你走进NB-IOT

发布时间:2020-06-09 发布时间:
|

开发板及NB-IOT简介

2017年兆易创新发布了针对华为NB-IOT模块的开发板GD32407Z-NB-IOT,板卡提供的固件库集成了Huawei LiteOS操作系统代码。用户可以通过使用GD32 MCU直接运行Huawei LiteOS操作系统,连接到NB-IoT网络。GD32 NB-IoT系列开发板是业界首家通过Huawei LiteOS认证并登陆华为云市场的MCU系列开发板,为开发者提供了高效丰富的开发首选,并以完善配套的软硬件应用生态加速开发进程。

对于NB-IOT可能是大家经常听到但是又没有那么熟悉的一个词,NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。NB-IoT具备四大特点:一是广覆盖,将提供改进的室内覆盖,在同样的频段下,NB-IoT比现有的网络增益20dB,相当于提升了100倍覆盖区域的能力;二是具备支撑海量连接的能力,200kHz小区容量能够支持10万个连接,支持低延时敏感度、超低的设备成本、低设备功耗和优化的网络架构;三是更低功耗,NB-IoT终端模块的待机时间可长达10年;四是更低的模块成本,企业预期的单个接连模块不超过5美元。

GD32407Z-NB-IOT开箱

笔者之前一直关注NB-IOT的动态,但一直没有去着手试一试的机会,这次非常有幸能拿到一块兆易创新的NB-IOT开发板,也算圆了之前的一个念想。

言归正传,除去快递包装看到的是开发板的外包装,外包装是兆易创新通用的纸质盒子,正面是兆易创新MCU的LOGO,一只漂亮的豹子剪影。

盒子的侧面标明了开发板的型号GD32407Z-NB-IOT,开发板的名字起得十分具有针对性。

打开盒子,中间由一个挡板隔开,开发板由一个自封口的防静电袋装着,另加两根USB线、一根天线和一张光盘。

配的东西很简单,那我们就先看一下开发板吧。主板采用阻焊蓝油工艺,干净爽快,还特意使用丝印划分了界限,让人一眼就能分清处各个功能区,电路板主要的器件都布在了正面,反面只有一些去耦电容。

除了开发板标配的东西之外,还需要自己准备一张带有上网功能的移动SIM卡和一个调试用的USB转TTL电平串口。

GD32407Z-NB-IOT开发板硬件分析

中央LQFP144封装的主控GD32F407ZKT6是一颗ARM Cortex-M4内核的MCU,最高主频可达168MHz,配备了3072KB的超大容量内置Flash及多达192KB的SRAM。最高主频下的工作性能可达210DMIPS,同主频下的代码执行效率相比市场同类Cortex-M4产品提高10%-20%,并已全面超越Cortex-M3产品,性能提升超过40%。在具备强大的处理能力的同时兼具了超低功耗的待机功耗,电池供电时的待机电流最低仅为2µA,是个非常理想的物联网网关设备的处理器。同时开发板使用了插针将所有GPIO口都引了出来。

开发板预留了Arduino的扩展接口,虽然在目前给出的程序里还没有相关的支持但侧面表明了想要让使用者快速上手的态度。自带了主控为GD32F103C8T6调试下载模块,并丝印了GD-Link字样,很大程度上方便了客户程序的调试。

电源部分有三颗LDO AMS117降压以供开发板各个部分使用,一颗为AMS1117-5.0,为兼容Arduino供电;一颗为AMS117-3.3,主要给主控和外设供电;一颗为AMS1117-ADJ,输出的3.6V电压给NB-IOT模块供电。

开发板上的六轴传感器MPU6050和温度传感器DS18B20立马让这块开发板变得灵动了起来。除此之外板载外设还有3个按键2个LED灯和1个RS232串口。

最后是这块板的重点NB-IOT部分,使用的是移远的BC95 NB-IOT模块。模块下面安放了一个SIM卡的卡座。一个复位按钮和一个天线的SMA头,侧面预留了一排用于调试的接口排针。

目前BC95在中国有两个版本,一个B5一个B8,如下表,笔者拿到的是B8的版本。


开发板没有配测试的SIM卡,因为之前对NB网络的印象是使用的一套专用的APN,需要使用NB卡,拿到开发板后在网上找了很多移动NB卡的购买渠道,都被告知个人无法购买(电信的NB卡则对个人开放测试),后来使用自己的移动SIM卡也可以连接上网络才没有再去纠结。

光盘资料

现在新配的电脑大多已经不带光驱了,好不容易在公司找到了一台带有光驱的电脑把光盘里的东西拷贝了出来,实际上内容也只有60M大小。现在好多开发板资料都是给的网络下载地址,笔者觉得网络才是现在比较友好的一种传递资料的方式。

资料没有像一般开发板那样给出很多关于MCU的示例,主要还是就智能锁和智能车位给出了相关的项目DEMO源码和MCU源码以及关于开发板用户手册、原理图和华为云平台的接入说明。

MCU代码

本开发板比较大的特色就在于其使用了Huawei LiteOs系统,Huawei LiteOS是华为面向IoT领域构建的“统一物联网操作系统和中间件软件平台”,以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。

项目工程文件在对应DEMO的Template文件夹下。

例程提供了Keil和IAR两个版本,其中Keil版的工程是基于 Keil MDK-ARM 5.18 uVision5 创建的,IAR 版的工程是基于IAR Embedded Workbench for ARM 7.40.2 创建的。但是根据客户手册并没有找到离线的器件支持安装包,这里需要使用者到官网下载或在线安装的方式添加GD32F4xx的器件支持。

笔者用Keil uVision5打开工程后,通过Package Installer安装GD32F4xx的DFP即可正确识别编译项目文件。

打开程序第一映象就是工程很有条理,代码也很规范。

在程序开始项目建立了 4 个任务,如下图:

MPU6050_Task: 实现板载六轴传感器数据的采集并通过串口打印。

Tamper_Task: 实现板载温度传感器数据的采集并通过串口打印。

NBIOT_Task: 实现 NB-IoT 模组的联网及无线数据的传输交互。

Lock_Task: 实现智能锁控制单元的开锁及关锁响应等功能。

以MPU6050任务为例,任务的建立如下图:

MPU6050的任务主体如下图:

任务的建立和运行与其它的RTOS用法类似。

NB-IOT调试

对于NB-IOT的调试,可以直接使用串口对BC95模块进行调试,上电连接如下图:

事先需要将主控中的程序清空,然后使用TTL电平串口模块连接BC95的串口,默认使用9600bps的波特率。

BC95使用的AT指令可参照移远的《Quectel_BC95_AT_Commands_Manual》(可在移远官网BC95模块页面下载),基本流程大致为网络注册连接和数据连接通讯两部份,如果不熟悉AT指令可以网上下载使用移远的专用调试工具“NB-IoT QNavigator”进行调试。

通过工具使用串口进行调试,工具会自动使用AT指令进行网络注册,如遇附着不上网络时可使用AT+CGATT=0先关闭附着网络然后使用AT+CGATT=1重新使能附着网络,连接成功如下图,网络显示已注册。

在此笔者演示通过UDP方式和远程服务器进行通讯的过程。

使用工具正确填写远程服务器IP和UDP端口,进行连接并发送数据,在此,笔者在自己的服务器上使用网络调试工具建立了UDP服务,收到了模块发过来的数据,应答数据,模块端收到了回应的数据,整个数据交换过程完成,还是比较容易的。

华为IOT云平台

开发板提供的连接华为IOT云平台的示例更多的是服务器端做的工作,主要用于建立安全的数据连接通讯。可以通过注册和申请来并创建相应的应用,记录生成的 appid 和password,笔者尝试申请了一下,但申请过程中需要企业的相关注册信息来确保申请者的企业身份,换句话来说就是目前还不对个人用户开放,在此就不进一步描述了。

小结

硬件方面,开发板如果抛开NB-IOT模块单单做为一款MCU的开发板来说的话就更像一块GD32F407的最小系统板,当成学习GD32F407的平台其实也是蛮不错的。作为一块NB-IOT的开发板来说板上所有的外设完全够用,还多了两个算是额外惊喜的传感器。使用了GD32F407作为主控也是恰到好处,一方面可以展示GD32F407的强悍的处理能力,另一方面展现了其优良的待机功耗。外扩了所有的MCU的GPIO口,还预留了Arduino接口也是蛮有心的。

软件方面,针对性比较强,就是基于NB-IOT的示例项目,让人能GET到这块开发板的核心,但不适合学习MCU的新手上手。

文档方面,比较简单,但该有的都有,电路图、源代码、项目说明,作为一个示范项目已经算是比较详细了。

总体上来说这块开发板不太适合刚学MCU的人,没有过多的示例程序,但的确能够达到这块开发板设计的初衷,让公司开发NB-IOT项目快速上手、实现加快开发进程的目的,切切实实通过具体项目让工程师有个比较深的项目开发印象,但华为IOT云平台不对个人开放使得像笔者这样的个人爱好者没办法完整的将整个NB-IOT的解决方案走一遍,确比较遗憾。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
家庭网络:从带宽共享走向内容共享