开源硬件设计:基于VL822+RTL8156BG的10Gbps USB-C拓展坞,集成2.5G网口与读卡器
开源硬件设计:基于VL822+RTL8156BG的10Gbps USB-C拓展坞,集成2.5G网口与读卡器
最近想给笔记本配个扩展坞,市面上的产品要么接口不够用,要么速度上不去,特别是2.5G网口和高速USB 3.2 Gen2(10Gbps)的集成方案很少见。于是,我决定自己动手设计一个。这个项目折腾下来,收获不小,也踩了不少坑,今天就把这个开源硬件项目——一个集成了4个USB 3.2 A口、一个2.5G网口、以及TF/SD读卡器的10Gbps USB-C扩展坞——的设计思路、实现细节和调试经验分享给大家。无论你是想复刻一个,还是想学习高速USB和电源设计,相信这篇教程都能给你带来帮助。
1. 项目概览:我们要做一个什么样的扩展坞?
简单来说,这个扩展坞就是一个“接口大管家”。它通过一个USB-C口连接到你的电脑(支持10Gbps高速),然后扩展出:
- 4个USB 3.2 Gen2 Type-A接口:每个都支持最高10Gbps的理论传输速率,可以接高速移动硬盘、U盘等。
- 1个2.5G以太网口(RJ45):使用RTL8156BG芯片,提供高速有线网络连接,比常见的千兆网口快2.5倍。
- 1个TF/SD读卡器:使用GL3224芯片,方便读取相机、无人机等设备的存储卡。
除了接口扩展,它的供电设计也很有特点。它有两个Type-C输入口:一个主要负责数据传输(也提供5V基础供电),另一个是专用的PD快充供电口。内部使用了一颗升降压(Buck-Boost)电源芯片,无论你输入的是笔记本USB口常见的5V,还是PD充电器提供的20V,它都能稳稳地输出5.1V,为所有扩展接口提供充足、稳定的电力,总输出电流能力高达9.5A。
整个项目分为上下两块电路板,通过FPC排线和XH2.54排线连接,结构清晰,也方便散热。主要用到的核心芯片如下表:
| 芯片型号 | 主要功能 | 在本项目中的作用 |
|---|---|---|
| VL160 | USB Type-C 端口控制器/多路复用器 | 实现USB-C口的正反插功能,确保高速信号正确连接。 |
| VL822 | USB 3.2 Gen2 集线器(Hub)控制器 | 核心芯片。将1路上游USB 3.2信号扩展为4路下游信号。本项目用了两颗VL822。 |
| RTL8156BG | USB 转 2.5G 以太网控制器 | 将USB 3.2信号转换为2.5Gbps的RJ45网络信号。 |
| GL3224 | USB 3.0 读卡器控制器 | 将USB信号转换为TF/SD卡接口信号。 |
| SC8703 | 同步升降压(Buck-Boost)控制器 | 电源核心。负责将宽范围(4V-20V)的输入电压稳定转换为5.1V输出。 |
| EA3036/MT2492 | 同步降压(Buck)控制器 / MOSFET驱动器 | 为RTL8156BG等芯片提供所需的3.3V、1.8V等次级电压。 |
注意:本项目设计时参考了立创开源平台上的另一个优秀项目“具有独立稳压电源的USB3.2拓展盒”,在此表示感谢。
2. 核心硬件方案解析
2.1 高速数据通路:信号是怎么“分”出去的?
这是扩展坞的“高速公路”系统。当你的电脑支持USB 3.2 Gen2(10Gbps)时,数据流是这样走的:
- 信号“摆正”(VL160):USB-C接口可以正反插,但内部的超高速差分信号线(TX/RX)会因此交换。VL160芯片的作用就像一个“智能交警”,它能自动检测插头的方向,并把交换了的信号线再交换回来,确保后续电路收到的信号顺序总是正确的。
- 信号“分流”(VL822):经过VL160“摆正”后的单路10Gbps USB信号,进入第一颗VL822集线器芯片。VL822可以将1路输入扩展为4路输出。在本设计中,其中一路输出给了第二颗VL822进行再次扩展,另一路直接给了2.5G网卡芯片(RTL8156BG)。第二颗VL822则负责扩展出多个USB A口和读卡器接口。
- 功能转换(RTL8156BG & GL3224):分出来的USB信号,一部分直接送到Type-A接口,另一部分则交给RTL8156BG转换成以太网信号,或交给GL3224转换成存储卡读写信号。
如果电脑接口是低速的(比如USB 2.0,480Mbps),信号则不会经过VL160,而是直接进入VL822,此时所有下游端口的最高速度也就被限制在480Mbps。
2.2 电源系统:如何应对复杂的供电需求?
电源是扩展坞稳定工作的基石,尤其是要同时驱动多个高速设备和2.5G网卡时,电流需求很大。本设计采用了一个非常稳健的升降压方案。
核心:SC8703升降压电路这是整个电源系统的“心脏”。它的厉害之处在于,无论输入电压是低于、等于还是高于5V,它都能输出稳定的5.1V。为什么是5.1V?这是为了补偿大电流输出时,在PCB走线和连接器上产生的电压降(线损),确保到达每个USB口的电压仍然接近标准的5V。
双路输入设计:
- 数据/供电口:连接电脑的USB-C口。它既传数据,也提供基础的5V供电(通常最高3A)。这个5V输入也会接入SC8703电路。
- 专用供电口:独立的Type-C口,支持PD快充协议诱骗。这意味着你可以用一个PD充电器(比如笔记本的65W充电器)插在这个口上,电路会通过协议芯片“请求”最高20V的电压,然后交给SC8703降压到5.1V。这样就能获得远超电脑USB口供电能力的强大电力,满足所有接口满载运行的需求。
过流保护: 在每个USB-A口的电源路径上,都放置了一颗SY628CAAC芯片。它是一个带过流保护的电子开关。当某个USB口后接的设备短路或电流异常超过2A时,这个开关会自动断开,保护主板和其他设备,并通过一个OC引脚输出信号(本设计中这个信号被悬空,但可以引出用于状态指示)。
3. 关键设计与调试心得
3.1 PCB设计:高速信号的“高速公路”怎么修?
这是我第一次做10Gbps速率的高速PCB,踩的坑最多,也学到最多。高速信号对PCB的要求非常苛刻。
- 层叠结构与阻抗控制:这是最重要的两点。我使用的是JLC04121H-3313这个标准的4层板层压结构,板厚1.2mm。在PCB下单时,必须明确要求厂家进行阻抗匹配计算和控制。USB 3.2的超高速差分线(如SSRX+/SSRX-)要求特性阻抗控制在90欧姆±10%。如果阻抗不匹配,信号会在传输中反射,导致眼图变差、误码率升高,轻则速度上不去,重则无法识别设备。
- 布线要点:
- 差分走线:USB 3.2、PCIe等高速信号必须严格按差分对走线。两条线要平行、等长、等间距,走线尽量短,避免不必要的过孔。
- 参考平面:高速差分线下方必须有一个完整、无分割的参考平面(通常是GND),为信号提供清晰的回流路径。
- 远离干扰源:高速信号线要远离晶振、电源电感、开关电源区域等噪声源,避免干扰。
3.2 电源布局与散热
大电流电源部分的布局和散热直接关系到稳定性和寿命。
- SC8703电路布局:输入/输出电容要尽可能靠近芯片的VIN和SW、VOUT引脚。功率电感和大电流的走线要短而粗。从测试的热成像图看,在输出8A电流时,MOS管的温度达到了81℃(环境27℃)。在实际布局时,这些功率器件(MOS管、电感)周围要预留足够的空间,不要被其他芯片或连接器挡住,必要时可以考虑在背面添加散热焊盘甚至粘贴散热片。
- 芯片散热:VL822和GL3224在满负荷工作时温度也不低(分别约70℃和58℃)。在PCB设计时,这些芯片的底部如果有散热焊盘(Thermal Pad),一定要按照数据手册推荐,打过孔连接到内部或背面的大面积铜皮上,利用整个PCB来帮助散热。
3.3 性能测试与结果
理论设计再好,也要用测试数据说话。以下是我实测的一些关键数据:
- 电源效率:使用20V PD充电器供电,在不同负载下测试了SC8703升降压电路的转换效率。在输出约20W(4A)时,效率最高,超过91%;在满载输出40W(8A)时,效率约为89%。这个效率表现对于升降压电路来说是非常不错的。
- 输出纹波:纹波是衡量电源质量的关键指标。实测在空载时,5V输出纹波约18mV;带1A负载时,纹波反而更低,约6mV。这说明电源的动态响应和稳定性很好。
- 速率测试:
- USB 3.2:连接支持10Gbps的硬盘盒,实测读取速度达到969.65 MB/s,写入912.65 MB/s,基本跑满了10Gbps带宽。
- 2.5G 网口:在内网搭建测速服务器,测得下载速率2089 Mbps,上传速率2497 Mbps,达到了2.5G网口的性能标准。
- 读卡器:使用三星EVO Plus TF卡测试,读取93.04 MB/s,写入20.13 MB/s,性能符合主流读卡器水平。
4. 复刻指南与避坑要点
如果你对这个项目感兴趣,想自己动手做一块,这里有一些非常重要的注意事项,能帮你省去很多麻烦。
- PCB制板要求:再次强调,下单时必须选择JLC04121H-3313层压结构,板厚1.2mm,并备注要求阻抗控制。这是高速信号稳定的前提。
- 外壳组装:外壳是3D打印的,模型文件在资料包里。固定螺丝孔需要使用M2.5的热熔螺母。安装时,用烙铁头加热螺母,将其压进塑料外壳的孔位中,冷却后就会固定得很牢固。
- 排线方向:连接上下板的30P FPC排线和6P XH2.54排线都需要购买反向(或称为“翻面”、“镜像”)的型号。买错了会导致引脚顺序对不上,无法连接。下单前一定要和卖家确认清楚。
- 驱动与固件:
- 网卡驱动:在Windows系统上,2.5G网卡可能需要单独安装驱动才能达到满速。驱动文件在资料包的
绿联USB有线网卡-RTL芯片-全系统_UGREEN_EthernetAdapter Driver_V1.01.zip里。 - 读卡器固件:部分系统下读卡器可能工作异常,可以尝试升级GL3224的固件。升级工具在
GL3224 update tool v1.0目录里。出厂固件版本是1532,最新是1539。如果读卡器工作正常,可以不焊接那个用于存储固件的Flash芯片。
- 网卡驱动:在Windows系统上,2.5G网卡可能需要单独安装驱动才能达到满速。驱动文件在资料包的
- 元件采购:所有关键芯片(VL160, VL822, RTL8156BG, GL3224, SC8703等)的购买链接,原作者都在文章中提供了。最方便的方法是在立创EDA工程里打开BOM表,使用“一键下单”功能将元件导入立创商城购物车。对于电阻电容等通用件,可以购买0603封装的样品本,非常实惠。
这个项目从设计、打板、焊接到调试,花了不少精力,特别是高速PCB布线,反复修改了好几次。但看到最终成品能稳定跑满10Gbps和2.5Gbps,所有设备同时工作也没问题,感觉一切都值了。希望这个开源项目和详细的解析,能给你带来启发或帮助。
