Usb otg裝置、電子設(shè)備及實(shí)現(xiàn)otg功能的方法
【專利摘要】本發(fā)明提供一種USB?OTG裝置、電子設(shè)備及實(shí)現(xiàn)OTG功能的方法,該USB?OTG裝置,包括:USB主機(jī)模塊、OTG模塊、USB外設(shè)模塊和相對(duì)于USB主機(jī)模塊、OTG模塊和USB外設(shè)模塊獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊;USB主機(jī)模塊,用于為OTG功能提供USB主機(jī)端的功能支持;USB外設(shè)模塊,用于為OTG功能提供USB外設(shè)端的功能支持;OTG模塊,用于基于USB主機(jī)模塊和USB外設(shè)模塊的功能支持,實(shí)現(xiàn)OTG功能;USB控制器驅(qū)動(dòng)模塊,用于為實(shí)現(xiàn)OTG功能提供控制器驅(qū)動(dòng)。本發(fā)明的技術(shù)方案,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
【專利說明】USB OTG裝置、電子設(shè)備及實(shí)現(xiàn)OTG功能的方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及通信技術(shù),尤其涉及一種USB OTG裝置、電子設(shè)備及實(shí)現(xiàn)OTG功能的方法。
【背景技術(shù)】
[0002]通用串行總線(Universal Serial Bus,簡(jiǎn)稱USB)是一種數(shù)據(jù)交換的通用接口,通用串行總線應(yīng)用者論壇(Universal Serial Bus Implementers Forums,簡(jiǎn)稱USB IF)開發(fā)了 USB OTG (On-The-Go)的規(guī)范,USB OTG規(guī)范是USB2.0規(guī)范的一個(gè)補(bǔ)充,一個(gè)OTG產(chǎn)品是一個(gè)便攜式設(shè)備,使用單一的雙角色插座(Min1-ΑΒ插座或Micro-AB插座,不是其它的USB插座)。支持OTG的設(shè)備和普通USB設(shè)備相連時(shí),支持OTG的設(shè)備作為主機(jī),普通USB設(shè)備作為外設(shè);而兩個(gè)支持OTG的設(shè)備相連時(shí),則通過USB連接線兩端的插頭(A-插頭和B-插頭)來區(qū)分缺省的主機(jī)(A-設(shè)備,與A-插頭連接的支持OTG的設(shè)備)和缺省的外設(shè)(B-設(shè)備,與B-插頭連接的支持OTG的設(shè)備),A-設(shè)備和B-設(shè)備之間還可以通過主機(jī)交換協(xié)議(HostNegotiation Protocol,簡(jiǎn)稱HNP)實(shí)現(xiàn)主機(jī)和外設(shè)的角色切換,OTG協(xié)議允許下層驅(qū)動(dòng)組件在USB主機(jī)和USB外設(shè)角色之間隨意轉(zhuǎn)換,不需要改變電纜物理位置。
[0003]現(xiàn)有技術(shù)一般是將支持OTG的設(shè)備的軟件分為USB主機(jī)棧、OTG驅(qū)動(dòng)程序模塊、USB外設(shè)棧三個(gè)獨(dú)立的大模塊,USB主機(jī)棧、OTG驅(qū)動(dòng)程序模塊、USB外設(shè)棧的所有功能都建立在USB控制器的基礎(chǔ)上,USB控制器指的是硬件控制器,為USB主機(jī)棧、OTG驅(qū)動(dòng)程序模塊、USB外設(shè)棧提供硬件支持,而在不同USB控制器增加OTG功能支持時(shí),則需要對(duì)USB主機(jī)棧中的USB主機(jī)控制器驅(qū)動(dòng)模塊、USB外設(shè)棧中的USB外設(shè)控制器驅(qū)動(dòng)模塊以及OTG驅(qū)動(dòng)模塊分別進(jìn)行修訂。
[0004]然而,現(xiàn)有技術(shù)存在OTG功能的可修改性較小,進(jìn)而增加了在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種USB OTG裝置、電子設(shè)備及實(shí)現(xiàn)OTG功能的方法,用以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0006]本發(fā)明第一個(gè)方面是提供一種USB OTG裝置,包括:通用串行總線USB主機(jī)模塊、OTG模塊、USB外設(shè)模塊和相對(duì)于所述USB主機(jī)模塊、所述OTG模塊和所述USB外設(shè)模塊獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊;
[0007]所述USB主機(jī)模塊,用于為OTG功能提供USB主機(jī)端的功能支持;
[0008]所述USB外設(shè)模塊,用于為OTG功能提供USB外設(shè)端的功能支持;
[0009]所述OTG模塊,用于基于所述USB主機(jī)模塊和所述USB外設(shè)模塊的功能支持,實(shí)現(xiàn)OTG功能;
[0010]所述USB控制器驅(qū)動(dòng)模塊,用于為實(shí)現(xiàn)OTG功能提供控制器驅(qū)動(dòng)。
[0011]本發(fā)明的另一個(gè)方面是提供一種電子設(shè)備,包括如上所述的USB OTG裝置和通用串行總線USB控制器。
[0012]本發(fā)明的又一個(gè)方面是提供一種實(shí)現(xiàn)OTG功能的方法,適用于如上所述的電子設(shè)備,包括:
[0013]根據(jù)通用串行總線USB控制器的配置信息確定在所述USB控制器上實(shí)現(xiàn)OTG功能的配置文件;
[0014]根據(jù)所述配置文件修訂USB控制器驅(qū)動(dòng)模塊。
[0015]本發(fā)明的技術(shù)效果是:本發(fā)明USB OTG模塊包括:USB主機(jī)模塊、OTG模塊、USB外設(shè)模塊和相對(duì)于USB主機(jī)模塊、OTG模塊和USB外設(shè)模塊獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊,其中,USB主機(jī)模塊,用于為OTG功能提供USB主機(jī)端的功能支持;USB外設(shè)模塊,用于為OTG功能提供USB外設(shè)端的功能支持;0TG模塊,用于基于USB主機(jī)模塊和USB外設(shè)模塊的功能支持,實(shí)現(xiàn)OTG功能;USB控制器驅(qū)動(dòng)模塊,用于為實(shí)現(xiàn)OTG功能提供控制器驅(qū)動(dòng),基于本發(fā)明USB OTG裝置的模塊劃分,將USB控制器驅(qū)動(dòng)模塊獨(dú)立設(shè)置,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明提供的USB OTG裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0017]圖2為現(xiàn)有技術(shù)中支持OTG的設(shè)備的驅(qū)動(dòng)程序棧配置示意圖;
[0018]圖3為本發(fā)明提供的USB OTG裝置的一個(gè)實(shí)施例中USB控制器驅(qū)動(dòng)模塊的結(jié)構(gòu)示意圖;
[0019]圖4為本發(fā)明提供的電子裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0020]圖5為本發(fā)明提供的實(shí)現(xiàn)OTG功能的方法的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0022]圖1為本發(fā)明提供的USB OTG裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖1所示,本實(shí)施例的USB OTG裝置100包括:USB主機(jī)模塊110、0TG模塊120、USB外設(shè)模塊130和相對(duì)于USB主機(jī)模塊110、0TG模塊120和USB外設(shè)模塊130獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊140,其中,USB主機(jī)模塊110,用于為OTG功能提供USB主機(jī)端的功能支持;USB外設(shè)模塊130,用于為OTG功能提供USB外設(shè)端的功能支持;0TG模塊120,用于基于USB主機(jī)模塊110和USB外設(shè)模塊130的功能支持,實(shí)現(xiàn)OTG功能;USB控制器驅(qū)動(dòng)模塊140,用于為實(shí)現(xiàn)OTG功能提供控制器驅(qū)動(dòng)。
[0023]進(jìn)一步地,本實(shí)施例的USB OTG裝置100,還包括:0TG設(shè)備應(yīng)用模塊150,USB主機(jī)模塊110和/或USB外設(shè)模塊130,還用于為OTG設(shè)備應(yīng)用模塊150所要實(shí)現(xiàn)的應(yīng)用提供協(xié)議支持。
[0024]具體來說,上述模塊之間的關(guān)系如圖1所示,圖中的帶箭頭的連線表示依賴關(guān)系。
[0025]USB主機(jī)模塊110主要用于為OTG功能提供USB主機(jī)端的功能支持,USB主機(jī)模塊110是USB控制器的上層軟件功能,USB主機(jī)模塊110可以和USB外設(shè)模塊130進(jìn)行通信,并為OTG設(shè)備應(yīng)用模塊150所要實(shí)現(xiàn)的應(yīng)用提供協(xié)議支持,USB主機(jī)模塊110可以包括主機(jī)端的USB外設(shè)驅(qū)動(dòng)和USB核心(USB Core), USB外設(shè)驅(qū)動(dòng)用于控制USB外設(shè)如何與USB主機(jī)通信,USB外設(shè)驅(qū)動(dòng)根據(jù)不同的應(yīng)用有不同的驅(qū)動(dòng),比如USB 口的鼠標(biāo)驅(qū)動(dòng)、鍵盤驅(qū)動(dòng)、音響驅(qū)動(dòng)等,本實(shí)施例實(shí)現(xiàn)的是海量存儲(chǔ)(mass storage)功能的驅(qū)動(dòng),即對(duì)mass storage的支持,主機(jī)端對(duì)不同的USB外設(shè)都有其配套的驅(qū)動(dòng)代碼,USB主機(jī)端的USB外設(shè)驅(qū)動(dòng)就是用于實(shí)現(xiàn)這些代碼;USB Core負(fù)責(zé)USB驅(qū)動(dòng)管理和協(xié)議處理的主要工作,USB核心向上可為USB外設(shè)驅(qū)動(dòng)提供編程接口,向下可為USB主機(jī)控制器驅(qū)動(dòng)提供編程接口,它可以通過全局變量維護(hù)整個(gè)系統(tǒng)的USB外設(shè)信息,從而完成設(shè)備的熱插拔控制和總線數(shù)據(jù)傳輸控制等驅(qū)動(dòng)。
[0026]USB外設(shè)模塊130,用于為OTG功能提供USB外設(shè)端的功能支持,USB外設(shè)也是USB控制器的上層軟件功能,可以和USB主機(jī)模塊110進(jìn)行通信,并為OTG設(shè)備應(yīng)用模塊150所要實(shí)現(xiàn)的應(yīng)用提供協(xié)議支持。
[0027]OTG模塊120也是USB控制器的上層軟件功能,依賴于USB主機(jī)模塊110和USB外設(shè)模塊130,完成主機(jī)和外設(shè)之間的角色切換,實(shí)現(xiàn)兩個(gè)設(shè)備可以互相訪問對(duì)方的flash空間。
[0028]OTG設(shè)備應(yīng)用模塊150中的OTG設(shè)備應(yīng)用指的是對(duì)USB功能的應(yīng)用,本實(shí)施例實(shí)現(xiàn)的是大容量存儲(chǔ),主要進(jìn)行文件的傳遞操作等flash空間操作。
[0029]USB控制器驅(qū)動(dòng)模塊140主要完成USB控制器驅(qū)動(dòng)功能,包括完成電子設(shè)備作為USB主機(jī)的控制器驅(qū)動(dòng)功能、電子設(shè)備作為USB外設(shè)的控制器驅(qū)動(dòng)功能和OTG對(duì)USB控制器的驅(qū)動(dòng)功能。
[0030]具體來說,本實(shí)施例的USB OTG裝置100可以通過一個(gè)USB控制器來實(shí)現(xiàn)嵌入式交換機(jī)和路由器既可以作為USB主機(jī)也可以作為USB外設(shè)的功能,以降低硬件實(shí)現(xiàn)上的復(fù)雜度和設(shè)備成本。
[0031]圖2為現(xiàn)有技術(shù)支持中OTG的設(shè)備的驅(qū)動(dòng)程序棧配置示意圖,如圖2所示,現(xiàn)有技術(shù)一般是將支持OTG的設(shè)備的軟件分為USB主機(jī)棧、OTG驅(qū)動(dòng)程序模塊、USB外設(shè)棧三個(gè)獨(dú)立的大模塊,而在不同USB控制器增加OTG功能支持時(shí),則需要對(duì)USB主機(jī)棧中的USB主機(jī)控制器驅(qū)動(dòng)模塊、USB外設(shè)棧中的USB外設(shè)控制器驅(qū)動(dòng)模塊以及OTG驅(qū)動(dòng)程序模塊分別進(jìn)行修訂,由于USB主機(jī)控制器驅(qū)動(dòng)模塊位于USB主機(jī)棧中,USB外設(shè)控制器驅(qū)動(dòng)模塊位于USB外設(shè)棧中,而USB主機(jī)棧中除USB主機(jī)控制器驅(qū)動(dòng)模塊以外,還包括目標(biāo)外設(shè)主機(jī)類驅(qū)動(dòng)模塊和USB核心模塊;USB外設(shè)棧中除USB外設(shè)控制器驅(qū)動(dòng)模塊以外還包括USB外設(shè)類驅(qū)動(dòng)模塊和USB外設(shè)類接口模塊,USB主機(jī)棧和USB外設(shè)棧中的軟件模塊耦合度較高,當(dāng)對(duì)USB主機(jī)控制器驅(qū)動(dòng)模塊、USB外設(shè)控制器驅(qū)動(dòng)模塊以及OTG驅(qū)動(dòng)模塊進(jìn)行修訂時(shí)會(huì)涉及到和其他軟件模塊的接口對(duì)接及接口調(diào)用,導(dǎo)致OTG功能的可修改性較低,進(jìn)而增加了在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0032]本實(shí)施例通過對(duì)USB OTG裝置100的模塊劃分,將USB控制器驅(qū)動(dòng)模塊140獨(dú)立設(shè)置,在不同USB控制器增加OTG功能支持時(shí),USB主機(jī)模塊110、USB外設(shè)模塊130、0TG模塊120等基礎(chǔ)模塊都不需要做修訂,只需要對(duì)USB控制器驅(qū)動(dòng)模塊140做修訂,避免現(xiàn)有技術(shù)對(duì)USB主機(jī)控制器驅(qū)動(dòng)、USB外設(shè)控制器驅(qū)動(dòng)以及OTG驅(qū)動(dòng)進(jìn)行修訂時(shí)與其他軟件模塊的接口對(duì)接及接口調(diào)用, 可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0033]圖3為本發(fā)明提供的USB OTG裝置的一個(gè)實(shí)施例中USB控制器驅(qū)動(dòng)模塊的結(jié)構(gòu)示意圖,如圖3所示,USB控制器驅(qū)動(dòng)模塊140可以包括:USB主機(jī)控制器驅(qū)動(dòng)單元141、USB外設(shè)控制器驅(qū)動(dòng)單元143和OTG驅(qū)動(dòng)單元142。
[0034]USB主機(jī)控制器驅(qū)動(dòng)模塊140主要指對(duì)USB控制器的軟件驅(qū)動(dòng)層,針對(duì)不同的USB控制器具有不同的驅(qū)動(dòng)軟件,每款不同的USB控制器增加OTG功能支持時(shí),都需要對(duì)其對(duì)應(yīng)USB控制器驅(qū)動(dòng)進(jìn)行相關(guān)修訂。把這個(gè)模塊獨(dú)立設(shè)置是為了增加對(duì)OTG功能支持的可修改性,USB主機(jī)模塊、USB外設(shè)模塊、OTG模塊等基礎(chǔ)模塊都不需要做修訂,只需要對(duì)USB控制器驅(qū)動(dòng)模塊140做修訂。
[0035]具體來說,USB主機(jī)控制器驅(qū)動(dòng)單元141主要控制插入其中的USB外設(shè),需要將USB主機(jī)控制器驅(qū)動(dòng)單元141注冊(cè)到平臺(tái)驅(qū)動(dòng)中,通過平臺(tái)驅(qū)動(dòng)來控制電子設(shè)備作為USB主機(jī)的消息傳遞。USB主機(jī)控制器驅(qū)動(dòng)單元141直接訪問硬件,控制USB主機(jī)和USB外設(shè)間的底層通信。
[0036]USB外設(shè)控制器驅(qū)動(dòng)單元143用于直接訪問硬件,控制USB外設(shè)和USB主機(jī)間的底層通信,向上層提供與硬件相關(guān)操作的回調(diào)函數(shù),是在USB控制器之上的一層與硬件相關(guān)的驅(qū)動(dòng),主要處理和硬件相關(guān)的操作。
[0037]OTG驅(qū)動(dòng)單元142主要實(shí)現(xiàn)對(duì)OTG功能硬件的訪問處理,對(duì)寄存器進(jìn)行直接訪問、讀寫操作,包括命令寄存器、狀態(tài)寄存器、中斷寄存器、設(shè)備地址寄存器、端口寄存器、控制器寄存器、模式寄存器等操作,從而實(shí)現(xiàn)對(duì)USB2.0收發(fā)器宏單元接口 +低引腳數(shù)接口(USB2.0Transceiver Macrocell Interface+low-pin count interface,簡(jiǎn)稱ULPI)PHY芯片的控制;需要實(shí)現(xiàn)OTG收發(fā)器功能的初始化,主從切換、主機(jī)、外設(shè)角色等的設(shè)置主要是通過OTG收發(fā)器來實(shí)現(xiàn);實(shí)現(xiàn)OTG功能注冊(cè)到平臺(tái)驅(qū)動(dòng)中。OTG驅(qū)動(dòng)單元142主要實(shí)現(xiàn)OTG的功能,實(shí)現(xiàn)設(shè)備的USB雙角色功能,即可以進(jìn)行主從角色切換,實(shí)現(xiàn)對(duì)ULPI PHY收發(fā)芯片的硬件初始化及硬件寄存器的訪問操作;0TG標(biāo)準(zhǔn)規(guī)范里面有對(duì)OTG的狀態(tài)變化做了嚴(yán)格規(guī)定,所以O(shè)TG的功能實(shí)現(xiàn)將OTG狀態(tài)機(jī)作為單獨(dú)的子模塊獨(dú)立出來,OTG驅(qū)動(dòng)單元142主要是通過對(duì)OTG控制器驅(qū)動(dòng)的實(shí)現(xiàn)來實(shí)現(xiàn)OTG的HNP、會(huì)話請(qǐng)求協(xié)議(Session RequestProtocol, SRP)等相關(guān)功能。
[0038]本實(shí)施例提供的USB OTG裝置中,相對(duì)于USB主機(jī)模塊、OTG模塊和USB外設(shè)模塊獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊140可以包括:USB主機(jī)控制器驅(qū)動(dòng)單元141、USB外設(shè)控制器驅(qū)動(dòng)單元143和OTG驅(qū)動(dòng)單元142,在不同USB控制器增加OTG功能支持時(shí),USB主機(jī)模塊、USB外設(shè)模塊、OTG模塊等基礎(chǔ)模塊都不需要做修訂,只需要對(duì)USB控制器驅(qū)動(dòng)模塊140做修訂,避免現(xiàn)有技術(shù)對(duì)USB主機(jī)控制器驅(qū)動(dòng)、USB外設(shè)控制器驅(qū)動(dòng)以及OTG驅(qū)動(dòng)進(jìn)行修訂時(shí)與其他軟件模塊的接口對(duì)接及接口調(diào)用,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0039]圖4為本發(fā)明提供的電子設(shè)備的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例的電子設(shè)備200可以包括如圖1所示的USB OTG裝置100和USB控制器300。
[0040]具體來說,USB OTG裝置100和USB控制器300的控制功能,可以使電子設(shè)備200處于正確的工作模式(A-設(shè)備模式:缺省作為USB主機(jī)的工作模式;或^設(shè)備模式:缺省作為USB外設(shè)的工作模式),并保證電子設(shè)備200可以向USB連接線發(fā)送或接收數(shù)據(jù)。
[0041 ] USB控制器300指的是硬件控制器,USB主機(jī)模塊、USB外設(shè)模塊、OTG模塊的所有功能都是建立在USB控制器300的基礎(chǔ)上,通過USB控制器300進(jìn)行消息傳遞。為了在電子設(shè)備200上實(shí)現(xiàn)OTG功能,USB控制器300需要增加一個(gè)外圍PHY收發(fā)芯片,即ULPI PHY收發(fā)芯片。同時(shí)電子設(shè)備200通過USB連接器與外部設(shè)備進(jìn)行通信,作為OTG連接器需要增加一個(gè)ID引腳,電子設(shè)備200通過ID引腳來判斷作為主機(jī)還是外設(shè)。A-插頭中的ID引腳接地,B插頭中的ID引腳浮空。當(dāng)支持OTG設(shè)備檢測(cè)到接地的ID引腳時(shí),即連接著A插頭,表示默認(rèn)的是A設(shè)備(主機(jī));而檢測(cè)到ID引腳浮著的設(shè)備,即連接著B插頭,則認(rèn)為是B-設(shè)備(外設(shè))。系統(tǒng)一旦連接后,支持OTG的設(shè)備的角色還可以通過HNP進(jìn)行更換。
[0042]可選地,本實(shí)施例的電子設(shè)備200可以為交換機(jī)或路由器。
[0043]現(xiàn)有技術(shù)的交換機(jī)、路由器設(shè)備主要支持標(biāo)準(zhǔn)USB接口,只能作為USB主機(jī),可以連接USB外設(shè)。
[0044]本實(shí)施能夠在交換機(jī)和路由器上支持USB OTG功能,將更方便交換機(jī)、路由器的存儲(chǔ)信息的拷入和拷出,能夠與其它支持OTG的產(chǎn)品直接通信,比如手機(jī)、打印機(jī)、相機(jī)、DVD等等,兩臺(tái)交換機(jī)和路由器也可以通過OTG連接線直接連接,且實(shí)現(xiàn)主從角色后,交換機(jī)、路由器設(shè)備可以通過OTG連接線訪問這些設(shè)備的flash空間,其它設(shè)備也可以通過OTG連接線訪問交換機(jī)、路由器設(shè)備的flash空間。
[0045]本實(shí)施例通過USB OTG裝置100和USB控制器300來實(shí)現(xiàn)在交換機(jī)、路由器中支持OTG功能,使交換機(jī)、路由器設(shè)備既可以作為USB主機(jī)也可以作為USB外設(shè),且不需要通過電纜改變就可以實(shí)現(xiàn)主從角色切換功能。
[0046]需要說明的是,本實(shí)施例的電子設(shè)備200除了可以是交換機(jī)、路由器等在現(xiàn)有技術(shù)還不支持OTG功能的嵌入式設(shè)備,還可以是在現(xiàn)有技術(shù)中已經(jīng)支持OTG功能的設(shè)備,該些在現(xiàn)有技術(shù)中已經(jīng)支持OTG功能的設(shè)備也可以模擬本方案采用一個(gè)USB控制器,且將所有和控制器相關(guān)的驅(qū)動(dòng)作為一個(gè)獨(dú)立的模塊,方便控制器更換時(shí)軟件修訂的獨(dú)立性。
[0047]本實(shí)施例的電子設(shè)備200中的USB OTG裝置100可以通過一個(gè)USB控制器來實(shí)現(xiàn)電子設(shè)備200既可以作為USB主機(jī)也可以作為USB外設(shè)的功能,以降低硬件實(shí)現(xiàn)上的復(fù)雜度和設(shè)備成本。
[0048]進(jìn)一步地,本實(shí)施例的電子設(shè)備200還可以包括電源,電源用于電子設(shè)備200作為USB外設(shè)時(shí)為電子設(shè)備200供電。
[0049]更進(jìn)一步地,本實(shí)施例的電子設(shè)備200與普通USB設(shè)備連接時(shí),可以作為USB主機(jī);
[0050]本實(shí)施例的電子設(shè)備200與支持OTG功能的設(shè)備連接時(shí),與支持OTG功能的設(shè)備通過主機(jī)交換協(xié)議實(shí)現(xiàn)USB主機(jī)和USB外設(shè)的角色切換。
[0051]具體來說,在本實(shí)施例的電子設(shè)備200的第一種可能的應(yīng)用場(chǎng)景中,本實(shí)施例的電子設(shè)備200與個(gè)人電腦(Personal Computer,簡(jiǎn)稱PC)連接,電子設(shè)備200作為USB外設(shè),這種應(yīng)用中PC設(shè)備是標(biāo)準(zhǔn)USB主機(jī),電子設(shè)備200被當(dāng)作USB外設(shè),由USB外設(shè)自身提供電源,即USB外設(shè)的CPU系統(tǒng)運(yùn)行起來了,這樣可以在PC上直接操作電子設(shè)備200的flash空間,這種將極大的方便對(duì)flash的操作,例如要升級(jí)該電子設(shè)備200,可以直接將對(duì)應(yīng)的bin文件拷貝到設(shè)備,然后重啟運(yùn)行該電子設(shè)備200,即可達(dá)到升級(jí)的作用。[0052]本實(shí)施例中的電子設(shè)備200作為USB外設(shè)時(shí)通過自帶電源采用自身供電的方式來實(shí)現(xiàn)OTG功能,即設(shè)備本身要先運(yùn)行起來,而不是通過USB主機(jī)來供電。
[0053]可以理解的是,在另一種可能的實(shí)現(xiàn)方式中,本實(shí)施例中的電子設(shè)備200作為USB外設(shè)時(shí)本身不需要供電,而直接從USB主機(jī)端來獲取電源。
[0054]在本實(shí)施例的電子設(shè)備200的第二種可能的應(yīng)用場(chǎng)景中,將本實(shí)施例的電子設(shè)備200與普通USB設(shè)備連接時(shí),電子設(shè)備200可以作為USB主機(jī)。
[0055]在本實(shí)施例的電子設(shè)備200的第三種可能的應(yīng)用場(chǎng)景中,本實(shí)施例的電子設(shè)備200可以進(jìn)行主從角色切換,兩臺(tái)電子設(shè)備200通過支持OTG功能的Micro A到Micro B連接器直接連接,默認(rèn)情況下,連接著Micro A插頭的A-設(shè)備作為USB主機(jī),另一臺(tái)連接著Micro B插頭的B-設(shè)備作為USB外設(shè),A-設(shè)備作為USB主機(jī),所以用戶可以直接操作B-設(shè)備的flash空間;同時(shí)B-設(shè)備即USB外設(shè)也可以通過HNP協(xié)議,申請(qǐng)作為USB主機(jī),而A-設(shè)備則邏輯上變成了 USB外設(shè),這時(shí)用戶可以通過B-設(shè)備操作A-設(shè)備的flash空間。這種應(yīng)用場(chǎng)景可以達(dá)到兩個(gè)電子設(shè)備200互相訪問對(duì)方的flash空間。
[0056]兩個(gè)電子設(shè)備200都是OTG設(shè)備,支持對(duì)稱操作。因?yàn)閮蓚€(gè)OTG設(shè)備互聯(lián),當(dāng)用戶操作一個(gè)OTG設(shè)備,用戶通過使用運(yùn)行在第一個(gè)OTG設(shè)備的應(yīng)用可以訪問或控制第二個(gè)OTG設(shè)備。當(dāng)?shù)谝粋€(gè)OTG設(shè)備正在使用總線,若用戶發(fā)出在第二個(gè)OTG設(shè)備的一個(gè)應(yīng)用,那么第二個(gè)OTG設(shè)備提示用戶是否可以終止當(dāng)前的操作。若用戶允許,那么當(dāng)前操作被終止,且第二個(gè)OTG設(shè)備獲取接口控制權(quán)。
[0057]本實(shí)施例提供的電子設(shè)備200,可以包括如圖1所示的USB OTG裝置100和USB控制器300,在不同USB控制器增加OTG功能支持時(shí),USB主機(jī)模塊、USB外設(shè)模塊、OTG模塊等基礎(chǔ)模塊都不需要做修訂,只需要對(duì)USB控制器驅(qū)動(dòng)模塊做修訂,避免現(xiàn)有技術(shù)對(duì)USB主機(jī)控制器驅(qū)動(dòng)、USB外設(shè)控制器驅(qū)動(dòng)以及OTG驅(qū)動(dòng)進(jìn)行修訂時(shí)與其他軟件模塊的接口對(duì)接及接口調(diào)用,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0058]圖5為本發(fā)明提供的實(shí)現(xiàn)OTG功能的方法的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖5所示,本實(shí)施例的實(shí)現(xiàn)OTG功能的方法,適用于如圖4所示的電子設(shè)備,該方法可以包括:
[0059]S501、根據(jù)USB控制器的配置信息確定在USB控制器上實(shí)現(xiàn)OTG功能的配置文件。
[0060]具體來說,在不同類型電子設(shè)備的USB控制器上實(shí)現(xiàn)OTG功能,驅(qū)動(dòng)所需的配置文件不同,所以在電子設(shè)備上實(shí)現(xiàn)OTG功能之前首先要根據(jù)電子設(shè)備中的USB控制器的配置信息確定在該USB控制器上實(shí)現(xiàn)OTG功能的配置文件。
[0061]S502、根據(jù)配置文件修訂USB控制器驅(qū)動(dòng)模塊。
[0062]本實(shí)施例中的USB控制器驅(qū)動(dòng)模塊為相對(duì)于USB主機(jī)模塊、OTG模塊和USB外設(shè)模塊獨(dú)立設(shè)置,所以在電子設(shè)備上實(shí)現(xiàn)OTG功能時(shí)只需對(duì)電子設(shè)備的USB OTG裝置中的USB控制器驅(qū)動(dòng)模塊進(jìn)行修訂即可完成對(duì)USB控制器的驅(qū)動(dòng),USB主機(jī)模塊、OTG模塊和USB外設(shè)模塊等基礎(chǔ)模塊都不需要做修訂。
[0063]本實(shí)施例提供的實(shí)現(xiàn)OTG功能的方法,通過根據(jù)USB控制器的配置信息確定在USB控制器上實(shí)現(xiàn)OTG功能的配置文件,再根據(jù)配置文件修訂USB控制器驅(qū)動(dòng)模塊,避免現(xiàn)有技術(shù)對(duì)USB主機(jī)控制器驅(qū)動(dòng)、USB外設(shè)控制器驅(qū)動(dòng)以及OTG驅(qū)動(dòng)進(jìn)行修訂時(shí)與其他軟件模塊的接口對(duì)接及接口調(diào)用,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0064]進(jìn)一步地,S502可以包括:根據(jù)配置文件修訂USB控制器驅(qū)動(dòng)模塊中的USB主機(jī)控制器驅(qū)動(dòng)單元、OTG驅(qū)動(dòng)單元和USB外設(shè)控制器驅(qū)動(dòng)單元。
[0065]更進(jìn)一步地,該方法還包括:將電子設(shè)備與普通USB設(shè)備連接,以使電子設(shè)備作為USB主機(jī);或者,
[0066]將電子設(shè)備與支持OTG功能的設(shè)備連接,以使電子設(shè)備與支持OTG功能的設(shè)備通過主機(jī)交換協(xié)議實(shí)現(xiàn)USB主機(jī)和USB外設(shè)的角色切換。
[0067]本實(shí)施例提供的實(shí)現(xiàn)OTG功能的方法,通過根據(jù)USB控制器的配置信息確定在USB控制器上實(shí)現(xiàn)OTG功能的配置文件,再根據(jù)配置文件修訂USB控制器驅(qū)動(dòng)模塊中的USB主機(jī)控制器驅(qū)動(dòng)單元、OTG驅(qū)動(dòng)單元和USB外設(shè)控制器驅(qū)動(dòng)單元,避免現(xiàn)有技術(shù)對(duì)USB主機(jī)控制器驅(qū)動(dòng)、USB外設(shè)控制器驅(qū)動(dòng)以及OTG驅(qū)動(dòng)進(jìn)行修訂時(shí)與其他軟件模塊的接口對(duì)接及接口調(diào)用,可以增加OTG功能的可修改性,降低在不同USB控制器上實(shí)現(xiàn)OTG功能的復(fù)雜度。
[0068]需要說明的是,上述各實(shí)施例對(duì)應(yīng)的結(jié)構(gòu)示意圖僅為一種示意,各部分或模塊的連接關(guān)系不限于圖中示出的形式,可以以實(shí)際應(yīng)用中的情況為準(zhǔn)。
[0069]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0070]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0071]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0072]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0073]本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0074]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種USB OTG裝置,其特征在于,包括:通用串行總線USB主機(jī)模塊、OTG模塊、USB外設(shè)模塊和相對(duì)于所述USB主機(jī)模塊、所述OTG模塊和所述USB外設(shè)模塊獨(dú)立設(shè)置的USB控制器驅(qū)動(dòng)模塊; 所述USB主機(jī)模塊,用于為OTG功能提供USB主機(jī)端的功能支持; 所述USB外設(shè)模塊,用于為OTG功能提供USB外設(shè)端的功能支持; 所述OTG模塊,用于基于所述USB主機(jī)模塊和所述USB外設(shè)模塊的功能支持,實(shí)現(xiàn)OTG功能; 所述USB控制器驅(qū)動(dòng)模塊,用于為實(shí)現(xiàn)OTG功能提供控制器驅(qū)動(dòng)。
2.根據(jù)權(quán)利要求1所述的USBOTG裝置,其特征在于,所述USB控制器驅(qū)動(dòng)模塊,包括:USB主機(jī)控制器驅(qū)動(dòng)單元、USB外設(shè)控制器驅(qū)動(dòng)單元和OTG驅(qū)動(dòng)單元; 所述USB主機(jī)控制器驅(qū)動(dòng)單元,用于為實(shí)現(xiàn)OTG功能中的USB主機(jī)端功能提供控制器驅(qū)動(dòng); 所述USB外設(shè)控制器驅(qū)動(dòng)單元,用于為實(shí)現(xiàn)OTG功能中的USB外設(shè)端功能提供控制器驅(qū)動(dòng); 所述OTG驅(qū)動(dòng)單元,用于為實(shí)現(xiàn)OTG功能中除所述USB主機(jī)端功能和USB外設(shè)端功能之外的功能提供控制器驅(qū)動(dòng)。
3.根據(jù)權(quán)利要求1所述的USBOTG裝置,其特征在于,所述USB OTG裝置,還包括:0TG設(shè)備應(yīng)用模塊;. 所述USB主機(jī)模塊和/或所述USB外設(shè)模塊,還用于為所述OTG設(shè)備應(yīng)用模塊所要實(shí)現(xiàn)的應(yīng)用提供協(xié)議支持。
4.一種電子設(shè)備,其特征在于,包括如權(quán)利要求1-3中任一項(xiàng)所述的USB OTG裝置和通用串行總線USB控制器。
5.根據(jù)權(quán)利要求4所述的電子設(shè)備,其特征在于,所述電子設(shè)備為交換機(jī)或路由器。
6.根據(jù)權(quán)利要求4或5所述的電子設(shè)備,其特征在于,所述電子設(shè)備還包括電源,所述電源用于所述電子設(shè)備作為USB外設(shè)時(shí)為所述電子設(shè)備供電。
7.根據(jù)權(quán)利要求6所述的電子設(shè)備,其特征在于,所述電子設(shè)備與普通USB設(shè)備連接時(shí),作為USB主機(jī); 所述電子設(shè)備與支持OTG功能的設(shè)備連接時(shí),與所述支持OTG功能的設(shè)備通過主機(jī)交換協(xié)議實(shí)現(xiàn)USB主機(jī)和USB外設(shè)的角色切換。
8.一種實(shí)現(xiàn)OTG功能的方法,適用于如權(quán)利要求4-7任一項(xiàng)所述的電子設(shè)備,其特征在于,包括: 根據(jù)通用串行總線USB控制器的配置信息確定在所述USB控制器上實(shí)現(xiàn)OTG功能的配置文件; 根據(jù)所述配置文件修訂USB控制器驅(qū)動(dòng)模塊。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述根據(jù)所述配置文件修訂USB控制器驅(qū)動(dòng)模塊,包括: 根據(jù)所述配置文件修訂所述USB控制器驅(qū)動(dòng)模塊中的USB主機(jī)控制器驅(qū)動(dòng)單元、OTG驅(qū)動(dòng)單元和USB外設(shè)控制器驅(qū)動(dòng)單元。
10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于,還包括:將所述電子設(shè)備與普通USB設(shè)備連接,以使所述電子設(shè)備作為USB主機(jī);或者, 將所述電子設(shè)備與支持OTG功能的設(shè)備連接,以使所述電子設(shè)備與所述支持OTG功能的設(shè)備通過主機(jī)交換協(xié)議實(shí)現(xiàn)US B主機(jī)和USB外設(shè)的角色切換。
【文檔編號(hào)】G06F13/40GK103473202SQ201310396425
【公開日】2013年12月25日 申請(qǐng)日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】林雙鳳 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司