DIY及创意
直播中

翁嘉杰

1年用户 204经验值
擅长:控制/MCU
私信 关注
[创意DIY]

我做了一个智能高速隔离的USBHub...开源了!

智能高速隔离 USB Hub

工程开源地址及附件下载:智能高速隔离USB Hub

可在

1 简介

1.1 项目背景

作为电子工程师/DIY爱好者的你是否有过这样的经历:
1. 调试开发板时,不小心短接了5V和GND,导致电脑USB端口弹出了过流警告,甚至烧掉了电脑USB保险。
2. 想在调试时检测USB口的功率,花几十块购买的USB电流表,它却只能检测一路的电压电流数据。

CH318 是一个高速 USB 信号隔离芯片,通过电容耦合,可以对 USB 信号线(D+、D-)进行隔离,使得信号在传输过程中可以不受电气噪声和干扰的影响。

1.2 项目亮点

  • ✅智能控制,可通过手机APP进行监测电压电流、控制
  • ✅可连接电脑通过上位机实时监测电压电流
  • ✅使用ESP32S3作为主控,旋转编码器操作交互,UI动画丝滑
  • ✅USB信号隔离,有效抑制噪声
  • ✅高速USB2.0传输,满足大部分需求
  • ✅短路及过流保护,过流将自动切断该路供电,防止损坏设备
  • ✅灵活供电,可接辅助供电为高功率USB设备供电
  • ✅最多4个USB设备连接
  • ✅支持OTA在线升级固件

2 功能展示

2.1 外观

白色外壳版本,简约时尚
image.png

image.png

image.png

黑色外壳版本,优雅高端
image.png

裸板外观
image.png

2.2 手机APP无线控制

? 手机APP实时控制

(1)输入websocket地址,连接到USB Hub,可以实时监测电压电流功率

image.png

(2)可以控制USB的开关,Hub同步动作

PixPin_2025-07-29_10-59-37.gif

2.3 Hub控制系统展示

?️ 本地智能控制系统

(1)控制USB的开关,可控制USB的启用/关闭,与在手机APP上控制效果一样。

PixPin_2025-07-29_10-55-59.gif

(2)USB监测功能,实时监测各个USB端口的电压、电流、功率。可配置数据刷新率。

PixPin_2025-07-29_10-51-03.gif

(3)wifi配置功能,可以进行连接、断开wifi,查看网络信息、进行wifi配网、重置wifi等操作。也可以配置是否开机自动连接wifi、睡眠时wifi是否关闭等。

image.png

其中,配网页面需要用手机连接Hub开启的热点,连接成功后会弹出网页,进行wifi的选择和密码输入。

image.png

(4)UI设置页,主要修改UI动画速度等内容

PixPin_2025-08-04_18-48-33.gif

(5)USB过流警告功能。当某个USB口出现过流,会自动监测并弹窗提示。同时,系统会立即切断该路供电输出,需要在开关页面手动开启。

PixPin_2025-07-29_10-58-19.gif

(6)OTA在线升级功能。连接WIFI后,点击主菜单上的OTA图标,系统自动获取最新固件版本,并自动升级,无需与电脑连线,快捷方便。

PixPin_2025-08-06_17-35-29.gif

(7)睡眠功能,点击后屏幕进入关闭状态,CPU降低频率运行,系统功耗显著降低。如配置"睡眠时关闭wifi",则会进一步降低功耗,否则,睡眠时wifi仍然启用,仍可使用手机APP查看数据、控制USB。

2.4 上位机实时监测电压电流

? VOFA实时数据可视化
在监测页面的设置中,启用串口输出数据功能。使用USB数据线连接电脑与Hub的ESP32调试接口,在某个USB口上插入设备。 打开VOFA软件,数据引擎选择FireWater,打开串口。放置3个波形图控件,分别对应电压、电流(mA)、功率(mW)

PixPin_2025-08-04_20-02-45.gif

2.5 文件传输速度

⚡ 高速传输性能测试

插入一个TF卡读卡器,一个U盘。

