Skip to content

Latest commit

 

History

History
464 lines (377 loc) · 14.9 KB

File metadata and controls

464 lines (377 loc) · 14.9 KB

M2.2 执行框架:性能优化与网络集成

里程碑定位: M2.2 是 Stage 2 的第二个发布,重点是性能极致优化与多网络场景支持
发布时间: 2026-03-16 (目标)
发布版本: v0.3.0-beta.1
面向对象: 内部测试 + 早期企业用户
关键成果: <5µs PTP 精度 + 多网络支持 + API 完整


1. M2.2 里程碑目标

核心目标

  • ✅ PTP 延迟优化至 <5µs (从 <20µs)
  • ✅ TSN 添加多网络支持 (冗余网络)
  • ✅ 硬件扩展板设计 (网络扩展卡)
  • ✅ 性能基准测试与发布
  • ✅ API 文档完整化 (Doxygen 100%)
  • ✅ 用户指南与示例 (5+ 场景)

技术目标

指标 M2.1 M2.2 目标 备注
PTP 精度 <20µs <5µs PI 伺服优化 + 硬件 TS 改进
TSN 延迟 <100µs <50µs 多队列优化 + Linux 核心
网络支持 单网络 多网络 双 GigaEth 冗余
API 覆盖 60% 100% 完整的 C/Python 接口
文档覆盖 70% 100% 硬件、API、用户指南
硬件成本 ¥361 ¥520 包含网络扩展卡

2. M2.2 执行计划 (4 周)

第 1 周 (Feb 17-23) - 性能优化启动

PTP 团队 (200+ LOC)

日期 任务 目标 LOC 关键输出 依赖
2/17 PI 伺服极致优化 50 新的伺服系数、性能对比 M2.1 基线
2/18 硬件 TS 反演优化 40 TS 精度提升方案、测试数据 硬件团队
2/19-20 延迟分析与追踪 60 详细延迟分解、优化文档 性能测试
2/21 API 完整化 (ptp_get_stats) 30 新 API 函数、单元测试 代码审查
2/23 周总结与集成 20 <5µs 验证、周报告 所有 PR

关键决策点:

  • 2/18 决策: PI 伺服系数采用固定 vs 自适应 (影响性能-复杂度权衡)
  • 2/20 决策: 是否采用硬件 TS 缓存机制 (成本 vs 性能)

TSN 团队 (200+ LOC)

日期 任务 目标 LOC 关键输出 依赖
2/17 多网络架构设计 - 架构文档、交互图 需求分析
2/18 网络冗余选择实现 60 故障转移逻辑、测试 架构完成
2/19 Linux taprio 多网络适配 70 驱动集成、配置脚本 内核版本
2/20 队列优化与测试 50 优化参数、性能数据 驱动完成
2/23 周总结与性能验证 20 <50µs 验证、周报告 所有 PR

关键决策点:

  • 2/17 决策: 主备 vs 负载均衡网络方案 (影响算法复杂度)
  • 2/19 决策: Linux 内核版本选择 (6.6 vs 6.8)

硬件团队 (PCB 设计 50%)

日期 任务 完成度 关键输出 依赖
2/17 网络扩展卡原理图 100% KiCad 文件、BOM v0.1 M2.1 反馈
2/18-19 PCB Layout 设计 50% 布局初稿、关键网络 原理图
2/20-23 DFM 检查与优化 进行中 DFM 报告、BOM 优化 PCB Layout

关键决策点:

  • 2/18 决策: PCB 层数 (4 层 vs 6 层,成本 vs 性能)
  • 2/20 决策: 制造工艺选择 (标准 vs 高精度)

第 2 周 (Feb 24 - Mar 2) - 集成与测试

PTP 团队 (150+ LOC)

日期 任务 目标 LOC 关键输出 依赖
2/24 API 文档完整化 30 Doxygen 100%, 代码示例 API 设计
2/25 PTP + TSN 联合测试 50 集成测试报告、问题清单 TSN 集成
2/26 硬件扩展卡适配 40 驱动更新、初始化代码 硬件设计
2/27 性能达标验证 30 <5µs 性能报告、优化记录 全部集成
3/2 周总结与优化 - Beta.1 准备、风险评估 所有测试

TSN 团队 (150+ LOC)

