sx1278节点开发

sx1278节点开发

节点可以设置发射功率和速率吗?

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 1069 次浏览 • 2019-06-11 16:15 • 来自相关话题

LPMD002用户手册--SDK使用开发指南

lorawan雪梨君 发表了文章 • 2 个评论 • 4958 次浏览 • 2018-05-30 17:20 • 来自相关话题

1本文目的通过本文的说明介绍用户将了解和熟悉LP ...查看全部



1本文目的

通过本文的说明介绍用户将了解和熟悉LPMD002节点模块的SDK开发使用流程。

注:本文默认用户已经熟悉IAR软件的安装和使用方法以及相关仿真下载工具的使用,故这方面内容不在本文说明范围之内,下同。

2 SDK开发环境

IAR6.20 FOR ARM

3 SDK功能简介

3.1完全符合LoraWan 1.0.1协议标准

3.2支持ClassA和ClassC协议

3.3支持ABP和OTAA激活

3.4支持上下行双向通信

3.5支持低功耗

4 SDK使用方法

4.1安装IDE:

IAR6.20 FOR ARM

4.2打开工程:

LPKT002-SDK-V2.00\IAR\loranode.eww

4.3确认工程宏定义

图片40.png 

 

4.4编译工程

结果如下所示,

图片41.png 

 

4.5关键参数和宏定义说明:

4.5.1头文件“Comissioning.h”及基础参数

该头文件定义了lorawan的基础配置参数,如下:

宏定义

说明

#define OVER_THE_AIR_ACTIVATION

1-OTAA激活

0-ABP激活

#define LORAWAN_PUBLIC_NETWORK

True-公开网络

False-私有网络

#define LORAWAN_DEVICE_EUI

DEVICE_EUI,8字节

OTAA模式和ABP模式均需要设置

#define LORAWAN_APPLICATION_EUI

APPLICATION_EUI,8字节

OTAA模式和ABP模式均需要设置

#define LORAWAN_APPLICATION_KEY

APPLICATION_KEY,16字节

OTAA模式需要设置

#define LORAWAN_NETWORK_ID

网络ID

#define LORAWAN_DEVICE_ADDRESS

设备地址,4字节

OTAA模式由NS分配

ABP模式需手动设置

#define LORAWAN_NWKSKEY

NWKSKEY,16字节

ABP模式需要设置

#define LORAWAN_APPSKEY

APPSKEY,16字节

ABP模式需要设置

4.5.2头文件“LoRaMac-definitions.h”及信道

该头文件定义了lorawan的基础通信配置的参数,其中根据不同频段参数有所不同,

使用频段为USE_BAND_470(标准CN470~510频段),

根据lorawan协议的设计通过:

#define LORA_MAX_NB_CHANNELS                        96

可知该频段总共支持96个上行信道,具体的信道配置如下:

for( uint8_t i = 0; i < LORA_MAX_NB_CHANNELS; i++ )

{

Channels.Frequency = 470.3e6 + i [i] 200e3; //ast c

Channels[i].DrRange.Value = ( DR_5 << 4 ) | DR_0;

Channels[i].Band = 0;

}

即从470.3Mhz开始,信道间隔200Khz,489.3Mhz结束。

由lorawan协议可知与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, RxWindowsParams[0].RxWindowTimeout, false );

其中利用( Channel % 48 )将上行信道分为0~47和48~95,分别与下行的信道的0~47对应。

另外还有1个固定的下行RX2信道

#define RX_WND_2_CHANNEL                      { 505300000, DR_0 }

 

实际单sx1301网关只有8上行信道,所以需要设置sdk的信道掩码,只开启需要的信道即可,

图片42.png 

如图所示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信道。

 

4.5.3通信流程相关

本sdk功能是OTAA自动入网,10S间隔,按确认上行方式发送数据,默认工作流程如下:

A)main()->BoardInitMcu( )

该函数执行基础硬件初始化,其中BoardUnusedIoInit( ); 该函数为低功耗处理用的IO配置函数,为满足低功耗,不用使用的IO应做如下处理:

GpioInit( &ioPin, UNUSEDPINPA0, PIN_ANALOGIC, PIN_PUSH_PULL, PIN_NO_PULL, 0 );

其中的串口相关配合如下:

 图片53.png

此处串口收发均采用fifo+irq方式处理,用户可以更改。

串口接受处理如下:

 图片43.png

建议采用状态机方式进行数据接受。

B)main()->while( 1)

