【USRP】srsRAN 开源 4G 软件无线电套件

srsRAN 是SRS开发的开源 4G 软件无线电套件。

srsRAN套件包括:

  • srsUE - 具有原型 5G 功能的全栈 SDR 4G UE 应用程序
  • srsENB - 全栈 SDR 4G eNodeB 应用程序
  • srsEPC——具有 MME、HSS 和 S/P-GW 的轻量级 4G 核心网络实现

在这里插入图片描述

安装系统

Ubuntu 20.04

USRP B210

sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host//镜像下载
sudo uhd_images_downloader
//查找设备 
sudo uhd_find_devices
//查看设备信息
sudo uhd_usrp_probe

srsRAN

sudo add-apt-repository ppa:softwareradiosystems/srsran
sudo apt-get update
sudo apt-get install srsran -y

运行 srsUE

srsUE 是一款 4G LTE UE 调制解调器,其原型 5G NR 功能完全以软件实现。srsUE 以应用程序的形式运行在基于 Linux 的标准操作系统上,可连接到任何 LTE 网络并提供具有高速移动连接的标准网络接口。

运行

开一个终端,运行:

sudo srsue

在这里插入图片描述
在这里插入图片描述
软然后开一个终端去ping基站
在这里插入图片描述

ping 172.16.0.1

就可以看到UE发信号了。

配置UE得参数,配置:ue.conf

sudo srsue ~/.config/srsran/ue.conf

srsUE 默认使用虚拟 USIM 卡,参数来自ue.conf。这些参数包括:

  • ALGO - 要使用的身份验证算法(MILENAGE 或 XOR)

  • IMSI——USIM 的唯一标识符

  • K - EPC 中与 HSS 共享的密钥

  • OP 或 OPc - 操作员代码(仅用于 MILENAGE 算法)

要成功连接到网络,这些参数需要与 EPC 的 HSS 中的参数相匹配。MILENAGE 是大多数网络中使用的算法,XOR 算法主要由测试设备和测试 USIM 卡使用。OP 是网络范围的运营商代码,OPc 是 USIM 特定的加密运营商代码 - 两者都受 srsUE 支持。

终端架构

在这里插入图片描述
srsUE应用程序包括第1层、第2层和第3层,如上图所示。

物理层 (PHY) 位于 UE 协议栈的底层,通过空中接口传输来自 MAC 的所有信息。它负责链路自适应、功率控制、小区搜索和小区测量。

媒体访问控制 (MAC) 层将一个或多个逻辑信道之间的数据复用为传输块 (TB),然后将其传递到 PHY 层或从 PHY 层传递出去。MAC 负责与 eNodeB 进行控制和调度信息交换、重传和纠错 (HARQ) 以及逻辑信道之间的优先级处理。

无线链路控制 (RLC) 层可以以三种模式之一运行:透明模式 ™、非确认模式 (UM) 和确认模式 (AM)。RLC 管理多个逻辑信道或承载器,每个逻辑信道或承载器都以这三种模式之一运行。透明模式承载器只需通过 RLC 传递数据。非确认模式承载器执行数据单元的连接、分段和重组、重新排序和重复检测。确认模式承载器还执行丢失数据单元的重新传输和重新分段。

分组数据汇聚协议 (PDCP) 层负责控制和数据平面流量的加密、控制平面流量的完整性保护、重复丢弃以及控制和数据平面流量到/从 RRC 层和 GW 层的按顺序传送。如果支持,PDCP 层还会执行 IP 数据的报头压缩 (ROHC)。

无线资源控制 (RRC) 层管理 UE 和 eNodeB 之间的控制平面交换。它使用网络广播的系统信息来配置 UE 的较低层,并处理与 eNodeB 的 RRC 连接的建立、维护和释放。RRC 管理小区搜索以支持小区选择以及小区测量报告和相邻小区之间切换的移动性控制。RRC 还负责处理和响应来自网络的寻呼消息。最后,RRC 管理密钥管理的安全功能以及无线承载的建立、配置、维护和释放。

非接入层 (NAS) 层管理 UE 与核心网络 (EPC) 内的实体之间的控制平面交换。它控制 PLMN 选择并管理网络附加程序,与 EPC 交换标识和身份验证信息。NAS 负责建立和维护 UE 与 EPC 内的 PDN 网关之间的 IP 连接。

