Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
nearlink-sdr 1.0.9 文档
nearlink-sdr 1.0.9 文档
  • 快速入门
  • 操作指南
    • 运行链路仿真
    • 添加新的调制方式
    • QoS 服务质量管理
    • 使用 SLE 节点实体
    • Rust 加速模块
    • SDR E310 部署规划
    • 构建文档
  • 技术参考
    • nearlink_sdr
      • nearlink_sdr.mac
        • nearlink_sdr.mac.access
        • nearlink_sdr.mac.broadcast
        • nearlink_sdr.mac.crypto
        • nearlink_sdr.mac.frame
        • nearlink_sdr.mac.link_control
        • nearlink_sdr.mac.link_manager
        • nearlink_sdr.mac.power_control
        • nearlink_sdr.mac.qos
        • nearlink_sdr.mac.scheduler
        • nearlink_sdr.mac.security
        • nearlink_sdr.mac.security_manager
        • nearlink_sdr.mac.signaling
        • nearlink_sdr.mac.smf
        • nearlink_sdr.mac.smf_scheduler
      • nearlink_sdr.sim
        • nearlink_sdr.sim.link_sim
        • nearlink_sdr.sim.usrp_sim
      • nearlink_sdr.common
        • nearlink_sdr.common.bch
        • nearlink_sdr.common.code_block_seg
        • nearlink_sdr.common.crc
        • nearlink_sdr.common.m_sequence
        • nearlink_sdr.common.mcs
        • nearlink_sdr.common.polar
        • nearlink_sdr.common.prbs
        • nearlink_sdr.common.scrambler
      • nearlink_sdr.phy
        • nearlink_sdr.phy.channel
        • nearlink_sdr.phy.control_info
        • nearlink_sdr.phy.data_link
        • nearlink_sdr.phy.equalizer
        • nearlink_sdr.phy.frame
        • nearlink_sdr.phy.freq_hopping
        • nearlink_sdr.phy.gfsk
        • nearlink_sdr.phy.mac_interface
        • nearlink_sdr.phy.measurement
        • nearlink_sdr.phy.measurement_frame
        • nearlink_sdr.phy.measurement_tx
        • nearlink_sdr.phy.mock_backend
        • nearlink_sdr.phy.multitone
        • nearlink_sdr.phy.pilot
        • nearlink_sdr.phy.pluto_backend
        • nearlink_sdr.phy.preamble
        • nearlink_sdr.phy.psk
        • nearlink_sdr.phy.rf_compliance
        • nearlink_sdr.phy.rx_pipeline
        • nearlink_sdr.phy.sdr_backend
        • nearlink_sdr.phy.sync_sequence
        • nearlink_sdr.phy.tx_pipeline
        • nearlink_sdr.phy.uhd_backend
        • nearlink_sdr.phy.usrp
        • nearlink_sdr.phy.uwb_measurement_security
        • nearlink_sdr.phy.uwb_pulse
      • nearlink_sdr.node
  • 设计说明
    • SparkLink SLE 协议总览
    • 物理层原理
    • 物理层详解
    • MAC 层详解
    • 安全子系统详解
    • 端到端数据流
    • 系统架构
    • 标准条款映射
  • 更新日志
  • API Reference
    • nearlink_sdr
      • nearlink_sdr.mac
        • nearlink_sdr.mac.access
        • nearlink_sdr.mac.broadcast
        • nearlink_sdr.mac.crypto
        • nearlink_sdr.mac.frame
        • nearlink_sdr.mac.link_control
        • nearlink_sdr.mac.link_manager
        • nearlink_sdr.mac.power_control
        • nearlink_sdr.mac.qos
        • nearlink_sdr.mac.scheduler
        • nearlink_sdr.mac.security
        • nearlink_sdr.mac.security_manager
        • nearlink_sdr.mac.signaling
        • nearlink_sdr.mac.smf
        • nearlink_sdr.mac.smf_scheduler
      • nearlink_sdr.sim
        • nearlink_sdr.sim.link_sim
        • nearlink_sdr.sim.usrp_sim
      • nearlink_sdr.common
        • nearlink_sdr.common.bch
        • nearlink_sdr.common.code_block_seg
        • nearlink_sdr.common.crc
        • nearlink_sdr.common.m_sequence
        • nearlink_sdr.common.mcs
        • nearlink_sdr.common.polar
        • nearlink_sdr.common.prbs
        • nearlink_sdr.common.scrambler
      • nearlink_sdr.phy
        • nearlink_sdr.phy.channel
        • nearlink_sdr.phy.control_info
        • nearlink_sdr.phy.data_link
        • nearlink_sdr.phy.equalizer
        • nearlink_sdr.phy.frame
        • nearlink_sdr.phy.freq_hopping
        • nearlink_sdr.phy.gfsk
        • nearlink_sdr.phy.mac_interface
        • nearlink_sdr.phy.measurement
        • nearlink_sdr.phy.measurement_frame
        • nearlink_sdr.phy.measurement_tx
        • nearlink_sdr.phy.mock_backend
        • nearlink_sdr.phy.multitone
        • nearlink_sdr.phy.pilot
        • nearlink_sdr.phy.pluto_backend
        • nearlink_sdr.phy.preamble
        • nearlink_sdr.phy.psk
        • nearlink_sdr.phy.rf_compliance
        • nearlink_sdr.phy.rx_pipeline
        • nearlink_sdr.phy.sdr_backend
        • nearlink_sdr.phy.sync_sequence
        • nearlink_sdr.phy.tx_pipeline
        • nearlink_sdr.phy.uhd_backend
        • nearlink_sdr.phy.usrp
        • nearlink_sdr.phy.uwb_measurement_security
        • nearlink_sdr.phy.uwb_pulse
      • nearlink_sdr.node
