首页
/ srsRAN_4G射频前端集成指南:UHD、BladeRF和SoapySDR实战

srsRAN_4G射频前端集成指南:UHD、BladeRF和SoapySDR实战

2026-01-29 12:51:00作者:胡易黎Nicole

srsRAN_4G是一款开源的4G LTE通信系统,支持与多种射频前端设备集成,包括UHD(Universal Hardware Driver)、BladeRF和SoapySDR。本指南将详细介绍如何在srsRAN_4G中配置和使用这三种射频前端,帮助新手快速搭建完整的4G通信实验平台。

一、射频前端支持概述

srsRAN_4G通过模块化设计支持多种射频前端设备,在编译阶段可通过CMake选项启用不同的驱动支持:

option(ENABLE_UHD            "Enable UHD"                               ON)
option(ENABLE_BLADERF        "Enable BladeRF"                           ON)
option(ENABLE_SOAPYSDR       "Enable SoapySDR"                          ON)

这三种射频前端各有特点:UHD适用于USRP系列设备,BladeRF提供低成本的开源硬件方案,SoapySDR则作为通用API支持多种射频硬件,为用户提供了灵活的选择。

二、UHD设备配置与使用

2.1 UHD驱动编译与依赖

UHD(Universal Hardware Driver)是 Ettus Research 为USRP系列设备开发的驱动程序。在srsRAN_4G中启用UHD支持后,系统会自动链接UHD库:

if (UHD_FOUND AND ENABLE_UHD)
  add_definitions(-DENABLE_UHD)
  set(SOURCES_UHD rf_uhd_imp.cc)
  target_link_libraries(srsran_rf_uhd srsran_rf_utils srsran_phy ${UHD_LIBRARIES} ${Boost_LIBRARIES})
endif (UHD_FOUND AND ENABLE_UHD)

2.2 UHD设备配置文件设置

在srsENB和srsUE的配置文件中,可以通过以下参数指定UHD设备:

srsenb/enb.conf.example:

# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"
# device_args:        Device arguments. Default for UHD: "recv_frame_size=9232,send_frame_size=9232"

srsue/ue.conf.example:

# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
# device_args:        Device arguments. Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
# continuous_tx:      Transmit samples continuously to the radio or on bursts (auto/yes/no). Default is auto (yes for UHD, no for rest)

2.3 UHD高级特性支持

srsRAN_4G还支持UHD的一些高级特性,如RFNoC(Radio Frequency Network-on-Chip):

if (UHD_ENABLE_RFNOC)
  add_definitions(-DUHD_ENABLE_RFNOC)
endif(UHD_ENABLE_RFNOC)

三、BladeRF设备集成

3.1 BladeRF支持配置

BladeRF是一款开源的软件定义无线电设备,srsRAN_4G通过ENABLE_BLADERF选项启用支持:

option(ENABLE_BLADERF        "Enable BladeRF"                           ON)

3.2 BladeRF配置参数

在配置文件中选择BladeRF作为射频前端:

srsue/ue.conf.example:

# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"

srsenb/enb.conf.example:

# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"

四、SoapySDR通用射频支持

4.1 SoapySDR驱动启用

SoapySDR提供了一个通用的射频硬件抽象层,支持多种SDR设备:

option(ENABLE_SOAPYSDR       "Enable SoapySDR"                          ON)

4.2 SoapySDR设备配置

在eNodeB配置中选择SoapySDR驱动:

srsenb/enb.conf.example:

# device_name:        Device driver family. Supported options: "auto" (uses first found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"

SoapySDR的优势在于其广泛的硬件支持,通过统一的API接口,用户可以方便地切换不同的射频硬件而无需修改应用层代码。

五、多射频前端比较与选择建议

射频前端 优势 适用场景 典型设备
UHD 功能全面,性能稳定 专业开发与测试 USRP B200/B210/X300
BladeRF 开源硬件,成本较低 教学与入门实验 BladeRF x40/x115
SoapySDR 支持多种硬件,灵活性高 需要兼容多种射频设备的场景 各类支持SoapySDR的SDR设备

六、快速上手步骤

6.1 编译安装srsRAN_4G

git clone https://gitcode.com/gh_mirrors/srs/srsRAN_4G
cd srsRAN_4G
mkdir build
cd build
cmake ../ -DENABLE_UHD=ON -DENABLE_BLADERF=ON -DENABLE_SOAPYSDR=ON
make -j4
sudo make install

6.2 配置eNodeB使用指定射频前端

编辑enb.conf文件:

[rf]
device_name = UHD  # 或 "bladeRF"、"soapy"
device_args = "recv_frame_size=9232,send_frame_size=9232"

6.3 配置UE使用指定射频前端

编辑ue.conf文件:

[rf]
device_name = UHD  # 或 "bladeRF"
device_args = "recv_frame_size=9232,send_frame_size=9232"

七、常见问题解决

7.1 UHD设备未识别

确保UHD驱动已正确安装:

sudo uhd_usrp_probe

如果设备未被识别,可能需要更新UHD固件:

sudo uhd_images_downloader

7.2 BladeRF初始化失败

检查BladeRF设备是否正确连接并安装了固件:

bladeRF-cli -p

7.3 SoapySDR设备选择

使用SoapySDR工具列出可用设备:

SoapySDRUtil --find

在配置文件中指定设备参数:

device_args = "driver=rtlsdr"  # 例如使用RTL-SDR设备

通过本指南,您应该能够顺利将UHD、BladeRF或SoapySDR射频前端与srsRAN_4G集成,搭建起自己的4G LTE实验平台。根据实际需求选择合适的射频前端,并参考配置文件中的示例参数进行设置,即可快速开始LTE通信实验。

登录后查看全文
热门项目推荐
相关项目推荐