本公開實施例涉及移動終端領(lǐng)域,具體涉及一種外接設(shè)備的識別方法和識別裝置。
背景技術(shù):
在諸如手機和平板之類的設(shè)備中,已經(jīng)開始采用USB Type-C接口,用于數(shù)據(jù)通訊和供電。USB Type-C接口允許正反面插入,從而提高USB接口的易用性,可以支持高達100W的功率輸出且允許雙向供電,從而可以進行快速充電和大功率供電,可以進行影音信號的傳輸,擴展能力強。
然而,本發(fā)明的發(fā)明人在發(fā)明過程中發(fā)現(xiàn),現(xiàn)有技術(shù)存在以下缺陷:由于USB Type-C接座與插頭之間的配合缺乏機械引導(dǎo)機構(gòu),用戶很容易出現(xiàn)插入緩慢,插入緩慢可能導(dǎo)致設(shè)備錯誤識別外接設(shè)備的接口類型,從而導(dǎo)致設(shè)備采取錯誤的方式處理外接設(shè)備。
期望進一步改進USB Type-C接口插入時的識別方法,從而在插入緩慢時也可以正確識別外接設(shè)備接口。
技術(shù)實現(xiàn)要素:
有鑒于此,本公開實施例提供識別方法和識別裝置,用于識別外接設(shè)備接口,以解決在插入緩慢時有時無法正確識別外接設(shè)備接口的問題。
根據(jù)本公開實施例的第一方面,本公開提供一種識別方法,用于識別和第一設(shè)備連接的第二設(shè)備的接口類型,所述第一設(shè)備具有第一USB Type-C接口,所述第二設(shè)備上具有和第一USB Type-C接口配對的第二USB Type-C接口,所述識別方法包括:檢測所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通;當所述第一USB Type-C接口和所述第二USB Type-C接口聯(lián)通時,至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作;獲取所述第二USB Type-C接口的接口類型,并作為第一接口類型;以及執(zhí)行和所述第一接口類型匹配的接口功能。
可選地,所述接口類型包括標準下行端口、充電下行端口和專用充電端口。
可選地,還包括:在所述至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作的步驟之前,獲取所述第二USB Type-C接口的接口類型作為第二接口類型;則所述至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作為:當所述第二接口類型為標準下行端口時,至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作。
可選地,每次模擬的時間間隔超過預(yù)設(shè)時間。
可選地,通過檢測所述第一USB Type-C接口和所述第二USB Type-C接口的電源線和數(shù)據(jù)線上的電信號確定所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通。
根據(jù)本公開實施例的第二方面,本公開提供一種識別裝置,用于識別和第一設(shè)備連接的第二設(shè)備的接口類型,所述第一設(shè)備具有第一USB Type-C接口,所述第二設(shè)備上具有和第一USB Type-C接口配對的第二USB Type-C接口,所述識別裝置包括:檢測模塊,用于檢測所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通;模擬模塊,用于當所述第一USB Type-C接口和所述第二USB Type-C接口聯(lián)通時,至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作;第一獲取模塊,用于獲取所述第二USB Type-C接口的接口類型,并作為第一接口類型;執(zhí)行模塊,用于執(zhí)行和所述第一接口類型匹配的接口功能。
可選地,所述接口類型包括標準下行端口、充電下行端口和專用充電端口。
可選地,還包括:第二獲取模塊,用于在所述至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作的步驟之前,獲取所述第二USB Type-C接口的接口類型作為第二接口類型;則所述模擬模塊為:當所述第二接口類型為標準下行端口時,至少模擬一次所述第一USB Type-C接口和所述第二USB Type-C接口斷開后再聯(lián)通的操作。
可選地,所述模擬模塊每次模擬的時間間隔超過預(yù)設(shè)時間。
可選地,通過檢測所述第一USB Type-C接口和所述第二USB Type-C接口的電源線和數(shù)據(jù)線上的電信號確定所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通。
根據(jù)本公開實施例的第三方面,本公開提供一種電子設(shè)備,包括上述的識別裝置。
本公開實施例提供的識別方法,用于識別外接設(shè)備的接口類型,通過至少一次的模擬操作,模擬第一設(shè)備和外接設(shè)備的接口斷開后再聯(lián)通,在模擬操作之后重新識別外接設(shè)備的接口類型,解決了在插入緩慢時有時無法正確識別外接設(shè)備的接口類型的問題,確保正確識別外接設(shè)備的接口類型,從而保證以正確的接口類型和外接設(shè)備進行交互。
附圖說明
通過參照以下附圖對本公開實施例的描述,本公開實施例的上述以及其它目的、特征和優(yōu)點將更為清楚,在附圖中:
圖1是根據(jù)本公開實施例的識別方法的流程圖;
圖2是根據(jù)本公開另一實施例的識別方法的流程圖;
圖3是根據(jù)本公開實施例的識別裝置的結(jié)構(gòu)圖;
圖4是根據(jù)本公開另一實施例的識別裝置的結(jié)構(gòu)圖;
圖5是根據(jù)本公開實施例的一種設(shè)備的結(jié)構(gòu)圖;
圖6是根據(jù)本公開實施例的用于識別方法的計算機程序產(chǎn)品的結(jié)構(gòu)示意圖。
具體實施方式
以下基于實施例對本公開實施例進行描述,但是本公開實施例并不僅僅限于這些實施例。在下文對本公開實施例的細節(jié)描述中,詳盡描述了一些特定的細節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細節(jié)部分的描述也可以完全理解本公開實施例。為了避免混淆本公開實施例的實質(zhì),公知的方法、過程、流程沒有詳細敘述。另外附圖不一定是按比例繪制的。
附圖中的流程圖、框圖圖示了本公開實施例的系統(tǒng)、方法、裝置的可能的體系框架、功能和操作,流程圖和框圖上的方框可以代表一個、程序段或僅僅是一段代碼,所述、程序段和代碼都是用來實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應(yīng)當注意,所述實現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令可以重新組合,從而生成新的和程序段。因此附圖的方框以及方框順序只是用來更好的圖示實施例的過程和步驟,而不應(yīng)以此作為對發(fā)明本身的限制。
圖1是根據(jù)本公開實施例的識別方法的流程圖,該用于識別和第一設(shè)備連接的第二設(shè)備的接口類型,第一設(shè)備具有第一USB Type-C接口,第二設(shè)備上具有和第一USB Type-C接口配對的第二USB Type-C接口。第一設(shè)備包括PC機、服務(wù)器、移動終端、各種Pad系列產(chǎn)品等。第二設(shè)備包括移動U盤、硬盤、移動電話、平板系列、相機、游戲機、集線器、鼠標、鍵盤、充電適配器等設(shè)備。所述識別方法包括步驟101-104。
在步驟101中,檢測第一USB Type-C接口和第二USB Type-C接口是否聯(lián)通。
USB Type-C接口具有電源線引腳VBUS、GND和數(shù)據(jù)線引腳D+、D-、以及其他引腳。可以利用軟件檢測接口,或采用獨立于系統(tǒng)資源、通過USB數(shù)據(jù)線引腳D+、D-的互動檢測接口。這些功能的分化取決于具體的系統(tǒng)架構(gòu)。例如,通過微控制器或電源管理芯片管理電源設(shè)備,可能更傾向于采用集成電路進行端口檢測和電流選擇。進一步觀察USB Type-C接口可以發(fā)現(xiàn),兩邊的VBUS和GND的引腳較長,中間的引腳D+、D-較短,這樣的作法是為了先供電再通信。然而由于電源引腳和數(shù)據(jù)引腳的長度不同,可能導(dǎo)致電源引腳已經(jīng)連接上,而數(shù)據(jù)引腳還沒有連接,這種引腳插入的間隔時間最長觀察到的間隔時間是200ms。從而,系統(tǒng)檢測接口時,如果中間的數(shù)據(jù)引腳沒有連接,系統(tǒng)在數(shù)據(jù)引腳上檢測不到電信號,從而可能導(dǎo)致系統(tǒng)對接口類型判斷錯誤。
在步驟102中,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作。
在本步驟中,為了確保正確判斷接口類型,執(zhí)行至少一次的接口斷開和再聯(lián)通的操作。先模擬第一USB Type-C接口和第二USB Type-C接口斷開,再模擬第一USB Type-C接口和第二USB Type-C接口聯(lián)通。模擬斷開時,可以采用軟件或集成電路實現(xiàn)。例如,通過修改表征第一設(shè)備的電源引腳的供電狀態(tài)的寄存器值,從而使第一設(shè)備的電源引腳上的電信號改變(例如,從高電平降為低電平)。這時,雖然第一設(shè)備的USB Type-C接口和第二設(shè)備的接口在物理上處于連接狀態(tài),但在邏輯上是斷開的。模擬聯(lián)通時,通過修改表征第一設(shè)備的電源引腳的供電狀態(tài)的寄存器值,從而使第一設(shè)備的電源引腳上的電信號改變(例如,從低電平降為高電平)。這時,第一設(shè)備的USB Type-C接口和第二設(shè)備的USB Type-C接口不僅在物理上處于連接狀態(tài),在邏輯上也是聯(lián)通的。
在步驟103中,獲取第二USB Type-C接口的接口類型,并作為第一接口類型。
在本步驟中,第一USB Type-C接口和第二USB Type-C接口聯(lián)通后通過交互通信,獲得第二USB Type-C接口的接口類型。例如,首先識別連接的設(shè)備是全速還是高速設(shè)備,然后是枚舉過程,在該過程中第一設(shè)備向第二設(shè)備發(fā)送各種USB命令,第二設(shè)備接到命令后返回設(shè)備描述符、配置描述符、接口描述符、端點描述符,通過這些描述符識別出該設(shè)備的接口類型。本領(lǐng)域的技術(shù)人員可以理解,接口聯(lián)通時的通信步驟由USB Type-C接口協(xié)議確定,這里只對其進行示例性說明。接口類型包括例如:標準下行端口(主要用于通信)、充電下行端口(主要用于充電)和專用充電端口(主要用于大電流充電)。
在步驟104中,執(zhí)行和第一接口類型匹配的接口功能。
標準下行端口多用于連接外設(shè),如鼠標、鍵盤,用于信號的輸入輸出。充電下行端口、專用充電端口用于通過外接設(shè)備給本設(shè)備充電,以及根據(jù)接口類型確定充電電流的大小、方向。
在一個可選的實施例中,上述的識別方法還包括:根據(jù)步驟103中識別出來的接口類型,為第二設(shè)備配置參數(shù)。
本公開實施例提供的識別方法,用于識別外接設(shè)備的接口類型,通過至少一次的模擬操作,模擬第一設(shè)備和外接設(shè)備的接口斷開后再聯(lián)通,在模擬操作之后重新識別外接設(shè)備的接口類型,解決了在插入緩慢時有時無法正確識別外接設(shè)備的接口類型的問題,確保正確識別外接設(shè)備的接口類型,從而保證以正確的接口類型和外接設(shè)備進行交互。
圖2是根據(jù)本公開另一實施例的識別方法的流程圖。所述識別方法包括步驟200-205。
在步驟200中,檢測第一USB Type-C接口和第二USB Type-C接口是否聯(lián)通。
USB Type-C接口具有電源線引腳VBUS、GND和數(shù)據(jù)線引腳D+、D-、以及其他引腳。器件可以利用軟件檢測接口,或采用獨立于系統(tǒng)資源、通過USB數(shù)據(jù)線引腳D+、D-的互動檢測接口。這些功能的分化取決于具體的系統(tǒng)架構(gòu)。例如,通過微控制器或電源管理芯片管理電源設(shè)備,可能更傾向于采用集成電路進行端口檢測和電流選擇。進一步觀察USB Type-C接口可以發(fā)現(xiàn),兩邊的VBUS和GND的引腳較長,中間的引腳D+、D-較短,這樣的作法是為了先供電再通信。然而由于電源引腳和數(shù)據(jù)引腳的長度不同,可能導(dǎo)致電源引腳已經(jīng)連接上,而數(shù)據(jù)引腳還沒有連接,這種引腳插入的間隔時間最長觀察到的間隔時間是200ms。從而,系統(tǒng)檢測接口時,如果中間的數(shù)據(jù)引腳沒有連接,系統(tǒng)在數(shù)據(jù)引腳上檢測不到電信號,從而可能導(dǎo)致系統(tǒng)對接口類型判斷錯誤。
在步驟201中,獲取第二USB Type-C接口的接口類型。
接口類型包括例如:標準下行端口(SDP)、充電下行端口(CDP)和專用充電端口(SCP)。在設(shè)備聯(lián)通后,根據(jù)USB Type-C接口協(xié)議,執(zhí)行第一設(shè)備和第二設(shè)備的通信,例如,第一設(shè)備向第二設(shè)備發(fā)送USB命令,并根據(jù)命令反饋,獲得設(shè)備描述符、配置描述符、接口描述符、端點描述符,通過這些描述符識別出該設(shè)備的接口類型。
在步驟202中,判斷第二USB Type-C接口的接口類型是否為標準下行端口。如果第二USB Type-C接口的接口類型是標準下行端口,執(zhí)行步驟203。
由于非標準下行端口類設(shè)備在插入緩慢的情況下有可能被誤認為標準下行端口類設(shè)備,因此在判斷是標準下行端口類設(shè)備,需要執(zhí)行進一步的模擬操作。
在步驟203中,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作。
在本步驟中,首先模擬使第一設(shè)備的USB Type-C接口和第二設(shè)備的USB Type-C接口斷開,然后模擬第一設(shè)備的USB Type-C接口和第二設(shè)備的USB Type-C接口聯(lián)通。模擬的方式與前述步驟形同,每次模擬的時間間隔超過預(yù)設(shè)時間。例如,最慢的插入時間為200ms,那么模擬的間隔時間超過200ms。
在步驟204中,再次獲取第二USB Type-C接口的接口類型,并作為第一接口類型。
在本步驟中,第一設(shè)備和第二設(shè)備的USB Type-C接口再聯(lián)通后,重復(fù)步驟201中的過程。
在步驟205中,執(zhí)行和第一接口類型匹配的接口功能。
例如,通過標準下行端口和外接設(shè)備的信號通信。通過充電下行端口和專用充電端口給設(shè)備充電,并根據(jù)接口類型確定充電電流的大小、方向。
本公開實施例提供的識別方法,和圖1的實施例相比,增加了獲取步驟和判斷步驟,在第二USB Type-C接口的接口類型為標準下行端口時,才執(zhí)行模擬操作,避免對不可能誤判的接口類型進行模擬操作,從而使該識別方法更具效率。
圖3是根據(jù)本公開實施例的識別裝置的結(jié)構(gòu)圖。該識別裝置30該用于識別和第一設(shè)備連接的第二設(shè)備的接口類型,第一設(shè)備具有第一USB Type-C接口,第二設(shè)備上具有和第一USB Type-C接口配對的第二USB Type-C接口。該識別裝置30應(yīng)用于第一設(shè)備上,包括檢測模塊301、模擬模塊302、第一獲取模塊303和執(zhí)行模塊304。
檢測模塊301用于檢測所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通。
模擬模塊302用于當?shù)谝籙SB Type-C接口和第二USB Type-C接口聯(lián)通時,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作。
第一獲取模塊303用于獲取第二USB Type-C接口的接口類型,并作為第一接口類型。
執(zhí)行模塊304用于執(zhí)行和第一接口類型匹配的接口功能。接口類型包括標準下行端口、充電下行端口和專用充電端口。
圖4是根據(jù)本公開另一實施例的識別裝置的結(jié)構(gòu)圖。該識別裝置40應(yīng)用于具有USB Type-C接口的第一設(shè)備上,包括檢測模塊400、第一獲取模塊401、模擬模塊402、第二獲取模塊403和執(zhí)行模塊404。第一獲取模塊401、模擬模塊402、第二獲取模塊403和圖3的實施例相同,這里就不再贅述。
檢測模塊400用于檢測所述第一USB Type-C接口和所述第二USB Type-C接口是否聯(lián)通??蛇x地,通過檢測第一USB Type-C接口和第二USB Type-C接口的電源線和數(shù)據(jù)線上的電信號確定第一USB Type-C接口和第二USB Type-C接口是否聯(lián)通。
第二獲取模塊401用于獲取第二USB Type-C接口的接口類型作為第二接口類型。
模擬模塊402用于根據(jù)第二獲取模塊401獲取到的第二接口類型,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作。可選地,模擬模塊每次模擬的時間間隔超過預(yù)設(shè)時間。
第一獲取模塊403用于獲取第二USB Type-C接口的接口類型,并作為第一接口類型。
執(zhí)行模塊404用于執(zhí)行和第一接口類型匹配的接口功能。接口類型包括標準下行端口、充電下行端口和專用充電端口。
本公開實施例提供的識別裝置,用于識別外接設(shè)備的接口類型,通過模擬模塊實現(xiàn)至少一次的模擬操作,在模擬操作之后重新識別外接設(shè)備的接口類型,解決了在插入緩慢時錯誤識別外接設(shè)備的接口類型的問題,確保正確識別設(shè)備的接口類型。
本領(lǐng)域的技術(shù)人員可以理解,實施例的裝置和方法是對應(yīng)的,因為在描述裝置的實施例時,以相對簡略的方式完成。
圖5是根據(jù)本公開實施例的一種設(shè)備的結(jié)構(gòu)圖。參考圖5,一種設(shè)備50,包括通過總線連接的至少一個處理器501和存儲器502。存儲器502存儲有各種計算機指令,處理器501從存儲器502中讀取一組指令,執(zhí)行該指令以完成以下的操作:檢測第一USB Type-C接口和第二USB Type-C接口是否聯(lián)通;當?shù)谝籙SB Type-C接口和第二USB Type-C接口聯(lián)通時,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作;獲取第二USB Type-C接口的接口類型,并作為第一接口類型;以及執(zhí)行和第一接口類型匹配的接口功能。
圖6是根據(jù)本公開實施例的用于識別方法的計算機程序產(chǎn)品的結(jié)構(gòu)示意圖。
如圖6所示,本公開實施例的計算機程序產(chǎn)品60,可以包括信號承載介質(zhì)601。信號承載介質(zhì)601為指令載體,可以包括一個或多個指令6011,指令6011在被例如處理器執(zhí)行時,可以完成上述實施例中描述的功能。例如,指令6011被執(zhí)行以完成以下的功能:檢測第一USB Type-C接口和第二USB Type-C接口是否聯(lián)通;當?shù)谝籙SB Type-C接口和第二USB Type-C接口聯(lián)通時,至少模擬一次第一USB Type-C接口和第二USB Type-C接口斷開后再聯(lián)通的操作;獲取第二USB Type-C接口的接口類型,并作為第一接口類型;以及執(zhí)行和第一接口類型匹配的接口功能。
在一些實現(xiàn)中,信號承載介質(zhì)601可以包括計算機可讀介質(zhì)6012,諸如但不限于硬盤驅(qū)動器、壓縮盤(CD)、數(shù)字通用盤(DVD)、數(shù)字帶、存儲器等。在一些實現(xiàn)中,信號承載介質(zhì)601可以包括可記錄介質(zhì)6013,諸如但不限于存儲器、讀/寫(R/W)CD、R/W DVD等。在一些實現(xiàn)中,信號承載介質(zhì)601可以包括通信介質(zhì)6014,諸如但不限于數(shù)字和/或模擬通信介質(zhì)(例如,光纖線纜、波導(dǎo)、有線通信鏈路、無線通信鏈路等)。
本公開實施例的計算機程序產(chǎn)品,表現(xiàn)硬件驅(qū)動層的程序,例如,USB接口驅(qū)動程序、協(xié)議棧驅(qū)動程序。驅(qū)動層的程序通過模擬接口斷開和聯(lián)通的操作,解決了現(xiàn)有技術(shù)中在插入緩慢的情況下可能錯誤識別外接的接口類型的問題。
本公開實施例結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本公開實施例的范圍。
根據(jù)本公開實施例的系統(tǒng)和方法可以部署在單個或多個服務(wù)器上。例如,可以將不同的模塊分別部署在不同的服務(wù)器上,形成專用服務(wù)器。或者,可以在多個服務(wù)器上分布式部署相同的功能單元、或系統(tǒng),以減輕負載壓力。所述服務(wù)器包括但不限于在同一個局域網(wǎng)以及通過Internet連接的多個PC機、PC服務(wù)器、刀片機、超級計算機等。
以上所述僅為本公開實施例的優(yōu)選實施例,并不用于限制本公開實施例,對于本領(lǐng)域技術(shù)人員而言,本公開實施例可以有各種改動和變化。凡在本公開實施例的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本公開實施例的保護范圍之內(nèi)。