電子產(chǎn)品在挑戰尺寸、容量、處理速度與便利性的同時(shí),也考驗著(zhù)研發(fā)人員的設計能力。過(guò)去USB接口的單向傳輸方式已很難適應現在便攜式電子產(chǎn)品所需要的強大功能,市場(chǎng)需要的是讓便攜設備直接互連的雙向連接方式。USB OTG的出現解決了這一問(wèn)題。 便攜設備如何相互溝通 隨著(zhù)便攜設備的功能和數據容量的提升,使用者也開(kāi)始希望其能與其他便攜式與非便攜設備共享信息,但是掌上型設備的數據輸入及顯示較為不易。因為體積小,便攜設備通常沒(méi)有實(shí)用的接口,只有一個(gè)小屏幕和有限的按鍵。 便攜設備存在的另一個(gè)問(wèn)題是“需要傳輸的數據量”。以一臺數碼相機為例,其存儲容量可高達數百兆。此外,數據傳輸的方式也有很多,手機用戶(hù)可能會(huì )想將手機連接到PC,下載原先儲存的信息;有時(shí)需要和其他手機聯(lián)機,互傳電話(huà)號碼;或者需要和數碼相機聯(lián)機,上傳所拍攝的照片;當然有時(shí)還必須連接到PDA并使用其無(wú)線(xiàn)網(wǎng)絡(luò )功能。 無(wú)奈手機等便攜設備體積太小,沒(méi)有空間為各種連機類(lèi)型提供專(zhuān)屬的接頭,而且便攜設備的市場(chǎng)對成本相當敏感,想要提供這么多的接頭,會(huì )導致成本過(guò)高。由此看來(lái),我們需要一種便宜、普及、使用容易、傳輸速率高的聯(lián)機方式,使各種不同的電子設備能夠彼此通信并傳輸數據。 圖1 標準的USB連接架構 標準的USB連機需要一個(gè)主端(host),這個(gè)主端通常是PC。如果想把儲存在某個(gè)外圍設備的數據傳輸到另一個(gè)外圍設備,唯一的方法是通過(guò)主端來(lái)中介傳輸,如圖1所示。例如,想要將數碼相機的照片打印出來(lái),必須先將照片上傳到主端,再從主端傳送到打印機。為什么不在便攜設備里加入主端功能呢?USB是一種主從架構的通信協(xié)議,原先是給一個(gè)主端搭配多個(gè)外圍設備的應用方式設計的,因此USB連機的操控管理,多半是仰賴(lài)主端。如果要將整套USB規格的主端控管邏輯全部建構在一個(gè)便攜設備中,對于著(zhù)重功能簡(jiǎn)便的便攜設備而言,會(huì )造成很大的負擔。而且USB傳輸線(xiàn)具有方向性,插入主端的接頭和插入外圍設備的接頭并不相同。 以便攜設備而言,有時(shí)候必須擔任主端的角色,例如,數碼相機傳送照片給打印機;而有時(shí)候則必須擔任外圍設備的角色,例如,數碼相機將照片上傳至PC,如圖2所示。雖然USB的專(zhuān)用接頭體積不大,但如果要建構于小巧的便攜設備之中,可能還是過(guò)于龐大。USB架構認定主端具備充足的電源,可為聯(lián)機的外圍設備提供電力,有些設備甚至全部的電力都是來(lái)自USB總線(xiàn)的。這樣的供電架構,對于一些電力有限的小型便攜設備而言,會(huì )造成難以承受的負擔。USB OTG補充規格中最重要的改變就是擴充了原先的USB協(xié)議,提供更嚴謹的電源管理功能,并允許電子設備擔任主端角色或外圍角色。 圖2 USB OTG的連接架構 雙重角色設備 “雙重角色設備(Dual-Role Device)”既可擔任主端角色、亦可擔任外圍的電子設備角色。除了要符合USB 2.0標準的所有要求之外,“雙重角色設備”還必須提供有限的主端功能,并支持“事務(wù)請求協(xié)議(SRP)”以及“主端協(xié)商協(xié)議(HNP)”,而且應具備單一Mini-AB插槽。此外,這種設備必須能傳送信息給使用者。當“雙重角色設備”處于主端模式運作時(shí),VBUS只需要供應8mA的電流,這個(gè)規格有別于標準USB主端的100mA或500mA要求。 主端協(xié)商協(xié)議 當“雙重角色設備”連接了一個(gè)Mini-A或Mini-B插頭時(shí),它相應的便以OTG主機或外設的默認方式工作。A設備為默認主端,所以由它提供VBUS電源,且在檢測到有設備接入時(shí)復位總線(xiàn)、列舉并配置B設備。 A設備在完成對B設備的使用后,可以通過(guò)查詢(xún)B設備的OTG性能描述符來(lái)判斷是否支持HNP(即是否為“雙重角色設備”)。如支持HNP,B設備將返回有效的OTG性能描述符,A設備則產(chǎn)生一個(gè)Set_feature命令(即HNP_Enable)來(lái)通知B設備可以在總線(xiàn)掛起的時(shí)候以主端方式工作,隨后A設備掛起總線(xiàn)。 B設備通過(guò)上拉電阻(全速時(shí))或者下拉電阻(高速時(shí))拉低D+(數據線(xiàn)上拉電阻)以示連接斷開(kāi)。隨后,作為對B設備斷開(kāi)的響應,A設備使能它的數據線(xiàn)并開(kāi)始以從端方式工作。完成這些轉換后,B設備和A設備便各自以主機角色和外設角色使用總線(xiàn)。如果該B設備屬于“雙重角色設備”且A設備不再使用它了,A設備便重發(fā)Set_feature命令并掛起總線(xiàn)。若B設備申請角色轉換時(shí)出錯,A設備則拉低VBUS以結束該事務(wù)。當B設備正常結束傳輸事務(wù)時(shí)便掛起VBUS使能其上拉電阻,重新以從端方式運行。A設備檢測到總線(xiàn)掛起后,發(fā)出一個(gè)連接斷開(kāi)信號并重新以主機方式工作。 事務(wù)請求協(xié)議 在以往的USB系統運行過(guò)程中,主機提供5V的電源和不低于100mA的總線(xiàn)電流。當OTG主機(指以主機方式工作的兩用OTG設備,又稱(chēng)A設備)連接到有線(xiàn)電源時(shí)這種方法是適用的,但像手機這樣的自供電移動(dòng)設備則不能承受如此大的電能浪費。為了節約電源延長(cháng)電池的使用壽命,當總線(xiàn)上沒(méi)有活動(dòng)時(shí),OTG主機將掛起總線(xiàn)電源VBUS。SRP可使OTG從端(指外設式設備或者以外設方式工作的“雙重角色設備”,又稱(chēng)B設備)請求設備重新使能VBUS,而后A設備使用HNP交換兩個(gè)設備的工作方式,這兩步完成后由新的OTG主機開(kāi)始事務(wù)傳輸。B設備可在前一事務(wù)結束2ms后的任意時(shí)間開(kāi)始SRP。 B設備將先后執行數據線(xiàn)脈沖調制和VBUS脈沖調制,分別通過(guò)使能數據線(xiàn)上拉電阻(全速和高速設備為D+,低速設備為D-)5~10ms和驅動(dòng)VBUS實(shí)現。VBUS必須要有足夠長(cháng)的時(shí)間對其電容充電,這個(gè)時(shí)間應能保證不大于13μF的電容充電至2.1V(OTG設備的電容是6.5μF或更小),從而不會(huì )對標準主機的96μF或更大的電容充電至2.0V。該限制保證了從B設備引來(lái)的VBUS電流不會(huì )破壞標準主機的端口。 A設備檢測到數據線(xiàn)脈沖調制或者VBUS脈沖調制后,首先復位總線(xiàn),然后發(fā)送Set_feature命令而先不進(jìn)行設備的枚舉,此時(shí)B設備尚處在默認的從端狀態(tài)。如果Set_feature命令成功執行,說(shuō)明B設備為兩用OTG設備,A設備(使用HNP協(xié)議)掛起VBUS準備讓B設備交換為主機方式接管總線(xiàn)。如果Set_feature命令執行失敗,說(shuō)明B設備為外設式OTG設備,于是A設備使能VBUS準備開(kāi)始一個(gè)傳輸事務(wù)(此時(shí),A設備只是被喚醒,并未改變工作方式)。當A設備認為總線(xiàn)上沒(méi)有傳輸需要時(shí),掛起VBUS以結束該事務(wù)。這種A設備自動(dòng)檢測B設備是否支持HNP的特征稱(chēng)為“No Silent Failure”。 USB得以成功的其中一項秘訣在于完善的認證測試程序。這道程序能檢測設備是否符合規范且能否與其他USB設備共同運作,唯有通過(guò)認證測試的設備才能貼上USB的認可標簽。目前,認證測試有兩種途徑,可通過(guò)USB Compliance Workshop(Plugfests)或個(gè)別的測試實(shí)驗室進(jìn)行測試。以上兩種方式都能將通過(guò)檢測的設備列入符合規范USB設備的整合廠(chǎng)商名單中。 USB OTG 評估板測試 1 USB EHCI 主端控制器測試 每個(gè)設備應該能響應USB規范所定義的控制請求。主端應該能利用主端控制器經(jīng)USB纜線(xiàn)送出控制需求到USB設備。 圖3 EHCI 主端控制器測試架構 測試方法如下:USB測試Class驅動(dòng)呼叫由USB IP核提供更高層的API,經(jīng)USB子系統送出需求到USB設備。接著(zhù), 主端經(jīng)控制端點(diǎn)(Endpoint)接受控制IN/OUT,然后解析/獲得回應數據/狀況用以核對其正確性。此外, 每個(gè)USB設備應該包含幾個(gè)必需的描述符并依靠所接受的Get_Descriptor需求的內容來(lái)回應這些描述符。圖3中PC安裝Windows 2000或是Windows XP,利用ARM ADS1.2的AxD調試器,FA5 CPU的ICE一端連接PC的打印機口或是USB口,另一端連接開(kāi)發(fā)板,開(kāi)發(fā)板的另一端則是各種USB設備,如USB集線(xiàn)器、攝像頭、鼠標、鍵盤(pán)和U盤(pán)。 圖4 互測SNP和HNP的連接架構 2 OTG 測試 利用兩臺USB OTG開(kāi)發(fā)板互測SNP和HNP的連接架構如圖4所示。 圖5 大量存儲的應用測試 應用測試 如圖5所示,設計一個(gè)SD卡主端應用來(lái)做演示, SD卡的大量存儲用以測試FOTG200功能。 FOTG200是智原的USB 2.0 OTG控制器, 能作為一個(gè)雙重角色。作為主設備,它包含一個(gè)USB主端制器,能支援所有速度的事務(wù)。無(wú)須軟件干涉的情形下,主端制器能處理一個(gè)基于事務(wù)的數據結構以減去主控CPU的負擔,自動(dòng)地在USB總線(xiàn)上轉送和接收數據。作為從設備,每個(gè)端點(diǎn),除了端點(diǎn)0,都承擔可編程的HS/FS傳輸類(lèi)型提供彈性以適應各式各樣的應用。 在這個(gè)應用上, USB子系統由USB IP核、EHCI HCD控制器、USB大量存儲Class驅動(dòng)、文件系統和SD卡設備驅動(dòng)所組成。因此,主端設備能夠讀/寫(xiě)文檔到SD卡(外部設備)。順便也能驗證大量存儲Class驅動(dòng)和Bulk IN/OUT傳輸的功能。 |