(1)跑个分~使用diskmark成绩如下:

? 读取能达到40MB/s,顺序写入是16MB/s(这块U盘拖后腿了)。
? 说明一下,因为USB协议有较大的通信开销,除了我们的数据,还要传同步信号、类型标识、校验码、握手信号等各种协议信息,所以这里40MB/s已经是USB2.0协议的极限了

image.png

(2)向TF卡写入的同时,从U盘读数据:

image.png

3 硬件方案

1. 数据输入端:

使用USB-C 16pin 连接电脑,用于数据输入和0.6A以下电流供电。

2. 电源部分:

(1)非隔离端,从数据输入的USB口取电,最大5V0.5A
(2)如果电脑供电不足,可外接辅助电源
(3)CH217K做电路限流 ,限制2A
(4)隔离DCDC电源 ,最大5V0.6A
⚠️ 注意: 如果要插2个以上的U盘、移动硬盘等设备,一定要接辅助电源,否则会出现供电不足的情况。

3. HUB主电路部分:

(1)需要两个CH318T ,一个在非隔离端做上位机,接收电脑的USB数据信号,然后调制发送模拟信号到另一个做下位机的CH318T;
隔离端和非隔离端中间采用电容耦合信号,电容耐压值1.5kV
下位机的CH318T接收模拟信号,通过下行端口输出。
(2)CH334R 4端口USB HUB控制器芯片 1个。
一共4路USB输出,其中每一路上使用INA226做电压电流采样
(3)使用SY6288CAAC 电子开关,使用ESP32控制开关,以及检测过流。

4. 单片机控制部分

主控使用ESP32S3,用于处理数据、显示数据、控制电子开关等。
用到的外设有I2C(接4个INA226)、旋转编码器(做菜单控制)。
另外,基于ESP32的WIFI连接功能,可以连接到手机通过app监测、控制电子开关。

5. 显示部分

使用SPI驱动的OLED屏幕,尺寸为1.5寸,分辨率128x128

4 功能框图

系统架构概览

框图.png

5 软件部分

5.1 软件代码

? 软件包说明

仅开源ESP32固件,且需使用激活工具激活。
固件烧录及激活方式请见5.2和5.3节。
安卓手机应用请在附件中下载安装usb_hub_app.apk

5.2 烧录方式

5.2.1 首次烧录

第一次烧录固件请参考以下步骤:

(1)下载工具和固件

(2)选择芯片型号
打开烧录工具,选择芯片型号ESP32S3

image.png

(3)配置烧录参数
按下图所示操作,点击省略号,选择USBHub_full_v1.x.bin,打勾复选框,地址填写0x00000000,spi设置保持默认,选择COM口,烧录即可。

image.png

5.2.2 线刷固件升级

? 固件升级流程:

(1)下载升级固件
下载附件中的USBHub_firmware_v1.x.bin

(2)修改烧录地址
与5.2.1中的类似,只是烧录地址要改为0x00010000,其他操作是一样的

image.png

5.2.3 OTA升级

OTA升级流程:

(1)在WIFI功能页配网/连接WIFI
(2)主菜单功能选择 OTA
(3)等待检查更新,若有新固件,则设备将自动重启升级

5.3 激活设备

? 设备激活流程

下载附件中 usbhub_activator.exe 激活工具,打开软件。

激活步骤:

  1. 使用USB-C数据线连接Hub板上ESP32 Debug接口,点击激活工具的刷新按钮
  2. 选择对应的串口,不同电脑显示的COM号不一样
  3. 点击一键激活按钮
  4. 等待服务器响应,如显示激活成功,设备将会自动重启
  5. 别急着关掉激活工具,一定要将MAC地址和激活码复制保存下来。这样后续还可以直接输入激活码手动激活

image.png

⚠️ 激活注意事项
  • 如果遇到服务器连接超时的情况,请多重试几次,或者更换网络环境
  • 固件更新时请只烧录带firmware的固件。如果烧录完整包(full)会掉激活,遇此情况只需再用激活码手动激活
  • 每人可免费激活一台设备,如需激活多个设备请查看该指南: 查看多个设备激活指南

