專利名稱:USB便攜式(On-The-Go)控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大致關(guān)于通用序列總線(Universal Serial Bus,USB)控制器裝置及方法,尤指實行便攜式(On-The-GO,OTG)功能性。
背景技術(shù):
通用序列總線最初發(fā)展于1995年用來定義外部擴充的總線,該總線促進附加的外設(shè)裝置至計算機系統(tǒng)的連接。該USB技術(shù)是經(jīng)由個人計算機(Personal computer,PC)主機控制器(host controller)硬件與軟件以及外設(shè)親和性主從式協(xié)議來實行并實現(xiàn)堅固的連接與纜線裝配。USB系統(tǒng)可透過多端口集線器擴充。
在USB系統(tǒng)中,該系統(tǒng)軟件的角色經(jīng)由隱藏硬件實行細節(jié)對所有應(yīng)用程序的軟件提供輸入/輸出架構(gòu)的一致性的觀點。特別是,該系統(tǒng)軟件管理接口設(shè)備的動態(tài)附裝與移除并與該接口設(shè)備通訊以找出其身份(identity)。在執(zhí)行期間,該主機開始特定的接口設(shè)備的異動(transaction),而各外設(shè)接收其異動并相應(yīng)地響應(yīng)。
將集線器結(jié)合于系統(tǒng)以提供額外的連接于USB的接口設(shè)備,并對附裝裝置提供經(jīng)管理的電源。該接口設(shè)備為從屬設(shè)備(slave),其必須對從主機送出的請求異動做出反應(yīng)。此種請求異動包括關(guān)于該裝置及其配置的詳細信息。
盡管這些功能及通訊協(xié)議已實行于USB1.1規(guī)格,然此技術(shù)仍持續(xù)改良以提供更高效能的接口。圖1例示實例USB 2.0系統(tǒng),該系統(tǒng)包含主機控制器100、數(shù)個USB裝置115、120、125、130、以及兩個集線器105、110。在圖1的系統(tǒng)中,采用該集線器105、110是用以增加連接,但在其它USB 2.0系統(tǒng)中,該USB裝置可直接連接至該主機控制器100。
如以上所提,USB 2.0提供較高性能的接口,且速度改良可能達到40倍。此外,如由圖1明顯可知,USB 2.0系對USB 1.1回溯兼容(backward compatible)的,因為USB 2.0允許連接的USB 1.1裝置120、125、130系由相同的主機控制器110所驅(qū)動。甚至可使用USB1.1集線器110。
如圖1所示,可直接連接USB 1.1裝置120至USB 2.0集線器105。此外,亦可直接連接該USB 1.1裝置120至主機控制器100。這使得USB 2.0主機控制器與集線器的能力依不同裝置的基礎(chǔ)上而達成較高以及較低的傳輸速度成為可能。
請看圖2所例示的USB 2.0系統(tǒng)的該系統(tǒng)的軟件與硬件。該系統(tǒng)組件如圖中所示可經(jīng)由定義數(shù)層而階層式地井然有序的排列。
在最上層中,客戶端驅(qū)動程序軟件200執(zhí)行于該主機PC上并對應(yīng)于特定的USB裝置230。該客戶端軟件通常是操作系統(tǒng)的部分或隨同該裝置所提供者。
該USB驅(qū)動程序205為系統(tǒng)軟件總線驅(qū)動程序,其提取(abstrart)該特定主機控制器驅(qū)動程序210、220的細節(jié)以用于特定的操作系統(tǒng)。該主機控制器驅(qū)動程序210、220在特定的硬件215、225、230與該USB驅(qū)動程序205之間提供軟件層用以提供驅(qū)動-硬件的接口。
盡管到目前為止所討論的諸層都是以軟件實行的,然該最上層的硬件組件層包括該主機控制器215、225。這些控制器是連接至該執(zhí)行終端使用者的功能的USB裝置230。
由圖明顯可知有一個主機控制器225,該主機控制器225是加強型主機控制器(EHC)以用于高速度USB2.0的功能性。此主機控制器以符合USB 2.0的加強型主機控制器接口(Enhanced Host ControllerInterface,EHCI)的規(guī)格來運作。在軟件端上,主機控制器225具有相關(guān)聯(lián)的特定的主機控制器驅(qū)動程序(Enhanced Host ControllerDriver,EHCD)220。
此外,有主機控制器215用以全速以及低速運作。該通用主機控制器接口(Universal Host Controller Interface,UHCI)或開放主機控制器接口(Open Host Controller Interface,OHCI)是應(yīng)用于通用或開放主機控制器(UHC/OHC)215的兩個工業(yè)標準以提供USB 1.1主機控制器接口。該主機控制器215于最低的軟件層中已指定通用/開放主機控制器驅(qū)動程序(UHCD/OHCD)210。
因此,符合USB 2.0的主機控制器系統(tǒng)包含必須符合該EHCI規(guī)格的驅(qū)動程序軟件以及主機控制器硬件。盡管此規(guī)格定義寄存器等級(register-level)接口與相關(guān)聯(lián)的常駐型存儲器(memory-resident)數(shù)據(jù)結(jié)構(gòu),但其不定義也不描述建構(gòu)符合規(guī)格的主機控制器所需的硬件架構(gòu)。
請參考圖3,所繪制的是常見的主機板布局的硬件組件。在主機板上的基本組件可包括中央處理器單元(Central Processing Unit,CPU)300、北橋(northbridge)305、南橋(southbridge)310、以及系統(tǒng)存儲器315。該北橋305通常為在核心邏輯芯片組中的單一芯片,該北橋連接該處理器300至該系統(tǒng)存儲器315以及繪圖加速連接端口(Accelerated Graphic Port,AGP)與外設(shè)組件接口(PeripheralComponent Interface,PCI)總線。常用于個人計算機中的PCI總線系用以提供介于處理器與如影像卡、聲卡、網(wǎng)絡(luò)適配卡以及調(diào)制解調(diào)器的外設(shè)裝置之間的數(shù)據(jù)信道。該AGP總線是高速圖形擴充總線,其直接連接顯示配接器與系統(tǒng)存儲器315。AGP的運作與該PCI總線無關(guān)。要注意的是,其它主機板布局存在著不含北橋于其中,或具有北橋卻沒有AGP或PCI的選擇。
南橋310通常是在系統(tǒng)核心邏輯芯片組中的芯片,其控制整合驅(qū)動電子接口(Integrated Drive Electronics,IDE)或加強的整合驅(qū)動電子接口(Enhanced IDE,EIDE)總線、USB總線,南橋提供隨插即用支持、控制PCI-ISA(工業(yè)標準架構(gòu))橋接器、管理鍵盤/鼠標控制器、提供電源管理特征、以及控制其它接口設(shè)備。
USB之功能性通??捎谀蠘蜓b置或其它輔助芯片中實行,而可成為個人計算機之芯片組的一部份。如上所述,此已內(nèi)建于南橋或輔助芯片中的功能性提供了普及的接口以在計算機與接口設(shè)備之間交換數(shù)據(jù)。
為了讓低功率裝置具有有限的主機能力,已草擬USB 2.0規(guī)格的便攜式(On-The-Go)附錄。該附錄定義兩種通訊協(xié)議對話請求協(xié)議(Session Request Protocol,SRP),其乃讓外設(shè)裝置要求主機打開USB電源,以及主機協(xié)商協(xié)議(Host Negotiation Protocol,HNP),其乃讓外設(shè)裝置成為USB主機。因此,USB 2.0規(guī)格的附錄允許可攜帶裝置扮演有限USB主機的角色,而不會對支持所有USB功能的個人計算機造成負擔。
除此之外,該OTG附錄還指定雙重角色(dual-role)裝置,該裝置可如同接口設(shè)備般以全速(以及選擇性地以高速)運作,且可如同主機般進一步地以全速(以及選擇性地以低速與高速)運作。此外,A裝置在對話開始時指定為主機。在某些條件下,A裝置將釋放主機的角色至雙重角色的B裝置。B裝置在對話開始時為接口設(shè)備。若該裝置為雙重角色,則可從該A裝置授予(grant)主機的角色給該裝置。
以上所提的兩種通訊協(xié)議,SRP及HNP,系經(jīng)由狀態(tài)圖說明于OTG附錄。這些狀態(tài)圖定義多個OTG狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)換(transitione)發(fā)生的諸項條件。然而,實行狀態(tài)機以符合說明于OTG附錄中的狀態(tài)圖一般發(fā)現(xiàn)系相當復雜。特別是實行該狀態(tài)機可能需要對提供傳統(tǒng)的USB功能性的電路做修改。這會導致電路研發(fā)以及制造成本的增加。
發(fā)明內(nèi)容
提供一種改良的USB控制器技術(shù)用以實行OTG功能性,其可以實現(xiàn)降低研發(fā)與制造成本。
在一個實施例中,提供具有OTG功能性的USB控制器裝置。該USB控制器裝置包含具有符合EHCI的主機控制器的主機控制器單元,該主機控制器適于實行主機功能性,而在至少一個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出。該USB控制器裝置進一步包含適于實行OTG狀態(tài)機以控制該主機控制單元的運作的OTG控制單元。該OTG控制單元適于將該OTG狀態(tài)機部分以硬件實行且部分以軟件實行。
在另一實施例中,提供具有OTG功能性的USB控制器裝置。該USB控制器裝置包含具有符合EHCI的主機控制器的主機控制單元,該主機控制器適于實行主機功能性,而對至少一個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出。該USB控制器裝置進一步包含OTG控制單元,該OTG控制單元適于控制該主機控制單元的運作。該OTG控制單元包含OTG控制寄存器其保留控制信息以控制該OTG控制單元的運作,以及OTG狀態(tài)寄存器其保留該OTG控制單元的狀態(tài)信息。該OTG控制及狀態(tài)寄存器可由軟件訪問的。
根據(jù)進一步的實施例,USB控制器裝置包含具有符合EHCI的主機控制器的主機控制單元,該主機控制器適于實行主機功能性,而對至少一個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出。該USB控制器裝置進一步包含裝置控制單元,該裝置控制單元適于實行裝置功能,而對至少一個USB主機裝置進行數(shù)據(jù)輸入與/或輸出。此外,該USB控制器裝置包含端口多任務(wù)器(port multiplexer),該端口多任務(wù)器適于指派實體端口至該主機控制單元或該裝置控制單元,以及適于實行OTG功能性的OTG控制單元。該OTG控制單元包含于該端口多任務(wù)器中。
在進一步的實施例中,提出一種儲存指令的計算機可讀取儲存媒體,當在處理器上執(zhí)行該指令時,經(jīng)由實行至少部份的OTG狀態(tài)機而導致處理器驅(qū)動具有OTG功能性的USB控制器裝置,以控制符合EHCI的主機控制器的運作。
根據(jù)另一實施例,提出一種儲存指令的計算機可讀取儲存媒體,當在處理器上執(zhí)行該指令時,經(jīng)由訪問USB控制器裝置的OTG控制及狀態(tài)寄存器,而導致處理器驅(qū)動具有OTG功能性的USB控制器裝置。該OTG控制及狀態(tài)寄存器保留適合用以實行該OTG功能性的OTG控制與狀態(tài)信息。
此外,具體實施例提供一種提供OTG功能性于USB控制器裝置的方法,該USB控制器裝置具有OTG控制寄存器及OTG狀態(tài)寄存器,兩者皆可由軟件驅(qū)動程序訪問。該方法包含下列步驟經(jīng)由軟件驅(qū)動程序讀取該OTG狀態(tài)寄存器以響應(yīng)從該USB控制器裝置所接收到的中斷訊號、以及經(jīng)由軟件驅(qū)動程序?qū)懭朐揙TG控制寄存器以迫使該USB控制器裝置改變其OTG狀態(tài)。
所附圖式是納入并形成說明書的一部份用以解釋本發(fā)明主旨的目的。圖式并非用來解釋作為限制本發(fā)明而僅作為例示和說明本發(fā)明如何達成與使用的實例。從上文及本發(fā)明之更特定的描述,更進一步的特征與優(yōu)點將會更明顯,如附圖中所例示者,其中圖1顯示符合USB 2.0的系統(tǒng)的實例;
圖2顯示于圖1的系統(tǒng)中的硬件與軟件組件層;圖3顯示常見的主機板布局;圖4為根據(jù)實施例顯示具有OTG功能性的USB控制器裝置的組件的方塊圖;圖5為根據(jù)實施例顯示圖4部分的配置的主機控制器的組件的方塊圖;圖6為顯示根據(jù)實施例的OTG控制器;以及圖7為根據(jù)實施例顯示如何能完成軟件控制的狀態(tài)轉(zhuǎn)換的流程圖。
主要組件符號說明100 主機控制器 105、110 集線器115、120、125、130USB裝置200 客戶端驅(qū)動程序軟件205 USB驅(qū)動程序210、220主機控制器驅(qū)動程序215、225主機控制器(硬件)230 USB裝置(硬件)300 處理器305北橋310 南橋 315存儲器400 USB控制器裝置 405橋接器410 裝置控制單元415 主機控制單元(主機控制器)420 端口多任務(wù)控制器 425OTG控制器500 主機控制器505 輔助主機控制器(OHC0)510 輔助主機控制器(OHC1)515 端口路由器 600OTG狀態(tài)寄存器605 OTG控制寄存器 610OTG定時器寄存器615 OTG中斷寄存器 620OTG中斷致能寄存器700、705、710、715、720、725 步驟
具體實施例方式
本發(fā)明的例示的實施例將參考圖式來做說明,其中類似的組件與結(jié)構(gòu)是由類似的附圖標記來表示。
請參考圖標,特別是圖4,根據(jù)實施例之USB控制器裝置400包含主機控制單元415、裝置控制單元410、橋接器405、以及端口多任務(wù)控制器420。本實施例之端口多任務(wù)控制器420包含OTG控制器425,該OTG控制器425對USB控制器裝置400實行OTG功能性。以下說明將會明了增加OTG控制器425至該端口多任務(wù)控制器420允許以最小的努力完成OTG功能性,因為僅用些許額外的硬件就可用標準或現(xiàn)成(off-the-shelf)的電路來實行主機與裝置控制單元415、410。
在本實施例中,主機控制單元415系EHC/OHC的組合,且該端口多任務(wù)控制器420控制該主機控制單元415與該裝置控制單元410至共享的實體端口之訪問。以下將做更詳細的說明,該主機控制單元415包含端口路由(port route)設(shè)備用以此目的。該裝置控制單元410系經(jīng)由裝置UTMI(USB 2.0傳送接收器宏組件接口(TransceiverMacrocell Interface))接口連接至該主機控制單元415。
橋接器405可適用于廣泛的應(yīng)用程序而且又可不受限于本實施例之USB 2.0子系統(tǒng)。橋接器405的主要任務(wù)是用來轉(zhuǎn)換總線協(xié)議。除此之外,該橋接器405可當作仲裁器(arbiter)或譯碼器(decoder)以映像一個協(xié)議之多個端口至另一協(xié)議之一個端口。在本實施例中,該多個端口(multiple ports)可以是具有叢發(fā)(burst)與分割運作的非封包化(non-packetized)總線端口,然而其它端口可嚴格地封包化。
該裝置控制單元410系用來實行裝置功能性以對USB主機裝置進行數(shù)據(jù)輸入與/或輸出。該裝置控制單元410可支持多個雙向邏輯端點。
該主機控制單元415系用來實行主機功能性以對一個或多個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出。將于以下說明討論,該主機控制單元415可支持兩個(或更多個)USB端口、一個EHC以及一個OHC輔助控制器。
請參考圖5,根據(jù)實施例顯示該主機控制器415之主要組件。一般而言,該主機控制器415、500包含三個主要組件加強型主機控制器(EHC)225、一個或多個輔助主機控制器215、以及端口路由器515。
在本實施例之加強型主機控制器單元215中,有兩個符合OHCI之主機控制器,OHC0 505-及OHC1 510。這些控制器處理所有符合USB 1.1的流量且可包含舊標準(legacy)之鍵盤仿真以用于無法感知USB(non-USB anare)的環(huán)境。
端口路由器515指派實體端口接口給其個別的擁有者。若USB 2.0感知驅(qū)動程序系存在于系統(tǒng)中,其將指派端口給任一輔助主機控制器505、510以用于低速與全速的裝置及集線器(USB 1.1流量)或指派給該EHC 225以用于高速裝置與集線器。
亦即,示于圖5中的USB 2.0主機控制器符合EHCI規(guī)格且允許使用存在的OHCI USB 1.1主機控制器以所需最小的改變以與該端口路由器區(qū)塊515介接(interface),而非USB 1.1實體裝置。
圖5的符合USB 2.0之主機控制器可定義作為硬件架構(gòu)以實行符合EHCI的主機控制器以整合于南橋310中。該主機控制器于是存在于USB-2模擬輸入/輸出端子(pin)以及連結(jié)接口模塊之間用以介接朝向系統(tǒng)存儲器之向上傳輸(upstream),例如若有一北橋存在于系統(tǒng)中,則介接至北橋。
如圖5所示,該端口路由器515具有附加的接口以連接至該裝置控制單元410及該端口多任務(wù)控制器420(其在本實施例中包含OTG控制器425)。連接到該裝置控制器的接口系前述的UTMI接口。連接到該端口多任務(wù)控制器的接口系控制接口以用于主機/裝置的切換。
回到參考圖4,在本實施例中,可以是該端口多任務(wù)控制器之基本功能以指派共享的實體端口至該主機控制單元415或該裝置控制單元410。在本實施例中,此指派工作系經(jīng)由響應(yīng)該端口多任務(wù)控制器420所收到的軟件指令而完成。
為了達成其功能性,本實施例之該端口多任務(wù)控制器420包含如能力寄存器及多任務(wù)控制寄存器之軟件可訪問寄存器??蓮奶囟ǖ募拇嫫髯侄谓?jīng)由軟件讀取數(shù)據(jù)而訪問上述之兩種寄存器,且該兩種寄存器寫入數(shù)據(jù)至該字段。然而,請注意,至少某些字段可以是只讀字段。
在端口多任務(wù)控制器能力寄存器中,可以有寄存器字段以儲存自動拉起致能信息(pull-up enable information),當指派端口至裝置控制單元410時,該自動拉起致能信息可用來控制如何激活該USB控制器裝置之拉起寄存器。該自動拉起致能信息可指示是否軟件需要激活該拉起(pull-up)或是否一旦在USB端口之電壓系在有效的電壓范圍內(nèi)就激活該拉起。
在該端口多任務(wù)控制器能力寄存器中可以有進一步的寄存器字段以儲存過流極性(overcurrent polarities)以及有關(guān)于過流處理之信息。例如,可儲存信息用以控制對某些狀態(tài)之過流報告系如何處理。此外,能力寄存器可保留在端口電源極性上之信息及保留用于控制從主機控制器之端口電源控制信息系如何映像之處理。
該端口多任務(wù)控制器420之多任務(wù)控制寄存器可包括指示是否在USB端口上的電壓系在有效范圍內(nèi)(例如高于4.4伏特)之寄存器字段;指示是否拉起系停用或啟用之拉起致能信息;以及若有任何端口的話,指示指派端口至哪一個控制單元之端口多任務(wù)控制信息。
如上所述,該OTG協(xié)議的支持系實施于本實施例中作為該端口多任務(wù)控制器420的部分。這允許使用存在或現(xiàn)成的單元來實施該控制器410、415。此外,本實施例之OTG控制單元425允許軟件來實施指定于OTG的附錄中的OTG狀態(tài)機之部分。為了讓USB軟件驅(qū)動程序來實施OTG狀態(tài)機的部分,該OTG控制單元425可提供狀態(tài)及控制設(shè)備,其將參考圖6做更詳盡的說明。
如由圖6明顯可知,該OTG控制單元425具有可經(jīng)由軟件以只讀模式或以寫入訪問模式訪問的多個寄存器600-620。如圖6所示,該寄存器包括OTG狀態(tài)寄存器600、OTG控制寄存器605、OTG定時器寄存器610、OTG中斷寄存器615、以及OTG中斷致能寄存器620。
首先討論可經(jīng)由軟件以只讀模式訪問的OTG狀態(tài)寄存器600,該寄存器保留該OTG控制單元425之狀態(tài)信息于多個寄存器字段中。
在第一個OTG狀態(tài)寄存器字段中,可儲存定時器到期信息。當OTG定時器到期時,此信息可經(jīng)由硬件控制以設(shè)定一位。當定時器目前正計數(shù)中或在停止狀態(tài)時,可取消(deassert)該位。
在進一步的寄存器字段中,OTG狀態(tài)寄存器600可保留端口暫停(susponsion)信息,該端口暫停信息指示指派至主機控制單元415或指派至該裝置控制單元410之端口是否暫停或?qū)⒈粋€別的控制單元所暫停。詳而言之,當該端口系指派至主機,如果該個別的控制器已暫停該端口,則可設(shè)定該端口暫停字段位。當該端口系指派至裝置時,如果該控制器已偵測到暫停的狀況于總線上,則設(shè)定該位。
OTG狀態(tài)寄存器600之另一個寄存器字段可保留端口連接信息,該端口連接信息指示端口指派至主機控制單元415或裝置控制單元410。詳而言之,當該端口連接至主機時,如果該適合的主機控制器已建立連接至遠程裝置,則設(shè)定該寄存器字段位。當該端口指派至裝置時,如果該裝置控制器已由遠程主機聯(lián)系,則設(shè)定該位。
要注意的是,雖然此寄存器字段可經(jīng)由軟件以只讀模式訪問,但該端口連接寄存器字段位可在任何時間由軟件覆寫(overwrite)。為了達成此目的,該OTG控制寄存器605可包括(可寫入的)寄存器字段,該寄存器字段可用來覆寫該OTG狀態(tài)寄存器之端口連接寄存器字段的值。以下將會做更詳盡的描述。
在OTG狀態(tài)寄存器600中可有進一步的寄存器字段以提供狀態(tài)信息于該OTC控制單元425。例如,可有寄存器字段其儲存全速(FullSpeed,F(xiàn)S)輸出致能信息、端口速度信息、以及指示是否達到某種線狀態(tài)或電壓值的信息。
對于OTG控制寄存器605,其保留控制信息以控制該OTG控制單元425之運作,可又有數(shù)個寄存器字段。例如,可有保留定時器計數(shù)條件信息以及控制信息之寄存器字段,該信息有關(guān)于端口是否被施加電力、是否被指派至某些控制單元、或者是否自動或軟件所控制的拉起被致能。
要注意的是,OTG控制寄存器605的一些寄存器字段可以從以上討論的端口多任務(wù)控制器寄存器以別名命名(alias),以促進該OTG技術(shù)之硬件實施以及軟件控制。
OTG控制寄存器605可進一步包含寫入端口連接寄存器字段其保留寫入端口連接信息。
如上所述,此寄存器字段可用來覆寫該OTG狀態(tài)寄存器600之端口連接寄存器字段的值。亦即,軟件可寫至OTG控制寄存器605之寫入端口連接寄存器字段以判定(assert)或取消OTG狀態(tài)寄存器600之個別寄存器字段位。即使該OTG狀態(tài)寄存器600系只讀寄存器,此功能性允許經(jīng)由軟件改變端口連接狀態(tài)。
詳而言之,當該端口指派至主機時,若端口為EHC所擁有且成功地使其可高速度(High Speed,HS)操作,則判定該端口連接狀態(tài)寄存器字段位。此外,當該端口指派至主機時,如果OHC正好已偵測到連接,則可判定該狀態(tài)寄存器位。當該端口指派至裝置時,如果在USB偵測到下行行為(downstream actirity)時,則判定該狀態(tài)寄存器位。當該端口指派至主機時,如果該端口為EHC所擁有且正好已偵測到斷線,則取消該狀態(tài)寄存器位。類似地,如果OHC正好已偵測到斷線,則取消該位。此外,每當該USB端口之電壓跌落到低于0.8伏特時,則可取消該位。所有的這些功能性可在硬件控制下達成。
OTG控制寄存器605之寫入端口連接寄存器字段增加由軟件改變狀態(tài)位的可能性。這增加OTG控制功能性之彈性,其允許軟件驅(qū)動程序迫使USB控制裝置進入到特定的端口連接狀態(tài)。
請返回參考圖6,OTG控制單元425可包含更多的寄存器。例如,該OTG定時器寄存器610可具有寄存器字段以儲存目前定時器值(其可以是只讀),以及預載值以用以倒數(shù)計時之預載(preload)。該OTG中斷寄存器615可儲存信息于其字段中以指示是否該定時器已到期、端口暫?;蜻B接已改變、偵測到接收行為、已改變端口速度、偵測到HS斷線、已改變線狀態(tài)、或滿足某種電壓范圍。該OTG中斷致能寄存器620可儲存中斷致能信息于其寄存器字段中以指示全域(global)中斷機制是否致能或用以儲存于OTG中斷寄存器615的信息之中斷是否致能。
由上述的各種實施例的說明,提供了USB控制器裝置技術(shù)以允許由狀態(tài)機控制組件的方式來實行OTG功能性,該狀態(tài)機可部分于硬件及部分于軟件實施。為了此種目的,可透過OTG狀態(tài)與控制寄存器600、605(以及可選擇其它OTG寄存器)傳遞控制與狀態(tài)信息于執(zhí)行軟件驅(qū)動程序之處理器與OTG控制單元425之間。該控制寄存器位控制內(nèi)部與外部的切換,且該狀態(tài)寄存器位指示從OTG控制單元425來之相關(guān)訊號的狀態(tài)。
在實施例中,該OTG控制寄存器605具有兩個地址。寫至一個地址系設(shè)定所選定位,而寫至另一個地址系清除該選定的位。此架構(gòu)提供與USB控制器裝置之其它組件的最大兼容性。
此外,寄存器別名命名可用來達成盡可能與可選擇系統(tǒng)配置(configuration)有關(guān)的彈性。例如,可選定具有靜態(tài)端口指派之配置,如僅提供裝置功能性。在此例子中,基本輸入輸出系統(tǒng)(Basic InputOutput System,BIOS)于是在計算機系統(tǒng)激活時設(shè)定該端口多任務(wù)器。只要該系統(tǒng)激活了,則該寄存器內(nèi)容永久無法改變。然而,若選擇另一配置其使用OTG功能性,則USB端口取決于使用者的要求,而作為裝置端口或作為主機端口且可在任何時間改變。端口多任務(wù)器于是為OTG驅(qū)動程序所用。因此,寄存器別名命名允許BIOS訪問與OTG驅(qū)動程序訪問亦在寄存器層次被分離。這使得BIOS可在不了解OTG驅(qū)動程序的情況下作用成為可能。
在實施例中,USB控制器裝置可支持下列的USB設(shè)定(i)至少一個主機端口與一個外設(shè)裝置端口,(ii)兩個或更多個主機端口,(iii)一個雙角色的裝置端口與至少一個附加的主機端口。該雙角色的裝置端口亦可用來作為能SRP(SRP capable)外設(shè)裝置端口。
當設(shè)定本實施例之USB控制器裝置以具有除了一個雙角色的裝置端口外之一個專用的USB主機端口時,軟件驅(qū)動程序可維護與主機控制器狀態(tài)機分離之OTG狀態(tài)機。
如上所述,實施例系提供以部分于硬件及部分于軟件來實施OTG狀態(tài)機。這可經(jīng)由實施一些狀態(tài)于硬件以及其它狀態(tài)于軟件來達成。例如,以雙角色裝置狀態(tài)機為例,除了a_suspend、a_peripheral、以及b_wait_action狀態(tài)外,該軟件驅(qū)動程序可實施所有的狀態(tài)。這三種狀態(tài)于是可實施于硬件。此外,經(jīng)由實施OTG狀態(tài)機所指定之某些但非所有的狀態(tài)轉(zhuǎn)變于軟件中,可將該OTG狀態(tài)機部分實施于硬件及部分實施于軟件。
現(xiàn)在參考圖7,提供流程圖以例示軟件控制狀態(tài)轉(zhuǎn)變?nèi)绾伟l(fā)生。在步驟700中,該OTG控制單元425偵測到可要求軟件狀態(tài)機改變其狀態(tài)之事件。該OTG控制單元425于是儲存?zhèn)€別的狀態(tài)信息于OTG狀態(tài)寄存器600中(步驟705)以及發(fā)送中斷訊號給處理器(步驟710)。為了響應(yīng)該中斷訊號,USB軟件驅(qū)動程序在步驟715中讀取該狀態(tài)寄存器,基于目前的狀態(tài)及狀態(tài)寄存器內(nèi)容做適當?shù)臓顟B(tài)改變(步驟720),以及寫入該OTG控制寄存器605以改變該切換設(shè)定,亦即,對OTG硬件做出適當?shù)母淖?步驟725)。
盡管本發(fā)明已根據(jù)于此所建構(gòu)有關(guān)于實體實施例做出說明,然對在此技術(shù)領(lǐng)域熟悉此技藝者系顯而易見的,即在以上教導的啟發(fā)中以及附加的權(quán)利要求書但不脫離本發(fā)明之精神與設(shè)定的范疇內(nèi)可做出本發(fā)明之各種修改、變化與改良。此外,為了不非必要性地模糊本文所述的發(fā)明起見,在此技術(shù)領(lǐng)域中具有通常知識者所熟悉的這些領(lǐng)域并未描述于本文中。因此,應(yīng)該了解本發(fā)明不為特定的例示實施例所限制,但僅由附加的權(quán)利要求書的范疇所限制。
權(quán)利要求
1.一種具有OTG便攜式功能性的USB控制器裝置,該USB控制器裝置包含主機控制單元,其具有符合加強型主機控制器接口的主機控制器,該主機控制器適于實行主機功能性而在至少一個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出;以及OTG控制單元,適于實行OTG狀態(tài)機以控制該主機控制單元的運作,其中,該OTG控制單元適于將該OTG狀態(tài)機部分以硬件實行及部分以軟件實行。
2.如權(quán)利要求1所述的USB控制器裝置,其中,該OTG控制單元包含保留控制信息的OTG控制寄存器以控制該OTG控制單元的運作,該OTG控制寄存器可由軟件訪問。
3.如權(quán)利要求2所述的USB控制器裝置,其中,該OTG控制寄存器可由軟件寫入。
4.如權(quán)利要求2所述的USB控制器裝置,其中,該OTG控制單元適于以改變硬件切換組件的狀態(tài)以響應(yīng)該控制信息的改變。
5.如權(quán)利要求2所述的USB控制器裝置,其中,該OTG控制寄存器是經(jīng)由寫至兩個地址的任一個而可尋址,其中寫至該兩個地址的第一個地址設(shè)定控制信息,而寫至該兩個地址的第二個地址清空該控制信息。
6.一種具有OTG便攜式功能性的USB控制器裝置,該USB控制器裝置包含主機控制單元,其具有符合加強型主機控制器接口的主機控制器,該主機控制器適于實行主機功能性而在至少一個USB外設(shè)裝置進行數(shù)據(jù)輸入與/或輸出;以及OTG控制單元,適于控制該主機控制單元的運作,其中,該OTG控制單元包含OTG控制寄存器,保留控制信息以控制該OTG控制單元的運作;以及OTG狀態(tài)寄存器,保留該OTG控制單元的狀態(tài)信息。
7.如權(quán)利要求6所述的USB控制器裝置,其中,該OTG控制寄存器包含保留定時器計數(shù)條件信息的寄存器字段。
8.如權(quán)利要求6所述的USB控制器裝置,其中,該OTG控制寄存器包含保留寫入端口連接信息的寄存器字段,該寫入端口連接信息可由軟件寫入以改變該OTG端口連接狀態(tài)。
9.如權(quán)利要求8所述的USB控制器裝置,其中,只要沒有軟件寫至該寫入端口連接信息寄存器字段,該OTG端口連接狀態(tài)是在硬件控制之下。
10.一種提供OTG便攜式功能性于USB控制器裝置的方法,該USB控制器裝置具有OTG控制寄存器及OTG狀態(tài)寄存器,兩者均可由軟件驅(qū)動程序訪問,該方法包含下列步驟該軟件驅(qū)動程序讀取該OTG狀態(tài)寄存器以響應(yīng)從該USB控制器裝置接收到的中斷訊號;以及該軟件驅(qū)動程序?qū)懭隣TG控制寄存器以迫使該USB控制器裝置改變其OTG狀態(tài)。
全文摘要
本發(fā)明提供一種用以實施便攜式(On-The-Go,OTG)功能性的通用序列總線(Universal Serial Bus,USB)控制器技術(shù)。該裝置可具有符合加強型主機控制器接口(Enhanced Host Controller Interface,EHCI)的主機控制單元,及將OTG狀態(tài)機部分以硬件實行及部分以軟件實行的OTG控制單元。該OTG控制單元可具有OTG控制寄存器與OTG狀態(tài)寄存器,此寄存器可由軟件訪問。此外,該USB控制器裝置可具有裝置控制單元以實行裝置功能性且可具有端口多任務(wù)器以指派實體端口至主機或裝置控制單元。該OTG控制單元可包含于該端口多任務(wù)器中。此外,軟件驅(qū)動程序可讀取OTG狀態(tài)寄存器以響應(yīng)從該USB控制器裝置接收到的中斷訊號,并寫至該OTG控制寄存器以迫使該USB控制器改變其OTG狀態(tài)。
文檔編號G06F13/38GK101065740SQ200580040548
公開日2007年10月31日 申請日期2005年11月29日 優(yōu)先權(quán)日2004年11月30日
發(fā)明者K·海瑟, S·默勒 申請人:先進微裝置公司