骁龙移动平台双卡双待DSDS的技术内幕(7): DSDS功耗优化与DRX/eDRX策略
系列文章目录:本文是“骁龙移动平台双卡双待DSDS的技术内幕”系列的第七篇,分析双卡场景下的功耗挑战及 DRX/eDRX/PSM 等省电机制的应用。
1. DSDS 为什么更耗电?
1.1 功耗对比
下表展示单卡 vs 双卡(DSDS)功耗对比:
| 功耗来源 | 单卡 | DSDS |
|---|---|---|
| Modem 待机 | 15 mA | 20~25 mA |
| RF(Paging 监听) | 5 mA | 10~15 mA |
| Tune-Away 额外开销 | 0 | 3~8 mA |
| 双 NAS 维护 | N/A | 2~3 mA |
| 双 IMS 保活 | N/A | 1~2 mA |
| 总计(待机态) | ~20 mA | 3550 mA |
结论:DSDS 比单卡待机功耗高75%~150%。
1.2 DSDS 额外功耗来源分析
- 双 Paging 监听 (占比最大, ~40%)
- 两张卡各自需要在 DRX 周期唤醒监听 RF,需要在两个频率间切换
- Tune-Away 开销(~25%)
- PLL 锁频耗电
- AGC 调整耗电
- 切换期间主卡的额外重传
- 双路 NAS 信令(~20%)
- 两套 TAU/LAU 过程
- 两套小区重选/切换
- IMS 双注册保活(~15%)
- 两条 IPSec 通道维护
- 两路 SIP Keep-alive
2. DRX 机制基础
2.1 DRX(Discontinuous Reception)原理
┌──────────────────────────────────────────────────────┐ │ DRX 工作原理 │ │ │ │ 不使用 DRX: │ │ ████████████████████████████████████████████████████ │ │ UE 持续监听下行信道 → 极高功耗 │ │ │ │ 使用 DRX: │ │ ██░░░░░░░░░░░░██░░░░░░░░░░░░██░░░░░░░░░░░░██ │ │ ↑ ↑ ↑ ↑ │ │ On Duration On Duration On Duration On │ │ (监听paging) (监听paging) (监听paging) │ │ │ │ ██ = 射频开启 (Active) │ │ ░░ = 射频关闭 (Sleep), Modem 低功耗模式 │ │ │ │ DRX Cycle = On Duration + Sleep Duration │ └───────────────────────────────────────────────────────┘2.2 LTE DRX 参数
| 参数 | 典型值 | 说明 |
|---|---|---|
| DRX Cycle | 1.28s / 2.56s | 一个完整的监听周期 |
| On Duration | 1~10 ms | 每个周期内射频开启的时间 |
| Inactivity Timer | 100~200 ms | 最后一次活动后保持监听的时间 |
| Short DRX Cycle | 10~40 ms | 短周期(数据活跃后的过渡) |
| Long DRX Cycle | 1.28~2.56 s | 长周期(完全空闲时) |
2.3 DSDS 下的 DRX 协调
单卡 DRX: Sub0: ██..............................██...............................██ T=0 T=1.28s T=2.56s DSDS DRX (两张卡各自的 DRX 周期): Sub0: ██..............................██...............................██ Sub1: ........██..............................██..........................██ 实际 RF 唤醒次数: 可能是单卡的 2 倍 (如果两张卡的 Paging Occasion 不对齐) 优化: 对齐两卡的 DRX Cycle Sub0: ██..............................██...............................██ Sub1: ██..............................██...............................██ ↑ 同时唤醒,一次 RF 开启服务两张卡 对齐条件: 两张卡在同一频段, 或频率切换极快3. eDRX(Extended DRX)在 DSDS 中的应用
3.1 eDRX 原理
普通 DRX: ██..██..██..██..██..██..██..██..██..██..██..██.. 每 1.28s 唤醒一次 eDRX (超长 DRX 周期): ██............................................................................................██ 每 5.12s / 10.24s / 20.48s / ... / 2621.44s 唤醒一次 eDRX 允许 UE 在更长时间内保持深度睡眠 代价: 来电/短信通知延迟增加- eDRX(超长 DRX 周期):每 5.12s / 10.24s / 20.48s / … / 2621.44s 唤醒一次
- eDRX 允许 UE 在更长时间内保持深度睡眠
- 代价:来电/短信通知延迟增加
3.2 DSDS 中的 eDRX 策略
策略:非 DDS(非默认数据卡)使用更长的 eDRX 周期 DDS 卡(SIM1,数据卡): DRX Cycle = 1.28s(快速响应数据请求) Non-DDS 卡(SIM2,待机卡): eDRX Cycle = 5.12s ~ 10.24s (可以更长,以节省功耗) (代价:来电通知延迟可能多 5~10 秒) 功耗节省: 非 DDS 卡 RF 唤醒频率降低 4~8 倍 Tune-Away 频率相应降低 DDS 卡数据中断(tune-away gap)减少 整体待机功耗节省 20~30%3.3 eDRX 与来电延迟的权衡
# eDRX 周期与来电延迟的关系edrx_cycles=[1.28,2.56,5.12,10.24,20.48]# 秒max_delay=[cycleforcycleinedrx_cycles]# 最大来电通知延迟# 用户体验分析:# 1.28s :来电几乎实时(与单卡相同)# 2.56s :延迟可接受# 5.12s :用户可能感知到延迟# 10.24s:明显延迟,可能漏接# 20.48s:仅适合极度省电场景# 推荐配置:# 主动通话卡:DRX = 1.28s# 副卡(偶尔接电话):eDRX = 5.12s# 副卡(几乎不接电话):eDRX = 10.24s4. PSM(Power Saving Mode)在 DSDS 中的应用
4.1 PSM 原理
PSM = 极致省电模式, UE 完全不监听 paging ┌─────────────────────────────────────────────┐ │ 正常待机: ██..██..██..██..██..██.. │ │ eDRX: ██..........██..........██ │ │ PSM: ████████████████████████ (完全关闭RF)│ │ ↑ ↑ │ │ 进入PSM 主动唤醒/定时器 │ │ │ │ PSM 期间: UE 对网络不可达 │ │ (无法接收来电、短信, 直到下次唤醒) │ └─────────────────────────────────────────────┘4.2 DSDS 下的 PSM 策略
适用场景: 某张卡主要用于数据(如 IoT 物联网卡) ┌─────────────────────────────────────────────┐ │ SIM1: 主通话卡 │ │ - 正常 DRX (1.28s) │ │ - 随时可接来电 │ │ │ │ SIM2: 纯数据卡 (如流量卡) │ │ - 使用 PSM │ │ - 仅在 AP 请求数据时唤醒 │ │ - 不需要接来电 │ │ - 极大降低功耗 │ │ │ │ 效果: 接近单卡的功耗水平 │ └─────────────────────────────────────────────┘5. 高通平台的 DSDS 功耗优化技术
5.1 Paging Aligned DRX
技术:对齐两张卡的 Paging Occasion 实现方式: 1. Modem 分析两张卡的 DRX 周期和 Paging Frame 2. 如果可以对齐(取决于 SFN 和 IMSI): - 在同一个唤醒窗口内处理两张卡 - 减少 RF 唤醒次数 3. 如果不能对齐: - 计算最优的唤醒调度 - 尽量合并相近的 Paging Occasion 节省:最多可节省 30% 的 paging 相关功耗5.2 Sleep Mode Optimization
┌─────────────────────────────────────────────────┐ │ Modem Sleep 状态层次 │ │ │ │ Level 0: Active (全速运行) │ │ ├── CPU: Full Speed │ │ ├── RF: On │ │ └── 功耗: ~200mA │ │ │ │ Level 1: Light Sleep (轻度睡眠) │ │ ├── CPU: 降频 │ │ ├── RF: Off, 快速唤醒(<1ms) │ │ └── 功耗: ~5mA │ │ │ │ Level 2: Deep Sleep (深度睡眠) │ │ ├── CPU: 关闭, 仅保留 Timer │ │ ├── RF: Off, 唤醒需 2-5ms │ │ └── 功耗: ~1mA │ │ │ │ Level 3: Hibernate (休眠) │ │ ├── CPU: 完全关闭 │ │ ├── RF: Off, 唤醒需 >10ms │ │ └── 功耗: ~0.1mA │ │ │ │ DSDS 挑战: 频繁 tune-away 阻止进入深度睡眠 │ │ 优化: 合并/对齐唤醒事件, 允许更长深度睡眠 │ └─────────────────────────────────────────────────┘5.3 Adaptive DRX
根据用户使用模式自适应调整 DRX 策略: ┌─────────────────────────────────────────────┐ │ 时间段 │ SIM1 策略 │ SIM2 策略 │ │ ───────── │ ───────── │ ────────── │ │ 工作时间 │ DRX 1.28s │ DRX 1.28s │ │ (09:00-18:00)│ (频繁使用) │ (可能来电) │ │ │ │ │ │ 晚间 │ DRX 1.28s │ eDRX 5.12s │ │ (18:00-23:00)│ (主力卡) │ (降低监听) │ │ │ │ │ │ 夜间 │ eDRX 2.56s │ eDRX 10.24s │ │ (23:00-07:00)│ (仅紧急) │ (极度省电) │ └─────────────────────────────────────────────┘ 实现: 通过 Android AlarmManager + Modem NAS 配置6. 实践指南
6.1 功耗测量方法
# 方法1:使用 power monitor 硬件工具(最精确)# Monsoon Power Monitor / Keysight N6705C# 连接电池端子,记录电流波形# 方法2:使用 Android Battery Statsadb shell dumpsys batterystats--reset# 重置统计# ...等待一段时间...adb shell dumpsys batterystats>battery_report.txt adb bugreport>bugreport.zip# 使用 Battery Historian 分析# 方法3:Modem 侧功耗日志# QXDM Filter: [Modem日志分类] (Modem Sleep Statistics)# 可以看到 Modem 各 sleep level 的时间占比# 方法4:kernel wakeup 统计adb shellcat/sys/kernel/debug/wakeup_sources|sort-k5-rn# 查看 modem 相关的 wakeup source 频率6.2 DRX/eDRX 配置验证
# 查看当前 DRX 配置adb logcat-bradio|grep-i"drx"# QXDM 查看 DRX 状态# Filter: [Modem日志分类] (LTE NAS EMM State) - 包含 DRX 参数# Filter: [Modem日志分类] (LTE ML1 Idle DRX)# 查看 eDRX 协商结果# Filter: [Modem日志分类] (NAS EMM Attach Accept) - 包含 eDRX 参数# 或adb logcat-bradio|grep-i"edrx"# 手动请求 eDRX (测试用)# 通过 AT 命令 (部分平台支持):# AT+CEDRXs=1,4,"0010" # 请求 LTE eDRX, 周期=20.48s6.3 功耗优化 NV 配置
# 关键 NV/EFS 配置项 # 1. Paging 对齐使能 # EFS: [Modem NV 配置项] # 值: 1=启用对齐优化 # 2. Non-DDS eDRX 配置 # EFS: [Modem NV 配置项] # 值:0=跟随网络,2=5.12s,3=10.24s # 3. DeepSleep 阈值 # EFS: [Modem NV 配置项] # 值:允许进入深度睡眠的最小空闲时间(ms) # 4. Tune-Away 间隔控制 # EFS: [Modem NV 配置项] # 值:两次 tune-away 之间的最小间隔(ms) # 5. IMS 保活间隔(非 DDS 卡) # EFS: [Modem NV 配置项] # 值:保活间隔(s),增大以降低功耗6.4 Battery Historian 分析要点
1. "Mobile Radio Active" 段: - DSDS 应该是单卡的 ~2 倍 - 如果远超 2 倍,可能有异常唤醒 2. "Modem Wakelock": - 频繁短时 wakelock → tune-away 频繁 - 长时间 wakelock → 可能有 NAS 异常 3. "Telephony" 相关: - ServiceState 频繁变化 → 小区重选异常 - 注册/去注册循环 → 网络兼容性问题 4. 对比基准: 单卡待机(4G):~1% / 小时 DSDS 待机(4G+4G):~1.5~2% / 小时 如果 > 3% / 小时,需要排查7. 5G NR 对 DSDS 功耗的影响
7.1 5G 带来的新挑战
5G NR 对 DSDS 功耗的额外影响: 1. 更多频段 → 更多测量 - FR1 (Sub-6GHz) + FR2 (mmWave) - 邻区测量增多,RF 活跃时间增加 2. BWP (Bandwidth Part) 切换 - 宽带 BWP 功耗高 - 需要频繁在宽窄 BWP 间切换 3. CA/DC (载波聚合/双连接) - EN-DC (4G+5G) 两个连接同时维护 - DSDS + EN-DC = 3路管理 4. C-DRX 参数差异 - 5G NR DRX 参数与 LTE 不同 - 跨制式协调更复杂7.2 5G DSDS 功耗优化方向
1. RRC Inactive 状态利用: 5G 引入 RRC_INACTIVE 状态(介于 CONNECTED 和 IDLE) 无需完整的连接释放/重建 → 减少信令功耗 2. WUS (Wake-Up Signal): 基站在 paging 前发送 WUS UE 先检测 WUS(功耗极低) 仅在有 WUS 时才完整解码 paging → 减少无效唤醒功耗 3. 跨制式 DRX 对齐: SIM1 (5G NR) 和 SIM2 (LTE) 的 DRX 对齐 减少总唤醒次数 4. Smart 降频策略: 待机时将 5G 降至 4G(减少 5G 搜网功耗) 有数据需求时再升到 5G8. 总结
本文全面分析了 DSDS 场景下的功耗问题和优化策略:
- DSDS 比单卡多 75~150% 待机功耗,主要来自双 paging 和 tune-away
- DRX/eDRX 是最核心的省电机制,DSDS 下需要差异化配置
- Paging 对齐、自适应 DRX、Deep Sleep 优化等技术降低实际功耗
- 5G 带来新挑战,但也提供了 WUS/RRC Inactive 等新优化手段
下一篇预告:DSDS 场景下的网络注册与 PLMN 选择策略