该函数为状态机式主循环,主循环根据以下状态机依次执行,

图片44.png 

DEVICE_STATE_INIT状态:最主要的初始化以下三个回调函数,

LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm;

用户上行确认类事件,如确认上行,非确认上行回复的处理等,通信流程在此处理

LoRaMacPrimitives.MacMcpsIndication = McpsIndication;

下行通知类事件,如接受应答,读取数据包rssi,snr等,接受数据处理均在该函数中进行,如下

图片45.png 

LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm;

系统上行类事件,如join请求处理,linkcheck请求处理等,主要处理OTAA 入网

DEVICE_STATE_JOIN状态:根据OVER_THE_AIR_ACTIVATION宏定义决定采用OTAA还是ABP入网,然后从Comissioning.h头文件中读取数据进行配置,默认配置如下:

图片46.png 

DEVICE_STATE_SEND

周期发送数据,10S

图片47.png 

发送函数

图片48.png 

该发送调用通过

图片49.png 

准备好的数据,可以修改AppData数组更改发送的数据

DEVICE_STATE_CYCLE

自动开启定时器

DEVICE_STATE_SLEEP

低功耗函数

TimerLowPowerHandler( );  

该函数内部由USE_DEBUGGER宏定义控制是否真正进入低功耗状态,

图片50.png 

关于低功耗:

除了上文介绍的IO口处理,其他如IIC,UART,SPI,HSEIO,LSEIO等程序本身可以控制的都在低功耗前关闭,唤醒后开启。

SDK给出了示例可以参考,如下图所示:

图片51.png 

图片52.png 

低功耗除了程序本身外,还取决于硬件设计的,如使用有源晶振,无源晶振,IO外置的上下拉电阻等,本司另提供LPMD003小体积低功耗高性能lorawan模块,有意可联系客户。


LORAWAN开发中常见问题集锦(FAQ)-第一期

lorawan雪梨君 发表了文章 • 0 个评论 • 4593 次浏览 • 2018-05-30 13:15 • 来自相关话题

1.问:什么是LoRa?答:LoRa是低功耗广域网通信技术中的一种,是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术,是Semtech 射频部分产生的一种独特的调制格式。&n ...查看全部

1.问:什么是LoRa?

答:LoRa是低功耗广域网通信技术中的一种,是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术,是Semtech 射频部分产生的一种独特的调制格式。 LoRa射频部分的核心芯片是SX1276和SX1278。这类芯片集成规模小、效率高,为LoRa无线模块带来高接收灵敏度。而网关芯片则采用的是集成度更高、信道数更多的SX1301。用SX1301作为核心开发出的LoRa网关,可以与许许多多的LoRa模块构成多节点的复杂的物联网自组网。

2.问:开发套件对开发者有何帮助呢?

答:用我们的套件可以评估和测试lorawan协议下的数据通信格式、通信距离、信号质量评估等;并且我们提供sx1301网关模块的设备驱动,用户可以将网关核心模块集成到兼容该驱动的任意linux系统上;同时提供终端节点的SDK,可用于二次开发。

其中终端节点SDK提供源代码,加速二次开发。

3.问:这个套件提供硬件原理图和芯片手册么?

答:提供网关应用扩展板原理图和芯片资料(包含芯片手册);终端节点提供接硬件接口引脚定义资料和原理图。

4.问:sx1301核心网关模块提供什么硬件接口?

答:模块带有USB和SPI接口用于和HOST主机的通信,USB和SPI两者二选一。

5.问:这套评估套件目前支持的工作频率是?

答:目前默认是470Mhz工作频段,如需其他频段请咨询客服。

6.问:sx1301核心网关模块可以和单片机通信么?比如STM32

答:目前不支持直接和普通单片机通信,只能配合linux嵌入式开发平台使用。

7.问:sx1301核心网关模块接口定义是?

答:网关接口如下图,详细资料见套件配套光盘资料。

 

8.       网关和终端的通讯距离是是多少?

答:无遮挡5~8公里,市区情况下2~3公里。

 

9.       你们LoRAwan网关,理论上可以支持到多少个终端模块?

 答:lorawan网关支持设备数量跟设备发包频次、数据包大小、平台处理能力等密切相关要综合考虑 ,理论支持10万。 

 

10、购买你们的开发套件提供什么样的技术支持?

答:首先产品具有完备的技术使用手册,只要按照手册一步一步操作即可跑通流程,针对产品本身使用提供全程技术支持;其次针对终端节点提供SDK源码包供二次开发使用,提供基础使用指导服务,不提供具体开发指导服务;

 

