LoRaWAN协议

LoRaWAN协议定义了使用LoRa的MAC层规范,处在协议应用层与物理层中间的实现规范。LoRa没有开放的规范化物理层协议,而LoRa物理模块的接口上很多参数都可以进行配置,LoRaWAN同时对一些数据发送格式做了相应的限制。
物理层消息结构
上行带有CRC,而下行没有。


层间组包格式

简要参数说明:DevAddr 为设备地址(包含网络地址信息),Fport复用port域,如果为0表示有效负载为MAC命令,此时FOptsLen为0;FOptsLen:options长度为,FCnt为帧计数;MIC加密完整性检查包含MHDR和FHDR FPort和 FRMPayload;MType为消息类型,指示上下行消息及是否是需要Confirm的消息,如果是confirmed消息则需要回复ACK。Major是LoRaWAN的版本号;ADR 和 ADRAckReq提供服务端用于自适应数据速率控制;ACK确认最新的帧信息;FOpts用于在发送数据时同时携带MAC Command;CID为MAC 命令ID,Args为命令参数;FRMPayload为使用key长128比特AES加密的有效数据。MAC header的最小长度为13字节,最大为28字节;上行没有目标地址,而下行没有源地址。上图不是协议上原始的消息结构图,协议结构图如下,对于每个元素的细节展开参考规范LoRaWAN-v1.1.pdf RFU 填充为0,需要省略的单元MType亦即message type依赖在相应版本Major下的消息类型。FPort如果payload不为空,则FPort必须存在如果FRMPayload只有MAC commands则此域为0。1-223用于上层应有端口,224用于MAC协议测试,225-255留给后续协议扩展。

三种终端类型
三种终端类型,classA、classB、classC,其耗能和数据延时比较如下,而classB和classC的终端可支持组播方式。

ClassA类型终端收发方式如下: 在上行发送后,Receive_Dealy误差+/-20微秒时刻进行下行接收,如果网络在RX1和RX2都发送给同一终端数据,则需要发送同帧数据。终端如果在RX1成功接收到检查成功的数据,则不可再在RX2继续接收数据。RX1的频率和速率和上行发送的频率和速率满足一定的函数关系式(在相关流程中说明),在缺省情况下第一个窗口的数据传输速率和上行发送相同,第二个窗口则采用固定可配置的频率和速率,可以通过MAC Command进行配置。窗口长度至少足够检测下行的preamble,如果检测到下行的preamble,则需要接收到相应frame解调结束。网络需要在RX1或RX2窗口边界才能开始发起数据。终端在前一次上行发送成功后如果没有正确解码到下行数据并且RX2窗口仍未超时的情况下,不可再次出发上行发送。
  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LoRaWAN协议栈是一种无线通信协议,被设计用于低功耗广域网(LPWAN)环境下的物联网应用。该协议栈提供了一种可靠、安全且具有长距离通信能力的解决方案。 LoRaWAN协议栈源码是指实现和支持LoRaWAN协议的源代码。这些源码由协议栈的开发者和社区开发者编写,供开发者使用和定制。 协议栈的源码主要包含以下内容: 1. 物理层实现:这部分代码负责实现LoRa无线通信技术,包括信号调制、解调、频谱分析等。它将数据转换为能够在无线信道上传输的低功耗、长距离信号。 2. 数据链路层实现:这部分代码负责建立和维护一个可靠的数据链路,确保数据的可靠传输。它实现了LoRaWAN协议中定义的信息交换、帧同步、差错检测和纠正等功能。 3. 网络层实现:这部分代码负责管理设备与网络服务器之间的通信。它实现了设备注册、会话建立、加密和解密等功能。同时,也负责处理网络服务器下发的命令和配置信息。 4. 应用层实现:这部分代码负责处理应用层数据,对传输的数据进行解析和处理。它实现了设备和应用服务器之间的数据交互。 使用LoRaWAN协议栈源码,开发者可以根据自己的需求和场景,自定义和优化LoRaWAN协议栈的功能和性能。通过理解和修改LoRaWAN协议栈源码,可以实现更高效、更安全、更适应特定应用场景的物联网解决方案。开发者还可以基于协议栈源码进行二次开发,添加自己的应用逻辑、协议扩展和性能优化等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值