第2章:LoRa物理层基础

说实话,很多做LoRa应用的朋友,上来就直接调库、配参数,对物理层一知半解。我个人觉得,这就像开车不懂发动机原理——能跑,但出了问题就抓瞎了。这一章,咱们把LoRa物理层那些核心概念掰开揉碎了讲清楚。

2.1 扩频通信原理

LoRa最牛的地方,就是它的扩频技术。说白了,就是把一个窄带信号,扩展到很宽的频带上去传输。你可能会问:这不是浪费带宽吗?

恰恰相反。扩频通信有个核心思想:用带宽换信噪比。我打个比方,你在一间嘈杂的房间里跟人说话,正常音量对方听不清。但如果你用大喇叭喊,虽然占用了更多声波频段,但对方就能听清了。LoRa就是这么干的。

核心公式(简化版):

处理增益 Gp = 10 × log10(扩频因子)

扩频因子越大,抗干扰能力越强,但传输速率越慢。

我在做智能门锁项目时,遇到过一个问题:门锁装在金属门框里,信号衰减特别严重。当时我试了各种天线方案都不理想,最后就是靠提高扩频因子,硬生生把通信距离从30米拉到了100米以上。嗯,这就是扩频的魅力。

2.2 LoRa调制解调技术

LoRa用的是CSS(Chirp Spread Spectrum)调制,也就是线性调频扩频。它不像FSK那样用频率高低表示0和1,而是用频率随时间变化的斜率来表示。

你想想看,一个Chirp信号,频率从低到高扫一遍,代表一个符号;从高到低扫一遍,代表另一个符号。这种调制方式有个好处:对频率偏移和多普勒效应不敏感。

调制过程大致分三步:

  • 数据比特流先进行编码和交织
  • 映射成Chirp符号
  • 上变频到射频载波发送出去

解调过程反过来:

  • 接收信号下变频到基带
  • 用本地生成的Chirp模板做相关运算
  • 找到峰值位置,解码出原始数据

我的经验:解调时最怕的就是频偏。我曾经在调试时发现,接收端总是解错几个符号,查了半天发现是晶振温漂导致的。后来我强制在每次通信前先发一段导频序列做频偏估计,问题就解决了。

2.3 SF/CR/BW参数详解

这三个参数,是LoRa配置的核心。我习惯把它们称为「铁三角」——牵一发而动全身。

2.3.1 SF(扩频因子)

SF取值范围7~12。SF越大,每个符号携带的比特数越多,但传输时间也越长。

SF值比特/符号灵敏度提升典型应用场景
SF77基准近距离、高速率
SF99约6dB中等距离
SF1212约12dB远距离、穿墙

我建议你记住一个经验值:SF每增加1,灵敏度提升约2~3dB,但传输时间翻倍。做门锁时,我一般默认用SF9,既保证穿墙能力,又不至于让用户等太久。

2.3.2 CR(编码率)

CR取值范围1~4,对应编码率4/5到4/8。说白了,就是每4位有效数据,加上几位纠错码。

CR=1时,4位数据加1位纠错码,效率最高但纠错最弱。CR=4时,4位数据加4位纠错码,效率最低但纠错最强。

注意:CR不是越大越好。我在项目中踩过一个坑:为了追求可靠性,把CR设成了4,结果数据包长度变长,反而增加了碰撞概率。后来我改成CR=2,配合重传机制,效果反而更好。

2.3.3 BW(带宽)

LoRa常用带宽有125kHz、250kHz、500kHz。带宽越大,传输速率越快,但灵敏度越低。

你想想看,带宽就像一条公路。125kHz是单车道,500kHz是四车道。车道越多,车跑得越快,但每辆车占用的空间也大,容易受干扰。

我的配置建议:

  • 城市密集环境:BW=125kHz,SF=9~10,CR=2
  • 郊区开阔环境:BW=250kHz,SF=7~8,CR=1
  • 地下室/金属环境:BW=125kHz,SF=11~12,CR=3~4

2.4 链路预算计算

链路预算,说白了就是算一算你的信号从发射到接收,到底还能剩多少。公式很简单:

链路预算 = 发射功率 + 发射天线增益 - 路径损耗 + 接收天线增益 + 接收灵敏度

举个例子,我做一个门锁项目时,实际算过:

  • 发射功率:14dBm(约25mW)
  • 发射天线增益:0dBi(内置PCB天线)
  • 路径损耗(100米,城市环境):约110dB
  • 接收天线增益:2dBi(网关外置天线)
  • 接收灵敏度(SF9, BW125kHz):-134dBm

链路预算 = 14 + 0 - 110 + 2 + (-134) = -228dBm?不对,这里要注意,链路预算的结果应该是正数才有意义。

正确的算法是:

链路预算 = 发射功率 + 发射天线增益 + 接收天线增益 - 接收灵敏度 - 路径损耗
= 14 + 0 + 2 - (-134) - 110
= 14 + 0 + 2 + 134 - 110
= 40dB

40dB的余量,说明通信是可靠的。一般建议留10~20dB的余量应对突发干扰。

避坑指南:我曾经在计算时忽略了馈线损耗。门锁到天线之间有一段同轴电缆,虽然只有20cm,但在高频段损耗也有0.5~1dB。别小看这1dB,有时候就是这1dB决定了通信成败。

好了,这一章的内容就到这里。扩频原理、调制解调、参数配置、链路预算,这四个知识点是LoRa物理层的基石。下一章我们会讲MAC层协议,到时候这些物理层参数会反复用到。建议你先把SF、CR、BW这三个参数的关系吃透,后面会轻松很多。