一部手机如何同时"开多条车道"飞速下载?答案藏在一个看似简单却暗藏玄机的技术中——载波聚合。
想象你开车上高速,发现所有车都挤在一条车道上,而旁边好几条车道空空荡荡。你心想:如果能把这几条车道合并,不就畅通了吗?
这就是载波聚合(Carrier Aggregation, CA)的核心思想。
在现实中,运营商手中的频谱资源往往是碎片化的:
碎片化的频谱就像被分割的高速公路——每段路都很窄,车流无法汇聚。载波聚合的使命就是把这些碎片粘合成一条"虚拟宽带"。
graph LR
subgraph 无CA
A1[700MHz<br/>10MHz] --- A2[2.1GHz<br/>20MHz]
A2 --- A3[3.5GHz<br/>100MHz]
end
subgraph 有CA
B1[700MHz<br/>10MHz] === B2[2.1GHz<br/>20MHz] === B3[3.5GHz<br/>100MHz]
B1 -.->|聚合| B4[总带宽: 130MHz<br/>峰值速率大幅提升]
end
style B4 fill:#4CAF50,color:#fff
关键数据对比:
| 指标 | 4G LTE-CA | 5G NR-CA |
|---|---|---|
| 最大聚合载波数 | 5(后期扩展至32) | 16 |
| 单载波最大带宽(FR1) | 20MHz | 100MHz |
| 理论最大聚合带宽 | 640MHz | 1600MHz(FR2) |
| 引入版本 | LTE Rel-10 | NR Rel-15 |
载波聚合按频谱位置关系分为三类,理解它们的区别是理解CA工程实践的基础。
最简单的形式——把同一频段内相邻的载波拼在一起。
频率轴: 3.5GHz频段
├────CC1────┤├────CC2────┤
100MHz 100MHz
├──────── 总带宽200MHz ────────┤
类比:把两个相邻的房间打通,变成一个大房间。施工最简单,一面墙敲掉就行。
特点:只需要一套射频收发机(RF chain),硬件成本最低。但前提是运营商在同一频段有连续的频谱,这在现实中越来越稀缺。
同一频段内,但载波之间有间隔。
频率轴: 3.5GHz频段
├──CC1──┤ gap ├──CC2──┤
100MHz 100MHz
类比:同一栋楼里的两个房间,但中间隔着别人的房间,不能直接打通。需要分别走线,但至少在同一栋楼里。
特点:仍只需一套射频前端(频率范围相同),但需要基带侧处理两个独立的频谱块,复杂度中等。
不同频段的载波聚合在一起,这是现网中最常见也最复杂的场景。
频率轴:
Band n28 (700MHz) ├──CC1──┤ 10MHz
↕ 聚合
Band n1 (2.1GHz) ├──CC2──┤ 20MHz
↕ 聚合
Band n78 (3.5GHz) ├──CC3──┤ 100MHz
类比:不同楼栋的房间合并——需要完全独立的管线(射频链路),协调成本最高,但能充分利用跨频段互补优势(低频覆盖 + 高频容量)。
特点:每个频段需要独立的射频链路,终端成本最高。但好处巨大——低频段提供覆盖,高频段提供容量,优势互补。
| 维度 | 频段内连续 | 频段内非连续 | 频段间 |
|---|---|---|---|
| 射频链路 | 共用1套 | 共用1套 | 每频段1套 |
| 终端复杂度 | 低 | 中 | 高 |
| 基带处理 | 简单(连续FFT) | 需多个频谱块处理 | 独立处理 |
| 现网使用频率 | 少(需连续频谱) | 中等 | 最常见 |
| 典型组合 | n78C(100+100MHz) | n78(2个不连续块) | n28+n78, n1+n78 |
载波聚合中,不是所有载波生而平等。
graph TB
subgraph UE服务小区集合
PCell["PCell(主小区)<br/>───────<br/>• RRC连接管理<br/>• NAS信令承载<br/>• 安全密钥输入<br/>• 切换触发<br/>• 始终激活"]
SCell1["SCell 1<br/>───────<br/>• 纯数据传输<br/>• 按需激活/去激活<br/>• 无独立RRC"]
SCell2["SCell 2<br/>───────<br/>• 纯数据传输<br/>• 按需激活/去激活<br/>• 无独立RRC"]
SCell3["SCell 3<br/>───────<br/>• 纯数据传输<br/>• 按需激活/去激活<br/>• 无独立RRC"]
end
PCell -->|RRC配置| SCell1
PCell -->|RRC配置| SCell2
PCell -->|RRC配置| SCell3
style PCell fill:#2196F3,color:#fff
style SCell1 fill:#FF9800,color:#fff
style SCell2 fill:#FF9800,color:#fff
style SCell3 fill:#FF9800,color:#fff
设计哲学:控制面与用户面分离的思路在载波层面的体现。
这种设计的好处是:
常见误解:有人认为PCell一定在低频段(覆盖好),SCell在高频段(容量大)。实际上PCell的频段选择取决于UE初始接入的小区,并不总是低频。但在工程优化中,确实倾向于把PCell配置在覆盖更好的频段。
SCell从"不存在"到"传数据",需要经历两个阶段:RRC配置和MAC激活。这像开一家分店——先办好营业执照(RRC配置),再正式开门营业(MAC激活)。
sequenceDiagram
participant UE as 终端
participant gNB as 基站
Note over UE,gNB: 阶段1: RRC配置("办执照")
gNB->>UE: RRC Reconfiguration<br/>(添加SCell配置信息)
Note right of UE: SCell状态:<br/>已配置但去激活<br/>知道SCell参数<br/>但不收发数据
Note over UE,gNB: 阶段2: MAC激活("开门营业")
gNB->>UE: MAC CE Activation<br/>(SCell激活命令)
Note right of UE: SCell状态:<br/>已激活<br/>开始CSI测量<br/>可以收发数据
loop 数据传输
UE->>gNB: CSI上报(CQI/PMI/RI)
gNB->>UE: DCI调度 → PDSCH数据
end
Note over UE,gNB: 阶段3: 去激活("关门省电")
alt 方式A: 定时器超时
Note right of UE: sCellDeactivationTimer<br/>超时 → 自动去激活
else 方式B: 显式命令
gNB->>UE: MAC CE Deactivation
end
这个设计体现了信令效率与省电的平衡:
| 方面 | RRC配置(慢路径) | MAC激活(快路径) |
|---|---|---|
| 信令类型 | RRC层(高层) | MAC CE(低层) |
| 延迟 | 较大(需要RRC过程) | 很小(MAC层即时生效) |
| 携带信息 | 完整参数(频点、带宽、PCI等) | 仅1字节(激活/去激活位图) |
| 目的 | "告诉终端有这个小区" | "现在开始用它传数据" |
实战意义:当业务量突增时,基站不需要每次都走完整的RRC流程,直接用轻量的MAC CE就能快速激活已配置的SCell,响应时间从百毫秒级降到几毫秒级。
每个激活的SCell都有一个计时器scellDeactivationTimer,典型取值为8ms到几十秒不等。如果在计时器超时前没有数据在该SCell上调度,SCell会自动去激活。
这就像办公室里的感应灯——有人活动时灯常亮,离开后延时关闭。对于终端来说,维持一个激活的SCell意味着持续做CSI测量和PDCCH监听,功耗不可忽视。
在CA中,数据调度有两种方式:
最直接的方式——每个载波上的PDCCH调度自己载波的PDSCH/PUSCH。
PCell: PDCCH(DCI) → PDSCH(数据)
SCell1: PDCCH(DCI) → PDSCH(数据)
SCell2: PDCCH(DCI) → PDSCH(数据)
每个载波独立运作,简单直接。
PCell的PDCCH通过CIF(载波指示字段)来调度SCell的数据。
PCell: PDCCH(DCI, CIF=0) → PCell的PDSCH
PDCCH(DCI, CIF=1) → SCell1的PDSCH
PDCCH(DCI, CIF=2) → SCell2的PDSCH
SCell1: 无PDCCH(被跨载波调度)
SCell2: 无PDCCH(被跨载波调度)
为什么要跨载波调度?
代价:PCell的PDCCH开销增大(需要承载所有载波的调度信息),而且引入了3bit的CIF字段增加了DCI长度。
graph TB
subgraph 自调度
P1[PCell PDCCH] -->|调度| PD1[PCell PDSCH]
S1[SCell1 PDCCH] -->|调度| SD1[SCell1 PDSCH]
S2[SCell2 PDCCH] -->|调度| SD2[SCell2 PDSCH]
end
subgraph 跨载波调度
P2[PCell PDCCH] -->|CIF=0| PD2[PCell PDSCH]
P2 -->|CIF=1| SD3[SCell1 PDSCH]
P2 -->|CIF=2| SD4[SCell2 PDSCH]
NS1[SCell1: 无PDCCH]
NS2[SCell2: 无PDCCH]
end
style P1 fill:#2196F3,color:#fff
style P2 fill:#2196F3,color:#fff
style S1 fill:#FF9800,color:#fff
style S2 fill:#FF9800,color:#fff
每个载波都有独立的HARQ实体,这意味着:
这就引出了一个实际问题:当聚合载波很多时,PUCCH需要承载大量ACK/NACK信息。5G通过HARQ-ACK码本(Codebook)机制来组织这些反馈:
| 码本类型 | 特点 | 适用场景 |
|---|---|---|
| Type 1(半静态) | 固定大小,按配置的时隙集合生成 | CA载波少,配置简单 |
| Type 2(动态) | 按实际调度动态生成,由DAI计数 | CA载波多,节省开销 |
| Type 3(单码本) | 一次性反馈所有未确认的HARQ | 特殊场景 |
工程关键点:HARQ-ACK码本的大小与聚合载波数量成正比。当CA配置了多个SCell时,码本可能变得非常大,这会挤占PUCCH资源。在现网优化中,这是一项需要仔细调参的工作。
很多工程师容易混淆CA和DC(Dual Connectivity),这里做个清晰对比:
| 维度 | 载波聚合(CA) | 双连接(DC/EN-DC/NR-DC) |
|---|---|---|
| 控制面 | 单一PCell管理 | 两个节点各有MCG和SCG |
| 基站要求 | 同一基站(或射频拉远) | 可跨基站(MeNB + SgNB) |
| 回传要求 | 无特殊要求(内部聚合) | 需要基站间Xn/X2接口 |
| RRC状态 | 一套RRC连接 | 一套RRC但双路数据承载 |
| 典型场景 | 同运营商多频段聚合 | NSA模式LTE+NR同时连接 |
| 延迟 | 极低(物理层聚合) | 略高(需跨基站协调) |
graph LR
subgraph CA架构
UE1[UE] -->|多条载波| gNB1[gNB<br/>同一基站]
gNB1 --> CC1[PCell<br/>n78]
gNB1 --> CC2[SCell<br/>n1]
gNB1 --> CC3[SCell<br/>n28]
end
subgraph DC架构
UE2[UE] -->|MCG| eNB[eNB/LTE<br/>主节点]
UE2 -->|SCG| gNB2[gNB/NR<br/>辅节点]
eNB -.->|X2/Xn接口| gNB2
end
style gNB1 fill:#4CAF50,color:#fff
style eNB fill:#2196F3,color:#fff
style gNB2 fill:#FF9800,color:#fff
一句话总结:CA是"一个老板管多条生产线",DC是"两个老板各管一条生产线但合作供货"。
现网中,运营商需要根据自己手中的频谱资源规划CA组合。典型的5G CA组合包括:
| 组合 | 类型 | 优势 | 挑战 |
|---|---|---|---|
| n78(100M) + n78(100M) | 频段内连续 | 最简单,单RF | 需要连续200MHz频谱 |
| n78 + n1 | 频段间 | 覆盖+容量互补 | 双RF,终端支持度 |
| n78 + n28 | 频段间 | 深度覆盖+热点容量 | 低频带宽有限 |
| n258 + n78 | 频段间(FR2+FR1) | 毫米波+Sub-6G互补 | FR2覆盖受限 |
场景1:SCell激活失败
现象:RRC Reconfiguration添加了SCell,但始终没有数据调度。
排查路径: 1. 检查终端能力——UE是否支持该CA组合 2. 检查MAC CE激活——gNB是否下发了Activation MAC CE 3. 检查CSI上报——UE是否在SCell上正常测量和上报CQI 4. 检查sCellDeactivationTimer——是否配置太短,激活后迅速超时
场景2:CA增益不达预期
现象:配置了CA,但速率提升远不如预期。
可能原因: - 上行成为瓶颈——CA主要提升下行,上行仍然受限于单载波(除非配置了上行CA) - SCell信道质量差——CQI低导致MCS降级,实际增益有限 - 调度不充分——基站调度器未充分利用多个载波 - 终端能力限制——UE处理能力不足以同时处理多载波峰值速率
场景3:乒乓激活/去激活
现象:SCell反复激活又去激活。
根因:通常是sCellDeactivationTimer与业务模型不匹配。如果是突发性业务(如网页浏览),数据间隔可能超过定时器,导致频繁去激活-再激活。调整定时器参数或引入更智能的激活策略可以解决。
| 参数 | 层级 | 典型值 | 说明 |
|---|---|---|---|
| sCellDeactivationTimer | RRC | 8/16/24/40ms等 | SCell无调度时自动去激活时间 |
| crossCarrierScheduling | RRC | 配置/不配置 | 是否启用跨载波调度 |
| CIF(Carrier Indicator Field) | MAC/DCI | 0-7(3bit) | 跨载波调度时的目标载波索引 |
| maxNumberMIMO-Layers | UE能力 | 1/2/4 | 每个载波的最大MIMO层数 |
| scellToAddModList | RRC | 列表 | SCell配置参数集合 |
载波聚合技术仍在持续演进:
Q1: CA和MR-DC(双连接)能同时使用吗? A: 可以。在NSA组网中,终端可以同时使用EN-DC(LTE+NR双连接)和NR CA(多个NR载波聚合)。这意味着终端可能同时使用一个LTE载波和多个NR载波,最大化吞吐量。5G SA组网中也可以NR-DC + NR-CA的组合。
Q2: 上行CA和下行CA有什么区别? A: 下行CA是标配,几乎所有5G终端都支持。上行CA则受限更多——并非所有终端都支持,且受限于终端的射频前端设计(需要多个上行发射链路)。上行CA的引入可以有效解决上行覆盖不足的问题,特别是在高频段场景。
Q3: SCell切换时CA会断开吗? A: PCell切换时(Handover),所有SCell会被释放,切换到目标小区后重新配置。如果是仅SCell的变化(增删改),则通过RRC Reconfiguration在不中断PCell的情况下完成,用户几乎感知不到。
Q4: 载波聚合对终端耗电影响大吗? A: 有影响但可控。每个激活的SCell都需要终端进行CSI测量和PDCCH监听,增加功耗。这就是为什么设计了sCellDeactivationTimer——在无业务时自动去激活SCell省电。实际使用中,CA对续航的影响通常在5%-15%范围内,取决于CA配置的载波数量和业务模型。
Q5: 如何判断终端是否在用CA? A: 工程上可以通过以下方式判断:查看RRC Reconfiguration消息中是否包含scellToAddModList;查看MAC CE日志中是否有SCell Activation/Deactivation记录;在QXDM/QCAT等路测工具中查看Serving Cell数量是否大于1。最直观的指标是SCell的PCI是否出现在激活列表中。
本文由「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 等场景全覆盖。
