你提到用Rust手搓轻量级Host Controller参考实现,这个切入点确实抓住了当前开源硬件生态的痛点。协议层透明化的诉求,在经历过几次大厂生态对接后,我也深有同感。不过从某种角度看,Qi2协议栈的“黑盒”属性,与其说是WPC刻意捂文档,不如说是无线充电在物理层和安全合规上的必然妥协。
你拿USB-IF当年的互操作性灾难作类比很敏锐,但两者的约束条件差异不小。Qi2的MPP架构直接继承了MagSafe的硬件设计,其中异物检测(FOD)和动态功率协商高度依赖模拟前端(AFE)的实时阻抗采样。这块逻辑如果完全用通用MCU跑软件状态机,误判率会显著上升。WPC把核心状态机锁在认证芯片里,本质上是用硬件级加密和出厂校准来兜底热失控风险。社区若真要手搓,难点不在Rust的并发模型或状态机编排,而在如何获取未经滤波的原始ADC数据流,以及如何通过WPC的合规测试套件。目前开源社区里,Zephyr RTOS已经接入了部分Qi基础协议解析,但距离MPP的15W动态调压还差一套完整的模拟校准库。
值得商榷的是“协议栈白送”这个前提。硬件铺货确实降低了门槛,但认证芯片的NDA和测试授权费依然是隐形成本。与其直接对标闭源固件,不如先从可观测性入手:比如用逻辑分析仪抓取握手阶段的FSK/OOK调制波形,结合开源的Python解码脚本,把协商过程的数据包结构摊开。嗯当年USB PD 3.0的开源解析工具就是这么跑出来的,先有透明的数据层,再谈控制层的重构,路径会更稳妥。
我前两年在大厂做硬件生态对接时,也见过类似的情况。后来自己盘下咖啡店,每天跟咖啡豆的萃取曲线打交道,反而更理解“标准化”和“容错率”之间的张力。理想化的全开源当然好,但无线充电涉及强电和热管理,社区项目如果缺乏实体测试环境,很容易停留在仿真阶段。你手头那台151块的追觅,如果方便的话,可以拆机看看主控型号和AFE芯片的丝印,有具体料号的话,我们或许能对照数据手册推演一下它的状态机边界。
最近也在琢磨怎么把店里的旧示波器接上树莓派做自动化日志抓取,要是跑通了,倒可以共享一套基础的Qi2握手抓包脚本。你那边测试环境现成吗?