專利名稱:Usb連接的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持通用串行總線(USB)連接的方法、處理裝置、 設(shè)備、系統(tǒng)、軟件程序代碼和軟件程序產(chǎn)品。
背景技術(shù):
康柏、惠普、英特爾、朗訊、微軟、NEC和飛利浦于2000年4 月27日的文獻(xiàn)"Universal Serial Bus Specification"修訂版2.0定義了 一種在充當(dāng)主機(jī)的個人計算機(jī)(PC)與充當(dāng)PC外設(shè)的另一設(shè)備之 間實(shí)現(xiàn)易用連接的工業(yè)標(biāo)準(zhǔn)USB。主機(jī)和外設(shè)可以通過USB線纜來 互連。主機(jī)負(fù)責(zé)發(fā)起在主機(jī)與外設(shè)之間的所有數(shù)據(jù)事務(wù),而外設(shè)對 來自主機(jī)的總線請求做出響應(yīng)。
根據(jù)USB規(guī)范,主機(jī)在枚舉過程期間獲得與外設(shè)所支持的功能 有關(guān)的信息。在將外設(shè)連接到主機(jī)時,外設(shè)將在這一枚舉過程中更 具體地通報它在它的當(dāng)前USB模式中提供的所有USB類別和接口 。 術(shù)語USB模式在本文中用來定義設(shè)備的如下狀態(tài),該設(shè)備在該狀態(tài) 下支持預(yù)定USB類別和/或接口集。類別標(biāo)識由外設(shè)所提供的功能、 例如鍵盤功能、打印機(jī)功能或者海量存儲功能等。復(fù)合或者混合外 設(shè)可以提供多個不同類別。因此在外設(shè)的不同USB模式中主機(jī)可以 訪問外設(shè)的不同功能。接口是向主機(jī)呈現(xiàn)外設(shè)的單個特征或者功能 的有關(guān)端點(diǎn)集。用來與這一有關(guān)端點(diǎn)集通信的協(xié)議和各端點(diǎn)在接口 內(nèi)的用途可以被指定為設(shè)備類別或者銷售商具體定義的部分。例如 具有三個不同USB模式的移動電話可以在第一USB模式"模式l"下 支持無線移動通信(WMC)對象交換(OBEX)接口、調(diào)制解調(diào)器 接口和一些專用接口 。它還可以在第二 USB模式"模式2"下僅支持 海量存儲類別(MSC)接口。它還可以在第三USB模式"模式3"下僅支持靜止圖片捕獲設(shè)備(SICD)接口例如作為用于圖片傳送協(xié)議 (PTP)和列印(PictBridge)或者媒體傳送協(xié)議(M丁P )的基礎(chǔ)。
USB標(biāo)準(zhǔn)的一個弊端在于外設(shè)僅通報在外設(shè)的當(dāng)前USB模式中 支持的類別和接口 。主機(jī)可以通過再次開始連接建立來僅檢測外設(shè) 的其它功能。在這一新建立的范圍中,外設(shè)然后可以有可能在新的 枚舉過程中通報另 一類別集。在一種用于檢測外設(shè)的附加類別的替 代方式中,可以使用用戶查詢。在這樣的用戶查詢中,可以向用戶 詢問應(yīng)當(dāng)使用外設(shè)的哪個功能,然后在USB總線上向主機(jī)通報這一 功能。
在USB規(guī)范中,設(shè)備還可以僅為主機(jī)或者僅為外設(shè)。設(shè)備的固 定角色也可以按照它的連接器來標(biāo)識,因?yàn)閁SB線纜在它們的兩端 具有不同插頭。主機(jī)更具體地具有標(biāo)準(zhǔn)A插口 ,而外設(shè)更具體地具 有標(biāo)準(zhǔn)B插口 。這一方式很好地適合于USB設(shè)計原本針對的計算機(jī) 環(huán)境。這里,PC總是主機(jī),而連接到PC的設(shè)備總是外設(shè)。具有USB 接口的外設(shè)也可以從彼此之間的交互中受益。
2003年6月23日的"On畫The畫Go Supplement to the USB 2.0 Specification"修訂本1.0a實(shí)現(xiàn)了對USB連接更靈活的使用。向USB 標(biāo)準(zhǔn)添加活動(OTG) USB允許針對如下設(shè)備的USB連接性,這些 設(shè)備沒有如PC和存儲卡讀取器那樣明晰的主機(jī)或者外設(shè)角色。雙重 角色的設(shè)備通常執(zhí)行多個功能,如移動電話、個人數(shù)字助理(PDA) 或者數(shù)碼相機(jī)。例如,移動電話在連接到PC時可能必須是提供類別 "海量存儲"的外設(shè),而它在連接到打印機(jī)或者外部鍵盤等時可能必 須是主機(jī)。
基于USB-OTG,明顯的主機(jī)設(shè)備可以具有標(biāo)準(zhǔn)A插口或者迷你 A插口,而明顯的外設(shè)可以具有標(biāo)準(zhǔn)B插口或者迷你B插口。除外, OTG設(shè)備還具有迷你AB插口 ,后者實(shí)現(xiàn)用于主機(jī)的迷你A插頭或 者用于外設(shè)的迷你B插頭的連接。OTG設(shè)備必須還支持有限的主機(jī) 能力和指定的主機(jī)協(xié)商協(xié)議(HNP)。在USB-OTG中,涉及到的設(shè) 備的相應(yīng)角色因此也按照USB線纜來分配。然而,如果連接的設(shè)備是OTG設(shè)備,則可以在基于HNP已經(jīng)建立連接之后執(zhí)行角色切換。 另外,如果用戶連接兩個USB-OTG設(shè)備,則可以執(zhí)行的僅有功 能或者功能集是與以下設(shè)備所通報的類別或者類別集關(guān)聯(lián)的功能或 者功能集,其中按照用戶連接U S B線纜的方式向該設(shè)備分配外設(shè)角 色。如果用戶需要使用不同的功能或者功能集,則希望外設(shè)會通報 第二類別或者類別集的用戶可以例如借助通過用戶接口的用戶輸入 來觸發(fā)"斷開-重新連接"。可替換地,希望先前主機(jī)然后會通報外設(shè) 角色中所需類別或者類別集的用戶可以基于HNP來引起"角色切 換"。
發(fā)明內(nèi)容
本發(fā)明的目的在于改進(jìn)在兩個設(shè)備之間USB連接的可用性。具 體而言,本發(fā)明的目的尤其在于改進(jìn)在USB連接期間的用戶體驗(yàn)。
針對USB連接的主機(jī)側(cè)提出第一方法。該方法包括在主機(jī)生成 信息命令,該主機(jī)經(jīng)由主機(jī)的USB接口連接到外設(shè),該信息命令包 括與主機(jī)的能力有關(guān)的信息。該方法還包括提供用于經(jīng)由USB接口 向外設(shè)傳輸?shù)男畔⒚睢?br>
另外提出適于生成信息命令的第一處理裝置,該信息命令包括 與主機(jī)的能力有關(guān)的信息,該主機(jī)經(jīng)由主機(jī)的USB接口連接到外設(shè)。 第一處理裝置還適于提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)脑撁睢?br>
必須注意該處理裝置可以用石更件和/或軟件實(shí)施。它可以例如包
的軟件程序代碼。
另外提出第 一設(shè)備,該設(shè)備包括USB接口和提出的第 一處理裝 置,該USB接口使該設(shè)備能夠充當(dāng)與充當(dāng)外設(shè)的另一設(shè)備有USB 連才妻的主才幾。
另外提出第 一 軟件程序代碼,該代碼適于在由主機(jī)的處理單元 執(zhí)行時實(shí)現(xiàn)所提出的第 一 方法的步驟。
另外提出第 一軟件程序產(chǎn)品,其中提出的第 一軟件程序代碼存
9儲于可讀存儲器中。這樣的軟件程序產(chǎn)品可以例如是分立存儲設(shè)備 或者是在提供主機(jī)功能的設(shè)備中將要實(shí)施的存儲器。
此外針對USB連接的外設(shè)側(cè)提出第二方法。該第二方法包括在 外設(shè)從主機(jī)接收包括與主機(jī)的能力有關(guān)的信息的信息命令,該外設(shè) 經(jīng)由外設(shè)的USB接口連接到主機(jī)。
另外提出第二處理裝置,該處理裝置適于在外設(shè)從主機(jī)接收包 括與主機(jī)的能力有關(guān)的信息的信息命令,該外設(shè)經(jīng)由外設(shè)的USB接 口連接到主機(jī)。接收的信息可以由處理裝置用作判決基礎(chǔ)。
另外提出第二設(shè)備,該設(shè)備包括USB接口和提出的第二處理裝 置,該USB接口使該設(shè)備能夠充當(dāng)與充當(dāng)主機(jī)的另一設(shè)備有USB 連接的外設(shè)。
另外提出第二軟件程序代碼,該代碼適于在由外設(shè)的處理單元 執(zhí)行時實(shí)現(xiàn)所提出的第二方法的步驟。
另外提出第二軟件程序產(chǎn)品,其中提出的第二軟件程序產(chǎn)品存 儲于可讀存儲器中。這樣的軟件程序產(chǎn)品可以例如是分立存儲設(shè)備 或者是在提供外設(shè)功能的設(shè)備中將要實(shí)施的存儲器。
最后提出 一種包括提出的第 一設(shè)備和充當(dāng)外設(shè)的又一設(shè)備的系統(tǒng)。
本發(fā)明從以下考慮出發(fā)如果外設(shè)知道主機(jī)設(shè)備所支持的USB 功能則將是有益的。因此提出了通過USB連接來連接到外設(shè)的主機(jī) 向外設(shè)通知它的能力。這些能力可以涉及主才幾可以請求的服務(wù)以及 主機(jī)在充當(dāng)外設(shè)時可以提供的服務(wù)。
本發(fā)明的一個優(yōu)點(diǎn)在于外設(shè)自動地獲得與主機(jī)的USB能力有關(guān) 的知識。這使外設(shè)例如能夠選擇最適合主機(jī)要求的USB模式。另外, 它使外設(shè)例如能夠判決它是否可以關(guān)注于切換主機(jī)和外設(shè)的角色以 便利用當(dāng)前主機(jī)所提供的USB服務(wù)。
主機(jī)可以例如在檢測到通向外設(shè)的連接時、但是同樣可以獨(dú)立 于對此類連接的檢測來生成所示信息命令。主機(jī)可以在更新時或者 在任何其它時間沖企測連接。在信息命令中包括的與主機(jī)的能力有關(guān)的信息可以包括在主機(jī)
的至少一個USB模式中支持的至少一個類別的指示和/或針對主機(jī) 的至少一個USB模式而提供的至少一個接口的指示。有利地,在信 息命令中指示主機(jī)的所有USB模式中的所有類別和所有接口以便向 外設(shè)提供綜合信息。
常規(guī)上,主機(jī)也不能選擇外設(shè)將要進(jìn)入的USB模式。由于主機(jī) 并不知道外設(shè)在不同于當(dāng)前USB模式的其它USB模式中操作時可以 支持的類別和接口 ,所以只能在外設(shè)側(cè)而不能在主機(jī)側(cè)完成USB模 式選擇。也就是說,主機(jī)不能強(qiáng)制外設(shè)進(jìn)入特定USB模式。
根據(jù)本發(fā)明的一個實(shí)施例,對照而言,主機(jī)還可以生成請求命 令。該請求命令可以用于取回在外設(shè)的所有USB模式中提供的所有 類別和可選所有接口的指示。然后同樣可以提供用于經(jīng)由USB接口 向外設(shè)傳輸?shù)脑撜埱竺睢?br>
在主機(jī)側(cè)上,這允許強(qiáng)制外設(shè)進(jìn)入可以最好地適合當(dāng)前USB模 式的能力或者主機(jī)的當(dāng)前要求的特定USB模式。主機(jī)為此可以基于 在外設(shè)的所有USB模式中提供的所有類別的取回指示來選擇外設(shè)的 所需USB模式。主機(jī)然后可以生成用于強(qiáng)制外設(shè)進(jìn)入所選USB模式 的設(shè)置命令并且提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)脑O(shè)置命令。外 設(shè)可以通過去往主機(jī)的對應(yīng)消息來確認(rèn)它是否收到設(shè)置命令和/或它 是否進(jìn)入所示USB模式。
有利地在主機(jī)生成用于獲得與外設(shè)在外設(shè)的當(dāng)前USB模式中提 供的至少 一個類別有關(guān)的信息的獲取命令之前在主機(jī)生成信息命 令、請求命令和設(shè)置命令。這樣的獲取命令可以例如是標(biāo)準(zhǔn)"獲取設(shè) 備描述符"命令。如果外設(shè)在它接收"獲取設(shè)備描述符"命令之前沒有 獲得信息命令、請求命令或者設(shè)置命令,則它將知道在主機(jī)側(cè)沒有 支持或者至少針對當(dāng)前USB會話沒有使用這些命令。外設(shè)然后可以 在收到獲取命令時在常規(guī)方式下動作。
然而必須注意關(guān)于何時使用信息命令、請求命令或者設(shè)置命令 完全沒有限制。也可以在任何其它時間使用它們。另外,當(dāng)在任何其它USB命令之前發(fā)送它們時,外設(shè)可以直接地表明新配置,這可
以防止對斷開和連接操作的需要。
信息命令、請求命令或者設(shè)置命令可以并非必然地是銷售商專 用命令。
常規(guī)上,外設(shè)并不知道主機(jī)支持哪些類別和接口。對照而言, 如果外設(shè)知道主機(jī)所支持的類別,則它無需用戶交互即可自動地進(jìn)
入所支持的USB模式并且枚舉在支持的USB模式中的類別和接口。 可替換地或者除此之外,外設(shè)還可以枚舉最好地配合主機(jī)所支持的 類別的USB模式。例如,如果在兩個設(shè)備之間的共同功能是"海量 存儲",則設(shè)備可以容易地檢測可行組合。如果設(shè)備之一此外僅支持 "打印"類別而另 一設(shè)備此外僅支持"輸入設(shè)備"類別,則不能另外找到 其它適當(dāng)組合。因而,可以通過簡單邏輯在外設(shè)檢測正確組合,而 用戶無需受選擇功能之?dāng)_。
根據(jù)本發(fā)明的一個實(shí)施例,外設(shè)具有用于選擇將要進(jìn)入的USB 模式的數(shù)個選項(xiàng)??梢曰谂c主機(jī)的能力有關(guān)的接收信息來選擇
的恰好一個USB模式。還可以基于來自主機(jī)用于強(qiáng)制外設(shè)進(jìn)入特定 USB模式的設(shè)置命令來選擇USB模式。用于自動選擇的這些選項(xiàng)改 進(jìn)了用戶體驗(yàn),因?yàn)樗鼈兿拗屏藢τ脩糨斎氲男枰H绻庠O(shè)不能 自動地選擇特定USB模式,則它仍然可以采取某一動作以讓用戶判 決選擇USB模式。在這一情況下,可以基于用戶輸入來選擇USB 模塊。
本發(fā)明可以用于任何支持USB的設(shè)備。主機(jī)可以是只能承擔(dān)主 機(jī)角色的設(shè)備,而外設(shè)可以是只能承擔(dān)外設(shè)角色的設(shè)備。可替換地, 主機(jī)和外設(shè)中的至少一個可以是能夠分配有主機(jī)角色或者外設(shè)角色 的OTG設(shè)備。將理解在這一情況下,此外可以在OTG外設(shè)端實(shí)施 針對主機(jī)端而描述的所有功能,并且此外可以在OTG主機(jī)端實(shí)施針 對外設(shè)端而描述的所有功能。
常規(guī)上,在主機(jī)與外設(shè)之間的角色切換因以下事實(shí)而變得困難對于當(dāng)前外設(shè)在它的主機(jī)角色下可以請求的服務(wù)和對于它在外設(shè)角
色下可以請求的服務(wù),USB標(biāo)準(zhǔn)都沒有使它能夠獲得與當(dāng)前主機(jī)的 能力有關(guān)的指示。
根據(jù)本發(fā)明的一個實(shí)施例,對照而言,當(dāng)前外設(shè)還可以基于與 當(dāng)前主機(jī)的能力有關(guān)的接收信息來確定是否成為主機(jī)。
在本發(fā)明的 一個實(shí)施例中,以協(xié)議形式限定所提出的服務(wù)發(fā)現(xiàn)。
將理解可以在提出的系統(tǒng)、處理裝置、設(shè)備、軟件程序代碼和 軟件程序產(chǎn)品中實(shí)施所有所述功能。
在主機(jī)側(cè)上和在外設(shè)側(cè)上的支持類別包括適合于通過USB連接 來支持服務(wù)的任何類別,比如鍵盤類別或者另一輸入設(shè)備類別、打 印機(jī)類別(例如使數(shù)碼相機(jī)能夠直接地經(jīng)由打印機(jī)打印圖像的列印 類別)、SICD類別或者另一成像類別、海量存儲類別、音頻或者視 頻輸出類別等。
還將理解在主機(jī)與外設(shè)之間的USB連接可以是經(jīng)由USB線纜的 連接,但是它也可以是提供一方面接入外設(shè)USB而另一方面接入主 機(jī)USB的某種無線連接。
對于本發(fā)明的第二方面,提出 一 種包括在主機(jī)生成請求命令的 方法,該主機(jī)經(jīng)由主機(jī)的USB接口連接到外設(shè),該請求命令取回與 在外設(shè)的所有USB模式中提供的所有類別有關(guān)的信息。該方法還包 括提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)恼埱竺睢?br>
對于本發(fā)明的第二方面,另外提出一種適于在主機(jī)生成請求命 令的處理裝置,該主機(jī)經(jīng)由主機(jī)的USB接口連接到外設(shè),該請求命 令取回與在外設(shè)的所有USB模式中提供的所有類別有關(guān)的信息。這 一處理裝置還適于提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)恼埱竺睢?br>
對于本發(fā)明的第二方面,還提出一種包括USB接口和針對本發(fā) 明的第二方面而提出的處理裝置的設(shè)備,該USB接口使該設(shè)備能夠 充當(dāng)與充當(dāng)外設(shè)的另 一設(shè)備有USB連接的主機(jī)。
對于本發(fā)明的第二方面,還提出一種軟件程序代碼,該代碼適 于在由主機(jī)的處理單元執(zhí)行時實(shí)現(xiàn)針對本發(fā)明第二方面而提出的方法的步驟。
對于本發(fā)明的第二方面,還提出一種軟件程序產(chǎn)品,其中針對 本發(fā)明的第二方面而提出的軟件程序代碼存儲于可讀存儲器中。這 樣的軟件程序產(chǎn)品可以例如是分立存儲設(shè)備或者是在提供主機(jī)功能 的設(shè)備中將要實(shí)施的存儲器。
對于本發(fā)明的第二方面,最終提出 一種包括針對本發(fā)明的第二 方面而提出的設(shè)備和充當(dāng)外設(shè)的又一設(shè)備的系統(tǒng)。
因此可以獨(dú)立于信息命令的生成來生成請求命令。
在本發(fā)明第二方面的一個實(shí)施例中,主機(jī)可以基于與在外設(shè)的
所有USB模式中提供的所有類別有關(guān)的取回信息來選擇外設(shè)的所需 USB模式。主機(jī)然后可以生成用于強(qiáng)制外設(shè)進(jìn)入所選USB模式的設(shè) 置命令并且提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)脑O(shè)置命令。
將理解本發(fā)明第二方面的方法、處理裝置、設(shè)備、軟件程序代 碼、軟件程序產(chǎn)品和系統(tǒng)可以根據(jù)針對本發(fā)明的第 一 方面而呈現(xiàn)的 任何實(shí)施例來實(shí)施或者與這些實(shí)施例組合。
本發(fā)明的其他目的和特征將從結(jié)合附圖來考慮的以下具體描述 中變得清楚。
圖1是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)的示意圖;以及 圖2是圖1的系統(tǒng)中的示例性消息流程圖。
具體實(shí)施例方式
圖1是根據(jù)本發(fā)明示例性實(shí)施例對兩個設(shè)備之間的USB連接可 用性實(shí)現(xiàn)改進(jìn)的系統(tǒng)的示意圖。
該系統(tǒng)包括可以例如是移動終端的第 一設(shè)備10和可以例如是數(shù) 碼相機(jī)的第二設(shè)備20。將理解設(shè)備10、 20也可以是諸如PDA或者 PC等各種其它類型的設(shè)備。
移動終端10包括CPU 11。CPU 11連接到移動終端10的用戶接口 12,該用戶接口 12包括顯示器和小鍵盤等。CPU 11還經(jīng)由USB 13 連接到移動終端10的USB接口 14、例如迷你AB插口 。 CPU 11還 連接到移動終端10的存儲器15。
CPU 11適于執(zhí)行在移動終端10中實(shí)施的各種軟件程序代碼。 這些軟件程序代碼可以例如存儲于CPU 11可以訪問的存儲器15中。 存儲器15可以例如包括用于由CPU 11執(zhí)行的USB-OTG軟件程序 代碼16。USB-OTG軟件程序代碼16負(fù)責(zé)管理移動終端IO到另一設(shè) 備的任何USB連接。USB-OTG軟件程序代碼16為此包括連接檢測 器部分17、銷售商專用命令管理器部分18、標(biāo)準(zhǔn)控制和數(shù)據(jù)流管理 器部分19以及其它常規(guī)USB-OTG軟件程序代碼部分(未示出)。 將理解移動終端10包括未示出的各種其它部件。 數(shù)碼相機(jī)20包括用戶接口 22,該用戶接口包括顯示器和關(guān)聯(lián)的 按鈕等。另外,數(shù)碼相機(jī)20也包括USB接口 24,例如迷你AB插 口。 USB接口24經(jīng)由USB 23連接到芯片組21或者芯片。芯片組 21實(shí)現(xiàn)與USB-OTG軟件程序代碼16的部分相同的功能。芯片組21 為此包括具有連接檢測器部分2 7 、銷售商專用命令管理器部分2 8 、 標(biāo)準(zhǔn)控制和數(shù)據(jù)流管理器部分29以及其它常規(guī)USB-OTG處理部件 (未示出)的USB-OTG處理電路26。將理解可替換地,數(shù)碼相機(jī) 20同樣可以包括與移動終端10的CPU和存儲器對應(yīng)的CPU和存儲 器。選擇不同實(shí)施僅僅是為了說明可以用不同方式實(shí)施本發(fā)明。 芯片組21也直接地或者間接地連接到用戶接口 22。 將理解數(shù)碼相機(jī)20包括未示出的各種其它組件。 現(xiàn)在將參照圖2的消息流程圖來描述圖1的系統(tǒng)中根據(jù)本發(fā)明
一個實(shí)施例的^:作。
之間的消息流。必須注意該圖僅呈現(xiàn)了 USB事務(wù)級而不是經(jīng)由USB 傳輸?shù)年P(guān)聯(lián)數(shù)據(jù)。常規(guī)USB流是令牌分組、可選數(shù)據(jù)分組和握手分組。
首先在移動終端10與數(shù)碼相機(jī)20之間建立USB連接(步驟101)??梢岳缃柚€纜建立連接,其中通過將線纜的迷你A插頭
連接到迷你AB插口 14將移動終端10限定為主機(jī),以及其中通過 將線纜的迷你插頭連接到迷你AB插口 24將數(shù)碼相機(jī)20限定為外設(shè)。
數(shù)碼相機(jī)20的連接檢測器部分27檢測USB連接和外設(shè)的分配 角色并且設(shè)置與USB關(guān)聯(lián)的上拉電阻器以使主機(jī)能夠檢測外設(shè)(步 驟102)。
移動終端10的連接;險測器部分17^r測USB連接和主機(jī)的分配 角色并且由于設(shè)置的上拉電阻器而將數(shù)碼相機(jī)20檢測為外設(shè)(步驟 103)。
銷售商專用命令管理器18然后生成第一銷售商_專用命令,該 命令包括對在移動終端10的所有USB模式中支持的所有類別和所 有接口的指示。有利地,從一開始就發(fā)送這一信息命令,但是必須
注意也可以在任何以后的時間點(diǎn)發(fā)送它。信息命令經(jīng)由USB13、迷 你AB插口 14和線纜連接傳輸?shù)綌?shù)碼相機(jī)20 (步驟104)。由此, 移動終端10向數(shù)碼相機(jī)20通報它的自有USB能力。
數(shù)碼相機(jī)20經(jīng)由迷你AB插口 24接收信息命令并且經(jīng)由USB 23將它轉(zhuǎn)發(fā)到芯片組21。基于在信息命令中的指示,數(shù)碼相機(jī)20 現(xiàn)在知道移動終端IO支持什么類別和接口。在芯片組21中,銷售 商專用命令管理器部分28的模式選擇邏輯檢測數(shù)碼相機(jī)20的USB 模式中哪個模式最好地配合移動終端10的USB能力。銷售商專用 命令管理器部分28還負(fù)責(zé)確認(rèn)所接收的命令(未示出)并且將數(shù)碼 相機(jī)20設(shè)置為所選USB模式(步驟105)。在主機(jī)10的所示USB 功能適合于利用外設(shè)20的數(shù)個USB模式的情況下,或者在外設(shè)20 沒有為具體種類的主機(jī)10提供USB功能的情況下,可能無法進(jìn)行 這樣的選擇。在當(dāng)前情況下,例如移動終端IO可以支持用于請求連 接的外設(shè)打印機(jī)提供打印輸出的"打印模式"和使某一主機(jī)能夠存取 移動終端10的海量存放器的"內(nèi)部海量存儲模式"。數(shù)碼相機(jī)20同 樣可以支持使某一主機(jī)如PC能夠存取數(shù)碼相機(jī)20的海量存放器的"內(nèi)部海量存儲模式"和用于請求將圖像數(shù)據(jù)存儲于提供海量存放器 的某一外設(shè)中的"外部海量存儲模式"。因此,數(shù)碼相機(jī)20可能檢測
不到它可以向移動終端IO提供某一功能的USB模式。然而將理解 移動終端10和數(shù)碼相機(jī)可以適于輸入數(shù)碼相機(jī)20向移動終端10提 供某一功能的一個或者多個其它USB模式。
銷售商專用命令管理器部分18還生成用于取回在數(shù)碼相機(jī)20 的所有USB模式中支持的所有類別和所有接口的第二銷售商—專用 命令。這一請求命令經(jīng)由USB 13、迷你AB插口 14和線纜傳輸?shù)綌?shù) 碼相機(jī)20 (步驟106)。
數(shù)碼相機(jī)20經(jīng)由迷你AB插口 24接收該請求命令并且經(jīng)由USB 23將它轉(zhuǎn)發(fā)到芯片組21。在芯片組21中,銷售商專用命令管理器 部分28負(fù)責(zé)移動終端IO可以取回所請求的信息。
移動終端10在這一方式下發(fā)現(xiàn)在數(shù)碼相機(jī)20支持的所有USB 模式中的所有類別和所有接口而不僅僅是在數(shù)碼相機(jī)20的當(dāng)前USB 模式中提供的服務(wù)。
銷售商專用命令管理器部分18現(xiàn)在可以基于與數(shù)碼相機(jī)20的 功能有關(guān)的接收信息來確定數(shù)碼相機(jī)20的哪個USB模式最好地適 合于移動終端IO對USB服務(wù)的當(dāng)前要求。在可以確定這樣的USB 模式情況下,銷售商專用命令管理器18還生成用于強(qiáng)制數(shù)碼相機(jī)2 0 的USB模式以進(jìn)入這一具體USB模式的第三銷售商—專用命令。這 一設(shè)置命令同樣經(jīng)由USB 13、迷你AB插口 14和線纜傳輸?shù)綌?shù)碼相 機(jī)20 (步驟108)。
數(shù)碼相機(jī)20經(jīng)由迷你AB插口 24接收該設(shè)置命令并且經(jīng)由USB 23將它轉(zhuǎn)發(fā)到芯片組21。在芯片組21中,銷售商專用命令管理器 部分28的模式選擇邏輯被設(shè)置為在設(shè)置命令中請求的USB模式(步 驟109)。銷售商專用命令管理器部分28還生成與設(shè)置命令相比而 言反向地傳輸?shù)揭苿咏K端10的具有關(guān)于設(shè)置USB模式的對應(yīng)狀態(tài) 信息的銷售商—專用消息(步驟IIO)。
在沒有收到設(shè)置命令的情況下,銷售商專用命令管理器部分28的模式選擇邏輯可以負(fù)責(zé)進(jìn)入默認(rèn)USB模式。然而必須注意針對沒
有接收設(shè)置命令的情況可以也可以實(shí)施其它方式,但是這些方式可
能要求改變對USB規(guī)范中限定的資格的測試。在圖2中例如示出了 在步驟105中在預(yù)定時間之后沒有接收設(shè)置命令并且尚未選擇USB 模式的情況下,銷售商專用命令管理器部分28的模式選擇邏輯負(fù)責(zé) 在數(shù)碼相機(jī)20的用戶接口 22的顯示器上向用戶呈現(xiàn)USB模式或者 服務(wù)選擇菜單。用戶可以通過經(jīng)由用戶接口 22的按鈕輸入命令來選 擇所需USB模式(步驟111 )。
可以簡單地通過用以區(qū)別類別集的唯一編號來標(biāo)識所有銷售商 專用命令中的一個或者多個USB模式。
一旦移動終端10已經(jīng)強(qiáng)制數(shù)碼相機(jī)20為所需USB模式,或者 在無需設(shè)置USB模式的情況下, 一旦移動終端10已經(jīng)發(fā)現(xiàn)數(shù)碼相 機(jī)20所提供的所有USB功能,系統(tǒng)就進(jìn)行標(biāo)準(zhǔn)USB操作(步驟120 )。
即,移動終端10的標(biāo)準(zhǔn)控制和數(shù)據(jù)流管理器部分19生成向數(shù) 碼相機(jī)20傳輸?shù)?獲取設(shè)備描述符"命令(步驟121 )。
當(dāng)"獲取設(shè)備描述符"命令從移動終端10傳輸?shù)綌?shù)碼相機(jī)20時, 終止根據(jù)本發(fā)明的發(fā)現(xiàn)階段。將理解可以自由地選擇用于這一發(fā)現(xiàn) 過程的"銷售商_專用"命令的生成和傳輸順序。有利地,在傳輸"獲取 設(shè)備描述符"命令之前完成它們。
在收到"獲取設(shè)備描述符"命令時,數(shù)碼相機(jī)20的標(biāo)準(zhǔn)流管理器 部分29針對輸入的USB模式返回包括在這一 USB模式中支持的類 別和接口的描述符(步驟122)。描述符是由USB外設(shè)用于報告它 們的屬性的具有限定格式的數(shù)據(jù)結(jié)構(gòu)。標(biāo)準(zhǔn)控制和數(shù)據(jù)流管理器19 然后可以繼續(xù)所需數(shù)據(jù)交換。
如果在從移動終端10接收"獲取設(shè)備描述符"命令之前移動終端 10尚未進(jìn)行借助"銷售商一專用"命令的發(fā)現(xiàn),則數(shù)碼相機(jī)20可以執(zhí) 行可以與標(biāo)準(zhǔn)化USB行為對應(yīng)的默認(rèn)行為。
將注意也可以由具有標(biāo)準(zhǔn)A插口或者迷你A插口的主機(jī)和具有 標(biāo)準(zhǔn)B插口或者迷你B插口的外設(shè)進(jìn)行描述至此的操作。在該情況下,USB-OTG軟件16或者USB-OTG處理電路26可以是實(shí)現(xiàn)所述 功能的通用USB軟件16或者USB處理電路26。
對于主機(jī)和外設(shè)能夠切換它們的角色這一情況需要迷你AB插 口 14、 24。
通過使迷你AB插口之間的連接反向、也就是說通過將線纜的迷 你A插頭連接到數(shù)碼相機(jī)20而迷你B插頭連接到移動終端10,從 一開始數(shù)碼相機(jī)20可以扮演主機(jī)的角色而移動終端10可以扮演外 設(shè)的角色。在這一情況下,移動終端10和數(shù)碼相機(jī)20將只是以切 換的角色進(jìn)行參照圖2描述的步驟103至122。
可替換地,無需使線纜反向即可切換初始角色。
在移動終端10不想使用數(shù)碼相機(jī)20所提供的USB服務(wù)的情況 下或者在移動終端10已經(jīng)完成對這樣的USB服務(wù)的使用情況下, 數(shù)碼相機(jī)20將檢測到在USB 23上不再有進(jìn)行中的活動。在USB 23 已經(jīng)空閑預(yù)定時間之后,數(shù)碼相機(jī)20可以判決它利用移動終端10 所提供的USB服務(wù)。為此,數(shù)碼相機(jī)20可以經(jīng)由用戶接口 22的顯 示器向用戶呈現(xiàn)移動終端10的所示能力并且經(jīng)由用戶接口 22的按 鈕來實(shí)現(xiàn)對所需服務(wù)的選擇。在收到用戶選擇時,然后可以根據(jù)在 上文提到的"On-The-Go Supplement to the USB 2.0 Specification"中描 述的主機(jī)協(xié)商協(xié)議從數(shù)碼相機(jī)20關(guān)斷它的上拉寄存器開始來切換主 機(jī)和外設(shè)的角色(步驟130、 131)。
在USB連接重置的情況下或者為設(shè)備10、20之一設(shè)置新的USB 地址情況下,可以進(jìn)行與針對新連接相同的操作(步驟101-130)。
總而言之,變得清楚的是,呈現(xiàn)的本發(fā)明實(shí)施例使USB連接的 主機(jī)和外設(shè)能夠在首次連接設(shè)置過程中或者在連接改變之后獲得如 果沒有所述發(fā)現(xiàn)過程則可能隱藏的關(guān)于彼此全部USB能力的知識。 因而可以使外設(shè)能夠自動地選擇適當(dāng)USB模式和/或可以使主機(jī)能 夠強(qiáng)制外設(shè)進(jìn)入適當(dāng)USB模式。因此可以使對于用戶動作的需要最 少化,這也防止不適當(dāng)?shù)挠脩暨x擇從而實(shí)現(xiàn)人機(jī)功效更佳的設(shè)備設(shè) 計。具體對于USBOTG,初始外設(shè)還能夠評估初始主^L的能力。
19盡管信息命令、請求命令、設(shè)置命令和確認(rèn)消息已經(jīng)表示為銷 售商專用消息,但是將理解它們同樣可以是標(biāo)準(zhǔn)化消息。
將注意所述實(shí)施例構(gòu)成本發(fā)明各種可能實(shí)施例中的僅一個可能
實(shí)施例。
權(quán)利要求
1. 一種方法,包括-在主機(jī)(10)處生成信息命令,所述主機(jī)(10)經(jīng)由所述主機(jī)(10)的通用串行總線接口(14)連接到外設(shè)(20),所述信息命令包括與所述主機(jī)(10)的能力有關(guān)的信息;以及-提供用于經(jīng)由所述通用串行總線接口(14)向所述外設(shè)(20)傳輸?shù)乃鲂畔⒚睢?br>
2. 根據(jù)權(quán)利要求1所述的方法,其中與所述主機(jī)(10)的能力 有關(guān)的所述信息包括以下指示中的至少 一 個指示-在所述主機(jī)(IO)的至少一個通用串行總線模式中支持的至少 一個類別的指示;以及-為所述主機(jī)(10)的至少一個通用串行總線模式而提供的至少 一個接口的指示。
3. 根據(jù)權(quán)利要求1所述的方法,其中在生成獲取命令之前,在 所述主機(jī)(10)處生成所述信息命令,在所述主機(jī)(10)處生成的 所述獲取命令用于獲得與所述外設(shè)(20)在所述外設(shè)(20)的當(dāng)前 通用串行總線模式中提供的至少一個類別有關(guān)的信息。
4. 根據(jù)權(quán)利要求1所述的方法,還包括-在所述主機(jī)(10)生成請求命令,所述請求命令取回與在所述 外設(shè)(20)的所有通用串行總線模式中提供的所有類別有關(guān)的信息; 以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20) 傳輸?shù)乃稣埱竺睢?br>
5. 根據(jù)權(quán)利要求4所述的方法,還包括-在所述主機(jī)(10)處基于與在所述外設(shè)(20)的所有通用串行 總線模式中提供的所有類別有關(guān)的所述取回信息來選擇所述外設(shè) (20)的所需通用串行總線模式;-在所述主機(jī)(10)處生成用于強(qiáng)制所述外設(shè)(20)進(jìn)入所選通用串行總線模式的設(shè)置命令;以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20)傳輸?shù)乃鲈O(shè)置命令。
6. —種方法,包括在外設(shè)(20)處從主機(jī)(10)接收包括與所 述主機(jī)(10)的能力有關(guān)的信息的信息命令,所述外設(shè)(20)經(jīng)由 所述外設(shè)(20)的通用串行總線接口 (24)連接到所述主機(jī)(10)。
7. 根據(jù)權(quán)利要求6所述的方法,還包括在所述外設(shè)(20)處輸 入所選的通用串行總線模式,所述所選的通用串行總線模式基于以 下信息之一來選擇-與所述主機(jī)(10)的能力有關(guān)的所述信息; -來自所述主機(jī)(10)用于強(qiáng)制所述外設(shè)(20)進(jìn)入特定通用串 行總線模式的設(shè)置命令;以及 -用戶輸入。
8. 根據(jù)權(quán)利要求6所述的方法,還包括在所述外設(shè)(20)處基 于與所述當(dāng)前主機(jī)(10)的能力有關(guān)的所述信息來確定是否自身成 為主4幾。
9. 一種處理裝置(11, 16),-所述處理裝置(11, 16)適于生成包括與主機(jī)(10)的能力有 關(guān)的信息的信息命令,所述主機(jī)(10)經(jīng)由所述主機(jī)(10)的通用 串行總線接口 (14)連接到外設(shè)(20);以及-所述處理裝置(ll, 16)適于提供用于經(jīng)由所述通用串行總線 接口 (14)向所述外設(shè)(20)傳輸?shù)乃雒睢?br>
10. 根據(jù)權(quán)利要求9所述的處理裝置(11, 16),其中所述處 理裝置(11, 16)還適于在外設(shè)(10)處從所述主機(jī)接收包括與所 述主機(jī)的能力有關(guān)的信息的信息命令,所述外設(shè)(10)經(jīng)由所述外 設(shè)(10)的通用串行總線接口 (14)連接到主機(jī)。
11. 一種設(shè)備(10),包括-通用串行總線接口 ( 14),所述通用串行總線接口 ( 14)使所 述設(shè)備(10)能夠充當(dāng)與充當(dāng)外設(shè)的另一設(shè)備(20)有通用串行總線連4妻的主4幾;以及-根據(jù)權(quán)利要求9所述的處理裝置(11, 16)。
12. —種處理裝置(21 ),所述處理裝置(21 )適于在外設(shè)(20 ) 處從主機(jī)(10)接收包括與所述主機(jī)(10)的能力有關(guān)的信息的信 息命令,所述外設(shè)(20)經(jīng)由所述外設(shè)(20)的通用串行總線接口(24)連接到所述主機(jī)(10)。
13. —種設(shè)備(20),包括-通用串行總線接口 (24),所述通用串行總線接口 (24)使所 述設(shè)備(20)能夠充當(dāng)與充當(dāng)主機(jī)的另一設(shè)備(10)有通用串行總 線連接的外設(shè);以及-根據(jù)權(quán)利要求12所述的處理裝置(21)。
14. 一種系統(tǒng),包括根據(jù)權(quán)利要求11所述的設(shè)備(10)和充當(dāng) 所述外設(shè)的又一設(shè)備(20)。
15. —種軟件程序代碼(16),適于在由主機(jī)(10)的處理單 元(11 )執(zhí)行時實(shí)現(xiàn)以下操作,所述主機(jī)(10)經(jīng)由所述主機(jī)(10) 的通用串行總線接口 (14)連接到外設(shè)(20):-生成信息命令,所述信息命令包括與所述主機(jī)(IO)的能力有 關(guān)的信息;以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20) 傳輸?shù)乃鲂畔⒚睢?br>
16. —種軟件程序產(chǎn)品,其中根據(jù)權(quán)利要求15所述的軟件程序 代碼(16 )存儲于可讀存儲器(15 )中。
17. —種軟件程序代碼(16),適于在由外設(shè)(10)的處理單 元(11 )執(zhí)行時實(shí)現(xiàn)以下操作-從主機(jī)接收包括與所述主機(jī)的能力有關(guān)的信息的信息命令,所 述外設(shè)(10)經(jīng)由所述外設(shè)(10)的通用串行總線接口 (14)連接 到所述主才幾。
18. —種軟件程序產(chǎn)品,其中根據(jù)權(quán)利要求17所述的軟件程序 代碼(16 )存儲于可讀存儲器(15 )中。
19. 一種方法,包括-在主機(jī)(10)處生成請求命令,所述主機(jī)(10)經(jīng)由所述主機(jī) (10)的通用串行總線接口 (14)連接到外設(shè)(20),所述請求命 令取回與在所述外設(shè)(20)的所有通用串行總線模式中提供的所有 類別有關(guān)的信息;以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20) 傳輸?shù)乃稣埱竺睢?br>
20. 根據(jù)權(quán)利要求19所述的方法,還包括-在所述主機(jī)(10)處基于與在所述外設(shè)(20)的所有通用串行 總線模式中提供的所有類別有關(guān)的所述取回信息來選擇所述外設(shè) (20)的所需通用串行總線模式;-在所述主機(jī)(10)處生成用于強(qiáng)制所述外設(shè)(20)進(jìn)入所選通 用串行總線模式的設(shè)置命令;以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20) 傳輸?shù)乃鲈O(shè)置命令。
21. —種處理裝置(11, 16),-所述處理裝置(11, 16)適于在主機(jī)(10)處生成請求命令, 所述主機(jī)(10)經(jīng)由所述主機(jī)(10)的通用串行總線接口 ( 14)連 接到外設(shè)(20),所述請求命令取回與在所述外設(shè)(20)的所有通 用串行總線模式中提供的所有類別有關(guān)的信息;以及-所述處理裝置(ll, 16)適于提供用于經(jīng)由所述通用串行總線 接口 (14)向所述外設(shè)(20)傳輸?shù)乃稣埱竺睢?br>
22. —種設(shè)備(10),包括-通用串行總線接口 ( 14),所述通用串行總線接口 ( 14)使所 述設(shè)備(10)能夠充當(dāng)與充當(dāng)外設(shè)的另一設(shè)備(20)有通用串行總 線連4妻的主才幾;以及-根據(jù)權(quán)利要求21所述的處理裝置(11, 16)。
23. —種系統(tǒng),包括根據(jù)權(quán)利要求22所述的設(shè)備(10)和充當(dāng) 所述外設(shè)的又一設(shè)備(20)。
24. —種軟件程序代碼(16),適于在由主機(jī)(10)的處理單 元(11 )執(zhí)行時實(shí)現(xiàn)以下操作,所述主機(jī)(10)經(jīng)由所述主機(jī)(10) 的通用串行總線接口 ( 14)連接到外設(shè)(20):-在主機(jī)(10)處生成請求命令,所述請求命令取回與在所述外 設(shè)(20)的所有通用串行總線模式中提供的所有類別有關(guān)的信息; 以及-提供用于經(jīng)由所述通用串行總線接口 (14)向所述外設(shè)(20) 傳輸?shù)乃稣埱竺睢?br>
25. —種軟件程序產(chǎn)品,其中根據(jù)權(quán)利要求24所述的軟件程序 代碼(16 )存儲于可讀存儲器(15 )中。
全文摘要
在USB連接的情況下,主機(jī)檢測外設(shè)經(jīng)由主機(jī)的USB接口到主機(jī)的連接。主機(jī)然后生成包括與主機(jī)的能力有關(guān)的信息的信息命令。提供用于經(jīng)由USB接口向外設(shè)傳輸?shù)脑撔畔⒚?。外設(shè)接收信息命令并且可以例如評估所包括的信息以便選擇將要進(jìn)入的適當(dāng)?shù)腢SB模式或者以便關(guān)于本身成為主機(jī)進(jìn)行判決??商鎿Q地或者除此之外,主機(jī)可以生成用于取回與在外設(shè)的所有USB模式中提供的所有類別有關(guān)的信息的請求命令。
文檔編號G06F13/42GK101427228SQ200680054379
公開日2009年5月6日 申請日期2006年4月26日 優(yōu)先權(quán)日2006年4月26日
發(fā)明者C·策希林, D·本卡克, M·胡博, T·布洛克 申請人:諾基亞公司