srsLTE是由爱尔兰SoftwareRadioSystems (SRS)公司开发实现的免费开源LTE SDR平台,在AGPLv3 license许可下发布,并且在实现中使用了OpenLTE的相关功能。
SrsLTE的开源过程大致经历了三个阶段:
目前的srsLTE开源代码在Github上管理,链接为https://github.com/srsLTE/srsLTE
其代码主要分为三个模块,即srsUE、srseNB、srsEPC,另外还包括一些底层的库函数:
下面简单介绍srsLTE整个模块的性能特征,主要包含以下四个部分:
SrsLTE共有特征:
SrsUE主要特征:
SrseNB主要特征:
SrsEPC是单一、轻量级的LTE 核心网实现,其包括下面三个部分:
射频通用设备支持USRP B210、USRP X300、bladeRF以及LimeSDR。
目前srsLTE安装包都包含在一个文件夹中,因此只需要借助cmake、make等工具进行编译,安装即可,以下简单介绍安装步骤:
srsLTE运行在Ubuntu系统上,之前在14.04以及17.04系统上均安装成功,所以Ubuntu系统的选择,可以是14.04及以上,计算机配置的话,最好能够i7 CPU,主频越高越好。系统的安装推荐使用U盘制作启动盘,然后进行安装即可,要注意安装的时候分区。下面以Ubuntu 14.04来进行介绍。
常用工具安装
系统安装好之后,需要安装常用工具,如git、vim等,可以使用Ubuntu系统的apt-get进行安装,如安装git,使用以下命令即可:
sudo apt-get update
sudo apt-get install git
当然,git安装完成之后,还需要进行配置,如配置用户及email等。
硬件设备选择USRP B210,因此需要在系统上安装UHD驱动,目前UHD版本3.10.0.0对于OAI以及srsLTE的支持比较稳定,UHD的安装教程可以参考http://blog.csdn.net/jipengwang/article/details/79451729
在Ubuntu14.04系统上,执行以下命令即可:
sudo apt-get install cmake libfftw3-dev libpolarssl-dev libboost-program-options-dev libboost-thread-dev libconfig++-dev libsctp-dev
在Ubuntu 17.04系统上,执行以下命令:
sudo apt-get install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libboost-thread-dev libconfig++-dev libsctp-dev
另外,srs还提供了srsGUI库,可以用于在调试的时候,实时查看星座图及信号能量,其github链接为:https://github.com/srslte/srsgui
安装命令如下. 首先安装依赖库:
sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-dev libqt4-dev
下载及安装命令如下:
git clone https://github.com/suttonpd/srsgui.git
cd srsGUI
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
从github上clone代码,之后进行编译安装即可,命令如下:
git clone https://github.com/srsLTE/srsLTE
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig
srsLTE的运行参数均采用配置文件进行,即只需要在运行程序后面加上配置文件即可,配置参数在配置文件中进行,其中srsLTE对于UE、eNB、EPC均提供了对应的示例配置文件,其放置位置在对应的srsue、srsenb以及srsepc文件夹下,且命名方式为 *.example,如下图所示为srsenb下面的配置文件:
在运行时,可以将这些配置文件复制,并修改文件名,如将drb.conf.example赋值,并命名为drb.conf。
SrseNB以及srsEPC可以运行在一台电脑上,也可以运行在两台不同的电脑上,但是需要保证两台机器之间的IP可达,并修改相关的配置文件;srsUE则需要运行在另一台电脑上。
执行sudo make install之后,就可以直接使用srsepc、srsenb以及srsue进行运行对应的模块,运行命令如下(假设目前位于srsLTE目录下):
srsepc
cd srsepc/
sudo srsepc epc.conf
srsenb
cd srsenb/
sudo srsenb enb.conf
srsue
cd srsue
sudo susue ue.conf
如上图所示为srsLTE运行界面,其中srseNB以及srsUE的GUI界面可以在配置文件中进行配置,并且运行eNB的电脑,虚拟网卡名称为srs_spgw_sgi,地址为172.16.0.1,运行UE的虚拟网卡名称为tun_srsue,地址与eNB侧同网段,如下两图所示:
另外,在eNB及UE的运行终端中,可以输入t来实时查看snr、bler等性能指标参数,如下面两图所示:
在运行eNB及UE的电脑上,分别对虚拟网卡tun_srsue以及srs_spgw_sgi进行ping命令测试,如下两图所示:
使用iperf进行灌包测试,以下测试为PRB=50,即带宽10MHz,首先进行下行灌包测试,之后进行上行灌包测试。
UE侧iperf命令为:
iperf –s –u –i 1
eNB侧iperf命令为:
iperf –c 172.16.0.4 –u –i 1 –b 30M –t 60
eNB侧iperf灌包从10M开始,然后是20M,之后是30M,从下图可以看出,下行峰值速率基本在22Mbits/sec左右。
eNB侧iperf命令为:
iperf –s –u –i 1
UE侧iperf命令为:
iperf –c 172.16.0.1 –u –i 1 –b 10M –t 60
UE侧灌包从10M开始,之后是15M,然后是20M,可以看到上行峰值速率在14.7Mbps左右。
根据上面的测试结果,还可以进行配置天线的增益来进行测试增益下的峰值速率,这里只是进行说明如何通过iperf进行速率的测试。
经过上面的介绍与演示,相信大家对于srsLTE的安装、运行以及测试有了一定的了解,之后有空会继续更新如何对配置文件进行修改以及探索srsLTE的更多功能。
参考文献
https://github.com/srsLTE/srsLTE
http://www.softwareradiosystems.com/
http://blog.csdn.net/jipengwang/article/details/79451729