數(shù)字隔離器是一種方便易用的USB隔離方法
USB,是英文Universal Serial Bus(通用串行總線)的縮寫,個人電腦(PC)可以使用USB通過連接電纜與外設進行通信。但是出于安全考慮,在某些應用中需要隔離USB通信或隔斷接地回路。遺憾的是,由于USB連接電纜上的數(shù)據(jù)流是雙向傳輸,所以隔離工作也非易事。這篇文章討論的就是方便易用的USB隔離設備在實際應用中遇到的挑戰(zhàn),并對比了各種不同的解決方案。“透明的”理想方案是將添加隔離設備帶給系統(tǒng)的影響降至最低限度,而這樣的解決方案目前已經(jīng)成為可能。
本設計實例主要針對的是以三種數(shù)據(jù)傳輸速率運行的USB2.0:低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。簡單起見,本文著重探討了12Mbps的全速USB,且實例中的大部分實現(xiàn)原理也適用于以其他數(shù)據(jù)傳輸速率運行的USB設備。
關于USB
USB大受歡迎的一個原因是其簡單的4線接口設計,不但可以為外設供電,還可以在外設和PC間充當串行數(shù)據(jù)鏈路。圖1是標準的USB連接示意圖。VBUS線可以為外設提供5V電力,GND為接地線,而D+和D-則用來傳輸數(shù)據(jù)。信號是雙向半雙工傳輸,意味著數(shù)據(jù)可以在線纜的任意方向流動,但是無論何時,最多只有一個發(fā)射器可以有效驅動該線纜。在通信過程中,USB發(fā)射器驅動差分或單端狀態(tài)信號到D+和D-線。數(shù)據(jù)被組織成數(shù)據(jù)包,其中有特別的信號序列標識數(shù)據(jù)包的頭部和尾部。有時,總線會處于空閑狀態(tài),也就意味著沒有發(fā)射器處于活躍狀態(tài),此時與線纜兩端相連的電阻在D+和D-線建立起“空閑”總線狀態(tài)??臻e狀態(tài)會促成兩個數(shù)據(jù)包之間總線的初始化,并使主機了解外設何時連接或斷開以及外設期望的通信速率(1.5Mbps、12Mbps或480Mbps)。
隔離USB主機和外設的方法
現(xiàn)在想象一下對主機和外設進行電氣隔離的方法。如參考文獻1中提到的,添加隔離阻障的方法有很多。但是無論如何都必須對信號進行隔離。信號是高速運行還是雙向運行要取決于隔離阻障的具體添加位置,增加了從具體零部件中構建隔離阻障的難度。這樣一來,隔離過程需要使用到更多的材料,而且也很難發(fā)現(xiàn)完全符合信號要求的分離組件。
圖2a給出的是一種可能的隔離方法,其中虛線表示對USB線纜的概念分割。有關D+和D-線的信息可以穿過隔離阻障,但是電流不可以。在這種情況下,接地端1(上游側接地基準)是獨立于接地端2(下游側接地基準)的一個單獨節(jié)點。不幸的是,這種隔離方法使主機無法“看到”下游側上拉電阻,且外設也無法“看到”上游側下拉電阻。因此,正如圖2b所示,這種隔離方法需要一些額外的電阻來模擬其相對物穿過隔離阻障的連接方式。在這一“透明”隔離概念中,主機與外設之間的通信與圖1非隔離USB連接的運行原理類似。透明的USB隔離器組件簡單地插入到某個收發(fā)器與USB線纜之間,還有一個隔離電源。最初為非隔離應用設計的主機和外設可以輕松地連接到USB隔離器上,無需重大更改即可實現(xiàn)標準USB信號的交互。
假如可以真正實現(xiàn),這種方法還是極具吸引力的,但是真正實現(xiàn)起來需要面臨各種挑戰(zhàn)。舉例來說,獨立式光耦合器或者數(shù)字隔離器一般不支持USB兼容驅動特性,也不支持雙向半雙工通信。此外,很多光耦合器無法以12Mbps或更快的速度運行,且傳播延遲較長并存在定時誤差,這些都不符合USB2.0的定時要求。還有一些問題會在后面講述。
現(xiàn)在,我們轉移一下注意力,考慮一下不透明的替代選擇,比如參考文獻1中描述的那些。這些方案不再對USB線纜平分隔離,而是把隔離阻障放置到主機或外設的硬件中—可以放置在USB收發(fā)器與串行接口引擎(SIE)之間,或者串行接口引擎與USB控制器之間。這樣就可以將單向數(shù)字邏輯信號與獨立式通用隔離器分離開來。但是,這樣的方案也存在一些重大缺陷。首先,USB收發(fā)器或控制器硬件必須經(jīng)過定制,使其能夠容納隔離組件;還可能需要一些額外的微控制器代碼或USB驅動軟件方面的改動。所有這些無疑會加大系統(tǒng)設計師的工作負擔。而由于這些方案比較復雜且需要不同的組件,也會大大增加所需的板空間。
另外一個缺陷就是,數(shù)據(jù)傳送需要USB收發(fā)器和單獨隔離方案的一系列組合,可能會導致整體數(shù)據(jù)吞吐量降低。此外,隔離方案可能會增加與編解碼成其它串行格式如串行外設接口(SPI)相關的延遲或者與隔離組件低速或非精確定時相關的延遲。
雖然有這些不足之處,但在過去難以克服實現(xiàn)透明USB隔離器的挑戰(zhàn)時,這些方案是唯一可行的選擇。但是現(xiàn)在,透明的隔離解決方案已成為現(xiàn)實,本文的后半部分將具體描述一個完全符合要求的實例。
透明USB隔離器的要求
USB隔離器系統(tǒng)必須滿足下述要求,才能實現(xiàn)真正的“透明”操作:
作為標準的USB收發(fā)器,USB隔離器系統(tǒng)必須能夠以同樣的方式驅動UD+、UD-、DD+和DD-,且實際上應包含兩個USB兼容收發(fā)器,分別位于絕緣阻障的兩端(圖3)。
USB隔離器系統(tǒng)的收發(fā)器必須能夠在適當?shù)臅r間發(fā)送和接收信息,以管理USB線纜上的雙向通信,且USB隔離器系統(tǒng)必須能夠準確地復制所有驅動和空閑狀態(tài)。要想準確地復制空閑狀態(tài),USB隔離器系統(tǒng)必須在上游側設置一個上拉電阻器來模擬連接至下游側外設上的上拉電阻的狀態(tài)。當然,也可以在下游側設置一些下拉電阻。此外,必須對總線進行監(jiān)控,識別指示空閑總線、數(shù)據(jù)包頭、數(shù)據(jù)包尾的信號,以便能夠實時應對各種狀況。
USB隔離器內部的信號隔離器組件必須能夠穿過隔離阻障來回交流D+和D-數(shù)據(jù)。如果信號隔離器是單向的(因為一般情況下都是),USB隔離器系統(tǒng)需要多個隔離通道,有些負責在下游方向傳送數(shù)據(jù),有些負責在相反的上游方向傳送數(shù)據(jù)。
信號隔離器必須能夠快速運行且具備準確定時功能,這樣才能滿足USB信令速率與傳播延遲和定時誤差的要求。
USB隔離器的兩端均應支持5V或3.3V電源。如果是5V電源,隔離器應能夠衍生出適用于一側USB收發(fā)器的3.3V穩(wěn)壓電源。如果是3.3V電源,隔離器能夠旁路調節(jié)器,直接使用該電源為USB收發(fā)器供電。
透明USB隔離器的實現(xiàn)
美國ADI公司的ADuM4160 USB數(shù)字隔離器(參考文獻2)符合上述所有要求,并集成在16引腳小型SOIC封裝中。圖3給出的是ADuM4160的框圖。該器件包含一對USB收發(fā)器,5條iCoupler數(shù)字隔離通道、控制邏輯和兩個“智能調節(jié)器”。此外,該器件還包括一個1.5kΩ的上游側上拉電阻和數(shù)個15kΩ的下游側下拉電阻。
ADuM4160的USB收發(fā)器由一個簡化控制器進行控制,無需完全解碼和分析數(shù)據(jù)包即可實現(xiàn)隔離功能。此外,它還可以監(jiān)控UD+、UD-、DD+和DD-,識別指示空閑總線、數(shù)據(jù)包頭、數(shù)據(jù)包尾的信號,從而在忽略數(shù)據(jù)包內容的同時正確地使能或去使能USB收發(fā)器。當在下游側從主機向外設傳輸數(shù)據(jù)包時,圖3中上方的兩條隔離通道處于有效狀態(tài),用作上游側USB接收器和下游側USB發(fā)射器。數(shù)據(jù)從UD+/UD-拷貝到DD+/DD-。當數(shù)據(jù)包傳輸結束時,USB隔離器檢測到尾部序列后就會去使能所有USB收發(fā)器,使總線進入空閑狀態(tài)。如果接下來外設開始向上游側傳輸數(shù)據(jù)包,USB隔離器檢測到數(shù)據(jù)包頭部序列后就會使能第三和第四條隔離通道以及上游側USB發(fā)射器,并將數(shù)據(jù)從UD+/UD-拷貝到DD+/DD-,直到數(shù)據(jù)包傳輸結束。然后,總線再次進入空閑狀態(tài),所有發(fā)射器也被關閉,等待新的數(shù)據(jù)傳輸。
ADuM4160使用第五隔離通道來傳遞下游側(參考文獻3)控制線路的狀態(tài)信息,從而激活一個集成于上游側的上拉電阻,這使得下游端口能夠控制上游端口何時連接USB總線。該引腳可以連接到外設上拉電阻、一條控制線路或VDD2引腳,具體取決于何時執(zhí)行初始總線連接。將該引腳連接到外設上拉電阻可以使上游側上拉電阻模擬其狀態(tài),同時ADuM4160的下拉電阻可以模擬連接到主機的下拉電阻的狀態(tài)。所有有效與空閑狀態(tài)均可從隔離阻障的一側復制到另一側。
隔離通道是使用芯片級變壓器技術實現(xiàn)隔離通信的數(shù)字隔離器。每一單個通道的運行速度均超過100Mbps,可以輕松支持12Mbps的全速USB數(shù)據(jù)傳輸。把所有通道集成到一個單獨的芯片上可以實現(xiàn)對時間的嚴密控制,從而降低定時誤差,以滿足USB的定時要求。此外,穿過ADuM4160的全部傳播延遲相當于穿過一個標準USB集線器的延遲,且靜態(tài)功耗要低于空閑總線的USB限制值。
智能調節(jié)器支持上面第5條要求中提到的電源選項,且無需明確的用戶控制(參考文獻4)。如要使用5V電源(例如上游側)為USB隔離器的一側供電,則要將該5V電源連接到合適的VBUS引腳(如VBUS1)上,且將VDD1設為斷開狀態(tài)。當傳感器檢測到電壓是應用于VBUS1而非VDD1時,傳感器會激活3.3V調節(jié)器,為VDD1供電。
要想使用3.3V電源(例如下游側)為USB隔離器的一側供電,要將3.3V電源與VBUS2和VDD2相連接。當傳感器檢測到兩側引腳上同時出現(xiàn)外加電壓時,就會去使能片上調節(jié)器,直接使用外接3.3V電源。
結論
從概念上講,“透明”USB隔離器是把USB線纜數(shù)一分為二,與原本為非隔離應用設計的USB硬件一起使用操作起來非常簡單。這與在主機或外設硬件內部放置隔離組件的方案相比形成強烈的反差,因為那一方案需要進行大量的硬件改裝,甚至可能會降低USB的性能。在使用現(xiàn)有通用隔離器等分離組件的情況下,實現(xiàn)透明概念的隔離具有很大的挑戰(zhàn)性。然而,最新的集成解決方案如ADuM4160通過單個便利封裝克服了上述挑戰(zhàn),大大簡化了USB應用中添加隔離阻障的問題。