LoRaWAN Node SDK入门指南
更新时间:2019-02-27 12:03:43
快速开始
Node SDK是Link WAN为合作伙伴(模组设备厂商)提供的LoRaWAN节点SDK, 在完善和修复Semtech开源节点源码的缺陷基础之上,新增了额外的具有实用价值的新特性说明、参考实现和应用实例,符合LinkWAN接入规范,能够帮助模组厂商缩短新特性的开发周期,扩大模组的应用场景,提高市场竞争力。
配置环境
CMake 版本>= 3.6;
GNU ARM-Toolchain;
Visual Studio Code(可选);
下载代码
先在以下链接签署NDA:
https://service.iot.aliyun.com/partner/ecology
完成NDA签署之后,在以下链接提交申请表单:
https://page.aliyun.com/form/Link_WAN_RAN/index.htm
两个工作日以内, 阿里会给您在以下链接开放代码下载权限:
git clone https://code.aliyun.com/LinkWAN/LoRaNodeSDK.git
设置和编译
cd path/to/project/directory(替换为自己的目录)
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE="cmake/toolchain-arm-none-eabi.cmake" -DAPPLICATION="SdkExample" -DCLASS="classB" -DCLASSB_ENABLED="ON" -DACTIVE_REGION="LORAMAC_REGION_CN470" -DBOARD="NucleoL476" -DMBED_RADIO_SHIELD="SX1262DVK1DAS" -DTOOLCHAIN_PREFIX="/Users/opt/gcc-arm-none-eabi-7-2017-q4-major" ..
注:
TOOLCHAIN_PREFIX根据自己的按照路径修改。
修改SDK目录下Commissioning.h中节点三元组信息和组播地址和秘钥;
make –j8(MAC iOS/Linux)或者make(Windows)
编译结果:
\build\src\apps\LoRaMac\SdkExample-classB.hex
效果
下载Hex文件到开发板(默认ST NucleoL476开发板)后退出:
JLinkExe->loadfilebuild/src/apps/LoRaMac/SdkExample-classB.hex
打开串口工具,重启运行显示如下输出结果:
**********************************************
====LinkWAN LoRa Node SDK Example App ====
**********************************************
LoRa:LoRa_Init_Done,LoRaWANProtocol MAC VERSION: 44211200
=======================================================
DevEui: xx-xx-xx-xx-xx-xx-xx-xx
AppEui : xx-xx-xx-xx-xx-xx-xx-xx
=======================================================
LoRa:Next Join Delay Seconds =30,NumofJoin=0.
TXon freq 472700000 Hz at DR 4,channelIndex=4.
LoRa:MLME-Request- MLME_JOIN,STATUS: OK
LoRa:JOINING
PHYtxDone,time=233
PHYrxDone,rxSize=17,rssi=-78,snr=12,time=5328.
LoRa:MLME-Confirm,STATUS:OK
DevAddr : 66EA1A51
DATARATE : DR_4
LoRa:JoinResult is Successful.
调试
用JLINK和GDB调试开发板如下,以ST NucleoL476开发板为例:
开启JLinkGDBServer:
JLinkGDBServer -device STM32L476RGTx -if swd -speed 4000
开启GDB Client进行调试:
arm-none-eabi-gdb SdkExample-classB -ex "target remote localhost:2331"
技术文档
技术架构图
SDK说明
请见SDK使用手册:docs/ SDK_Manual_vX.X.X.pdf;
节点接入要求:请见接入规范文档:docs/ ICA联盟标准-LoRa节点接入技术要求1.0.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.2发布,主要包括以下功能和服务:
- 提供了认证模式功能;
- 对上层提供更便捷的应用API;
- 新增实现了联盟的应用层组播功能;
- 新增LoRaWAN模块连接策略(入网退避策略,ClassB切换策略,时间同步策略等);
- 对原有ClassA/B/C缺陷进行修复;
- 对现有LoRaWAN节点协议栈的鲁棒性,可靠性,稳定性做了进一步增强;
参考链接:
LinkWAN平台:https://iot.aliyun.com/products/linkwan
LoRaWAN联盟协议规范:https://lora-alliance.org/resource-hub
LoRaWAN协议节点参考实现:https://github.com/Lora-net/LoRaMac-node/tree/v4.4.2-rc.1