USB集線器與延伸器  

您曾經遇過外接硬碟傳輸到一半當機、掃描器掃描到一半突然不會動、USB裝置燈會亮,但是電腦怎麼就是偵測安裝不成功、買的USB HUB接多一點裝置就不聽使喚、需要經常重新開機與便讓USB可以重新RESET、將隨身碟接到電腦前方USB埠OK,但是接到後面的USB才可以運作正常嗎?這一篇文章可能可以給您提供一些解答,也提醒我們如果USB連接埠正常的時候,我們可以如何處理。當然,以裝置的觀點而言,給自己預備一個掛POWER且耐操夠穩的外接足夠電源的USB HUB(Maybe工業級)或是應用一些主動式的USB延伸線,應該可將問題解決或是簡化到相當的程度。

參考文章開始,有點深度,但值得參考...

您知道用通用序列匯流排(Universal Serial Bus;USB)最大的好處之一是其內含四條導線的 USB連接線可供應裝置電源的優點嗎? 在一些經適當設計的特定應用中,這是一項相當棒的特點。但是如果設計不當,設計人員會立即面臨現場失效(field failure)的問題。因此瞭解 USB 的電源標準、合乎規範與不符規範的設計方式、以及違反 USB 規範的設計方法所帶來的後果等,都是設計人員不可不知的資訊。設計成功與否的差異在於能讓產品順利發表上市,或是面臨產品召回與廠商道歉的頭痛問題與後續的麻煩。小心!別掉進 USB電源問題的陷阱中!


許多人並不知道連接到電腦的 USB連接線其實就相當於電源線。事實上,可提供電力正是 USB勝過其他前一代傳輸協定(例如 RS-232)的其中一項特點。您能想像電腦的鍵盤或滑鼠需要另外插電的情形嗎?USB 連接線可以傳送高達 500mA 的電流到外接裝置上,這樣的電力足以讓許多周邊裝置產品平常運作。(圖 1 許多USB 硬碟機皆採用 USB 供電)

在任何一種USB 連接線中只有四條導線,其中兩條的用途是傳送資料,另外兩條則分別用來傳送電力與接地(圖2)。這些擁有專門用途的導線都有個別的名稱:VBUS(電源)、Ground(接地)、D+與D-(訊號線)。其中D+與D-是傳送USB 資料的差動訊號對線。在高速傳輸時,這對訊號線的差動電壓為+/− 400mV,而在全速與低速傳輸時,這對訊號線的差動電壓為+/− 3V。高速傳輸模式採用較低的電位有助於減少訊號傳送的耗電量以及降低電磁干擾(EMI)。設計人員利用VBUS 與Ground 供應裝置所需的電力。


因此,裝置可以由其中的供電線獲得正常運作所需的電力。然而,關鍵在於USB 匯流排為了確保適當的電源管理所訂的嚴格規範。

USB 連接線的橫切面:白色及綠色為資料傳輸線,黑色為接地線(Ground),紅色為電源線(VBUS)

圖2. USB 連接線的橫切面:白色及綠色為資料傳輸線,黑色為接地線(Ground),紅色為電源線(VBUS)

 

當USB 供電式的裝置第一次接上電腦的USB 主系統時,它會開始進行裝置列舉(enumeration)、或是啟動與辨識的程序。在USB 端,這個列舉程序可讓各種裝置自行界定在多種耗電狀態。當某一裝置最初連接到USB 接頭時,它必須要將其電流限制在100mA,這樣無論主系統連接埠是高位電源(hi-power)或是低位電源(low-power)狀態,裝置都能進行自我辨識(裝置列舉)。假若裝置連線電流低於100mA,主系統會從該裝置讀取一項或多項組態資訊。每個USB 的裝置都會回應主系統一份該裝置所需的配置。

一般而言,USB 有三種可能組態:
1. 裝置僅有一個針對低位電源的組態
2. 裝置僅有一個針對高位電源的組態
3. 裝置有兩個以上高、低位電源混合的組態

