第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值 | 比特/符号 | 灵敏度提升 | 典型应用场景 |
|---|---|---|---|
| SF7 | 7 | 基准 | 近距离、高速率 |
| SF9 | 9 | 约6dB | 中等距离 |
| SF12 | 12 | 约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这三个参数的关系吃透,后面会轻松很多。