2. LoRaWAN协议栈与云平台接入接口
LoRaWAN并不是单一协议,而是一套分层协议体系。终端节点到云平台之间,数据要依次穿过物理层、MAC层、LoRaWAN应用层,再经网关汇聚后通过北向接口进入网络服务器与应用服务器。理解这条链路的分层职责,是后续做入网配置、Class选型和云平台对接的前提。
物理层:LoRa调制与信道参数
物理层由LoRa调制技术承担,核心参数是扩频因子SF、带宽BW、编码率CR和载波频率。SF越大,扩频后每个符号携带的码片越多,接收灵敏度越高、传输距离越远,但相同数据量占用的空中时间越长。以中国区常用参数为例:CN470频段、BW=125kHz、CR=4/5,SF7时速率约5.5kbps,SF12时约250bps,两者相差约20倍。这意味着同一包数据在SF12下的空中时间可能是SF7的数十倍,直接影响网关容量和终端功耗。
物理层还规定了信道划分。CN470采用上行470.3~489.3MHz、下行500.3~509.3MHz的频分双工结构,共96个上行信道,每信道200kHz间隔。终端不能随意占用全部信道,必须按LoRaWAN规定的信道计划跳频发送,以规避干扰并满足占空比限制。
MAC层:帧结构与入网流程
MAC层定义帧格式、入网方式、确认重传和自适应速率。LoRaWAN帧由前导、PHY头、PHY载荷和CRC组成,PHY载荷内再封装MAC头、帧端口、帧载荷和MIC。MIC是4字节消息完整性码,用NwkSKey和AppSKey分别校验网络层与应用层,防止伪造和篡改。
入网分两种方式。OTAA(空中激活)由终端发送Join-Request,携带DevEUI、AppEUI和DevNonce;网络服务器校验后返回Join-Accept,下发DevAddr、NwkSKey和AppSKey。ABP(人工激活)则把DevAddr和两个会话密钥直接烧录进终端,跳过入网交互。OTAA更安全,密钥可轮换;ABP部署简单,但密钥固定,一旦泄露需重新烧录。实际工程中优先选OTAA。
入网成功后,终端按Class工作。Class A是强制基础类:每次上行后开两个短接收窗口,RX1在发送结束后1秒,RX2在2秒,窗口关闭即休眠,功耗最低但下行只能被动等待。Class B在Class A基础上增加周期性Ping时隙,由网关下发信标同步,实现定时下行。Class C几乎持续接收,只在发送时短暂关闭接收,下行延迟最低,但功耗最高,通常用于市电供电设备。
入网流程的实际操作要点
以OTAA为例,终端上电后先发送Join-Request,网络服务器在收到后校验DevEUI与AppEUI是否在册,并检查DevNonce是否重复。若通过,服务器生成DevAddr和会话密钥,通过Join-Accept下发。终端收到后,用AppKey解密得到NwkSKey和AppSKey,入网完成。此时终端可开始发送上行数据。
实际配置中,DevEUI通常由芯片厂商固化,AppEUI由平台分配,AppKey需在终端和平台两侧一致。若入网失败,优先检查AppKey是否匹配、DevNonce是否被重用、网关是否在线。常见现象是终端反复发送Join-Request但收不到Join-Accept,此时应查看网关日志中是否有该终端的入网请求记录。
云平台北向与南向接口
云平台与LoRaWAN网络之间通过两类接口交互。南向接口面向网关,典型协议是GWMP(Gateway Message Protocol),基于UDP,网关把收到的LoRa帧封装成JSON或二进制格式上报给网络服务器,同时接收下发的下行帧。北向接口面向应用,常见形式是MQTT订阅和HTTP API。应用服务器把解码后的业务数据通过MQTT主题推送给云平台,云平台再通过规则引擎转发到数据库、告警系统或可视化大屏。
以MQTT为例,终端上报的温度数据经应用服务器解码后,可发布到application/1/device/<DevEUI>/rx主题,云平台订阅该主题即可获取数据。下行控制则通过application/1/device/<DevEUI>/tx主题发布,经网络服务器排队后由网关在合适窗口下发。这种发布/订阅模式解耦了设备侧与应用侧,便于横向扩展。
三类Class的对比与适用场景
| 特性 | Class A | Class B | Class C |
|---|---|---|---|
| 接收窗口 | 上行后两个短窗口 | Class A + 周期Ping时隙 | 几乎持续接收 |
| 下行延迟 | 高(需等下次上行) | 中(按信标周期) | 低(随时可收) |
| 功耗 | 最低 | 中等 | 最高 |
| 典型供电 | 电池 | 电池/混合 | 市电 |
| 适用场景 | 水表、气表、环境监测 | 路灯控制、定时抄表 | 执行器、实时控制 |
需要强调的是,Class选择不是终端单方面决定的,网络服务器和网关也要支持对应模式。Class B依赖网关周期性发送信标,若网关不支持Beacon,终端无法进入Class B。Class C则要求网关保持接收通道常开,对网关资源占用较大。因此在实际项目中,Class选型要结合终端功耗预算、网关能力和业务下行实时性要求综合判断。
协议栈与接口的对应关系
把分层和接口串起来看:物理层和MAC层运行在终端与网关之间,负责无线传输和帧校验;网关到网络服务器走南向接口,完成帧的汇聚与转发;网络服务器到应用服务器走内部接口,完成会话管理和数据解密;应用服务器到云平台走北向接口,完成业务数据交付。每一层都有明确的职责边界,排障时按层定位能快速缩小范围。例如终端入网失败,先查物理层信号质量,再查MAC层密钥,最后查南向接口网关是否在线。
掌握这条分层链路后,后续配置网关、创建产品、调试入网和对接云平台时,就能清楚每一步操作落在哪一层、影响哪些参数,而不是盲目试错。