首页 › ran › 5G PRACH随机接入功率控制拆解

5G PRACH 随机接入:前导码选择与功率攀升机制深度拆解

随机接入(Random Access, RACH)是 UE 从"射频可达"走向"信令可调度"的唯一入口——无论是初始注册、切换重建、波束恢复还是从 RRC_INACTIVE 唤醒,都必须先通过 PRACH(Physical Random Access Channel)完成上行同步与 C-RNTI 分配。它横跨 TS 38.300(Stage-2)、TS 38.321(MAC 层 Section 5.1)、TS 38.213(物理层控制 Section 8)和 TS 38.211(前导码序列 Section 6.3.2)四份规范,是 5G NG-RAN 中最典型的"跨层协同"机制。本文聚焦 TS 38.321 Section 5.1 的前导码选择分支(Group A/B、CFRA/CBRA)、TS 38.213 的开环功率攀升公式,以及 Rel-16 引入、Rel-17/18 持续增强的 2-step RACH(MsgA/MsgB)与回退机制,逐步拆解每条消息的 IE、寻址逻辑与故障定位思路。


一、为什么是"两条腿":4-step 与 2-step 的并存逻辑

在 LTE 时代 RACH 只有经典四步流程。5G NR 的场景分化(URLLC 超低时延、海量连接、卫星超大时延)让单一流程无法兼顾"覆盖鲁棒性"与"接入时延"两个相互冲突的目标。3GPP 在 Rel-16 TS 38.321 中新增 2-step RACH(MsgA/MsgB),并将两者的选择权交给 UE 基于测量门限 rsrp-ThresholdMsgA 自主决策——覆盖好、RSRP 高时走 2-step(一次往返);覆盖差、RSRP 低时回退到 4-step(功率攀升更充分、Msg3 有重传保护)。这种"双轨制"的设计哲学贯穿整个 PRACH 流程。

四种基本接入场景归类

按 TS 38.321 5.1.1 的定义,共 9 类事件会触发 RACH:

序号 触发场景 默认接入类型 典型 RRC 参数来源
1 初始 RRC 连接建立(RRC_IDLE→CONNECTED) CBRA RACH-ConfigCommon (SIB1)
2 RRC 连接重建 CBRA RACH-ConfigCommon
3 切换(HO)/ reconfigurationWithSync CFRA 或 CBRA rach-ConfigDedicated
4 UL/DL 数据到达但上行失步 CBRA RACH-ConfigCommon
5 从 RRC_INACTIVE 转换 CBRA RACH-ConfigCommon
6 添加 SCell 建立时间对齐 CFRA rach-ConfigDedicated
7 按需请求 SI(on-demand SIB) CBRA RACH-ConfigCommon
8 波束失败恢复(BFR) CFRA 优先 BeamFailureRecoveryConfig
9 SUL(补充上行)载波选择 CBRA rsrp-ThresholdSSB-SUL

二、4-step RACH 完整信令时序

经典竞争式四步流程的信令时序如下,其中 Msg1/Msg3 为上行,Msg2/Msg4 为下行:

sequenceDiagram
    participant UE
    participant gNB
    Note over UE: 选择 SSB + 前导码(Group A/B) + PRACH occasion
    UE->>gNB: Msg1: PRACH Preamble (RAPID)
    Note over gNB: 在 RA-search space 用 RA-RNTI 加扰 PDCCH
    gNB->>UE: Msg2: RAR (PDCCH+PDSCH)<br/>含 TA, UL Grant, TC-RNTI, BI
    Note over UE: 用 TC-RNTI 加扰发送 Msg3
    UE->>gNB: Msg3: 调度传输 (RRCSetupRequest / RRCReestablishmentRequest 等)
    Note over gNB: 竞争解决, 为胜出 UE 分配/确认 C-RNTI
    gNB->>UE: Msg4: Contention Resolution Identity + C-RNTI
    Note over UE: 校验 Msg3 镜像一致 → 接入成功, 释放临时 RA-RNTI

逐步 IE 解析

Msg1(PRACH Preamble) 在 MAC 层不可见,是一个物理层 Zadoff-Chu 序列。UE 在所选 PRACH Occasion(时频资源)上发送,gNB 据此计算定时提前量(TA)。前导码身份由 6-bit RAPID(0–63)标识。

Msg2(Random Access Response, RAR) 由 MAC 层的 MAC RAR 子头承载,关键 IE:

Msg3 由 UE 用 TC-RNTI 加扰发送,承载真正的 NAS/RRC 初始消息,例如: - 初始接入:RRCSetupRequest(含 5G-S-TMSI 或 random 39-bit ID) - 重建:RRCReestablishmentRequest(含 C-RNTI、PCI、shortMAC-I) - 切换:RRCReconfigurationComplete

Msg4 携带 Contention Resolution Identity(即 Msg3 中 UE 自己填的 ID 镜像),仅竞争胜出的那个 UE 镜像匹配成功,将其 TC-RNTI 升格为正式 C-RNTI;其余碰撞 UE 检测到不匹配,则递增功率攀升计数器重新发 Msg1。


三、前导码选择决策:CFRA/CBRA 与 Group A/B

前导码选择是 PRACH 的核心算法(TS 38.321 5.1.1),它决定 UE 用哪个 RAPID、属于哪个分组。决策树如下:

flowchart TD
    A[RACH 触发] --> B{是否配置了<br/>dedicated preamble?}
    B -- 是: HO/BFR/SCell --> C[CFRA 竞争无关<br/>使用指定 ra-PreambleIndex]
    B -- 否 --> D[CBRA 竞争式<br/>在可用前导码池中随机选]
    D --> E{Msg3 size > messageSizeGroupA<br/>且路径损耗条件满足?}
    E -- 是 --> F[Group B<br/>长格式, 支持 LTE 类大 MSG3]
    E -- 否 --> G[Group A<br/>短格式, 小 MSG3/默认]
    C --> H[选 PRACH Occasion<br/>关联到 best SSB]
    F --> H
    G --> H
    H --> I[计算 PREAMBLE_RECEIVED_TARGET_POWER<br/>启动功率攀升]
    I --> J[Msg1 发送]

Group A 与 Group B 的选择条件(TS 38.321 5.1.1)

UE 在可用前导码中选 Group B 需同时满足:

  1. MSG3 size > messageSizeGroupA(典型 56 bit,由 SIB1 配置);
  2. 路径损耗约束:P_CMAX - PL ≥ preambleReceivedTargetPower + ΔPreamble + messagePowerOffsetGroupB,即 UE 的最大发射功率足以支撑更激进的目标接收功率。

否则选 Group A。设计意图:Group B 的 preamble 携带的信息量更大(更长的 CP/序列,支持大 Msg3 直接走 64QAM),让"覆盖好、有大上行数据"的 UE 一次 Msg3 就能传完,减少来回;而覆盖边缘的 UE 即便选了 Group B 也会因功率不足失败,故用约束条件 2 把它们排除,回到更鲁棒的 Group A。

CFRA 与 CBRA 对比

维度 CFRA(Contention-Free) CBRA(Contention-Based)
前导码来源 gNB 专用分配(ra-PreambleIndex) 从公共池随机选
是否竞争 否,独占 preamble 是,可能碰撞
适用场景 HO、BFR、SCell 添加 初始接入、重建、SI 请求
配置来源 rach-ConfigDedicated.cfra RACH-ConfigCommon
时延 低(无 Msg4 竞争解决) 高(需 Msg4)

四、PRACH 功率攀升与退避机制

PRACH 采用开环功率控制 + 功率攀升(Power Ramping),而非闭环 TPC。UE 不知道 gNB 实际收到的功率,只能从"是否在响应窗口收到 Msg2/MsgB"来推断成败。失败则提升功率重发,直到达到 preambleTransMax 次上限后上报 MAC 给 RRC,触发无线链路问题。

核心公式(TS 38.213)

前导码发射功率:

$$P_{\text{PRACH},b,f,c}(i) = \min{ P_{\text{CMAX},f,c}(i),\ P_{\text{PRACH,target}} + PL_{b,f,c} }$$

其中目标接收功率随尝试次数递增:

$$P_{\text{PRACH,target}} = \text{preambleReceivedTargetPower} + \Delta_{\text{PREAMBLE}} + (\text{PREAMBLE_POWER_RAMPING_COUNTER} - 1) \times \text{powerRampingStep}$$

功率控制状态转换

stateDiagram-v2
    [*] --> Idle
    Idle --> PwrCalc: RACH 触发<br/>初始化 counter=1
    PwrCalc --> Msg1Tx: 计算并按 P_PRACH 发送
    Msg1Tx --> WaitRAR: 启动 ra-ResponseWindow
    WaitRAR --> Success: 收到含本 RAPID 的 Msg2
    WaitRAR --> Backoff: 窗口超时未收到
    Backoff --> PwrCalc: counter++<br/>按 BI 随机退避<br/>power += powerRampingStep
    PwrCalc --> Fail: counter > preambleTransMax
    Success --> [*]: TC-RNTI 升格为 C-RNTI
    Fail --> [*]: 上报 MAC RA problem → RLF

