全部产品
云市场

节点开发指南

更新时间:2019-09-02 13:59:25

节点开发概述

Node SDK是Alibaba Cloud Link WAN为合作伙伴(模组设备厂商)提供的LoRaWAN节点SDK, 在完善和修复Semtech开源节点源码的缺陷基础之上,新增了额外的具有实用价值的新特性说明、参考实现和应用实例,符合LinkWAN接入规范,能够帮助模组厂商缩短新特性的开发周期,扩大模组的应用场景,提高市场竞争力。

配置环境

CMake 版本>= 3.6;

GNU ARM-Toolchain;

Visual Studio Code(可选);

SEGGER-JLink(烧录工具);

安装配置详见:https://github.com/Lora-net/LoRaMac-node/blob/develop/Doc/development-environment.md

下载代码

登录

查看您已加入的代码库权限,您可选择直接下载zip文件,或者在代码库中设置好SSH登录方式获得代码。

SSH设置成功后可在以下链接开放代码下载权限:

(用户名密码方式):git clone https://code.aliyun.com/LinkWAN/LoRaNodeSDK.git

(SSH方式) :git clone git@code.aliyun.com:LinkWAN/LoRaNodeSDK.git

修改编译配置

  1. 打开./LoRaMac-node/buildconfig.sh配置你使用的开发板型号和工具链路径。
  2. 修改./LoRaMac-node/src/LoRaModuleSDK/Commissioning.h 中节点三元组信息和组播地址和秘钥;

编译

  1. cd ./LoRaMac-node
  2. sh build.sh
  3. 编译结果:
  4. ./build/src/apps/LoRaMac/SdkExample-LoRaWanModule.hex

效果

下载Hex文件到开发板(默认ST NucleoL476开发板)后退出,JLink 烧录方式如下:

JLinkExe->loadfile build/src/apps/LoRaMac/SdkExample-LoRaWanModule.hex

打开串口调试工具,重启运行显示如下输出结果:

  1. **********************************************
  2. ====== LinkWAN LoRa Node SDK Example =====
  3. ====== LoRaWAN 1.0.3 Specification,CN470 =====
  4. *********************************************
  5. This is Debug Version, Input AT Cmd to start your Experience!
  6. =======================================================
  7. ****Set DevInfo: e.g. AT+CDEVEUI=devEui, AT+CAPPEUI=joinEUI,AT+CAPPKEY=appKey
  8. ****Start OTAA Join: e.g. AT+CJOIN=1,1
  9. ****Send Data: e.g. AT+DTX=10,0123456789
  10. ****Switch Class: e.g. AT+CCLASS=2 (classC)
  11. ****Switch Class: e.g. AT+CCLASS=1,0,2 (classB)
  12. ****Enter Repeater Mode: e.g. AT+CJOINMODE=1
  13. ****ConfirmUp Send Periodically(20s): e.g. AT+CCONFIRM=1, AT+CRM=1,20
  14. ****More AT Cmd infor, pls ref <ICA AT Cmd Spec>.
  15. =======================================================

调试

用JLINK和GDB调试开发板如下,以ST NucleoL476开发板为例: 开启JLinkGDBServer:

  1. JLinkGDBServer -device STM32L476RGTx -if swd -speed 4000

开启GDB Client进行调试:

  1. arm-none-eabi-gdb SdkExample-classB -ex "target remote localhost:2331"

技术文档

技术架构图

AT CMD

SDK说明

请见SDK使用手册:./LoRaNodeSDK/Doc/NodeSDK_Manual_vX.X.X.pdf;

节点接入要求:请见接入规范文档:./LoRaNodeSDK/Doc/阿里云Link WAN节点接入规范vX.X.X.pdf

硬件支持

开发板

默认能运行LoRaWAN协议栈的开发板都支持,如:

  • NucleoL073
  • NucleoL152
  • NucleoL476 (default)
  • SAML21
  • SKiM880B
  • SKiM980A
  • SKiM881AXL

硬件移植

http://stackforce.github.io/LoRaMac-doc/_p_o_r_t_i_n_g__g_u_i_d_e.html

版本发布

v2.0.4 ChangeNotes:

  • 支持RAK811节点开发板;
  • AT Cmd:增加使用说明打印,bugfix AT+CDEVADDR;

v2.0.3 ChangeNotes:主要包括以下功能和服务

  • 提供了《LinkWAN节点接入规范》的全频段扫描参考实现;
  • 提供了《ICA联盟标准-面向LoRa的AT指令集规范1.0》增强版的参考实现;
  • 支持LinkWAN ClassA节点的中继模式;
  • 支持LBT功能;
  • 支持检测节点协议;
  • 支持ABP模式;

v2.0.2 ChangeNotes:主要包括以下功能和服务

  • 提供了认证模式功能;
  • 对上层提供更便捷的应用API;
  • 新增实现了联盟的应用层组播功能;
  • 新增LoRa模块连接策略(入网退避策略,ClassB切换策略,时间同步策略等);
  • 对原有ClassA/B/C缺陷进行修复;
  • 对现有LoRaWAN节点协议栈的鲁棒性,可靠性,稳定性做了进一步增强;

参考链接:

LinkWAN平台:https://iot.aliyun.com/products/linkwan

LoRaWAN协议规范:https://lora-alliance.org/resource-hub

ICA联盟标准规范:https://ica-alliance.org/standardization

LoRaWAN协议节点参考实现:https://github.com/Lora-net/LoRaMac-node/tree/v4.4.2-rc.1

详见:LoRaNodeSDK/Doc/NodeSDK_QuickStart.docx