Back to top
View this page

nearlink_sdr.phy.usrp¶

USRP E310 硬件接口层。

封装 UHD Python API, 提供针对 SparkLink SLE 标准优化的 USRP 设备管理、 TX/RX 流接口以及与现有 PHY 模块的集成 Pipeline。

硬件参数 (USRP E310 / AD9361):

  • 频率范围: 70 MHz - 6 GHz

  • 最大带宽: 56 MHz

  • ADC/DAC: 12-bit

  • RX 增益范围: 0 - 76 dB

  • TX 增益范围: 0 - 89.75 dB

  • 天线端口: TX/RX, RX2

Module Contents¶

Classes¶

RXStream

USRP 接收流接口。

SLETransceiver

SparkLink SLE 实时收发 Pipeline。

TXStream

USRP 发射流接口。

USRPConfig

USRP 设备配置参数。

USRPDevice

USRP E310 设备管理。

Functions¶

uhd_available

检查当前环境是否安装了 UHD 驱动。

Data¶

DEFAULT_CPU_FORMAT

DEFAULT_WIRE_FORMAT

E310_ADC_BITS

E310_BW_MAX_HZ

E310_FREQ_MAX_HZ

E310_FREQ_MIN_HZ

E310_RX_GAIN_MAX

E310_RX_GAIN_MIN

E310_TX_GAIN_MAX

E310_TX_GAIN_MIN

SLE_BANDWIDTHS_MHZ

API¶

nearlink_sdr.phy.usrp.DEFAULT_CPU_FORMAT¶

'fc32'

nearlink_sdr.phy.usrp.DEFAULT_WIRE_FORMAT¶

'sc16'

nearlink_sdr.phy.usrp.E310_ADC_BITS¶

12

nearlink_sdr.phy.usrp.E310_BW_MAX_HZ¶

56000000.0

nearlink_sdr.phy.usrp.E310_FREQ_MAX_HZ¶

6000000000.0

nearlink_sdr.phy.usrp.E310_FREQ_MIN_HZ¶

70000000.0

nearlink_sdr.phy.usrp.E310_RX_GAIN_MAX¶

76.0

nearlink_sdr.phy.usrp.E310_RX_GAIN_MIN¶

0.0

nearlink_sdr.phy.usrp.E310_TX_GAIN_MAX¶

89.75

nearlink_sdr.phy.usrp.E310_TX_GAIN_MIN¶

0.0

nearlink_sdr.phy.usrp.SLE_BANDWIDTHS_MHZ¶

(1.0, 2.0, 4.0)

