Usb協議自適應方法
2023-10-06 12:39:09 1
專利名稱:Usb協議自適應方法
技術領域:
本發明涉及數字數據處理方法,特別是涉及插接到主機USB埠的USB設備類型的識別。
背景技術:
基於USB2.0外設已經逐漸上替代了USB1.1外設,如USB2.0快閃記憶體盤已經逐漸替代了USB1.1的快閃記憶體盤,而部分用戶的主機埠仍然是USB1.1的。由於USB協議的前向兼容性,基於USB2.0的快閃記憶體盤也能夠在USB1.1的主機埠上使用,只是不能完全利用其性能。只是在windows xp的系統下,如果高速的USB2.0快閃記憶體盤插入USB1.1的主機埠,將出現如下的信息提示框如果您將此USB設備連接到高速USB2.0埠,可以提高其性能。
在USB協議中,有兩項描述符用來表述當前傳輸所使用的協議設備描述符和配置描述符。其中配置描述符描述了傳輸協議中每個包的大小(USB2.0為512B,USB1.1為64B);設備描述符描述了當前設備類型(USB1.1還是USB2.0)。目前基於USB2.0快閃記憶體盤的設計都是這樣的在設備硬體中存在一個稱為USB模式的寄存器,通過讀取該模式寄存器來判斷主機為USB1.1時,配置描述符應答為64B;主機為USB2.0時,配置描述符應答為512B。無論主機是USB1.1還是USB2.0,在設備描述符中都是報告本設備為USB2.0的設備。但是,在WinXP的系統裡,上層應用軟體並不判斷實際傳輸包的大小,而用設備描述符來確認當前所使用的協議。所以,如果USB2.0快閃記憶體盤和USB1.1主機連接時,就出現了如上所述的信息提示框。
因而,現有技術中主機所運行的USB協議的識別存在以下不足在WinXP系統下,用戶每次將USB2.0設備連接到USB1.1的主機埠時,都會出現上述信息提示框,只有當該信息提示框消失以後,用戶才能使用該設備。這對用戶使用帶來了不便。
發明內容
本發明要解決的技術問題在於提供一種USB協議自適應方法,該方法既不影響USB設備的使用性能,又能解決原有提示帶來不便利的問題。
本發明提供一種USB協議自適應方法,根據主機當前運行USB協議類型來報告USB設備類型,具體包括以下步驟,①USB設備插入USB主機埠,該USB主機發送請求設備描述的命令,通過讀取USB設備模式寄存器來判斷所述USB主機當前運行的USB協議;②無論USB設備是高速類型還是低速類型,如果所述USB主機當前運行的USB協議為低速USB協議類型時,設備描述符中報告所述USB設備為低速USB設備;如果所述USB主機當前運行的USB協議為高速USB協議類型時,設備描述符中報告所述USB設備為高速USB設備;③所述USB主機發送分配設備地址的命令,所述USB設備接收該地址並設置該唯一地址;④所述USB主機發送請求配置描述的命令,通過讀取所述USB設備模式寄存器來判斷所述USB主機當前運行的USB協議;⑤如果所述USB主機當前運行的USB協議為低速USB協議類型時,描述符中包大小的欄位內容為低速USB協議類型傳輸包的大小;如果所述USB主機當前運行的USB協議為高速USB協議類型時,描述符中包大小的欄位內容為高速USB協議類型傳輸包的大小;上述高速USB設備定義為USB設備相對與其連接的USB主機類型為高;上述低速USB設備定義為USB設備與其連接的USB主機類型相同。
本發明根據主機所運行的協議類型,來報告本設備的類型,同現有技術相比較,本發明的技術效果在於在沒有改變USB設備的使用性能前提下,高速USB設備和低速USB埠的主機連接時,高速USB設備將自身報告為低速的USB設備;高速USB設備和高速USB埠的主機連接時,高速USB設備將自身報告為高速的USB設備。例如,USB2.0設備在USB1.1主機下使用時,USB2.0設備將自身報告為USB1.1的設備,USB2.0設備在USB2.0主機下使用時,則報告為USB2.0的設備。所以,本發明方法由於令USB2.0設備在USB1.1主機下使用時報告為USB1.1的設備,而使得主機在WinXP的系統下不再出現信息提示框,為用戶使用帶來了方便。
圖1是本發明方法的工作流程示意圖;具體實施方式
以下結合附圖所示之最佳實施例作進一步詳述。
本發明USB協議自適應方法,根據主機當前運行USB協議類型來報告USB設備類型,以低速USB協議類型是USB1.1協議,高速USB協議類型是USB2.0協議,USB設備為USB快閃記憶體盤為例,包括以下步驟①USB快閃記憶體盤插入USB主機埠,該USB主機發送請求設備描述的命令,通過讀取USB快閃記憶體盤模式寄存器來判斷所述USB主機當前運行的USB協議;②無論USB設備是USB1.1設備還是USB2.0設備,如果所述USB主機當前運行的USB協議為USB1.1協議時,設備描述符中報告所述USB快閃記憶體盤為USB1.1快閃記憶體盤;如果所述USB主機當前運行的USB協議為USB2.0協議時,設備描述符中報告所述USB快閃記憶體盤為USB2.0快閃記憶體盤;③所述USB主機發送分配設備地址的命令,所述USB快閃記憶體盤接收該地址並設置該唯一地址;④所述USB主機發送請求配置描述的命令,通過讀取所述USB快閃記憶體盤模式寄存器來判斷所述USB主機當前運行的USB協議;⑤如果所述USB主機當前運行的USB協議為USB1.1協議時,描述符中包大小的欄位內容為64B;如果所述USB主機當前運行的USB協議為USB2.0協議時,描述符中包大小的欄位內容為512B。
具體實施步驟如圖1所示(1)設備插入到主機USB埠。
(2)設備硬體與主機之間通信後,分別判斷設備和主機的協議類型,並配置USB模式寄存器,此步驟完全為硬體行為,不涉及軟體控制。
(3)主機發送請求設備描述符的命令,並等待設備應答。該命令字為80 06 00 01 00 0028 00。
(4)設備收到命令後,判斷USB模式寄存器中的協議類型。
(5)接步驟(4),如果協議類型為USB1.1,應答該命令,報告設備為USB1.1的設備。設備描述符字為12 01 10 01 00 00 00 40 d8 0d 02 c0 00 01 01 02 03 01。
(6)接步驟(4),如果協議類型為USB2.0,應答該命令,報告設備為USB2.0的設備。設備描述符字為12 01 00 02 00 00 00 40 d8 0d 02 c0 00 01 01 02 03 01。
(7)主機收到該應答後,發送設置地址命令,為該設備配置唯一的地址。
(8)設備配置地址。
(9)主機發送請求配置描述符的命令,並等待設備應答。該命令字為80 06 00 02 00 0020 00(10)設備收到命令後,判斷USB模式寄存器中的協議類型。
(11)接步驟(10),如果協議類型為USB1.1,應答該命令,報告傳輸包的大小為64Bytes。配置描述符字為09 02 20 00 01 01 00 80 fa 09 04 00 00 02 08 06 50 00 07 05 02 0240 00 07 05 82 02 40 00 00。
(12)接步驟(10),如果協議類型為USB2.0,應答該命令,報告傳輸包的大小為512Bytes。配置描述符字為09 02 20 00 01 01 00 80 fa 09 04 00 00 02 08 06 50 00 07 05 02 0200 02 07 05 82 02 00 02 00。
按照以上步驟,在沒有改變USB設備的使用性能前提下,可以令USB2.0設備在USB1.1主機下使用時報告為USB1.1的設備,從而使得主機在WinXP的系統下不再出現「如果您將此USB設備連接到高速USB2.0埠,可以提高其性能」信息提示框,為用戶使用帶來了方便。
權利要求
1.一種USB協議自適應方法,其特徵在於根據主機當前運行USB協議類型來報告USB設備類型,包括以下步驟①USB設備插入USB主機埠,該USB主機發送請求設備描述的命令,通過讀取USB設備模式寄存器來判斷所述USB主機當前運行的USB協議;②無論USB設備是高速類型還是低速類型,如果所述USB主機當前運行的USB協議為低速USB協議類型時,設備描述符中報告所述USB設備為低速USB設備;如果所述USB主機當前運行的USB協議為高速USB協議類型時,設備描述符中報告所述USB設備為高速USB設備;③所述USB主機發送分配設備地址的命令,所述USB設備接收該地址並設置該唯一地址;④所述USB主機發送請求配置描述的命令,通過讀取所述USB設備模式寄存器來判斷所述USB主機當前運行的USB協議;⑤如果所述USB主機當前運行的USB協議為低速USB協議類型時,描述符中包大小的欄位內容為低速USB協議類型傳輸包的大小;如果所述USB主機當前運行的USB協議為高速USB協議類型時,描述符中包大小的欄位內容為高速USB協議類型傳輸包的大小;上述高速USB設備定義為USB設備相對與其連接的USB主機類型為高;上述低速USB設備定義為USB設備與其連接的USB主機類型相同。
2.如權利要求1所述的USB協議自適應方法,其特徵在於當所述低速USB協議類型是USB1.1協議,高速USB協議類型是USB2.0協議時,步驟②相應為無論USB設備是USB1.1設備還是USB2.0設備,如果所述USB主機當前運行的USB協議為USB1.1協議時,設備描述符中報告所述USB設備為USB1.1設備;如果所述USB主機當前運行的USB協議為USB2.0協議時,設備描述符中報告所述USB設備為USB2.0設備;步驟⑤相應為如果所述USB主機當前運行的USB協議為USB1.1協議時,描述符中包大小的欄位內容為64B;如果所述USB主機當前運行的USB協議為USB2.0協議時,描述符中包大小的欄位內容為512B。
3.如權利要求1所述的USB協議自適應方法,其特徵在於所述USB設備為USB快閃記憶體盤。
全文摘要
本發明涉及一種USB協議自適應方法,根據主機當前運行USB協議類型來報告USB設備類型,具體包括以下步驟USB設備插入USB主機埠,該USB主機發送請求設備描述的命令,通過讀取USB設備模式寄存器判斷所述USB主機當前運行的USB協議;如果當前運行的協議為低速USB協議時,設備描述符中報告USB設備為低速USB設備;如果USB主機當前運行的USB協議為高速USB協議時,設備描述符中報告USB設備為高速USB設備。本發明的技術效果在於用戶將高速USB設備連接到低速USB的主機埠時,主機在WinXP的系統下不再出現「如果您將此USB設備連接到高速USB2.0埠,可以提高其性能」的提示,為用戶使用帶來了方便。
文檔編號G06F13/42GK1987843SQ200510121270
公開日2007年6月27日 申請日期2005年12月23日 優先權日2005年12月23日
發明者羅培彬 申請人:深圳市朗科科技有限公司