16. webusb¶
功能 : webusb收发 (使用此功能设备树不能配置usb-cdc)
- usb-cdc disabled
WebUSB 的核心价值是:让网页直接和 USB 设备对话(控制传感器、收发原始数据、做配置/升级),而且跨平台、免安装本地程序。典型场景:
- 设备配置/调参面板(免驱):做一个网页就能给 MCU/传感器/机器人调配置、读状态、跑自检,不用写 Windows/macOS 原生 App。适合你做的各类板卡出厂配置与现场维护。Chrome for Developers
- 浏览器内固件升级(DFU):直接在网页里把
.bin写进设备(标准 USB DFU 或自定义协议都行)。已有成熟示例可参考 webdfu。GitHub+1 - 数据采集与可视化:用 Bulk 端点把传感器数据推到网页里,实时画图、保存 CSV,做简易“示波器/逻辑分析/数据记录”类工具。Chrome for Developers
- 生产/质检(EOL 工装):工位上开 Chrome 的“测试台”网页,插入 USB 设备后自动跳转到指定测试页,执行校准、烧号、跑回归。可用 WebUSB 的“落地页”提示能力做引导。Chrome for Developers+1
- 教学/演示与开源项目:给开发板做一个在线控制台/示例实验网页,用户点“连接”就能体验,降低门槛。Zephyr 自带回环示例可直接上手。docs.zephyrproject.org
什么时候“更适合/不适合”用 WebUSB¶
- 更适合:设备是自定义/非标准类(没现成类驱动),或你想统一一套跨平台JS SDK。Chrome for Developers
- 不太适合:
- 标准 HID 键鼠/游戏杆→优先用 WebHID;串口 CDC-ACM → 优先用 Web Serial;这些 API 在浏览器层更友好。Chrome for Developers
- 你需要覆盖 Safari/Firefox:截至 2025 年,WebUSB 主要在 Chromium 家族可用(Chrome/Edge/Opera/Android Chrome),Firefox/Safari 仍不支持;业务要考虑回退方案。MDN 文档+1
打开 art_pi_example/16.webusb/index.html 连接
发送回传
参考
https://docs.zephyrproject.org/latest/samples/subsys/usb/webusb/README.html
https://developer.chrome.com/docs/capabilities/usb?hl=zh-cn
https://github.com/zephyrproject-rtos/zephyr/pull/90112
https://github.com/search?q=webusb&type=repositories


