【導(dǎo)讀】通用串行總線(USB)是個人計算機(jī)(PC)通過電纜與外設(shè)實現(xiàn)通信的常用方法。某些應(yīng)用中,需要隔離USB通信以滿足安全要求,或中斷接地環(huán)路。遺憾的是,隔離任務(wù)不易完成,因為USB電纜上有雙向數(shù)據(jù)流。
簡介
通用串行總線(USB)是個人計算機(jī)(PC)通過電纜與外設(shè)實現(xiàn)通信的常用方法。某些應(yīng)用中,需要隔離USB通信以滿足安全要求,或中斷接地環(huán)路。遺憾的是,隔離任務(wù)不易完成,因為USB電纜上有雙向數(shù)據(jù)流。本文將討論這個問題,并探討實現(xiàn)易于使用的隔離式USB方案面臨的其他挑戰(zhàn),最后對解決方案進(jìn)行比較。一個理想的“透明”解決方案能將隔離對系統(tǒng)的影響降至最低,目前我們就可以提供這種解決方案。本文討論的內(nèi)容針對USB 2.0,支持三種數(shù)據(jù)速率: 1.5 Mbps(低速)、12 Mbps(全速)和480 Mbps(高速)。為簡便起見,將詳細(xì)探討12 Mbps的情況,但示例中的很多原理同樣適用于其他速度。
圖1. 全速(12 Mbps) USB連接(非隔離式)
USB基礎(chǔ)知識
USB廣受歡迎的一個原因是它具有簡單的4線式接口,能夠為外設(shè)供電,并在外設(shè)與PC之間提供串行數(shù)據(jù)鏈路。圖1顯示標(biāo)準(zhǔn)的USB連接。VBUS和GND線提供5 V電源和接地,而D+和D–則承載數(shù)據(jù)。信號發(fā)送方式為雙向半雙工,表示數(shù)據(jù)可在任一方向沿電纜傳輸,但任意特定時刻最多只有一個發(fā)送器主驅(qū)動電纜。通信期間,USB發(fā)送器驅(qū)動差分或單端狀態(tài)至D+和D–。數(shù)據(jù)以分組的形式進(jìn)行組織,并用特殊信號序列表示分組開始和分組結(jié)束。有時總線處于空閑狀態(tài),也就是說沒有激活任何發(fā)送器,時連接電纜D+和D–端點的電阻將建立“空閑”總線狀態(tài)??臻e狀態(tài)協(xié)助對分組之間的總線進(jìn)行初始化它們還用來向主機(jī)指示外設(shè)的連接與斷開狀態(tài),以及外設(shè)所需要的通信速度(1.5 Mbps、12 Mbps或480 Mbps)。
隔離總線主機(jī)和外設(shè)的方法
現(xiàn)在,請想象一下主機(jī)和外設(shè)的電氣隔離。如[1]所述,隔離柵的位置可以有數(shù)個選項。無論哪種情況,都應(yīng)隔離多個信號,并且信號的運行速度可能較快,或者信號可能是雙向的。這取決于在何處進(jìn)行隔離。這使得基于分立器件構(gòu)建的解決方案變得更為復(fù)雜。完整的物料清單可能更長,并且有可能很難找到完全滿足信號傳送要求的分立器件。
圖2a. 隔離分割了電纜(概念)
圖2b. 隔離分割了電纜(顯示額外電阻)
一種可能的隔離方法如圖2a所示。圖中,虛線表示隔離在理論上將USB電纜分割。D+和D–的狀態(tài)信息可以跨越隔離柵,但電流不能。GND1節(jié)點(上游的接地基準(zhǔn))現(xiàn)在與GND2節(jié)點(下游的接地基準(zhǔn))相互分離。不幸的是,隔離使主機(jī)無法“看到”下游的上拉電阻,而外設(shè)無法“看到”上游的下拉電阻。因此,需要使用一些額外的電阻,如圖2b所示,以便跨越隔離模仿相應(yīng)連接。在這個“透明”概念中,主機(jī)與外設(shè)之間的通信方式和圖1中的非隔離式連接十分類似。透明的USB隔離器元件可方便地插入收發(fā)器和USB電纜之間,并使用隔離電源。原本設(shè)計用于非隔離式應(yīng)用的主機(jī)和外設(shè)可方便地連接USB隔離器并交換標(biāo)準(zhǔn)USB信號,無需大幅改動設(shè)計。
這種方法非常有吸引力,只要此概念可以真正實現(xiàn),但需克服一些挑戰(zhàn)。例如,獨立的光電耦合器或數(shù)字隔離器通常不提供兼容USB的驅(qū)動特性,也不支持雙向半雙工通信方式。很多光電耦合器無法在12 Mbps或更高速率工作,并且具有較高的傳播延遲和時序誤差,不符合USB 2.0時序要求。后面還將提到其他問題。
目前,我們先討論不透明的替代方案,如[1]中所述的方案。這些解決方案將隔離放在主機(jī)或外設(shè)的硬件內(nèi)部,而不是通過隔離平分USB電纜。這樣可以放在USB收發(fā)器和串行接口引擎(SIE)之間,或者SIE和USB控制器之間。如此,便可以采用獨立的通用隔離器來隔離單向數(shù)字邏輯信號。然而,這樣做有幾個缺點。首先,必須定制USB收發(fā)器或控制器硬件,才能插入隔離元件。可能還需要額外的微控制器代碼或修改USB驅(qū)動器軟件。這將會為系統(tǒng)設(shè)計人員帶來額外的工作量,并顯著增加所需的電路板空間,因為這些解決方案非常復(fù)雜,要用到多個器件。另一個不足之處是,這樣可能會導(dǎo)致總數(shù)據(jù)吞吐速率的下降,因為數(shù)據(jù)現(xiàn)在通過USB收發(fā)器和單獨隔離的串聯(lián)組合方案發(fā)送。隔離方案可能增加與編碼和解碼為另一種串行格式(如SPI)有關(guān)的延遲,或者增加與低速或隔離元件的非精確時序有關(guān)的延遲。
雖然存在這些缺點,但這類解決方案是在無法解決透明USB隔離器部署難題時的唯一可行方案。現(xiàn)在可以采用透明解決方案了。本文的余下篇幅將描述一個完全符合要求的示例。
透明USB隔離器要求
一個USB隔離器系統(tǒng)必須滿足一些要求,以實現(xiàn)完全的“透明”工作:
1. 它必須驅(qū)動UD+、UD–、DD+和DD–,驅(qū)動方式與標(biāo)準(zhǔn)USB收發(fā)器相同,并實際包含兩個USB兼容收發(fā)器,分布在隔離柵兩側(cè)(圖3)。
圖3. ADuM4160功能框圖
2. 它必須管理USB電纜上的雙向通信,確保其收發(fā)器在適當(dāng)?shù)臅r候進(jìn)行發(fā)送和接收,并精確重現(xiàn)所有驅(qū)動和空閑狀態(tài)。若要精確重現(xiàn)空閑狀態(tài),它必須在其上游側(cè)配置上拉電阻,以模擬連接下游外設(shè)的上拉電阻狀態(tài)。它在下游側(cè)也需配置下拉電阻。必須監(jiān)控總線上表示總線空閑、分組開始和分組結(jié)束的信號,以便正確響應(yīng)這些狀況。
3. USB隔離器內(nèi)部的信號隔離器元件必須跨越隔離柵正向和反向傳輸D+和D–數(shù)據(jù)。如果信號隔離器是單向的(通常如此),則USB隔離器系統(tǒng)需要多個隔離通道,其中某些通道沿下游方向傳輸,另一些通道則相反,沿上游方向傳輸。
4. 信號隔離器必須以精確時序快速運行,以便支持所需的USB信號速度,并滿足USB傳播延遲和時序誤差要求。
5. USB隔離器的每一側(cè)都應(yīng)支持5 V或3.3 V電源提供的功率。如果提供5 V電源,那么隔離器應(yīng)當(dāng)獲得適合為該側(cè)USB收發(fā)器供電的3.3 V調(diào)節(jié)電源。如果電源為3.3 V,那么隔離器可利用它來直接為USB收發(fā)器供電,并旁路其調(diào)節(jié)器。
透明USB隔離器的實現(xiàn)
ADI的ADuM4160 USB數(shù)字隔離器2滿足全部要求,采用16引腳SOIC封裝。原理框圖如圖3所示。它包含一對USB收發(fā)器、5個基于iCoupler®的數(shù)字隔離通道、控制邏輯以及2個“智能調(diào)節(jié)器”。它還集成1.5 kΩ上游上拉電阻,以及15 kΩ下游下拉電阻。
其USB收發(fā)器由簡化控制器控制,后者無需完全解碼并分析數(shù)據(jù)分組即可支持隔離功能。它能監(jiān)控UD+、UD–、DD+和DD–,使信號指示總線空閑、分組啟動和分組結(jié)束,并利用它們正確使能或禁用USB發(fā)送器,并忽略分組數(shù)據(jù)內(nèi)容。若將下游分組數(shù)據(jù)從主機(jī)傳輸至外設(shè),則會激活圖3中的兩個高位隔離通道,這與上游USB接收器和下游USB發(fā)送器相同。數(shù)據(jù)從UD+/UD–復(fù)制到DD+/DD–。分組結(jié)束時,檢測分組結(jié)束序列,禁用所有USB發(fā)送器,允許總線進(jìn)入空閑狀態(tài)。如果外設(shè)隨后開始傳輸上游分組數(shù)據(jù),則USB隔離器檢測分組啟動序列,使能第三和第四條隔離通道以及上游USB發(fā)送器,并將數(shù)據(jù)從DD+/DD–復(fù)制到UD+/UD–,直到分組結(jié)束。然后,總線再次返回空閑狀態(tài),所有發(fā)送器關(guān)斷,等待新數(shù)據(jù)到達(dá)。
ADuM4160使用第五條隔離通道交流下游側(cè)控制線路的狀態(tài)3,該控制線路激活一個集成在上游側(cè)的上拉電阻,使得下游端口能夠控制上游端口何時連接USB總線。該引腳可以連接到外設(shè)上拉電阻、一條控制線路或VDD2引腳,具體取決于何時執(zhí)行初始總線連接。將引腳與外設(shè)的上拉電阻相連可讓上游上拉電阻模擬其狀態(tài),同時讓ADuM4160的下拉電阻模擬所連接主機(jī)的狀態(tài)。所有活動與空閑狀態(tài)均從隔離的一側(cè)復(fù)制到另一側(cè)。隔離通道是采用芯片級變壓器的數(shù)字隔離器,可實現(xiàn)隔離通信。所有通道均可在100 Mbps以上工作,輕松支持12 Mbps USB“全速”數(shù)據(jù)。單芯片內(nèi)集成所有通道可使能針對時序的嚴(yán)格控制,實現(xiàn)滿足USB時序要求的低時序誤差。ADuM4160產(chǎn)生的總傳播延遲等于標(biāo)準(zhǔn)USB集線器產(chǎn)生的延遲??臻e總線的靜態(tài)功耗低于USB限值。
智能調(diào)節(jié)器支持上文第5條要求中的電源選項,無需用戶特別控制4。若要采用5 V為USB隔離器的一側(cè)上電(如上游側(cè)),則應(yīng)將5 V電源連接適當(dāng)?shù)腣BUS引腳(如VBUS1),而VDD1不連接。當(dāng)傳感器檢測到電壓施加于VBUS1而非VDD1時,將激活3.3 V調(diào)節(jié)器,為VDD1上電。若要轉(zhuǎn)而采用3.3 V上電USB隔離器的一側(cè)(如下游側(cè)),則3.3 V電源應(yīng)同時連接VBUS2和VDD2。當(dāng)傳感器檢測到電壓同時施加在兩個引腳上時,將禁用片內(nèi)調(diào)節(jié)器,以便直接使用外部3.3 V電源。
結(jié)論
“透明”USB隔離器理論上可隔離平分USB電纜,現(xiàn)可輕松用于原本針對非隔離式應(yīng)用設(shè)計的USB硬件。與此相反,在主機(jī)或外設(shè)硬件內(nèi)實現(xiàn)隔離則要求對硬件進(jìn)行較大的更改,有時甚至可能降低USB性能。使用分立器件(比如現(xiàn)成的通用隔離器)完成透明方案難度很大。然而,最新的集成式解決方案(如ADuM4160)通過便利的單一封裝解決了這些難題,極大地簡化了USB應(yīng)用中實現(xiàn)隔離的過程。