2. LoRa通信原理:扩频技术、协议栈与工程权衡

各位同学,咱们今天聊聊LoRa通信的核心。说实话,很多初学者一上来就被“扩频”、“协议栈”这些词吓住了。其实没那么玄乎。我做了这么多年物联网,LoRa给我的感觉就是——它用一种“笨办法”解决了远距离通信的大难题。

2.1 LoRa扩频技术基础

先说说扩频。什么叫扩频?说白了,就是把一个窄带信号,扩展到很宽的频带上去发送。你想想看,本来你说话声音很小,但如果你用大喇叭对着山谷喊,回声就能传很远。LoRa就是这么干的。

LoRa用的是CSS(Chirp Spread Spectrum,啁啾扩频)技术。它不像传统FSK那样直接调制频率,而是让频率随时间线性变化——就像鸟叫一样,从低到高或者从高到低“啁啾”一声。这种信号抗干扰能力特别强。

核心参数:扩频因子(SF)

LoRa的扩频因子从SF7到SF12。数值越大,扩频增益越高,传输距离越远,但数据速率越慢。

  • SF7:速率最快,距离最短。适合节点密集的场景。
  • SF12:速率最慢,距离最远。适合空旷地带。

我在项目中遇到过一个问题:有个停车场,车位检测器装在负二层,信号死活上不来。后来我把SF从7调到12,虽然速率降了,但数据终于能传上来了。这就是典型的“用时间换距离”。

2.2 LoRaWAN协议栈

LoRa只管物理层,就像电话线。而LoRaWAN是上层的网络协议,相当于电话交换机系统。两者配合才能工作。

LoRaWAN定义了三种终端设备类型:

  • Class A(最常用):设备主动发数据,然后短暂监听下行。功耗最低,适合电池供电的停车位检测器。
  • Class B:定时接收下行数据。适合需要定期同步的场景。
  • Class C:持续监听下行。功耗高,但延迟最低。

我个人习惯,做停车位检测系统,99%的情况用Class A就够了。为什么?因为车位检测只需要上报“有车/无车”状态,不需要频繁接收指令。你想想看,一个车位一天也就变化几十次,Class A完全够用。

避坑指南

我曾经犯过一个错误:在Class A设备中,试图让服务器主动下发配置。结果发现设备只有在发送完数据后的两个接收窗口才能收到下行数据。如果设备不发数据,服务器根本联系不上它。后来我改成了“设备定时上报,服务器在接收窗口回复”的模式,问题才解决。

2.3 频段与信道规划

LoRa在全球使用不同的ISM频段。咱们国内主要用CN470-510MHz频段。这个频段有96个信道,每个信道125kHz或250kHz带宽。

地区 频段 信道数 备注
中国 470-510 MHz 96 民用,免费
欧洲 868 MHz 8 ETSI标准
美国 915 MHz 64 FCC标准

信道规划有个关键点:跳频。LoRaWAN标准要求设备每次发送数据时,随机选择一个信道。这样做的好处是避免多个设备同时占用同一个信道,减少碰撞。

嗯,这里要注意:虽然信道多,但实际可用信道可能受当地法规限制。比如国内有些频段被运营商占用,你得避开。我建议你买模块前,先查一下当地的无线电管理委员会规定。

2.4 数据速率与传输距离的权衡

这是LoRa系统设计中最核心的权衡。说白了就是:你要快,就传不远;你要远,就得慢

影响数据速率和距离的因素有三个:

  1. 扩频因子(SF):SF每增加1,速率减半,但灵敏度提高约2.5dB,距离增加约20%。
  2. 带宽(BW):带宽越大,速率越快,但灵敏度下降。常用125kHz和250kHz。
  3. 编码率(CR):编码率越高,抗干扰越强,但有效数据速率降低。

实际案例:停车位检测系统的速率选择

我做过一个项目,覆盖半径2公里的停车场。每个车位检测器每5分钟上报一次状态。数据量很小,就几个字节。我选择了SF10、BW125kHz、CR4/5。算下来有效速率大约980bps。够用吗?完全够。一个车位一天上报288次,每次传输时间约200ms,占空比很低。

但如果我要做实时视频传输,LoRa就不行了。它的设计初衷就不是干这个的。

你可能会问:怎么计算实际传输距离?我一般用这个经验公式:

最大距离 ≈ 10^((发射功率 + 天线增益 - 接收灵敏度 - 链路余量) / 路径损耗指数)

其中路径损耗指数在市区约3.5,郊区约2.8。举个例子:发射功率20dBm,天线增益2dBi,接收灵敏度-137dBm(SF12时),链路余量留10dB。市区距离大约:

10^((20 + 2 - (-137) - 10) / 35) ≈ 10^(149/35) ≈ 10^4.26 ≈ 18公里

当然,这是理论值。实际中受建筑物遮挡、天气影响,能到3-5公里就不错了。我建议你设计时留50%的余量。

重要提醒

不要为了追求距离而把SF调到最大。SF12虽然能传得远,但传输时间很长(约2秒),这会增加碰撞概率和功耗。我一般建议:

  • 近距离(<500米):SF7
  • 中距离(500米-2公里):SF9
  • 远距离(>2公里):SF11或SF12

而且,LoRaWAN标准规定,设备发送前必须做信道检测(LBT)。如果信道忙,就随机等待再试。这个机制能有效减少碰撞。

好了,这一章的内容就这些。总结一下:LoRa用扩频技术换来了远距离和抗干扰能力,但代价是速率低。LoRaWAN协议栈定义了设备如何接入网络。频段规划要符合当地法规。数据速率和距离的权衡,是每个LoRa系统设计者必须面对的课题。

下一章,咱们会讲LoRa模块的选型与硬件设计。到时候我会分享一些我踩过的坑,比如天线匹配、电源滤波这些细节。咱们下章见。