UE终端开机如何获得小区SFN

 UE开机驻留到一个小区,此小区的当前SFN值是怎么被UE获得的,如果没有做过协议栈和物理层具体实现的话,很可能搞不明白,甚至有些困惑。翻看协议或者技术资料,或者在网上搜索,都很难给出满意的答案。网上的一些技术论坛里存在有两种说法,但经仔细推敲,发现又是自相矛盾的。

    一种说法是UE RRC解到后告诉物理层的。空口消息SYSTEM INFORMATION中的SFNprime即是SFN对应的值,UE物理层解到广播后,上报给RRC,RRC经过ASN.1解码,得到SFNprime的值,再反馈给物理层。这种说法貌似很有道理,但实际上,做过物理层的人都知道,物理层在解码广播信道时,是需要SFN参与的,也就是说物理层需要事先知道当前SFN值,这种后反馈SFN的做法显然是来不及的。

    第二种说法是终端和网络的物理层有这样一个参数,即收到RRC的消息码流后,会在其前面加上当前SFN的值发送出去,UE物理层收到后解码即可得到。这种说法解决了物理层即时得到SFN的问题,但当翻看3GPP物理层协议查找具体说明时,却怎么也找不到。难道协议上遗漏了,还是默认都是这么实现?非也,因为根本上就不存在。

    其实真正的做法是上面两种错误说法的一个有机正确结合,结合的很巧妙。在BCH上传送的消息SYSTEM INFORMATION结构中,SFNprime是其第一项IE,它的取值范围是0到4094,步长为2,因为BCH传输信道上的TTI为20ms。在消息的ASN描述里,其对应的值是将SFNprime值除以2,即取值范围变成了0到2047。这样变换的好处是在ASN.1编码中可以减少一个比特位,降低空口传送的负荷。因为现行的ASN.1编码是PER编码,且是非对齐方式的,即按照取值范围中的最大值的二进制比特位数作为此项PER编码后的比特占位数,4094对应二进制111111111110,占12比特,而2047对应二进制11111111111,占11比特,所以恰好PER编码后少一位比特。

    从上面分析可知,编码后的消息SYSTEM INFORMATION比特流前11比特即是SFN所对应的值。网络侧的RRC层进行数据填充时,这一项的值可以不填,因为RRC层即使知道当前的SFN值,也无法把握后续的时序和传输用时提前量。RRC进行PER编码后把此比特流传到物理层或物理层适配层,由其获得当前SFN值,加上严格的传输用时提前量,结果除以2,并变换成长为11比特的二进制形式,之后用它替换掉消息SYSTEM INFORMATION码流的前11比特即可。UE物理层解到BCH广播块之后,取其前11比特,再乘以2,即可得到小区当前SFN值。物理层会把得到的SFN值和BCH广播块一起发送给RRC层,由RRC做协议处理,具体见本博前面“系统信息广播详解”部分。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值