本节摘要:拆开 LoRa 物理层的两大调味品——扩频因子与带宽如何决定数据速率与抗噪灵敏度,以及 LoRaWAN 用 ADR 在网络侧自动调节每个终端速率,实现"信号好就快、信号差就慢"的自适应。承接 5.3 入网,通往 5.5 的密钥与安全。
"够远"和"够快"在无线电世界里是一对冤家:要想传得远、穿透好,往往就得把速率压低。LoRaWAN 的 LoRa 物理层靠 扩频(chirp spread spectrum) 在这两者之间拨动刻度,而 ADR 则让网络聪明地替每个终端拨到合适的档。
LoRa 波形有三个可调旋钮,共同决定单次传输的速率与灵敏度:
把"更快"与"更远"的拉扯画出来,一眼能看懂为什么不能两头通吃:

固定用一个扩频因子会浪费:近处终端用 SF 7 明明就行,却因为统一配置被拖慢。**自适应数据速率(ADR)**补上这块:网络服务器根据终端上报的信噪比与丢包率,动态建议该终端用更合适的速率(扩频因子/带宽),并在可靠上行里把它下发。信号好就调快减占空比、信号差就调慢保送达——这是 LoRaWAN 端到端网络"会自我调节"的招牌机制。
一个前提:ADR 需要终端静止或缓慢移动才能稳定估计链路;快速移动的终端链路变化快,通常要关掉 ADR、用固定速率并多做重试。
EU868 一类频段对发射占空比有硬性限制(例如 1%),意思是"发 1 秒要歇 99 秒"。它逼着你克制上报频率,也解释了为什么 LoRaWAN 终端如此省电——它被规定着不能不停地说。设计上报节奏、选 SF、排重传都要把占空比预算算进去,否则会被监管叫停或链路被大量丢弃。
⚠️ 常见坑:有人把 ADR 当成"万能提速器",但把速率拨太高接近接收灵敏度边界时,一旦信号稍弱就大面积丢帧。稳妥做法是给 ADR 留一个误差余量(margin),让它别紧贴极限值。
数字最能拉平认知。把 LoRa 常见参数在 125 kHz 带宽下的"SF ↔ 速率 ↔ 灵敏度拉到一起(典型示意值,具体依地区与实现差异):
| SF | 近似码率(bit/s) | 相对灵敏度 | 能传多远(示意) |
|---|---|---|---|
| SF7 | 较高(约千位级) | 较弱 | 近 |
| SF9 | 中 | 中 | 中 |
| SF12 | 很低 | 强(最抗噪) | 远 |
这张表一目了然地说明:想覆盖更远、穿透更强,就要接受更低的速率与更长的空中时间。 空中时间长又占用空比、又耗电,所以"能用最接近的近距离档就别用最远的远距离档"——这正是 ADR 要做的事:它替每个终端找到"够用且不快不慢"的那一个档,而不是人人都往最远里砸。
用一颗离网关较远的井盖表走一遍 ADR 的闭环,比背概念清楚。设想某表当前用 SF12(最远最慢)上报过慢也耗电,但最近网络服务器发现它丢包率极低、信噪比充裕:
反过来若某表信号变弱、丢包上升,网服就建议逐步放慢速率保送达。这样一个"信噪比 → 链路预算 → 速率建议 → 下发执行"的闭环,让成百上千台终端能各自呆在合适档位,而不是统统挤在最高或最低档,白白浪费频谱与电量。
ADR 负责"用合适的速率说话",而 LoRaWAN 还用确认(Confirmed)与重传处理"到底有没有送到":业务帧可标为确认帧,要求网关回确收;若超时未确认,终端按重试次数重发。对"丢了就丢"的遥测用非确认帧,对"必须收到"的控制指令用确认帧——这与 MQTT 的 QoS 0/1 是同一类"按需取舍"思路,只是载体从 IP 包换成了射频帧。把"ADR 调速率 + 确认管送达 + 占空比限节奏"三个旋钮合起来看,才是 LoRaWAN 参数体系的完整视图。
工程上选 SF 与带宽,常常和"能装多少字节、隔多久上报一次"一起算。典型单次上行载荷从几十字节到两百字节上下,越用低速率档,可承载的载荷上限越小、空中时间越长。把这几个参数按"既要送达又要节制占空比"一起调,才可能长期稳定。
把"扩频因子、占空比、上报间隔"放进同一本账单算一次,很多空泛的参数就落地了。设想一颗水量表,用 SF12(最远最慢)单次上行要空中占用较长一段时间;若它每 15 分钟上报一次,按 1% 占空比与当地法规反推,能算出它表面占用的空占比是否超限、以及每天在射频上的总时间。把这些时间折进芯片的发射功耗,结合待机电流,就能估算出两节电池能撑几个月。这个测算的价值不在于数字有多准,而在于让你看清:"选哪个 SF、隔多久上报"不是经验主义的随意决定,而是能算出来的省电杠杆。ADR 的价值恰恰在于,当链路质量允许时把 SF 从 12 降到 7/9,空中时间一次缩短到几分之一,省下的电量立刻变成更长的部署寿命。
排查时一个常见误区是"丢包就怪 ADR 把速率拨太高"。真实原因往往更朴素:要么现场通了新障碍物、要么终端本身移动使链路估计失真,要么占空比预算被各区累计叠加超过了红线。正确的排查次序应是:先确认链路物理上还通不通,再查是否有新增遮挡或干扰,最后才回头审视 ADR 参数与 margin 是否留得够。把这层因果理顺,就不会一遇到弱信号就盲目关掉 ADR,又退回人人都用最远档的老路——那才是真正的效率灾难。
速率一点点拨到位,5.5 给这条远远的链路最后上锁——LoRaWAN 的密钥体系与端到端加密。