11、 网关模块、终端模块是否可以单独购买?

答:单独的1301网关模块、终端节点模块原则上只针对批量用户和购买过套件的客户。

 

12、 贵公司是否承接项目定制开发?

答:我公司承接lorawan相关项目定制,需要出具需求文档,由技术人员评估后,再由商务人员跟您回复。

 

13、 网关模块是否支持连接其他网络服务器?

答:开发套件的网关是连接我们的网络服务器,如果连接至其他的网络服务器,需要在网关上安装与要连接的网络服务器对应的SDK,该工作由客户自己或网络服务器厂家完成。

 

14、 开发套件支持的lorawan协议版本是?

答:lorawan1.0.1

 

15、 开发套件实现了classA、classB、classC吗?

答:目前实现了classA和classC

 

16、你们网关源码 是官方github上开源的吗?

 答:网关是基于官方github上源码优化的,解决了多个官方BUG并进行了多处优化。

 

17、我看你们这个套件里还有树莓派,你们是拿来做什么的?

 答:树莓派是网关的主控板,基于linux系统的,用于控制SX1301网关模块。

 

18、你们的系统是必须要NS(网络服务器)才能使用的?NS(网络服务器)是否可以不用?

 答:现在开发套件演示操作起来必须配合NS。如果需要省掉现有的NS有两个解决办法:


1,使用嵌入式本地NS,即在网关的linux主板板上实现嵌入式NS服务,如有需求请联系客服进行定制化开发服务;2,不使用lorawan协议,通过修改终端和网关应用代码,通过自有协议,实现类似功能。


19.  问:这个套件提供NS(网络服务器)么?


答:提供NS(网络服务器)云平台系统,并配合套件提供不一年使用期限的免费账号用于套件的评估测试。


20.  问:LoRa是扩频技术吗?

答:LoRa是一种扩频技术,但它不是直接序列扩频。直接序列扩频通过调制载波芯片来传输更多的频谱,从而提高编码增益。而LoRa调制与多状态FSK调制类似,使用未调制载波来进行线性调频,使能量分散到更广泛的频段。


21. 问: LoRa是Mesh网络、点对点传输还是星形网络?

答:LoRa调制技术本身是一个物理层(PHY layer)协议,能被用在几乎所有的网络技术中。Mesh网络虽然扩展了网络覆盖的范围,但是却牺牲了网络容量、同步开销、电池使用寿命。随着LoRa技术链路预算和覆盖距离的同时提升,Mesh网络已不再适合,故采用星形的组网方式来优化网络结构、延长电池寿命、简化安装。LoRa网关和模块间以星形网方式组网,而LoRa模块间理论上可以以点对点轮询的方式组网,当然点对点轮询效率要远远低于星形网。


22.  问:LoRa技术与SIGFOX,NWave的区别在哪里?

答:总的来说,LoRa技术采用的是一种扩频技术;SIGFOX公司使用窄带BPSK调制技术;NWave公司使用Weightless标准,与SIGFOX公司使用的技术较为相似。

目前使用超窄带技术的公司可供选择的收发器芯片较多,而LoRa仅能使用Semtech提供的芯片。


23.  问:什么是LoRa网关?

答:LoRa网关位处LoRa星形网络的核心位置,是终端和服务器(Server)间的信息桥梁,是多信道的收发机。LoRa网关有时又被称为LoRa基站或LoRa集中器,虽然定义不同,但其实是同一含义。

LoRa网关使用不同的扩频因子,不同的扩频因子两两正交因而理论上可以在同一信道中对多条不同扩频因子的信号进行解调。网关与网络服务器间通过标准IP进行连接,终端通过单跳与一个或多个网关进行通讯,所有的终端通讯都是双向通讯,同时也支持软件远程升级等。 

目前来说,定义不同,网关类型也不同。例如,按照应用场景不同可分为为室内型网关和室外型网关;按照通讯方式不同可分为全双工网关和半双工网关;而按照设计标准不同可分为完全符合LoRaWAN协议网关和不完全符合LoRaWAN协议网关。我们新一代网关为室外型,全双工,并且完全符合LoRaWAN协议。完全符合LoRaWAN协议的LoRa网关及LoRa终端能够实现互联互通,这具有很大意义!


24.问:  LoRa网关的容量有多大?单个网关能连多少个终端?

