定义
LoRaWAN 是建立在 LoRa 物理层之上的网络协议。终端按 Class A(最省电)、Class B(支持下行时隙)、Class C(持续监听)工作;网关仅负责透明转发(Packet Forwarder),数据经 NS(Network Server)分发给应用服务器。
终端类型
Class A:终端发送后开启两个短接收窗口,最省电,适合纯上行传感器;Class B:在 Class A 基础上增加定时接收时隙(Beacon 同步),支持下行调度;Class C:除发送外持续监听,适合需实时下发的场景(如开关控制),功耗最高。绝大多数 LPWAN 传感器采用 Class A。
网络架构
终端→网关(Packet Forwarder)→NS(Network Server,负责 ADR、Join、路由)→AS(Application Server)或集成 NS+AS 的云平台。网关与 NS 间常用 UDP 加密传输。支持 OTAA(Over-The-Air Activation)与 ABP(Activation By Personalization)两种入网方式。中国可部署私有 LoRaWAN 网络,或接入腾讯云、阿里云等公有 LoRaWAN 服务。
应用与选型
LoRaWAN 适用于 AMR 抄表、环境监测、农业、智慧城市等。选型时需考虑:私有部署 vs 公有云;网关覆盖与数量;终端 Class 类型;与现有系统的集成方式(API、MQTT 等)。
入网密钥与会话密钥
网络协议规定终端如何加入网络、帧计数如何防重放、应用数据如何加密,以及网关、网络服务器和应用服务器各管哪一段。空中激活在入网时用根密钥推导会话密钥,终端和服务器各自保存计数器。预激活把会话密钥提前写进终端和服务器,省去入网往返,计数器仍须保持。网关在标准架构里只做射频收发和转发,不保存应用密钥,抓到网关日志不等于能够读出业务明文。确认帧要求服务器回下行,非确认帧不保证送达。终端类别决定下行机会:最省电的一类只在自己上行之后开两个短窗,持续监听的一类几乎一直开着接收。
使用条件是区域参数里的频率、功率和占空与实际部署一致,网络服务器使用同一套参数。多网关接收到同一帧时由服务器去重,应用侧不应再当成多次事件。下行要排队到该终端的接收窗口,窗口错过就要等下一次上行。第二类终端依赖信标对齐额外窗口,收不到信标时退回到只有上行后窗口的行为。密钥应能按设备和按应用区分,整网共用一把应用密钥时,任一终端泄露都能解其他终端的业务。
确认帧和占空上限
预激活终端更换服务器或恢复旧备份后,帧计数比服务器记忆的小,后续帧会被当成重放丢掉,现象是射频正常、业务全无。把计数器清零而不同时清除服务器状态,是这类故障的常见起因。空中激活若每次上电都重新入网,会消耗下行窗口和空中时间,电池和信道都变差;应保存会话,只在会话失效时再入网。每一包都要确认时,网关下行占空先被耗尽,远处终端先失败。
终端侧的自适应速率若与服务器不一致,服务器按错误的速率下发,终端永远听不到。信道表少填一个频点,终端仍在该频点发射,服务器却不接收。应用层把网关编号当成终端位置,网关只说明哪只网关听到了帧,不能代替卫星定位。时钟应放在应用载荷里,网络服务器的接收时间是到达时间,补传和缓存会让两者不同。升级密钥时要让新旧会话有重叠期,一次性替换会让一批仍用旧密钥的终端集体离线。Class 配置写成持续接收、硬件却按最省电的固件睡眠,下行命令会大面积超时。
会话保持与计数器
空中激活得到的会话应保存在终端里,不要每次上电都重新入网。频繁入网占用下行窗口,也让电池和信道变差。预激活的帧计数只能前进,恢复旧备份或更换服务器后计数变小,帧会被当成重放丢掉,射频指标却完全正常。清除计数器时服务器侧的状态一起清,只清一边就会整机“在线但无数据”。
密钥按设备和应用分开,整网一把应用密钥时,一台终端泄露会影响其他终端。更换密钥留重叠期,旧会话的终端还能工作到更新完成。服务器按错误速率下发时,终端上行正常、下行全无,要核对自适应速率是哪一侧在决定。信道表漏一个频点,终端仍会在那个频点发射。网关编号不是地理位置。应用载荷里的时间才是采样时间,服务器记录的是收到时间。终端类别要和固件一致,配置成持续接收而固件仍长期睡眠,下行命令会超时。
帧计数回绕要按协议宽度处理,应用自己用一个较小的计数再判重,会在回绕点误丢数据。服务器迁移时把计数和会话一起迁走,只迁密钥不迁计数,全部终端都会像被重放一样被拒绝。第二类终端收不到信标时,额外的下行窗口消失,只剩下上行之后的短窗,调度命令的等待时间随之变长。持续接收的终端耗电接近一直开机,不能用最省电那一类的电池寿命去备货。应用服务器看到的重复上行应去重,多网关听到同一帧是正常现象。密钥更新记录设备标识和生效时间,重叠期内新旧密钥都能解,重叠结束再停用旧密钥。类别、信道和速率任何一项和固件不符,都会表现为上行偶发成功、下行基本失败。