在第1 種情形中,主系統的動作很簡單:發出確認適當電源組態的指令來啟動裝置。在第2 種情形時,如果連接埠為高位電源,主系統就只會發出一個確認指令;若非高位電源連接埠,則主系統將會發出錯誤訊息提醒使用者。在第3 種情形時,假如同時有高低位電源連接埠可用時,主系統就會選擇適合用於該連接埠電源等級的組態。一旦該連接埠組態經過調整並適當地配置後,接下來則視乎裝置是否在連接埠上平常運作。若運作無誤,該裝置即可視為符合USB 規範;反之,該裝置並未符合規範,而且可能會讓系統發生問題,或在某些情形下完全無法正常運作。市面上的USB 裝置若其組態配置已接近規範的底限,或者當初是用特選的產品原型來進行USB 規範測試的話,那麼待該USB 裝置的成品量產上市後,則很有可能因為實際使用狀況中的諸多變化而發生嚴重故障。因此,如果所推出的裝置成品是由USB 供電運作的話,設計人員就更應該仔細瞭解該裝置的電源效能。

對於依靠USB 供電的裝置,電源組態配置與限制比較難以操縱。那些僅靠連接線供應電源運作的裝置稱為「匯流排供電」,而由裝置本身另外配備電源(電池或另外插電)的裝置則稱為「自行供電」。產品可以同時具備這兩種供電方式,例如匯流排供電的集線器也可以另外選擇插上市電供電,還有內建USB的行動電話,這類的行動電話可以由電池供電,另外還可以利用USB 連接線從電腦替電池充電。

自行供電的USB 裝置本身也可能會有電源的問題。由於自行供電的裝置有自己的電源供應器,因此當主系統關機後,該裝置可能仍處於開機的狀態。這對USB 系統而言就會有潛在的問題。USB 的規格通常會在D+訊號線上配置一個1.5K 上拉電阻(pullup)供應3.3v 電壓,讓USB 可以進行USB 裝置偵測。不幸的是,如果自行供電的周邊裝置維持開機狀態,且D+訊號線的電位主動被拉高,該裝置為整個啟動中的主系統與界面充電時會變得相當緩慢。自行供電的USB 裝置(包括電池供電裝置)[+] Feedback必須由VBUS 直接控制上拉電阻,或由VBUS 感測器並透過軟體控制來關閉電源。如此一來,當主系統電源關閉時,周邊裝置也會完全關閉連接至主系統的電源。

這個問題最有名的受害者便是G4 Power Macintosh。蘋果電腦對於這個問題在其網站(請見參考文獻)上提出了兩點詳實說明。基本上,擁自有備電源的USB 裝置若連接至電源處於關閉狀態的電腦上時,就會造成電腦中SDRAM 呈現部分充電的狀況,其電壓可達300mV。此時若將電腦啟動,它就會干擾SDRAM的啟動程序,並且造成各種POST 錯誤的情形。要偵測這種情形最簡單的方式就是打開自行供電裝置的電源,然後測量全速與高速裝置上D+的電位,或低速裝置上D-的電位。第2 腳位為D-,第3 腳位為D+,第4 腳位為接地(GND)。您會發現第1 與第4 腳位都比訊號腳位來得長,這是為了在插入連接埠時可以比訊號腳位更先接觸連線界面。(圖3)


USB接頭與測試時腳位編號位置    

圖 3. USB接頭與測試時腳位編號位置

除了嚴格的裝置列舉功能與設計限制外,另一項電源議題是USB暫停狀態(Suspend)時嚴格的電流要求。USB規格中要求「所有裝置必須支援暫停狀態…[裝置]若發現訊號線上持續3.0ms以上的閒置狀態後,就會開始轉換至暫停狀態。在裝置所有連接埠在10ms之內皆無動作時…裝置必然會進入暫停狀態。」儘管這種設計是為了管理暫停狀態時主系統連接埠上的電力消耗,但這些要求卻會造成一些問題。