答:网关容量是指在一定时间内网关接收数据包数量的能力。理论上来说,单个SX1301芯片拥有8个信道,在完全符合LoRaWAN协议的情况下最多每天能接收1500万个数据包。如果某应用发包频率为1包/小时,单个SX1301芯片构成的网关能接入62500个终端节点。当然,这只是一个理论值,网关接入终端数量最终还是与网关信道数量、终端发包频率、发包字节数和扩频因子息息相关。




25.  问: LoRa网关接入的节点数目取决于哪些因素?

答:LoRa网关接入的节点数取决于LoRa网关所能提供的信道资源以及单个LoRa终端占用的信道资源。LoRa网关如果采用Semtech标准参考设计,网关采用SX1301芯片,那么信道数是固定的8个上行信道1个下行信道。物理信道数确定了, LoRa网关所能提供的信道资源也就确定了。

单个LoRa终端占用的信道资源与终端占用信道的时间一致,也就与终端的发包频率发包字节数以及LoRa终端的扩频因子息息相关。当LoRa终端的发包频率和发包字节数上升,该终端占据信道收发的时间就会增加,就占用了更多的信道资源。而当LoRa终端采用更大的扩频因子时,信号可以传的更远,但是代价是传递单位字节的信息会花费更多的时间。 


26.  问:什么是LoRa终端或节点? 

答:LoRa终端是LoRa网络的组成部分,一般由LoRa模块和传感器等器件组成。LoRa终端可使用电池供电,能够远程定位。每一个符合LoRaWAN协议的终端都能与符合LoRaWAN的网关直接通讯,从而实现互联互通。


27.   问:采用LoRa技术,我可以使用哪些ISM频段?

按理论来说,你可以使用150 MHz 到 1 GHz频段中的任何频率。但是Semtech的LoRa芯片并不是所有的sub-GHz的频段都可以使用,在常用频段(如433MHz,470MHz~510MHz,780MHz以及欧美常用的868MHz和915MHz都属于常用频段)以外的一些频率并不能很好的支持。目前在中国提供433MHz,470-510MHz频段网关。


28.  问:LoRa网关使用免费频段,会不会容易受到频率干扰?

答:抗干扰能力取决于LoRa技术本身的特性和网关的设计。LoRa技术本身拥有超高的接收灵敏度(RSSI)超强信噪比(SNR)。以我们的LoRa网关与LoRa模块为例,其接收灵敏度达到惊人的-142dBm,而超强的信噪比可以让网关和终端工作在噪声门限以下20dB。此外,网关使用跳频技术,通过伪随机码序列进行频移键控,使载波频率不断跳变而扩展频谱,防止定频干扰。


29.问: LoRa的数据传输速率是多少?

答:LoRaWAN协议定义了一系列的数据传输速率,不同的芯片可供选择的速率范围不同,例如SX1272支持0.3-38.4kbps,SX1276支持0.018-38.4kbps的速率范围。目前我们能实现0.3-37.5kbps的传输速率。


30.  问:使用LoRa设备发送或接收的数据长度有限制吗?

有限制,理论来说SX127x系列芯片有256 Bytes的FIFO,发射或接收256 Bytes都行得通。 但是,并不是在任何传输速率下LoRa模块的负载长度都能为256 Bytes。在传输速率较低的情况下,一次传输256 Bytes需要花费的时间极长(可能需要花费几秒甚至更长),这不利于抗干扰和交互,因此在技术处理上一般建议用户将一条长数据分割成数条小数据来进行传输


31.  问:什么是速率自适应(ADR)?

答:速率自适应(Adaptive Date Rate, ADR)是调整数据传输速率来保证可靠数据传输、优化网络性能、扩充网络容量的一种技术。当节点靠近网关时,数据传输速率可以更快、发射功率也更低。而在链路预算边缘处的节点,其数据传输速率更慢,发射功率更高。ADR方法能适应不同的网络构造,支持不同的路径损耗,可以最大化终端的电池使用寿命和整体的网络容量,LoRa网络能够从整体上管理每个终端的数据传输速率和扩频因子。


32.  问:就LoRa设备而言,其天线所能实现的发射功率是多少?



答:从芯片管脚输出的功率为+ 20 dbm,经过天线匹配/滤波损失一定功率,最终能输出的功率为+ 19 dbm + (-) 0.5 db。不同地区对最大输出功率有不同的规定, LoRaWAN协议定义了不同地区在最大化链路预算的情况下的不同输出功率。


节点可以设置发射功率和速率吗?

回复

