LoRaWan Mac 网关研发设计

设计目的

设计具有 LoRaWan 网络服务器功能的 LoRaWan 网关,称之为 Mac 网关。

设计背景:

当前的 LoRaWan 标准架构如下:
在这里插入图片描述
标准 LoRaWan 架构需要4中角色:

  1. 终端,LoRaWan 节点,以射频方式发送 LoRaWan 协议栈;
  2. lorawan 网关,以网络形式转发终端发送的 LoRaWan 协议帧给网络服务器,并以射频形式发送网络服务器下发给终端的报文;
  3. lorawan 网络服务器,进行 LoRaWan 帧解析,帧解密,把负载转发给应用服务器;
  4. 应用服务器,搭载 LoRaWan 应用。

设计思考

如果需要研发 Mac 网关,那么需要将网络服务器的功能在LoRaWan 网关中实现。
LoRaWan 网络服务器功能如下:
在这里插入图片描述
结合 LoRaWan 规范、网关规范、网络服务器规范与上图,Mac 网关需要实现的功能有:

  1. LoRaWan 终端入网;
  2. LoRaWan 射频帧解析;
  3. LoRaWan 数据加/解密。
  4. LoRaWan 规范中的其他要求,比如时序,命令等。

设计难点

因为Mac 网关需要解析的协议帧、加/解密条件与 LoRaWan 节点不完全相同,且没有代码或工程可供移植,所以Mac 网关所有的功能都需要研发实现

设计过程

  1. Mac 网关的研发参考 LoRaWan 节点工程;并划分如下的 Mac 网关的代码架构与功能模块:
    在这里插入图片描述
    其中,Mac 层框架如下:
    在这里插入图片描述

剩余设计过程:略。

Mac 网关工程设计说明

Mac 网关工程框架如下:
在这里插入图片描述
这个工程为 Mac 网关的 Mac 层。其中:

  1. /Mac :包含 Mac 网关的帧解析模块,加/解密模块,协议级处理模块。
  2. /Radio :向下对接射频层。
  3. /src :创建 Mac 协议级处理线程。
  4. /System :系统的辅助库函数,如定时服务库、加/解密库。

加/解密模块

该模块由以下代码库实现:

  1. /Mac/LoRaMacCrypto.c 与 /Mac/LoRaMacCrypto.h
  2. /Mac/secure-element.h
  3. /System/soft-se/aes.c 与 /System/soft-se/aes.h
  4. /System/soft-se/cmac.c 与 /System/soft-se/cmac.h
  5. /System/soft-se/soft-se.c

Mac 网关的加/解密模块实现对上行 LoRaWan 帧的解密,和下行 LoRaWan 帧的加密。

帧解析模块

该模块由以下代码库实现:

  1. /Mac/LoRaMacHeaderTypes.h
  2. /Mac/LoRaMacMessageTypes.h
  3. /Mac/LoRaMacParser.c 与 /Mac/LoRaMacParser.h
  4. /Mac/LoRaMacSerializer.c 与 /Mac/LoRaMacSerializer.h
  5. /Mac/LoRaMacTypes.h

帧解析模块实现的上行 LoRaWan 协议级解析,与下行数据的协议级组帧。

时间服务模块

该模块由以下代码库实现:

  1. /System/timer.c 与 /System/timer.h

时间服务模块为 LoRaWan 帧的协议级处理提供时间调度服务。

协议级处理模块

该模块由以下代码库实现:

  1. LoragwMac.c 与 LoragwMac.h

协议级处理模块是对外展示的模块,该模块的接口实现了 Mac 网关的具体功能。

协议栈处理线程

该线程由以下代码库实现:

  1. /src/devLoRaMacGw.c

协议栈处理线程负责处理由不同射频中断产生的不同 Mac 层事件。并真正提供与应用层对接的接口。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值