ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

卫星移动、小区不动:NTN中的Mapped Cell ID信令与测试实践

2026/9/10 20:17:41 拓冰建站 浏览量
卫星移动、小区不动:NTN中的Mapped Cell ID信令与测试实践 上个月做NTN仿真测试时我盯着一份RRC信令日志看了很久同一颗卫星过境手机上驻留的小区号在会话中途换了三次核心网那边的寻呼范围每次都得重新配置。当时第一反应是切换参数出了问题但把物理层波束扫描、TA调整和UE位置全部拉出来比对了一遍才发现根子不在切换而在“小区ID到底代表什么”。传统地面蜂窝网络里小区ID绑定的是固定地理位置。基站不动小区边界就不动终端测量、切换、核心网寻呼全部围绕这个固定关系展开。但非地面网络NTN完全打破了这条假设卫星在轨道上跑覆盖区在地面上“漂”如果小区ID跟着波束走终端哪怕站在原地也会在几分钟内被切换好几个逻辑小区核心网侧的跟踪区更新、寻呼列表、用户位置上报全部失真。3GPP在Rel-17引入的Mapped Cell ID映射小区ID就是为了把“物理波束产生的小区”和“地面上的逻辑区域”解耦。这个概念被写进了RRC信令也在SIB里下发但真正把它读明白、用对、测好的人并不多。这篇文章就从我实际接触到的信令细节出发把Mapped Cell ID的来龙去脉、信令承载、SSB关联和测试方法整个过一遍适合做NTN基站、终端协议栈以及测试仪表的朋友参考。1. 卫星在动、小区却要“不动”Mapped Cell ID要解决的核心矛盾1.1 地面网络里小区ID的设计逻辑在5G地面网络中一个小区的身份由三样东西共同确定物理小区IDPCI、小区全球标识NCGI即PLMNCellIdentity以及跟踪区码TAC。其中NCGI是唯一且地理绑定的核心网用这个ID来定位用户、触发寻呼、进行基于位置的计费和策略控制。因为基站固定所以NCGI和地理区域的关系几乎是静态的终端在网络里移动时切换、重选、测量上报的语义都非常清晰换小区就是换位置。这套逻辑在宏站、室分、甚至高铁专网里都成立。就算是高铁专网基站本身也是固定的只是用户高速移动小区切换变得更密集但基站和小区的地图没有动。地面网络从3G到5G所有移动性机制都没有跳出“小区ID表示固定地理点”这个隐含前提。1.2 透明转发式卫星让“小区”失去了地理锚点NTN在Rel-17里定义了两种典型的星上处理模式透明转发和再生。透明转发模式下卫星只做变频和转发基站核心逻辑都在地面信关站Gateway空口侧的用户跟一个“远在天上但信号从卫星下来”的基站通信。问题在于卫星波束投射到地面的footprint是时刻移动的而且移动速度极快LEO卫星的波束地面移动速度可以达到每秒好几公里。假如我们按照地面逻辑把每个波束定义成一个小区IDUE静止站在地面上卫星飞过时它收到的SSB索引和波束覆盖区域不断变化于是会不停重选或切换小区。这还不是最糟糕的核心网会看到同一个用户短时间内从小区A跳到小区B再到小区C位置上报混乱、寻呼范围飘忽不定甚至触发一连串不必要的跟踪区更新。对于透明转发架构地面信关站到卫星再到UE的链路天然带来较大时延和频繁波束切换如果小区ID不能“钉”在地理上整个移动性体系都会变成一场灾难。1.3 从CellIdentity到mappedCellIDList映射的核心思路Mapped Cell ID的思路并不复杂物理波束仍然拥有自己的PCI和CellIdentity但网络在系统信息里额外下发一个“这张波束覆盖的地理区域对应哪些逻辑小区”的列表。终端在做小区选择、重选、测量报告时可以采用映射后的逻辑小区ID来上报而不是被物理波束变化牵着走。换句话说物理小区跟着卫星跑映射小区跟着地面走。卫星波束中心偏移几百公里时物理CellIdentity变了但mappedCellIDList仍然指向同一个地理区域终端和核心网就不用频繁地重复移动性流程。这对寻呼优化、位置服务、以及和地面网络互操作都有直接价值。2. RRC信令里的mappedCellIDList字段、语义与协同参数2.1 关键信息元素解析Mapped Cell ID不是一个抽象概念它实实在在出现在RRC信令里。在TS 38.331定义的无线资源控制消息中小区接入相关信息CellAccessRelatedInfo携带了mappedCellIDList字段。从结构上看这个列表里的核心元素是MappedCellID每个元素使用类似CellIdentity的格式来指示一个逻辑小区标识。我手头没有把完整ASN.1贴出来的必要但做协议栈的朋友一定见过下面这种简化结构-- 仅示意非完整ASN.1定义 MappedCellIDList :: SEQUENCE (SIZE (1..maxMappedCellID)) OF MappedCellID MappedCellID :: CHOICE { cellIdentity CellIdentity, -- 其他扩展形式 ... } CellAccessRelatedInfo :: SEQUENCE { plmn-IdentityList PLMN-IdentityList, trackingAreaCode TrackingAreaCode OPTIONAL, ranac RANAC OPTIONAL, cellIdentity CellIdentity, mappedCellIDList MappedCellIDList OPTIONAL, ... }注意一个关键点mappedCellIDList是可选字段。它不下发时终端规则退回到传统的地面小区逻辑它存在时终端就有了一个“第二身份”可以参与小区选择与上报。这保证了NTN终端遇到地面网络时依然正常工作也就是从Rel-17开始讨论的“地形兼容”基础。2.2 为什么映射关系要放在RRC系统消息里而不是NAS有人会问Mapped Cell ID既然是给核心网做位置管理用的为什么不直接放在NAS信令里答案和空闲态移动性有关。终端处于RRC_IDLE时网络无法实时给它下发专用配置。它只能靠广播信息来评估驻留小区是否合适。如果Mapped Cell ID放在NAS消息里空闲态终端根本拿不到也就无法在重选时使用映射后的逻辑ID。RRC的SIB机制天然适合这类广播场景网络可以周期性把当前波束对应的mappedCellIDList广播给所有驻留用户。另外RRC重配置消息里也可以携带这个字段。对于已经进入RRC_CONNECTED的终端当卫星波束发生切换或迁移时网络可以直接通过RRCReconfiguration更新映射关系避免终端频繁碰撞物理小区切换逻辑。这也是映射关系主要放在RRC层的原因既要覆盖空闲态又要能对连接态做动态控制。2.3 与cellIdentity、physCellId的关系我经常看到有人把mappedCellID和CellIdentity搞混这里要拆清楚。CellIdentity是物理波束对应的全球小区标识之一部分和PLMN一起构成NCGI。PCI则是物理层用于区分相邻小区的短标识可能重复。Mapped Cell ID则是在逻辑地理维度上的映射标识它不改变PCI配置也不改变物理波束的CellIdentity而是新增了一个可以被终端和核心网识别的高层逻辑ID。再通俗一些PCI是“这束波的短名”CellIdentity是“这束波的大名”Mapped Cell ID是“这片地上的人统一对外用的地址”。卫星移动时短名和大名可能随波束变化但地面地址不能一天变好几次。三种标识可以同时存在作用域完全不同。2.4 定时提前和星历参数如何配合Mapped Cell ID要真正起作用不能只靠一个ID列表。NTN里还有一个非常关键的问题是超长传播时延和多普勒频偏。如果映射出的“逻辑小区”固定了但终端不知道卫星在哪、不知道当前传播时延是多少那么逻辑区域做得再准也用不起来。为此Rel-17 NTN引入了针对非地面网络的专用系统信息块通常被称为SIB19里面携带了星历参数、公共定时提前common TA、UTC参考时间等。SSB里也可能携带用于多普勒预补偿的辅助信息。Mapped Cell ID和这些参数配合的典型场景是终端先读取SIB1里的mappedCellIDList知道自己在哪个逻辑区域再读取SIB19里的星历和公共TA计算出精确的上行发送时刻然后网络再下发或计算UE特定TA偏差。整个流程里Mapped Cell ID解决的是“身份与位置”的问题TA和星历解决的是“时间与频率”的问题两者缺一不可。3. NTN的SSB Case K与波束映射Mapped Cell ID怎么和同步信号绑定3.1 Case K到底指什么5G NR的SSB同步信号块在地面网络里有一系列编号Case A、Case B、Case C对应FR1Case D、Case E对应FR2等。不同case决定了SSB的子载波间隔、时域符号位置以及在一个SSB burst set里的可容纳波束数量。到了NTN场景卫星覆盖范围动辄数百公里传播时延大多普勒频偏高原来的case在时频结构上并不能完美适配。于是3GPP讨论过支持更灵活的SSB调度有些资料里提到的“NTN SSB Case K”指的就是针对非地面网络传播环境优化的SSB时分复用/频分复用结构核心目的是在足够大的覆盖范围内仍然让终端快速完成同步、读取MIB/SIB并获得可靠的波束与映射小区信息。需要说明的是具体到某个release最终落地了哪种case、参数如何组合要严格对照3GPP的TS 38.213和TS 38.331的版本更新。但不管编号怎么变设计逻辑是清楚的NTN场景需要更大时延容限、更重的多普勒预补偿、更强的波束扫描计划所以SSB的时域位置和发送周期会被重新设计让UE在已知星历和公共TA的情况下能准确接收。3.2 一个波束对应一个映射还是一组映射Mapped Cell ID和SSB索引之间存在多对多关系。卫星一个宽波束可能覆盖多个地面区域而地面上一个逻辑区域也可能被多个相邻波束重叠覆盖。所以网络侧并不会简单画等号一个SSB索引只映射一个mappedCellID而是下面几种可能单波束单映射最简单适合小波束、窄覆盖的高通量卫星单波束多映射一个宽波束覆盖多个地理分区终端根据自身定位或者测量结果从列表里选择合适的mappedCellID去驻留这种方式对于在大覆盖范围内区分地面规则区域很有用多波束单映射多个相邻波束服务同一个地理逻辑区域用于提高边缘覆盖可靠性此时Mapped Cell ID保持稳定物理波束切换不会触发逻辑小区变化非常省信令。我在做仿真时觉得单波束多映射最考验协议栈实现。终端怎么从多个映射里选择正确的ID一般会结合自己的地理位置GNSS定位或者接收到的波束信息再匹配SIB里广播的区域边界条件。如果实现得不好可能出现终端选了一个映射ID但实际定时提前不匹配的情况导致上行信号到达卫星的时间不在网络期望窗口内。3.3 SSB周期对映射发现和信令开销的影响Mapped Cell ID要生效终端得先读到SIB1。而SIB1是跟随SSB调度传输的SSB的周期和波束数量直接决定了终端能否快速获取映射ID。假设SSB周期是20ms波束数量是8个那么一个完整的波束扫描要160ms。如果卫星覆盖范围极大、波束数量多SSB周期又太长终端首次接入的体验会明显变慢。反过来如果SSB周期太短对于高轨卫星那种超远距离场景终端可能还没完全处理完上一个同步信号下一个又来了处理能力和功耗都吃不消。所以做NTN系统设计时需要把SSB周期、波束数、mappedCellIDList长度、终端移动速度这几件事放在一起权衡。通常建议在初始接入阶段用较短的SSB周期做快速小区搜索进入稳态后再用较长的周期降低干扰和功耗。这也直接影响SIB1里映射列表的更新频率频繁更新会占用宝贵的空口资源但映射变化不及时又会造成终端驻留到已经不合理的逻辑区域两边都要照顾。4. 从驻留到切换Mapped Cell ID参与的信令流程拆解4.1 初始接入读取SIB1、匹配映射、选择驻留小区终端开机做小区搜索时第一步是检测SSB并读取MIB然后读取SIB1。SIB1里除了PLMN列表、跟踪区码、CellIdentity之外如果存在mappedCellIDList终端就会获得当前波束可用的逻辑映射ID。实际接入流程中终端会这样做检测到满足信号质量阈值的SSB索引读取SIB1获取PLMN、TAC、cellIdentity和mappedCellIDList把PLMN和SIM卡里的配置做匹配如果配置了mappedCellIDList则选择一个合法的mappedCellID作为本次驻留的“逻辑驻留小区”发起RRCSetupRequest上报携带的逻辑小区信息。很多测试朋友喜欢在这一步抓RRCSetupRequest看看UE上报的是物理小区还是映射小区。这里标准允许终端在建立了RRC连接后通过RRCSetupComplete里带上的selectedPLMN-Identity等信息让网络知道它最终选择了哪个PLMN和区域。映射ID参与的具体位置在不同厂商实现里有差异但这不代表没有作用。4.2 切换与小区重选用映射ID减少无效移动性信令在传统地面网络里UE只要跨过小区边界就要触发测量上报、切换准备、切换执行等一整套RRC信令。NTN场景如果照搬这套逻辑卫星波束在地面快速移动会让UE频繁“跨小区”信令风暴几乎是必然的。引入Mapped Cell ID之后网络可以把地理位置稳定的逻辑小区作为移动性锚点。UE测量到的物理波束虽然变了但只要映射ID没变就不一定需要触发小区切换。这样一来卫星移动、波束铺展变化都尽可能被映射关系“隔离”在底层高层看到的还是同一个逻辑小区。只有当映射ID确实变了比如从一颗卫星交接到另一颗卫星或者从NTN接入切换到地面小区时才发生真正的移动性信令。在切换命令里Mapped Cell ID同样有用。网络可以在RRCReconfiguration里携带目标小区的mappedCellIDList让UE提前知道目标波束覆盖哪些逻辑区域减少切换后的重新搜索和PLMN匹配开销。这对LEO卫星之间频繁波束交接非常关键。4.3 与5G核心网的交互AMF寻呼、N2位置上报映射ID的作用不只在空口。5G核心网的AMF需要知道UE在哪个跟踪区才能精准寻呼。如果mappedCellIDList能和跟踪区绑定好AMF就可以按照逻辑区域而不是物理波束来管理寻呼列表。此时即使卫星波束在地面移动NTN基站通常通过地面信关站与核心网相连上报的用户位置也可以保持相对稳定避免AMF频繁更新UE位置上下文。在N2接口上用户位置信息的IE可能携带小区ID以及附加的位置字段。实际组网时需要把Mapped Cell ID和允许的TAI列表对齐否则核心网会认为UE进入了未注册位置导致注册更新风暴。这个点我在测试中见过网络侧把mappedCellIDList配置好了但AMF里的TAI列表没同步扩结果UE一注册就被拒绝反复搜索驻留。4.4 和地面网络的互操作性大家经常问“5G基站向下兼容4G吗”这个问题放在地面网络回答起来很简单但放到NTN和地面网络的互操作就复杂了。NTN小区需要知道自己周边有哪些地面小区终端也需要在卫星覆盖和地面覆盖之间平滑移动。Mapped Cell ID在这里扮演的是“翻译层”卫星波束映射的逻辑区域可以提前配置成与地面小区的跟踪区一致这样UE从NTN重选到地面小区时核心网看到的跟踪区变化是连续、可预测的。如果让物理CellIdentity直接参与互操作卫星一移动整个区域映射就要重写几乎不可维护。5. 测试札记从信令日志里读懂Mapped Cell ID5.1 测试环境怎么搭Mapped Cell ID的验证需要信令级仿真最简单的方案是用OpenAirInterface的NTN分支或者商业协议栈仿真器。如果想控制变量推荐先跑纯软件仿真模拟一个低轨卫星的星历让波束footprint周期性扫过一片区域终端模型放在一个固定经纬度观察它是否始终驻留在同一个映射小区。如果手头有真实终端和带NTN功能的测试基站那就更直接了。把基站配置成透明转发模式下发mappedCellIDList然后用终端信令仪表抓RRC日志。要注意的是很多现网终端默认关闭GNSS而NTN场景下GNSS定位信息对卫星接入合法性判断有很大影响测试前要确认终端是否开启并上报定位信息。5.2 典型日志字段如何解读一份正常的NTN接入日志通常会包含以下字段字段典型取值说明cellIdentity0x1A2B3C物理波束的小区标识mappedCellID0x10001逻辑映射小区标识trackingAreaCode0x64跟踪区码commonTA3.2 ms公共定时提前ssbIndex0-7当前波束的SSB索引satelliteEphemerisData6个开普勒参数卫星星历epochTime39984.123星历参考时间看日志的时候最容易忽略的是epochTime。Mapped Cell ID是地理逻辑概念但卫星位置是随时间变化的。如果终端和基站使用不同步的星历参考时间计算出的footprint位置会偏映射ID的实际含义就会偏移。我习惯把手机上的UTC时间、日志里的epochTime和SSB的时间戳统一校准再判断映射ID是否合理。5.3 排查过的两个典型异常先说映射列表为空导致的搜网失败。有一次终端无论怎么扫描SSB都无法驻留。日志里SIB1收到了但mappedCellIDList是空的终端按地面小区逻辑来判断发现跟踪区和PLMN不匹配直接判为禁止驻留。后来查下来是网络侧配置工具漏配了映射列表。这个问题的排查关键就是清楚SIB1里到底有没有携带映射字段以及终端的驻留判定是否把空映射当成非法场景。另一个典型异常是单波束多映射时的重选乒乓。一个宽波束映射了两个相邻逻辑区域终端在两个映射ID之间反复切换每次切换都触发跟踪区更新。解决办法是调整映射列表的优先级和信号质量偏移让终端选择其中一个作为“主映射”另一个只有当主映射信号恶化到门限以下才启用。这个思路和地面小区里的重选偏置很像只是这里的“信号”要换成综合逻辑区域规则后的结果。5.4 实战中的一些经验抓信令日志时我建议用Wireshark加RRC解析插件先把NAS和RRC消息过滤出来再按键值比对mappedCellIDList。不要只看厂商的界面摘要很多厂商只显示cellIdentity映射字段在详情页深层容易被忽略。另外做测试矩阵时一定要覆盖“卫星波束移动前、移动中、移动后”三个窗口。移动前终端应驻留旧映射ID移动中映射ID切换最好发生在无线链路故障之前避免掉线移动后终端应稳定驻留新映射ID并完成核心网位置更新。把这三个窗口对应的信令时间戳标出来基本就能评估Mapped Cell ID的切换是否干净。最后再提一个容易被坑的点有些测试仪表只支持标准的SSB Case A/B不支持NTN扩展的SSB Case K。跑仿真之前先确认仪表固件和协议栈版本否则抓出来的SSB时域位置跟标准对不上后续所有信令时序分析都会跑偏。我吃过一次亏仿真半小时没发现是SSB承载配置错了还以为Mapped Cell ID的问题换了最新固件才恢复正常。Mapped Cell ID并不是一个让你“改几个字段就能跑通”的简单功能它涉及空口同步、RRC状态管理、核心网位置管理还有和地面网络的互操作每一层都有细节。如果这篇文章能帮你在信令日志里少走一些弯路那我的测试就没白做。