lorawan雪梨君 回复了问题 • 2 人关注 • 1 个回复 • 1069 次浏览 • 2019-06-11 16:15 • 来自相关话题

LPMD002用户手册--SDK使用开发指南

lorawan雪梨君 发表了文章 • 2 个评论 • 4958 次浏览 • 2018-05-30 17:20 • 来自相关话题

1本文目的通过本文的说明介绍用户将了解和熟悉LP ...查看全部



1本文目的

通过本文的说明介绍用户将了解和熟悉LPMD002节点模块的SDK开发使用流程。

注:本文默认用户已经熟悉IAR软件的安装和使用方法以及相关仿真下载工具的使用,故这方面内容不在本文说明范围之内,下同。

2 SDK开发环境

IAR6.20 FOR ARM

3 SDK功能简介

3.1完全符合LoraWan 1.0.1协议标准

3.2支持ClassA和ClassC协议

3.3支持ABP和OTAA激活

3.4支持上下行双向通信

3.5支持低功耗

4 SDK使用方法

4.1安装IDE:

IAR6.20 FOR ARM

4.2打开工程:

LPKT002-SDK-V2.00\IAR\loranode.eww

4.3确认工程宏定义

图片40.png 

 

4.4编译工程

结果如下所示,

图片41.png 

 

4.5关键参数和宏定义说明:

4.5.1头文件“Comissioning.h”及基础参数

该头文件定义了lorawan的基础配置参数,如下:

宏定义

说明

#define OVER_THE_AIR_ACTIVATION

1-OTAA激活

0-ABP激活

#define LORAWAN_PUBLIC_NETWORK

True-公开网络

False-私有网络

#define LORAWAN_DEVICE_EUI

DEVICE_EUI,8字节

OTAA模式和ABP模式均需要设置

#define LORAWAN_APPLICATION_EUI

APPLICATION_EUI,8字节

OTAA模式和ABP模式均需要设置

#define LORAWAN_APPLICATION_KEY

APPLICATION_KEY,16字节

OTAA模式需要设置

#define LORAWAN_NETWORK_ID

网络ID

#define LORAWAN_DEVICE_ADDRESS

设备地址,4字节

OTAA模式由NS分配

ABP模式需手动设置

#define LORAWAN_NWKSKEY

NWKSKEY,16字节

ABP模式需要设置

#define LORAWAN_APPSKEY

APPSKEY,16字节

ABP模式需要设置

4.5.2头文件“LoRaMac-definitions.h”及信道

该头文件定义了lorawan的基础通信配置的参数,其中根据不同频段参数有所不同,

使用频段为USE_BAND_470(标准CN470~510频段),

根据lorawan协议的设计通过:

#define LORA_MAX_NB_CHANNELS                        96

可知该频段总共支持96个上行信道,具体的信道配置如下:

for( uint8_t i = 0; i < LORA_MAX_NB_CHANNELS; i++ )

{

Channels.Frequency = 470.3e6 + i [i] 200e3; //ast c

Channels[i].DrRange.Value = ( DR_5 << 4 ) | DR_0;

Channels[i].Band = 0;

}

即从470.3Mhz开始,信道间隔200Khz,489.3Mhz结束。

由lorawan协议可知与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, RxWindowsParams[0].RxWindowTimeout, false );

其中利用( Channel % 48 )将上行信道分为0~47和48~95,分别与下行的信道的0~47对应。

另外还有1个固定的下行RX2信道

#define RX_WND_2_CHANNEL                      { 505300000, DR_0 }

 

实际单sx1301网关只有8上行信道,所以需要设置sdk的信道掩码,只开启需要的信道即可,

图片42.png 

如图所示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信道。

 

4.5.3通信流程相关

本sdk功能是OTAA自动入网,10S间隔,按确认上行方式发送数据,默认工作流程如下:

A)main()->BoardInitMcu( )

该函数执行基础硬件初始化,其中BoardUnusedIoInit( ); 该函数为低功耗处理用的IO配置函数,为满足低功耗,不用使用的IO应做如下处理:

GpioInit( &ioPin, UNUSEDPINPA0, PIN_ANALOGIC, PIN_PUSH_PULL, PIN_NO_PULL, 0 );

其中的串口相关配合如下:

 图片53.png

此处串口收发均采用fifo+irq方式处理,用户可以更改。

串口接受处理如下:

 图片43.png

建议采用状态机方式进行数据接受。

B)main()->while( 1)

