引言:同一个网络里,水表、路灯和网关为什么长得不一样?
翻看任何一个 LoRaWAN 设备的规格书,你都会看到一行参数:Device Class。水表写 Class A,智能路灯可能是 Class B,而继电器控制柜、网关这类设备则是 Class C。
这三个字母不是营销标签,而是 LoRaWAN 协议里对"设备如何接收下行数据"的三种约定。它直接决定了:
- 这台设备能用电池撑多久;
- 平台下发一条指令,设备多久能收到;
- 这个项目该怎么规划供电和运维。
一句话概括本质:LoRaWAN 的上行容易,下行昂贵。设备发数据很轻松,但要"随时听得到平台说话",就得让射频接收机一直开着------而接收机的功耗,往往比深睡眠高出一百倍以上。Class A/B/C 就是协议针对这个矛盾给出的三档解法。
这篇文章把三类机制讲透,并给出一张可以直接拿去用的选型决策表。
一、先理解矛盾:为什么下行这么难?
LoRaWAN 是低功耗广域网络(LPWAN),它的典型终端是电池供电的传感器,设计目标是"一节电池用 5--10 年"。
要实现这一点,设备绝大部分时间必须处于深度睡眠------而睡眠中的设备是"聋"的,听不到网关的任何呼叫。如果想让平台能随时下发指令(比如远程拉闸、修改上报周期),设备就必须持续开着的接收机,电池寿命立刻从"十年"缩水到"几个月"。
功耗和下行实时性,天生就是一对矛盾。 Class A、B、C 不是三种"技术",而是这条矛盾线上的三个折中点:从"完全不为下行留功耗"(A),到"定时醒一下看看有没有指令"(B),再到"一直在线"(C)。
二、Class A:上行之后才"回听"------最省电的基线
机制:双接收窗口
Class A 是所有 LoRaWAN 设备的必选基线------不管标称什么 Class,设备都首先实现 Class A 行为。
它的逻辑很朴素:设备平时深睡,只有自己发完一条上行之后,才短暂打开两个接收窗口:
- RX1:上行结束后约 1 秒开启,通常使用与上行相同或相近的频率/速率;
- RX2:紧随其后约 1 秒开启,使用区域定义的固定频率和速率(如 EU868 的 RX2 固定在 869.525 MHz / DR0,具体以区域参数为准)。
两个窗口都很短,开完立刻回到睡眠。也就是说,网络想给 Class A 设备发指令,只能"搭车"------必须等设备先说话。平台下发的内容会在 NS 排队,等设备下一次上行后的 RX1/RX2 里送达。
特点与适用
| 维度 | 表现 |
|---|---|
| 功耗 | 三类中最低,深睡眠占绝对主导 |
| 下行时机 | 只能跟随上行,无法主动唤醒 |
| 下行延迟 | 取决于上报周期:每小时报一次,指令最坏要等近 1 小时 |
| 典型供电 | 一次电池(锂电池),寿命可达 8--10 年 |
适用场景:水表、电表、气表,温湿度/土壤传感器,一切"以采集为主、几乎不需要下行"的设备。这也是为什么 LoRaWAN 的传感器生态里 Class A 占绝对主流。
三、Class B:定时开窗的"预约制"------在功耗与延迟之间取中
机制:Beacon 同步 + Ping Slot
Class B 在 Class A 的基础上,增加了一套"定时醒来看一眼"的机制:
- Beacon(信标)同步:网关周期性广播 Beacon,设备接收后与网络时间对齐------从此它"知道现在几点"。
- Ping Slot(时隙监听):时间同步之后,设备在周期性的固定时刻(Ping Slot)短暂开启接收窗口,听有没有下发给自己的指令。没听到,继续睡;听到了,正常接收处理。
Ping Slot 的周期是可配置的(协议定义了从秒级到 128 秒的几档):周期越短,下行越及时,但醒得越频繁、功耗越高。
特点与适用
| 维度 | 表现 |
|---|---|
| 功耗 | 略高于 Class A(多出 Beacon 接收和 Ping Slot 的唤醒) |
| 下行时机 | 可在 Ping Slot 被调度,不再完全依赖上行 |
| 下行延迟 | 有上界:最坏等一个 Ping Slot 周期 |
| 部署要求 | 网络侧要支持 Beacon 广播------网关和 NS 都必须配合,不是设备单方面能实现的 |
适用场景:智能路灯(需要按季节远程调开关灯计划)、需周期性同步时间的设备、需要在分钟级收到下行指令的测点。Class B 在实际项目中相对少见,一个重要原因就是部署门槛:整条链路(设备-网关-NS)都要支持 Class B。
四、Class C:持续在线的"实时模式"------常供电设备的专属
机制:除了发送,都在接收
Class C 干脆放弃"睡眠换功耗"的思路:射频接收机几乎全程开启,只在上行发射的瞬间短暂关闭(避免自干扰),发完立刻回到接收状态。
这样,平台下发的指令几乎可以立即送达,下行延迟从"分钟/小时级"降到"秒级"。
代价:功耗由接收电流主导
这是工程上必须算清的一笔账。射频接收机的典型工作电流在毫安级到几十毫安级,而 Class A 设备深睡眠电流只有微安级------相差三到四个数量级。
行业里有一个明确的工程结论(而非协议禁令):Class C 通常不适合一次电池供电的设备。一次电池(如锂亚电池)的容量撑不住持续的 RX 电流,除非做过完整的功耗生命周期预算,否则无法宣称"多年寿命"。
所以 Class C 的典型供电是市电、PoE 或大容量可充电电池。
| 维度 | 表现 |
|---|---|
| 功耗 | 三类中最高,平均电流由 RX 电流主导 |
| 下行时机 | 随时可发,近实时 |
| 下行延迟 | 秒级 |
| 典型供电 | 市电 / PoE / 常供电 |
适用场景:继电器与控制柜(远程分合闸)、工业实时监控、执行器、以及 LoRaWAN 网关自身(网关作为"永远在线"的设备天然是 Class C 形态)。
五、三类对比总表
| 维度 | Class A | Class B | Class C |
|---|---|---|---|
| 接收时机 | 仅上行后 RX1/RX2 | 上行后 + 周期性 Ping Slot | 除发射外持续接收 |
| 下行能力 | 最弱(搭上行的车) | 有调度、有延迟上界 | 近实时 |
| 下行延迟 | 等下次上行(分钟~小时级) | 最坏一个 Ping 周期(秒~分钟级) | 秒级 |
| 功耗 | 最低 | 略高于 A | 最高(RX 主导) |
| 典型供电 | 一次电池 | 电池(容量需相应加大) | 市电/PoE |
| 电池寿命量级 | 5--10 年 | 数年(取决于 Ping 周期) | 不适用一次电池 |
| 网络侧要求 | 无特殊要求 | 网关 +NS 需支持 Beacon | 无特殊要求 |
| 典型设备 | 水电气表、温湿度传感器 | 智能路灯 | 继电器、执行器、网关 |
需要强调一点:Class 的选择不改变区域数据率定义,也不能绕过当地的发射限制------它是 MAC 层的接收行为约定,与物理层参数(SF/BW/CR,参见本系列第 4 篇)是相互独立的两个维度。
六、选型决策:问自己三个问题
问题 1:这个设备需要接收下行指令吗?
- 几乎不需要(只上报数据)→ Class A,别犹豫。
- 需要,但等几分钟没关系 → 往下看问题 2。
- 需要秒级响应(控制类)→ Class C,并规划市电/PoE 供电。
问题 2:设备是电池供电吗?
- 是,且要撑 5 年以上 → Class A ;若确需周期性下行,评估 Class B 并核算功耗预算。
- 市电/常供电 → Class C 可用,享受实时下行。
问题 3(针对 Class B):网络基础设施支持吗?
- 网关和 NS 都支持 Beacon 广播吗?不支持的话,Class B 只是纸面能力。
一个实用的经验法则:传感器默认 Class A,执行器默认 Class C,中间地带再考虑 Class B。这也是市面上绝大多数 LoRaWAN 产品线的产品分布现状。
七、三个常见误区
误区一:"Class C 更高级,选它准没错。"
Class C 不是升级版,而是另一种取舍。把电池传感器配成 Class C,等于让它在 RX 电流上空耗------续航从十年掉到几个月,还占用了网关下行资源。选错 Class 比选错 SF 的代价更直接。
误区二:"Class A 设备就完全收不到下行。"
不对。Class A 设备在每次上行后的 RX1/RX2 里都能接收下行------ACK、MAC 命令、参数配置都可以在这两个窗口里完成。只是"时机"被绑定在上行之后。实际项目中,配合合理的上报周期和指令排队机制,Class A 也能完成大部分配置下发需求。
误区三:"Class 是设备固有的,不能改。"
Class 是 MAC 层行为,很多设备(尤其带可配置固件的 DTU/模组)支持 Class A/C 模式切换,可按项目阶段动态选择:调试期用 Class C 方便实时下发,部署运行后切回 Class A 省电。当然,切换逻辑要考虑功耗与供电的匹配。
八、工程实践建议
- 功耗预算先行:无论选哪个 Class,都先做功耗生命周期估算(RX/TX/睡眠电流 × 时间占比),再选电池容量------尤其是 Class B 和 C 场景,"拍脑袋的续航承诺"是售后纠纷的头号来源。
- 下行需求收敛:把"需要实时下行"的需求逐条审一遍,很多所谓的"实时控制"其实可以退化为"下次上报时下发配置"(Class A 即可满足)。
- 注意下行资源瓶颈:典型网关 8 频点 16 解调器,上行可并行 16 个包,下行却往往只有一个信道。大量 Class C 设备 + 频繁下行会挤兑下行资源,规划时要控制下行流量密度。
- 入网期间的特殊性:入网流程(OTAA)中的 Join Accept 就是在 RX1/RX2 里下发的------即使 Class C 设备,入网阶段也遵循 Class A 时序,这是协议设计里 A 作为基线的又一体现。
结语
Class A/B/C 的本质,是 LoRaWAN 在"低功耗"和"下行实时性"之间画出的三条线:A 把功耗压到极致、把下行交给排队;B 用时间同步换一个有上界的下行延迟;C 用常供电换秒级响应。
理解了这条主线,你看到任何一台 LoRaWAN 设备的 Class 标注,就能立刻推断出它的供电形态、下行能力和适用场景------这比记住任何参数都有价值。
本文由 ManThink 技术团队编写。ManThink 致力于开源与可靠的 LoRaWAN 基础设施:GD6 开源网关(ESP32-S3 + SX1302)支持全球主流频段与主流网络服务器;自研 EdgeBus 边缘计算引擎支持 Class A/C 模式切换,帮助传感器以最低功耗接入 LoRaWAN 网络。