6 器件选购&成本估算

6.1 OLED屏幕

? 显示屏选购要点

购买链接: 淘宝搜索-> 1.5寸128x128OLED屏幕

image.png

⚠️ 选购注意事项
  1. 购买SPI接口的,pin的排列顺序(从左至右)为 RST CS DC SDA SCL GND VCC
  2. 屏幕含底板,尺寸为34mm * 47mm
  3. 显示控制芯片为SH1107
  4. 价格在20元以上(不含邮费),勿贪便宜购买低于此价格的!!! 我购买的是原价22.9,店铺券-5元,到手17.9元

6.2 可在某宝购买以降低成本的器件

有些器件在立创商城买挺贵的,所以可以选择在某宝买。但要注意购买大店的,别贪便宜,容易买到拆机、高仿货。以下价格均不含邮费:

器件 价格
CH318T 10.8元x2个
B0505S-3WR2 5.2元
SY6288CAAC 0.46元x4个
CH334R 1.84元
INA226 2.5元x4个
EC11J1525402 10元
CH340X 2.35元
ESP32-S3 N8R8模块 约13.5元

6.3 成本估算

  • 如若6.2节的器件在某宝买,剩下的立创商城买,则单套器件价格为87元
  • OLED屏幕有优惠券是18~23元
  • PCB 嘉立创6层板有免费券0元
  • 3D外壳费用26元(9600树脂,不加急),如果裸板则能省下这部分费用

7 PCB设计说明

1. 层数设计考虑

本设计用4层板就能布通走线,但USB的信号会缺少完整的参考层。我这里设计6层板是为了在第2和第5层做完整的GND平面,为Top和Bottom层的USB信号提供参考层。另外嘉立创也支持6层板的免费打样,PCB成本为0。

2. 阻抗控制要求

USB差分信号控制阻抗90欧姆,在下单时要求阻抗匹配+-20%,选择层压结构JLC04161H-3313

3. 天线布局设计

ESP32天线要伸出板边,这是参考乐鑫官方文档[PCB 版图布局]来设计的,但由于旋转编码器和USB-A的位置限制了,因此不能放在推荐位置上(位置3、4)。

image.png

8 声明

本项目由作者在业余时间开发并开源。虽然尽力保证其可靠性和兼容性,但受限于个人精力,声明如下:

  • 不保证提供免费的技术支持、使用指导或定制服务
  • 不保证软件无缺陷或满足特定需求
  • 不保证及时修复漏洞或发布更新
  • 不承担任何因使用本项目而产生的直接或间接损失
  • 未经作者书面授权,不得将此项目以任何形式用于批量生产和商业盈利用途
  • 如需借鉴本项目的部分设计,请遵循开源协议,并标明本项目的开源地址:
    https://oshwhub.com/vrxiaojie/multi-function-high-speed-isolat

9 参考&致谢

本项目的软件/硬件参考以下开源工程,非常感谢开源作者们!

  1. CH318外围设计参考:[高速USB隔离器,基于CH318T] 以及CH318的数据手册
  2. ESP32部分设计参考我之前的项目:[基于ESP32的桌面仪表盘]
  3. 丝滑的UI设计,修改自[WouoUI]
  4. 特别感谢嘉立创星火计划提供的耗材支持!

10 程序更新日志

版本 更新内容
1.0.0 规划UI整体框架
1.0.1 新增WIFI相关功能
WebSocket连接
1.0.2 ws性能优化;修复电压电流显示问题
1.1.0 新增设备激活功能
1.1.1 修复WIFI配网失败问题
1.1.2 修复电子开关不工作的问题
修复USB2、3数据获取问题
1.1.3 新增过流保护切断电子开关功能
1.1.4 支持串口输出电压电流数据
1.2.0 开发OTA在线升级功能
1.2.1 修复了一些bug
睡眠功耗降低

更多回帖

发帖
×
20
完善资料,
赚取积分