该函数为状态机式主循环,主循环根据以下状态机依次执行,

图片44.png 

DEVICE_STATE_INIT状态:最主要的初始化以下三个回调函数,

LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm;

用户上行确认类事件,如确认上行,非确认上行回复的处理等,通信流程在此处理

LoRaMacPrimitives.MacMcpsIndication = McpsIndication;

下行通知类事件,如接受应答,读取数据包rssi,snr等,接受数据处理均在该函数中进行,如下

图片45.png 

LoRaMacPrimitives.MacMlmeConfirm = MlmeConfirm;

系统上行类事件,如join请求处理,linkcheck请求处理等,主要处理OTAA 入网

DEVICE_STATE_JOIN状态:根据OVER_THE_AIR_ACTIVATION宏定义决定采用OTAA还是ABP入网,然后从Comissioning.h头文件中读取数据进行配置,默认配置如下:

图片46.png 

DEVICE_STATE_SEND

周期发送数据,10S

图片47.png 

发送函数

图片48.png 

该发送调用通过

图片49.png 

准备好的数据,可以修改AppData数组更改发送的数据

DEVICE_STATE_CYCLE

自动开启定时器

DEVICE_STATE_SLEEP

低功耗函数

TimerLowPowerHandler( );  

该函数内部由USE_DEBUGGER宏定义控制是否真正进入低功耗状态,

图片50.png 

关于低功耗:

除了上文介绍的IO口处理,其他如IIC,UART,SPI,HSEIO,LSEIO等程序本身可以控制的都在低功耗前关闭,唤醒后开启。

SDK给出了示例可以参考,如下图所示:

图片51.png 

图片52.png 

低功耗除了程序本身外,还取决于硬件设计的,如使用有源晶振,无源晶振,IO外置的上下拉电阻等,本司另提供LPMD003小体积低功耗高性能lorawan模块,有意可联系客户。


LORAWAN开发中常见问题集锦(FAQ)-第一期

lorawan雪梨君 发表了文章 • 0 个评论 • 4593 次浏览 • 2018-05-30 13:15 • 来自相关话题

1.问:什么是LoRa?答:LoRa是低功耗广域网通信技术中的一种,是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术,是Semtech 射频部分产生的一种独特的调制格式。&n ...查看全部

1.问:什么是LoRa?

答:LoRa是低功耗广域网通信技术中的一种,是Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术,是Semtech 射频部分产生的一种独特的调制格式。 LoRa射频部分的核心芯片是SX1276和SX1278。这类芯片集成规模小、效率高,为LoRa无线模块带来高接收灵敏度。而网关芯片则采用的是集成度更高、信道数更多的SX1301。用SX1301作为核心开发出的LoRa网关,可以与许许多多的LoRa模块构成多节点的复杂的物联网自组网。

2.问:开发套件对开发者有何帮助呢?

答:用我们的套件可以评估和测试lorawan协议下的数据通信格式、通信距离、信号质量评估等;并且我们提供sx1301网关模块的设备驱动,用户可以将网关核心模块集成到兼容该驱动的任意linux系统上;同时提供终端节点的SDK,可用于二次开发。

其中终端节点SDK提供源代码,加速二次开发。

3.问:这个套件提供硬件原理图和芯片手册么?

答:提供网关应用扩展板原理图和芯片资料(包含芯片手册);终端节点提供接硬件接口引脚定义资料和原理图。

4.问:sx1301核心网关模块提供什么硬件接口?

答:模块带有USB和SPI接口用于和HOST主机的通信,USB和SPI两者二选一。

5.问:这套评估套件目前支持的工作频率是?

答:目前默认是470Mhz工作频段,如需其他频段请咨询客服。

6.问:sx1301核心网关模块可以和单片机通信么?比如STM32

答:目前不支持直接和普通单片机通信,只能配合linux嵌入式开发平台使用。

7.问:sx1301核心网关模块接口定义是?

答:网关接口如下图,详细资料见套件配套光盘资料。

 

8.       网关和终端的通讯距离是是多少?

答:无遮挡5~8公里,市区情况下2~3公里。

 

9.       你们LoRAwan网关,理论上可以支持到多少个终端模块?

 答:lorawan网关支持设备数量跟设备发包频次、数据包大小、平台处理能力等密切相关要综合考虑 ,理论支持10万。 

 

10、购买你们的开发套件提供什么样的技术支持?

