專利名稱:Usb通信控制裝置,usb通信系統及usb通信控制方法
技術領域:
本發明涉及USB(通用串行總線)設備之間的通信控制裝置,USB通信系統,以及通信控制方法。
設備可以直接耦合到主機或是連到hub的下游上。hub也能夠以類似于通用設備的方式直接耦合到主機,以及連到hub的下游上。
在USB連接中,主機與設備之間的關系是不對稱的。換言之,所有的通信由主機啟動,而設備響應由主機所啟動的通信。
因此,從主機發向設備的通信包被經由hub貫穿整個設備樹發送。該設備查看包含在所述通信包內的一個地址字段,并在其識別出指定它的通信后向主機返回一個響應。在該事件中的響應包經由hub在上游方向上被轉發。
為了使用一個設備,主機在一對一的基礎上與該設備通信。
USB上主機與一個設備之間的一對一虛擬通信路徑被稱為“管道”。如圖2所示,主機與設備之間的通信被劃分為控制型、成批型、中斷型以及等時型。
用于從主機向設備發送數據的通信被稱為“出”,而用于主機從設備接收數據的通信被稱為“進”。
CRC(循環冗余碼)被加到USB通信包內,這樣接收側就能夠通過校驗數據和CRC來檢測所述數據是否能被正確地接收。在“握手”通信的一個確定類型中,定義了一個協議以用于在由CRC校驗檢測到錯誤時執行重發。
對于控制型通信和成批型通信,一個恒定帶寬被共同分配給二者,這樣不能為每個管道確保吞吐量或等待時間。另一方面,在中斷型中對于各個管道確保了最壞情況下的等待時間,而在等時型中分配給每幀的帶寬被確保。等待時間以及帶寬的管理是由主機執行的。主機還根據分配的帶寬控制通信的調度,并且在由“握手”檢測到通信錯誤時控制重發。主機還在中斷型和等時型中每一幀(1ms)發送一個SOF(幀起始)包,該包是通信的一個定時單元。
從主機接收到通信包后,設備執行對主機的“握手”響應,解釋來自主機的“握手”,并響應來自主機的重發請求。
主機及設備應當提供的功能在圖3示出。如圖3所示,作為應當在USB和設備中提供的總線級功能,主機執行用于“握手”響應和解釋、重發、帶寬分配、通信調度、SOF傳送、以及設備的連接/斷開檢測中每一個的總線級處理,而設備執行用于“握手”響應和解釋以及重發響應的總線級處理。
一般地,個人計算機或具有CPU的個人計算機等同物(下文稱作“PC”)被用作為主機。PC運行相應于內置USB主控制器(硬件)的系統軟件以實現前述的總線級處理。該系統軟件管理等待時間及帶寬分配,USB主控制器以軟件操作為基礎執行通信調度,以及在檢測到錯誤時的重發。
在下文中,將對由常規主機執行的設備連接/斷開檢測處理進行說明。
當一個設備被連到設備樹上的任何地方或從設備樹上的任何地方斷開時,這一事件被檢測為在那一位置處hub端口中的端口狀態變化。
圖4示出用于檢測端口狀態變化的處理,該處理由主機對各個hub周期性地執行。該主機還通過直接檢測端口狀態變化來執行對其中所具有的端口的類似處理。
所有的hub均具有位于它們自己與主機之間的一個控制管道(控制型)和一個狀態變化管道(中斷IN型)。主機經由狀態變化管道周期性地向hub發送數據讀取請求(步驟S41)。為響應該請求,當狀態變化時,hub應答一個狀態變化。若收到狀態變化應答(步驟S42的“是”),主機讀端口狀態(步驟S43)。主機在步驟S44確定該狀態變化是否表示一個設備被連接。當主機檢測到一個設備被連接時,主機就存儲該事件,并向相關hub的控制管道發送端口復位信號(步驟S45)。另一方面,當檢測到沒有設備連接時,主機就在步驟S46確定復位是否完成。當完成復位時,主機在步驟S47存儲一個設備連接。當未完成復位時,主機就在步驟S48確定該狀態變化是否涉及一個斷開。若檢測到一個設備斷開,主機在步驟S49存儲該事件。經由控制管道執行從主機對一個hub的操作。
圖5表示常規枚舉(設備識別)處理的一個示意圖。該枚舉以檢測連接到hub端口(包括主機端口)的設備作為開始,該設備已經加電。經由hub狀態變化管道檢測在下游hub上的設備連接。在接收到來自上游的復位信號時,設備以被認為是指定其自身的缺省地址(地址0)開始工作,并由發自主機的一個控制命令分配一個唯一的設備地址以便隨后工作。
具體地,在步驟S50主機檢測設備速度,并在步驟S51給該設備分配一個地址。主機需要記錄與總線拓撲結構對應的樹形中的各個設備有關的信息,以為設備斷開時的后處理作準備,稍后將進行描述。所記錄的信息除了一個用于獲得設備的描述符外,還包括用于調用用于基于軟件的后處理的驅動程序軟件的信息。由于主機獲得描述符的一個變化(步驟S52),因此主機更新設備樹信息(步驟S53)。然后,主機確定是一個hub還是一個設備被連接(步驟S54)。當連接的是hub時,主機裝入一個hub驅動程序(步驟S55),設置一個端口狀態變化管道(步驟S56),并對相關的hub端口加電(步驟S57)。另一方面,當主機確定是一個設備被連接時,主機就選擇并裝入一個設備驅動程序(步驟S58),并初始化該設備以便使用(步驟S59)。
下面,圖6表示常規的設備斷開處理。
主機的系統軟件在主存儲器上存儲對應于總線拓撲結構的設備樹信息,這樣當設備在總線上的某處被斷開時,主機就能夠識別斷開位置(步驟S61)。主機的系統軟件執行與受斷開潛在影響的樹的一部分相關的驅動程序軟件以及已由設備使用的應用軟件所需的后處理(步驟S62,S63,S64)。主機的系統軟件刪除設備樹信息,并釋放所分配的設備地址以及由相關軟件使用的系統資源以備將來再次使用(步驟S65)。在此情形下,與斷開位置無關的部分不受影響。
在使用了具有設備控制器功能的微處理器的設備中,經常會出現用硬件擔負物理層和低級協議層(電信號變換,包的裝配,“握手”響應),以及用固件擔負“握手”解釋,重發響應和上層處理的情況。
如上所述,常規USB系統定義了主機與設備之間的通信控制方案,而對在設備之間直接傳遞數據未定義任何特征。因此,為了在設備之間傳遞數據,主機將一直介入所述傳遞。具體地,為了在設備之間傳遞數據,主機用于運行與各個驅動程序對應的設備驅動程序,以及用于介入數據傳遞的應用軟件。
圖7一般性地示出目前采用的設備之間通信的特征。
當用戶將數據發送裝置71和數據接收裝置72連到主機上時,主機的USB系統軟件73使用USB硬件74來枚舉這些設備,并裝入和運行用于設備71的驅動程序75以及用于設備72的驅動程序76。然后,由主機用戶初始化的傳送控制軟件77經由用于設備71的驅動程序75從設備71讀數據,并將讀取的數據經由用于設備72的驅動程序76寫入設備72,以將數據從設備71傳送到設備72。
在此方式中,常規地,假設主機由一臺PC實現,該PC上可以安裝多種軟件(系統軟件,設備驅動程序,應用軟件),并且具有用于運行所述軟件的CPU性能以及存儲器容量。
因此,存在數據不能在設備之間傳遞的問題,除非PC被用作為主機。尤其是,在缺少PC的使用環境中,出現這樣一個問題諸如具有設備功能的蜂窩電話的一個小型便攜式通信設備,小型便攜式輸入/輸出設備,以及小型便攜式外部存儲設備不能通過USB互連以用于設備間的數據傳輸。
根據本發明的一個實施例,一個USB通信控制裝置包括一個控制器,被配置為在檢測到一個USB設備斷開時復位整個總線并進入一連接等待狀態,通過給出從一預定值開始的連續地址來登記所有被連的USB設備,并與各個登記的USB設備通信,以及響應來自USB設備的一個應答,順序地向所有登記的USB設備廣播數據或是將數據傳送給一個特定的USB設備;一個總線配置寄存器,用來基于設備地址記錄三種設備類型中的一種,所述三種設備類型包括一個hub,一個USB設備,以及其他設備,其中當所述控制器進入連接等待狀態時該總線配置寄存器被清零以及一個模式確定單元,響應一個USB設備的連接檢測,用來根據所連設備的一個配置描述符的一個預定部分是否匹配一個預定模式來確定所連設備是否是支持設備。
根中繼器102取代常規的包括PC的主機。但是,根中繼器102并不要求主機所常規具有的用于安裝和運行多種軟件(系統軟件,設備驅動程序,應用軟件)的CPU性能以及存儲器容量。
總線拓撲結構與現有技術相似,其中的hub106和110與現有技術相同,可作為一個單獨的USB系統用于連接許多設備104,108,112和114。通過順序執行在根中繼器102與設備之間的一對一通信,能夠以非固定方式執行在設備之間的一對一多路通信。換言之,在USB只能夠一對一通信而不能夠廣播的情況下,USB可以通過順序地執行一對一通信來基本上實現廣播。
圖9是表示根中繼器的一個實施例的詳細方框圖。
控制器120連到總線配置寄存器122、并行/串行轉換器124、模式確定單元126、連接/斷開/設備速度檢測器128、以及復位發送器130,以控制這些部件的操作。
總線配置寄存器122還與數據緩沖器134連接,并與數據緩沖器134交換總線配置信息(例如,連到USB端口的設備的類型,在此實施例中,所述種類包括三種類型USB設備,hub,非USB設備)以及通過枚舉獲得的hub控制管道信息,并存儲這些信息。
并行/串行轉換器124還與數據緩沖器134以及I/O單元136相連,裝配和分解USB上的連續比特序列,并與數據緩沖器134交換數據。
模式確定單元126還與數據緩沖器134相連,并查閱裝入數據緩沖器134內的接收數據以把與特定模式的匹配通知給控制器120。復位發送器130響應來自控制器120的一條指令通過I/O端口136向一USB端口(未示出)輸出按照USB規格定義的復位信號。
SOF發生器132優先于控制器120并使并行/串行轉換器124產生SOF包。數據緩沖器134在控制器120的控制下用于暫時存儲發送/接收數據。I/O單元136用于發送和接收通過的數據,并相互轉換外部通信USB信號和端口上的本地信號。
下文將描述各個部件中的處理。
圖10是表示控制器120的處理的轉換圖。
本實施例中的根中繼器102在開始工作時進入一連接等待狀態140。在連接等待狀態140,當一設備被連到根中繼器102的一個連接端口時,根中繼器102變為端口初始化狀態146,并在初始化完成后又變為枚舉狀態142。當在枚舉狀態142完成枚舉后,根中繼器102變為中繼狀態144。在中繼狀態144,當根中繼器102檢測到與總線上一個hub相連的一個設備時,根中繼器102變為hub端口初始化狀態146,并在該端口上的那個設備斷開時返回連接等待狀態140。
在此方式中,本實施例中的根中繼器102總是進入連接等待狀態140,不論是在其開始工作時,還是在一個設備從總線上的任何地方斷開時。在連接等待狀態140,放在總線配置寄存器122中的內容被一次清除(整個總線被復位)。接著,對整個總線再次執行枚舉,從初始值(一般被選為1)開始有規律地(一般是按順序)分配設備地址,并將分配結果放在總線配置寄存器122中。這就保證了存在于總線上的設備總是具有從初始值(例如,1)開始的有規律的(例如,順序的)設備地址,這樣根中繼器102就無需存儲設備樹拓撲結構。因此,與由常規主機記錄的設備樹信息相比,就能夠采用具有較小容量及更簡單配置的總線配置寄存器122。
下文將描述根據本發明的由根中繼器102執行的控制操作。
圖11是說明在根中繼器的連接等待狀態140中的處理的流程圖。
當根中繼器進入連接等待狀態140,在步驟S150,控制器120一次清除放在總線配置寄存器122中的內容。在步驟S152,根中繼器102等待來自連接/斷開/設備速度檢測器128的設備連接通知。當檢測器128響應來自I/O單元136的一個信號檢測到與hub相連的一個設備時,在步驟S154,控制器120就使復位發送器130發送一個復位信號,該信號通過I/O單元136被發送給相關的設備。當復位完成,連接/斷開/設備速度檢測器128獲得該設備通過I/O單元136發來的設備速度通知。當獲得所述的設備速度,控制器120就在步驟S158將所述設備速度存入總線配置寄存器122,并且根中繼器102變為枚舉狀態142。在步驟S156或S158,如果根中繼器102被告知一個設備從hub斷開,該設備以前是連到該hub的,那么流程返回到步驟S150。
在本實施例中,通過在連接等待狀態140提供處理(圖11),在操作開始時,以及當一個設備在總線上的任何地方被斷開時,整個總線能夠被復位到開始對整個總線的枚舉。然后,在那一刻的新的系統配置被放入總線配置寄存器122。由于這一原因,因為能確保存在在總線上的設備總是具有從初始值開始的有規律的設備地址,因此根中繼器102無需存儲設備樹拓撲結構,這樣與由常規主機記錄的設備樹信息相比,就能夠采用具有較小容量和更簡單配置的總線配置寄存器122。
圖12是表示在根中繼器102的枚舉狀態142中的處理的流程圖。
在枚舉狀態142,控制器120在步驟S160使用缺省地址獲得一個設備描述符以得到一個通信包的大小。
在步驟S162,控制器120使用缺省地址發送一個設置地址請求。該地址從一個預定初始值(例如,1)開始順序地增加。在步驟S164,根據響應于所述請求的設備描述符的獲得(再次),控制器120將所述設備描述符存入數據緩沖器134。在步驟S166,模式確定單元126檢驗包含在所述描述符中的類別碼(的一種模式),通過將該類別碼的模式與hub的一個預定模式進行比較來確定所連設備是否是hub。
當所連設備不是hub時,在步驟S168,控制器120獲得一個設備配置描述符并將其存入數據緩沖器134。在步驟S170,模式確定單元126檢驗在該配置描述符的一個預定部分處的位模式,通過將該配置描述符的預定部分處的位模式與支持設備的一個預定模式進行比較,來確定所連設備是否是支持通過本實施例的根中繼器102通信的設備(下文稱作“支持設備”或簡稱USB設備)。例如,該確定可以通過向具有一個唯一類別碼模式的接口預先確定在配置描述符的第一部分的模式而作出。當模式確定單元126確定所連設備是支持設備時,控制器120在步驟S172請求設置一個預定配置。
在步驟S174,控制器120“初始化中繼通信管道的數據轉換(toggle)”并在總線配置寄存器122中所分配的地址處“寄存一個支持經由根中繼器102通信的設備”。
在USB規范中,配置描述符被結構性定義,這樣一個USB系統軟件必須被用于解釋一個任意的描述符以便讓主機能夠選擇現有技術中的適合的設備驅動程序。在本實施例中,僅僅依賴于一個固定硬件的所述確定能夠通過如下方法來實現而不必使用USB系統軟件預先確定支持經由根中繼器102通信的設備的描述符的一個預定部分,并且僅將設備分成三種類型hub,USB設備(支持設備)以及非USB設備。所述確定結果被寄存到總線配置寄存器122中。
當模式確定單元126在步驟S166確定所連設備是一個hub時,控制器120在步驟S176獲得該hub的配置描述符。控制器120“寄存一狀態變化終端點號(寫在所述配置符內)”,“初始化狀態變化管道的數據轉換”,并在總線配置寄存器122中“在一指定地址將所連設備寄存為一個hub”。
在步驟S180,控制器120請求設置配置I(作為hub工作)。在步驟S182,控制器120獲得一hub描述符。
在步驟S184,控制器120在總線配置寄存器122中根據寫入所述hub描述符的信息“寄存端口號和端口電源模式”。在步驟S186,控制器120根據該信息向所述hub發送端口加電信號。
在完成上述處理后,根中繼器102變為中繼狀態144。當從一個hub端口的連接檢測經由該hub端口的初始化執行枚舉時,在完成所述枚舉后,該處理從被檢測到連有設備的那個hub端口的下一個端口繼續進行。
如果在上述處理期間在根中繼器端口檢測到一個端口斷開,根中繼器102就返回到連接等待狀態140。
圖13是表示在根中繼器102的中繼狀態144中的處理的流程圖。
在根中繼器102進入中繼狀態144時,控制器120對所有hub以及所有連到總線上的設備從地址1(預定值)按順序重復地執行下述處理。在步驟S190,控制器120從總線配置寄存器122確定當前地址處所寄存的設備是USB設備、hub,還是非USB設備。
當所述設備是支持設備時,控制器120就在步驟S192向帶有該設備的一個成批型IN管道啟動IN通信用以向該設備請求數據。
在步驟S194,控制器120確定所述數據是否已被從所述設備發送。如果未發送數據,控制器120就進到下一個地址。當數據被從所述設備發送時,控制器120就在步驟S196根據含有在數據中的目的地址確定該數據是否被廣播。
當所述目的地址指定了廣播時,控制器120就在步驟S198執行從地址1按順序向各個地址的成批OUT傳送以發送數據,所述支持設備在所述地址上寄存。當所述目的地址指定了一個特定地址時,控制器120就在步驟S200執行一個向該地址的成批OUT傳送以發送數據。利用這一處理,根據與系統相連的支持設備的各自要求,數據可被發送到一個特定設備或廣播。
另一方面,當控制器120在步驟S190確定在所述地址上寄存的設備是一個hub時,控制器120就在步驟S202查閱存儲在總線配置寄存器122內的“狀態變化終點號”以向狀態變化管道啟動中斷型IN通信用以向所述hub請求狀態變化信息。
在步驟S204,控制器120確定所述狀態變化信息是否已被從所述hub發送。如果未發送信息,控制器120就進到下一個地址。當狀態變化信息被從所述hub發送時,控制器120就從端口1按順序執行一次下述處理。在此情況下,在步驟S206,當未在總線狀態變化信息中設置一個端口位時(表示沒有狀態變化),控制器120進到對下一個端口的處理。如果設置了端口位,控制器120就在步驟S208向一個hub控制管道啟動IN通信以請求端口狀態信息。
控制器120在步驟S210確定從所述hub返回的端口狀態信息是否指示檢測到連接,并且當指示檢測到連接時,根中繼器102變為hub端口初始化狀態146,并經由枚舉狀態142返回到對下一個端口的處理(步驟S206)。
在步驟S210,當從所述hub返回的端口狀態信息指示其它情形時,根中繼器102變為連接等待狀態140。
在中繼狀態144,當在根中繼器端口檢測到斷開時,根中繼器102變為連接等待狀態140。
圖14是表示在根中繼器的hub端口初始化狀態中的處理的流程圖。
在根中繼器102進入到hub端口初始化狀態146時,控制器120在步驟S220經由hub控制管道清除相關hub的連接檢測狀態變化位,并在步驟S222執行端口復位。
在步驟S224,控制器120經由hub控制管道為所述hub讀取端口狀態來檢測端口復位的完成,并在步驟S226等待一個端口使能變化位被設置。
當端口使能變化位被設置,控制器120在步驟S228從所述hub發來的端口狀態值中獲得所述連接設備的速度,并在總線配置寄存器122中寄存該速度。在步驟S230,控制器120經由hub控制管道清除使能檢測狀態變化位,并且根中繼器102變為枚舉狀態142。
圖15是表示第一實施例中設備之間的數據傳送特征的框圖。
根中繼器102經由hub及電纜152用前述方式枚舉支持設備154和156,并在其自身與各個支持設備154和156之間建立兩條通信線路IN,OUT。
僅要求根中繼器102執行根據本實施例的操作,而不管連接設備的類型,并且無需用于各個設備的驅動程序,因此根中繼器102能夠只用硬件來實現。而且,為使基于常規系統的設備支持該系統,僅需要修改該設備的固件。特別地,在本實施例中,提供了一個獨特的配置描述符并且所述固件可用于執行檢查系統中其它支持設備的存在,以及在當一個獨特的配置描述符被由根中繼器102的所述枚舉設置時利用廣播傳輸和一對一傳輸來傳送數據。
根據第一實施例,USB通信控制裝置包括控制器,用于在檢測到USB設備的一個斷開時復位整個總線并返回到連接等待狀態,在從一預定值開始的連續地址上登記與系統相連的設備,執行一個對于各個登記的支持設備的成批IN通信,并響應來自設備的應答中的數據,順序地將數據廣播給所有登記的支持設備或是將所述數據傳送給一個特定地址;總線配置寄存器,用于登記三種設備類型hub、USB設備及其它,使用設備地址作為索引,其中當所述控制器進入連接等待狀態時,該總線配置寄存器中的內容被清除;以及模式確定單元,用于基于所連設備的配置描述符的第一部分是否匹配一個預定模式來確定所連設備是否是USB設備。
根據本實施例,當控制器進入連接等待狀態時,總線配置寄存器中的內容被清除,從而使得可能在操作開始時,或是當一個設備被在總線上的任何地方斷開時復位整個總線以啟動用于整個總線的枚舉。
而且,通過在對于整個總線的枚舉中從一預定值按順序地分配設備地址,就確保了存在在總線上的設備總是具有從1開始的連續的設備地址,所以根中繼器102無需存儲設備樹拓撲結構。因此,與由常規主機存儲的設備樹信息相比,可以采用具有較小容量和簡化結構的總線配置寄存器122以寄存設備類型,使用設備地址作為索引,實現發明目的。
按照本發明,設備的三種類型,即hub、USB設備、及其它設備足以滿足枚舉要求。通過用所述三種設備類型并基于配置描述符的第一部分是否匹配一個預定模式來確定一個USB設備,可以僅用硬件來實施所述枚舉。
根中繼器102執行對于各個登記的支持設備的一個成批IN通信,并且當接收到來自一個設備的響應時順序地向所有登記支持設備廣播數據或是根據該數據將數據傳送給一個特定地址,因此與系統相連的一個USB設備能夠根據設備的各自所需將數據傳送給一個特定設備或廣播所述數據。從上述結果中,可以不考慮所連設備的類型而實現根中繼器102。
而且,根據本實施例,USB通信系統包括一個USB通信控制裝置以及一個USB設備。所述USB通信控制裝置包括控制器,用于在檢測到USB設備的一個斷開時復位整個總線并返回到連接等待狀態,在從一預定值開始的連續地址上登記與系統相連的設備,執行一個對于各個登記的支持設備的成批IN通信,并響應來自設備的應答中的數據,順序地將數據廣播給所有登記的支持設備或是將所述數據傳送給一個特定地址;總線配置寄存器,用于登記三種設備類型hub、USB設備及其它,使用設備地址作為索引,其中當所述控制器進入連接等待狀態時,該總線配置寄存器中的內容被清零;以及模式確定單元,用于基于所連設備的配置描述符的第一部分是否匹配一個預定模式來確定所連設備是否是USB設備。
所述USB設備包括一個微處理器,USB設備控制器硬件,以及利用所述USB通信控制裝置實現相互廣播數據或是在一對一的基礎上傳送數據的固件。
根據本實施例,利用根中繼器102來相互傳送數據的USB設備可以僅僅通過向所述設備的固件增加該功能來容易地實現而無需主機驅動程序。
本實施例提供的根中繼器102可以用廉價的硬件來實現設備間的數據傳輸。
如上所述,根據上述實施例,提供了在連接等待狀態140中的處理(圖11),其中當根中繼器102進入連接等待狀態140時,總線配置寄存器中的內容被清除,因此使得可能在操作開始時,或是當一個設備被在總線上的任何地方斷開時復位整個總線以啟動用于整個總線的枚舉(步驟S150)。
在用于整個總線的枚舉中,由于通過從1(預定值)按順序地分配設備地址(步驟S162),確保了存在在總線上的設備總是具有從1開始的連續的設備地址,所以根中繼器102無需存儲設備樹拓撲結構。因此,與由常規主機存儲的設備樹信息相比,可以采用具有較小容量和簡化結構的總線配置寄存器122以寄存設備類型,使用設備地址作為索引,實現發明目的。
按照本實施例,所述三種設備類型,即hub、USB設備及其它設備已經足夠了。通過用所述三種設備類型并基于配置描述符的第一部分是否匹配一個預定模式來確定一個USB設備,可以僅用硬件來實施所述枚舉。
由于根中繼器102順序地向所有登記的支持設備傳送數據(廣播)或是將數據傳送給一個特定地址(步驟S198和S200),因此與系統相連的支持設備能夠根據設備的各自所需將數據傳送給一個特定設備或廣播所述數據。
由于包含有CPU和USB設備控制器硬件的USB設備已被廣泛地用于大量應用中,具有相互交換數據能力的支持設備可以僅僅通過向設備的固件增加所需功能以及利用本實施例的根中繼器102來容易地實現而無需主機驅動程序。
下面將描述本發明的USB通信控制裝置的其它實施例。與第一實施例相同的部分將用相同的標號表示,并省略其詳細描述。第二實施例圖16是說明第二實施例的USB通信控制裝置的方框圖。在本實施例中,具有與第一實施例的根中繼器102相同功能的根中繼器150,hub 154以及支持設備156被集成到所述控制裝置內。
通過將一外部USB設備連到一個下游端口160并將切換單元152切換到根中繼器102,可以將所述控制設備用作為不帶主機的根中繼器。另一方面,通過將一主機連到一個上游端口158并將切換單元152切換到所述上游端口158,可以將所述控制設備用作為一個含有一個hub的設備,與現有技術類似。將hub 154接到根中繼器102就可以省略掉所述切換單元152和上游端口158。切換單元152的切換可以由用戶人工執行或是根據對連到所述上游端口158或下游端口160的設備的檢測自動執行。
作為一個示范性應用,可將一個含有作為支持設備156的打印機的設備在下游端口160上連到一個含有USB設備接口的蜂窩電話上。這樣,該蜂窩電話就能夠驅動所述打印機。
另一方面,可將一個含有作為支持設備156的存儲卡的設備在下游端口160上連到一個含有USB設備接口的蜂窩電話上。這樣,該蜂窩電話就能夠向/從所述存儲卡設備寫入/讀出數據。
如上所述,根據上述實施例,通過將一個USB設備連到所述下游端口160上并將所述切換單元152切換到根中繼器102就能使用所述USB通信控制裝置而無需主機。并且,通過將所述切換單元152切換到上游端口158,并將一主機連到上游端口158,可將所述USB通信控制裝置用作為一個含有一hub的設備,類似于現有技術。因此,所述USB通信控制裝置不僅可被用在帶有主機的使用環境中,而且可用在沒有主機的使用環境中。
根據本實施例,一個USB通信控制裝置包括一個根中繼器,hub,上游端口,下游端口,以及一個用于將所述hub連到所述根中繼器或是連到所述上游端口的切換單元,將一個外部支持設備連到所述下游端口,并將所述切換單元切換到所述根中繼器以執行在所述USB通信控制裝置與該外部支持設備之間的通信而無需主個人計算機,或是將所述切換單元切換到所述上游端口側,并將一主機連到所述上游端口以執行在所述USB通信控制裝置與該主機之間的通信。
以上描述涉及本發明的特定實施例,應當懂得可以作出多種修改而不脫離本發明的精神。附帶的權利要求書用于覆蓋落入本發明真實范圍和精神內的這些修改。因此當前公開的實施例應從各方面考慮為說明性的而非限制性的,本發明的范圍由附帶的權利要求書,而不是上述描述來表明,因此所有落入權利要求書的等同物的含義及范圍內的變更都應被包含在內。例如,本發明可實現為一種計算機可讀記錄介質,該介質記錄有用于允許一個計算機執行預定方法,允許該計算機起到預定裝置的作用,或允許該計算機實現一預定功能的程序。
權利要求
1.一種USB通信系統,其特征在于包括USB設備(104,108,112,114);以及一個USB通信控制裝置(102),用來經總線連接到至少一個USB設備(104,108,112,114),該控制裝置包括一個控制器(120),用來復位所述總線,在檢測到所述USB設備的一個斷開時進入連接等待狀態(140),通過給出從一預定值開始的連續地址來登記所有被連的USB設備,并與所述登記的USB設備通信;一個模式確定單元(126),響應于一個設備的連接檢測,用來根據所連設備的配置描述符來確定所連設備是否是所述USB設備;以及一個總線配置寄存器(122),用來根據所連設備的一個設備地址寄存三種設備類型中的一種,所述三種設備類型包括hub、USB設備以及非USB設備,其中當所述控制器進入連接等待狀態時該總線配置寄存器(122)被清零。
2.一種USB通信控制裝置,其特征在于包括一個控制器(120),用來復位連接至少一個USB設備(104,108,112,114)與USB通信控制裝置(102)的總線,在檢測到所述USB設備的一個斷開時進入連接等待狀態(140),通過給出從一預定值開始的連續地址來登記所有被連的USB設備,并與所述登記的USB設備通信;一個模式確定單元(126),響應于一個設備的連接檢測,用來根據所連設備的配置描述符來確定所連設備是否是所述USB設備;以及一個總線配置寄存器(122),用來根據所連設備的一個設備地址寄存三種設備類型中的一種,所述三種設備類型包括hub、USB設備以及非USB設備,其中當所述控制器進入連接等待狀態時該總線配置寄存器(122)被清零。
3.一種USB通信系統,其特征在于包括根據權利要求2的一個USB通信控制裝置(150);一個hub(154);一個含有USB設備控制器硬件的USB支持設備(156);一個上游端口(158),用來被連接到一主機;一個下游端口(160),用來被連接到一USB設備;以及一個切換單元(152),用來選擇性將所述上游端口和所述USB通信控制裝置中的一個連到所述hub。
4.如權利要求2所述的裝置,其特征在于當啟動一個操作時,所述控制器(120)進入連接等待狀態(140);當所述USB設備被連到一個USB端口以及當在連接等待狀態完成端口初始化時進入一個枚舉狀態(142);當在枚舉狀態完成一個枚舉時進入一個中繼狀態(144);當在中繼狀態檢測到USB設備連接到總線上的一hub時,進入一個hub端口初始化狀態(146);當在中繼狀態檢測到總線上USB設備的一個斷開時進入所述連接等待狀態(140);當在hub端口初始化狀態完成端口初始化時進入枚舉狀態(142);以及當在hub端口初始化狀態USB設備被從正在被初始化的端口斷開時進入連接等待狀態(140)。
5.如權利要求4所述的裝置,其特征是所述控制器(120)還包括一個連接/斷開/設備速度檢測器(128),該檢測器用來檢測所述USB設備的連接、斷開以及速度,以及一個用來輸出根據USB規格定義的復位信號的復位發送器(130);當所述控制器(120)處于連接等待狀態(140)時,所述控制器(120)將所述總線配置寄存器(122)清零;等待來自所述連接/斷開/設備速度檢測器(128)的一個USB設備連接的通知;響應USB設備的一個連接檢測使所述復位發送器(130)向一個I/O單元(136)發送一個復位信號;在該I/O單元已被復位后被告知一個來自所述連接/斷開/設備速度檢測器(128)的設備速度;將該設備速度存入所述總線配置寄存器(122);以及變為枚舉狀態(142)。
6.如權利要求4所述的裝置,其特征是在枚舉狀態(142)所述控制器(120)使用一個缺省地址獲得設備描述符以得知一個通信包的大小;使用該缺省地址發送一個設置地址請求;再次獲得一個描述符地址以確定包含在該描述符地址內的一個類別碼,來確定連到該端口的USB設備是否是一個hub;當連到該端口的一個設備不是hub時獲得一個配置描述符,并根據該配置描述符確定連到該USB端口的設備是否是USB設備;當所連設備是USB設備時請求設置一個預定配置,并寄存一個中繼通信管道的數據轉換的初始化并寄存為在總線配置寄存器內一個所分配地址處的USB設備;以及當連到USB端口的設備是一個hub時,獲得該hub的一個配置描述符,在總線配置寄存器內寄存一個狀態終點號,初始化一個狀態變化管道的數據轉換,并在一個所分配的地址處將連到USB端口的設備寄存為一個hub。
7.如權利要求4所述的裝置,其特征是所述控制器(120)在中繼狀態(144)順序地確定在總線配置寄存器內寄存的各個地址是否表示USB設備、hub或非USB設備;當一個USB設備被寄存時啟動一個成批IN通信以向該USB設備請求數據,當沒有數據被從該USB設備發送時進到下一個地址;當數據被從該USB設備發送時檢測包含在數據中的一個目的地址;當在該目的地址指定廣播時順序地對其上寄存了USB設備的各個地址執行一個成批OUT通信以傳送數據;而當在該目標地址指定了一個特定地址時,執行一個對該地址的成批OUT通信以傳送數據;當一個hub被寄存在該地址時,查閱存儲在總線配置寄存器內的狀態變化終點號以向一個狀態變化管道傳送一個中斷型IN通信來向該hub請求狀態變化信息;當狀態變化信息未從該hub發送時進到下一個地址;以及響應來自該hub的狀態變化信息,順序地對該hub的各個USB端口,當未發現狀態變化時繼續對下一個端口的處理,并且當發現狀態變化時啟動向一個hub的IN通信以請求端口狀態信息。
8.如權利要求4所述的裝置,其特征是所述控制器(120)經由一個hub控制管道清除一個連接檢測狀態變化位,并在hub端口初始化狀態(146)復位一個USB端口;經由該hub控制管道讀取端口狀態用于得知該USB端口已被復位,并一直等待直到一個端口使能變化位被設置;從一個端口狀態值獲得所連USB設備的速度并將該速度寄存到總線配置寄存器內;以及經由所述hub控制管道清除一個使能檢測狀態變化位,并變為枚舉狀態。
9.一種基于一個根中繼器的USB通信控制方法,該根中繼器能夠在USB設備之間傳送數據,所述方法的特征是包括在檢測到USB設備的一個斷開時,復位數據以管理整個系統的配置,并進入一個連接等待狀態;從一預定值按順序重新給連接到一個USB總線上的各設備分配地址;執行用于各個登記的設備的一個成批IN通信;
10.一種用于如權利要求3所述的USB通信系統的USB通信控制方法,其特征是還包括將USB設備連到下游端口,將切換單元切換到USB通信控制裝置,以執行用于所連USB設備的通信。
11.如權利要求1所述的USB通信系統,其特征是響應一個來自USB設備的應答,所述控制器順序地向所有登記的USB設備廣播數據或是將數據傳送給一個預定USB設備。
12.如權利要求2所述的USB通信控制裝置,其特征是響應一個來自USB設備的應答,所述控制器順序地向所有登記的USB設備廣播數據或是將數據傳送給一個預定USB設備。
13.如權利要求9所述的USB通信控制方法,其特征是所述的執行成批IN通信包括響應一個來自USB設備的應答,順序地向所有登記的USB設備廣播數據或是將數據傳送給一個預定USB設備。
全文摘要
一個控制器(120)在檢測到一個USB設備的斷開時復位整個總線并進入一個連接等待狀態(140),通過給出從一預定值開始的連續地址登記所有連接的USB設備,與各個寄存的USB設備通信,并響應來自USB設備的一個應答,順序地向所有寄存的USB設備廣播數據或是將數據傳送給一個特定USB設備。一個總線配置寄存器(122)基于一個設備地址寄存三種設備類型中的一種,這三種設備類型包括hub、USB設備以及其它設備,其中當控制器進入連接等待狀態(140)時總線配置寄存器(122)被清零。一個模式確定單元(126),響應一個USB設備的連接檢測,根據所連設備的一個配置描述符的一個預定部分是否匹配一個預定模式來確定所連設備是否是支持設備。
文檔編號H04L12/44GK1388670SQ02126288
公開日2003年1月1日 申請日期2002年3月29日 優先權日2001年3月30日
發明者莊野溫夫 申請人:株式會社東芝