当前位置 博文首页 > 一起来捉 Bug 呀~~:srsLTE:高度模块化的 3GPP LTE 开源库

    一起来捉 Bug 呀~~:srsLTE:高度模块化的 3GPP LTE 开源库

    作者:[db:作者] 时间:2021-09-02 10:13

    srsLTE 是由 SRS 开发的一款 SDR UE 和 eNodeB 的免费且开源的 LTE 库。该库采用最低的内置模块和外部依赖方式实现了高度模块化。它完全是由 C 语言编写,因此如果在系统中可用,可以使用加速库 VOLK 将其分布在 GNURadio 上。

    srsLTE 使用的是 srsUE,一个 LTE UE 的全栈(PHY 至 IP)实现。srsUE 地址:https://github.com/srslte/srsue

    srsLET 的软件许可为 AGPLv3。

    当前特性:

    • 兼容 LTE 第 8 发布版本;
    • FDD 配置;
    • 测试带宽:1.4、3、5、10、15 和 20 MHz;
    • 传输方式 1(单天线)和 2(发射分集);
    • UE 端的小区搜索和同步过程;
    • UE 和 eNodeB 端支持所有 DL 频道/信号:PSS、SSS、 PBCH、 PCFICH、 PHICH、 PDCCH、 PDSCH;
    • UE 端支持所有 UL 频道/信号: PRACH、PUSCH、PUCCH、SRS;
    • 基于频率 ZF 和 MMSE 均衡器;
    • 可用于 Intel SSE4.1/AVX(+100 Mbps)和 C标准(+25Mbps)的高度优化的 Turbo 解码器;
    • MATLAB 和 OCTAVE MEX 库生成许多组件;
    • UE 接收方测试且验证 Amarisoft LTE 100 eNodeB 和商业化 LTE 网络(爱尔兰的 Telefonica Spain、Three.ie 和 Eircom)。

    更新后舍去的特性:

    • 闭环功率控制
    • Semi-Persistent 调度

    硬件

    该库目前支持 Ettus Universal Hardware Driver(UHD)和 bladeRF 驱动。另外,适用于 UHD 或 bladeRF 驱动的任何硬件也都支持。其中没有采样率转换,因此为了保持 LTE 基站中 LTE 抽样频率和解码信号正常工作,硬件应该支持 30.72 MHz的采样率。

    我们已测试以下硬件:

    • USRP B210
    • USRP X300
    • bladeRF

    运行 srsLTE

    • 商业化 LTE 网络的 SLB1 接收和 UE 测量:
    lte/examples/pdsch_ue -f [frequency_in_Hz]

    其中 -f 是 LTE 频道频率。

    • eNodeB端 至 UE 端 下行 PHY 测试

    需要两台电脑,每台配备一个 USRP。在发送器端运行:

    lte/examples/pdsch_enodeb -f [frequency_in_Hz] [-h for more commands]

    接收端运行:

    lte/examples/pdsch_ue -r 1234 -f [frequency_in_Hz]

    在发送器的控制台,通过键入一串新的数字(0-28之间)可以改变调制和编码方案(MCS)。

    在接收端的输出类似于下图。在这个案例中,我们在中间演示过程中移除发送器和接收机天线,结果显示接收端仍可能接收。
    https://www.dropbox.com/s/txh1nuzdb0igq5n/demo_pbch.ogv(需科学上网)

    • 视频下行 PHY(eNodeB 至 UE 端)

    上一个例子是发送随机二进制数字至 UE 端。在 LTE PHY DL 无线连接中打开 TCP 套接字和流视频。在发送机端,运行以下命令:

    lte/examples/pdsch_enodeb -f [frequency_in_Hz] -u 2000 [-h for more commands]

    参数 -u 2000 将开放端口 2000 用于监听 TCP 连接。设置一个高阶 MCS,如16,在 eNodeB 控制台输入 16 并按回车键。

    lte/examples/pdsch_ue -r 1234 -u 2001 -U 127.0.0.1 -f [frequency_in_Hz]

    参数 -u 2001 -U 127.0.0.1 是指在 eNodeB 端定向注入地址:通过参数显示端口。一旦系统运行,就可以发送一些有用的数据,如视频流。在发送器端,运行:

    avconv -f video4linux2 -i /dev/video0 -c:v mp4 -f mpegts tcp://127.0.0.1:2000 

    通过本地主机端口 2000从摄像头捕获流视频。在接收端运行:

    avplay tcp://127.0.0.1:2001?listen -analyzeduration 100 -loglevel verbose

    来观看视频。

    更多内容,详见 Github:https://github.com/srsLTE/srsLTE

    IoT黑板报

    cs