答:首先产品具有完备的技术使用手册,只要按照手册一步一步操作即可跑通流程,针对产品本身使用提供全程技术支持;其次针对终端节点提供SDK源码包供二次开发使用,提供基础使用指导服务,不提供具体开发指导服务;

 

11、 网关模块、终端模块是否可以单独购买?

答:单独的1301网关模块、终端节点模块原则上只针对批量用户和购买过套件的客户。

 

12、 贵公司是否承接项目定制开发?

答:我公司承接lorawan相关项目定制,需要出具需求文档,由技术人员评估后,再由商务人员跟您回复。

 

13、 网关模块是否支持连接其他网络服务器?

答:开发套件的网关是连接我们的网络服务器,如果连接至其他的网络服务器,需要在网关上安装与要连接的网络服务器对应的SDK,该工作由客户自己或网络服务器厂家完成。

 

14、 开发套件支持的lorawan协议版本是?

答:lorawan1.0.1

 

15、 开发套件实现了classA、classB、classC吗?

答:目前实现了classA和classC

 

16、你们网关源码 是官方github上开源的吗?

 答:网关是基于官方github上源码优化的,解决了多个官方BUG并进行了多处优化。

 

17、我看你们这个套件里还有树莓派,你们是拿来做什么的?

 答:树莓派是网关的主控板,基于linux系统的,用于控制SX1301网关模块。

 

18、你们的系统是必须要NS(网络服务器)才能使用的?NS(网络服务器)是否可以不用?

 答:现在开发套件演示操作起来必须配合NS。如果需要省掉现有的NS有两个解决办法:


1,使用嵌入式本地NS,即在网关的linux主板板上实现嵌入式NS服务,如有需求请联系客服进行定制化开发服务;2,不使用lorawan协议,通过修改终端和网关应用代码,通过自有协议,实现类似功能。


19.  问:这个套件提供NS(网络服务器)么?


答:提供NS(网络服务器)云平台系统,并配合套件提供不一年使用期限的免费账号用于套件的评估测试。


20.  问:LoRa是扩频技术吗?

答:LoRa是一种扩频技术,但它不是直接序列扩频。直接序列扩频通过调制载波芯片来传输更多的频谱,从而提高编码增益。而LoRa调制与多状态FSK调制类似,使用未调制载波来进行线性调频,使能量分散到更广泛的频段。


21. 问: LoRa是Mesh网络、点对点传输还是星形网络?

答:LoRa调制技术本身是一个物理层(PHY layer)协议,能被用在几乎所有的网络技术中。Mesh网络虽然扩展了网络覆盖的范围,但是却牺牲了网络容量、同步开销、电池使用寿命。随着LoRa技术链路预算和覆盖距离的同时提升,Mesh网络已不再适合,故采用星形的组网方式来优化网络结构、延长电池寿命、简化安装。LoRa网关和模块间以星形网方式组网,而LoRa模块间理论上可以以点对点轮询的方式组网,当然点对点轮询效率要远远低于星形网。


22.  问:LoRa技术与SIGFOX,NWave的区别在哪里?

答:总的来说,LoRa技术采用的是一种扩频技术;SIGFOX公司使用窄带BPSK调制技术;NWave公司使用Weightless标准,与SIGFOX公司使用的技术较为相似。

目前使用超窄带技术的公司可供选择的收发器芯片较多,而LoRa仅能使用Semtech提供的芯片。


23.  问:什么是LoRa网关?

答:LoRa网关位处LoRa星形网络的核心位置,是终端和服务器(Server)间的信息桥梁,是多信道的收发机。LoRa网关有时又被称为LoRa基站或LoRa集中器,虽然定义不同,但其实是同一含义。

LoRa网关使用不同的扩频因子,不同的扩频因子两两正交因而理论上可以在同一信道中对多条不同扩频因子的信号进行解调。网关与网络服务器间通过标准IP进行连接,终端通过单跳与一个或多个网关进行通讯,所有的终端通讯都是双向通讯,同时也支持软件远程升级等。 

目前来说,定义不同,网关类型也不同。例如,按照应用场景不同可分为为室内型网关和室外型网关;按照通讯方式不同可分为全双工网关和半双工网关;而按照设计标准不同可分为完全符合LoRaWAN协议网关和不完全符合LoRaWAN协议网关。我们新一代网关为室外型,全双工,并且完全符合LoRaWAN协议。完全符合LoRaWAN协议的LoRa网关及LoRa终端能够实现互联互通,这具有很大意义!


24.问:  LoRa网关的容量有多大?单个网关能连多少个终端?

