设计目的

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

设计背景:

当前的 LoRaWan 标准架构如下:
LoRaWan Mac 网关研发设计
标准 LoRaWan 架构需要4中角色:

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

设计思考

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

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

设计难点

因为Mac 网关需要解析的协议帧、加/解密条件与 LoRaWan 节点完全不同,而且这类产品在全球实属首次,所以根本没有工程可供移植。

Mac 网关所有的功能都需要研发实现

设计过程

  1. 7月9日,经过与领导(吴鹏程)的讨论, Mac 网关的研发参考 LoRaWan 节点工程;并划分 Mac 网关的代码架构与功能模块如下:
    LoRaWan Mac 网关研发设计
    其中,Mac 层框架如下:
    LoRaWan Mac 网关研发设计

    剩余设计过程:略。

Mac 网关工程设计说明

Mac 网关工程框架如下:
LoRaWan 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 层事件。并真正提供与应用层对接的接口。

相关文章:

  • 2022-12-23
  • 2021-06-28
  • 2021-06-14
  • 2022-01-08
  • 2021-09-15
  • 2021-11-14
  • 2021-08-13
  • 2021-09-28
猜你喜欢
  • 2021-09-18
  • 2021-06-30
  • 2021-11-24
  • 2022-12-23
  • 2021-07-23
  • 2021-10-22
  • 2021-06-25
相关资源
相似解决方案