Target Wake Time(TWT)详解

TWT(Target Wake Time,目标唤醒时间)是 WiFi 6 引入的革命性省电机制。它允许 AP 和客户端协商精确的唤醒时间表,使客户端在不需要通信时进入深度睡眠状态。

TWT vs 传统省电模式

传统 PS-Poll / uAPSD

STA 必须定期醒来检查 Beacon:

Beacon周期 (通常100ms):
│👁️😴😴😴😴😴😴😴😴😴│👁️😴😴😴😴😴😴😴😴😴│👁️...
↑                    ↑                    ↑
检查 TIM           检查 TIM            检查 TIM

问题:
├── 频繁唤醒 → 射频无法深度睡眠
├── 所有 STA 同时醒来 → 信道竞争加剧
└── 无数据时仍然浪费电量

TWT 模式

协商好的唤醒时间表:

STA_A: │😴😴😴😴😴│👁️📥│😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴│👁️📥│
         T=0              T=1000ms                    T=2000ms

STA_B: │😴😴😴😴😴😴😴😴😴😴😴😴😴│👁️📥│😴😴😴😴😴😴😴😴│👁️📥│
                              T=1500ms              T=3000ms

STA_C: │😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴😴│👁️📥│...
                                         T=2500ms

优势:
├── 唤醒时间错开 → 无竞争
├── 深度睡眠时间长 → 省电显著
└── 按需唤醒 → 无数据时不浪费

TWT 协商流程

TWT Setup Exchange

Setup Request (STA → AP):
┌─────────────────────────────────────┐
│ TWT Info Field:                     │
│ ├─ TWT Type: Individual/Broadcast   │
│ ├─ Request Type: Setup              │
│ ├─ TWT Wake Interval: 1000 ms       │
│ ├─ TWT Window Duration: 50 ms       │
│ ├─ TWT Start Time: Now + 500 ms     │
│ └─ TWT Desired Remain Awake: 0      │
└─────────────────────────────────────┘

Setup Response (AP → STA):
┌─────────────────────────────────────┐
│ TWT Info Field:                     │
│ ├─ Request Type: Response           │
│ ├─ TWT Wake Interval: 1000 ms ✓     │
│ ├─ TWT Window Duration: 50 ms ✓     │
│ ├─ TWT Start Time: Now + 500 ms ✓   │
│ └─ Status: Success                  │
└─────────────────────────────────────┘

→ TWT Agreement established!

TWT Operation

Service Period (SP):
┌──────────────────────────────────────────┐
│          TWT Wake Interval               │
│  ┌──────────────────────────────────┐    │
│  │     Deep Sleep Period            │    │
│  └──────────────────────────────────┘    │
│  ┌───────┐                              │
│  │  SP   │ ← STA wakes up, TX/RX data  │
│  └───────┘                              │
│     ↑                                    │
│  TWT Start Time                         │
└──────────────────────────────────────────┘

SP 内操作:
1. STA 醒来,射频启动(~5ms)
2. TX/RX 数据帧(使用标准 CSMA/CA)
3. SP 结束 → STA 回到深度睡眠

TWT 类型详解

Individual TWT(个人 TWT)

特点:
├── AP 与单个 STA 私有的协商
├── 精确的唤醒时间控制
├── 每个 STA 可以有不同的时间表
└── 适合关键任务 IoT 设备

示例:
STA_A: 每 1000ms 醒来一次(传感器上报)
STA_B: 每 5000ms 醒来一次(状态检查)
STA_C: 每 60000ms 醒来一次(心跳)

Broadcast TWT(广播 TWT)

特点:
├── AP 在 Beacon/Probe Response 中广播 TWT 时间表
├── 多个 STA 共享相同的唤醒时间
├── 无需单独协商 → 减少信令开销
└── 适合大量同类 IoT 设备

Beacon 中的 Broadcast TWT IE:
┌─────────────────────────────────────┐
│ Element ID: 87 (TWT)               │
│ Length: variable                    │
│ Partial AID: Group ID              │
│ TWT Temporal Information:          │
│ ├─ TWT Wake Interval: 1000 ms      │
│ └─ TWT Start Time: ...             │
└─────────────────────────────────────┘

所有属于该 Group 的 STA 在同一时间醒来。

Spontaneous TWT(自发 TWT)

特点:
├── STA 在数据帧中附带 TWT Request
├── 无需预先协商 → 即时生效
└── 适合突发数据传输场景

示例:
STA 发送 QoS Data + TWT Request in QoS Control field
→ AP 回复确认 → 临时 TWT SP 建立

TWT 参数详解

参数

范围

说明

TWT Wake Interval

128 μs ~ 2^32 ms

两次唤醒之间的间隔

TWT Window Duration

0 ~ 2^16 TU

服务期持续时间

TWT Start Time

64-bit timestamp

首次唤醒时间

Maximum Trigger Time

variable

AP 最晚触发时间

Minimum Trigger Time

variable

AP 最早触发时间

TWT 省电效果量化

IoT 传感器场景

设备: 温度传感器,每 5 分钟上报一次数据

传统 PS-Poll:
├── Beacon 监听: 每 100ms 醒来 ~2ms → 平均功耗 2%
├── 射频待机: 98% 时间在低功耗监听模式
└── 电池寿命: ~30 天

TWT (Individual):
├── 深度睡眠: 299.95 分钟完全关闭射频
├── 唤醒传输: 0.05 分钟 (~3s) TX/RX
└── 电池寿命: ~6 个月(提升 12x)

TWT (Broadcast, 批量上报):
├── 多个传感器在同一 TWT SP 内上报
├── AP 批量处理 → 减少信令开销
└── 电池寿命: ~12 个月

AR/VR 头显场景

传统模式:
├── 持续连接,射频始终活跃
├── 平均功耗: ~2W(WiFi 部分)
└── 续航: ~2 小时

TWT + 帧率同步:
├── 视频帧间隔内进入微睡眠(90Hz → 每 11ms 一帧)
├── TWT SP 对齐帧发送时间
├── WiFi 功耗降低: ~30%
└── 续航提升: ~2.5 小时

TWT 部署建议

场景

TWT 类型

Wake Interval

Window Duration

IoT 传感器(低频)

Individual

60s - 300s

100ms

IoT 传感器(高频)

Broadcast

1s - 10s

50ms

智能家居设备

Individual

10s - 60s

200ms

AR/VR 头显

Spontaneous

N/A (frame-sync)

动态

手机(待机)

Broadcast

1s - 5s

100ms