本文作者:zhujue

黑豹 X2-pantherx2-SX1302 LoRa 网关项目-(GitHub)

zhujue 2024-06-09 12:36:13 67 抢沙发
黑豹 X2-pantherx2-SX1302 LoRa 网关项目-(GitHub)摘要: ...
[youbanshan]

黑豹 X2-pantherx2-SX1302 LoRa 网关项目-(GitHub) X2 x2 Panther LoRaWAN 第1张

黑豹 X2-pantherx2-SX1302 LoRa 网关项目-(GitHub) X2 x2 Panther LoRaWAN 第2张pantherx2_sx1302_hal-master.zip




自述文件

 / _____)             _              | |
( (____  _____ ____ _| |_ _____  ____| |__
 \____ \| ___ |    (_   _) ___ |/ ___)  _ \
 _____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
  (C)2020 Semtech

SX1302 LoRa 网关项目

1. 核心库:libloragw

此目录包含库的源代码,用于基于 Semtech LoRa SX1302 集中器芯片(又名集中器)。 编译后,所有代码都包含在 libloragw.a 文件中,该文件将 静态链接(即集成到最终可执行文件中)。

该库还附带了一些基本测试程序,用于测试 库的不同子模块。

请参阅位于 libloragw 目录中的 readme.md 文件 更多细节。

2. 帮助程序

这些程序包含在项目中,以提供有关如何使用的示例 HAL 库,并帮助系统组装商测试它的不同部分。

2.1. packet_forwarder

数据包转发器是在主机上运行的程序 Lora 网关 通过 IP/UDP 将集中器接收的射频数据包转发到服务器 链接,并发出服务器发送的射频数据包。

((( Y )))
    |
    |
+- -|- - - - - - - - - - - - -+        xxxxxxxxxxxx          +--------+
|+--+-----------+     +------+|       xx x  x     xxx        |        |
||              | USB |      ||      xx  Internet  xx        |        |
|| Concentrator |<----+ Host |<------xx     or    xx-------->|        |
||              | SPI |      ||      xx  Intranet  xx        | Server |
|+--------------+     +------+|       xxxx   x   xxxx        |        |
|   ^                    ^    |           xxxxxxxx           |        |
|   | PPS  +-----+  NMEA |    |                              |        |
|   +------| GPS |-------+    |                              +--------+
|          +-----+            |
|                             |
|            Gateway          |
+- - - - - - - - - - - - - - -+

上行链路:网关接收的无线电数据包,元数据由 网关,转发到服务器。可能还包括网关状态。

下行链路:服务器生成的数据包,带有额外的元数据,要 由无线电信道上的网关传输。可能还包括 网关的配置数据。

请参阅位于 packet_forwarder 目录中的 readme.md 文件 了解更多详情。

2.2. util_net_downlink

下行链路数据包发送方是一个简单的帮助程序,用于侦听单个 UDP 端口,使用适当的 ACK 响应 PUSH_DATA 和 PULL_DATA 数据报,以及 使用给定的帧参数向套接字发送下行链路 JSON 数据包,地址为 固定的时间间隔。 它是网络数据包发送方。

它还可以用作 UDP 数据包记录器,将接收到的上行链路存储在 本地 CSV 文件。

请参阅位于 util_net_downlink 目录中的 readme.md 文件 了解更多详情。

2.3. util_chip_id

此实用程序将 SX1302 配置为能够检索其 EUI。然后它可以 用作网关 ID。

2.4. util_boot

在用于 USB 网关时,该软件在 DFU 模式下切换集中器 以便对其内部STM32 MCU进行编程。

2.5. util_spectral_scan

该软件允许使用额外的 sx1261 无线电扫描频谱波段 Semtech Corecell 参考设计。

3. 帮助程序脚本

3.1. 工具/reset_lgw.sh

此脚本用于执行 SX1302 的基本初始化 CoreCell 参考设计定义的 GPIO。 它使 SX1302 退出复位并设置电源使能引脚。 此处提供的访问 SX1302 的每个程序都会调用此脚本。 它必须与程序的可执行文件位于同一目录中。

4. 编译、安装和运行指令

所有库和测试程序都可以从 此项目的根目录。

4.1. 清理和编译所有内容

make clean all

4.2. 将可执行文件和关联文件安装在一个目录中

首先编辑位于项目根目录下的 target.cfg 文件 为了配置可执行文件的安装位置。

TARGET_IP:设置网关主机的IP地址。如果 项目是在网关主机本身(Raspberry Pi...)上编译的,这可以 左设置为 。localhost

TARGET_DIR:设置网关主机文件系统上的目录,其中 必须复制可执行文件。请注意,在以下情况下,目录必须存在 调用 install 命令。

TARGET_USR:设置用于执行 SSH/SCP 命令的 linux 用户 用于复制可执行文件。

为了避免在安装文件时输入用户密码, 必须遵循以下步骤。

假设您想在两个主机之间复制 host_src 和 host_dest(它们可以 是一样的)。host_src 是运行 scp 命令的主机, 无论文件副本的方向如何!

  • 在host_src上,以运行 scp 的用户身份运行此命令
    ssh-keygen -t rsa

这将提示输入密码。只需按回车键即可。然后它会 生成标识(私钥)和公钥。永远不要分享 任何人的私钥!ssh-keygen 显示它保存公钥的位置。 这是默认的 ~/.ssh/id_rsa.pub

  • 将 id_rsa.pub 文件转移到 host_dest
    ssh-copy-id -i ~/.ssh/id_rsa.pub user@host_dest

您应该能够在不要求输入密码的情况下登录host_dest。

现在一切都设置好了,可以调用以下命令:
make install

为了同时安装数据包转发器 JSON 配置文件:
make install_conf

4.3. 从 PC 交叉编译

  • 添加与目标对应的编译器的二进制文件的路径 platform 添加到环境变量。PATH

  • 将环境变量设置为 。ARCHarm

  • 将环境变量设置为对应的前缀 目标平台的编译器。CROSS_COMPILE

Raspberry Pi 目标示例:

  • export PATH=[path]/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

  • export ARCH=arm

  • export CROSS_COMPILE=arm-linux-gnueabihf-

然后,从先前环境变量所在的同一控制台 设置,执行:

make clean all

5. USB接口

该项目提供对 SPI 或 USB 网关的支持。对于USB接口, 集中器板有一个 STM32 MCU,linux 主机将使用它 通信以配置 SX1302 和关联的无线电。STM32 可执行 作为 USB <> SPI 桥接器。

STM32 MCU必须使用本项目目录中提供的二进制文件进行编程。有关如何刷机的更多详细信息,请参阅 到说明。mcu_binutil_boot/readme.md

项目的每个测试实用程序都可以使用 '-u -d /dev/ttyACMx' 命令行选项,或在数据包转发器中进行正确配置 global_conf.json文件。

6. 第三方库

这个项目依赖于几个第三方开源库,这些库可以 在目录中找到。libtools

7. 更新日志

2.1.0 版

更新

此版本仅针对 USB Corecell(SPI 连接类型没有变化)。 USB-SPI桥接固件运行在USB Corecell的STM32 MCU上,具有 已更新,以改进 API 清理和健壮性。

变化

  • MCU:USB-SPI 网桥固件二进制 v1.0.0。

    • 删除了过时的命令(ORDER_ID__REQ_SPI、ORDER_ID__ACK_SPI)

    • 删除过时的命令后命令索引移动(ORDER_ID__REQ_MULTIPLE_SPI、ORDER_ID__ACK_MULTIPLE_SPI)

    • 命令解析器在命令大小错误的情况下发送ORDER_ID__UNKNOW_CMD。

    • 代码清理(错别字修正,添加注释...

    • 实现了 Error_Handler() 功能,以在发生致命错误时重置 MCU。

    • 修复了 read_write_spi() 函数中潜在的滚动更新问题。

    • 提高了 USB 传输时主机反馈的延迟容限。

  • HAL:针对 MCU 固件 v1.0.0 更新了命令界面。

    • 从枚举order_id_e中删除了过时的命令

    • 根据 USB-SPI 网桥更新移位命令枚举索引。

    • 删除了 decode_ack_spi_access() 未使用的函数。

  • HAL:在DEBUG_MCU下添加了时序调试信息。

2.0.2 版

更新

修复了基于 sx1255/sx1257 的平台(全双工 网关...)。

变化

  • HAL:基于 sx1255/sx1257 的网关的 AGC 固件版本为 v6。

  • HAL:微小的外观变化和错别字修复。

2.0.1 版

更新

精细的时间戳功能已在此版本中得到充分验证。

变化

  • HAL:调整了接收数据包的freq_offset字段,以考虑 通道 IF 分辨率错误。

  • HAL:与网关 v2 相比,优化了精细的时间戳偏移量,方法是考虑 帐户接收到的数据包的频率偏移。

  • HAL:修复了 FSK 下行链路的前导码长度

  • MCU:删除了在调试模式下编译的二进制文件。

  • util_spectral_scan:实际使用被忽略的 nb_scan 输入参数。

2.0.0 版

新功能

  • 添加了对 HOST 和集中器之间的 USB 接口的支持, 仅适用于基于 SX1250 的集中器。

  • 添加了对 AS923 区域的 Listen-Before-Talk 的支持,使用额外的 Semtech Corecell 参考设计 v3 的 sx1261 无线电。

  • 添加了对 Semtech 附加 sx1261 无线电的频谱扫描支持 Corecell 参考设计 v3。

  • 添加了对 SX1303 芯片的支持,以进一步支持精细时间戳。

  • 合并了 master-fdd-cn490 分支,引入了对 CN490 全双工的支持 参考设计。它是版本 v1.1.0、v1.1.1、v1.1.2 的集成 如下所述。

变化

  • HAL:重新设计了完整的通信层。新的loragw_com模块具有 被引入以处理来自USB或SPI通信接口的切换, SX125X、SX1250 和 SX1261 无线电的对齐功能原型。对于 USB,一个 模式已添加到对 STM32 MCU 的 SPI 写入命令请求组中,在 为了优化时间关键配置阶段的延迟。

  • HAL:添加了对 TDOA 本地化的精细时间戳的初步支持。

  • HAL:将 AGC 固件更新到 v6:添加 PA 启动的可配置延迟,添加 先听后说支持。

  • HAL:新增 API 函数 lgw_demod_setconf() 设置全局解调器 设置。

  • HAL:为光谱扫描添加了新的 API 函数。

  • 数据包转发器:接口类型可在 global_conf.json文件:com_type可以是“USB”或“SPI”。

  • 数据包转发器:更改了参数以在 global_conf.json。

  • 数据包转发器:添加了用于配置频谱扫描和 先听后说功能。

  • 数据包转发器:为后台频谱扫描示例添加了一个新线程, 展示如何使用 HAL 提供的光谱扫描 API,而无需 干扰网关的主要任务(又名接收上行链路和传输 下行链路)。

  • 数据包转发器:添加了从“txpk”JSON下行链路请求解析“nhdr”字段 以便能够从网络服务器发送信标请求。

  • 数据包转发器:在global_conf.json中添加了chan_multiSF_All以选择哪个 扩频因子,使多SF解调器成为可能。

  • 数据包转发器:PROTOCOL.md 更新到 v1.6。

  • 工具:添加了 util_spectral_scan,一个独立的光谱扫描仪实用程序。

笔记

  • 此版本已在 Semtech Corecell 参考设计 v3 上进行了验证 带USB接口。

1.1.2 版

集成在 v2.0.0 中,从 master-fdd-cn490 分支。

  • 数据包转发器:更新了 global_conf.json.sx1255.CN490.full-duplex with RSSI 温度补偿系数,并更新了无线电 1 的 RSSI 偏移。

1.1.1 版

集成在 v2.0.0 中,从 master-fdd-cn490 分支。

  • HAL:更新了全双工 CN490 参考的 SX1302 LNA/PA LUT 配置 设计。

  • test_loragw_hal_rx/tx:添加了 --fdd 选项以启用全双工

  • 数据包转发器:更新了 CN490 的 global_conf.json.sx1255.CN490.full-duplex 参考设计。

1.1.0 版

集成在 v2.0.0 中,从 master-fdd-cn490 分支。

  • HAL:添加了对 CN490 全双工参考设计的支持。

1.0.5 版

  • HAL:修复了数据包时间戳问题,该问题特定为“时间跳跃” 条件。

  • HAL:读取 32 位寄存器时的解决方法硬件问题(时间戳、nb RX 缓冲区中的字节...

  • HAL:修复了 SPI 访问中 sx1302_tx_abort() 中的潜在无限循环失败的问题。

  • 数据包转发器:为 US915 频段添加了 global_conf.json.sx1250.US915

  • test_hal_rx:添加了命令行以指定要应用的 RSSI 偏移量

1.0.4 版

  • 添加了缺少的 LICENSE.TXT 文件

  • HAL & Packet Forwarder:添加了对基于 sx1250 的参考设计的支持,用于 CN490区域

  • 数据包转发器:默认禁用信标

1.0.3 版

  • HAL:通过将 tx 启动延迟纳入 帐户。

  • HAL:BW250 和 BW500 的固定时间戳校正计算

  • HAL:修复了 lgw_receive() 函数中可能存在的缓冲区溢出问题

  • HAL:当分配要接收的缓冲区时,将接收的数据包保留在 RX 缓冲区中 数据包太小。剩余的数据包将在下一个数据包中获取 lgw_receive调用(与 SX1301 行为保持一致)。

1.0.2 版

  • 修复了最新版本的 GCC 报告的编译警告

  • 重新设计了温度传感器的处理方式

  • 清理未使用的文件

  • 添加了数据包转发器自动启动的说明和配置文件 使用 systemd

  • 在启动时添加了 SX1250 无线电校准

1.0.1 版

  • 数据包转发器:更新了 global_conf.json.sx1250 中的 TX 增益 LUT,具有适当的 校准

1.0.0 版

  • HAL:SX1302 CoreCell 参考设计的初始官方版本。

0.0.1 版

  • HAL:TAP程序的初始私有版本

8. 法律声明

本项目文档中提供的信息不构成 任何报价或合同,都被认为是准确和可靠的,并且可能是 更改恕不另行通知。发布者对任何 其使用的后果。其发布不传达或暗示任何 根据专利或其他工业或知识产权获得许可。 Semtech 对任何故障或 误用导致的意外操作,疏忽安装不当, 维修或处理不当或异常的物理或电气应力 包括但不限于暴露于超出规定的参数 最大额定值或超出指定范围的操作。

SEMTECH 产品并非设计、意图、授权或保证 适用于生命支持应用、设备或系统或其他 关键应用。将 SEMTECH 产品包含在此类应用中是 被理解为完全由客户自行承担风险。应该 客户购买或使用 Semtech 产品时,将任何此类未经授权的产品用于任何此类此类行为 申请时,客户应赔偿并扣留 Semtech 及其管理人员, 员工、子公司、关联公司和分销商对所有人无害 可能产生的索赔、费用、损害赔偿和律师费。

EOF(英语:EOF)



[/youbanshan]
文章投稿或转载声明

来源:黑豹 X2-pantherx2-SX1302 LoRa 网关项目-(GitHub)版权归原作者所有,转载请保留出处。本站文章发布于 2024-06-09 12:36:13
温馨提示:文章内容系作者个人观点,不代表天云博客对其观点赞同或支持。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,67人围观)参与讨论

还没有评论,来说两句吧...