srsUE 中的网关 (GW) 层负责创建和维护 TUN 虚拟网络内核接口,模拟 Linux 操作系统中的网络层设备。GW 层允许 srsUE 作为用户空间应用程序运行,并使用数据平面 IP 数据包进行操作。

SRS UE具有以下特点:

  • LTE 版本 10 与版本 15 的功能一致

  • 原型 5G NSA 和 SA 支持

  • TDD 和 FDD 配置

  • 测试的 LTE 带宽:1.4、3、5、10、15 和 20 MHz

  • 测试的 5G SA 带宽:5、10、15 和 20 MHz

  • 传输模式 1(单天线)、2(发射分集)、3(CCD)和 4(闭环空间复用)

  • 可手动配置 DL/UL 载波频率

  • 支持XOR/Milenage认证的软USIM

  • 通过 PC/SC 支持硬 USIM

  • Snow3G 和 AES 完整性/加密支持

  • Linux OS 的 TUN 虚拟网络内核接口集成

  • 具有每层日志级别和十六进制转储的详细日志系统

  • MAC 和 NAS 层 wireshark 数据包捕获

  • 命令行跟踪指标

  • 详细输入配置文件

  • 演进型多媒体广播和多播服务 (eMBMS)

  • 基于频率的 ZF 和 MMSE 均衡器

  • Intel SSE4.1/AVX2 (+150 Mbps) 中提供高度优化的 Turbo 解码器

  • EPA、EVA 和 ETU 3GPP 信道的信道模拟器

  • QoS 支持

  • 20 MHz MIMO TM3/TM4 或 2xCA 配置下 150 Mbps DL(QAM256 下 195 Mbps)

  • 20 MHz SISO 配置下 DL 为 75 Mbps(QAM256 配置下为 98 Mbps)

  • 10 MHz SISO 配置下 36 Mbps DL

  • 支持 Ettus USRP B2x0/X3x0 系列、BladeRF、LimeSDR

运行 srsENB 和 srsEPC

运行

请开两个终端,第一个运行:

sudo srsepc

第二个运行:

sudo srsenb

在这里插入图片描述
在这里插入图片描述
可以通过配置文件配置 eNodeb : enb.conf此配置文件提供与小区配置、工作频率、传输功率级别、日志级别等相关的参数。要使用已安装的配置文件运行 srsENB,请使用。sudo srsenb ~/.config/srsran/enb.conf

除了顶层配置文件之外,srsENB 还使用单独的文件来配置 SIB(sib.conf)、无线电资源(rr.conf)和数据承载(drb.conf)。这些附加配置文件列在顶层 enb.conf 中的 [enb_files] 下,并为每个文件提供默认值。

一个关键的 eNodeB 参数是 enb.mme_addr,它指定核心网络 MME 的 IP 地址。默认配置假设 srsEPC 在同一台机器上运行。

srsENB LTE eNodeB 具有以下特点:

LTE 版本 10 与版本 15 的功能一致

  • 原型 5G NR 支持 5G NSA 和 SA

  • FDD 配置

  • 测试带宽:1.4、3、5、10、15 和 20 MHz

  • 传输模式 1(单天线)、2(发射分集)、3(CCD)和 4(闭环空间复用)

  • 基于频率的 ZF 和 MMSE 均衡器

  • 演进型多媒体广播和多播服务 (eMBMS)

  • Intel SSE4.1/AVX2 (+150 Mbps) 中提供高度优化的 Turbo 解码器

  • 具有每层日志级别和十六进制转储的详细日志系统

  • MAC层wireshark抓包

  • 命令行跟踪指标

  • 详细输入配置文件

  • EPA、EVA 和 ETU 3GPP 信道的信道模拟器

  • 基于 ZeroMQ 的 I/Q 伪 RF 驱动程序

  • ENB 内和 ENB 间 (S1) 移动性支持

  • 具有类似 FAPI 的 C++ API 的比例公平和循环 MAC 调度程序

  • SR 支持

  • 支持定期和非定期 CQI 反馈

  • 标准 S1AP 和 GTP-U 接口至核心网络

  • 20 MHz MIMO TM3/TM4 下行速率为 150 Mbps,商用 UE 可实现(QAM256 下行速率为 195 Mbps)

  • 采用 SISO 配置,使用商用 UE,下行速率为 75 Mbps

  • 商用 UE 在 20 MHz 下实现 50 Mbps UL

  • 用户平面加密

