5G MIB / SIB in a Nutshell
- 在 NR SA (独立组网) 模式下,UE 在尝试连接前必须检测的最重要的信令是 MIB 和 SIB1。
- UE 驻留 (camp on) 在一个小区上的最低要求是解码 MIB 和 SIB1。
- MIB 由物理信道 PBCH 承载。PBCH 是 SSB (同步信号块) 的一部分。
- SIB1 由物理信道 PDSCH 承载。
- MIB 携带关于参考子载波间隔、用于 SIB1 的 PDSCH 的控制信道、DMRS 位置等信息。
- SIB1 携带 UE 执行初始附着过程所需的所有基本信息,至少到 RrcSetup (RRC建立) 阶段。
- SIB1 也携带其他 SIBs (系统信息块) 的调度信息。
- 3GPP 中定义了 21 个 SIB (随着 3GPP 版本的演进,该数量可能会增加)。
文章目录
- MIB/SIB Aquisition Process
- MasterInformationBlock
- SystemInformationBlockType1

MIB/SIB Aquisition Process
MIB/SIB 的获取过程会因情况而异。我将通过各种案例来描述总体的 MIB/SIB 获取过程。
-
< 案例 1:开机,UE 中无存储的 SIB,No-OnDemand SI indication>
i) 开机
ii) 搜索小区并解码 MIB
iii) 存储解码后的 MIB
iv) 检查 CellBarred 字段是否为 barred (小区禁用),如果是则停止,否则进入下一步。
v) 使用 MIB 中的参数,尝试解码 SIB1。
vi) [如果 SIB1 解码成功] 存储该信息,然后进入下一步。
vii) [假设 SIB1 指示无按需 SI] 解码其他 SIBs (SI)。 -
< 案例 2:开机,UE 中无存储的 SIB,OnDemand SI indication >
i) 开机
ii) 搜索小区并解码 MIB
iii) 存储解码后的 MIB
iv) 检查 CellBarred 字段是否为 barred (小区禁用),如果是则停止,否则进入下一步。
v) 使用 MIB 中的参数,尝试解码 SIB1。
vi) [如果 SIB1 解码成功] 存储该信息,然后进入下一步。
vii) [假设 SIB1 指示有按需 SI] 检查 RRC 状态 (注意:基于 38.331-5.2.2.3.3)
a) 如果 RRC 状态为 RRC_IDLE (空闲态) 或 RRC_INACTIVE (非活动态)
* 触发底层发起前导码传输过程
* 在收到 SI 请求的确认 (Acknowledgement) 后,获取所请求的 SI 消息
b) 如果 RRC 状态为 RRC_CONNECTED (连接态)
* [过程尚未定义。]
按需模式 (On-Demand SI):为了节省空口资源,网络不会一直广播那些不常用的系统信息(比如 SIB3, SIB4 等)。SIB1 中会有一个指示,告诉手机“部分系统信息是按需获取的”。当手机(例如,在空闲态时)确实需要某个 SIB 的信息时,它必须先发起一个随机接入过程(RACH),明确地向网络请求它想要的 SIB。网络收到请求后,再“按需”地把手机想要的 SIB 发送给它。
MasterInformationBlock
注意: BCCH/MIB 需要多少比特?
在很多情况下,我们会交替使用 PBCH 和 MIB。但你需要知道它们并不完全相同。PBCH 是承载 MIB 的信道名称。简单来说,PBCH 是一种容器,而 MIB 是容器中的内容。所以你可能很容易猜到,PBCH (容器) 的大小至少会等于或大于 MIB (内容) 的大小。为了澄清这一点,你应该查看用于 MIB 传输的 BCCH 的 ASN 结构。
BCCH-BCH-Message ::= SEQUENCE {
message BCCH-BCH-MessageType
}BCCH-BCH-MessageType ::= CHOICE {
mib MIB,
messageClassExtension SEQUENCE {}
}
如你所见,BCCH-BCH-Message
由一个 CHOICE
参数构成,该参数有两个元素 (MIB 或 messageClassExtension)。所以这个 CHOICE
参数需要 1 个比特。因此,BCCH-BCH 的比特长度可能是以下之一:
- i) BCCH-BCH 的比特长度 = mib 的比特长度 + 1
- ii) BCCH-BCH 的比特长度 = messageClassExtension 的比特长度 + 1
至少在最新的规范 (38.331 f03) 中,messageClassExtension
尚未定义。所以我们只考虑情况 1。为了计算情况 1,我们先算出 mib 消息的比特长度。可以如下计算。
MIB ::= SEQUENCE {
systemFrameNumber BIT STRING (SIZE (6)), => 6 比特
subCarrierSpacingCommon ENUMERATED {scs15or60, scs30or120}, => 1 比特
ssb-SubcarrierOffset INTEGER (0..15), => 4 比特
dmrs-TypeA-Position ENUMERATED {pos2, pos3}, => 1 比特
pdcch-ConfigSIB1 INTEGER (0..255), => 8 比特
cellBarred ENUMERATED {barred, notBarred}, => 1 比特
intraFreqReselection ENUMERATED {allowed, notAllowed}, => 1 比特
spare BIT STRING (SIZE (1)) => 1 比特
}
如果你把所有数字加起来,你会得到 23 比特。这意味着 MIB 的大小是 23 比特。
因此,BCCH-BCH 的大小 = 23 + 1 = 24 比特。这 24 比特就是 PBCH 传输信道处理过程的输入数据 (A)。
SystemInformationBlockType1
以下是 SIB1 (系统信息块类型1) 的总体特征
- 通过 DL-SCH (下行链路共享信道) 传输 (注意:SIB1 是第一个 RRC 消息 (MIB除外)。因此 UE 需要能够在没有太多来自 OTA (空中接口) 信令信息的情况下解码 SIB1。为此,3GPP 定义了非常具体 (且通常很复杂) 的流程来传输/解码用于 SIB1 的 DCI 和 PDSCH。关于 SIB1 的调度,请参见此处)。
- 以 160 ms 的周期性传输,并且在这 160 ms 内会发生重复传输。
- 包含关于其他 SIB 的可用性和调度信息 (例如周期性、SI窗口大小)。
- 指示它们 (即其他 SIBs) 是以周期性广播的方式提供,还是仅以按需的方式提供。
- (如果其他 SIBs 是按需提供的,那么 SIB1) 会包含供 UE 执行 SI (系统信息) 请求所需的信息。
SIB1 ::= SEQUENCE {cellSelectionInfo SEQUENCE {q-RxLevMin Q-RxLevMin,q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need Rq-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need Rq-QualMin Q-QualMin OPTIONAL, -- Need Rq-QualMinOffset INTEGER (1..8) OPTIONAL -- Need R} OPTIONAL, -- Need ScellAccessRelatedInfo CellAccessRelatedInfo,connEstFailureControl ConnEstFailureControl OPTIONAL, -- Need Rsi-SchedulingInfo SI-SchedulingInfo OPTIONAL, -- Need RservingCellConfigCommon ServingCellConfigCommonSIB OPTIONAL, -- Need Rims-EmergencySupport ENUMERATED {true} OPTIONAL, -- Need ReCallOverIMS-Support ENUMERATED {true} OPTIONAL, -- Cond Absentue-TimersAndConstants UE-TimersAndConstants OPTIONAL, -- Need Ruac-BarringInfo SEQUENCE {uac-BarringForCommon UAC-BarringPerCatList OPTIONAL, -- Need Suac-BarringPerPLMN-List UAC-BarringPerPLMN-List OPTIONAL, -- Need Suac-BarringInfoSetList UAC-BarringInfoSetList,uac-AccessCategory1-SelectionAssistanceInfo CHOICE {plmnCommon UAC-AccessCategory1-SelectionAssistanceInfo,individualPLMNList SEQUENCE (SIZE (2..maxPLMN))OF UAC-AccessCategory1-SelectionAssistanceInfo} OPTIONAL} OPTIONAL, -- Need RuseFullResumeID ENUMERATED {true} OPTIONAL, -- Need NlateNonCriticalExtension OCTET STRING OPTIONAL,nonCriticalExtension SIB1-v1610-IEs OPTIONAL
}SIB1-v1610-IEs ::= SEQUENCE {idleModeMeasurementsEUTRA-r16 ENUMERATED{true} OPTIONAL, -- Need RidleModeMeasurementsNR-r16 ENUMERATED{true} OPTIONAL, -- Need RposSI-SchedulingInfo-r16 PosSI-SchedulingInfo-r16 OPTIONAL, -- Need RnonCriticalExtension SIB1-v1630-IEs OPTIONAL
}SIB1-v1630-IEs ::= SEQUENCE {uac-BarringInfo-v1630 SEQUENCE {uac-AC1-SelectAssistInfo-r16 SEQUENCE (SIZE (2..maxPLMN)) OF UAC-AC1-SelectAssistInfo-r16} OPTIONAL, -- Need RnonCriticalExtension SIB1-v1700-IEs OPTIONAL
}SIB1-v1700-IEs ::= SEQUENCE {hsdn-Cell-r17 ENUMERATED {true} OPTIONAL, -- Need Ruac-BarringInfo-v1700 SEQUENCE {uac-BarringInfoSetList-v1700 UAC-BarringInfoSetList-v1700} OPTIONAL, -- Cond MINTsdt-ConfigCommon-r17 SDT-ConfigCommonSIB-r17 OPTIONAL, -- Need RredCap-ConfigCommon-r17 RedCap-ConfigCommonSIB-r17 OPTIONAL, -- Need RfeaturePriorities-r17 SEQUENCE {redCapPriority-r17 FeaturePriority-r17 OPTIONAL, -- Need RslicingPriority-r17 FeaturePriority-r17 OPTIONAL, -- Need Rmsg3-Repetitions-Priority-r17 FeaturePriority-r17 OPTIONAL, -- Need Rsdt-Priority-r17 FeaturePriority-r17 OPTIONAL -- Need R} OPTIONAL, -- Need Rsi-SchedulingInfo-v1700 SI-SchedulingInfo-v1700 OPTIONAL, -- Need RhyperSFN-r17 BIT STRING (SIZE (10)) OPTIONAL, -- Need ReDRX-AllowedIdle-r17 ENUMERATED {true} OPTIONAL, -- Need ReDRX-AllowedInactive-r17 ENUMERATED {true} OPTIONAL, -- Cond EDRX-RCintraFreqReselectionRedCap-r17 ENUMERATED {allowed, notAllowed} OPTIONAL, -- Need ScellBarredNTN-r17 ENUMERATED {barred, notBarred} OPTIONAL, -- Need SnonCriticalExtension SEQUENCE {} OPTIONAL
}UAC-AccessCategory1-SelectionAssistanceInfo ::= ENUMERATED {a, b, c}UAC-AC1-SelectAssistInfo-r16 ::= ENUMERATED {a, b, c, notConfigured}SDT-ConfigCommonSIB-r17 ::= SEQUENCE {sdt-RSRP-Threshold-r17 RSRP-Range OPTIONAL, -- Need Rsdt-LogicalChannelSR-DelayTimer-r17 ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024,sf2560, spare1} OPTIONAL, -- Need Rsdt-DataVolumeThreshold-r17 ENUMERATED {byte32, byte100, byte200, byte400,byte600, byte800, byte1000, byte2000,byte4000, byte8000, byte9000, byte10000,byte12000, byte24000, byte48000,byte96000},t319a-r17 ENUMERATED { ms100, ms200, ms300, ms400, ms600, ms1000, ms2000,ms3000, ms4000, spare7, spare6, spare5, spare4, spare3,spare2, spare1}
}RedCap-ConfigCommonSIB-r17 ::= SEQUENCE {halfDuplexRedCapAllowed-r17 ENUMERATED {true} OPTIONAL, -- Need RcellBarredRedCap-r17 SEQUENCE {cellBarredRedCap1Rx-r17 ENUMERATED {barred, notBarred},cellBarredRedCap2Rx-r17 ENUMERATED {barred, notBarred}} OPTIONAL, -- Need R...
}FeaturePriority-r17 ::= INTEGER (0..7)ServingCellConfigCommonSIB ::= SEQUENCE {downlinkConfigCommon DownlinkConfigCommonSIB,uplinkConfigCommon UplinkConfigCommonSIB OPTIONAL, -- Need RsupplementaryUplink UplinkConfigCommonSIB OPTIONAL, -- Need Rn-TimingAdvanceOffset ENUMERATED { n0, n25560, n39936 } OPTIONAL, -- Need Sssb-PositionsInBurst SEQUENCE {inOneGroup BIT STRING (SIZE (8)),groupPresence BIT STRING (SIZE (8)) OPTIONAL -- Cond Above6GHzOnly},ssb-PeriodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160},tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDDss-PBCH-BlockPower INTEGER (-60..50),...
}DownlinkConfigCommonSIB ::= SEQUENCE {frequencyInfoDL FrequencyInfoDL-SIB,initialDownlinkBWP BWP-DownlinkCommon,bcch-Config BCCH-Config,pcch-Config PCCH-Config,...
}BCCH-Config ::= SEQUENCE { modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16},...
}PCCH-Config ::= SEQUENCE {defaultPagingCycle PagingCycle,nAndPagingFrameOffset CHOICE {oneT NULL,halfT INTEGER (0..1),quarterT INTEGER (0..3),oneEighthT INTEGER (0..7),oneSixteenthT INTEGER (0..15)},ns ENUMERATED {four, two, one},firstPDCCH-MonitoringOccasionOfPO CHOICE {sCS15KHZoneT SEQUENCE (SIZE (1..4)) OF INTEGER (0..139),sCS30KHZoneT-SCS15KHZhalfT SEQUENCE (SIZE (1..4)) OF INTEGER (0..279),sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT SEQUENCE (SIZE (1..4)) OF INTEGER (0..559),sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..1119),sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..2239),sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..4479),sCS120KHZoneEighthT-SCS60KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..8959),sCS120KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..17919)} OPTIONAL, -- Need R...
}FrequencyInfoDL-SIB ::= SEQUENCE {frequencyBandList MultiFrequencyBandListNR-SIB,offsetToPointA INTEGER (0..2199),scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier
}BWP-DownlinkCommon ::= SEQUENCE {genericParameters BWP,pdcch-ConfigCommon SetupRelease { PDCCH-ConfigCommon }pdsch-ConfigCommon SetupRelease { PDSCH-ConfigCommon }...
}BWP-Downlink ::= SEQUENCE {bwp-Id BWP-Id,bwp-Common BWP-DownlinkCommon bwp-Dedicated BWP-DownlinkDedicated ...
}PDCCH-ConfigCommon ::= SEQUENCE {commonControlResourcesSets SEQUENCE (SIZE(1..2)) OF ControlResourceSet OPTIONAL,commonSearchSpaces SEQUENCE (SIZE(1..4)) OF SearchSpace OPTIONAL, searchSpaceSIB1 SearchSpaceId OPTIONAL, searchSpaceOtherSystemInformation SearchSpaceId OPTIONAL, pagingSearchSpace SearchSpaceId OPTIONAL, ra-ControlResourceSet ControlResourceSetId OPTIONAL, ra-SearchSpace SearchSpaceId OPTIONAL,...
}
commonControlResourcesSets: 一个公共控制资源集的列表。只允许 ControlResourceSetId = 0 或 1 的 CORESET。CORESET#0 对应于 MIB 中配置的 CORESET (见 pdcch-ConfigSIB1),并且用于在切换和 §SCell 添加期间通过专用信令向 UE 提供该信息。CORESET#1 可以被配置并用于 RAR (随机接入响应)。
commonSearchSpaces: 一个附加的公共搜索空间列表。
searchSpaceSIB1: 用于 SIB1 消息的搜索空间的 ID。对应于 L1 参数 ‘rmsi-SearchSpace’。
searchSpaceOtherSystemInformation: 用于其他系统信息 (即 SIB2 及之后) 的搜索空间的 ID。对应于 L1 参数 ‘osi-SearchSpace’。如果该字段不存在,则监听时机将根据“PDCCH Type 0 公共搜索空间”页面中的描述来推导。
pagingSearchSpace: 用于寻呼的搜索空间的 ID。对应于 L1 参数 ‘paging-SearchSpace’。如果该字段不存在,则监听时机将根据“PDCCH Type 0 公共搜索空间”页面中的描述来推导。
ra-ControlResourceSet: 为随机接入配置的 CORESET。当该字段不存在时,UE 使用根据 pdcch-ConfigSIB1 配置的、与 ControlResourceSetId = 0 相关联的 CORESET。对应于 L1 参数 ‘rach-coreset-configuration’。
ra-SearchSpace: 用于随机接入过程的搜索空间的 ID。对应于 L1 参数 ‘ra-SearchSpace’。如果该字段不存在,则监听时机将根据“PDCCH Type 0 公共搜索空间”页面中的描述来推导。