基于通用计算机和USRP的LTE通信系统开发与实现
2021-11-01高月红张洪坤袁洪权孙常皓
高月红,高 翔,张洪坤,袁洪权,孙常皓
(1.北京邮电大学 信息与通信工程学院,北京 100876)(2.中国航天科工飞航技术研究院 创新研究院,北京 100074)
0 引言
在每一代的通信系统中,基于计算机的软件仿真方法一直作为开发与研究通信系统的主要方式,被广泛应用于系统架构、关键技术等领域[1-2]。软件仿真成本低,开发周期短,使用范围广,目前已有多种支持通信系统仿真的软件[3-5]。但随着通信系统的更新,软件仿真方法在无线信道环境的真实性、数据传送的实时性及网络监测和时延测量的有效性等方面的不足日益明显。因此,无论是学术界还是工业届对半实物通信系统的实现需求也日益迫切[6-7]。基于半实物仿真平台,可以开展不同类型和场景的研究,例如雷达网络[8]、无线网络[9-10]等。
半实物仿真的核心是可以通过软件编程实现不同功能的软件无线电平台。在众多平台中,通用软件无线电外设(USRP, universal software radio peripheral)凭借其出色的性能脱颖而出[11]。USRP作为应用广泛的软件无线电平台之一[12],以低廉的价格、良好的开源性和广泛的兼容性受到了全球工程师的欢迎。USRP能够支持GNURadio框架、LabVIEW、Matlab等多种开发环境[13],可根据使用者的不同需求,实现自定义的软件无线电系统,因此被广泛应用于各类软件无线电平台的实现[14]、算法开发[15-16]以及通信系统的研究等领域。
本文研究和实现了一套LTE系统的半实物仿真平台。该平台支持完整的LTE协议栈,实现了核心网和空中接口的功能,并能够支持商用终端接入,为开展LTE系统的功能升级以及性能测试提供了基础。本文所研究的LTE移动通信系统采用USRP作为软件无线电前端,同时通过在通用计算机上部署开放空中接口(OAI,open air interface)平台来完成基带处理的方式,实现LTE系统的完整功能。与已有基于OAI和USRP的LTE半实物仿真系统相比[17],本系统的最大特点在于支持多用户接入,特别是支持电脑终端和商用终端的混合接入。
本文介绍了该系统的结构与原理、硬件和软件设计、搭建流程,并给出了运行和测试结果。此外,为了提升系统的功能,进一步研究了多用户接入场景的需求、软硬件配置方案,实现并验证了其功能,所开发的多用户系统,可以支持基于通用计算机的电脑终端和商用终端的混合接入,并可以实现所搭建的LTE系统与外部因特网的互联互通。
1 系统结构及原理
基于USRP的LTE通信系统采用通用计算机与软件无线电前端相结合的方式,由计算机完成基带数据的处理,由USRP实现数据的频带发送与接收,二者相结合实现完整的通信系统功能。整个通信系统包括核心网(EPC,evolved packet core)、基站(eNB,evolved node B)和用户(UE,user equipment)三部分,其整体架构如图1所示。
图1 系统架构图
其中,核心网不涉及无线信号的收发,因此由一台通用计算机组成即可。核心网包括归属用户服务器(HSS,home subscriber server)、移动管理实体(MME,mobility management entity)和服务与PDN网关(SPGW,service and PDN gateway PDN)3个主要部分,并通过网线连接到交换机上,进而实现与外部网络的互通。基站需要完成无线信号的收发,因此除了包含一台通用计算机以外,还需要一台USRP设备。该USRP设备通过USB数据线与通用计算机相连,再通过网线连接到交换机,进而实现与EPC的连接。与基站类似,若使用通用计算机实现用户的功能,则必须同时配备一台USRP设备。在后文中,使用电脑终端来指代使用通用计算机和USRP设备实现的用户。此外,用户也可以使用商用终端接入,需要注意的是,商用终端所支持的频段需要与所开发的LTE系统的工作频段相匹配,否则商用终端无法接入。电脑终端的USRP既可以通过同轴线与基站USRP相连接,也可以通过USRP天线与基站USRP天线进行无线连接。商用终端只能以无线的方式与基站的USRP天线实现无线连接。其中,有线连接主要用于模拟和测试无干扰的理想信道场景,在开发初期常常使用有线连接的方式屏蔽信道的不利影响,辅助调试代码。在开发的后期,通过使用无线连接来验证真实系统的功能和性能。
2 系统硬件设计
如前文所述,LTE通信系统的硬件设计主要包括软件无线电前端和通用计算机两个方面。市面上可选的产品较多。此处介绍本文工作中所使用的硬件设备的配置。
2.1 软件无线电前端
本系统选取了兼容性较好的USRPB210作为软件无线电前端。USRPB210是一款完全集成的、单板通用软件无线电平台[18],其原理结构如图2所示[19]。该平台可以提供从70 MHz~6 GHz的连续频率覆盖;结合了Analog Devices公司的AD9364 RFIC芯片,提供高达56 MHz的实时带宽;采用可编写的Spartan 6 XC6SLX150FPGA,实现信号的下变频,并通过高速USB 3.0连接到通用计算机上[13];兼容多款配件,设备之间的通信可通过铜轴线或天线实现。
图2 USRPB210原理结构图
2.2 通用计算机
系统中包含EPC、eNB和电脑终端三台通用计算机。由于各个模块的功能不同,因此对硬件配置的要求也不尽相同。在以下行传输为主的测试环境下,EPC和电脑终端需要处理的数据量较少,因此对硬件配置的要求也较低。但是在此场景下,eNB处理的数据量较大,也就对计算机的运算和处理能力提出了较高的要求。
在本文所搭建的系统中,EPC采用配置了普通酷睿i5处理器的计算机,电脑终端采用配置了普通酷睿i7处理器的计算机,eNB采用配置了酷睿i7-8700 3.2 GHz处理器以及64 G内存的计算机。此外,为了降低计算机处理时延、提升其处理速度,建议为电脑终端和eNB安装低延迟内核。
在操作系统方面,EPC、eNB和电脑终端统一采用ubuntu系统。其中ubuntu 16.04是目前较常用的版本,也是本文所使用的版本。
3 系统软件设计
在软件实现上,采用开放空中接口OAI平台作为底层架构,在ubuntu环境下,利用C语言实现LTE系统的通信功能。OAI无线技术平台是由EURECOM引领的开源通信平台,符合3GPP协议标准[20]。该平台基于通用服务器和软件无线电前端,通过收发器连接实现其通信功能[21],支持普通电脑终端和商用终端的接入,且可以根据研究需要对源代码进行修改和编译。
系统源代码主要分为两个部分:核心网(CN,core network)和无线接入网(RAN,radio access network)[12]。其中,核心网对应源代码中的openair-cn项目是对LTEEPC的软件实现;无线接入网对应源代码中的openairinterface5G项目是对终端和基站的软件实现,其整体架构如图3所示。
图3 软件架构图
openair-cn项目主要实现归属用户服务器(HSS,home subscriber server)、移动管理实体 (MME, mobility management entity)、服务网关 (SGW,serving gateway)、PDN网关 (PGW,PDN gateway)等网元的功能。
openairinterface5G项目可根据需求通过选择不同的编译参数,令其实现UE或eNB的功能。该项目主要包括openair1、openair2和openair3等模块。其中,openair1主要负责物理层实现,实现基带信号的处理,并为外部设备提供接口;openair2 主要负责相关协议栈的实现,包括RLC/PDCP/RRC/X2AP等;openair3主要负责S1AP等实现,并提供了应用程序的接口[22]。
4 系统搭建流程
4.1 EPC的搭建
核心网的搭建主要分为HSS、MME和SPGW(S-GW和P-GW)共3部分,在运行时按HSS、MME和SPGW的先后顺序启动,故搭建时也采用了相同的顺序,三部分部署在同一台通用计算机上,组成了完整的核心网。
4.1.1 HSS的安装
在联网状态下,首先通过执行HSS脚本下载并安装一系列HSS所需的组件,包括核心网数据库的创建与维护等。之后,为phpMyAdmin组件设定密码并选择合适的web服务器,其中密码可以根据提示选择随机生成或手动设置。在web服务器的选择方面,本系统使用了apache2服务器。然后使用超级权限将OAI脚本复制到系统对应目录中,通过nano命令对所涉及的系统文件进行修改,过程中需要重点关注数据库和本机相关信息。最后,执行文件生成相应的HSS证书。上述准备工作完成后即可对HSS文件进行编译。首次运行时需要加载数据库,之后则不再需要。通过浏览器访问phpmyadmin,打开数据库中的mmeidentity数据表,将mmeHost字段中的对应记录修改为自己的主机名。
4.1.2 MME的安装
首先,执行MME脚本安装MME所需的各种组件,可以通过-h命令查看各项参数的作用。然后将OAI包中提供的各种配置文件复制到系统目录下,并根据需求修改配置文件的各项配置参数,重点关注移动国家码(MCC,mobile country code)、移动网络码(MNC,mobile network code)以及网络接口地址,其中MCC和MNC在本系统中分别设置为208和93,网络接口地址可通过计算机上的ifconfig命令查看。编辑MME配置文件中的身份字段,根据实际情况修改主机名。准备工作完成后即可进行MME文件的编译及MME证书的安装。
4.1.3 SPGW的安装
将OAI包中的SPGW配置文件复制到系统目录下,利用nano命令对配置文件进行修改。修改配置文件的过程中,需重点关注S-GW和P-GW部分,其中S-GW部分主要修改网口名称及接口地址,本系统中EPC是单网卡配置,具体网口信息可通过ifconfig命令查看;P-GW主要修改SGI接口信息,用于与外部互联网建立连接,具体参数根据实际情况进行配置。
4.2 eNB的搭建
4.2.1 环境配置
eNB和电脑终端均涉及到计算机对USRP的操控,同时计算机还要完成基带处理,程序运行对实时性要求较高,因此计算机性能配置的优劣在一定程度上会影响程序的运行效果。为了在现有硬件的基础上进一步提升性能,推荐使用低延迟内核,关闭CPU的节电特性和超线程等。低延迟内核的安装推荐先利用apt-getupdate命令更新包列表,再执行低延迟内核的下载和安装,这里不对低延迟内核的版本做硬性规定,安装完毕后需重启才能生效。在系统选择界面通过高级启动项选择低延迟内核,进入系统后可通过uname命令查看当前内核是否为低延迟。禁用CPU的某些特性操作因硬件而异,主要包括CPU的C-STATES、P-STATES、超线程、Frequencyscaling特性等,可通过进入计算机的BIOS或编辑系统文件等方式进行修改。利用i7z软件,检查CPU的C0状态占比是否达到100%,如图4所示,如未达到建议重新检查配置。通过上述操作,可以充分发挥计算机的硬件能力,进而从一定程度上降低对硬件配置的要求。
图4 i7z界面
4.2.2 USRP驱动安装
本系统使用的是USRPB210。首先需要通过执行build_oai文件的编译命令,下载和安装USRP驱动。驱动安装完成后,将USRP连接到计算机上,通过uhd_find_devices命令查看USRP设备的连接情况。如果没能成功打印设备信息,则需重新进行驱动的安装和检查。
4.2.3 参数配置
利用sourceoaienv命令加载环境变量,执行此命令时一定要确保终端当前工作目录为openairinterface5g。执行build_oai文件,编译eNB相关文件并安装eNB必要的组件。编辑eNB的配置文件时,可通过资源管理器进入配置文件目录,根据实际需求选择合适的配置文件,并重点关注配置文件中的带宽、频段及网络接口等信息。
本文所开发的系统采用25个PRB(对应5 MHz带宽)配置,工作在2.685 GHz频段(对应Band7)。网络接口信息主要规定EPC中MME的IP地址和eNB的网口名称和IP地址,根据计算机的实际IP地址进行配置即可。
4.3 电脑终端的搭建
电脑终端搭建过程中最重要的环节是填写鉴权信息。在编译电脑终端以前,需要先填写电脑终端的身份识别信息,使得电脑终端接入时能在EPC处顺利鉴权。从存储位置上看,电脑终端的信息主要分为两部分:一部分在EPC上,使用phpMyAdmin维护;另一部分在电脑终端自身计算机上,在编译时会自动生成相应的鉴权信息。EPC侧需要通过浏览器访问phpMyAdmin,查看oai_db数据库中的users、mmeidentity和pdn数据表,选择所需的UE记录。其中,users数据表主要记录UE的国际移动用户号码(IMSI,international mobile subscriber identity)和MME标识;mmeidentity表记录MME标识对应的主机;pdn表则记录apn、pdn和pgw等信息,要确保所选记录对应的上述信息真实有效。电脑终端侧需要修改终端的鉴权文件信息,对照EPC users数据表中选取的UE记录,修改配置文件的key、opc和hplmn,使其与EPC数据库信息保持一致。
电脑终端中的通用计算机配置与eNB相似,需要安装低延迟内核、禁用CPU特性、安装USRP驱动。在源代码的选择上与eNB保持一致,编译时通过设定不同参数来指明是终端还是eNB。
对准备好的源代码,首先需要在OAI根目录下加载环境变量,以保证程序的正确运行,然后通过build_oai来对电脑终端的相关文件、组件进行编译和安装。为方便调整运行命令、简化执行流程,系统将终端的启动命令封装在启动脚本中,这样在编辑终端的配置文件时只需关注脚本及脚本涉及的各个执行文件即可。对照4.2节中eNB选取的配置文件修改电脑终端的脚本信息,主要修改运行带宽、载波频率、通信模式、USRP时钟等。最后根据实际配置环境修改脚本中各执行文件的路径及运行权限。
5 实验结果与分析
在整个LTE通信系统中,大部分的启动命令都被封装在执行脚本中,在系统启动时只需要按顺序运行各部分执行脚本即可,简化了系统启动的流程;除此之外,部分运行参数也封装在对应执行脚本中,大大降低了运行文件切换与修改的复杂度。本文首先开发了一套单用户通信系统,其中仅包含最基本的网络节点,即一个核心网、一个基站和一个电脑终端。之后,重点研究了如何在单用户通信系统的基础上,进行升级改造,实现多用户以及多种终端的混合接入。
5.1 单用户通信系统
单用户通信系统主要由核心网、基站和一个电脑终端组成,其组成架构如图5所示。其中,EPC和eNB通过网线与交换机实现互联,eNB与电脑终端通过USRP实现互联。为了降低实际传播环境对信号的干扰,系统在实验前期采用了铜轴线直连的方式实现eNB和电脑终端的USRP连接,在实验后期采用天线实现无线连接。系统的运行过程以及测试过程如下。
图5 单用户通信系统架构
启动EPC。每次运行EPC都需要打开3个终端窗口,按顺序运行HSS、MME、SPGW的执行脚本。运行完毕后,可以在MME窗口观察到电脑终端和eNB的连接信息,如图6所示,此时由于尚未启动eNB,也没有用户接入,因此当前状态均为0。
图6 MME窗口界面
启动eNB。将USRP接入eNB计算机,通过驱动设备查找命令检测是否连接成功。在OAI根目录下加载环境变量,运行eNB执行文件。eNB正常运行的输出如图7所示;此时,在EPC的MME窗口重新观察额NB的数量,可以看到起数量变成了1,如图8所示,表示eNB启动成功并连入核心网。
图7 eNB运行界面
图8 eNB接入时MME窗口界面
启动电脑终端。将USRP设备接入电脑终端的计算机并检测是否连接成功。在OAI根目录下加载环境变量,运行电脑终端的执行文件。正常运行后,能够通过USRP的数据收发与eNB建立连接,并可以通过两者打印的实时日志和星座图观察连接情况。此时,EPC的MME窗口也会显示终端的连接数量,如图9所示。
图9 单用户接入时MME窗口界面
在3个部分均正常启动和运行之后,可以对整个系统的连通性和传输性能进行验证和测试。测试采用5 M带宽的配置文件,利用iperf命令,采用UDP的方式进行上行或者下行数据包大速率灌包发送。经测试,在使用USRPB210的情况下,上行速率最高可达8.2 Mbits/s,下行速率最高可达16.2 Mbits/s,且系统运行状态稳定。
5.2 多用户通信系统
本系统在单用户连通的情况下,可通过新增计算机和USRP的方式来接入更多的电脑终端,除此之外还可以采用烧制SIM卡的方式,为系统接入商用终端。在多用户接入时,需要重点考虑多用户的接入方式。本系统实现的多用户场景架构如图10所示,其中红色部分为与单用户通信系统相比新增的内容。在单用户系统中,电脑终端的接入方式只有一种,即要么使用无线要么使用有线。而在多用户系统中,由于存在多个终端,因此可以同时演示有线和无线两种连接方式。此外,多用户系统,克服了单用户系统终端种类单一的弊端,可以同时支持电脑终端和商用终端。
图10 多用户通信系统架构
当存在多个电脑终端并采用有线连接时,需要使用功分器和合路器将各终端的USRP连接到基站的USRP上。每台电脑终端都需要参照EPC注册表,选择并配置不同的鉴权信息,确保每个电脑终端有自己的IMSI。
为了支持商用终端的接入,需要为其烧制SIM卡。首先,从EPC数据库中选取一条UE记录,确保其相关的apn、pdn及pgw等信息真实有效,然后利用写卡器将选取的UE信息写入SIM卡。值得注意的是,在商用终端的选择方面,要求终端支持所开发系统的工作频段。例如,在本系统中,频段为2.685 GHz(对应Band7)。将烧制好的SIM卡插入手机并打开数据网络,可以在MME窗口观察到UE的连接情况,也可以在手机设置中看到前文所设置的MCC和MNC标识,即20893,如图11所示。
图11 商用终端侧运营商信息
由于实验成本的限制,本系统在测试过程中,最多实现了4个终端的连接测试,包括一台有线电脑终端、一台无线电脑终端以及两台商用终端,4台终端均可正常运行,同时在EPC的MME窗口也能够观察到UE的连接数量为4,如图12所示。若具备更多的硬件条件,上述工作可以进一步扩展到更多终端的情况下。
图12 多用户接入时MME窗口界面
5.3 系统访问外网
在系统联通之后,需进一步验证所搭建的系统与外部网络的互联互通性能。
EPC、eNB和UE顺利运行时,会自动建立一个内部网段,EPC会为每一台接入的UE分配一个内部IP。为了实现与外网的互联互通,首先需要将EPC连接至互联网。为了实现UE对外网的访问,需要为UE添加一个指向EPC的默认网关。此外,还需要修改UE的DNS配置文件,添加常用的DNS服务器。最后,查看网络接口信息,并设置USRP对应端口的MTU值。商用终端访问外网的操作因手机而异,需根据操作手册的说明,获取手机root权限,设置MTU值即可。图13给出了电脑终端访问外网观看视频的场景。
图13 电脑终端访问外网
通过对系统进行多重操作和长时间的测试可知,eNB通过一台USRPB210能够支持2台电脑终端和2台商用终端的同时接入,系统运行稳定,且4台终端均可维持较高的连接速度。
6 结束语
本文采用通用计算机与软件无线电平台USRP作为硬件基础,依托OAI平台作为软件架构,开发和实现了一套完整的LTE通信系统。系统通过连接到通用计算机上的USRP实现数据的收发,通过计算机来实现数据的处理,能够实现包括电脑终端和商用终端在内的多用户接入,能够正常访问外网并保持较稳定的网络连接。LTE通信系统的实现为进一步开展真实环境下信道研究与实时性数据测量提供了一定的便利,同时也为后面开展5G通信系统的研究与实现奠定了重要基础。