第2章 LoRa技术原理:扩频通信、CSS调制、灵敏度与链路预算
聊LoRa之前,我先问个问题:为什么同样1块钱的电池,ZigBee跑100米就掉线,LoRa能跑三五公里?
答案就藏在它的物理层里。说白了,LoRa用了一种叫「扩频通信」的技术,把信号藏在了噪声里。我当年第一次看到它的频谱图时,说实话,挺震撼的——信号功率比噪声还低,但接收端硬是能解出来。
2.1 扩频通信:把信号「摊开」再「收拢」
传统无线通信,比如FSK,是把能量集中在一个窄带上发射。好处是简单,坏处是——干扰来了就完蛋,距离远了就听不见。
LoRa的做法完全不同。它把本来窄带的信号,用一组伪随机码扩展到很宽的频带上发射。接收端再用同样的码把它「压缩」回来。
扩频通信的核心收益:
- 抗干扰强——窄带干扰只影响一小部分扩频信号,解码时几乎无感
- 隐蔽性好——信号功率谱密度低,别人很难发现你在发数据
- 多址能力——不同扩频码可以同时传输,互不干扰
我记得有个项目,现场有台大功率变频器,ZigBee一靠近就掉线。换成LoRa之后,贴着变频器放都没问题。扩频就是这么硬气。
2.2 CSS调制:LoRa的灵魂
LoRa用的不是普通的DSSS(直接序列扩频),而是CSS(Chirp Spread Spectrum,啁啾扩频)。
什么是Chirp?就是频率随时间线性变化的信号。你可以想象成鸟叫——从低音滑到高音,或者反过来。LoRa用这种Chirp信号来承载数据。
具体怎么做的?
- 每个符号对应一个特定起始频率的Chirp
- 接收端通过检测Chirp的起始频率来解调数据
- 扩频因子SF决定了每个符号承载的比特数
| 扩频因子 (SF) | 每个符号比特数 | 扩频增益 (dB) | 典型速率 (kbps) |
|---|---|---|---|
| SF7 | 7 | ~7 | 5.47 |
| SF9 | 9 | ~9 | 1.76 |
| SF12 | 12 | ~12 | 0.29 |
我的经验:SF12虽然速率慢到只有300bps,但灵敏度能到-148dBm。我做过一个井盖监测项目,节点埋在地下1.5米,SF12照样能传上来。SF7?地下半米就失联了。
2.3 灵敏度:LoRa的「听力」有多好?
接收灵敏度,说白了就是接收机能听到的最小信号。单位是dBm,数值越负越好。
普通FSK接收机,灵敏度大概在-110dBm左右。LoRa呢?
- SF7时:约-123dBm
- SF9时:约-133dBm
- SF12时:约-148dBm
你想想看,-148dBm是什么概念?那是-110dBm的1/2500的功率。换句话说,FSK听不到的信号,LoRa能听到。
避坑指南:我曾经以为灵敏度越高越好,结果在密集城区布了200个SF12节点。速率太慢,每个节点发一次数据要2秒,冲突率飙升。后来改成SF9+SF12混合组网,才解决问题。灵敏度不是越高越好,够用就行。
2.4 链路预算:算一算你到底能传多远
链路预算 = 发射功率 + 发射天线增益 - 路径损耗 + 接收天线增益 + 接收灵敏度
举个例子:
- 发射功率:+20dBm(100mW)
- 发射天线增益:2dBi
- 接收天线增益:2dBi
- 接收灵敏度:-140dBm(SF10)
- 路径损耗(城市环境,1km):约-120dB
链路预算 = 20 + 2 - 120 + 2 + 140 = 44dB
44dB的余量,意味着你还有很大的「安全垫」。如果余量降到0dB,那就是极限距离。
实战经验:我一般留10-15dB的余量。比如算出来极限是5km,我按3km设计。为什么?下雨天信号会衰减2-3dB,树叶茂密时再加3dB,天线老化再减1dB。不留余量,项目必翻车。
2.5 知识结构总览
下面这张图,把LoRa物理层的核心逻辑串起来了。我建议你保存下来,以后做方案时对照着看。
2.6 实战选型建议
讲完原理,说点实在的。你选LoRa还是ZigBee,我建议你按这个思路来:
- 看距离——超过500米,别犹豫,LoRa
- 看速率——需要传音频、图片?ZigBee或Wi-Fi
- 看穿墙——地下室、井盖、混凝土墙,LoRa的扩频增益是硬道理
- 看节点数——200个以内LoRa够用,上千个建议考虑ZigBee Mesh
我的习惯:做方案前先算链路预算。拿Excel拉个表,把发射功率、天线增益、灵敏度、路径损耗、余量全列出来。算完心里就有底了。别凭感觉选SF,算一算再定。