关键细节:退避(Backoff)不会重置功率攀升计数器,功率会跨退避持续累加;但若前导码因被 gNB 主动拒绝(如小区禁止接入)而失败,纯粹靠功率攀升无济于事——这是排错时的重要判别点。

关键 RRC 参数一览(RACH-ConfigGeneric / Common)

参数 含义 典型取值
preambleReceivedTargetPower gNB 期望接收功率基线 −90 dBm
powerRampingStep 功率攀升步进 4 dB
preambleTransMax 最大重传次数 n10(10 次)
ra-ResponseWindow Msg2 等待窗口 10 slots
messagePowerOffsetGroupB Group B 功率约束偏移 0 dB
messageSizeGroupA Group A/B 切换 MSG3 阈值 56 bits
msgB-ResponseWindow(2-step) MsgB 等待窗口 40 slots
rsrp-ThresholdMsgA 2-step/4-step 选择门限 −110 dBm

五、2-step RACH(MsgA/MsgB)与回退

2-step RACH 把 Msg1+Msg3 合并为 MsgA,把 Msg2+Msg4 合并为 MsgB,将往返次数从 2 次降为 1 次。MsgA 在一个 MsgA 传输机会内同时发送 PRACH preamble 和一个 PUSCH 有效载荷(携带 RRC 消息),gNB 一次性回响应。

sequenceDiagram
    participant UE
    participant gNB
    Note over UE: RSRP ≥ rsrp-ThresholdMsgA → 选 2-stepRA
    UE->>gNB: MsgA: Preamble + PUSCH payload<br/>(RRCSetupRequest 等一次发完)
    Note over gNB: 用 MSGB-RNTI 寻址响应
    alt 正确接收 & 资源充足
        gNB->>UE: MsgB: successRAR<br/>(TA, C-RNTI, Contention Resolution)
        Note over UE: 接入成功
    else preamble 收到但 PUSCH 解析失败
        gNB->>UE: MsgB: fallbackRAR<br/>(含 UL grant)
        Note over UE: 回退到 4-step 的 Msg3
        UE->>gNB: Msg3 (用 MsgA 的 preamble 身份)
        gNB->>UE: Msg4: 竞争解决
    else 完全未收到 MsgB
        Note over UE: 超出 msgB-ResponseWindow<br/>counter++ 重发 MsgA 或回退 4-step
    end

MsgB 的两种响应子类型

  1. successRAR:preamble 与 PUSCH 均成功,直接给出 UE Contention Resolution Identity、TA、C-RNTI 或 TC-RNTI,流程结束。
  2. fallbackRAR:preamble 收到但 PUSCH 部分失败。gNB 通过 fallbackRAR 给出上行授权,UE 用 MsgA 中相同的 preamble 身份发送 Msg3(即回退到 4-step 的第 3、4 步),避免从头竞争。

2-step vs 4-step 全面对比

维度 4-step RACH 2-step RACH
消息数 4(Msg1–4) 2(MsgA/B)
往返次数 2 RTT 1 RTT
寻址 RNTI RA-RNTI、TC-RNTI、C-RNTI MSGB-RNTI、TC-RNTI、C-RNTI
上行载荷 Msg3 才传 MsgA 即传(preamble+PUSCH)
控制面时延 高 低,适合 URLLC
资源开销 小(仅 preamble) 大(含 PUSCH)
覆盖边缘表现 鲁棒(功率攀升充分) 较弱,倾向回退
选择依据 RSRP < 阈值 RSRP ≥ rsrp-ThresholdMsgA
失败处理 重发 Msg1 回退 fallbackRAR→Msg3 或重发 MsgA
适用阶段 所有阶段 RRC_CONNECTED 优先(Rel-17 增强)

设计意图:2-step 用"多发一段 PUSCH"换取"省一个往返",本质是用频谱资源换时延;但在覆盖边缘,PUSCH 段易失败而 preamble 段成功,此时 fallbackRAR 让流程平滑降级为 4-step,兼顾了效率与鲁棒。


六、RNTI 寻址:让 gNB 找到对的 UE

PRACH 流程中涉及三类 RNTI 的接力,理解其计算是抓包识别的基础:

RNTI 类型 用途 计算方式
RA-RNTI 加扰 Msg2 的 PDCCH 1 + s_id + 14·t_id + 14·80·f_id + 14·80·8·ul_carrier_id
MSGB-RNTI 加扰 MsgB 的 PDCCH(2-step) 同上公式,基于 MsgA 的 RO 位置
TC-RNTI 临时身份,加扰 Msg3/Msg4 gNB 在 RAR/MsgB 中动态分配
C-RNTI 竞争解决后正式身份 现有连接态 UE 沿用;新接入由 TC-RNTI 升格

RA-RNTI 公式将"时-频-载波"三维 RO 位置压缩为一个 16-bit 值,使 gNB 能在响应窗口内以极低开销完成寻址——这是 PRACH 设计中最具工程美感的细节之一。


八、机制设计意图总结

  1. "按需选择"优于"统一流程":2-step/4-step 双轨 + RSRP 门限,让 UE 根据实时覆盖自主选型,避免一刀切。
  2. RA-RNTI 隐式寻址:用资源位置编码身份,省去额外 ID 字段,是高并发接入的关键。
  3. 功率开环 + 指数级攀升:在未知信道状态下用最简策略逼近可接收功率,配合 BI 退避避免拥塞雪崩。
  4. Group A/B 分层:以极小的 preamble 分组代价,让大业务量 UE 提前获得资源倾斜。
  5. fallbackRAR 平滑降级:保证 2-step 失败时无缝衔接 4-step,避免推倒重来。

常见问题

Q1: 2-step RACH 和 4-step RACH 的本质区别是什么? A: 本质是往返次数(RTT)与上行载荷时机的差异。4-step 需两次往返(Msg1→Msg2 等授权,Msg3→Msg4 等竞争解决);2-step 将 preamble 与 PUSCH 有效载荷合并为 MsgA 一次发送,gNB 一次响应 MsgB。代价是 2-step 的 MsgA 占用更多上行资源,且覆盖边缘易回退。

Q2: CFRA 和 CBRA 在切换中如何选择? A: 若目标 gNB 在 HO 命令(reconfigurationWithSync)中给 UE 分配了 rach-ConfigDedicated.cfra(含专用 ra-PreambleIndex 和专用 RO),UE 走 CFRA,无竞争、时延低;否则走 CBRA,从公共池随机选 preamble,可能碰撞。BFR 场景同理优先 CFRA。

Q3: 功率攀升计数器何时重置? A: 一旦 UE 在响应窗口内成功收到含本 RAPID 的 Msg2(4-step)或 successRAR(2-step),即认为成功,计数器失效;每次 Msg1/MsgA 重传时计数器 +1,达到 preambleTransMax 上限则向高层上报 RA problem。退避(BI)不重置计数器,功率跨退避持续累加。

Q4: RA-RNTI 为什么能唯一标识 UE? A: 它编码了 UE 发送 Msg1 的 PRACH Occasion 的精确时频位置(符号、时隙、频域索引)和上行载波。同一 RO 上不同 UE 通过 RAPID 区分;不同 RO 的 UE 由 RA-RNTI 自然区分。因此 gNB 在响应窗口用 RA-RNTI 寻址即可定位到对应的 RO 群体。

Q5: RSRP 测量如何影响 PRACH 整个流程? A: 三处关键影响——①决定走 2-step 还是 4-step(rsrp-ThresholdMsgA);②决定选 NUL 还是 SUL 载波(rsrp-ThresholdSSB-SUL);③决定 Group A/B(通过路径损耗 PL 约束,而 PL 由参考功率减去测得 RSRP 得出)。RSRP 估算偏差会级联放大到前导码功率与接入成功率。


参考来源

  1. 3GPP TS 38.321 V18.x — NR MAC protocol specification, Section 5.1 Random Access procedure — 前导码选择、MsgA/MsgB、计数器与回退机制的权威定义
  2. ETSI TS 138 321 V17.0.0 (PDF) — 确认 msgA-PreamblePowerRampingStepAlpha 与 2-step 功率攀升参数映射
  3. 3GPP TS 38.213 V18.x — NR Physical layer procedures for control, Section 8 PRACH transmission & power control — PRACH 发射功率公式、RA-RNTI/MSGB-RNTI 计算、RO 到 SSB 映射
  4. ShareTechnote — 5G RACH & Power Control — 2-step RACH MsgA/MsgB 流程图与功率攀升计数器图解
  5. CafeTele — 5G NR Random Access Procedure (PRACH, Msg1–Msg4, 2-Step RACH) — 4-step/2-step 全流程对比与优化参数
  6. 3GLTEInfo — 5G NR MAC Random Access (TS 38.321 Rel-18) — Release 18 下 CFRA/CBRA、Group A/B 选择条件与 RRC 参数表

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入