srsLTE 源码学习之 PLMN 搜索、小区搜索流程

Celluar SDR:srsLTE

SDR 平台:USRP B210

看源码软件:Source Insight 4.0

由于应用方向和时间关系,暂不对物理层的源码展开过多研究。

1、rrc::plmn_search()

从 srsLTE 的源码来看,PLMN( Public Land Mobile Network )搜索过程包含了小区搜索的过程。

srsLTE\srsue\src\upper\rrc.cc

 

2、rrc::cell_search()

下图中的 phy->cell_search(&new_cell) 调用了物理层与RRC层的接口函数 cell_search,其所在文件的目录为:srsLTE\srsue\src\phy\phch_recv.cc。该函数的主要功能是获取小区物理 ID、完成下行同步、接收并解码 MIB,同步系统帧号( SFN )、完成小区驻留以及 获取SIB1 等;如果在任何的频段内都没有找到小区,则返回 CELL_NOT_FOUND;如果在搜索的过程中出现错误,则返回 ERROR。

srsLTE\srsue\src\upper\rrc.cc

如果小区搜索结果为 CELL_FOUND,则开始设置 serving cell,不过在设置 serving cell 之前,要先添加邻区。

srsLTE\srsue\src\upper\rrc.cc

 

3、rrc::add_neighbour_cell() & rrc::find_neighbour_cell()

初始状态不存在 neighbour cell, 所以 neighbour_cells.size() = 0, 即 cell_idx = -1。

srsLTE\srsue\src\upper\rrc.cc

注意两次的 rrc::add_neighbour_cell() 并不是同一个函数。

函数 rrc::add_neighbour_cell(phy_interface_rrc::phy_cell_t phy_cell, float rsrp) 的运行结果为  return add_neighbour_cell(new_cell); 如下图所示。

srsLTE\srsue\src\upper\rrc.cc

4、rrc::add_neighbour_cell() → rrc::cell_search() → rrc::set_serving_cell()

srsLTE\srsue\src\upper\rrc.cc

函数 rrc::set_serving_cell() 中程序的流程比较简单,这里不做过多叙述。

srsLTE\srsue\src\upper\rrc.cc

5、rrc::set_serving_cell() → rrc::cell_search()

srsLTE\srsue\src\upper\rrc.cc

6、rrc::cell_search() → rrc::si_acquire() → rrc::sib_start_tti() → rrc::si_acquire()

这里关于 TTI 有一个疑问目前还没有解决,就是 mac->get_current_tti() 函数获取的 TTI 应该怎么理解?在网上看到两种说法:一种是 LTE 中 TTI 是 MAC 层传输 TBS 的间隔,固定为 1ms,另一种是 TTI 可灵活变动。这里应该不是固定为 1ms,因为根据程序中提供的信息来看,TTI 的确是不断变化的,且其取值为 0 ~ 10239。使用 USRP B210 搭建 LTE 平台,将 log 信息打印到终端(见下图),也可以根据 si_win_start 反推出 TTI 的值。但是如果说 TTI 是灵活变动的,又怎理解呢?这个问题待以后再解答,也欢迎各位发表自己的见解,谢谢~

srsLTE\srsue\src\upper\rrc.cc
srsLTE\srsue\src\upper\rrc.cc

7、rrc::si_acquire() → rrc::cell_search()

srsLTE\srsue\src\upper\rrc.cc

8、rrc::cell_search() → rrc::plmn_search() → rrc::process_phy_meas() → rrc::plmn_search()

小区搜索结果为 CELL_FOUND,SIB1 已接收。

srsLTE\srsue\src\upper\rrc.cc
srsLTE\srsue\src\upper\rrc.cc

 

总结

由于程序在运行的过程中,涉及到了多线程的问题,所以为了更好地了解程序的运行过程,最好参照程序运行的 log 进行分析。

由于本人能力有限,可能会出现错误,如有错误或者疑问,欢迎大家指出。 谢谢!

参考文献:

(1)LTE小区搜索-物理小区ID和同步信号PSS、SSS

(2)LTE系统信息(1)-MIB

(3)LTE系统信息(2)-SIB的周期调度

猜你喜欢

转载自blog.csdn.net/qq_30943197/article/details/81434284