點擊上方名片關注了解更多

后來細聊才知道,他們對結構尺寸和成本有嚴格限制,市面上的標準品要么太大,要么太貴,要么接口布局不合適。所以才找上門來。
所以今天,跟大伙聊聊多口USB擴展塢的相關設計。別看這東西看似簡單,真要做穩定、做小、做便宜,坑不少。
01
我接觸到的真實需求,主要是這么幾個地方。
工業數據采集那邊,工控機上同時掛著好幾個U盤、掃碼槍、USB轉RS232模塊,一個工位下來就得六到八個USB口,少了真不夠用。
嵌入式開發調試就更不用說了,開發臺上同時連著多個串口設備、JTAG調試器、鼠標、鍵盤,經常插得亂七八糟,想找個空閑口還得先拔一個。

測試產線也是個典型場景。批量燒錄固件或者做功能性測試的時候,一臺電腦要同時帶多個設備并行操作,沒有多口擴展塢干活真不太方便。
說白了,但凡你需要在同一臺主機上同時操作多個USB設備,就得多口擴展塢出場。
02
之前沒認真了解過這塊,帶著好奇心,我在網上查了一下,目前市面上能看到的最多的USB擴展塢是16口。那么USB理論上一共能擴展出幾個口?主要瓶頸是什么?跟什么有關系?

先給個結論:從協議層面來說,理論上可以掛127個設備。因為每個USB主機控制器有一個7bit的地址空間,地址0保留不用,剩下127個都能用。但這是理論值,實際產品沒人這么干,也干不了。
真正的瓶頸在三個地方。
第一個是電源。每個USB口至少要提供500mA(USB 3.0是900mA)。16口全帶滿載設備的話,光下游就需要8A以上的電流,這還不算HUB芯片自身的功耗。這么大的電流,電源怎么設計、散熱怎么解決,這是需要考慮的。
第二個是帶寬。所有下游口共享上行總線的那點帶寬。USB 2.0只有480Mbps,USB 3.0是5Gbps。你想想,如果掛7個U盤同時拷文件,每個口能分到的帶寬就很可憐了。真做到16口的時候,USB 2.0基本只適合帶鍵盤鼠標這類低速設備了。

第三個是HUB芯片的級聯深度。實際用的HUB芯片都有端口數限制,比如常見的CH339原生支持7口。要超過7口,就得兩級甚至三級級聯,就是一顆芯片下面再掛芯片。但每多一級,信號質量就下降一截,延遲增加一截,兼容性也差一截。
所以市面上的16口產品,基本都是兩到三級級聯做出來的,而且通常只適合低速設備,比如鼠標、鍵盤、U盤,或者每個設備輪流工作的場景。想16個口同時滿帶寬跑數據,基本不可能。
03
直接說重點,這幾個坑你最好別踩。
1、電源必須單獨供電
這是最容易翻車的地方。7個Type-A口,就算每個設備按500mA算,那就是3.5A。雖然U盤、串口工具、無線鼠標這些實際電流可能沒那么大,但你不能按可能來設計,得按最壞情況來。

另外每個口最好單獨加一個限流開關芯片。不然一個口短路,整個擴展塢就跟著掉電了,客戶會直接罵娘。
7口怎么實現?常見的有兩種思路。
一種是單芯片方案,比如沁恒的CH339就是原生7口,一顆搞定,布板簡單,但引腳多,PCB空間壓力大。
另一種是兩級級聯,比如一顆4口芯片下面掛一顆4口芯片,實際多了一個接口,可以不用。這樣布局靈活,但代價是增加了延遲和信號完整性風險。

我的個人建議是:如果成本不敏感、PCB空間夠,優先用原生7口芯片。
客戶只說Type-A口,沒明確要求速率。但大多數實際項目里,至少得支持USB 3.0的5Gbps。這時候等長走線、阻抗控制、差分對間距這些都得認真對待,不能湊合。這些細節可以看下我之前寫的文章。
另外要跟客戶說清楚一個事實:多口HUB內部是共享上行帶寬的。7個口同時跑USB 3.0,理論上行只有5Gbps,分到每個口大概就700Mbps左右。這不是設計缺陷,是架構決定的,但在規格書里必須寫明白,免得客戶回頭投訴說速度慢。
7口HUB芯片,比如CH339,滿負載下功耗大概一到兩瓦。聽起來不大,但如果外殼是全封閉塑料的,又沒有散熱孔,需要考慮到夏天溫度高的時候。

建議的做法是:芯片底部鋪地銅,多打幾個過孔導到背面。如果空間允許,再加一小塊導熱墊貼到外殼上,這樣量產問題就不太大。
04
7口USB擴展塢,看起來是個成熟產品,但一旦加上定制尺寸、控制成本這兩個約束,就變成了一個正經的硬件設計活。關鍵的幾個點再列一下:
電源要外接供電,每個口獨立限流。芯片選型上,原生7口優先。USB 3.0的信號按高速設計規則走,別偷懶。散熱要考慮。