本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
温馨提示:“开源SDR实验室”是北京的。
本文使用LimeSDR-USB和自己的手机来实现基站和手机之间的握手通信。相关功能仅限用于科研实验。
目录
一、srsLTE简介
二、实验硬件软件
三、编译安装
1、搭建LimeSDR环境
2、安装srsLTE
(1)依赖包安装
(2)下载、编译、安装srsLTE
(3)基本测试srsLTE
四、LTE实验操作
1、修改默认配置文件
(1)epc.conf文件
(2)user_db.csv
(3)enb.conf
2、运行EPC程序
3、运行ENB程序
4、手机作为UE连接LTE基站
五、有用的链接
六、联系方式
上图中的相关名词解释:
MME:移动管理实体,负责控制面功能,如非接入层信令的加密、完整性保护和安全控制,并对空闲状态下的移动台进行移动性管理,
S-GW:服务网关,负责用户面功能,如终止用户面数据包及用户平面切换
P-GW:分组数据网关,终结和外部数据网络(如互联网、IMS等)的SGi接口,是EPS锚点,即3GPP与non-3GPP网络间的用户面数据链路的锚点
eNodeB(eNB):演进型节点B,具有3GPP R5/R6/R7的Node B功能和大部分RNC功能(接入层功能)
演进型通用陆基无线接入网(E-UTRAN)仅由eNodeB组成,取消了RNC。
演进型分组核心网(EPC)由MME和S-GW组成,演进后的系统仅存在分组交换域,取消了电路交换域,eNodeB之间通过X2接口互连,eNodeB通过用户面接口S1-GW与S-GW相连,eNodeB通过S1-MME接口与MME相连。
以下srsLTE介绍内容来自https://www.oschina.net/p/srslte,详情请查看该网页。
srsLTE是软件无线电系统(SRS)的开源SDR LTE软件套件。是由爱尔兰SoftwareRadioSystems (SRS)公司开发实现的免费开源LTE SDR平台,在AGPLv3 license许可下发布,并且在实现中使用了OpenLTE的相关功能。SrsLTE的开源过程大致经历了三个阶段:
srsLTE包括:
软件---Ubuntu运行支持Limesdr、SoapySDR、Pothos的环境,srsLTE软件。
硬件---LimeSDR Mini、拉杆天线
https://item.taobao.com/item.htm?spm=a230r.1.14.27.22b977ffORpxg7&id=555064600966&ns=1&abbucket=8#detail
你需要购买一张LTE测试卡及配套读写器。可以TB搜搜。
使用apt-get安装,依次输入以下命令即可。【如果你之前已经用apt-get安装了LimeSDR的环境,则此步骤可省略】。
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images
sudo apt-get install soapysdr-tools soapysdr-module-lms7
将LimeSDR插入电脑USB3.0端口,使用SoapySDRUtil命令测试,看是否能发现设备:
SoapySDRUtil --find
然后,根据我的博客https://blog.csdn.net/OpenSourceSDR/article/details/79761800
的第四部分《用LimeSuiteGUI来测试一下LimeSDR-USB的接收》进行基本测试。
在Ubuntu中可直接使用以下apt-get install命令直接安装,但是经过验证,这种安装方法在运行程序时会出现问题,所以暂时先记录在这里,但是不建议大家使用。
sudo add-apt-repository ppa:srslte/releases
sudo apt-get update
sudo apt-get install srslte -y
本文建议通过git下载源码安装。
sudo apt-get install git cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libboost-thread-dev libconfig++-dev libsctp-dev
cd XXX【其中XXX替换成你想存放srsLTE的文件夹目录,这个自己定就行】
git clone https://github.com/srsLTE/srsLTE.git
cd srsLTE
mkdir build
cd build
cmake ../
make
make test
sudo make install
srslte_install_configs.sh user
上述编译安装命令都是按照https://github.com/srsLTE/srsLTE来做的。
cd XXX/srsLTE【XXX是srsLTE所在目录的前缀】
cd build/lib/examples
./pdsch_enodeb
在一台电脑上运行srsENB和srsEPC【电脑插上一个LimeSDR-USB】,你自己的手机作为srsUE来接入LimeSDR搭建的LTE基站。srsENB和srsEPC配置在同一台计算机上运行(即核心网与eNodeB基站运行在同一台电脑+LimeSDR上),手机作为UE终端。
将~/srsLTE/srsepc文件夹中的epc.conf.examples和user_db.csv.examples复制一份到srsLTE/build/srsepc,并分别改名为epc.conf和user_db.csv;
将~/srsLTE/srsenb文件夹中的drb.conf.examples、enb.conf.examples、rr.conf.examples复制一份到srsLTE/build/srsenb,并分别改名为drb.conf、enb.conf、rr.conf;
接下来需要对这些配置文件的内容进行修改改。例如,按照下图配置LTE测试卡,则需要对epc.conf、user_db.csv和enb.conf文件进行修改。用软件gedit进行修改即可。
MCC:Mobile Country Code 移动设备国家代码。三个数字,如中国为460。
MNC:移动设备网络代码(Mobile Network Code,MNC)是与移动设备国家代码(Mobile Country Code,MCC)(也称为“MCC / MNC”)相结合,以用来表示唯一一个的移动设备的网络运营商。由所在国家分配,通常2~3数字组成。如00为移动,01位联通。
通信运营商的网络ID为MCC+MNC,如中国移动为460-00,中国联通为460-01。
TAC:Tracking Area Code 跟踪区域码,定义小区所属的跟踪区域码,一个跟踪区域可以涵盖一个或多个小区
Milenage:鉴权算法
user_db.csv需要增加如下参数。增加的是用户3的IMSI(国际移动用户识别码)、鉴权密钥ki、鉴权参数OP,AMF,SQN。
enb.conf需要修改tac、mcc、mnc的参数:
电脑上打开第一个终端输入命令:
cd ~/srsLTE/build/srsepc
sudo srsepc epc.conf
电脑上打开第二个终端输入命令:
cd ~/srsLTE/build/srsenb
sudo srsenb enb.conf
手机作为UE,手动选择网络可以搜索到Test PLMN 1-1的网络:
https://www.mobibrw.com/2018/10678
https://www.oschina.net/p/srslte
https://github.com/srsLTE/srsLTE