MIB中承载的信息只是系统信息中非常有限的一部分,大多数的系统信息仍然需要通过SIB块发送。eNB在发出MIB(关于MIB的内容请参考《LTE系统信息(1)-MIB》)之后,会继续发送若干条不同类型的SIB(System Information Block),这些SIB为UE提供了小区驻留、重传、链路建立等等所需的若干参数,本篇博文就来介绍SIB的一些内容。
1.SIB的分类传输
LTE的SIB类型有很多种,对于R9版本的协议来说,SIB具体包括SIB1、SIB2、SIB3、SIB4、SIB5、SIB6、SIB7、SIB8、SIB9、SIB10、SIB11、SIB12、SIB13这13类。早期的SIB1也被称作SU-1,全称是Scheduling Unit-1,其他的SIB块被称为SU-n,MIB也被叫做SI-M,现在已经不这么叫了,如果有在其他资料中看到这种提法,也不要惊讶。不同的SIB携带不同的参数,具备不同的目的,具体如下:
SIB1:主要携带小区接入和小区选择相关信息,以及LTE-TDD子帧配置、其他SIB块的调度和窗口信息等。
SIB2:主要携带公共的无线资源配置相关信息,包括接入BAR信息、PRACH配置信息、上行频点信息、MBSFN配置等。
SIB3:携带同频、异频、跨制式小区重选相关的公共信息。
SIB4:携带用于同频小区重选的邻区信息。
SIB5:携带用于异频小区重选的邻区信息。
SIB6:携带用于跨制式(UTRA)小区重选的邻区信息。
SIB7:携带用于跨制式(GERAN)小区重选的邻区信息。
SIB8:携带用于跨制式(CDMA2000)小区重选的邻区信息。
SIB9:携带HOME eNB(HNB)的相关信息。
SIB10/11:携带ETWS(Earthquake and Tsunami Warning System)的相关信息。当UE从寻呼消息中解码发现有ETWS消息存在时,就需要从SIB10/11中获取具体的ETWS内容。寻呼内容请参考《DRX不连续接收(2)-寻呼Paging》。
SIB12:携带CMAS(Commercial Mobile Alerting System)的相关信息。当UE从寻呼消息中解码发现有CMAS消息存在时,就需要从SIB12中获取具体的CMAS内容。
SIB13:携带MBMS(Multimedia Broadcast Multicast Service)的相关信息。
所有SIB中最重要的当属SIB1,因为SIB1除携带了UE接入小区等所需的参数之外,还携带了其他SIB类型的调度信息。如果UE解码不到SIB1,也就无法解码其他类型的SIB。基于此,协议规定eNB通过两种不同的方式广播SIB:第一种是通过SystemInformationBlockType1消息周期广播SIB1,第二种是通过多个SI(SystemInformation)消息周期广播除SIB1之外的其它SIB,如图1所示。
(图1)
需要说明的是,除了SIB1之外的其他SIB块,如SIB2、SIB3等等,同一个SIB块只能放在同一条SI消息中传输,不能分割映射到两条不同的SI消息中。多个SIB块也可以封装到同一条SI消息中一起发送,但前提是这几个SIB块的周期必须相同。
不同于MIB在PBCH中的发送,所有SIB均需要使用SI-RNTI加扰,在CCE公共空间中通过PDSCH信道传输。
2.SIB的周期发送
SystemInformationBlockType1消息(下文简称SIB1消息)的周期固定等于80ms,且只在5号子帧中传输。之所以选择5号子帧,是因为无论哪种LTE-TDD配置,5号子帧都是下行子帧,不需要区分上下行子帧配置。
类似于MIB的发送机制,SIB1消息在80ms内也是重复发送4次。若系统帧号SFN满足条件(SFN mod 8 = 0),则认为该系统帧的5号子帧是第一次发送本周期的SIB1块,然后在同个周期内其它系统帧号满足条件(SFN mod 2 = 0)的5号子帧上重复发送SIB1块,如图2所示。
(图2 SIB周期)
不同SI消息的周期既可以相同也可以不同,图3所示的就是一种可能的情况。在这个图中,SIB2在SI-2消息中发送,周期是160ms;SIB3和SIB4的周期都是320ms,被封装在SI-3消息中一起下发。
(图3 不同SI的周期示例)
每个SI消息的发送时机都被限制在一个独立的窗口之内,这个窗口也被叫做SI窗口,如图4所示。每个SI消息对应着一个SI窗口,这些不同的SI窗口并不会重叠,在某个SI窗口内,只有这个SI窗口对应的SI消息才会被传输,其他的SI消息不会发送。所有SI消息的窗口长度都是相等的,值可以在SIB1中配置。在一个SI窗口内,该窗口对应的SI消息可以发送多次,且可以在任意子帧中发送,当然这些子帧不包括MBSFN子帧、TDD上行子帧和被SIB1占用的发送子帧。
从图4中可以看到,相邻SI窗口之间的距离就是SI的周期长度,每个SI的周期长度也是在SIB1中配置的。在一个SI窗口内,SI消息可以在多个子帧中连续发送,也可以跳过某个子帧不发送。
(图4 SI窗口示意)
3.SIB1中的SI调度和窗口参数
SIB1携带了所有SI消息的调度和窗口参数,通过这些参数可以计算出每条SI消息的周期和发送时刻,如图5中的黄色区域所示。
(图5 SIB1中关于SI周期和窗口的参数)
图5中的相关参数说明如下:
SchedulingInfoList:指示结构体SchedulingInfo数组的长度。SI消息序列中必须至少包含SIB2,且SIB2需要放在数组SchedulingInfo中的第一个位置,所以SchedulingInfoList参数的取值范围是1到maxSI-message。虽然目前SI消息的总个数只有13个,考虑到后续的扩展,maxSI-message仍然被固定设置为32。
SchedulingInfo:指示每个SI消息的调度信息,包括周期si-Periodicity和承载的SIB类型SIB-Type。si-Periodicity的单位是无线帧号,比如rf8表示该SI的周期是8个系统帧即80ms。SIB-Type并不需要显式的包含SIB2类型,因为SIB2默认放在SchedulingInfo数组的第一个位置。如下面的图6所示,数组SchedulingInfo的第一个元素只填写了周期rf16,而没有填写sibType,因为此时默认是传输SIB2块。
si-WindowLength:所有SI消息的窗口长度,单位是ms,ms2表示SI的窗口长度是2ms。
图6是一种可能的SIB1配置。在这个配置中,eNB将会发送两个SI,分别是:第一个SI只携带SIB2,周期是160ms,窗口长度是20ms;第二个SI只携带SIB3,周期是320ms,窗口长度同样是20ms。
(图6)
4.怎么接收SI消息
由于MIB和SIB1都有固定的周期和发送时刻,UE只需要在指定的时刻去解码即可,而对于SI消息来说,它并没有固定的周期和发送时刻,所以接收的过程相对MIB和SIB而言,要复杂一些。
UE从SIB1中解码得到的是后续每个SI的周期长度、SI类型和窗口长度,并没有每个SI窗口的开始位置,如上文的图4所示,所以我们首先需要明确每个SI窗口的起始位置。计算每个SI窗口的起始位置的过程如下:
(1)确定n值。n是该SI消息在SIB1->SchedulingInfoList中出现的序号,从1开始记数,SIB2固定等于n=1。 (2)确定x值。x = (n – 1) * w,w是SI的窗口长度si-WindowLength。 (3)确定窗口起始位置。起始子帧a = x mod 10,所在的系统帧号SFN需满足 SFN mod T = FLOOR ( x / 10),其中T该SI消息的周期si-Periodicity。 比如图6所示的例子,对于携带SIB2的第一个SI消息SI1,n=1,x=0,a=0,T=rf16,x/10=0,所以SI1的窗口起始位置在(0,0)、(16,0)、(32,0)等。 而携带SIB3的第二个SI消息SI2,n=2,x=20,a=0,T=rf32,x/10=2,所以SI2的窗口起始位置在(2,0)、(34,0)、(66,0)等。 |
当得到了SI窗口的起始帧号和子帧号之后,UE从起始位置开始,使用SI-RNTI加扰PDSCH,直到本次SI窗口结束,或者直到收到SI消息。正如前文图4所描述的,UE不会在窗口内的所有子帧都去尝试解码SI消息,对于TDD上行子帧、SIB1发送时刻的子帧、MBSFN子帧都不会去尝试解码SI消息。如果UE在该窗口中没有解码到SI消息,那么在下个周期的SI窗口中会继续去解码该SI消息。
至此,在时域上,UE就可以明确无误的知道所有SIB块的解码时刻了。至于频域,因为SIB都是走的PDSCH信道,只要解码到DCI信息,就可以去指定的RB位置获取相应的数据。
参考资料:
(1)3GPP TS 36.331 V9.18.0 (2014-06) Radio Resource Control (RRC)
(2)《4G LTE/LTE-Advanced for Mobile Broadband》
(3)http://www.sharetechnote.com