日期 任务 目标 LOC 关键输出 依赖
2/24 多网络故障转移测试 40 测试报告、故障场景覆盖 实现完成
2/25 API 增强 (网络选择) 50 新 API、Python 绑定更新 需求确认
2/26 用户指南与示例 30 3+ 用户场景、配置示例 API 稳定
2/27 性能验证 30 <50µs 报告、优化机会 全部集成
3/2 周总结 - Beta.1 准备、反馈总结 所有测试

硬件团队 (PCB 设计 100%)

日期 任务 完成度 关键输出 依赖
2/24 PCB Layout 完成 100% 最终 PCB 设计 上周 DFM
2/25 Gerber 文件生成 100% 生产文件、钻孔文件 PCB 完成
2/26 BOM 最终化 100% 最终 BOM, ¥520 成本确认 Gerber 完成
2/27 样品订单下达 100% 订单确认、交期确认 BOM + Gerber
3/2 交期跟踪 进行中 预计交期, 收货计划 订单下达

第 3 周 (Mar 3-9) - 文档与用户指南

文档团队

日期 任务 关键输出 备注
3/3 硬件设计文档完整化 原理图注释 100%, PCB 文件整理 供用户参考
3/4 API 参考手册 (C) 完整的 API 描述、参数说明、返回值 Doxygen 生成
3/5 Python 绑定文档 完整的 Python API, 示例代码 对应 C API
3/6 性能优化指南 参数调优、性能分析、最佳实践 4+ 优化场景
3/7 故障诊断指南 常见问题、排查流程、日志分析 问题解决
3/9 文档审查与定稿 所有文档完整、格式统一、链接完整 发布前检查

质量保障团队

日期 任务 关键输出 备注
3/3 性能基准测试 <5µs PTP, <50µs TSN 验证 多场景测试
3/4 压力测试 24h 运行、内存泄漏、CPU 占用 Valgrind 验证
3/5 网络故障测试 网络中断、丢包、延迟、乱序 5+ 故障场景
3/6 多网络测试 冗余网络、故障转移、负载均衡 端到端场景
3/7 硬件兼容性测试 新扩展卡、多网络、各平台 验收标准
3/9 质量报告 最终质量评分、问题清单、发布建议 GO/NO-GO 决策

第 4 周 (Mar 10-16) - 发布准备与上线

发布团队

日期 任务 关键输出 依赖
3/10 代码冻结 所有 PR 合并,tag v0.3.0-beta.1-rc1 代码完成
3/11-12 最后验证 回归测试,关键场景验证 RC1 验证
3/13 GitHub 发布准备 Release Notes, 链接验证 文档完成
3/14 最终检查与签字 PM + Leads 签字确认 所有检查
3/15 GitHub 正式发布 v0.3.0-beta.1 发布,Docker 镜像 签字完成
3/16 社区通知与支持 发布声明、论坛通知、邮件通知 完成发布

3. M2.2 功能需求

PTP 性能优化需求

1. PI 伺服参数优化
   - 目标: <5µs 稳定精度 (从 <20µs)
   - 方案: 自适应系数 or 固定极值
   - 验收: 24h 测试 <5µs, 标准差 <1µs

2. 硬件时间戳优化
   - 目标: ±2ns 硬件精度 (从 ±10ns)
   - 方案: HW TS 缓存或内插
   - 验收: 示波器对比验证

3. 时钟驯服优化
   - 目标: 收敛时间 <5s (从 10s)
   - 方案: 更优的初始参数
   - 验收: 冷启动 5 次试验

4. 多平台适配完成
   - 目标: ARM/x86/嵌入式统一
   - 方案: 统一 API,平台特化实现
   - 验收: 3 个平台通过单元测试

TSN 多网络需求

1. 双网络冗余架构
   - 目标: 故障自动转移 <100ms
   - 方案: 主备 or 负载均衡
   - 验收: 网络模拟故障测试

2. 网络拓扑发现
   - 目标: 自动识别活跃网络
   - 方案: ARP/LLDP 协议
   - 验收: 5+ 网络拓扑测试

3. 流量多网络分配
   - 目标: 支持跨多网络的流
   - 方案: 流表扩展
   - 验收: 256+ 跨网流支持

4. Linux taprio 多网络支持
   - 目标: 单驱动支持多网络
   - 方案: 网络接口抽象层
   - 验收: 多个 eth 接口通过测试

硬件扩展需求