舉例來說,浮點輸入(floating input)在USB系統中是一大問題。不幸的是,許多ASIC的晶片在遇到浮點輸入時會消耗大量電流,這是由於構成數位晶片的電晶體實質上仍是類比元件,而這也是許多軟體工程師與數位設計人員容易忽略的部分。因此,當電晶體在 「1」和 「0」 之間變換時,以類比的角度來看,實際上需要經過了許多不同的電荷狀態。

圖 4所示為CMOS反向輸入(inverting input)的結構。下方的標示「1」位置的是n型電晶體,當其輸入端電位接近VCC時即呈現導通狀態;而上方標示 「0」位置 的則是p型電晶體,其輸入電位接近GND時即呈現導通狀態。因此,當左方輸入(input)為高電位時,電晶體 1 導通而電晶體 0 不導通;若輸入低電位時則相反。由於一次只有一個電晶體導通,因此電流消耗極小。但是如果介於VCC與GND之間進入的是浮點輸入時,電晶體 1 和電晶體 0 都會呈現部分導通的狀態,使得VCC與GND之間形成通路並且會消耗好幾個毫伏特(millivolt)的電力。

CMOS的輸入極易影響電力消耗

圖4. CMOS的輸入極易影響電力消耗

 

這項問題常見於USB設計的最後步驟,因為在進行規範測試前,暫停狀態的電流量測通常不被重視。而問題的禍首一般是出在被設定為輸入或輸出的腳位上。硬體設計人員認為韌體設計人員應該會把不用的I/O腳位驅動成既定電位,但韌體設計人員往往到了規範測試之前仍不會留意到有額外的電流損耗。

資料匯流排也需注意浮點輸入的問題。由於資料匯流排包含了多個裝置的雙向界面,所有匯流排上的裝置都無法任意決定及驅動匯流排中的電位狀態,因為會有某些裝置要設定成高電位,而另一些裝置則同時要設定成低電位的情形。解決方法之一就是由系統設計人員決定當系統進入暫停狀態時,資料匯流排一致設定成高電位或低電位。若是匯流排共用時,所有裝置對這項設定就必須一致。

雖然有些處理器可以任意將資料匯流排驅動成既定電位,但也有許多處理器沒有這項功能。而許多微處理器所因應的解決方法就是在雙向資料匯流排上裝置一個 bus-keeper(圖5),這個小電路(bus-keeper)可以讓匯流排的電位維持在最後的狀態上,而這也表示匯流排上的電位不是VCC就是0v,而非浮點的狀態。

Bus Keeper電路可減少資料混淆情狀  

圖5. Bus Keeper電路可減少資料混淆情狀

要能成功通過USB規範測試,並且確保所開發的系統到了消費者手上都能正常運作,關鍵在於產品設計初期就要注意整體電源表現狀況。雖然USB通訊協定中允許周邊裝置靠匯流排供電是一項極大的便利性。然而,為了配合正確使用這些電力而設定的嚴格規則,對於不知情的設計工程師而言,可能會對這規則產生混淆、不解、甚至陷入容易犯錯的窘境。本篇所提到關於裝置列舉時的電源限制、「自行」或「匯流排」供電裝置的電源配置設定、裝置與電路漏電(leakage)、以及資料匯流排訊號混淆等,都是關乎系統能否正常運作的關鍵。唯有正確的瞭解和仔細的設計,USB電源規範才能有助於創造極佳的產品效能。

參考資訊:By (Steve Kolokowsky, Cypress Semiconductor Corp. 與 Trevor Davis)

參考文獻:
Power Macintosh G3 (Blue and White) and G4: Memory Errors (consumer version):http://docs.info.apple.com/article.html?artnum=75016
SDRAM Problems with Self-Powered USB Devices (Engineer’s version):http://developer.apple.com/qa/hw/hw82.html

USB2.0主動式延長線測試  

arrow
arrow

    BENEVO 發表在 痞客邦 留言(0) 人氣()