ISO/IEC IEC 29341-6-13 — UPnP 低功耗 — 第6-13部分:省电服务

架构、状态变量以及节能型UPnP网络的实用实现指南

ISO/IEC 29341-6-13 标准定义了UPnP低功耗架构中的省电服务(Power Save Service)。该服务使UPnP设备能够通告和管理其省电能力,使控制点能够在家庭或企业网络中协调睡眠调度。随着物联网的快速发展,设备在不中断连接的情况下进入和退出低功耗状态已成为关键设计需求。

在电池供电的传感器上,将Power Save服务作为独立的UPnP服务来实现。将其与电源控制服务(6-17)配对使用,可在保持睡眠模式下平均电流低于50微安的同时实现远程唤醒。

服务架构与状态变量

省电服务公开了一组描述设备省电能力和当前状态的状态变量。主要分为两类:能力变量状态变量

状态变量 类型 描述
PowerSaveCapabilities string (CSV列表) 支持的睡眠模式列表:”deepSleep”深度睡眠、”lightSleep”浅度睡眠、”standby”待机、”hibernate”休眠
PowerSaveStatus string 当前电源模式:”awake”唤醒、”lightSleep”浅睡、”deepSleep”深睡、”standby”待机、”hibernate”休眠、”waking”唤醒中
SleepDuration ui4 (秒) 当前或即将开始的睡眠周期时长
WakeupTimeout ui4 (秒) 设备恢复到完全工作状态所需的最长时间
AutoSleepEnabled boolean 是否允许自主睡眠转换
精心设计的省电服务在典型的智能家居部署中可将整体网络功耗降低40%-60%,这得益于控制点能够在数十台设备之间协调睡眠周期。

操作与控制语义

该服务定义了多个UPnP动作,供控制点调用以查询或更改省电行为:

  • GetPowerSaveCapabilities() — 返回设备支持的睡眠模式列表。在初始发现阶段调用以填充设备配置文件。
  • GetPowerSaveStatus() — 返回当前电源状态。建议每30-60秒轮询一次以跟踪设备可用性。
  • SetSleepDuration(NewSleepDuration) — 请求特定的睡眠间隔。设备可以协商实际持续时间,响应中确认接受的值。
  • EnableAutoSleep(NewAutoSleepEnable) — 启用或禁用自主睡眠转换。启用时,设备可根据自身算法进入睡眠;禁用时,仅响应控制点的显式命令。

状态转换模型保证处于任何睡眠模式的设备将在WakeupTimeout通告的时间内返回”唤醒”状态。这一保证对于照明、暖通空调等实时控制应用至关重要。

不要仅依靠GetPowerSaveStatus()来进行活跃检测。处于”deepSleep”深度睡眠的设备可能根本不会响应控制点查询。应订阅事件通知以获取状态变更提醒,并在应用层使用看门狗定时器。

工程设计实践要点

将省电服务集成到产品中时,请考虑以下实用指南:

网络层协调。UPnP低功耗架构允许控制点充当中央调度器,从而简化设备固件设计。但为了增强弹性,设备应实现本地超时机制,即使控制点不可达也能强制唤醒。这可以防止整个网络陷入无法恢复的睡眠状态。

切勿在作为UPnP事件订阅者的设备上将短睡眠定时器(小于30秒)与AutoSleepEnabled=true组合使用。控制点将错过关键事件通知,导致整个网络状态失去同步。

电池寿命权衡。如果正确调优省电服务——唤醒→发送测量数据→在200毫秒内睡眠——每5分钟报告一次温度的传感器使用CR2032纽扣电池可实现2年电池寿命。WakeupTimeout变量应反映最坏情况下的晶振启动时间加上无线重新关联延迟。

常见问题

问:设备能否在不支持完整低功耗架构的情况下支持省电服务?
答:可以。标准允许独立实现各个服务。设备可以提供省电服务而不提供能源监控(6-14)或电源警报(6-15),尽管将它们组合使用能提供更丰富的能源管理功能。
问:省电服务如何与DHCP租约续期交互?
答:设备从深度睡眠中唤醒后,应立即续期其DHCP租约。设计睡眠时长不应超过DHCP租期的50%,以避免IP地址冲突。
问:GetPowerSaveStatus()的推荐轮询间隔是多少?
答:对于电池供电设备,轮询频率不应超过每60秒一次。对于市电供电设备,10-30秒可以接受。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注