1. 网络扩展卡设计
   - 目标: 从 2x GigaEth 扩展到 4x
   - 规格: 通过 PCIE 连接
   - 验收: 原理图 100% + PCB 100%

2. 成本优化
   - 目标: ¥520/单位 (从 ¥361)
   - 方案: 分离基础卡与扩展卡
   - 验收: BOM 成本验证

3. 样品制造
   - 目标: 5 块样板
   - 计划: 3 月中旬收货
   - 验收: 功能测试通过

4. M2.2 验收标准

代码质量标准

项目 标准 验收方法
代码量 550+ 新增 LOC grep -c "^[^#]"
测试覆盖 85%+ coverage.py 报告
代码审查 100% PR 审查 GitHub 所有 PR approved
性能测试 <5µs PTP, <50µs TSN 性能测试脚本
内存检查 0 泄漏 (Valgrind) valgrind --leak-check=full
编译警告 0 warning (gcc -Wall) 编译日志检查

功能完成度标准

PTP Master (性能优化版)

✅ PI 伺服优化
   - 自适应 or 固定系数选择
   - <5µs 精度验证
   - 多场景稳定性测试

✅ 硬件时间戳优化
   - ±2ns 硬件精度
   - 时间戳缓存机制 (可选)
   - 多平台硬件时间戳驱动

✅ 时钟驯服优化
   - 收敛时间 <5s
   - 初始参数最优化
   - 冷启动可靠性

✅ 完整 API
   - ptp_init() / ptp_step() / ptp_get_time()
   - ptp_get_clock_info() / ptp_get_stats()
   - 所有 API 100% Doxygen 文档

TSN Scheduler (多网络版)

✅ 多网络冗余架构
   - 主备自动转移
   - 故障检测 <100ms
   - 转移时间 <50ms

✅ 网络拓扑发现
   - 自动识别活跃网络
   - 拓扑变化通知
   - 配置热更新

✅ 流量多网络分配
   - 跨网络流表
   - 故障时自动重路由
   - 支持 256+ 跨网流

✅ Linux 多网络驱动
   - taprio 驱动支持多 eth
   - 双网络配置脚本
   - Python 配置工具

性能验收标准

PTP 延迟:
  - 精度: <5µs (从 <20µs)
  - 收敛: <5s (从 <10s)
  - 稳定性: 标准差 <1µs (24h)

TSN 延迟:
  - 实时流: <50µs (从 <100µs)
  - 控制流: <500µs
  - 丢包率: 0% (正常网络)

网络可靠性:
  - 故障转移: <100ms
  - 转移成功率: 100%
  - 恢复时间: <50ms

硬件验收标准

扩展卡设计:
  - 原理图: 100% 完成 + 注释
  - PCB: 100% 完成 + Gerber
  - BOM: 完整 + 成本 ¥520 确认

样品质量:
  - 外观: 无缺陷
  - 电气: 所有网络通断正确
  - 功能: 与基础卡集成成功

文档验收标准

API 文档:
  - 100% Doxygen 覆盖
  - 所有函数有示例
  - C 和 Python 两种接口

用户指南:
  - 性能优化指南 (4+ 场景)
  - 多网络配置指南
  - 故障诊断指南
  - 5+ 完整示例代码

硬件文档:
  - 原理图注释 100%
  - PCB 布局说明
  - 制造文件整理
  - BOM 详细说明

5. M2.2 交付清单

代码交付物

  • ptp-stack/ 性能优化完整代码
  • tsn-scheduler/ 多网络完整代码
  • 单元测试 85%+ 覆盖
  • 集成测试脚本与结果
  • 性能基准测试脚本

硬件交付物

  • 网络扩展卡原理图 (KiCad)
  • 网络扩展卡 PCB 设计 (KiCad)
  • Gerber 生产文件 + 钻孔文件
  • 最终 BOM (成本 ¥520 确认)
  • 硬件测试报告

文档交付物

  • PTP API 参考手册 (Doxygen)
  • TSN API 参考手册 (Doxygen)
  • Python 绑定文档
  • 性能优化指南
  • 多网络配置指南
  • 故障诊断指南
  • 5+ 完整示例代码
  • Release Notes (v0.3.0-beta.1)

发布物

  • GitHub v0.3.0-beta.1 Release
  • Docker 镜像 (NeuroWalker:beta.1)
  • PyPI 包 (neurowalk>=0.3.0b1)
  • 发布声明与社区通知