class nearlink_sdr.phy.usrp.RXStream(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶

USRP 接收流接口。

管理 RX streamer 的生命周期, 提供定量接收和连续接收方法。

Initialization

open(samps_per_buffer: int = 1000)[源代码]¶

创建 RX streamer 并分配接收缓冲区。

参数:

samps_per_buffer -- 每次 recv 调用的缓冲区大小。

recv_num_samps(num_samps: int) → numpy.ndarray[源代码]¶

接收指定数量的样本。

参数:

num_samps -- 要接收的样本数。

返回:

复基带样本数组, shape (num_samps,), dtype=complex64。

start_continuous()[源代码]¶

启动连续接收模式。

recv_once() → numpy.ndarray[源代码]¶

在连续模式下接收一个缓冲区的样本。

返回:

接收到的样本, 长度可能小于缓冲区大小。

stop_continuous()[源代码]¶

停止连续接收。

close()[源代码]¶

关闭 RX streamer。

class nearlink_sdr.phy.usrp.SLETransceiver(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶

SparkLink SLE 实时收发 Pipeline。

将 USRP 设备与 PHY 调制/解调模块集成, 提供帧级收发功能。 支持跳频操作。

Initialization

open(rx_buf_size: int = 1000)[源代码]¶

初始化收发流。

transmit_iq(iq_samples: numpy.ndarray) → int[源代码]¶

发射预调制的 IQ 样本。

参数:

iq_samples -- 复基带信号。

返回:

实际发射的样本数。

receive_iq(num_samps: int) → numpy.ndarray[源代码]¶

接收指定数量的 IQ 样本。

参数:

num_samps -- 要接收的样本数。

返回:

接收到的复基带信号。

transmit_frame(frame_bits: numpy.ndarray, modulate_fn: collections.abc.Callable[[numpy.ndarray], numpy.ndarray]) → int[源代码]¶

调制并发射一帧。

参数:
  • frame_bits -- 帧比特序列。

  • modulate_fn -- 调制函数, 接收比特数组, 返回 IQ 样本。

返回:

实际发射的样本数。

receive_frame(num_samps: int, demodulate_fn: collections.abc.Callable[[numpy.ndarray], numpy.ndarray]) → numpy.ndarray[源代码]¶

接收并解调一帧。

参数:
  • num_samps -- 接收样本数。

  • demodulate_fn -- 解调函数, 接收 IQ 样本, 返回比特数组。

返回:

解调后的比特序列。

hop_and_transmit(channel_num: int, iq_samples: numpy.ndarray, band: str | None = None) → int[源代码]¶

跳频后发射。

参数:
  • channel_num -- 目标信道号。

  • iq_samples -- 要发射的 IQ 样本。

  • band -- 频段标识, None 沿用当前配置。

返回:

实际发射的样本数。

hop_and_receive(channel_num: int, num_samps: int, band: str | None = None) → numpy.ndarray[源代码]¶

跳频后接收。

参数:
  • channel_num -- 目标信道号。

  • num_samps -- 接收样本数。

  • band -- 频段标识, None 沿用当前配置。

返回:

接收到的 IQ 样本。

close()[源代码]¶

关闭所有收发流。

property device: nearlink_sdr.phy.usrp.USRPDevice¶
property is_open: bool¶
class nearlink_sdr.phy.usrp.TXStream(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶

USRP 发射流接口。

管理 TX streamer 的生命周期, 提供帧级发射方法。

Initialization

open()[源代码]¶

创建 TX streamer。

send(samples: numpy.ndarray) → int[源代码]¶

发射一帧 IQ 样本。

参数:

samples -- 复基带样本, dtype=complex64, shape (N,)。

返回:

实际发射的样本数。

send_continuous(samples: numpy.ndarray, num_repeats: int = 1) → int[源代码]¶

连续发射, 重复指定次数。

参数:
  • samples -- 单帧 IQ 样本。

  • num_repeats -- 重复次数。

返回:

总发射样本数。

close()[源代码]¶

关闭 TX streamer。

class nearlink_sdr.phy.usrp.USRPConfig[源代码]¶

USRP 设备配置参数。

变量:
  • device_args -- UHD 设备地址参数, 空字符串表示自动发现。

  • channel_num -- SLE 射频信道号。

  • band -- 频段标识 ("2400" / "5100" / "5800")。

  • sample_rate_hz -- 采样率 (Hz)。

  • rx_gain_db -- 接收增益 (dB)。

  • tx_gain_db -- 发射增益 (dB)。

  • bandwidth_hz -- 前端模拟滤波器带宽 (Hz), 0 表示不设置。

  • rx_antenna -- 接收天线端口名称。

  • tx_antenna -- 发射天线端口名称。

  • clock_source -- 参考时钟源。

  • time_source -- PPS 时间源。

  • cpu_format -- 主机端样本格式。

  • wire_format -- 线缆端样本格式。

  • num_recv_frames -- 接收缓冲区帧数, 增大可减少溢出。

  • stream_timeout_s -- 流操作超时时间 (秒)。

device_args: str = <Multiline-String>¶
channel_num: int¶

0

band: str¶

None

sample_rate_hz: float¶

1000000.0

rx_gain_db: float¶

30.0

tx_gain_db: float¶

20.0

bandwidth_hz: float¶

0.0

rx_antenna: str¶

'RX2'

tx_antenna: str¶

'TX/RX'

clock_source: str¶

'internal'

time_source: str¶

'internal'

cpu_format: str¶

None

wire_format: str¶

None

num_recv_frames: int¶

512

stream_timeout_s: float¶

3.0

validate()[源代码]¶

校验配置参数有效性。

property center_freq_hz: float¶

根据信道号和频段计算中心频率 (Hz)。

property bandwidth_mhz: float¶

带宽 (MHz)。

class nearlink_sdr.phy.usrp.USRPDevice(config: nearlink_sdr.phy.usrp.USRPConfig | None = None, use_mock: bool = False, loopback: nearlink_sdr.phy.usrp.LoopbackBuffer | None = None)[源代码]¶

USRP E310 设备管理。

封装 UHD MultiUSRP 对象, 提供 SLE 标准所需的设备配置和控制接口。 无硬件时自动使用 MockUSRP。

Initialization

初始化 USRP 设备。

参数:
  • config -- 设备配置, None 时使用默认配置。

  • use_mock -- 强制使用 MockUSRP。

  • loopback -- 环回缓冲区, 仅 Mock 模式有效。

tune_channel(channel_num: int, band: str | None = None)[源代码]¶

切换到指定 SLE 射频信道。

参数:
  • channel_num -- 射频信道号。

  • band -- 频段标识, None 沿用当前配置。

set_rx_gain(gain_db: float)[源代码]¶

设置 RX 增益。

set_tx_gain(gain_db: float)[源代码]¶

设置 TX 增益。

set_sample_rate(rate_hz: float)[源代码]¶

设置收发采样率。

property config: nearlink_sdr.phy.usrp.USRPConfig¶
property usrp¶

获取底层 UHD/Mock 设备对象。

property is_mock: bool¶
status_string() → str[源代码]¶

返回可读的设备状态摘要。

nearlink_sdr.phy.usrp.uhd_available() → bool[源代码]¶

检查当前环境是否安装了 UHD 驱动。

Next
nearlink_sdr.phy.uwb_measurement_security
Previous
nearlink_sdr.phy.uhd_backend
Copyright ©
Made with Sphinx and @pradyunsg's Furo
On this page
  • nearlink_sdr.phy.usrp
    • Module Contents
      • Classes
      • Functions
      • Data
      • API
        • DEFAULT_CPU_FORMAT
        • DEFAULT_WIRE_FORMAT
        • E310_ADC_BITS
        • E310_BW_MAX_HZ
        • E310_FREQ_MAX_HZ
        • E310_FREQ_MIN_HZ
        • E310_RX_GAIN_MAX
        • E310_RX_GAIN_MIN
        • E310_TX_GAIN_MAX
        • E310_TX_GAIN_MIN
        • SLE_BANDWIDTHS_MHZ
        • RXStream
          • RXStream.open()
          • RXStream.recv_num_samps()
          • RXStream.start_continuous()
          • RXStream.recv_once()
          • RXStream.stop_continuous()
          • RXStream.close()
        • SLETransceiver
          • SLETransceiver.open()
          • SLETransceiver.transmit_iq()
          • SLETransceiver.receive_iq()
          • SLETransceiver.transmit_frame()
          • SLETransceiver.receive_frame()
          • SLETransceiver.hop_and_transmit()
          • SLETransceiver.hop_and_receive()
          • SLETransceiver.close()
          • SLETransceiver.device
          • SLETransceiver.is_open
        • TXStream
          • TXStream.open()
          • TXStream.send()
          • TXStream.send_continuous()
          • TXStream.close()
        • USRPConfig
          • USRPConfig.device_args
          • USRPConfig.channel_num
          • USRPConfig.band
          • USRPConfig.sample_rate_hz
          • USRPConfig.rx_gain_db
          • USRPConfig.tx_gain_db
          • USRPConfig.bandwidth_hz
          • USRPConfig.rx_antenna
          • USRPConfig.tx_antenna
          • USRPConfig.clock_source
          • USRPConfig.time_source
          • USRPConfig.cpu_format
          • USRPConfig.wire_format
          • USRPConfig.num_recv_frames
          • USRPConfig.stream_timeout_s
          • USRPConfig.validate()
          • USRPConfig.center_freq_hz
          • USRPConfig.bandwidth_mhz
        • USRPDevice
          • USRPDevice.tune_channel()
          • USRPDevice.set_rx_gain()
          • USRPDevice.set_tx_gain()
          • USRPDevice.set_sample_rate()
          • USRPDevice.config
          • USRPDevice.usrp
          • USRPDevice.is_mock
          • USRPDevice.status_string()
        • uhd_available()