12 个稳定版本
3.0.1 | 2024年7月11日 |
---|---|
2.1.2 | 2023年9月25日 |
2.1.0 | 2023年7月8日 |
1.2.1 | 2023年7月26日 |
在 嵌入式开发 中排名第 817
每月下载量 128
135KB
3K SLoC
LoRa 物理层 (rustaceous 无线电)
为什么?
- 提供一个直接简单的 LoRa 物理层 API,该 API 支持 LoRaWAN 和点对点 (P2P) 用例;
- 支持多种微控制器单元 (MCU) 和 LoRa 芯片组合,通过一个 API 实现;
- 使任何支持 embedded-hal-async 的嵌入式框架能够为所需的 MCU/LoRa 芯片组合启用 LoRa 功能。
如何?
- 将调制参数和数据包参数作为单独的关注点分离出来,以解决 LoRa 芯片支持的细微差别,并允许灵活指定各种 LoRaWAN 和 P2P 发送/接收通道,即使在同一用例中;
- 允许用户指定 LoRa 芯片类型(例如,Sx1261/2)和特定的 LoRa 板类型(例如,Stm32wlSx1262),并在 LoRa 物理层 API 后面隐藏该 LoRa 板的控制;
- 为每个所需的嵌入式框架/MCU 类型/LoRa 芯片类型提供一个最小 trait,必须实现,以便允许此 crate 与嵌入式框架中的 LoRa 芯片接口。
因此?
- 虽然当前的示例使用 Embassy 嵌入式框架、nrf52840、rp pico、stm32l0 和 stm32wl MCU 以及 Sx127x/Sx126x 芯片,但此 crate 为 Rust 开发环境中的其他嵌入式框架、MCU 类型和 LoRa 芯片提供了前进的道路。
示例
请参阅 示例 了解使用方法。
聊天
这里是关于 LoRa/LoRaWAN 主题的 Rust 公共聊天
LoRa 物理层 API
对于希望实现 LoRaWAN 或 P2P 解决方案的用户,以下实现文件提供了 lora-phy 版本 2 所需的上下文。
API 使用示例
- stm32wl P2P 发送和睡眠;
- 使用 rust-lorawan 的 stm32wl LoRaWAN;
- stm32l0 P2P 连续接收;
- nrf52840 负载周期接收;
- nrf52840 信道活动检测;
- 使用第二个核心的 rp pico P2P 发送和睡眠.
嵌入式框架/MCU 支持
对于希望为一种或多种 MCU/LoRa 芯片组合添加 LoRa 支持的嵌入式框架开发者
- InterfaceVariant 特性,该特性使这个 lora-phy 包能够与特定的嵌入式框架/MCU/LoRa 芯片组合进行接口交互。
示例 InterfaceVariant 实现
- 基于
embedded-hal
和embedded-hal-async
特性的实现。这些实现可以与任何实现了embedded-hal
特性的 HAL 包一起使用。 - STM32WL + Embassy 实现。STM32WL 是特殊的,因为 LoRa 使用内部 SPI,这个实现展示了如何使用
embassy-stm32
。
LoRa 芯片支持
对于希望添加对新 LoRa 芯片的支持或增强现有芯片支持的开发商
- RadioKind 特性,必须为每种 LoRa 芯片实现此特性,以便通过 lora-phy 包 API 进行访问;
- 接口实现,它捕捉了三个关键读写操作,允许通过操作码或寄存器操作从该包控制 LoRa 芯片。
示例 RadioKind 实现和相关信息
特定 LoRa 板支持
可以通过芯片特定 Config 结构处理特定板的配置。
依赖项
~0.7–1.6MB
~33K SLoC