6. M2.2 风险评估

已识别的风险

ID 风险 概率 影响 缓解措施 触发条件
RISK-M22-001 PI 伺服难以优化至 <5µs 35% 3/1 提前选择方案; 备选方案 2/20 测试仍 >10µs
RISK-M22-002 Linux 内核 taprio 多网络不兼容 30% 2/19 内核版本选择; 自定义驱动 内核 API 变更
RISK-M22-003 PCB 样品延期 20% 2/27 优先下单; 备选供应商 工厂延期 >2 周
RISK-M22-004 多网络故障转移不稳定 25% 2/25 提前完整测试; 限时切换 转移失败 >2%

决策点与点火条件

日期 决策 A 方案 B 方案 触发条件
2/18 PI 伺服系数 自适应系数 固定极值 2/17 性能测试结果
2/20 硬件 TS 缓存 实现缓存机制 不实现 2/19 延迟分析
2/19 Linux 内核版本 6.8 LTS 6.6 主线 驱动兼容性测试
2/25 多网故障转移方案 主备式 负载均衡 2/24 冗余测试结果
3/3 样品接收计划 延期至 3/20 使用 M2.1 硬件 3/1 工厂交期通知

7. M2.2 成功指标 (GO/NO-GO 标准)

绿灯 (GO - 发布) 条件

✅ PTP 延迟 <5µs (24h 稳定)
✅ TSN 延迟 <50µs (正常网络)
✅ 多网络故障转移成功率 100%
✅ 代码覆盖率 85%+
✅ 0 个 P0/P1 问题未解决
✅ API 文档 100% Doxygen
✅ 硬件原理图 + PCB 100% 完成
✅ 所有验收标准通过

红灯 (NO-GO - 延期) 条件

❌ PTP 延迟无法达到 <8µs (3/7)
❌ TSN 多网络不稳定 (转移失败率 >5%)
❌ 代码覆盖率 <75%
❌ P0 问题 >3 个 (3/14)
❌ API 文档完成度 <80%
❌ 硬件样品延期 >2 周 (3/1 确认)

橙灯 (CONDITIONAL - 条件发布) 条件

⚠️ PTP 延迟 5-8µs (需性能文档说明)
⚠️ TSN 某网络场景不完美 (需 Known Issues)
⚠️ 代码覆盖率 80-85% (需补充测试计划)
⚠️ P1 问题 1-2 个 (需缓解方案)
⚠️ 硬件样品 3/13 到达 (需加急测试)

8. M2.2 重点关注

最高优先级

  1. PTP 性能达标 (周一/周三性能检查)

    • 2/20, 2/27, 3/6 重点里程碑
    • 如无法达到 <8µs,启动 RISK-M22-001
  2. 多网络稳定性 (周一测试通过)

    • 2/25, 3/6 完整功能与压力测试
    • 故障转移必须 100% 成功
  3. 文档完整性 (周四审查)

    • 3/9 前所有文档定稿
    • API 文档 Doxygen 100% 覆盖

次要优先级

  1. 硬件样品按时交付 (3/1 最后期限)
  2. 代码覆盖率达到 85% (3/2 检查)
  3. 所有 Known Issues 文档化 (3/7)

9. M2.2 团队配置

人员分配

  • PM: 1 人 (全职监控)
  • PTP Lead: 1 人 + 1-2 Developer (性能优化)
  • TSN Lead: 1 人 + 1-2 Developer (多网络)
  • 硬件 Lead: 1 人 (PCB 设计)
  • QA Lead: 1 人 + 1 Tester (验收)
  • 文档: 1 人 (全职)

沟通周期

  • 日常: 每日 10:00 站会 (15 min)
  • 周度: 每周五 14:00 技术评审 (120 min)
  • 关键: 性能检查 (周一/周三, 30 min)
  • 风险: 风险评估会 (周二/周四, 30 min)

10. M2.2 后续计划

M2.2 完成后 (3月16日):

  • 社区发布 v0.3.0-beta.1
  • 开始 M2.3 规划 (企业级特性)
  • 样品试用与反馈收集
  • M2.1 + M2.2 对标竞品分析

M2.3 展望:

  • 企业级监控 (OpenMetrics)
  • Web UI 管理界面
  • 集群支持 (多设备同步)
  • 安全加固 (TLS + RBAC)