ubuntu 16.04系统LimeSDR V1.4使用最新版本的OpenAirInterface搭建LTE实验环境

参考ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境,并参考 解决ubuntu 16.04系统上2017.06版本之后的LimeSDR V1.4驱动不能正常运行OpenAirInterface搭建的LTE实验环境的问题使用最新的LimeSDR驱动能正常进行LTE实验之后,我们开始尝试把OpenAirInterface的代码更新到最新版本(2018_w15),新版本的代码结构更加清晰

接下来就是创建LimeSDR的启动配置文件(从enb.band7.tm1.50PRB.usrpb210.conf修改而来):

里面的内容如下:

另外,最新版本运行的时候如果增加-d参数,启动图形界面,程序会崩溃。目前这个版本可以运行,但是貌似会导致LimeSDR驱动数据发送异常,这部分还需要调试一下。

ubuntu 16.04使用rssh配置rsync服务通过ssh同步

  • 安装配置RSSH为数据同步进行准备

  • 客户端同步,测试是否正常工作

  • 转化为定时任务,自动同步

参考链接


OpenAirInterface使用LimeSDR代码分析PHY层流程

参考ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境建立完成的环境。

代码为当时的代码,不是最新的代码。

数据接收流向


RF处理线程
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
int trx_lms_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int antenna_id)-> targets/RT/USER/lte-enb.c
void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) (eNB->rfdevice.trx_read_func

->

targets/RT/USER/lte-enb.c
static void* eNB_thread_FH( void* param ) (eNB->rx_fh

接收完成后,触发信号,通知后续线程,也就是后面的发送接收线程。

eNB收发处理线程

targets/RT/USER/lte-enb.c
static void* eNB_thread_rxtx( void* param )

->

targets/RT/USER/lte-enb.c
static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_name) (eNB->proc_uespec_rx(eNB, proc, no_relay ))

->

openair1/SCHED/phy_procedures_lte_eNb.c
void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,relaying_type_t r_type)

->

openair1/SCHED/phy_procedures_lte_eNb.c
void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq_pid,uint8_t do_srs)

->

此处实际的解码,涉及到相位信息,这部分是PUCCH部分的数据,主要是通信控制数据,比如信噪比等,不包含实际的通信数据,比如TCP,UDP协议等等

openair1/PHY/LTE_TRANSPORT/pucch.c
uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB,
PUCCH_FMT_t fmt,
uint8_t UE_id,
uint16_t n1_pucch,
uint16_t n2_pucch,
uint8_t shortened_format,
uint8_t *payload,
int frame,
uint8_t subframe,
uint8_t pucch1_thres)

->
此处实际的解码,涉及到相位信息,实际的通信数据,比如TCP,UDP协议等等

openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
uint8_t UE_id,
uint8_t control_only_flag,
uint8_t Nbundled,
uint8_t llr8_flag) ( eNB->td

->

此处解析数据段,TCP,IP相关部分了

openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
int ulsch_decoding_data(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag)

解码后的数据通过rx_sdu函数上报到MAC层。

IQ信号

当前的数字射频芯片,无一例外的用到了I/Q信号,就算是RFID芯片,内部也用到了I/Q信号,然而绝大部分射频人员,对于IQ的了解除了名字之外,基本上一无所知。I/Q信号一般是模拟的。也有数字的比如方波。基带内处理的一般是数字信号,在出口处都要进行D/A(数—>模)转换,每个基带的结构图里都有,可以仔细看。

网上有大量关于IQ信号的资料,但都是公式一大堆,什么四相图,八相图之类的,最后还是不明白,除了知道这两个名次解释:

I:in-phase 表示同相
Q:quadrature 表示正交,与I相位差90度。

继续阅读IQ信号

hosts.allow、hosts.deny配置不生效的解决方法

通过配置hosts.allow、hosts.deny,控制SSH限制固定IP登陆

按照以往的方法,分别在hosts.allow、hosts.deny加入以下配置

保存后测试,发现配置无效,其他IP还是可以登陆成功。

解决方法如下:

hosts.allow和hosts.deny属于tcp_Wrappers防火墙的配置文件,而用tcp_Wrappers防火墙控制某一服务访问策略的前提是,该服务支持tcp_Wrappers防火墙,即该服务应用了libwrapped库文件。

查看某服务(如ssh)是否应用了libwrapped库文件的方法是:

没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。(一般情况下服务器默认安装的SSH都是支持libwrapped库文件,这台服务器不清楚为什么不支持)

最终解决方法是重新安装SSH。

安装完成后再次查看是否应用了libwrapped库文件,显示支持。

再测试SSH登陆,配置生效。

参考链接


hosts.allow、hosts.deny配置不生效的解决方法

解决ubuntu 16.04系统上2017.06版本之后的LimeSDR V1.4驱动不能正常运行OpenAirInterface搭建的LTE实验环境的问题

参考ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境搭建实验环境的时候,只能使用LimeSDR v17.06.0的驱动,更新版本的的驱动,运行之后,手机设备不能正确的连接到建立的基站。

继续阅读解决ubuntu 16.04系统上2017.06版本之后的LimeSDR V1.4驱动不能正常运行OpenAirInterface搭建的LTE实验环境的问题

LTE中的传输模式

1)       TM1,单天线端口传输:主要应用于单天线传输的场合。

2)       TM2,发送分集模式:适合于小区边缘信道情况比较复杂,干扰较大的情况,有时候也用于高速的情况,分集能够提供分集增益。

3)       TM3,开环空间分集:合适于终端(UE)高速移动的情况。

4)       TM4,闭环空间分集:适合于信道条件较好的场合,用于提供高的数据率传输。

5)       TM5,MU-MIMO传输模式:主要用来提高小区的容量。

6)       TM6,Rank1的传输:主要适合于小区边缘的情况。

7)       TM7,Port5的单流Beamforming模式:主要也是小区边缘,能够有效对抗干扰。

8)       TM8,双流Beamforming模式:可以用于小区边缘也可以应用于其他场景。

9)       TM9,传输模式9是LTE-A中新增加的一种模式,可以支持最大到8层的传输,主要为了提升数据传输速率。

 

TDD 配比2下的TM9,在0 1 5 6子帧调度最大是88RB,3 4 8 9子帧调度最大100RB。

开环”,即发射端无法获得信道信息的条件下使用

空间复用是为了提高传输数据数量; 传输分级是为了提高传输数据质量;

TM3与TM4的区别:

对于TM3,预编码不依赖于UE上报的建议使用的预编码矩阵(即UE不上报PMI),eNodeB和UE使用相同的方式从一个预先定义的集合中选择一个预编码矩阵。

注:

1、《技术规范》P.38页中的“发送分集”,即是《系统设计》P.158中的“传输分集”,二者是一个意思。

2、传输模式即是《技术规范》P.38页中的“MIMO模式”。

原文链接


LTE中的传输模式