资料介绍
介绍
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 的完整传感器到云功能。
- 数据包的生命周期 0次下载
- 基于RIOT OS的LoRa信号的被动数据包嗅探应用程序
- 在MCU中,如何实现串口的不定长数据包接收?
- 访问数据库必备工具包labSQL数据包下载 153次下载
- 基于弱状态下车载网数据包传输算法 0次下载
- Netfilter架构下数据包信息存储的应用_吴良敏 0次下载
- 基于数据包长度的网络隐蔽通道
- 移动IPV6在改进数据包发送路径模型下性能分析 35次下载
- 深度数据包检测技术研究 31次下载
- 高速数据包处理硬件加速技术 0次下载
- 基于FPGA的IPV6数据包的拆装
- 基于Jpcap的数据包捕获器的设计与实现
- 网络数据包捕获机制研究
- 以太网数据包捕获与转发技术
- 基于数据包标记的伪造IP DDoS攻击防御
- 二代LoRa模组CAD检测常见异常处理 371次阅读
- 请问高端网络芯片如何处理数据包呢? 668次阅读
- DPDK在AI驱动的高效数据包处理应用 997次阅读
- Linux如何操作将数据包发送出去 1062次阅读
- 全局数据包通信简介 900次阅读
- 简述Linux系统收发网络数据包的过程 651次阅读
- UART接收数据和解析的常见方式 2515次阅读
- 如何使用数据包错误检查来保护您的温度读数 1863次阅读
- 介绍一种基于数据包交换的互连体系结构RapidIO 1345次阅读
- wireshark导入数据包进行分析 2156次阅读
- 网络数据包分析软件wireshark的基本使用 3059次阅读
- SRT协议的工作流程、数据包结构及Wireshark抓包分析 3552次阅读
- 基于XC2VP20—FF896CGB0345 FPGA实现IPV6数据包的拆装 1757次阅读
- Lora数据包的关键参数分析 9774次阅读
- Accolade推出的第三代ANIC-200Ku数据包处理功能与应用领域分析 6140次阅读
下载排行
本周
- 1DeepSeek:从入门到精通
- 5.36 MB | 43次下载 | 1 积分
- 2中兴通讯的PCB设计规范
- 23.03 MB | 5次下载 | 5 积分
- 3Altium-常用3D封装库(Step)接插件篇
- 4.95 MB | 2次下载 | 免费
- 4多款常用电子电路分享
- 7.96 MB | 1次下载 | 2 积分
- 5PC1902同步降压LED驱动器规格书
- 0.99 MB | 1次下载 | 免费
- 6爱华TA314/317/327维修图纸
- 3.54 MB | 1次下载 | 1 积分
- 7SOT8098-1塑料、表面贴装封装
- 180.25KB | 1次下载 | 免费
- 8SOD80C玻璃、全密封玻璃表面贴装封装规格书
- 126.34KB | 1次下载 | 免费
本月
- 1A7159和A7139射频芯片的资料免费下载
- 0.20 MB | 55次下载 | 5 积分
- 2DeepSeek:从入门到精通
- 5.36 MB | 43次下载 | 1 积分
- 3零死角玩转STM32F103—指南者
- 26.78 MB | 42次下载 | 1 积分
- 4PIC12F629/675 数据手册免费下载
- 2.38 MB | 36次下载 | 5 积分
- 5PIC16F716 数据手册免费下载
- 2.35 MB | 18次下载 | 5 积分
- 6GD32F4xx用户手册
- 14.49MB | 14次下载 | 免费
- 7dsPIC33EDV64MC205电机控制开发板用户指南
- 5.78MB | 8次下载 | 免费
- 8STC15系列常用寄存器汇总免费下载
- 1.60 MB | 7次下载 | 5 积分
总榜
- 1matlab软件下载入口
- 未知 | 935124次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420063次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73813次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
评论