專利名稱:一種usb多協(xié)議自適應的方法
技術領域:
本發(fā)明涉及計算機應用領域,特別涉及一種USB設備多協(xié)議自動選擇的方法。
背景技術:
USB協(xié)議(Universal Serial Bus,通用串行總線)是一種計算機總線協(xié)議標準, 廣泛應用于個人計算機的外圍設備接口。每個USB總線上由一個USB主機和多個USB設備組成。USB設備根據(jù)其提供的功能,具備各種各樣的接口。通常情況下,具有相同或相近功能的一類設備可以遵循特定的類協(xié)議,具備相同的接口。如,常見的鼠標和鍵盤設備, 遵循HID協(xié)議(Human Interface Devices,人體學輸入設備);智能卡設備,遵循CCID協(xié)議 (Integrated Circuit (s) Cards Interface Devices,集成電路卡界面設備)。USB設備可以同時遵循多種協(xié)議,在同一時間只使用其中的一種協(xié)議。如,信息安全設備可以同時支持HID協(xié)議和CCID協(xié)議,可以選擇使用HID協(xié)議與主機通信,也可以選擇使用CCID協(xié)議與主機通信。在USB協(xié)議中,這是通過配置來實現(xiàn)的,一個配置中包含一個或多個接口,同一時間只能使用一個配置,通過選擇不同的配置,來決定設備使用的協(xié)議。通常情況下,用戶需要手動的選擇一個配置。設備出廠后使用默認配置,用戶在默認配置下使用設備,這通常需要在主機上安裝該配置接口的驅動程序。只有在默認配置下正常工作的情況下,才能選擇到其他配置。當使用支持的協(xié)議中的任何一種都能滿足功能要求時,這種手動選擇協(xié)議的方法,使用復雜,需要較高的使用成本。
發(fā)明內容
有鑒于此,本發(fā)明提供了一種USB設備多協(xié)議自動選擇的方法。本發(fā)明中的方法,能夠按照預先設定的順序,根據(jù)計算機中是否安裝協(xié)議的驅動程序來自動選擇能夠使設備正常工作的USB協(xié)議。相比較手動選擇協(xié)議的方法,本發(fā)明方法不需要計算機安裝默認協(xié)議的驅動,只要安裝任何一個USB支持的協(xié)議的驅動即可以正常工作,具有更高的易用性,節(jié)約用戶的使用成本。本發(fā)明方法的實現(xiàn)步驟
USB設備出廠前設置協(xié)議選擇順序,包含USB設備支持的一個以上協(xié)議。出廠前設置協(xié)議選擇超時時間。用戶將USB設備連接到計算機時,USB設備按照出廠前預先設置的協(xié)議選擇順序, 選擇第I個支持的協(xié)議,記為協(xié)議I。USB設備通過內部的計時單元開始計時。計算機檢測到USB設備后會為USB設備安裝驅動程序,驅動程序安裝成功后,根據(jù) USB協(xié)議規(guī)定,計算機會向USB設備發(fā)送設置配置命令。如果USB設備在計時單元超時之前收到計算機發(fā)來的設置配置命令,則完成協(xié)議選擇,停止計時單元,使用協(xié)議I與計算機通信;如果USB設備在計時單元超時之前沒有收到計算機發(fā)來的設置配置命令,則選擇第2個支持的協(xié)議,記為協(xié)議2。計時單元重新開始計時。
重復以上步驟直到收到設置配置命令,或者所有的協(xié)議在計時單元超時之前都沒有收到設置配置命令。所述協(xié)議選擇順序保存在USB設備中。較佳地,USB設備可以根據(jù)最終選擇的協(xié)議,自動地修改協(xié)議選擇順序,將最終選擇的協(xié)議作為第I選擇,其他的協(xié)議按照原來的順序依次排序。較佳地,用戶可以通過計算機向USB設備發(fā)送命令來修改協(xié)議選擇順序。從下一次USB設備連接計算機開始,將使用修改后的協(xié)議選擇順序。所述超時時間保存在USB設備中。較佳地,用戶可以通過計算機向USB設備發(fā)送命令來修改超時時間。從下一次USB 設備連接計算機開始,將使用修改后的超時時間。所述計時單元,可以是硬件的實時時鐘、定時器,也可以是軟件模擬的時鐘。所述選擇協(xié)議,是指根據(jù)USB協(xié)議,報告設備連接狀態(tài)并發(fā)送USB描述符(USB Descriptor)的過程。由上述技術方案可見,本發(fā)明實現(xiàn)了 USB協(xié)議自動選擇的方法,能夠自動選擇已安裝驅動的協(xié)議,達到了提高設備易用性的目的。根據(jù)本發(fā)明的一個方面,提供一種USB設備選擇啟動協(xié)議的方法,
步驟I :在所述USB設備中預設支持所述USB設備的至少兩個協(xié)議的選擇順序;
步驟2 :所述USB設備連接到計算機時,按照預設的所述選擇順序,選擇第一協(xié)議進行啟動;
步驟3 :如果根據(jù)所述第一協(xié)議啟動不成功,則所述USB設備根據(jù)預設的協(xié)議選擇順序,選擇其他協(xié)議進行啟動;
步驟4 :如果根據(jù)所述選擇順序選擇的全部協(xié)議都啟動不成功,則所述USB設備停止啟動。根據(jù)本發(fā)明的一個方面,所述USB設備中具有計時單元,
在所述步驟I中,在所述USB設備中預設超時時間值;
在所述步驟2中,所述USB設備連接到計算機時,所述計時單元開始計時;
如果所述計算機中安裝有所述第一協(xié)議的驅動程序,則所述USB設備使用所述第一協(xié)議與所述計算機通信,所述計時單元停止計時;
如果所述計算機中未安裝所述第一協(xié)議的驅動程序,則在所述計時單元判斷出超時后,進入步驟3,同時所述計時單元重新開始計時;
在所述步驟3中,如果所述計算機中安裝有所述其他協(xié)議的驅動程序,則所述USB設備使用所述其他協(xié)議與所述計算機通信,所述計時單元停止計時;
如果所述計算機中未安裝所述其他協(xié)議的驅動程序,則在所述計時單元判斷出超時后,所述USB設備根據(jù)預設的協(xié)議選擇順序,繼續(xù)選擇剩余的其他協(xié)議進行啟動,同時所述計時單元重新開始計時。根據(jù)本發(fā)明的一個方面,在所述USB設備與所述計算機進行通信時,所述USB設備向所述計算機報告其處于連接狀態(tài),并向所述計算機發(fā)送符合協(xié)議規(guī)定的USB描述符。根據(jù)本發(fā)明的一個方面,所述計算機向所述USB設備發(fā)送設置配置命令;
所述USB設備收到所述設置配置命令后完成協(xié)議選擇,并使用所選的所述協(xié)議與所述計算機通信。根據(jù)本發(fā)明的一個方面,所述USB設備根據(jù)最終選擇的協(xié)議,自動地修改協(xié)議的選擇順序,將最終選擇的協(xié)議設置為第一協(xié)議,其他的協(xié)議仍按照原來預設的順序依次排序。根據(jù)本發(fā)明的一個方面,用戶通過所述計算機向所述USB設備發(fā)送命令來修改協(xié)議的選擇順序或者設置所述超時時間值。根據(jù)本發(fā)明的一個方面,所述計時單元是硬件結構的實時時鐘、定時器,或者是通過軟件計時的時鐘。根據(jù)本發(fā)明的一個方面,所述協(xié)議至少包括UASP協(xié)議、CCID協(xié)議、HID協(xié)議。
圖I為本發(fā)明方法實施例一中USB設備自動選擇協(xié)議的方法的流程圖。圖2為本發(fā)明方法實施例二中USB設備自動選擇協(xié)議的方法的流程圖。圖3為本發(fā)明方法實施例三中USB設備自動選擇協(xié)議的方法的流程圖。
具體實施例方式為使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細說明。實施例一
本實施例中,USB設備支持HID和CCID兩種協(xié)議。圖I為本實施例中USB設備自動選擇協(xié)議的方法的流程圖。如圖I所示,本實施例中自動選擇協(xié)議的方法包括
步驟101,USB設備出廠前,設置協(xié)議選擇順序CCID->HID,即,先CCID協(xié)議啟動順序優(yōu)于HID協(xié)議。步驟102,用戶使用USB設備時,將USB設備連接到計算機。USB設備首先自動選擇CCID協(xié)議。即,USB設備向計算機報告其處于連接狀態(tài),并向計算機發(fā)送CCID協(xié)議規(guī)定的USB描述符。USB設備內的計時單位開始計時。如果計算機安裝了 CCID協(xié)議的驅動程序,則執(zhí)行步驟103,根據(jù)USB協(xié)議,計算機會向USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟104,協(xié)議選擇過程完成。USB設備使用CCID協(xié)議與計算機通信,計時單元停止計時。如果計算機沒有安裝CCID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的硬件定時器前面是“計時單元”,應當保持術語一致在超時后,觸發(fā)中斷程序,執(zhí)行步驟105,USB設備重新向計算機報告其處于連接狀態(tài),并向計算機發(fā)送HID協(xié)議規(guī)定的USB描述符。計時單元重新開始計時。如果計算機安裝了 HID協(xié)議的驅動程序,執(zhí)行步驟106,根據(jù)USB協(xié)議,計算機會向 USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟107,協(xié)議選擇過程完成。USB設備使用HID協(xié)議與計算機通信,計時單元停止計時。
如果計算機沒有安裝HID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟108,USB設備沒有找到支持的協(xié)議,完成協(xié)議選擇。在這種情況下,USB設備未能建立與計算機的通信,需要安裝CCID協(xié)議或HID協(xié)議的驅動程序后,重新連接USB設備。至此,本流程結束。由上述流程可見,本實施例自動選擇協(xié)議的方法中,通過在計時單元限定的超時時間內是否收到主機發(fā)送的設置配置命令,來判斷計算機是否安裝了 CCID或HID協(xié)議。通過設置合理的超時時間,能夠使協(xié)議選擇的時間在用戶可接受的范圍中,并保證不會因超時時間過短而錯誤的漏掉了計算機發(fā)送的設置配置命令,因而本發(fā)明能夠實現(xiàn)USB協(xié)議的自動選擇。
實施例二
本實施例中,USB設備支持HID、CCID和UASP三種協(xié)議,并且支持自動修改協(xié)議選擇順序。UASP協(xié)議,即USB Attached SCSI Protocol,是一種大容量USB存儲設備常用的協(xié)議。圖2為本實施例中USB設備自動選擇協(xié)議并自動修改協(xié)議選擇順序的方法的流程圖。如圖2所示,本實施例中自動選擇協(xié)議并自動修改協(xié)議選擇順序的方法包括
步驟201,USB設備出廠前,設置協(xié)議選擇順序UASP->CCID->HID。步驟202,用戶使用USB設備時,將USB設備連接到計算機。USB設備選擇UASP協(xié)議。S卩,USB設備向計算機報告其處于連接狀態(tài),并向計算機發(fā)送UASP協(xié)議規(guī)定的USB描述符。USB設備內的計時單元開始計時。如果計算機安裝了 UASP協(xié)議的驅動程序,執(zhí)行步驟203,根據(jù)USB協(xié)議,計算機會向USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟204,協(xié)議選擇過程完成。USB設備使用UASP協(xié)議與計算機通信,計時單元停止計時。因最終選擇的協(xié)議即為出廠順序的第I協(xié)議,不需要修改協(xié)議選擇順序。如果計算機沒有安裝UASP協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟205,USB設備重新向計算機報告其處于連接狀態(tài),并向計算機發(fā)送CCID協(xié)議規(guī)定的USB描述符。計時單元重新開始計時。如果計算機安裝了 CCID協(xié)議的驅動程序,執(zhí)行步驟206,根據(jù)USB協(xié)議,計算機會向USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟207,協(xié)議選擇過程完成。USB設備使用CCID協(xié)議與計算機通信,計時單元停止計時。步驟208,USB設備自動修改協(xié)議選擇順序為CCID->UASP_>HID。如果計算機沒有安裝CCID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟209,USB設備重新向計算機報告其處于連接狀態(tài),并向計算機發(fā)送HID協(xié)議規(guī)定的USB描述符。計時單元重新開始計時。如果計算機安裝了 HID協(xié)議的驅動程序,執(zhí)行步驟210,根據(jù)USB協(xié)議,計算機會向5/6頁
USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟211,協(xié)議選擇過程完成。USB設備使用HID協(xié)議與計算機通信,計時單元停止計時。步驟212,USB設備自動修改協(xié)議選擇順序為HID->UASP_>CCID。如果計算機沒有安裝HID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟213,USB設備沒有找到支持的協(xié)議,完成協(xié)議選擇。在這種情況下,USB設備未能建立與計算機的通信,需要安裝UASP協(xié)議或CCID協(xié)議或HID協(xié)議的驅動程序后,重新連接USB設備。至此,本流程結束。由上述流程可見,本實施例自動選擇協(xié)議的方法后,能夠根據(jù)最終的選擇情況自動地修改協(xié)議選擇順序。這樣,在下一次連接USB設備時,能夠優(yōu)先地選擇上一次成功選擇的協(xié)議。通常情況下,按照新的協(xié)議選擇順序,第I協(xié)議即可以選擇成功,不再需要選擇那些沒有安裝驅動程序的協(xié)議,節(jié)省了協(xié)議選擇的時間,進一步提高了本發(fā)明方法的易用性。
實施例三
本實施例中,USB設備支持HID、CCID和UASP三種協(xié)議。該實施例中支持自動修改協(xié)議選擇順序,并且支持用戶修改協(xié)議選擇順序和超時時間。 圖3為本實施例中USB設備自動選擇協(xié)議并自動修改協(xié)議選擇順序,再由用戶修改協(xié)議選擇順序和超時時間的方法的流程圖。如圖3所示,本實施例中的方法包括
步驟301,USB設備出廠前,設置協(xié)議選擇順序UASP->CCID->HID。步驟302,用戶使用USB設備時,將USB設備連接到計算機。USB設備選擇UASP協(xié)議。S卩,USB設備向計算機報告其處于連接狀態(tài),并向計算機發(fā)送UASP協(xié)議規(guī)定的USB描述符。USB設備內的計時單元開始計時。如果計算機安裝了 UASP協(xié)議的驅動程序,執(zhí)行步驟303,根據(jù)USB協(xié)議,計算機會向USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟304,協(xié)議選擇過程完成。USB設備使用UASP協(xié)議與計算機通信,計時單元停止計時。因最終選擇的協(xié)議即為出廠順序的第I協(xié)議,不需要修改協(xié)議選擇順序。步驟304完成后,執(zhí)行步驟314。如果計算機沒有安裝UASP協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟305,USB設備重新向計算機報告其處于連接狀態(tài),并向計算機發(fā)送CCID協(xié)議規(guī)定的USB描述符。計時單元重新開始計時。如果計算機安裝了 CCID協(xié)議的驅動程序,執(zhí)行步驟306,根據(jù)USB協(xié)議,計算機會向USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟307,協(xié)議選擇過程完成。USB設備使用CCID協(xié)議與計算機通信,計時單元停止計時。步驟308,USB設備自動修改協(xié)議選擇順序為CCID->UASP_>HID。步驟308完成后,執(zhí)行步驟314。如果計算機沒有安裝CCID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟309,USB設備重新向計算機報告其處于連
7接狀態(tài),并向計算機發(fā)送HID協(xié)議規(guī)定的USB描述符。計時單元重新開始計時。 如果計算機安裝了 HID協(xié)議的驅動程序,執(zhí)行步驟310,根據(jù)USB協(xié)議,計算機會向 USB設備發(fā)送設置配置命令。USB設備收到配置命令后執(zhí)行步驟311,協(xié)議選擇過程完成。USB設備使用HID協(xié)議與計算機通信,計時單元停止計時。步驟312,USB設備自動修改協(xié)議選擇順序為HID->UASP_>CCID。步驟312完成后,執(zhí)行步驟314。如果計算機沒有安裝HID協(xié)議的驅動程序,計算機不會向USB設備發(fā)送設置配置命令。USB設備的計時單元在超時后,執(zhí)行步驟313,USB設備沒有找到支持的協(xié)議,完成協(xié)議選擇。在這種情況下,USB設備未能建立與計算機的通信,需要安裝UASP協(xié)議或CCID協(xié)議或HID協(xié)議的驅動程序后,重新連接USB設備。步驟314,在USB設備與計算機能夠正常通信的情況下,用戶可以發(fā)送命令修改協(xié)議選擇順序,如,修改為CCID->HID->UASP。用戶可以發(fā)送命令修改超時時間。至此,本流程結束。由上述流程可見,本實施例自動選擇協(xié)議的方法后,能夠根據(jù)最終的選擇情況自動地修改協(xié)議選擇順序。盡管如此,用戶可能在下一次連接USB設備之前,安裝其他協(xié)議的驅動程序,并希望能夠在下一次連接USB設備之時,使用新安裝的協(xié)議。這時,用戶可以將下一次連接USB設備時希望使用的協(xié)議設置為第I協(xié)議,其他協(xié)議在其之后。這樣,下一次即可以選擇希望使用的協(xié)議,而即便該協(xié)議驅動不能工作,也可以選擇其他協(xié)議繼續(xù)工作。 用戶可以修改超時時間,節(jié)省協(xié)議選擇的時間。通過本實施例的流程,可以提高本發(fā)明方法的靈活性。
權利要求
1.一種USB設備選擇啟動協(xié)議的方法,其特征在于步驟I :在所述USB設備中預設支持所述USB設備的至少兩個協(xié)議的選擇順序;步驟2 :所述USB設備連接到計算機時,按照預設的所述選擇順序,選擇第一協(xié)議進行啟動;步驟3 :如果根據(jù)所述第一協(xié)議啟動不成功,則所述USB設備根據(jù)預設的協(xié)議選擇順序,選擇其他協(xié)議進行啟動;步驟4 :如果根據(jù)所述選擇順序選擇的全部協(xié)議都啟動不成功,則所述USB設備停止啟動。
2.根據(jù)權利要求I的方法,其特征在于,所述USB設備中具有計時單元,在所述步驟I中,在所述USB設備中預設超時時間值;在所述步驟2中,所述USB設備連接到計算機時,所述計時單元開始計時;如果所述計算機中安裝有所述第一協(xié)議的驅動程序,則所述USB設備使用所述第一協(xié)議與所述計算機通信,所述計時單元停止計時;如果所述計算機中未安裝所述第一協(xié)議的驅動程序,則在所述計時單元判斷出超時后,進入步驟3,同時所述計時單元重新開始計時;在所述步驟3中,如果所述計算機中安裝有所述其他協(xié)議的驅動程序,則所述USB設備使用所述其他協(xié)議與所述計算機通信,所述計時單元停止計時;如果所述計算機中未安裝所述其他協(xié)議的驅動程序,則在所述計時單元判斷出超時后,所述USB設備根據(jù)預設的協(xié)議選擇順序,繼續(xù)選擇剩余的其他協(xié)議進行啟動,同時所述計時單元重新開始計時。
3.根據(jù)權利要求1、2的方法,其特征在于,在所述USB設備與所述計算機進行通信時,所述USB設備向所述計算機報告其處于連接狀態(tài),并向所述計算機發(fā)送符合協(xié)議規(guī)定的USB描述符。
4.根據(jù)權利要求1-3的方法,其特征在于,所述計算機向所述USB設備發(fā)送設置配置命令;所述USB設備收到所述設置配置命令后完成協(xié)議選擇,并使用所選的所述協(xié)議與所述計算機通信。
5.根據(jù)權利要求1-4的方法,其特征在于,所述USB設備根據(jù)最終選擇的協(xié)議,自動地修改協(xié)議的選擇順序,將最終選擇的協(xié)議設置為第一協(xié)議,其他的協(xié)議仍按照原來預設的順序依次排序。
6.根據(jù)權利要求1-5的方法,其特征在于,用戶通過所述計算機向所述USB設備發(fā)送命令來修改協(xié)議的選擇順序或者設置所述超時時間值。
7.根據(jù)權利要求1-6的方法,其特征在于,所述計時單元是硬件結構的實時時鐘、定時器,或者是通過軟件計時的時鐘。
8.根據(jù)權利要求1-7的方法,其特征在于,所述協(xié)議至少包括UASP協(xié)議、CCID協(xié)議、 HID協(xié)議。
全文摘要
本發(fā)明公開了一種USB多協(xié)議自適應的方法。該方法所涉及的USB裝置支持多種USB協(xié)議,當連接到主機時,該USB裝置首先使用首選協(xié)議,同時開始計時,超過預先設定的時間沒有安裝該協(xié)議的驅動程序的情況下,則自動使用下一個預設協(xié)議,直到主機為當前協(xié)議安裝了驅動程序或該USB裝置支持的所有協(xié)議都沒有安裝驅動程序為止。本發(fā)明不需要預先對USB裝置進行配置來選擇使用的USB協(xié)議,協(xié)議的選擇自動完成,提高了易用性、靈活性。
文檔編號G06F13/42GK102591839SQ20121001061
公開日2012年7月18日 申請日期2012年1月15日 優(yōu)先權日2012年1月15日
發(fā)明者不公告發(fā)明人 申請人:北京深思洛克軟件技術股份有限公司