答:网关容量是指在一定时间内网关接收数据包数量的能力。理论上来说,单个SX1301芯片拥有8个信道,在完全符合LoRaWAN协议的情况下最多每天能接收1500万个数据包。如果某应用发包频率为1包/小时,单个SX1301芯片构成的网关能接入62500个终端节点。当然,这只是一个理论值,网关接入终端数量最终还是与网关信道数量、终端发包频率、发包字节数和扩频因子息息相关。




25.  问: LoRa网关接入的节点数目取决于哪些因素?

答:LoRa网关接入的节点数取决于LoRa网关所能提供的信道资源以及单个LoRa终端占用的信道资源。LoRa网关如果采用Semtech标准参考设计,网关采用SX1301芯片,那么信道数是固定的8个上行信道1个下行信道。物理信道数确定了, LoRa网关所能提供的信道资源也就确定了。

单个LoRa终端占用的信道资源与终端占用信道的时间一致,也就与终端的发包频率发包字节数以及LoRa终端的扩频因子息息相关。当LoRa终端的发包频率和发包字节数上升,该终端占据信道收发的时间就会增加,就占用了更多的信道资源。而当LoRa终端采用更大的扩频因子时,信号可以传的更远,但是代价是传递单位字节的信息会花费更多的时间。 


26.  问:什么是LoRa终端或节点? 

答:LoRa终端是LoRa网络的组成部分,一般由LoRa模块和传感器等器件组成。LoRa终端可使用电池供电,能够远程定位。每一个符合LoRaWAN协议的终端都能与符合LoRaWAN的网关直接通讯,从而实现互联互通。


27.   问:采用LoRa技术,我可以使用哪些ISM频段?

按理论来说,你可以使用150 MHz 到 1 GHz频段中的任何频率。但是Semtech的LoRa芯片并不是所有的sub-GHz的频段都可以使用,在常用频段(如433MHz,470MHz~510MHz,780MHz以及欧美常用的868MHz和915MHz都属于常用频段)以外的一些频率并不能很好的支持。目前在中国提供433MHz,470-510MHz频段网关。


28.  问:LoRa网关使用免费频段,会不会容易受到频率干扰?

答:抗干扰能力取决于LoRa技术本身的特性和网关的设计。LoRa技术本身拥有超高的接收灵敏度(RSSI)超强信噪比(SNR)。以我们的LoRa网关与LoRa模块为例,其接收灵敏度达到惊人的-142dBm,而超强的信噪比可以让网关和终端工作在噪声门限以下20dB。此外,网关使用跳频技术,通过伪随机码序列进行频移键控,使载波频率不断跳变而扩展频谱,防止定频干扰。


29.问: LoRa的数据传输速率是多少?

答:LoRaWAN协议定义了一系列的数据传输速率,不同的芯片可供选择的速率范围不同,例如SX1272支持0.3-38.4kbps,SX1276支持0.018-38.4kbps的速率范围。目前我们能实现0.3-37.5kbps的传输速率。


30.  问:使用LoRa设备发送或接收的数据长度有限制吗?

有限制,理论来说SX127x系列芯片有256 Bytes的FIFO,发射或接收256 Bytes都行得通。 但是,并不是在任何传输速率下LoRa模块的负载长度都能为256 Bytes。在传输速率较低的情况下,一次传输256 Bytes需要花费的时间极长(可能需要花费几秒甚至更长),这不利于抗干扰和交互,因此在技术处理上一般建议用户将一条长数据分割成数条小数据来进行传输


31.  问:什么是速率自适应(ADR)?

答:速率自适应(Adaptive Date Rate, ADR)是调整数据传输速率来保证可靠数据传输、优化网络性能、扩充网络容量的一种技术。当节点靠近网关时,数据传输速率可以更快、发射功率也更低。而在链路预算边缘处的节点,其数据传输速率更慢,发射功率更高。ADR方法能适应不同的网络构造,支持不同的路径损耗,可以最大化终端的电池使用寿命和整体的网络容量,LoRa网络能够从整体上管理每个终端的数据传输速率和扩频因子。


32.  问:就LoRa设备而言,其天线所能实现的发射功率是多少?



答:从芯片管脚输出的功率为+ 20 dbm,经过天线匹配/滤波损失一定功率,最终能输出的功率为+ 19 dbm + (-) 0.5 db。不同地区对最大输出功率有不同的规定, LoRaWAN协议定义了不同地区在最大化链路预算的情况下的不同输出功率。