更新日志

本项目的所有重要变更都记录在此文件中。

格式基于 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/GPIO

    • Vivado 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-Pluto

  • UHD 后端 (uhd_backend.py): 封装 Ettus USRP Python API

  • SleNode 双路径支持: 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 转为 :ivar field list 格式

  • CI Node.js 运行时升级至 22, 全部 workflow 启用 FORCE_JAVASCRIPT_ACTIONS_TO_NODE24

  • 7 处 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-update

  • CI 双语构建: docs.yml 同时生成中文和英文 HTML, 英文版部署至 /en/ 子路径

Fixed

  • PDF 文字堆叠: 消除全部 4 个 vbox overflow, hbox overflow 从 107 降至 86

  • LaTeX preamble: 移除重复 \usepackage{xeCJK}, 增加 \linespread{1.25}\sloppy

  • ruff 配置: 添加 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 Pipeline

    • mac-layer.md: MAC 层详解, 广播/接入/链路管理/信令/QoS/调度

    • security.md: 安全子系统详解, 配对/密钥派生/帧加密/隐私/UWB安全

    • data-flow.md: 端到端数据流, 从应用到空口的完整处理链路

    • 更新 docs/index.md toctree, 按从浅到深的顺序组织文档

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 新增 rust job: fmt + clippy + cargo test

  • CI 集成 Rust 加速构建

    • test/coverage/examples 三个 job 集成 dtolnay/rust-toolchain@stable + maturin

    • 新增 install-accel job: 验证 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(): 跳频数据链路仿真, 逐帧跳频通信/信道统计/FER

    • sim_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) -- 完整建模能力集成

    • 跳频: 集成 FreqTabledata_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_param2

    • NodeCallback 新增 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.3

    • GNodeIRK(0x0143) / TNodeIRK(0x0144): 身份解析密钥分发 (解析算法 + IRK + IRKID)

    • GNodeAddress(0x0145) / TNodeAddress(0x0146): 媒体接入层标识分发 (类型 + 地址)

    • ResolutionAlgorithm / AddrType 枚举

  • 组播安全信令 (mac/security.py) -- 标准 9.3.2

    • MulticastAlgorithmConfig(0x0148): 组播安全算法指示 (RAND + KDF类型 + 加密/完整性算法)

    • MulticastKeyConfig(0x0149): 组播密钥配置 (C = Kg XOR GK)

  • 超宽带脉冲测量安全模块 (phy/uwb_measurement_security.py) -- 标准 9.5

    • 9.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.py 22 个 + tests/test_rf_compliance.py 5 个)

  • 射频合规参数校验模块 (phy/rf_compliance.py) -- 标准 8.2 ~ 8.4

    • 8.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.3

    • 6.6.3.1.1 通过接入启动调度 (smf_params_from_access)

    • 6.6.3.1.2 通过广播启动调度 (smf_params_from_broadcast)

    • SMFTransmitScheduler: 周期性发送计划 / 频点轮换 / 帧构建

    • 链路信令/偏移信令注册与管理

    • 调度参数动态更新

  • 125 个新测试用例 (tests/test_rf_compliance.py 93 个 + tests/test_smf_scheduler.py 32 个)

  • UWB 脉冲波形模块 (phy/uwb_pulse.py) -- 标准 6.2.1.4

    • UWBPulseConfig: 500MHz/1300MHz 带宽配置

    • kaiser_pulse: Kaiser 窗脉冲波形生成

    • chip_modulate: 芯片调制 (r(t)·cos 载波调制)

    • normalized_cross_correlation: 归一化互相关函数

    • validate_pulse: 脉冲波形验证 (主瓣/旁瓣)

  • 非链接态广播传输 (mac/access.py) -- 标准 7.1.7.2

    • NonConnectedBroadcastConfig: 非链接态广播配置

    • NonConnectedBroadcastManager: 构建携带非链接态广播信息的扩展广播帧

    • parse_non_connected_broadcast: 解析非链接态广播帧

    • 支持加密/非加密传输 (GIV/GSKD)

    • 支持 2.4GHz/5.xGHz 跳频地图

  • 49 个新测试用例 (tests/test_uwb_pulse.py 29 个, tests/test_non_connected_broadcast.py 20 个)

  • 测量链路传输与测量量计算 (phy/measurement_tx.py) -- 标准 6.7/6.8

    • MeasLinkParams: 窄带跳频测量/感知链路参数模型 (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.25

    • 7.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.3

    • AsyncDataLinkParams / 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.19

    • request_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.2

    • DiscoveryManager: 查询请求/响应流程, 支持白名单过滤

    • 广播设备端查询请求处理和响应构造

    • 发现设备端查询请求构造和响应处理

  • 角色切换信令 (mac/link_manager.py) -- 标准 7.2.15

    • request_role_switch: 发送 RoleSwitchRequest 信令

    • execute_role_switch: 发送信令并交换角色

  • PING 流程 (mac/link_manager.py) -- 标准 7.2.16

    • send_ping / respond_ping

  • 链路断开信令 (mac/link_manager.py) -- 标准 7.2.17

    • request_disconnect: 驱动状态机断开链路

  • 异步链路参数更新 (mac/link_manager.py) -- 标准 7.2.18

    • request/respond_async_param_update

  • 新增 16 个测试用例, 总计 1849 个全部通过

  • 广播帧过滤器 (mac/broadcast.py) -- 标准 7.1.5

    • BroadcastFilter: 支持地址/名称/UUID/服务数据/厂商数据过滤

    • FilterCondition: 单条件定义, 支持取反

    • FilterOp: AND/OR/NOT 组合运算

  • 接入白名单 (mac/access.py) -- 标准 7.1.6

    • AccessWhitelist: 设备地址白名单, 启用后仅允许白名单内设备接入

    • 集成到 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.6

    • SMFHeader: 分段指示 + 信令编号

    • ScheduleSignaling: 调度信令 (生效时隙/间隔/帧类型/带宽/频点表)

    • LinkSignaling: 链路信令 (逻辑链路标识/时间资源条目)

    • OffsetSignaling: 偏移信令 (逻辑链路/偏移量/单位)

    • SystemManagementFrame: 完整帧组装解析与分段重组

  • 非链接态窄带跳频测量信息配置 (mac/broadcast.py) -- 标准 7.1.4.10

    • NarrowbandMeasurementConfig: 41 个字段, 含可变长跳频信道位图

  • 非链接态超宽带脉冲测量信息配置 (mac/broadcast.py) -- 标准 7.1.4.11

    • UWBPulseMeasurementConfig: 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 多码块回环测试 (TestMultiBlockLoopback in test_ft_pipeline.py)

    • 32 字节载荷触发双码块分割场景的全链路闭环验证

  • secure_random_256() 安全随机函数 (标准 6.10.7), 基于 KDF 生成 256-bit 安全序列

  • sync_sequence.py 重构: 同步信号 5/6 改用 crypto.secure_random_256 公共 API

  • link_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.all

    • rate-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.py 0% → 100%

    • tests/test_channel.py: TestDoppler (6 个测试) — channel.py 88% → 92%

    • tests/test_link_manager.py: TestPairingTransitions + TestSupervisionCheck (8 个测试) — link_manager.py 89% → 95%

    • tests/test_code_block_seg.py: TestSubSegmentation + TestSubsegmentLastBlockDirect + TestFindRateStr (11 个测试) — code_block_seg.py 67% → 78%

  • sim/link_sim.py Phase 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 12

    • docs/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.py Phase 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.py Phase 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.py Phase 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_freq

  • Rayleigh + 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.5

  • TV101 端到端验证: 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.4

  • common/mcs.py: MCS 表 (MCS0-MCS12, BPSK/QPSK/8PSK) 与速率匹配表 1/2, RateConfig 工厂方法, 对标标准 6.10.5 / 6.10.6

  • phy/control_info.py: 物理层控制信息 A1-A7 (帧类型 1/2, CRC12) 和 B1-B5 (帧类型 3/4, CRC24B+LLID 异或), 对标标准 6.4

  • 109 个新增测试

[0.6.0] - 2026-03-19

Added

  • phy/usrp.py: USRP E310 硬件接口封装, 含 USRPConfig/MockUSRP/USRPDevice/TXStream/RXStream/SLETransceiver

  • 78 个新增测试

Changed

  • 引入 ruff 代码检查, 添加 AGENTS.md 工程规范

[0.5.0] - 2026-03-19

Added

  • phy/freq_hopping.py: 射频信道/物理信道映射, 三频段频率表, 伪随机跳频序列, 多带宽过滤与屏蔽信道管理, 对标标准 6.10.3 / 8.1.2

  • sim/link_sim.py Phase 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.py Phase 4 信道仿真 (7 种配置)

  • 44 个新增测试

[0.3.0] - 2026-03-19

Added

  • phy/pilot.py: 导频符号生成与插入/移除, 对标标准 6.7

  • phy/frame.py: 帧结构组装/解析, 支持帧类型 1-4, 对标标准 6.3

  • sim/link_sim.py Phase 3 帧级仿真

  • 39 个新增测试

[0.2.0] - 2026-03-19

Added

  • common/polar.py: Polar 编码器, SC 解码器, LLR 模式, 对标标准 6.10.1

  • common/code_block_seg.py: 码块分割, 对标标准 6.10.2

  • sim/link_sim.py Phase 2 编码链路仿真

  • 75 个新增测试

[0.1.0] - 2026-03-19

Added

  • common/crc.py: CRC12/CRC24A/CRC24B/CRC32, 对标标准 6.9

  • common/m_sequence.py: m31/m63 序列生成

  • common/bch.py: BCH(31,26) / BCH(63,24) 编码, 对标标准 6.11

  • phy/gfsk.py: GFSK 调制/解调, 对标标准 6.2.1.1

  • phy/psk.py: BPSK/QPSK/8PSK 调制/解调, RRC 脉冲成型, 对标标准 6.2.1.2

  • phy/preamble.py: 前导码生成, 对标标准 6.4

  • phy/sync_sequence.py: 同步信号 1-4, 对标标准 6.5/6.6

  • sim/link_sim.py Phase 1 无编码链路仿真

  • 107 个测试