电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>接收LoRa数据包的实践示例

接收LoRa数据包的实践示例

2023-06-21 | zip | 0.00 MB | 次下载 | 免费

资料介绍

介绍

LoRa Lo ng Range的缩写)是火星这一侧最令人惊叹的物联网通信技术。随着 Semtech 对法国公司 Cycleo 的收购,LoRa 在 2012 年崭露头角,作为低功耗、低成本物联网传感器设备的首选无线通信方法,LoRa 的人气持续上升。

在本教程中,我们将简要概述 LoRa 的特殊之处,并提供使用最新的 LoRa 无线电 IC SX1262 以及使用IoT.Keystone Innovator Board 发送和接收 LoRa 数据包的实践示例。

关于 SX1262 的一些信息

SX1262 于 2018 年推出,能够以高达 22 dBm 的功率输出在全球所有主要的 sub-GHz ISM 频段中运行。在 sub-GHz 频段(例如 868 或 915 MHz)中运行是在城市室内、室外和工业环境中实现远距离传输的关键。它有一个微控制器友好的接口,由 4 线 SPI、BUSY 信号和 RESET 线组成。固件驱动程序是开源的也很棒。

罗拉

在我们看来,LoRa 的伟大之处在于它不仅提供比传统调制技术更远的范围和更强的抗干扰性,而且它以用户友好的方式描述其操作特性。那是什么意思呢?

使用 LoRa,只需转动 3 个参数或旋钮即可控制传输范围、数据速率和能耗等关键特性。如您所料,当您配置更长的范围时,您的数据速率会下降并且能耗会增加,反之亦然。

您需要了解的主要参数是扩频因子、带宽和编码率。

扩频因子(SF)。从 SF5 到 SF12 只有 7 个级别,SF7 是中短距离设置的典型设置。随着扩频因子的增加,范围增加,数据速率下降,空中时间增加(即发送数据包的时间,这会消耗更多能量)。很酷的是,这些设置中的每一个都是彼此“正交”的,这意味着您可以设置 7 个不同的发射器和接收器对,以在同一频段同时运行而不会受到干扰!

带宽 (BW). 这里只有 3 个主要设置:125 kHz、250 kHz 和 500 kHz,尽管对于一些非常特殊的低比特率应用,无线电将支持低至 7.81 kHz 的一些较低带宽。应该注意的是,LoRaWAN 是一种流行的 MAC 层,在 LoRa 之上工作,仅使用 3 个带宽 125、250 和 500 KHz。您可以通过更高的带宽推送更多数据,从而提高有效比特率。结果,播出时间随着能源消耗而减少。但是,您会在射程上受到一些影响。我会提到术语“比特率”在物联网中有点用词不当,因为许多物联网解决方案对能够连续发送数据不感兴趣。比特率只是影响每次传输的空中时间(通常只在长时间睡眠期间很少发生)以节省电池电量。

编码率(CR)。LoRa 数据包引擎将对您的数据执行“前向纠错”编码,以便接收方可以实际处理传输中的一些错误,而不会损坏您的数据。此功能实质上为您的数据负载增加了一些冗余。这里有 4 个可能的级别:4/5、4/6、4/7 和 4/8。这意味着对于每 4 位真实数据,LoRa 数据包引擎将创建 5、6、7 或 8 个用于传输。所以正如你所看到的,实际传输的数据量可能是你想象的两倍。随着编码率的增加,您将获得更远的距离,因为接收器可以容忍传输中的更多错误。最常见的编码率是最低设置 4/5。

物联网.Keystone

我们认为 LoRa 非常酷,因此我们构建了自己的名为IoT.Keystone的硬件和固件平台,以便轻松地将 LoRa 技术集成到低功耗物联网传感器设计中。

配置

在GitHub 上提供的开源固件中,我们有一个名为LoRa-Radio的应用程序,它提供对电路板及其 SX1262 无线电的命令行控制。借助IoT.Keystone创新板的“USB 记忆棒”外形,我们只需将其插入可用的 USB 端口即可。操作系统将注册一个串行/COM 端口,我们可以将我们最喜欢的终端应用程序调整到它。确保它在 115、200 波特率 N、8、1 下工作。还要确保终端应用程序终止使用 LF(换行符)或 CR-LF 输入的命令。这是IoT.Keystone固件描述命令所必需的。当在空行上按下回车键时,我们会看到这样的提示:

#0012.4b00.18a7.f322>

玩弄

您需要两个运行 LoRa-Radio 固件应用程序的 IoT.Keystone 板。这里我们有一个 ID为f319的节点设置为发送器,一个 ID为f322的节点设置为接收器。

我们将从在两者上设置相同的参数开始:

选择任意频率 915000 kHz。从技术上讲,这里可以使用任何东西,但天线系统当然会针对特定频段进行调谐。我们的设置适用于涵盖 902 - 928 MHz 的 915 MHz ISM 频段。

#0012.4b00.18a7.f319> lora set freq 915000
Command OK. Radio mode=STBY_RC status=RFU

将扩展因子设置为 7。

#0012.4b00.18a7.f319> lora set sf 7
Command OK. Radio mode=STBY_RC status=RFU

然后在我们进入 RX listen 模式之前检查当前设置:

#0012.4b00.18a7.f322> lora set
frequency: 915000000 Hz
bandwidth: 0 -> 125
spreading factor: SF7
coding rate: 1 -> 4/5
tx power: 20 dBm
tx size: 0 bytes
tx payload: [ ]
tx timeout: 3000 ms
preamble length: 8 symbols
IQ invert: false
Command OK. Radio mode=STBY_RC status=RFU

