这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » WS8204在固件无线更新场景下的测试

共1条 1/1 1 跳转至页

WS8204在固件无线更新场景下的测试

菜鸟
2026-10-25 17:06:09     打赏
数字电源固件断点续传应用测试报告

文档信息

项目内容
报告名称WS8204 数字电源固件断点续传应用测试报告
版本v1.0
日期2026-10-25
测试对象WS8204-EVB ×2(H-UART)
固件镜像64 KB 等效数字电源固件镜像
时间限制120 s
测试工具ws8204_perf.exe + run_fwupdate_resume.ps1
测试结果PASS

1. 背景与目标

模拟通过星闪模块把数字电源固件从发送端传到接收端,验证:

  • 64 KB 固件在 120 s 内完成传输

  • 软件主动打断链路 5 次

  • 每次打断后从断点继续,不从头开始

  • 重传机制实际生效

  • 最终文件不丢包、数据完整

  • 源文件与接收文件 SHA-256 一致

2. 测试环境与拓扑

PC A (COM3) ── H-UART ── WS8204-A ── SLE ── WS8204-B ── H-UART ── PC B (COM4)
项目值
A 板COM3,MAC 54:ef:80:1a:51:d9,Client/Master
B 板COM4,MAC 1a:ac:10:3d:36:e6,Server/Slave
串口115200 8N1,无流控
链路参数MTU 248,interval 200(25 ms),PHY 0(1M),SMUX 8
接收端PC 保存文件并做 SHA-256 校验
测试工具 SHA-25632CF15D37F5E83D4BADE34F0FB2E01E3CBC7892DB1A415D2B08C8B3CCD73DABF

3. 固件镜像

项目值
文件fw_image.bin
大小65,536 B(64 KB)
版本头WS8204-DP-FW|V1.0.0|64KB|2026-10-25
主体确定性伪随机填充
SHA-2561409690186ccf188e4e4b8e3e884bced2719d0ef7a6192748115bdf7d25d9694

4. 断点续传设计

4.1 块级断点

  • 固件按 8 KB 块切分,64 KB 共 8 块。

  • 每块单独传输并校验 SHA-256。

  • 接收端持久化 resume_state.json,记录每块完成状态。

  • 断点恢复点为被打断块的起始偏移,最多重传 8 KB。

  • 已完成块不会重复传输;最终文件由已校验块按顺序拼接。

采用 8 KB 块而不是更小粒度,是因为当前 CH9102 H-UART 在连续 AT 传输约数 KB 后会出现写错误;8 KB 块是当前硬件下可稳定完成的块大小。块内仍由文件 SHA 和传输结果保证完整性。

4.2 软件打断

  • 打断方式:发送端 AT+SDISC 主动断开 SLE 链路。

  • 重连后读取 resume_state.json,跳过已完成块,从当前块继续。

  • 本次共打断 5 次,位置为块 1、2、3、4、6(偏移 8/16/24/32/48 KB)。

4.3 重传机制

  • 某块传输失败(长度或 SHA 不一致)时,整块重传。

  • 额外重传一个已完成块,验证重复块不会破坏最终文件。

  • 最终文件只由第一份校验通过的块组成,重复块不参与拼接。

5. 测试步骤

  1. 生成 64 KB 固件镜像并计算 SHA-256。

  2. 配置 A=Client、B=Server,建立链路。

  3. 按 8 KB 切块,初始化 resume_state.json。

  4. 逐块传输;在块 1/2/3/4/6 前执行 AT+SDISC 软件打断。

  5. 每次打断后重连,读取状态,从当前块继续。

  6. 块 2 首次失败后整块重传;最后额外重传块 0 验证幂等。

  7. 拼接所有块,计算接收文件 SHA-256。

  8. 对比源/接收 SHA,检查 8 块完成位图。

复现命令:

