包括 phy 标头的 LoraWan 的最大数据包大小是多少

物联网 劳拉 罗拉万
2021-05-30 02:30:29

我通过 Arduino 创建了一个 LoRa 到 USB 的直通,以便将其用作开发目的的临时网关。因此,不知何故,我需要知道包含 PHY 标头LoRa 数据包多大,以确定我的软件在 USB 上读取和发送数据需要多长时间。

换句话说,我的架构如下:

LoraWan 的架构

因此,PC/笔记本电脑需要“知道” LoRa 数据包多大,以免通过 USB 接收无数字节。

1个回答

包含 PHY 标头LoRa 数据包多大

我假设您的意思是 MAC 标头?在某个 LoRa 芯片为您解调了 LoRa 无线电信号后,它将为您提供 LoRa PHY 有效载荷。对于 LoRaWAN 上行链路,此类 PHY 有效载荷包含 MAC 标头、MAC 有效载荷和 MIC。

对于 1.0.x,经验法则似乎是 LoRaWAN 数据包至少比应用程序有效负载大13 个字节

我认为通常在一个没有选项的数据包中至少有 13 个 [ MHDR (1) + DevAddr (4) + FCtrl (1) + FCnt (2) + Fport(1) + MIC(4) ]

最大应用负载取决于所选的数据速率。如果一个节点应该能够在最坏的条件下运行,那么应该假设最差的数据速率 SF12,其中该节点不应发送超过大约 51 个字节。(在最佳条件下,SF7 可能是 222 字节。)我认为这也取决于区域。(当 LoRaWAN 节点不使用 LoRa 而是使用 FSK 时,情况可能会更好。)

因此,对于您的用例,我尽量不依赖 USB 的最大长度。反而:

  • 您可以使用Base64轻松地将二进制 LoRaWAN 数据包转换为纯文本然后,您可以通过USB发送这样的文本,并以新行或终止它一个NULL字符数限制,让你知道接收的USB消息何时完成。如果您选择不在 Base64 字符集中的分隔符,您甚至可以在该文本行中发送其他元数据。

  • 例如,网关和服务器之间的 Semtech UDP 协议使用 JSON 文本消息,这也允许您传递额外的元数据。在 JSON 文本中,二进制 LoRaWAN 数据包也使用 Base64 进行编码。如果 JSON 文本的格式非常好以包含换行符,那么您仍然可以使用NULL字符终止此类文本消息,并且您的接收者不会感到困惑。