在一个节点上进入 RX侦听模式,然后在另一个节点上重复参数设置:

#0012.4b00.18a7.f322> lora rx
Running RX on freq 915000000 kHz at SF7 CR:1 BW:0 preamble:8 IQ invert:false ...
Command OK. Radio mode=RX status=RFU

在另一个节点上,设置相同的 SF 后,输入传输的有效负载。我们将使它成为 64 个字节,但只指定前 4 个字节 (0xA 0xB 0xC 0xD):

#0012.4b00.18a7.f319> lora set tx 64 A B C D
Command OK. Radio mode=STBY_RC status=RFU

完成后,是时候发送它并查看接收者是否捕获它了:

#0012.4b00.18a7.f319> lora tx
TX 64 bytes on freq 915000000 kHz at SF7 CR:1 BW:0 PWR:20 dBm airtime:119 ms timeout:3000 ms  preamble:8 IQ invert:false ...
Command OK. Radio mode=TX status=RFU
#0012.4b00.18a7.f319> [INFO: lora-rf   ] Tx completed.

这个 64 字节的 LoRa 传输在 SF7、BW 0 (125 kHz) 和 CR 1 (4/5) 下花费了 119 毫秒。

如果我们查看另一个监听节点 (ID:F322),我们会看到这条消息:

#0012.4b00.18a7.f322> [INFO: lora-rf ] RxDone: size:64 rssi:-52 snr:9 payload:[ 0A 0B 0C 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]

当功耗是设计中的一个因素时,无线电通常是功耗最高的。在这些情况下,我们希望减少无线电发射器开启的时间。让我们快速了解一下参数如何影响播出时间。

当我们将带宽增加到 500 kHz 时,广播时间会发生什么变化?当我们在 SF7 传输相同的 64 字节数据包时,空中时间从 119 毫秒下降到 30 毫秒,与带宽增加成比例 (120/30 = 500/125 = 4)。

#0012.4b00.18a7.f319> lora tx
TX 64 bytes on freq 915000000 kHz at SF7 CR:1 BW:2 PWR:20 dBm airtime:30 ms timeout:3000 ms  preamble:8 IQ invert:false ...
Command OK. Radio mode=TX status=RFU
#0012.4b00.18a7.f319> [INFO: lora-rf   ] Tx completed.

当我们增加扩频因子时,广播时间会发生什么变化?将带宽设置回 125 kHz(与大多数 LoRaWAN 上行链路通道相同)并将扩频因子设置为 10,我们发现广播时间从 119 毫秒跃升至 699 毫秒。

TX 64 bytes on freq 915000000 kHz at SF10 CR:1 BW:0 PWR:20 dBm airtime:699 ms timeout:3000 ms  preamble:8 IQ invert:false ...
Command OK. Radio mode=TX status=RFU
#0012.4b00.18a7.f319> [INFO: lora-rf   ] Tx completed.

我们为什么要这样做?简而言之,增加扩频因子只会将数据包错误率降低到可接受的水平。换句话说,如果您的消息没有到达您的接收器,您可以转动 SF 旋钮直到它们到达为止。结果,您的广播时间和功耗将会增加。值得注意的是,LoRaWAN,一个位于 LoRa 之上的 MAC 层,包括自动向下调整节点扩频因子的规定。显然,如果消息一开始就无法到达网关,那么从网络的角度来看,就没有什么可以拒绝的了。因此,LoRa 节点可能会在与它们交谈的实体告诉它们将其调低(具有适当高的扩频因子响应)之前,在初始消息上以更高的扩频因子传输设置开始!

最后,此 LoRa-Radio 固件应用程序还可以直接访问 SX1262 无线电寄存器,如图所示。在 LoRa 模式下没有很多,这是一件好事!

#0012.4b00.18a7.f319> lora reg get
Content of lora registers:
name                 address value
-------------------- ------- -----
 LoRa Sync Word MSB  0x0740  0x34
 LoRa Sync Word LSB  0x0741  0x44
 RandomNumberGen[0]  0x0819  0x08
 RandomNumberGen[1]  0x081A  0xA5
 RandomNumberGen[2]  0x081B  0x45
 RandomNumberGen[3]  0x081C  0x49
            Rx Gain  0x08AC  0x94
  OCP Configuration  0x08E7  0x38
           XTA trim  0x0911  0x05
           XTB trim  0x0912  0x05
Command OK. Radio mode=STBY_RC status=RFU
#0012.4b00.18a7.f319>

概括

借助 LoRa,您可以发送和接收少量数据——非常适合物联网——在更远的距离上更可靠。它有一个友好的用户界面,描述了它在带宽、扩频因子和编码率方面的主要特性。

我们刚刚谈到了 LoRa 无线电通信的主要用户界面元素,但没有深入了解太多细节。Internet 上有许多深入研究细节的重要资源,例如比特率和广播时间实际上是如何受到扩频因子、带宽和编码率设置的影响的。

如果您有兴趣,我们正在使用的这款IoT.Keystone板还在相同的 sub-GHz 频段提供支持 IPv6 的网状网络,但使用不同的、标准化的和非专有的调制技术 (FSK) 以获得更高的比特率命令和控制应用程序。还有一些板载传感器用于测试 IoT.Keystone 使用 LoRa+LoRaWAN 或 6LoWPAN 的完整传感器到云功能。

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费