srsEPC 是完整 LTE 核心网络 (EPC) 的轻量级实现。srsEPC 应用程序以单个二进制文件运行,但提供家庭用户服务 (HSS)、移动管理实体 (MME)、服务网关 (S-GW) 和分组数据网络网关 (P-GW) 等关键 EPC 组件。srsEPC 应用程序不适用于部署,但可用于测试。

在这里插入图片描述
上图说明了EPC的主要组件以及它们之间的主要接口。

  • HSS:归属用户服务(HSS)是用户数据库。它存储用户 ID、密钥、使用限制等信息。它负责对用户访问网络进行身份验证和授权。

  • MME:移动管理实体 (MME) 是网络中的主要控制元素。它处理移动性和附加控制消息。它还负责寻呼空闲模式下的 UE。

  • S-GW:S-GW 是用户的主要数据平面网关,因为它为 UE 提供移动锚点。它充当 IP 路由器,帮助在 eNB 和 P-GW 之间建立 GTP 会话。

  • P-GW:分组网关 (P-GW) 是与外部网络的接触点。它强制执行用户会话的 QoS 参数。

为了提供完整的端到端 LTE 网络,请将 srsEPC 与 srsENB 和 srsUE 一起使用。

为了使 UE 能够连接到互联网,必须进行 IP 伪装。如果没有伪装,Linux 内核将不会执行从一个子网到另一个子网的数据包转发。

为了实现此功能,您可以运行一个便捷脚本,其中out_interface是将 PC 连接到互联网的接口。

sudo srsepc_if_masq <out_interface>

参考

https://www.srslte.com/4g

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 4:解锁AI文案、绘画与视频创作新纪元

文章目录 一、ChatGPT 4的技术革新二、AI文案创作&#xff1a;精准生成与个性化定制三、AI绘画艺术&#xff1a;从文字到图像的神奇转化四、AI视频制作&#xff1a;自动化剪辑与创意实现五、知识库与ChatGPT 4的深度融合六、全新的变革和机遇《ChatGPT 4 应用详解&#xff1a;A…

在js中数组相关用法讲解

数组 uniqueArray 简单数组去重 /*** 简单数组去重* param arr* returns*/ export const uniqueArray <T>(arr: T[]) > [...new Set(arr)];const arr1 [1,1,1,1 2, 3];uniqueArray(arr); // [1,2,3]uniqueArrayByKey 根据 key 数组去重 /*** 根据key数组去重* …

RT-Thread ulog 日志组件深度分析

一、ulog 组件核心功能解析 轻量化与实时性 • 资源占用&#xff1a;ulog 核心代码仅需 ROM<1KB&#xff0c;RAM<0.2KB&#xff0c;支持在资源受限的MCU&#xff08;如STM32F103&#xff09;中运行。 • 异步/同步模式&#xff1a;默认采用异步环形缓冲区&#xff08;rt_…

T113s3远程部署Qt应用(dropbear)

T113-S3 是一款先进的应用处理器&#xff0c;专为汽车和工业控制市场而设计。 它集成了双核CortexTM-A7 CPU和单核HiFi4 DSP&#xff0c;提供高效的计算能力。 T113-S3 支持 H.265、H.264、MPEG-1/2/4、JPEG、VC1 等全格式解码。 独立的硬件编码器可以编码为 JPEG 或 MJPEG。 集…

12.青龙面板自动化我的生活

安装 docker方式 docker run -dit \ -v /root/ql:/ql/data \ -p 5700:5700 \ -e ENABLE_HANGUPtrue \ -e ENABLE_WEB_PANELtrue \ --name qinglong \ --hostname qinglong \ --restart always \ whyour/qinglongk8s方式 https://truecharts.org/charts/stable/qinglong/ he…

Maven 远程仓库推送方法

步骤 1&#xff1a;配置 pom.xml 中的远程仓库地址 在项目的 pom.xml 文件中添加 distributionManagement 配置&#xff0c;指定远程仓库的 URL。 xml 复制 <project>...<distributionManagement><!-- 快照版本仓库 --><snapshotRepository><id…

Spring Boot 日志 配置 SLF4J 和 Logback

文章目录 一、前言二、案例一&#xff1a;初识日志三、案例二&#xff1a;使用Lombok输出日志四、案例三&#xff1a;配置Logback 一、前言 在开发 Java 应用时&#xff0c;日志记录是不可或缺的一部分。日志可以记录应用的运行状态、错误信息和调试信息&#xff0c;帮助开发者…