.\tools\run_fwupdate_resume.ps1 `
  -Source "docs\02_测试数据\FW_20261025\fw_image.bin" `
  -OutRoot "docs\02_测试数据\FW_RESUME_06_8k_fast50" `
  -BlockBytes 8192 `
  -InterruptPct "15,30,45,60,80" `
  -TimeLimit 120

6. 测试结果

6.1 汇总

指标结果
固件大小65,536 B
块大小8,192 B
总块数8
软件打断次数5
失败重传块数1(块 2)
失败重传字节8,192 B
额外幂等重传1 块(块 0,8,192 B)
总耗时79.046 s
时间限制120 s
时间余量40.954 s
最终 SHA-2561409690186ccf188e4e4b8e3e884bced2719d0ef7a6192748115bdf7d25d9694
SHA 对比与源文件一致
完成位图8/8 全部完成
结果PASS

6.2 分块结果

块尝试结果耗时 s块 SHA-256
01PASS5.48527bb3990...926858a
11PASS5.320fb31875d...026e9ab5
21FAIL11.3317bc93b35...08f9907d
22PASS5.3717bc93b35...08f9907d
31PASS5.389b36939a2...bb8a0360
41PASS5.5125da49942...a3854c26
51PASS5.263c7556ed6...5b91a903
61PASS5.323b1461b56...4b4c90d3
71PASS5.2574e501022...979387

完整 SHA 见附件 blocks.csv。

6.3 打断与恢复

序号块恢复偏移状态恢复耗时 s
118,192interrupted2.295
2216,384interrupted2.242
3324,576interrupted2.235
4432,768interrupted2.276
5649,152interrupted2.287

每次 AT+SDISC 后约 2.2 s 完成重连并继续;已完成块未重复传输。

6.4 重传证据

  • 块 2 第一次传输失败:写入长度/SHA 不匹配,耗时 11.331 s。

  • 块 2 第二次传输成功:耗时 5.371 s,块 SHA 与源块一致。

  • 最后额外重传块 0:PASS,8,192 B;最终文件未被重复内容破坏。

  • 汇总字段:retried_blocks=1、retried_bytes=8192、retransmitted_blocks=1、retransmitted_bytes=8192。

7. 数据完整性校验

源文件 SHA-256:

1409690186ccf188e4e4b8e3e884bced2719d0ef7a6192748115bdf7d25d9694

接收文件 SHA-256:

1409690186ccf188e4e4b8e3e884bced2719d0ef7a6192748115bdf7d25d9694

结果:

  • 接收文件长度 65,536 B

  • 8/8 块完成

  • resume_state.json 的 completed 全部为 true

  • 无缺失块、无错误块

  • 最终 SHA 与源文件完全一致

8. 时间分析

项目时间
总耗时79.046 s
时间限制120 s
余量40.954 s
5 次断链恢复合计约 11.335 s
块 2 失败重传11.331 s
正常块传输平均约 5.3 s

满足 64 KB / 120 s 要求。

9. 结论

本场景测试 PASS。

  • 64 KB 数字电源固件在 79.046 s 内完成,低于 120 s 限制。

  • 软件主动打断 5 次,均成功从断点继续。

  • 块 2 发生一次失败,整块重传后校验通过。

  • 额外重复重传块 0,最终文件未被破坏,验证幂等性。

  • 最终文件 SHA-256 与源文件一致,8/8 块完成,无丢包、无数据损坏。

10. 限制与说明

  • 断点粒度为 8 KB 块,恢复点为被打断块的起始偏移;块内不完整则整块重传,最多回退 8 KB。

  • 采用 8 KB 块是当前 CH9102 H-UART 连续传输稳定性的折中;若需要更细粒度(如 200 B),需要更稳定的 USB-UART 或硬件流控。

  • 本测试的接收端为 PC 文件系统;如果实际数字电源 MCU 使用不同烧录协议,需要把块写入/校验接口替换为 MCU Flash 写入接口。

11. 数据与复现

关键数据:

docs\02_测试数据\FW_20261025\fw_image.bin
docs\02_测试数据\FW_20261025\fw_image.sha256
docs\02_测试数据\FW_RESUME_06_8k_fast50\summary.json
docs\02_测试数据\FW_RESUME_06_8k_fast50\blocks.csv
docs\02_测试数据\FW_RESUME_06_8k_fast50\interruptions.csv
docs\02_测试数据\FW_RESUME_06_8k_fast50\resume_state.json
docs\02_测试数据\FW_RESUME_06_8k_fast50\received_fw.bin
docs\02_测试数据\FW_RESUME_06_8k_fast50\block_*\(每块接收结果)

测试脚本:

tools\run_fwupdate_resume.ps1
tools\ws8204_perf\(file 命令、build.ps1、exe)

环境依赖:Windows 10/11、.NET Framework 4.8、PowerShell 5.1、CH9102 驱动、两块 WS8204-EVB。

12. 附件

附件位于 attachments\数字电源固件断点续传\:

文件内容大小SHA-256
WS8204_数字电源固件断点续传测试报告.md本报告见文件见 SHA256SUMS.txt
WS8204_数字电源固件断点续传_测试数据_20261025.zip固件镜像、接收文件、summary、blocks、interruptions、state455,999 B2b7293f23956e2b5a641bb590ca2007caa6eca2b1a9eae3076ebb76a49bdbfd7
WS8204_数字电源固件断点续传_测试脚本_20261025.ziprun_fwupdate_resume.ps1、C# 源码、exe、build.ps150,886 B54e96eb00e5c584d4be0f3d57aee88d5dba4173f93c5216af74b4e2e49a1c6cc
SHA256SUMS.txt附件校验和见文件—
README_附件说明.md附件内容与复现说明见文件—

数字电源固件断点续传.zip





关键词: WS8204     固件     无线     更新     测试    

共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]