你桌上肯定有一个USB Hub。甚至可能不止一个。
但你有没有遇到过这些问题:
串口设备 COM 号乱跳
不知道哪个设备对应哪个端口
板子死机,只能反复拔插
功耗异常,却完全没法定位
如果你做过嵌入式开发,这些几乎是日常。
而这个项目的核心目标就是一句话:
让USB设备“可观测、可控制、可调试”

前言
USB Insight Hub通过 USB Type-C 接口连接到计算机,并提供三个 USB 3.0 下行端口,每个端口都配备一个 1.3 英寸屏幕,用于显示连接设备的相关信息。这些信息包括操作系统枚举名称(COMx、TTYx 或驱动器号)、电压和电流。USB Insight Hub 还允许单独控制 D+/D- USB 2 数据线的激活和禁用,从而强制枚举并控制每个下行设备的电源。运行在主机上的一个小型应用程序会从操作系统中提取 USB 信息,并通过 USB 将其发送到 Hub。

密切关注用电量
USB Insight Hub 的每个端口都配备独立的电压和电流表,可实时反馈设备运行状况。这样,可以一目了然地确认一切是否正常工作,或即时检测异常情况。
为避免损坏主机并妥善处理下游设备故障,USB Insight Hub 为每个端口实施了三种高度可配置的保护措施:
短路保护:检测到下游设备发生故障,因此切断电源。
过流保护:下游设备的电流消耗超过某个阈值,因此会切断电源。
反向电流保护:防止下游设备(具有自身电源)将电流反向馈送到连接到该主机端口的其他设备,或最终馈送到主机本身。

功能与规格
USB接口
瑞萨电子的 uPD720210 提供 USB 3.0 集线器功能,支持 USB 2.0 线路(低速、全速和高速)以及 USB 3.0 线路(5 Gbps 超高速)。所有 USB 通信均以普通 USB 集线器的方式进行;不会以任何方式拦截或监控交易。
一个用于数据传输和供电的上行 USB 3.0 Type-C 端口(最高 3 A @ 5.5 V)
三个下游 USB 3.0 Type-A 端口
每个下游端口均配有独立的 USB 2.0 D+/D- 开关
可选择作为 USB 2&3 集线器(默认)、仅 USB 2 或仅 USB 3 运行。
用户界面
3块1.3英寸彩色TFT显示屏(240×240),IPS面板,170°可视角度,250尼特亮度
3 个用于电源和数据控制的机械按钮,以及 1 个设置按钮
一个专用的锁定开关,用于控制设备整体电源
通过 Wi-Fi(AP 或客户端)提供远程 Web UI。
控制器
运行 Arduino 代码的 Espressif ESP32-S3 微控制器提供显示、计量、控制以及与主机(通过 USB 2.0)通信的功能。
STM8S003K3 用作 IO 扩展器。
主微控制器和所有辅助微控制器的编程接口
Power
一个专用的 USB Type-C 接口,可提供高达 5 A @ 5.5 V 的辅助电源。
每个下游端口均配备专用的功率和能量监测器 (PAC1943),用于监测电流和电压,分辨率分别为 1 mA 和 1 mV (±2%)。
每个下游端口均配有独立的电源控制开关 (AP22653),硬件电流保护可配置为 0.5、1.0、1.5 和 2.0 A。响应时间小于 6 毫秒。
软件过流保护功能可以以 1 mA 为步长进行配置,响应时间小于 20 ms。
软件反向电流保护功能可以以 1mA 为步长进行配置,响应时间小于 20 ms。
所有数据和电源输入输出均有适当的静电放电防护。
其他功能
下游端口之间的间距比大多数枢纽端口要大。
用于保护印刷电路板和显示屏的亚克力板
额外的 STEMMA QT 连接器以扩展功能
2.4GHz Wi-Fi 无线接口
框图

链接
用户手册和串口API
https://github.com/Aeriosolutions/USB-Insight-HUB/tree/main
枚举提取代理安装程序
https://github.com/Aeriosolutions/USB-Insight-HUB/releases/tag/1.0
硬件仓库
https://github.com/Aeriosolutions/USB-Insight-HUB-Hardware
固件和代理(主机)存储库
https://github.com/Aeriosolutions/USB-Insight-HUB-Software
总结
大家有其他想法或者思路可以在此基础上进行扩展~
以上文章来源于公众号:OpenFPGA

扫码加微信直接与工作人员沟通