骁龙移动平台双卡双待DSDS的技术内幕(4): Modem侧RF资源调度与Tune-Away机制

📅 2026/7/16 5:20:15
骁龙移动平台双卡双待DSDS的技术内幕(4): Modem侧RF资源调度与Tune-Away机制
系列文章目录本文是骁龙移动平台双卡双待DSDS的技术内幕系列的第四篇深入剖析DSDS最核心的硬件约束问题——RF资源共享与Tune-Away调度。1. 为什么DSDS需要Tune-Away1.1 硬件约束在DSDS架构中两张SIM卡共享同一套射频前端RF Front End┌──────────────────────────────────────────┐ │ 共享 RF 前端硬件 │ │ │ │ ┌──────┐ ┌──────┐ ┌──────────────┐ │ │ │ PA │ │ LNA │ │ Antenna Tuner│ │ │ │(功放) │ │(低噪放)│ │ (天线调谐) │ │ │ └──┬───┘ └──┬───┘ └──────┬───────┘ │ │ │ │ │ │ │ └──────────┼───────────────┘ │ │ │ │ │ ┌──────▼──────┐ │ │ │ RF Switch │ ◄── 射频开关 │ │ │ (天线开关) │ (切换频段) │ │ └──────┬──────┘ │ │ │ │ │ ┌──────▼──────┐ │ │ │ Antenna │ │ │ └─────────────┘ │ └──────────────────────────────────────────┘ 问题同一时刻RF 前端只能调谐到一个频率问题同一时刻RF前端只能调谐到一个频率1.2 Tune-Away 定义Tune-Away调离是指 Modem 在服务一张卡的同时短暂切换射频到另一张卡的频点以便另一张卡执行必要的操作如 paging 监听、系统信息读取等。时间轴 (ms级精度) SIM1 (主卡/数据卡): ████████████████░░░░░░████████████████░░░░░░████████████ 数据传输 │ Gap │ 数据传输 │ Gap │ 数据传输 SIM2 (副卡/待机卡): ██████ ██████ Paging Paging 监听 监听 ████ RF 资源被占用 ░░░░ Tune-Away Gap (SIM1 数据中断)2. Tune-Away的触发场景2.1 周期性触发Paging 监听副卡需要定期监听基站的Paging消息以接收来电/短信┌─────────────────────────────────────────────┐ │ Paging 周期 (DRX Cycle) │ │ │ │ LTE: DRX Cycle 1.28s / 2.56s (典型) │ │ 5G NR: DRX Cycle 可配置 (10ms ~ 10.24s) │ │ │ │ 每个 DRX Cycle 内的 Paging Occasion: │ │ ├── 持续时间: 1~2 个子帧 (1~2ms) │ │ └── 但 tune-away 总开销: ~20-50ms │ │ (含频率切换、AGC调整、解码时间) │ └─────────────────────────────────────────────┘2.2 事件触发触发事件描述优先级Paging 监听副卡定期监听基站 paging中系统消息更新副卡需要读取 SIB低位置更新 (TAU/LAU)副卡移动到新 TA/LA高测量报告副卡需要进行邻区测量低CSFB 来电3G 回落来电通知最高紧急呼叫任何卡的紧急呼叫最高2.3 优先级冲突处理┌─────────────────────────────────────────────────────┐ │ Tune-Away 优先级决策树 │ │ │ │ 主卡状态 副卡事件 决策 │ │ ──────── ───────── ───── │ │ 空闲 Paging 立即 tune-away │ │ 数据传输(低速率) Paging 允许 tune-away │ │ 数据传输(高速率) Paging 延迟/快速返回 │ │ VoLTE 通话中 Paging 拒绝/微调 │ │ 紧急呼叫 任何 拒绝 │ │ 任何 紧急呼叫 立即切换 │ └──────────────────────────────────────────────────────┘3. RF Manager调度算法3.1 高通 RF Manager 架构┌─────────────────────────────────────────┐ │ RF Manager (RFMGR) │ │ │ │ ┌─────────────────────────────────┐ │ │ │ Priority Arbitrator │ │ │ │ (优先级仲裁器) │ │ │ └───────────────┬─────────────────┘ │ │ │ │ │ ┌───────────────▼─────────────────┐ │ │ │ Resource Scheduler │ │ │ │ (资源调度器) │ │ │ │ ┌──────────┐ ┌──────────────┐ │ │ │ │ │Time Slicer│ │Freq Planner │ │ │ │ │ │(时间片) │ │(频率规划) │ │ │ │ │ └──────────┘ └──────────────┘ │ │ │ └───────────────┬─────────────────┘ │ │ │ │ │ ┌───────────────▼─────────────────┐ │ │ │ RF Driver │ │ │ │ (射频驱动: 频率合成器/PLL控制) │ │ │ └─────────────────────────────────┘ │ └─────────────────────────────────────────┘3.2 时间片调度策略策略1: Fixed Gap (固定间隔) ┌───────┐ ┌──┐ ┌───────┐ ┌──┐ ┌───────┐ │ SIM1 │ │S2│ │ SIM1 │ │S2│ │ SIM1 │ │ Data │ │PG│ │ Data │ │PG│ │ Data │ └───────┘ └──┘ └───────┘ └──┘ └───────┘ 每个 DRX Cycle 固定留一个 gap 策略2: Dynamic Gap (动态间隔) ┌─────────────┐ ┌──┐ ┌────────────────────┐ ┌──┐ │ SIM1 Data │ │S2│ │ SIM1 Data │ │S2│ │ (高吞吐) │ │PG│ │ (低吞吐) │ │PG│ └─────────────┘ └──┘ └────────────────────┘ └──┘ 根据主卡业务动态调整 gap 时长 策略3: Blanking (消隐) ┌──────────────────────────────────────────┐ │ SIM1 VoLTE Call (不允许中断) │ │ SIM2 Paging: DENIED (丢失可能的来电) │ └──────────────────────────────────────────┘ VoLTE 通话时完全拒绝 tune-away3.3 Tune-Away 时间开销分析典型 Tune-Away 时间预算 (LTE → LTE):RF 频率切换 ~2ms (PLL 锁定)AGC增益控制调整 ~1ms时间同步 ~2ms 帧边界对齐Paging 解码 ~2ms 1个子帧RF 切换回主卡 ~2ms (PLL 重锁定)AGC 恢复 ~1ms安全裕量 ~5ms总计 ~15-20ms最优情况实际 ~30-50ms含调度开销4. Tune-Away对业务的影响4.1 数据业务影响# 影响量化分析DRX_CYCLE1280# ms (1.28s)TUNE_AWAY_DURATION40# ms平均DATA_RATE_PEAK150# Mbps (LTE Cat 12)# 吞吐量损失百分比throughput_lossTUNE_AWAY_DURATION/DRX_CYCLE*100# 40 / 1280 * 100 3.1%# 每次 tune-away 丢失的数据量data_loss_per_gapDATA_RATE_PEAK*TUNE_AWAY_DURATION/1000# 150 * 40 / 1000 6 Mbit 0.75 MB# 额外影响TCP 重传# tune-away 导致 RLC 层 NACK触发 HARQ 重传# 严重时导致 TCP 超时重传吞吐量可能下降 10-20%4.2 VoLTE通话影响VoLTE 帧间隔20msAMR-wB 如果 tune-away gap 覆盖了 VoLTE 上行/下行帧 丢帧 → 语音质量下降MOS 评分降低 连续丢帧 → 可听见的卡顿 极端情况 → 通话中断 解决方案 - 通话中禁止tune-away (blanking) - 利用VoLTE静音期做tune-awayDTX - DSDA方案根本消除冲突4.3 实测数据对比场景DSDS (tune-away on)DSDS (tune-away off)DSDA下载速率135 Mbps148 Mbps150 Mbps上传速率45 Mbps49 Mbps50 MbpsPing延迟35ms (偶尔 spike)28ms25ms副卡来电检测延迟2s×(无法接收)×(实时)VoLTE MOS3.84.24.25. 高通的优化方案5.1 Smart Tune-Away高通在新平台上引入了Smart Tune-Away算法 有以下特性预测性调度:根据主卡的 HARQ 时序在 HARQ 间隙安排 tune-away避免数据丢失。快速切换:利用预配置的 RF 参数减少 PLL 锁定时间 从 ~2ms 降低到 1ms。自适应 Paging 周期:与网络协商更长的 eDRX 周期减少 tune-away 频率。部分监听:先快速检查 paging indicator仅在有寻呼时才做完整解码。5.2 DR-DSDS (Data Resume DSDS)传统 DSDS: SIM1 通话开始 → SIM2 数据完全断开 → 通话结束 → 重建数据连接 数据中断可能持续数分钟 DR-DSDS: SIM1 通话开始 → SIM2 数据暂停保持PDP Context → 通话结束 → 数据立即恢复无需重拨号 数据恢复时间1s5.3 从 DSDS 到 DSDA 的演进检测到双卡同时需要业务时动态切换到DSDA通过 Dynamic Spectrum Sharing (DSS) 减少频率冲突┌─────────── DSDS ──────────┐ ┌─────────── DSDA ──────────┐ │ │ │ │ │ SIM1 ──┐ │ │ SIM1 ──► RF Chain 0 │ │ ├── 共享RF ──► ANT│ │ │ │ SIM2 ──┘ │ │ SIM2 ──► RF Chain 1 │ │ │ │ │ │ 优点: 成本低、功耗低 │ │ 优点: 无 tune-away、 │ │ 缺点: tune-away 影响 │ │ 完全独立 │ │ │ │ 缺点: 成本高、功耗高 │ └────────────────────────────┘ └────────────────────────────┘ 混合方案 (Snapdragon 8 Gen 2): - 默认 DSDS 模式 (省电) - 检测到双卡同时需要业务时动态切换到 DSDA - 通过 Dynamic Spectrum Sharing (DSS) 减少频率冲突6. 实践指南6.1 Tune-Away 参数配置# 查看当前 tune-away 配置需 EFS/NV 访问权限# NV 配置项Tune-Away Controladb shellcat[Modem NV配置项]# 通过 QXDM 修改开发/测试用# EFS: [Modem NV配置项]# 值0禁用1启用2Smart模式# 通过 persist property 控制部分平台支持# adb shell setprop [厂商私有属性] 16.2 QXDM 日志分析# 关键日志过滤器RF Resource Manager State 相关日志分类具体 log code 见高通 QXDM 文档需 NDA RF Tune-Away Event 相关日志分类具体 log code 见高通 QXDM 文档需 NDAQ LTE NAS EMM State观察副卡注册相关日志分类具体 log code 见高通 QXDM 文档需 NDA LTE RRC OTA观察 paging相关日志分类具体 log code 见高通 QXDM 文档需 NDAQ LTE MAC RACH Attempttune-away 后重建相关日志分类具体 log code 见高通 QXDM 文档需 NDA# 典型 Tune-Away 日志序列[T1]RF_MGR: Tune-away request from Sub1(Paging)[T1]RF_MGR: Current Sub0 activity: DATA_TRANSFER[T1]RF_MGR: Priority check: ALLOW(Sub0 idle HARQ)[T2]RF_MGR: Executing tune-away(Sub0 → Sub1)[T2]RF_DRV: PLL relock tofreq1850MHz(Band3)[T3]L1_NB: Paging decode complete(no_paging)[T3]RF_MGR: Tune-back(Sub1 → Sub0)[T4]RF_DRV: PLL relock tofreq2630MHz(Band7)[T4]RF_MGR: Tune-away complete,duration28ms6.3 性能测试方法# 测试 tune-away 对下载速率的影响# 方法对比 tune-away 开/关的 iperf 测试# Step 1: 启用 tune-away (正常 DSDS 模式)adb shell setprop[厂商私有属性]1adb shell am broadcast-acom.qualcomm.action.MODEM_RESTART# Step 2: 运行 iperf 测试iperf3-cserver_ip-t60-i1result_ta_on.txt# Step 3: 禁用 tune-away (仅测试用, 副卡会无法接来电)adb shell setprop[厂商私有属性]0adb shell am broadcast-acom.qualcomm.action.MODEM_RESTART# Step 4: 再次运行 iperf 测试iperf3-cserver_ip-t60-i1result_ta_off.txt# Step 5: 对比吞吐量和延迟 jitter6.4 开发者注意事项// App 开发者应考虑的 DSDS tune-away 影响// 1. 网络请求要有重试机制OkHttpClientclientnewOkHttpClient.Builder().retryOnConnectionFailure(true).connectTimeout(15,TimeUnit.SECONDS)// 比单卡场景多留裕量.build();// 2. 实时应用(VoIP/游戏)需要 jitter buffer// tune-away 导致周期性 ~50ms 延迟抖动JitterBufferbuffernewJitterBuffer(minDelay:60,// ms, 大于 tune-away 时长maxDelay:200);// 3. 大文件下载使用断点续传// tune-away 期间 TCP 可能超时, 需要 Range 请求支持6.5 Antenna Sharing 与 MIMO 对 DSDS 的影响6.5.1 天线共享架构现代智能手机通常配备4-8根天线含蜂窝、WiFi、GPS等DSDS场景下蜂窝天线的分配策略直接影响性能┌──────────────────────────────────────────────────────────────┐ │ 典型旗舰机天线布局 (8 天线) │ │ │ │ ┌──────┐ ┌──────┐ │ │ │ANT 1 │ ← 蜂窝主集 (Primary Rx/Tx) │ANT 5 │ WiFi│ │ │(顶部) │ │(侧面) │ │ │ └──────┘ └──────┘ │ │ ┌──────┐ ┌──────┐ │ │ │ANT 2 │ ← 蜂窝分集 (Diversity Rx) │ANT 6 │ WiFi│ │ │(顶部) │ │(底部) │ │ │ └──────┘ └──────┘ │ │ ┌──────┐ ┌──────┐ │ │ │ANT 3 │ ← 蜂窝 MIMO/CA (Rx) │ANT 7 │ GPS │ │ │(中部) │ │(顶部) │ │ │ └──────┘ └──────┘ │ │ ┌──────┐ ┌──────┐ │ │ │ANT 4 │ ← 蜂窝辅助 (Aux Tx/Rx) │ANT 8 │ NFC │ │ │(底部) │ │(背部) │ │ │ └──────┘ └──────┘ │ │ │ │ DSDS 天线分配策略: │ │ ├── 单卡模式: ANT1(主Tx/Rx) ANT2(分集) ANT3(MIMO) │ │ │ 4x4 MIMO 可用 │ │ ├── DSDS 正常: ANT1ANT2(主卡) ANT4(副卡Paging) │ │ │ 主卡降为 2x2 MIMO │ │ └── DSDS Tune-Away: ANT4 临时切到副卡频点 │ │ 主卡可能进一步降为 1x1 │ └──────────────────────────────────────────────────────────────┘6.5.2 MIMO 降级DSDS模式下由于天线资源需要在两张卡之间分配主卡的MIMO层数会受到限制场景MIMO配置峰值速率理论实际影响无DSDS4×4600 Mbps-DSDS激活2×2300 Mbps50%Tune-Away1×1150 Mbps75%降级时机DSDS 激活时4×4 → 2×2 永久性降级Tune-Away 期间2×2 → 1×1 临时性副卡 RACH/TAU可能额外占用一根天线Modem侧的MIMO模式切换# QDM 观察 MIMO 层数变化# Filter: [Modem日志分类] (LTE ML1 PDSCH Stats)# 关注字段num_layers (1/2/4)# 当 tune-away 发生时典型日志[T1]ML1: MIMO config changed:2-layer →1-layer(reason: TA_START)[T2]ML1: MIMO config changed:1-layer →2-layer(reason: TA_END)6.5.3 Carrier Aggregation (CA) 与 Tune-Away 的交互┌─────────────────────────────────────────────────────────────┐ │ CA Tune-Away 交互 │ │ │ │ 正常 3CC CA 状态: │ │ PCC (主载波): Band 3, 20MHz ──┐ │ │ SCC1 (辅载波1): Band 1, 20MHz ──├── 总带宽 60MHz │ │ SCC2 (辅载波2): Band 7, 20MHz ──┘ │ │ │ │ Tune-Away 触发时的处理: │ │ Step 1: 去激活所有 SCC (辅载波) │ │ → Modem 发送 SCC Deactivation │ │ → 释放 SCC 对应的 RF 资源 │ │ Step 2: 仅保持 PCC 基础连接 (或暂停) │ │ Step 3: RF 切换到副卡频点 (执行 paging) │ │ Step 4: RF 切回主卡 PCC 频点 │ │ Step 5: 重新激活 SCC (需要网络侧配合) │ │ → SCC Activation 信令交互 │ │ → SCC re-sync (时间同步) │ │ │ │ SCC Deactivation Timer: │ │ ├── 如果 tune-away 很短 (5ms): 不去激活 SCC │ │ ├── 如果 tune-away 中等 (5-20ms): 去激活但保持配置 │ │ └── 如果 tune-away 较长 (20ms): 完全释放 SCC │ │ │ │ 恢复时间: │ │ ├── SCC 未释放: ~2ms (立即恢复) │ │ ├── SCC 去激活: ~10-20ms (快速重激活) │ │ └── SCC 完全释放: ~50-100ms (需要重新配置) │ └─────────────────────────────────────────────────────────────┘当主卡使用CA载波聚合时tune-away的处理更加复杂如果tune-away很短5ms不去激活SCC如果tune-away中等5-20ms去激活但保持配置如果tune-away较长20ms完全释放SCCCA与Tune-Away的性能影响量化# CA Tune-Away吞吐量影响计算# 3CC CA峰值600Mbps# Tune-Away期间仅PCC可用 200 Mbps或0取决于策略# SCC恢复时间~50msDRX_CYCLE1280# msTA_DURATION40# ms含SCC去激活/重激活SCC_RECOVERY50# ms# 有效数据传输时间比例effective_ratio(DRX_CYCLE-TA_DURATION-SCC_RECOVERY)/DRX_CYCLE# (1280 - 40 - 50) / 1280 93%# 但SCC恢复期间只有PCC速率# 实际平均吞吐 600*0.93 200*0.04 ≈ 566 Mbps# 相比无tune-away的600Mbps损失约 5-7%6.5.4 上行Tx Switching与SAR双卡场景下发射Tx天线的切换策略和SAR限制需要特别处理Tx Switching与SAR在DSDS中的挑战 Tx天线切换 - 主卡Tx通常使用主天线ANT1/ANT4 - 副卡在tune-away期间如果需要上行发送 如TAU、RACH响应需要切换Tx到副卡频段 - Tx切换比Rx切换更耗时PA settling time - 快速Tx切换可能产生杂散辐射spurious emission SARSpecific Absorption Rate限制 - 法规要求SAR不超过限值如1.6W/kg - DSDS下两张卡可能同时需要Tx - 主卡数据上行 副卡TAU响应 - 此时总发射功率可能超SAR - 解决Modem统一管理Tx功率预算 - 当两卡同时Tx时主动降低功率Power Backoff - 典型退避3-6dB取决于天线间距和频段组合 - 影响上行速率和覆盖范围降低 传感器联动 - 距离传感器检测手机靠近头部 → 降低发射功率 - 握持传感器检测手握位置 → 选择远离手的天线 - DSDS下联动逻辑更复杂两卡可能需要不同天线# 查看 SAR 相关状态adb shell dumpsys telephony.registry|grep-isar# QXDM 观察 Tx Power Backoff# Filter: [Modem日志分类] (LTE ML1 Tx Power)# 关注: tx_power, backoff_db, sar_state# 查看天线切换事件adb logcat-bradio|grep-iEantenna|switch|ant_sell7. 总结本文深入分析了DSDS最核心的技术难题——RF资源调度与Tune-Away机制Tune-Away是DSDS共享射频的必然产物调度策略需要平衡主卡业务体验和副卡可达性高通通过Smart Tune-Away、DR-DSDS等技术持续优化最终演进方向是DSDA独立射频链路下一篇预告双栈QMI连接下的SIM卡切换与Modem资源冲突参考资料3GPP TS 36.304 - UE Procedures in Idle Mode (Paging/DRX)3GPP TS 38.304 - 5G NR UE Procedures in Idle Mode