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