pantherx2_sx1302_hal-master.zip
/ _____) _ | | ( (____ _____ ____ _| |_ _____ ____| |__ \____ \| ___ | (_ _) ___ |/ ___) _ \ _____) ) ____| | | || |_| ____( (___| | | | (______/|_____)_|_|_| \__)_____)\____)_| |_| (C)2020 Semtech
此目录包含库的源代码,用于基于 Semtech LoRa SX1302 集中器芯片(又名集中器)。 编译后,所有代码都包含在 libloragw.a 文件中,该文件将 静态链接(即集成到最终可执行文件中)。
该库还附带了一些基本测试程序,用于测试 库的不同子模块。
请参阅位于 libloragw 目录中的 readme.md 文件 更多细节。
这些程序包含在项目中,以提供有关如何使用的示例 HAL 库,并帮助系统组装商测试它的不同部分。
数据包转发器是在主机上运行的程序 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 文件 了解更多详情。
下行链路数据包发送方是一个简单的帮助程序,用于侦听单个 UDP 端口,使用适当的 ACK 响应 PUSH_DATA 和 PULL_DATA 数据报,以及 使用给定的帧参数向套接字发送下行链路 JSON 数据包,地址为 固定的时间间隔。 它是网络数据包发送方。
它还可以用作 UDP 数据包记录器,将接收到的上行链路存储在 本地 CSV 文件。
请参阅位于 util_net_downlink 目录中的 readme.md 文件 了解更多详情。
此实用程序将 SX1302 配置为能够检索其 EUI。然后它可以 用作网关 ID。
在用于 USB 网关时,该软件在 DFU 模式下切换集中器 以便对其内部STM32 MCU进行编程。
该软件允许使用额外的 sx1261 无线电扫描频谱波段 Semtech Corecell 参考设计。
此脚本用于执行 SX1302 的基本初始化 CoreCell 参考设计定义的 GPIO。 它使 SX1302 退出复位并设置电源使能引脚。 此处提供的访问 SX1302 的每个程序都会调用此脚本。 它必须与程序的可执行文件位于同一目录中。
所有库和测试程序都可以从 此项目的根目录。
make clean all
首先编辑位于项目根目录下的 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
添加与目标对应的编译器的二进制文件的路径 platform 添加到环境变量。
PATH
将环境变量设置为 。
ARCH
arm
将环境变量设置为对应的前缀 目标平台的编译器。
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
该项目提供对 SPI 或 USB 网关的支持。对于USB接口, 集中器板有一个 STM32 MCU,linux 主机将使用它 通信以配置 SX1302 和关联的无线电。STM32 可执行 作为 USB <> SPI 桥接器。
STM32 MCU必须使用本项目目录中提供的二进制文件进行编程。有关如何刷机的更多详细信息,请参阅 到说明。mcu_bin
util_boot/readme.md
项目的每个测试实用程序都可以使用 '-u -d /dev/ttyACMx' 命令行选项,或在数据包转发器中进行正确配置 global_conf.json文件。
这个项目依赖于几个第三方开源库,这些库可以 在目录中找到。libtools
parson:JSON 解析器 (http://kgabis.github.com/parson/)
tinymt32:伪随机生成器(仅用于调试/测试)
此版本仅针对 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下添加了时序调试信息。
修复了基于 sx1255/sx1257 的平台(全双工 网关...)。
HAL:基于 sx1255/sx1257 的网关的 AGC 固件版本为 v6。
HAL:微小的外观变化和错别字修复。
精细的时间戳功能已在此版本中得到充分验证。
HAL:调整了接收数据包的freq_offset字段,以考虑 通道 IF 分辨率错误。
HAL:与网关 v2 相比,优化了精细的时间戳偏移量,方法是考虑 帐户接收到的数据包的频率偏移。
HAL:修复了 FSK 下行链路的前导码长度
MCU:删除了在调试模式下编译的二进制文件。
util_spectral_scan:实际使用被忽略的 nb_scan 输入参数。
添加了对 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接口。
集成在 v2.0.0 中,从 master-fdd-cn490 分支。
数据包转发器:更新了 global_conf.json.sx1255.CN490.full-duplex with RSSI 温度补偿系数,并更新了无线电 1 的 RSSI 偏移。
集成在 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 参考设计。
集成在 v2.0.0 中,从 master-fdd-cn490 分支。
HAL:添加了对 CN490 全双工参考设计的支持。
HAL:修复了数据包时间戳问题,该问题特定为“时间跳跃” 条件。
HAL:读取 32 位寄存器时的解决方法硬件问题(时间戳、nb RX 缓冲区中的字节...
HAL:修复了 SPI 访问中 sx1302_tx_abort() 中的潜在无限循环失败的问题。
数据包转发器:为 US915 频段添加了 global_conf.json.sx1250.US915
test_hal_rx:添加了命令行以指定要应用的 RSSI 偏移量
添加了缺少的 LICENSE.TXT 文件
HAL & Packet Forwarder:添加了对基于 sx1250 的参考设计的支持,用于 CN490区域
数据包转发器:默认禁用信标
HAL:通过将 tx 启动延迟纳入 帐户。
HAL:BW250 和 BW500 的固定时间戳校正计算
HAL:修复了 lgw_receive() 函数中可能存在的缓冲区溢出问题
HAL:当分配要接收的缓冲区时,将接收的数据包保留在 RX 缓冲区中 数据包太小。剩余的数据包将在下一个数据包中获取 lgw_receive调用(与 SX1301 行为保持一致)。
修复了最新版本的 GCC 报告的编译警告
重新设计了温度传感器的处理方式
清理未使用的文件
添加了数据包转发器自动启动的说明和配置文件 使用 systemd
在启动时添加了 SX1250 无线电校准
数据包转发器:更新了 global_conf.json.sx1250 中的 TX 增益 LUT,具有适当的 校准
HAL:SX1302 CoreCell 参考设计的初始官方版本。
HAL:TAP程序的初始私有版本
本项目文档中提供的信息不构成 任何报价或合同,都被认为是准确和可靠的,并且可能是 更改恕不另行通知。发布者对任何 其使用的后果。其发布不传达或暗示任何 根据专利或其他工业或知识产权获得许可。 Semtech 对任何故障或 误用导致的意外操作,疏忽安装不当, 维修或处理不当或异常的物理或电气应力 包括但不限于暴露于超出规定的参数 最大额定值或超出指定范围的操作。
SEMTECH 产品并非设计、意图、授权或保证 适用于生命支持应用、设备或系统或其他 关键应用。将 SEMTECH 产品包含在此类应用中是 被理解为完全由客户自行承担风险。应该 客户购买或使用 Semtech 产品时,将任何此类未经授权的产品用于任何此类此类行为 申请时,客户应赔偿并扣留 Semtech 及其管理人员, 员工、子公司、关联公司和分销商对所有人无害 可能产生的索赔、费用、损害赔偿和律师费。
EOF(英语:EOF)
还没有评论,来说两句吧...