1、支持 LoRaWAN 协议
2、可接插锂电池、板载 USB 转串口
1、介绍
LoRa_Kit_151 的射频部分是基于 Semtech SX127x 芯片的模块,主控芯片采用 STM32L151CBU6。是一款低功耗、高性价比的LoRaWAN 方案评估板。
1.2、产品特性
板载 CP2102 USB 转串口芯片(被连到 151 的 USART1),方便调试和烧写程
序(驱动程序);
2 个 LED 指示灯:橙色:电源指示(闪烁 – 通电; 长明 – 充电; 熄灭 – 充电完成),白色:连接到 PB8,高电平点亮;
RTC 时钟采用 32.768KHz 外部晶振;
板载锂电池充放电管理芯片,可直接对锂电池充电或使用锂电池供电;
工作频段:433MHz ~ 510MHz;
发射功率:18dBm ± 1dBm,发射电流:≈100mA;
接收灵敏度:-139dBm(SF12、带宽 125KHz);
完整的 STM32L151 特性:SPI、USART、IIC、GPIO、ADC……
提供支持 LoRaWAN Class A/C 协议的 SDK 开发包;
系统资源:FLASH – 128K, RAM – 16K, EEPROM – 4K;
用户可用资源:FLASH – 64K, RAM – 8K, EEPROM – 4K。
2、SDK开发包指南
2.1、开发包简介
开发环境:MDK-ARM μVision5.23.0.0
完全符合 LoRaWAN 1.0.1 和 1.0.2 协议标准
支持 Class A 和 Class C 协议
支持 ABP 和 OTAA 激活
支持上下行双向通信
基础的低功耗设计
2.2、开发包使用方法
V5.23 版本或高于此版本的 MDK-ARM 是可以对该开发包直接打开并编译的。
例程中包含 868MHz、915 MHz 等国际常用频段的定义,默认是使用 470-510 频段的,注意确认其中的宏定义部分(参照图 2-1)。若需要使用 868 MHz、915 MHz等频段,按需自行修改宏定义即可。
2.2.1、 头文件“Comissioning.h”中的一些参数
2.2.2、 头文件“LoRaMac-definitions.h”及信道
该头文件定义了 LoRaWAN 的基础通信配置的参数,,其中根据不同频段参数有所不同。我们默认的例程使用的是 470~510MHz 频段。
#define LORA_MAX_NB_CHANNELS 96
通过上面的宏定义,可知该频段总共支持 96 个上行信道,具体的信道配置如
下图红框内的代码:
由以上代码可知:从 470.3MHz 开始,信道之间间隔 200KHz,489.3MHz 结束。
与 96 上行信道对应的下行信道只有 48 个,从 500.3MHz 开始,通信间隔200KHz,509.7MHz 结束:
#define LORAMAC_FIRST_RX1_CHANNEL ( (uint32_t) 500.3e6 )
#define LORAMAC_LAST_RX1_CHANNEL ( (uint32_t) 509.7e6 )
通过如下函数与上行信道对应:
RxWindowSetup( LORAMAC_FIRST_RX1_CHANNEL + ( Channel % 48 ) * LORAMAC_STEPWIDTH_RX1
_CHANNEL, RxWindowsParams[0].Datarate, RxWindowsParams[0].Bandwidth, RxWindowsParam
s[0].RxWindowTimeout, false );
其中利用(channel % 48)将上行信道分为 0~47 和 48~95,分别与下行信道的 0~47对应,另外还有一个固定的下行 RX2 信道:
#define RX_WND_2_CHANNEL { 505300000, DR_0 }
实际上,单SX1301的网关只有 8个上行信道,所以需要设置SDK的信道掩码,
只开启需要的信道即可:
LoRaMacParamsDefaults.ChannelsMask[0] = 0x00FF;
LoRaMacParamsDefaults.ChannelsMask[1] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[2] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[3] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[4] = 0x0000;
LoRaMacParamsDefaults.ChannelsMask[5] = 0x0000;
上面代码中,LoRaMacParamsDefaults.ChannelsMask 数组元素为 uint16_t 型,
其中每 1bit 代表一个信道,所以该 6 个长度的数组,总共可代表 16*6=96 个信
道,并且每一个元素都是 LSB,即:
0x00FF; //bit 15~0
0x0000; //bit 31~16
0x0000; //bit 47~32
0x0000; //bit 63~48
0x0000; //bit 79~64
0x0000; //bit 95~80
所以在本例程中,LoRaMacParamsDefaults.ChannelsMask[0] = 0x00FF;表示只使
用 0~7 信道。
2.2.3 关于发送周期
LoRaWAN 的优势在于长距离通信,适合数据统计、自动化仪表周期性抄报等实时性要求不高的场景,不能够用于短时间内多次发送数据的场合。本例程发送数据的周期为 1 分钟,最快可以缩短到 10 秒钟一次,但需要节点很少,距离较近且干扰较小的情况才行。
#define APP_TX_DUTYCYCLE 60000 //ms