JS API 事件监听

焦点事件案例&#xff1a;搜索框激活下拉菜单 事件对象 事件对象存储事件触发时的相关信息 可以判断用户按键&#xff0c;点击元素等内容 如何获取 事件绑定的回调函数中的第一个形参就是事件对象 一般命名为e,event 事件对象常用属性 type类型 click mouseenter client…

DDD与MVC扩展能力对比

一、架构设计理念的差异二、扩展性差异的具体表现三、DDD扩展性优势的深层原因四、MVC扩展性不足的典型场景五、总结&#xff1a;架构的本质与选择六、例子1&#xff09;场景描述2&#xff09;MVC实现示例&#xff08;三层架构&#xff09;3&#xff09;DDD实现示例&#xff08…

针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结

以下是针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结&#xff1a; 问题 1&#xff1a;IN 的候选值过多&#xff08;如超过 1000 个&#xff09; 问题描述 当 IN 列表中的值过多时&#xff0c;SQL 会逐个比较每个值…

手部穴位检测技术:基于OpenCV和MediaPipe的实现

手部穴位检测是医学和健康管理领域的重要技术之一。通过准确识别手部的关键穴位,可以为中医诊断、康复治疗以及健康监测提供支持。本文将介绍一种基于OpenCV和MediaPipe的手部穴位检测方法,展示如何利用计算机视觉技术实现手部关键点的检测,并进一步标注手部的穴位位置。 技…

Day20 -自动化信息收集工具--ARL灯塔的部署

准备&#xff1a; 纯净的Docker环境 ARL的包 一、Docker的部署 00x1 更新系统包 sudo apt update 00x2 安装必要的依赖包 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 00x3 下载docker和docker-compose apt-get install do…

sqlalchemy查询json

第一种&#xff1a;字段op是json格式&#xff1a; {"uid": "cxb123456789","role": 2,"op_start_time": 1743513707504,"op_end_time": 1743513707504,"op_start_id": "op_001","op_end_id"…

搭建K8S-1.23

0、简介 这里只用3台服务器来做一个简单的集群 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 1、关闭三个服务 &#xff08;1&#xff09;防火墙 systemctl stop firewalld &#xff08;2&#xff09;Selinux setenf…

初阶数据结构--树

1. 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 有⼀个特殊的结点&#xff0c;称…

硬件工程师面试问题(五):蓝牙面试问题与详解

蓝牙技术作为物联网与智能设备的核心无线协议&#xff0c;其硬件设计能力直接影响产品连接稳定性、功耗及兼容性。面试是评估候选人射频电路设计、天线优化、协议栈调试等综合技能的关键环节&#xff0c;尤其在BLE低功耗设计、共存抗干扰等场景中&#xff0c;硬件工程师的实践经…

Redis-基本数据类型

Redis支持的基本数据类型&#xff1a;String、hash、list、Set、Zset 一、String 特点 可以存储三种类型 int、float、string 运用场景 缓存&#xff1a;存储HTML片段、用户会话&#xff08;Session&#xff09;计数器&#xff1a;网站访问量、点赞数&#xff08;incr方法&am…

Tomcat的部署

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和 并发访问用户不是很多的场合下被普遍使用&#xff0c;Tomcat 具有处理HTML页面的功能&#xff0c;它还是一个Servlet和 JSP容器 官网:Apache Tomcat - Welco…

Linux的TCP连接数到达2万,其中tcp_tw、tcp_alloc、tcp_inuse都很高,可能出现什么问题

当 Linux 系统的 TCP 连接数达到 2 万,且 /proc/net/sockstat 中的 tcp_tw(TIME_WAIT 连接)、tcp_alloc(已分配但未完全建立的连接)和 tcp_inuse(正在使用的连接)均处于高位时,可能会引发以下问题: 一、关键指标分析 通过 /proc/net/sockstat 可以查看 TCP 连接状态:…

服务器数据恢复—Raid6阵列硬盘故障掉线,上层虚拟机数据如何恢复?

服务器数据恢复环境&故障&#xff1a; 一台由16块硬盘组成的raid6磁盘阵列。磁盘阵列中有一块硬盘因为物理故障掉线&#xff0c;导致服务器上层虚拟机无法正常使用&#xff0c;部分分区丢失&#xff0c;重启物理服务器后发现数据丢失。 服务器数据恢复过程&#xff1a; 1、…