更新日志¶
本项目的所有重要变更都记录在此文件中。
格式基于 Keep a Changelog, 版本号遵循 语义化版本。
[Unreleased]¶
Changed¶
全量 docstring 格式从 NumPy 风格统一为 RST field list 风格 (
:param:/:returns:/:rtype:/:ivar:),修复 autodoc2 解析失败和 "Duplicate implicit target name" 警告涉及模块:
scrambler.py,prbs.py,mcs.py,tx_pipeline.py,rx_pipeline.py,mac_interface.py
通过
sphinx-intl update重建所有.po翻译文件,同步新增/变更的msgid并补齐英文翻译
Added¶
DLI 指令集完整实现 122 个 opcode, 29 个单元测试全部通过
基本指令补全: READ_SLB_CTRL_BUF / CONFIG_FISA_CHAN / ENABLE_FISA / CONFIG_SLB_SYNC / READ_SLB_SYNC / READ_SLB_POWER / TIME_SYNC_STATUS / TIME_SYNC_REQ / TIME_SYNC_RSP / ADD_WL_DEVICE_EXT
广播指令补全: READ_BC_SET_SIZE / DELETE_BC_SET / CONFIG_SLB_DOMAIN / READ_SLB_DOMAIN / CONFIG_SLB_BC_PARAM / READ_SLB_BC_PARAM
扫描指令补全: SET_SCAN_REQ_DATA / SET_SLB_SCAN_PARAM
连接指令补全: SLB_CREATE_CONN
链路控制补全: SET_CTRL_SIGNALING / ENABLE_RSSI_PC / SET_SLB_MCS / READ_SLB_MCS
安全指令补全: HASH_CALC / REPLY_ENC_PARAM / REJECT_ENC_PARAM / PAIR_INFO_REPLY / PAIR_OPT_CONFIRM / PAIR_OPT_ACCEPT / PAIR_EXT_DATA / PAIR_PASSKEY / PAIR_RANDOM / PAIR_CONFIRM / DHKEY_VERIFY / ADD_RAL_DEVICE / DEL_RAL_DEVICE / CLEAR_RAL / READ_RAL_SIZE / READ_PEER_RPA / READ_LOCAL_RPA / SET_RPA_ENABLE / SET_RPA_TIMEOUT / START_MCAST_ENCRYPT
测量指令组 (全新): READ_LOCAL_MEAS_CAP / READ_PEER_MEAS_CAP / SET_MEAS_LINK_PARAM / READ_MEAS_PARAM / MEAS_ACTION / READ_MEAS_CAP / CONFIG_MEAS_INST / DELETE_MEAS_INST / CONFIG_MEAS_REPORT / DELETE_MEAS_REPORT / ENABLE_MEAS / CONFIG_SLB_MEAS
同步链路指令组 (全新): SYNC_UCAST_PARAM / SYNC_UCAST_FIXED / SYNC_UCAST_REMOVE / SYNC_UCAST_ACCEPT / SYNC_UCAST_REJECT / SYNC_MCAST_PARAM / SYNC_MCAST_FIXED / SYNC_MCAST_CREATE / SYNC_MCAST_REMOVE / SYNC_MCAST_ACCEPT / SYNC_MCAST_REJECT / SYNC_DATA_PATH_CFG / SYNC_DATA_PATH_DEL
测试指令补全: TEST_SLB_TX_POWER
DLI 指令集扩展至 50+ 处理器 (60 个 Rust 单元测试)
基本指令: READ_CMD_LEN / READ_CTRL_BUF / SET/READ_SLB_ROLE / SET/READ_SLB_CHANNEL
广播指令: SET_BROADCAST_PARAM / SET_BROADCAST_DATA / SET_SCAN_RSP_DATA
扫描指令: SET_SCAN_PARAM
链路控制: READ_PEER_FEAT / READ_PEER_VER / READ_PHY_PARAM / CONN_PARAM_UPDATE / CONN_PARAM_RSP / READ_AVAIL_CHANNEL / READ_PEER_POWER / POWER_REPORT_CONFIG
安全指令: GEN_RANDOM / READ_LOCAL_ENC_ALG
测试指令: TEST_MODE_ENABLE / TEST_RX_RESULT
SET_SLB_CHANNEL 直接控制 AD9361 RF 信道 (0-78 → 2402-2480 MHz)
AD9361 axi 地址修复: integrate_ad9361.tcl 显式分配 0x79020000 匹配 PlutoSDR 设备树
部署自动化
deploy.sh: 一键编译/部署/启动 (build→stop→deploy→start)
S99sle 重写: 适配 composite_gadget 的 FFS 原子启动序列
安全停止流程: unbind UDC → kill → cleanup → rebind
USB DLI 测试扩展至 16 项 (信道/PHY/广播/随机数/加密/测试模式/TX 数据通路)
USB DLI 端到端通信验证通过
FunctionFS 事件循环重构: 正确处理 BIND/ENABLE/DISABLE 生命周期
FFS composite gadget 集成: ffs.sle_dli + rndis/acm/iio/msd 五合一
DLI 事件通道: mpsc 通道连接 DliHandler → EP1 interrupt IN
主机 pyusb 测试: READ_LOCAL_VER / READ_LOCAL_FEAT / SET+READ_MAC_ADDR 三项通过
RF 初始化超时保护: IIO 驱动卡住时 5 秒超时跳过, 避免 sle_ctrl 阻塞
E310 硬件部署全链路验证
SLE 比特流运行时加载: .bit→.bin 字节交换转换 + FPGA Manager sysfs 加载
PHY 寄存器读写验证通过: PARAM/SCRAMBLER/MODULATION 写回一致
AXI DMA 控制器正常响应 (halted/IOC)
devmem 物理地址直接映射: UioDevice::open_devmem() 回退方案 (内核无 OF_OVERLAY 支持时)
bit_to_bin.py 转换脚本 + Makefile bitstream/deploy-bitstream 目标
sle_ctrl 三子系统全部在线:
PHY: /dev/mem 映射 0x40000000 (SLE PHY) + 0x40400000 (AXI DMA)
RF: AD9361 IIO 频率设置 2402 MHz (SLE channel 0)
USB: FunctionFS 描述符写入成功, 端点 ep0~ep3 就绪
Rust 固件信令全量覆盖: signaling.rs 从 16 种扩展到 111 种, 覆盖 TXS-10002-2025 第 7.3.2 节全部条款 (0x0000~0x0070)
6 种宏模式: zero_payload / opaque / fixed_opaque / action / feedback / single_u8
38 种手工编解码 (精确位域), 28 种复杂位域暂存原始字节
注册表自动注册全部 111 种解码器
新增 10 个 roundtrip 测试
ECDH P-256 密钥交换完整实现 (security.rs)
基于 p256 crate SecretKey + ecdh::diffie_hellman
generate_p256_keypair() 密钥对生成 (SEC1 未压缩 65 字节公钥)
exchange_key() 计算 DH 共享密钥, 失败自动设置 PairingFailureReason
新增 2 个 ECDH 测试 (双向交换验证 + 非法公钥拒绝)
BSP 集成 (antsdr-fw-patch buildroot)
integrate_bsp.sh 自动集成脚本: 编译 Rust 固件 + 复制到 board/ant/ + 修改 post-build.sh
S99sle 启动脚本: UIO 加载 → 设备树覆盖 → USB Gadget → sle_ctrl 守护进程
支持 DFU 烧录和在线 frm 更新
FPGA 硬件加速工程脚手架 (
nearlink_sdr_zynq/)RTL 模块: CRC-24, 加扰器, 同步 FIFO, PHY 顶层骨架 (SystemVerilog, AXI-Stream 接口)
全局参数头
sle_params.svh: 时钟/RF/调制/Polar/帧结构参数cocotb 仿真测试: CRC-24 (3 项) + 加扰器 (1 项), 全部通过 (iverilog 11 + cocotb 2.0.1)
ANTSDR E310 引脚约束 (
constraints/antsdr_e310.xdc): AD9361 LVDS/SPI/GPIOVivado Tcl 脚本: 创建工程 / 综合实现 / 下载 bitstream
构建系统: Makefile (sim/lint/build/program), pyproject.toml, .editorconfig
Verible lint 配置 + VS Code Verilog LSP 设置
SDR 硬件后端抽象层:
SDRDevice基类 +SDRConfig配置 +create_device()工厂函数Mock 后端 (
mock_backend.py): 带环回的无硬件仿真, 从usrp.py提取独立PlutoSDR 后端 (
pluto_backend.py): 基于 pyadi-iio, 支持 ANTSDR E310 / ADALM-PlutoUHD 后端 (
uhd_backend.py): 封装 Ettus USRP Python APISleNode双路径支持:sdr_config(新) 优先于usrp_config(旧, 兼容)pyadi-iio/pylibiio可选依赖组 (pluto)scripts/test_pluto_connection.py连通性验证脚本SDR 后端单元测试 23 项 (
tests/test_sdr_backend.py)
[1.0.9] - 2026-03-25¶
Added¶
API 公开接口控制: 52 个模块添加
__all__, 664 个公开符号autodoc2 配置:
module_all_regexes按__all__过滤文档,hidden_objects隐藏私有符号英文 PDF 文档标题自动切换
Removed¶
废弃的
phy/modulator.py,phy/demodulator.py占位模块及测试
Changed¶
18 处
Attributes:Google 风格 docstring 转为:ivarfield list 格式CI Node.js 运行时升级至 22, 全部 workflow 启用
FORCE_JAVASCRIPT_ACTIONS_TO_NODE247 处 blind except 替换为具体异常类型
循环 append 改为列表推导式/extend (9 处)
不必要的集合生成器、单元素 in 测试等代码质量优化
[1.0.8] - 2026-03-24¶
Fixed¶
autodoc2 参数/返回值解析: 32 个源文件从 Google 风格 docstring 转为 field list 格式
英文翻译同步: 867 个 .po 条目翻译/修复, 0 fuzzy / 0 empty
英文 PDF 文档标题从中文切换为英文
Changed¶
Release CI: 中英文文档并行构建, TeX Live/npm/字体缓存, 预估缩短 40%+ 耗时
Added¶
API 公开接口控制: 52 个模块添加
__all__, 664 个公开符号, 排除废弃模块和内部实现autodoc2 配置:
module_all_regexes按__all__过滤文档,hidden_objects隐藏私有符号Release CI: 中英文文档并行构建, TeX Live/npm/字体缓存, 预估缩短 40%+ 耗时
[1.0.7] - 2026-03-24¶
Fixed¶
PDF Mermaid 图表: 添加 pdfcrop 裁剪白边, 消除全页留白
PDF 代码块字体: 切换等宽字体为 DejaVu Sans Mono, 修复 box-drawing 字符缺失
PDF 特殊字符: 将源文件中 HarmonyOS Sans 不支持的 ↔ 替换为
<->secure_random_256: 修复 time_param=0xFFFFFFFF 时 32 位溢出
Added¶
模糊测试: 20 个 hypothesis 属性测试覆盖 CRC/scrambler/BCH/Polar/MAC 帧/AES-CCM 等 API
Changed¶
Release CI: 添加 semver 标签校验, 不合规标签构建失败
Release CI: 预发布标签自动标记为 GitHub Pre-release
Release CI: 补充 texlive-extra-utils (pdfcrop) 和 fonts-dejavu-core 安装
AGENTS.md: 新增版本与发布规范、文档构建规范章节
[1.0.6] - 2026-03-23¶
Fixed¶
PDF 代码块溢出: 启用 Sphinx verbatimforcewraps, 严重溢出 (>=100pt) 从 3426 降至 0
PDF 表格溢出: sed 后处理 longtable 列格式, 双语 PDF 均无严重溢出
英文 PDF 构建: 显式加载 xeCJK, 页边距扩展至 1.5cm
Release CI: 修复 artifact 路径, HTML 包排除 .doctrees 缓存
Changed¶
Release CI: 构建并上传双语 PDF + HTML 文档压缩包
Makefile: 新增
docs-pdf-en目标
[1.0.3] - 2026-03-23¶
Fixed¶
英文本地化: 手动翻译全部 API 文档中文残留条目 (common/phy/mac/sim/node 共 1200+ 条), 消除所有中文穿透
修复架构文档阶段数错误 (十二→十六)
统一"收发间隔"术语为 transceive interval
[1.0.2] - 2026-03-23¶
Added¶
英文本地化: 76 个 .po 文件全部翻译 (6205/6261 条目, 99.1%)
语言切换器: 侧边栏中文/English 切换按钮 (JS/CSS)
Makefile 目标:
docs-en,docs-i18n,i18n-updateCI 双语构建: docs.yml 同时生成中文和英文 HTML, 英文版部署至
/en/子路径
Fixed¶
PDF 文字堆叠: 消除全部 4 个 vbox overflow, hbox overflow 从 107 降至 86
LaTeX preamble: 移除重复
\usepackage{xeCJK}, 增加\linespread{1.25}和\sloppyruff 配置: 添加 RUF001 ignore, 允许字符串中的中文全角标点
[1.0.1] - 2026-03-22¶
Added¶
Makefile: 15 个构建目标, 统一 CI 和文档的命令来源
sphinxcontrib-mermaid 集成, 8 处文本图表转换为 Mermaid
markdownlint 配置 (
.markdownlint.json), 0 错误docs/explanation/index.md: Diataxis 四象限统一入口ruff per-file-ignores 配置, examples 目录豁免 F821/E402
Changed¶
CI (
ci.yml,release.yml) 全部改用 Makefile 目标7 篇文档中的 27 处 bash 代码块改为 literalinclude 或 make 命令
docs/index.md精简为 4 个 Diataxis 象限Mermaid 图表替换:
overview.md: 链路生命周期状态图mac-layer.md: 状态机 + 接入时序图architecture.md: TX/RX Pipeline 流程图data-flow.md: 全局收发流程图security.md: 配对状态机 + 密钥派生树
[1.0.0] - 2026-03-21¶
Added¶
协议解析文档系列 (
docs/explanation/)overview.md: SparkLink SLE 协议总览, 协议定位、栈结构、核心概念physical-layer.md: 物理层详解, 调制/帧结构/信道编码/TX-RX Pipelinemac-layer.md: MAC 层详解, 广播/接入/链路管理/信令/QoS/调度security.md: 安全子系统详解, 配对/密钥派生/帧加密/隐私/UWB安全data-flow.md: 端到端数据流, 从应用到空口的完整处理链路更新
docs/index.mdtoctree, 按从浅到深的顺序组织文档
Fixed¶
GFSK 调制器添加 mod_index [0.45, 0.55] 范围验证 (§6.2.1.1)
广播管理器添加广播间隔 [4ms, 2097.151875s] 范围验证 (§7.1.1)
广播管理器添加 [0, 2ms] 随机延迟计算方法 (§7.1.1)
Rust 加速模块 (
rust/nearlink_sdr_accel)PyO3 + maturin 构建的 Polar SC 解码器 Rust 实现
SSC 优化 (rate-0/rate-1 子树剪枝) + 标量 f/g 运算
Python 端自动检测, 不可用时回退纯 Python 实现
Pipeline 解码性能提升 >10x, 整体 pipeline 加速 2.2x (389ms → 174ms)
测试套件从 9.48s 降至 5.12s
Rust Polar 编码器 (蝶形 GF(2) 变换), pipeline 加速 3.9x (389ms → 101ms)
测试套件整体从 12.36s 降至 4.10s
Rust CRC 计算 (位级移位寄存器), 消除 Python 循环开销
Rust m 序列生成 (popcount 反馈优化), 消除 Python 循环开销
Pipeline 单次调用 1.36ms (纯 Python 基线 389ms, 加速比 ~280x)
Rust 加速安装工具 (
scripts/install_accel.py)自动检测 Rust 工具链, 安装 maturin, 编译加速模块
兼容 uv 和 pip 两种包管理方式
安装失败时静默回退, 不影响项目运行
Rust 质量工具链
核心逻辑抽取为纯 Rust 函数, 可直接
cargo test验证20 个 Rust 原生测试 (CRC/m序列/Polar编码/SC解码)
clippy lint (deny warnings) + rustfmt 格式化
CI 新增
rustjob: fmt + clippy + cargo test
CI 集成 Rust 加速构建
test/coverage/examples 三个 job 集成
dtolnay/rust-toolchain@stable+ maturin新增
install-acceljob: 验证install_accel.py脚本和加速模块加载修复 maturin 在 CI 子目录中使用错误 venv 的问题 (
--manifest-path替代cd rust)
Rust 加速操作指南 (
docs/how-to/rust-acceleration.md)安装方式 (自动/手动), 验证方法, 性能对比, 故障排除
仿真输出目录管理
所有仿真图表输出到
output/目录环境变量
NEARLINK_SDR_OUTPUT可自定义输出路径根目录 16 个历史 PNG 文件已从 git 追踪中移除
GitHub Actions CI 工作流 (
.github/workflows/ci.yml)lint: ruff 代码检查 (src/tests/examples)test: pytest 全量测试 + JUnit 报告coverage: 覆盖率统计与报告docs: Sphinx 严格模式构建 (-E -W)examples: 示例脚本独立运行验证 + 示例测试使用
astral-sh/setup-uv管理 Python 3.14 和依赖
GitHub Pages 文档部署工作流 (
.github/workflows/docs.yml)推送 master 分支或版本标签自动构建并部署 Sphinx 文档
支持分版本文档托管:
/latest/(master) +/v{X.Y.Z}/(标签)版本选择器 UI: 侧边栏下拉切换不同文档版本
基于
peaceiris/actions-gh-pages增量部署到gh-pages分支
文档 UI 升级: Furo 主题替换 sphinx-rtd-theme
深色/浅色模式自适应
移动端响应式布局
GitHub 仓库链接图标
Phase 16: 多用户干扰 + Doppler 时变信道仿真 (25 个测试用例)
Jakes 求和正弦模型: 替代原有独立 Rayleigh, 生成具有 J₀ 自相关的时间相关衰落
多用户干扰模型:
InterferenceConfig/add_interference()/compute_sinr()同信道干扰: 基于 SIR 的功率缩放
邻信道干扰: 频率偏移叠加
sim_doppler_link(): Doppler 扩展 vs FER 仿真sim_multi_user_interference(): 干扰用户数 vs FER/SINR 仿真sim_sir_sweep(): SIR 扫描 vs FER 仿真sim_doppler_multipath_link(): Doppler + ITU Indoor Office 多径联合仿真run_phase16_simulation(): 四面板可视化运行器
README.md: 项目说明与 CI 状态徽章
Changed¶
性能优化: 测试套件从 12.36s 降至 9.48s (减少 23%)
Phase 16 仿真函数
run_phase16_simulation()和示例doppler_interference()参数化 n_frames测试用 n_frames=5 替代默认 50, 在验证正确性的同时大幅降低仿真耗时
热点分析结论: Polar SC 解码器占 pipeline 45% 时间, 纯 Python 下已达优化极限, 递归/迭代/标量快速路径等方案均无显著提升, 进一步加速需 Cython/Numba 编译加速
文档代码示例重构: 从 markdown 内嵌 Python 代码迁移至独立示例工程
新增
examples/目录, 包含 5 个可独立运行的示例脚本examples/getting_started.py: GFSK/Polar+PSK/Pipeline/SleNode 入门示例examples/qos_management.py: QoS 管理全功能演示 (ARQ/HARQ/流控/优先级队列)examples/node_usage.py: 节点生命周期示例 (建连/收发/跳频/功率/配对/测量)examples/run_simulation.py: 全部仿真场景 (BER/Pipeline/Phase15/信道损伤/MAC/安全/AMC/HARQ)examples/custom_modulation.py: 自定义调制方式模板文档使用 MyST
literalinclude指令引用示例代码, 保持文档与实际代码同步tests/test_doc_examples.py重写为示例工程持久化测试 (34 个测试用例)
Added¶
文档全面更新 (Diataxis 四象限)
入门教程: 补充 SleNode 跳频/功率控制/Phase 15 集成仿真示例
架构说明: 新增 uwb_pulse/measurement_tx/rf_compliance/multitone/smf_scheduler/uwb_measurement_security/data_link 模块描述, 更新 SleNode 组件图
参考文档: 补充全部新模块 API 索引, sim 模块拆分 link_sim/usrp_sim
操作指南: node-usage 新增跳频/功率/接入/测量示例, run-simulation 新增 Phase 15 用法
标准映射: 补全 6.2.1.3/6.2.1.4/6.5.x/6.6/6.7/6.8/8.x/9.x/7.2.x 条款, 新增一致性测试章节
SDR 部署: 更新测试统计 (2592 测试/91% 覆盖率), Phase 15, 精简未实现列表
Phase 15: SleNode 集成仿真 (
sim/link_sim.py)sim_node_hopping_link(): 跳频数据链路仿真, 逐帧跳频通信/信道统计/FERsim_node_access_flow(): 完整接入流程仿真 (广播→扫描→接入→数据→断开)sim_node_channel_sweep(): 内置信道模型扫频, SNR-FER 曲线sim_node_power_adapt(): 功率自适应仿真, 连续失败时自动升功率sim_node_measurement(): 测量信号生成仿真run_phase15_simulation(): 四面板可视化运行器Phase 15 测试: 11 个测试用例, 覆盖全部仿真函数
SLE 节点实体增强 (
node.py) -- 完整建模能力集成跳频: 集成
FreqTable和data_link_hop(), 每次发送自动计算信道号功率控制: 集成
PowerController, 支持功率调整和查询时序调度: 集成
ScheduleManager, 接入完成后自动注册链路, 支持时隙推进SMF 调度: 可选集成
SMFTransmitScheduler, G 节点系统管理帧调度接入流程: 集成
BroadcasterAccessManager/InitiatorAccessManager/DiscoveryManager广播:
start_advertising()返回真实广播帧,on_broadcast_received()过滤+发现非链接态广播: 新增
start_non_connected_broadcast()方法信道模型: 仿真模式下可配置多径/衰落信道,
receive()自动应用信道效应USRP 硬件:
TransportMode.USRP时初始化收发器, 支持 IQ 硬件发送/接收测量信号: 新增
generate_measurement_signal()方法数据链路参数: 按帧类型自动初始化异步/同步参数
NodeConfig扩展: 频段/跳频参数/信道阻塞/功率范围/信道配置/USRP 配置/SMF 开关TxResult新增channel字段,stats新增 channel/tx_power_dbm/hop_param2NodeCallback新增 on_broadcast_received/on_discovery_complete/on_measurement_result节点测试: 从 46 增加到 95 个, 覆盖所有新功能
一致性测试框架 (
tests/conformance/) -- 标准第 10-13 章test_protocol.py: 协议一致性测试 (第 11 章)FT1/FT2/FT3/FT4 帧类型全覆盖 (广播/发现/非链接态/TT/ADL/SDL)
FT2: MCS6-12 × 导频密度 4/8/16 参数矩阵
控制面功能: 间隔更新/特性交互/版本交互/功率控制/PING
控制面流程: 广播帧过滤/接入白名单
系统管理帧/测量信令传输
test_rf.py: 射频一致性测试 (第 12 章)12.1 发射机: 功率等级/GFSK频偏/PSK EVM/频率容限/时钟精度/杂散
12.2 接收机: 灵敏度/最大输入/选择性/互调/RSSI/杂散发射
12.3 UWB: 信道频率/频谱模板/均方根误差
test_security.py: 安全一致性测试 (第 13 章)13.1 配对: 无输入/数字比较/口令/密码/OOB/PSK 六种鉴权方式
13.2 安全保护: 加密+完整性/仅完整性/重放防护/多MIC长度
13.3 隐私: 可解析随机地址生成与解析
13.4 UWB 测量安全: SLP/CTS 密钥派生/符号生成/TGap 计算
共 244 个一致性测试用例, 总测试数达 2532 个
安全信息分发信令 (
mac/security.py) -- 标准 9.3.3GNodeIRK(0x0143) / TNodeIRK(0x0144): 身份解析密钥分发 (解析算法 + IRK + IRKID)
GNodeAddress(0x0145) / TNodeAddress(0x0146): 媒体接入层标识分发 (类型 + 地址)
ResolutionAlgorithm / AddrType 枚举
组播安全信令 (
mac/security.py) -- 标准 9.3.2MulticastAlgorithmConfig(0x0148): 组播安全算法指示 (RAND + KDF类型 + 加密/完整性算法)
MulticastKeyConfig(0x0149): 组播密钥配置 (C = Kg XOR GK)
超宽带脉冲测量安全模块 (
phy/uwb_measurement_security.py) -- 标准 9.59.5.2 KDF 消息构建 (256-bit: 预留 || Label || Context)
9.5.3 密钥派生: SLPKey -> ctsInitContent -> ctsKey / ctsValue / ctsGap
9.5.3 inputContext (128-bit) 打包: 物理信道/测距方式/码长/符号/天线等参数
9.5.4 TGap 生成: ctsGap 移位截取 + chip 变换
9.5.5 CTS 测量符号: 符号索引 + SC 加扰序列生成, ctsVCounter 推进
66 个新测试用例 (
tests/test_security_ext.py)多音信号生成模块 (
phy/multitone.py) -- 标准 6.2.1.3基带多音信号生成 (N=1/2/4/8, 等幅等间隔对称分布)
标准表 6.2.4.2 参数: 频率间隔/初始相位集合/带宽适配
峰均比计算
接收机杂散发射校验 (
phy/rf_compliance.py) -- 标准 8.3.3间接覆盖章节审计 (17 项确认已实现, 补充至对标表)
27 个新测试用例 (
tests/test_multitone.py22 个 +tests/test_rf_compliance.py5 个)射频合规参数校验模块 (
phy/rf_compliance.py) -- 标准 8.2 ~ 8.48.2.1 输出功率等级分类与步进校验
8.2.2.1 GFSK 频率偏差校验 (7 种符号速率)
8.2.2.2 PSK EVM 校验 (BPSK/QPSK/8PSK)
8.2.2.3 频率容限校验 (2.4GHz/5GHz/sub-1GHz)
8.2.2.4/5 时钟精度校验 (激活态/休眠态)
8.2.3 GFSK 频段内杂散限值 / PSK 频谱模板
8.3.1 参考灵敏度查表 (GFSK + PSK 13 种 MCS × 7 带宽)
8.3.2 接收机选择性 / 频段外选择性 / 干扰互调
8.3.4 RSSI 测量精度
8.4 UWB 信道频率 / 频谱模板 / NRMSE 校验
RFComplianceReport 综合校验报告
SMF 发送调度模块 (
mac/smf_scheduler.py) -- 标准 6.6.36.6.3.1.1 通过接入启动调度 (smf_params_from_access)
6.6.3.1.2 通过广播启动调度 (smf_params_from_broadcast)
SMFTransmitScheduler: 周期性发送计划 / 频点轮换 / 帧构建
链路信令/偏移信令注册与管理
调度参数动态更新
125 个新测试用例 (
tests/test_rf_compliance.py93 个 +tests/test_smf_scheduler.py32 个)UWB 脉冲波形模块 (
phy/uwb_pulse.py) -- 标准 6.2.1.4UWBPulseConfig: 500MHz/1300MHz 带宽配置
kaiser_pulse: Kaiser 窗脉冲波形生成
chip_modulate: 芯片调制 (r(t)·cos 载波调制)
normalized_cross_correlation: 归一化互相关函数
validate_pulse: 脉冲波形验证 (主瓣/旁瓣)
非链接态广播传输 (
mac/access.py) -- 标准 7.1.7.2NonConnectedBroadcastConfig: 非链接态广播配置
NonConnectedBroadcastManager: 构建携带非链接态广播信息的扩展广播帧
parse_non_connected_broadcast: 解析非链接态广播帧
支持加密/非加密传输 (GIV/GSKD)
支持 2.4GHz/5.xGHz 跳频地图
49 个新测试用例 (
tests/test_uwb_pulse.py29 个,tests/test_non_connected_broadcast.py20 个)测量链路传输与测量量计算 (
phy/measurement_tx.py) -- 标准 6.7/6.8MeasLinkParams: 窄带跳频测量/感知链路参数模型 (6.7.2/6.7.3)
event_schedule/event_start_times: 事件组时间资源调度 (6.7.4)
ds_twr_2msg/ds_twr_3msg: 双边两/三消息飞行时间估计 (6.8.5.1/6.8.5.2)
angle_estimate: 到达角/出发角估计 (6.8.5.3)
extract_cir: 信道冲击响应测量量提取 (6.8.5.4)
range_doppler: 距离多普勒测量量 (6.8.5.5)
CSI 反馈量化与还原 (6.7.5)
UWBMeasLinkParams: 超宽带脉冲测量链路参数 (6.8.3/6.8.4)
uwb_event_sender/uwb_event_count_per_mode: UWB 事件调度
54 个新测试用例 (
tests/test_measurement_tx.py)链路管理扩展方法 (
mac/link_manager.py) -- 标准 7.2.20 ~ 7.2.257.2.20 广播链路管理: 建立/参数更新/跳频地图更新/断开
7.2.21 系统管理帧链路管理: 参数更新请求/指示, 时间片更新, 信令终止
7.2.22 异步组播链路管理: 建链/参数交互/参数更新/重配置/断开
7.2.23 窄带跳频测量: 能力交互/配置/上报/行为指示/坐标/时延
7.2.24 超宽带脉冲测量与感知: 能力/配置/上报/行为/流程/代理感知
7.2.25 窄带跳频感知: 流程/能力/配置/上报/行为/代理感知/配置更新
资源预留: 资源预留指示/终止
60 个新测试用例 (
tests/test_link_mgmt_ext.py)异步/同步数据链路传输规程 (
phy/data_link.py) -- 标准 6.5.1 ~ 6.5.3AsyncDataLinkParams / SyncDataLinkParams: 异步/同步数据链路参数模型
AsyncFlowControl / SyncFlowControl: 流控决策 (单播/组播/双向组播/反馈组播)
SyncDataDiscard: 同步数据丢弃机制 (本地基准值/发送序列号/有效载荷计数)
EventGroupSet: 事件组集合调度 (6.5.2.5)
PeriodicServiceAdaptor: 周期适配 SDU 分段/重组/时间同步 (6.5.3.2)
AperiodicServiceAdaptor: 非周期适配分片/重组 (6.5.3.3)
同步等时链路管理 (
mac/link_manager.py) -- 标准 7.2.19request_isochronous_link_setup: 建链请求 (7.2.19.1)
request/respond_isochronous_param_exchange: 参数交互 (7.2.19.2)
request/indicate_isochronous_param_update: 参数更新 (7.2.19.3)
发现流程管理器 (
mac/access.py) -- 标准 7.1.2DiscoveryManager: 查询请求/响应流程, 支持白名单过滤
广播设备端查询请求处理和响应构造
发现设备端查询请求构造和响应处理
角色切换信令 (
mac/link_manager.py) -- 标准 7.2.15request_role_switch: 发送 RoleSwitchRequest 信令
execute_role_switch: 发送信令并交换角色
PING 流程 (
mac/link_manager.py) -- 标准 7.2.16send_ping / respond_ping
链路断开信令 (
mac/link_manager.py) -- 标准 7.2.17request_disconnect: 驱动状态机断开链路
异步链路参数更新 (
mac/link_manager.py) -- 标准 7.2.18request/respond_async_param_update
新增 16 个测试用例, 总计 1849 个全部通过
广播帧过滤器 (
mac/broadcast.py) -- 标准 7.1.5BroadcastFilter: 支持地址/名称/UUID/服务数据/厂商数据过滤
FilterCondition: 单条件定义, 支持取反
FilterOp: AND/OR/NOT 组合运算
接入白名单 (
mac/access.py) -- 标准 7.1.6AccessWhitelist: 设备地址白名单, 启用后仅允许白名单内设备接入
集成到 BroadcasterAccessManager 和 InitiatorAccessManager
控制面流程便捷方法 (
mac/link_manager.py) -- 标准 7.2.4-7.2.12特性交互 (7.2.4): request/respond_feature_exchange
版本交互 (7.2.5): request_version_exchange
数据长度更新 (7.2.6): request/respond_data_length_update
信道质量上报配置 (7.2.7): configure_channel_report
跳频表更新 (7.2.8): update_hop_table
跳频地图更新 (7.2.9): update_hop_map
最少可用信道 (7.2.10): request_min_channels
CRC 切换 (7.2.11): request/indicate_crc_switch
物理层更新 (7.2.12): request/indicate_phy_update
新增测试: BroadcastFilter 11 项, AccessWhitelist 10 项, 控制面流程 15 项
系统管理帧编解码模块 (
mac/smf.py) -- 标准 6.6SMFHeader: 分段指示 + 信令编号
ScheduleSignaling: 调度信令 (生效时隙/间隔/帧类型/带宽/频点表)
LinkSignaling: 链路信令 (逻辑链路标识/时间资源条目)
OffsetSignaling: 偏移信令 (逻辑链路/偏移量/单位)
SystemManagementFrame: 完整帧组装解析与分段重组
非链接态窄带跳频测量信息配置 (
mac/broadcast.py) -- 标准 7.1.4.10NarrowbandMeasurementConfig: 41 个字段, 含可变长跳频信道位图
非链接态超宽带脉冲测量信息配置 (
mac/broadcast.py) -- 标准 7.1.4.11UWBPulseMeasurementConfig: 38 个字段, 含可变长频点列表
系统管理帧与测量配置测试 (
tests/test_smf.py)44 个测试覆盖全部 pack/unpack 环回、边界值、分段重组
覆盖率补充测试 (
tests/test_coverage_gaps.py)67 个测试覆盖 20+ 模块的未覆盖分支/边界条件
涵盖 scrambler、link_control、link_manager、frame、access、broadcast、 security_manager、mac_interface、psk、tx/rx_pipeline、polar、scheduler 等
总体覆盖率 91%, 核心模块覆盖率 97%+
E310 硬件验证脚本 (
scripts/hw_verify.py)6 步验证流程: 设备初始化 → 频率/信道 → 增益 → IQ 环回 → PHY 帧环回 → 跳频
支持
--mock模式和--addr真实设备, 25/25 测试项
PHY 回环测试脚本 (
scripts/phy_loopback.py)多帧类型 (FT2/FT3/FT4) × 多 MCS 全链路 BER/FER 统计
经 SLETransceiver + LoopbackBuffer 完整收发链路
FT3/FT4 多码块回环测试 (
TestMultiBlockLoopbackintest_ft_pipeline.py)32 字节载荷触发双码块分割场景的全链路闭环验证
secure_random_256()安全随机函数 (标准 6.10.7), 基于 KDF 生成 256-bit 安全序列sync_sequence.py重构: 同步信号 5/6 改用crypto.secure_random_256公共 APIlink_manager.py新增休眠/唤醒状态机 (标准 7.2.14)DORMANT / WAKING 状态, ENTER_DORMANT / WAKE_UP / WAKE_COMPLETE 事件
is_dormant属性,on_dormant_enter/on_wake_complete回调
USRP 环回仿真引擎 (
sim/usrp_sim.py)LoopbackBuffer: TX→RX 环回缓冲区, 支持信道模型注入USRPLoopbackSim: 端到端仿真器, 集成 PHY/MAC 全链路支持 IQ 级、PHY 帧级、MAC 数据帧级、信令级环回
跳频序列环回与批量帧仿真
MockUSRP/MockStreamer 增加 loopback 模式, TX 发射数据可直接送入 RX
TxResult新增mac_bytes字段, 便于接收端确定解码长度33 项 USRP 仿真测试覆盖全链路 (FT1-FT4、SleNode 双节点、信令环回)
get_polar_decoder()缓存工厂函数, 消除重复创建 PolarDecoder 的开销
Fixed¶
FT3/FT4 多码块载荷解码 (
rx_pipeline.py decode_payload)segment_with_crc多码块场景下, 每块附带 per-segment CRC24B旧代码直接取拼接后末尾 b_len 比特, 包含了 per-segment CRC 而非原始数据
修复为逐块剥离 per-segment CRC24B 并正确处理末块前端补零对齐
Changed¶
Polar SC 解码器引入 SSC 优化
预计算子树类型 (rate-0 / rate-1 / partial), 剪枝跳过纯冻结/纯信息子树
_build_node_types()改用前缀和 + 迭代, 替代递归 + np.allrate-1 子树: 硬判决 + 极性变换直接得到信息位, 跳过逐位递归
递归调用从 89100 降至 26700 (70% 减少), 解码耗时下降 53%
PolarDecoder 实例缓存消除批量解码的初始化开销
MAC 环回总耗时 0.443s → 0.289s (35% 提升)
Polar SC 解码器改用预分配二维数组, 消除递归中的数组分配开销
加扰器 LFSR 输出使用周期缓存 +
np.tile, 消除逐比特 Python 循环移除 14 个
run_phase*可视化冗余测试 (原占测试总时长 96%)测试时间: 170s → 4.16s (提速 41 倍)
SDR 部署文档更新, 反映 P0-P2 任务全部完成, 当前阻塞于 E310 硬件就绪
[0.26.0] - 2026-03-21¶
Added¶
Phase 14 双节点端到端仿真 (
sim/link_sim.py)sim_dual_node_link(): 双 SleNode 数据交换仿真, 测量 FER 与字节误码率sim_dual_node_secure_link(): 配对 + 加密双节点通信仿真, 明文/密文 FER 对比sim_dual_node_mcs_adapt(): MCS 自适应仿真, 跟踪 MCS 等级与成功率变化_run_dual_frames(): 多 SNR 帧传输内部辅助函数run_phase14_simulation(): 2x2 可视化 (FER/BER、明文/密文、MCS 历史、成功率)tests/test_link_sim_phy.py: 5 个测试 (TestDualNodeLink + test_run_phase14)
测试覆盖率补充: 96% (345 miss, 新增 32 个测试, 1621 → 1653)
tests/test_node.py: 新增 10 个测试 — 配对完成/失败流程、加密收发、信令发送、默认回调tests/test_security.py: 新增 14 个测试 — 全部 pack/unpack 输入校验 ValueError 路径tests/test_crypto.py: 新增 2 个测试 — NO_INPUT/PASSWORD_VERIFY 鉴权方式确认码tests/test_channel.py: 新增 4 个测试 — 私有方法 (rayleigh/rician/multipath) 和零功率噪声tests/test_measurement.py: 新增 2 个测试 — TYPE_2 扰动索引循环覆盖
Fixed¶
node.py接收端不再调用on_tx_feedback(), 修复接收侧 QoS 状态污染仿真循环中 ARQ 重传锁定问题: FER 测量模式下每帧独立, 失败后清除 ARQ 挂起状态
node.py_setup_crypto()处理integrity_key为 None 的情况 (认证加密模式)
Removed¶
code_block_seg.py死代码清理: 移除 53 行不可达代码, 覆盖率 78% → 100%R == 1.0分支 (速率表中无 1.0 速率)R_adj <= 0守卫 (所有标准速率 R_adj > 0)_subsegment_last_block子分段路径 (K_1024 > threshold_1024 恒成立)_find_rate_str辅助函数及 5 个关联测试
[0.25.0] - 2026-03-21¶
Added¶
SLE 节点实体类 (
node.py): 统一收发接口, 整合 MAC/PHY 各模块NodeConfig: 节点配置 (地址、角色、帧类型、MCS、带宽、导频、加密等)SleNode: 节点主体, 链路生命周期管理 (广播/扫描/接入/配对/数据交换/断连)send()/transmit()/receive(): 数据收发接口, 集成 QoS 队列与 ARQ配对流程:
start_pairing()/process_pairing_message()驱动安全子系统MCS 自适应:
recommended_mcs/update_mcs()基于链路质量动态调整状态回调:
NodeCallback通知状态变迁、连接、断开事件_build_ctrl_info(): 从 QoS 字段构建 A2 物理层控制信息_build_ctrl_bits(): 兼容原始比特级控制信息构建tests/test_node.py: 36 个测试覆盖初始化、生命周期、收发、回调、MCS、信令、配对
测试覆盖率提升: 85% → 96%, 新增 84 个测试 (1496 → 1580)
tests/test_link_sim_phy.py: Phase 1-13 仿真测试 (74 个测试)_ber/_apply_cfo/_channel_impair辅助函数测试sim_gfsk_link/sim_psk_link/sim_polar_coded_psk_link无编码/编码 BER 仿真sim_frame_link帧级仿真 (FT2/FT3/FT4, 多种导频配置)sim_channel_eq_link信道均衡 (AWGN/Rayleigh/Rician/multipath, ZF/MMSE)sim_hopping_link跳频链路 (多带宽, 信道阻塞)sim_pipeline_link/sim_pipeline_channel_link全链路 Pipeline 仿真run_phase1_simulation~run_phase13_simulation可视化函数验证
tests/test_measurement.py: 测量信号补充测试 (10 个测试)8 音信号, 无效参数边界, type2 扰动路径, 随机天线对排序
QoS 服务质量管理模块 (
mac/qos.py): 实现标准 6.5 节数据传输质量控制ArqState: 异步/同步链路 ARQ 序列号管理 (FT1 1-bit / FT3/FT4 5-bit SN), ACK/NACK 反馈处理
HarqController: TB 模式与 CBG 模式 HARQ 反馈编解码, 部分重传决策 (MCS=15)
FlowController: 发送缓冲区流控管理, 高/低水位背压机制
LinkQualityTracker: 滑动窗口 FER 估计, AMC MCS 自适应建议, LQI 字段编解码
TxQueue: 5 级优先级发送队列, 重传优先, 容量限制
QosManager: 集成管理器, 统一 ARQ/HARQ/流控/质量跟踪/队列, 提供控制信息字段接口
QosLink (
phy/mac_interface.py): 带 QoS 管理的端到端数据链路封装, 自动填充控制信息字段Phase 13 QoS 仿真 (
sim/link_sim.py): QoS ARQ 重传/AMC 自适应/流控背压仿真与可视化96 个测试 (69 单元 + 13 集成 + 14 仿真), 全部通过
端到端集成测试增强: 新增 18 个 MAC-PHY 集成测试 (1382 → 1400)
TestEncryptedPhyRoundtrip (3 个测试): 配对→加密→PHY 传输→解密验证, 多帧 payload_count 递增, MIC 篡改拒绝
TestMultiFrameTypeIntegration (6 个测试): FT1/FT2/FT3/FT4 帧类型 roundtrip, 多 MCS 等级扫描, 多种信令类型
TestNoisyChannelMacData (3 个测试): AWGN 信道高/低 SNR MAC 数据传输, 广播帧含噪声传输
TestLinkStateDrivenExchange (3 个测试): 链路状态机驱动双向数据交换、断开、重连
TestMultiLinkConcurrentData (3 个测试): 多链路独立数据传输、调度器分发帧、信令/数据交织
测试覆盖率补充: 总体 84% → 85%, 新增 28 个测试 (1354 → 1382)
tests/test_modulator.py: TestSLEDemodulator (3 个测试) —demodulator.py0% → 100%tests/test_channel.py: TestDoppler (6 个测试) —channel.py88% → 92%tests/test_link_manager.py: TestPairingTransitions + TestSupervisionCheck (8 个测试) —link_manager.py89% → 95%tests/test_code_block_seg.py: TestSubSegmentation + TestSubsegmentLastBlockDirect + TestFindRateStr (11 个测试) —code_block_seg.py67% → 78%
sim/link_sim.pyPhase 12: AMC 自适应调制编码 + HARQ 重传 + 跳频多径仿真sim_amc_throughput: 全 MCS (0-12) 吞吐量与 FER 扫描, AMC 包络线选择
sim_harq_link: HARQ 重传链路仿真, 对比有/无重传 FER 与吞吐量
sim_hopping_multipath_link: 跳频 vs 固定信道 Rayleigh 衰落 FER 对比
run_phase12_simulation: 6 子图可视化 (FER/吞吐量/MCS 选择/HARQ/跳频)
tests/test_link_sim_mac.py: 15 个 Phase 12 仿真测试TestAmcThroughput: AMC 吞吐量包络、MCS 选择、FER 单调性
TestHarqLink: HARQ FER 改善、平均传输次数约束、吞吐量
TestHoppingMultipathLink: 跳频链路 FER 范围与长度一致性
文档更新: 补充 Phase 9-12 仿真、安全模块、测量帧等缺失模块
docs/explanation/architecture.md: MAC 层模块表新增 access/scheduler/security, 仿真阶段补全至 Phase 12docs/explanation/standard-mapping.md: 新增第 9 章安全子系统、6.2.3/6.2.4/6.3.6-6.3.11 条款映射docs/how-to/run-simulation.md: 新增 Phase 9-12 操作指南 (MAC 帧仿真/安全仿真/AMC/HARQ/跳频)docs/reference/index.md: 新增 mac_interface/measurement/access/scheduler/security 等 8 个模块引用
mac/security_manager.py: 安全流程集成管理模块 (标准 9.2-9.4)ECDHKeyPair: P-256 椭圆曲线密钥对生成与 ECDH 共享密钥计算
PairingManager: 配对状态机, 驱动 G/T 节点间配对信令交互
FrameCryptoContext: 帧级 AES-CCM 加解密上下文, 管理 payload_count
run_pairing_procedure: 端到端配对流程 (仿真/测试用)
mac/link_manager.py: 扩展链路状态机, 新增 PAIRING 状态LinkState.PAIRING: 配对态 (CONNECTED<->PAIRING)
EventType: START_PAIRING, PAIRING_COMPLETE, PAIRING_FAILED 事件
tests/test_security_manager.py: 31 个安全流程集成测试sim/link_sim.pyPhase 11: 接入→配对→加密端到端仿真sim_secure_link: 接入建链 + ECDH 配对 + AES-CCM 加密数据帧 PHY 传输
sim_encrypted_vs_plain: 加密与明文传输 FER 对比
sim_pairing_signaling_phy: 配对信令经 PHY 管道传输成功率
run_phase11_simulation: 4 子图可视化
tests/test_link_sim_mac.py: 11 个 Phase 11 仿真测试TestECDHKeyPair: P-256 密钥对生成与共享密钥一致性
TestPairingManagerBasic: 配对管理器基本功能与状态转换
TestPairingFlow: 完整信令交互流程 (公钥交换/随机数/确认码)
TestPairingFailure: 配对失败场景 (错误确认码/失败消息)
TestRunPairingProcedure: 端到端配对验证
TestFrameCryptoContext: 帧加密/解密/篡改检测/AAD
TestPairingThenEncryption: 配对后加密数据传输集成验证
sim/link_sim.pyPhase 10: 多链路调度仿真sim_multi_link: 多链路超帧内分时传输, 统计总体 FER 和每链路 FER
sim_access_scheduled_link: 接入建链 + 调度器驱动数据传输端到端仿真
sim_event_group_timing: 事件组时序计算与资源利用率分析
sim_superframe_capacity: 超帧容量分析 (链路数-冲突-利用率)
run_phase10_simulation: 可视化入口 (4 子图)
tests/test_link_sim_mac.py: 17 个 Phase 10 仿真测试tests/test_mac_phy_integration.py: MAC-PHY 集成联调测试扩展 (12 个新测试)TestBroadcastFramePhy: 广播帧/扩展广播帧/接入响应帧通过 PHY pipeline 全链路
TestAccessPhyIntegration: 接入流程各阶段帧经 PHY encode/decode 的端到端验证
TestSchedulerPhyIntegration: 调度器事件调度表驱动的帧传输与时序一致性
TestFullStackIntegration: 接入+调度器+PHY 完整协议栈联调
mac/scheduler.py: 新增时序调度器模块 (标准 6.3/6.6/7.2)SlotCounter: 30 bit 系统时隙计数器 (Tsys=125μs)
EventTimingParams: 事件组计时参数
TimeSlice: 超帧内时间片配置
Superframe: 超帧管理 (链路注册/冲突检测/活动区间)
EventGroupScheduler: 事件组调度 (TX/RX 窗口计算)
ScheduleManager: 综合调度管理器 (SMF + 事件组 + 收发间隔)
MultiLevelInterval: 31 级多级收发间隔
tests/test_scheduler.py: 62 个调度器测试mac/access.py: 新增接入流程管理模块 (标准 7.1.3)negotiate_gt_role: GT 角色协商逻辑
BroadcasterAccessManager: 广播方接入管理 (阶段 a/c)
InitiatorAccessManager: 接入发起方管理 (阶段 b/d)
run_access_procedure: 端到端接入流程仿真
tests/test_access.py: 24 个接入流程测试phy/measurement_frame.py: 新增测量帧结构组装模块 (标准 6.3.6-6.3.11)build_nack_feedback: 半可靠组播 NACK 反馈序列 (6.3.6)
equalization_guard: 均衡保护序列 (6.3.7)
build_measurement_frame_1: 测量帧类型 1 组装, 先发/后发节点 (6.3.7)
build_measurement_frame_2: 测量帧类型 2 (纯测量信号) (6.3.8)
build_measurement_frame_3: 测量帧类型 3, 位置测量初始化 (6.3.9)
build_measurement_frame_4: 测量帧类型 4, UWB 初始化同步 (6.3.10)
build_uwb_sync_field / build_uwb_measurement_field / build_uwb_pulse_measurement_frame: 超宽带脉冲测量帧 (6.3.11)
tests/test_measurement_frame.py: 34 个测量帧结构测试docs/how-to/sdr-deployment.md: SDR E310 部署规划与 MAC 层基础设施分析mac/security.py: 新增配对信令模块 (标准 9.2)16 个配对消息类型 (0x0133-0x0149): PairingInitiate, PairingRequest, PairingResponse, PairingConfirm, PairingInitialInfo, TNodeConfirmCode, RaMessage, RbMessage, GNodeConfirmCodeWithRandom, TNodeConfirmCodeWithRandom, GNodeConfirmCode, GNodeDHKeyVerify, TNodeDHKeyVerify, PairingFailure, RgMessage, RtMessage
mac/signaling.py: 注册表扩展至 128 个信令类型 (新增 16 个配对信令)mac/broadcast.py: 新增 3 个广播帧子信息结构TransportIndicationInfo (7.1.4.3): 传输指示信息, 支持 2.4GHz/5GHz 跳频地图
NonLinkedBroadcastLinkInfo (7.1.4.8): 非链接态广播链路信息
QueryRequestFilterInfo (7.1.4.9): 查询请求过滤信息
tests/test_security.py: 52 个配对信令测试tests/test_broadcast.py: 18 个广播子信息结构测试mac/crypto.py: 新增安全子系统加密模块 (标准 9.3/9.4)KDF 密钥派生函数 (AES-CMAC, HMAC-SM3 预留)
AES-CCM 认证加密/解密
CCM Nonce 构建 (异步/同步链路, 其他链路)
初始化向量计算 (FT1-FT4)
会话密钥派生 (SK/EnK/InK)
链路密钥和 DH Key 验证码密钥派生
确认码/数字比较码/混淆算法
组播密钥管理 (GK/GSK/GEnK/GInK)
隐私管理 (可解析随机标识生成/验证)
tests/test_crypto.py: 54 个加密模块测试phy/sync_sequence.py: 新增同步信号 5/6 (标准 6.2.3.5/6.2.3.6)安全随机函数序列生成 (6.10.7, KDF-AES-CMAC 256 位)
sync_signal_5: GFSK 安全随机同步序列, 收发分离
sync_signal_6: 无相位旋转 BPSK 安全随机同步序列
phy/measurement.py: 新增位置信息测量信号模块 (标准 6.2.4)measurement_signal_1: 四种安全类型单音测量信号 (6.2.4.1)
measurement_signal_2: 多音测量信号波形生成 (6.2.4.2)
antenna_pair_order_sequential / antenna_pair_order_random: 天线对排序 (6.2.4.3)
tests/test_sync_sequence.py: 11 个同步信号 5/6 测试tests/test_measurement.py: 36 个测量信号测试
[0.24.0] - 2026-03-20¶
Added¶
mac/link_control.py: 新增 57 个链路控制信令类型 (0x0035-0x0070)Channel5GStatusIndication / HopMap5GUpdate / BroadcastHopMap5GUpdate: 5G 信道与跳频管理
MultiIntervalUpdateRequest/Response/Indication: 多间隔更新
SystemTimeIndication: 系统时间指示
AsyncMulticastLinkSetup / AsyncMulticastParamExchange* / AsyncMulticastParamUpdate*: 异步组播链路管理
NarrowbandMeasCap*/FreqTable*/MeasConfig/MeasReport/MeasAction: 窄带跳频测量
CoordinateRequest/Report/Config: 坐标管理
NarrowbandDelayRequest/Response: 窄带时延
AsyncTTLinkSetup: 异步 TT 链路建链
UWBMeasCap*/Config/ConfigFeedback/Report: UWB 脉冲测量
UWBSensingCap*/Config/ConfigFeedback/Report/Action: UWB 感知
ResourceReservation/Terminate: 资源预留
NarrowbandSensing*/ProxySensing*/SensingCap*/SensingConfig*: 窄带感知
SensingDeviceStatusReport: 感知设备状态
NarrowbandMeasConfigUpdate*: 窄带测量配置更新
UWBSensingProcess*/UWBProxySensing*/UWBMeasAction: UWB 扩展感知
mac/signaling.py: 注册表扩展至 112 个信令类型tests/test_link_control_ext.py: 新增 114 个往返测试覆盖全部新信令
Fixed¶
ResourceReservation: 修复重复 unpack 方法, 修正 BYTE_LENGTH 为 13
[0.23.0] - 2026-03-20¶
Added¶
mac/link_control.py: 新增 14 个链路控制信令类型 (0x0020-0x002E)AsyncLinkParamRequest/Response: 链接态异步链路参数更新
IsochronousLinkSetup: 同步等时链路建链指示 (56B, 40 字段位域编码)
IsochronousParamExchangeRequest/Response: 同步等时参数交互 (52B)
IsochronousParamUpdateRequest/Indication: 同步等时参数更新
BroadcastLinkSetup: 链接态广播链路建立 (44B, 含 80-bit 跳频地图)
BroadcastLinkParamUpdate: 广播链路参数更新 (32B)
BroadcastHopMapUpdate: 广播链路跳频地图更新 (14B)
SMFParamUpdateRequest/Indication: 系统管理帧参数更新
SMFTimeSlotUpdateRequest/Response: 系统管理帧时间片更新
mac/signaling.py: 注册表扩展至 55 个信令类型tests/test_link_control_ext.py: 新增 20+ 往返测试覆盖所有新信令
[0.22.0] - 2026-03-20¶
Added¶
sim/link_sim.pyPhase 9: MAC 帧级端到端仿真sim_mac_signaling_link: 信令帧经 PHY 全链路的解码成功率仿真sim_mac_data_link: 异步数据帧多载荷大小的字节级 BER 和 FER 仿真sim_mac_mux_link: 控制+数据复用帧的端到端完整性仿真run_phase9_simulation: 综合仿真入口, 含三子图输出三个仿真函数均支持 Rayleigh/Rician/多径信道、载波频偏和 ZF/MMSE 均衡器
_channel_impair: 信道损伤统一辅助函数
tests/test_link_sim_mac.py: 13 个仿真测试覆盖高 SNR 正确性、返回值结构、 统计单调性、Rayleigh+MMSE 信道场景和频偏退化验证
Changed¶
sim/link_sim.py__main__入口重构为 dispatch 字典, 支持 phase1-phase9
[0.21.0] - 2026-03-20¶
Added¶
phy/mac_interface.py: MAC-PHY 集成适配层bytes_to_bits/bits_to_bytes: MAC 字节流与 PHY 比特数组互转mac_to_iq/iq_to_mac: MAC 帧到 IQ 信号的发射/接收适配signaling_to_iq/iq_to_signaling: 信令消息直接转 IQ 信号roundtrip_signaling/roundtrip_data: 端到端回环验证工具
tests/test_mac_phy_integration.py: 15 个集成测试覆盖比特转换、IQ 发射、 回环验证、信令与数据帧全链路
[0.20.0] - 2026-03-20¶
Added¶
mac/link_manager.py: 链路管理状态机实现 (标准 7.1/7.2)状态: IDLE / BROADCASTING / SCANNING / ACCESSING / CONNECTED / DISCONNECTED
G/T 节点角色协商与切换 (7.1.7.1, 7.2.15)
事件驱动架构,支持广播、发现、接入、信令收发、断开全流程
监督超时检测、参数更新、回调接口
tests/test_link_manager.py: 27 个测试用例覆盖状态转换、接入流程、控制面信令、 角色切换、断开流程和完整生命周期
[0.19.0] - 2026-03-20¶
Added¶
mac/link_control.py: 新增 22 类控制面信令编解码, 覆盖安全流程、信道管理、PHY 更新、 角色切换、PING、超时更新、广播/组播断开等 (标准 7.3.2.6-7.3.2.63)mac/signaling.py: 信令注册表从 17 扩展至 41 条目tests/test_link_control_ext.py: 新增 28 个信令 roundtrip 和注册表测试
Fixed¶
mac/link_control.py: 修正 IntervalUpdateRequest DATA_TYPE_INDEX 从 0x0001 → 0x0000, IntervalUpdateResponse 重命名为 IntervalUpdateIndication (0x0002), 新建正确的 IntervalUpdateResponse (0x0001, 1 字节)mac/link_control.py: 修正 AsyncMulticastReconfig BYTE_LENGTH 从 31 → 30, 修正 struct unpack 偏移对齐mac/link_control.py: 修正 AsyncUnicastUpdate pack 输出与标准 15 字节一致
[0.18.0] - 2026-03-20¶
Added¶
mac/broadcast.py: 广播帧编解码实现 (标准 7.1.4), 含 BroadcastFrame、 ExtAdvResourceConfig、DiscoveryAccessResourceConfig、AccessBasicInfo、 AccessRequestInfo、AccessResponseInfo、SystemMgmtFrameInfo 等 7 个数据类tests/test_broadcast.py: 广播帧 20 个测试用例
[0.17.0] - 2026-03-20¶
Added¶
docs/explanation/principles.md: 物理层原理讲解, 含 Polar 编码/SC 解码、PSK/GFSK 调制、信道模型、均衡器、CRC、码块分割、加扰等数学推导docs/conf.py: LaTeX/PDF 输出配置, 使用 XeLaTeX + HarmonyOS Sans SC 字体docs/how-to/build-docs.md: PDF 构建说明MyST 数学公式扩展 (dollarmath, amsmath)
[0.16.0] - 2026-03-20¶
Added¶
sim/link_sim.py: Phase 8 多帧类型 + 信道 + 均衡器综合仿真FT1/FT2/FT3/FT4 在 AWGN 和 Rayleigh+MMSE 下的 BER/FER 对比
CLI:
uv run python -m nearlink_sdr.sim.link_sim phase8
[0.15.0] - 2026-03-20¶
Added¶
phy/channel.py:last_taps属性,apply_fading缓存信道系数供均衡器复用sim/link_sim.py:sim_pipeline_channel_link()支持eq_method参数 (none/zf/mmse)平坦衰落 (Rayleigh/Rician) 采用
equalize_1tap, 多径采用equalize_mmse_freqRayleigh + MMSE 均衡: BER 从 ~16% 错误地板降至 0 (5dB 即收敛)
Fixed¶
修复
sim_pipeline_channel_link中均衡器使用独立随机信道系数的问题
[0.14.0] - 2026-03-20¶
Changed¶
common/polar.py: 可靠性序列lru_cache缓存, SC 解码_f/_g内联, 编码器向量化蝶形运算phy/psk.py: RRC 滤波器lru_cache缓存, 避免重复计算Pipeline 仿真速度提升 37% (3.05ms → 1.68ms/frame)
[0.13.0] - 2026-03-20¶
Added¶
sim/link_sim.py: 多径信道 + 频率偏移 Pipeline 仿真 (Phase 7)sim_pipeline_channel_link(): 支持 AWGN/Rayleigh/Rician 信道 + 载波频偏run_phase7_simulation(): 6 种信道配置的 BER/FER 曲线生成
[0.12.0] - 2026-03-20¶
Added¶
sim/link_sim.py: 全链路 Pipeline 仿真 (Phase 6), 使用tx_chain/rx_chain端到端 BER/FER 仿真sim_pipeline_link(): 支持 FT1(GFSK)/FT2(QPSK)/FT3(QPSK)/FT4(BPSK) 全帧类型run_phase6_simulation(): 5 种 MCS/帧类型配置的 BER/FER 曲线生成
Fixed¶
FT3/4 仿真中
m_seq_index误传 PID 导致KeyError, 修正为 0-5 范围
[0.11.0] - 2026-03-20¶
Added¶
TX/RX Pipeline 全面支持 FT1(GFSK 无 Polar)/FT3(Polar 256 + segment_with_crc)/FT4 帧类型
test_ft_pipeline.py: FT1(5)/FT3(4)/FT4(4)/帧同步(2) 共 15 个测试帧同步支持 FT3(
sync_signal_3) 和 FT4(sync_signal_4)
Fixed¶
gfsk.py: 解调器末尾不完整符号导致 off-by-one, 改用向上取整rx_pipeline.py: FT3/4 头部使用 CRC24B(非 CRC12), 修正k_info计算rx_pipeline.py: FT3/4 payload 解码后剥离 Polar 前端补零
[0.10.0] - 2026-03-20¶
Added¶
TV202(MCS7 多码块)/TV205(MCS6)/TV206(MCS6 大载荷)/TV209(MCS11 8PSK) 全链路 pipeline 测试
RX roundtrip + loopback 测试覆盖 TV202/205/206/209
Fixed¶
frame.py: 8PSK 解调缺失, 添加星座点逆映射frame.py: 8PSK 调制比特数非 3 倍数时自动补零对齐frame.py:_bits_to_symbols_count添加 8PSK 支持 (3 bits/symbol)
[0.9.0] - 2026-03-19¶
Added¶
phy/rx_pipeline.py: 完整 RX 接收流水线, 支持帧同步、头部解码、载荷解码rx_chain(): IQ 信号到数据比特的完整解码链路decode_head()/decode_payload()/frame_sync()子函数14 个 RX pipeline 测试
[0.8.0] - 2026-03-19¶
Added¶
common/prbs.py: PRBS11 (x^11+x^2+1) / PRBS17 (x^17+x^3+1) 发生器, 对标标准 8.3.5TV101 端到端验证: PRBS11 -> HeadBits -> CRC12 -> 加扰 -> txHeadW, 全流程匹配附录 H
24 个新增测试
Fixed¶
common/scrambler.py: 由右移 Fibonacci LFSR 改为左移 Galois LFSR, 输出从 MSB (bit6), 反馈异或到 bit0 和 bit4 (mask=0x11), 经 TV101 测试向量端到端验证
[0.7.0] - 2026-03-19¶
Added¶
common/scrambler.py: 7bit LFSR 信道比特加扰, 多项式 x^7+x^4+1, 周期 127, 广播种子/数据链路种子生成, 对标标准 6.10.4common/mcs.py: MCS 表 (MCS0-MCS12, BPSK/QPSK/8PSK) 与速率匹配表 1/2,RateConfig工厂方法, 对标标准 6.10.5 / 6.10.6phy/control_info.py: 物理层控制信息 A1-A7 (帧类型 1/2, CRC12) 和 B1-B5 (帧类型 3/4, CRC24B+LLID 异或), 对标标准 6.4109 个新增测试
[0.6.0] - 2026-03-19¶
Added¶
phy/usrp.py: USRP E310 硬件接口封装, 含USRPConfig/MockUSRP/USRPDevice/TXStream/RXStream/SLETransceiver78 个新增测试
Changed¶
引入 ruff 代码检查, 添加
AGENTS.md工程规范
[0.5.0] - 2026-03-19¶
Added¶
phy/freq_hopping.py: 射频信道/物理信道映射, 三频段频率表, 伪随机跳频序列, 多带宽过滤与屏蔽信道管理, 对标标准 6.10.3 / 8.1.2sim/link_sim.pyPhase 5 跳频仿真66 个新增测试
[0.4.0] - 2026-03-19¶
Added¶
phy/channel.py: AWGN / Rayleigh / Rician / 多径频率选择性信道模型phy/equalizer.py: ZF/MMSE 频域均衡, MMSE 时域 Wiener 均衡, 1-tap 均衡, LS 信道估计sim/link_sim.pyPhase 4 信道仿真 (7 种配置)44 个新增测试
[0.3.0] - 2026-03-19¶
Added¶
phy/pilot.py: 导频符号生成与插入/移除, 对标标准 6.7phy/frame.py: 帧结构组装/解析, 支持帧类型 1-4, 对标标准 6.3sim/link_sim.pyPhase 3 帧级仿真39 个新增测试
[0.2.0] - 2026-03-19¶
Added¶
common/polar.py: Polar 编码器, SC 解码器, LLR 模式, 对标标准 6.10.1common/code_block_seg.py: 码块分割, 对标标准 6.10.2sim/link_sim.pyPhase 2 编码链路仿真75 个新增测试
[0.1.0] - 2026-03-19¶
Added¶
common/crc.py: CRC12/CRC24A/CRC24B/CRC32, 对标标准 6.9common/m_sequence.py: m31/m63 序列生成common/bch.py: BCH(31,26) / BCH(63,24) 编码, 对标标准 6.11phy/gfsk.py: GFSK 调制/解调, 对标标准 6.2.1.1phy/psk.py: BPSK/QPSK/8PSK 调制/解调, RRC 脉冲成型, 对标标准 6.2.1.2phy/preamble.py: 前导码生成, 对标标准 6.4phy/sync_sequence.py: 同步信号 1-4, 对标标准 6.5/6.6sim/link_sim.pyPhase 1 无编码链路仿真107 个测试