3. LoRaWAN协议栈:网络架构与核心机制

各位同学,今天我们聊聊LoRaWAN协议栈。说实话,很多初学者一上来就被「协议栈」三个字吓住了。其实没那么玄乎,说白了就是一套规则——告诉你的传感器怎么把数据发出去,服务器怎么收回来。

我个人习惯把LoRaWAN比作一个「邮政系统」。传感器是寄信人,网关是邮局,网络服务器是分拣中心,应用服务器是收信人。这样想是不是清晰多了?

3.1 网络架构:四个角色各司其职

LoRaWAN网络由四个核心部分组成:终端节点、网关、网络服务器、应用服务器。我在项目中见过不少团队只关注终端和网关,忽略了服务器端的设计,结果后期数据乱成一锅粥。

3.1.1 终端节点(End Device)

就是你的传感器节点。比如土壤湿度传感器、气象站、水位计。它们负责采集数据,然后通过LoRa射频发送出去。

  • 特点:低功耗、低成本、小数据量
  • 典型设备:基于SX1276/SX1262的模组
  • 我踩过的坑:曾经有个项目,终端节点离网关只有200米,但数据死活传不上去。查了半天,发现是天线接口没拧紧。嗯,这种低级错误我犯过一次就再也不会犯了。

3.1.2 网关(Gateway)

网关是桥梁,负责把LoRa无线信号转成IP网络数据。它本身不解析数据内容,只做转发。

  • 核心芯片:SX1301/SX1302/SX1303
  • 覆盖范围:农村开阔地可达5-15km,城市密集区1-3km
  • 注意:网关需要同时监听8个扩频因子通道,所以并发能力很强

3.1.3 网络服务器(Network Server)

这是整个系统的「大脑」。它负责数据去重、确认应答、速率自适应(ADR)、安全校验等。

  • 去重机制:同一个数据包可能被多个网关收到,网络服务器只保留一份
  • ADR:根据信号质量自动调整数据速率,我建议在固定部署场景下开启
  • 开源方案:ChirpStack、The Things Network

3.1.4 应用服务器(Application Server)

最终用户看到的就是这里。它从网络服务器拿到解密后的数据,存入数据库,展示在仪表盘上。

核心要点:终端节点和网关之间是LoRa无线通信,网关和服务器之间是TCP/IP有线或4G通信。这两个链路是完全不同的协议栈,千万别搞混。

3.2 频段规划:CN470/868/915

频段这东西,说白了就是「车道」。不同国家、不同地区,允许你用的无线频率不一样。我见过不少外贸团队,产品发到欧洲还在用470MHz,结果被海关扣了——这就是频段规划没做好。

频段 使用地区 频率范围 信道数 最大发射功率
CN470 中国 470-510 MHz 96个上行 / 48个下行 +17 dBm (50 mW)
EU868 欧洲 863-870 MHz 8个上行 / 1个下行 +14 dBm (25 mW)
US915 北美 902-928 MHz 64个上行 + 8个FSK / 8个下行 +20 dBm (100 mW)

我的建议:如果你做国内智慧农业项目,直接用CN470。但要注意,CN470的信道规划比较复杂,建议使用LoRaWAN 1.0.3及以上版本协议栈,自动处理信道跳频。

3.3 Class A/B/C模式详解

LoRaWAN定义了三种终端工作模式。你想想看,为什么需要三种?因为不同的应用场景对功耗和实时性的要求完全不同。

3.3.1 Class A:最省电,最常用

这是所有LoRaWAN终端必须支持的模式。工作流程很简单:

  1. 终端主动发送上行数据
  2. 发送结束后,打开两个短暂的接收窗口(RX1和RX2)
  3. 如果服务器有下行数据,就在这两个窗口内下发
  4. 如果没有,终端立刻进入休眠

功耗表现:休眠电流仅1-2μA,一节18650电池可以用2-3年。

缺点:服务器不能主动下发数据,必须等终端上报。我在做智能灌溉项目时,就因为这个特性,紧急关阀指令延迟了十几分钟——嗯,后来改用了Class C。

3.3.2 Class B:定时接收,平衡之选

Class B在Class A的基础上,增加了「定时接收窗口」。网关会发送一个信标(Beacon),终端同步时间后,在约定的时间点打开接收窗口。

  • 优点:服务器可以预测终端何时在线,实现准实时下行
  • 缺点:需要网关支持信标发送,功耗比Class A高一些
  • 适用场景:需要定时配置更新的设备,比如气象站

3.3.3 Class C:实时响应,功耗最大

Class C模式下,终端几乎一直处于接收状态,只在发送数据时短暂关闭接收。

  • 优点:服务器可以随时下发数据,延迟极低
  • 缺点:功耗高,接收电流约10-15mA
  • 适用场景:需要实时控制的设备,比如电磁阀、报警器

避坑指南:我曾经在一个大棚项目中,把所有节点都设成了Class C。结果电池一周就没电了。后来才意识到,Class C只适合有市电供电的设备。电池供电的传感器,老老实实用Class A。

3.4 知识体系总览

下面这张图,是我自己画的一个框架图。它把LoRaWAN协议栈的核心逻辑串起来了。你仔细看一遍,应该能对今天的内容有个整体把握。

LoRaWAN协议栈核心架构 终端节点 (End Device) Class A (省电) | Class B (定时) | Class C (实时) 传感器采集 → LoRa调制 → 射频发射 LoRa无线 网关 (Gateway) SX1301/1302/1303 | 8通道并发 | 多SF解调 LoRa → 以太网/4G 协议转换 TCP/IP 网络服务器 (Network Server) 数据去重 | ADR速率自适应 | 安全校验 | 下行调度 ChirpStack / TTN / 自研 MQTT/HTTP 应用服务器 (Application Server) 数据解析 | 存储 | 可视化 | 告警 频段规划 CN470 (中国) EU868 (欧洲) US915 (北美) 工作模式 Class A Class B Class C

这张图从左到右、从上到下,把今天讲的四个角色、三种模式、三个频段都串起来了。你保存下来,以后做项目架构设计时可以直接参考。

个人经验:刚开始做LoRaWAN项目时,我建议你先从Class A + CN470入手。这是最成熟、最稳定的组合。等跑通了整个链路,再根据实际需求调整模式和频段。别一上来就想搞大而全,容易翻车。


公众号:蓝海资料掘金营,微信deep3321