通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法
【專利摘要】一種通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法。該通用串行總線設(shè)備,耦接至一通用串行總線主機(jī),包括一控制器、一緩沖器、多個端點以及一處理器??刂破饔靡宰酝ㄓ么锌偩€主機(jī)接收一輸入/輸出令牌,并根據(jù)輸入/輸出令牌發(fā)出一中斷請求。處理器用以判斷緩沖器是否為一閑置狀態(tài),當(dāng)緩沖器為閑置狀態(tài)時,則處理器響應(yīng)中斷請求以根據(jù)輸入/輸出令牌的一地址訊息,將上述緩沖器配置給多個端點中的對應(yīng)于地址訊息的一端點以進(jìn)行數(shù)據(jù)傳輸。
【專利說明】通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法,特別涉及一種將單一緩沖器動態(tài)地配置給多個端點以進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ā?br>
【背景技術(shù)】
[0002]由于信息的發(fā)展迅速,現(xiàn)今許多信息的交流皆使用通用串行總線設(shè)備作為傳輸?shù)拿浇椤H欢鵀榱诉_(dá)到高速數(shù)據(jù)傳輸以及多功能的目的,大多數(shù)的通用串行總線設(shè)備的硬件架構(gòu)皆支持多個端點或者為復(fù)合式設(shè)備,但在上述的情況下,由通用串行總線主機(jī)所發(fā)起的數(shù)據(jù)傳輸可能無法輕易地判斷將與哪個端點進(jìn)行分組的交換。為了解決上述的問題,大多數(shù)的通用串行總線設(shè)備通常會將每個端點皆配置一個緩沖器,使通用串行總線主機(jī)于發(fā)出數(shù)據(jù)傳輸請求時通用串行總線設(shè)備能迅速地響應(yīng)并進(jìn)行分組的交換,但相對而言,硬件的成本也將大幅增加。因此如何在不影響傳輸效率的條件下,達(dá)到節(jié)省硬件成本的目的為現(xiàn)今所需解決的問題。
【發(fā)明內(nèi)容】
[0003]為解決上述問題,本發(fā)明一實施例提供一種通用串行總線設(shè)備數(shù)據(jù)傳輸方法,適用于耦接至一通用串行總線主機(jī)的一通用串行總線設(shè)備,其中通用串行總線設(shè)備具有單一緩沖器以及多個端點,包括:自通用串行總線主機(jī)接收一輸入/輸出令牌;根據(jù)輸入/輸出令牌向通用串行總線設(shè)備的一處理器發(fā)出一中斷請求;以及判斷緩沖器是否為一閑置狀態(tài),當(dāng)緩沖器為閑置狀態(tài)時,則處理器響應(yīng)中斷請求以根據(jù)輸入/輸出令牌的一地址訊息,將緩沖器配置給多個端點中對應(yīng)于地址訊息的一端點以傳輸一數(shù)據(jù)。
[0004]本發(fā)明另一實施例提供一種通用串行總線設(shè)備,耦接至一通用串行總線主機(jī),包括一控制器、一緩沖器、多個端點以及一處理器。控制器用以自通用串行總線主機(jī)接收一輸入/輸出令牌,并根據(jù)輸入/輸出令牌發(fā)出一中斷請求。處理器用以判斷緩沖器是否為一閑置狀態(tài),當(dāng)緩沖器為閑置狀態(tài)時,則處理器響應(yīng)中斷請求以根據(jù)輸入/輸出令牌的一地址訊息,將上述緩沖器配置給多個端點中的對應(yīng)于地址訊息的一端點以進(jìn)行數(shù)據(jù)傳輸。
[0005]根據(jù)本發(fā)明的上述通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法,開發(fā)者可根據(jù)本發(fā)明所提出的多個端點共享單一緩沖器的調(diào)度策略,達(dá)到硬件成本節(jié)省的目的,并以最大限度縮小傳輸?shù)难舆t,維持通用串行總線設(shè)備的最佳性能。
【專利附圖】
【附圖說明】
[0006]圖1是顯示根據(jù)本發(fā)明一實施例所述的通用串行總線設(shè)備的示意圖。
[0007]圖2是顯示根據(jù)本發(fā)明一實施例所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法的流程圖。
[0008]圖3是顯示根據(jù)本發(fā)明一實施例所述的處理器響應(yīng)中斷請求的流程圖。
[0009]【符號說明】[0010]100~通用串行總線設(shè)備
[0011]110~控制器
[0012]120~緩沖器
[0013]130~處理器
[0014]140~端點
[0015]200~總線
[0016]300~通用串行總線主機(jī)
[0017]S201、S202、S203、S204、S205、S206、S207 ~步驟流程
[0018]S301、S303、S305、S307、S309、S310 ~步驟流程
【具體實施方式】
[0019]有關(guān)本發(fā)明的系統(tǒng)以及方法適用的其他范圍將在接下來所提供的詳述中清楚易見。必須了解的是下列的詳述以及具體的實施例,當(dāng)提出有關(guān)通用串行總線設(shè)備以及其數(shù)據(jù)傳輸方法的示范實施例時,僅作為描述的目的以及并非用以限制本發(fā)明的范圍。 [0020]圖1是顯示根據(jù)本 發(fā)明一實施例所述的通用串行總線(Universal Serial Bus,以下以USB簡稱)設(shè)備的不意圖。如圖1所不,USB設(shè)備100可包括一控制器110、一緩沖器120、一處理器150以及多個端點160。其中,USB設(shè)備100通過一總線200耦接至USB主機(jī)300。USB主機(jī)300用以通過總線200傳送一輸入/輸出令牌(In/Out Token)至USB設(shè)備100以請求數(shù)據(jù)的接收或發(fā)送??刂破?10用以接收上述輸入/輸出令牌并根據(jù)接收到的輸入/輸出令牌發(fā)出一中斷請求至處理器130。在一實施例中,控制器110分析接收到的輸入/輸出令牌的地址訊息,以取得對應(yīng)端點的地址及其編號,以發(fā)出該插斷要求。一般而言,在輸入/輸出令牌的格式如表1所不,該輸入/輸出令牌以分組(packet)的形式,由PID字段、ADDR及ENDP字段以及CRC字段組成。其中PID字段標(biāo)識該輸入/輸出令牌的類型,包括輸入(IN)、輸出(OUT)以及建立(SETUP) ;ADDR及ENDP字段標(biāo)識出接下來發(fā)送/接收數(shù)據(jù)分組的端點140的地址及其編號;CRC字段包括對ADDR及ENDP字段的冗余校驗內(nèi)容。在本發(fā)明一實施例中,控制器110分析接收到的輸入/輸出令牌的ADDR及ENDP字段以得到對應(yīng)端點的地址及其編號。
[0021]
Fields |PID lADDR IENDP ICRC
Bits~8 74 5
[0022]表1
[0023]處理器130用以接收上述中斷請求,并判斷緩沖器120是否為閑置狀態(tài)。當(dāng)緩沖器120為一閑置狀態(tài)時(即為未進(jìn)行數(shù)據(jù)的接收或發(fā)送),則處理器130響應(yīng)該中斷請求以根據(jù)地址訊息(例如,包括端點地址以及編號)將緩沖器120配置給該端點140中的對應(yīng)于前述地址訊息的端點(例如端點140b)。舉例而言,若該USB設(shè)備100為一智能手機(jī)等便攜式處理設(shè)備,則處理器130為該智能手機(jī)的中央處理器(CPU);若該USB設(shè)備100為一復(fù)合USB設(shè)備,則處理器130為該復(fù)合USB設(shè)備的微處理器(MCU)。
[0024]在一實施例中,控制器110在發(fā)出中斷請求的同時還回復(fù)USB主機(jī)300 —否定認(rèn)可回報(NAK),告知USB設(shè)備100尚未準(zhǔn)備好接收數(shù)據(jù)的傳輸,并且當(dāng)將緩沖器120配置給對應(yīng)于上述地址訊息的端點140b后,回復(fù)USB主機(jī)300 —認(rèn)可回報(ACK)。在另一實施例中,處理器130在將緩沖器120配置給端點140b后發(fā)出一配置完成信號至控制器110以告知控制器110目前緩沖器120可接受數(shù)據(jù)的接收或發(fā)送,接著,當(dāng)控制器110再次接收到USB主機(jī)200所發(fā)出的輸入/輸出令牌時,控制器110根據(jù)上述配置完成信號回復(fù)USB主機(jī)200認(rèn)可回報(ACK),并開始分組的傳輸。
[0025]根據(jù)本發(fā)明另一實施例,當(dāng)緩沖器120不為閑置狀態(tài)時(例如正在進(jìn)行端點140a的數(shù)據(jù)的接收或發(fā)送),則控制器110持續(xù)回復(fù)USB主機(jī)300否定認(rèn)可回報(NAK)直到完成數(shù)據(jù)的接收或發(fā)送為止。值得注意的是,由于緩沖器120持續(xù)進(jìn)行分組的交換,故處理器130并不會響應(yīng)控制器110所發(fā)出的中斷請求。然而,當(dāng)端點140a完成數(shù)據(jù)的傳輸后,處理器130將依一調(diào)度策略將緩沖器120配置給端點140b。以下闡釋本發(fā)明的調(diào)度策略,由于USB主機(jī)300發(fā)出輸入/輸出令牌的速度很快(ns級),但處理器130需待緩沖器120為閑置狀態(tài)時才能響應(yīng)中斷。處理器130響應(yīng)一次中斷以配置緩沖器120給一個端點140,完成數(shù)據(jù)傳輸后返回,此時控制器110還可能接收了對應(yīng)其它多個端點140的輸入/輸出令牌,因此本發(fā)明另一實施例中,在控制器110中設(shè)置一請求標(biāo)志寄存器1101來記錄接收到的輸入/輸出令牌。如表2所示, 請求標(biāo)志寄存器1101包括對應(yīng)多個端點140的多個位(bit),控制器110根據(jù)輸入/輸出令牌的地址訊息將對應(yīng)端點140的相應(yīng)位置位(例如,置I),請求標(biāo)志寄存器1101 —旦有任何一個位被置位則向處理器130發(fā)出中斷請求。實作上,可將請求標(biāo)志寄存器1101不同的位經(jīng)由一或邏輯后的信號作為中斷請求信號。例如,當(dāng)處理器130響應(yīng)中斷請求并將緩沖器120配置給端點140a傳輸數(shù)據(jù)返回后,根據(jù)請求標(biāo)志寄存器1101其它被置位的位則又立即響應(yīng)中斷。此時控制器110可能已經(jīng)收到其它對應(yīng)其它多個端點140的輸入/輸出令牌,因此本發(fā)明一實施例需要一調(diào)度策略來判斷將緩沖器120分配給哪個端點140。具體而言,處理器130從對應(yīng)到所述中斷請求的端點140中選擇一第一優(yōu)先級端點,并查找一請求隊列(未繪示)以判斷是否有數(shù)據(jù)待傳輸,如果有數(shù)據(jù)待傳輸,則將緩沖器120配置給該第一優(yōu)先級端點,如果沒有數(shù)據(jù)待傳輸,則從對應(yīng)到中斷請求的端點140中選擇一第二優(yōu)先級端點。
[0026]
【權(quán)利要求】
1.一種通用串行總線設(shè)備數(shù)據(jù)傳輸方法,適用于耦接至一通用串行總線主機(jī)的一通用串行總線設(shè)備,其中上述通用串行總線設(shè)備具有單一緩沖器以及多個端點,包括: 自上述通用串行總線主機(jī)接收一輸入/輸出令牌; 根據(jù)上述輸入/輸出令牌向上述通用串行總線設(shè)備的一處理器發(fā)出一中斷請求;以及 判斷上述緩沖器是否為一閑置狀態(tài),當(dāng)上述緩沖器為上述閑置狀態(tài)時,則上述處理器響應(yīng)上述中斷請求以根據(jù)上述輸入/輸出令牌的一地址訊息,將上述緩沖器配置給上述多個端點中對應(yīng)于上述地址訊息的一端點以傳輸一數(shù)據(jù)。
2.如權(quán)利要求1所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中在發(fā)出該中斷請求的同時,回復(fù)上述通用串行總線主機(jī)一否定認(rèn)可回報;以及 當(dāng)上述緩沖器配置給對應(yīng)于上述地址訊息的上述端點之后,回復(fù)上述通用串行總線主機(jī)一認(rèn)可回報。
3.如權(quán)利要求1所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中當(dāng)上述緩沖器不為上述閑置狀態(tài)時,則上述處理器在上述多個端點的一另一端點的數(shù)據(jù)傳輸完成后,再響應(yīng)該中斷請求以依一調(diào)度策略將上述緩沖器配置給對應(yīng)于上述地址訊息的上述端點。
4.如權(quán)利要求3所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中上述調(diào)度策略是隨機(jī)配置上述多個端點。
5.如權(quán)利要求3所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中上述調(diào)度策略是根據(jù)上述多個端點的使用頻率配置上述緩沖器。
6.如權(quán)利要求1所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中還包括: 根據(jù)上述輸入/輸出令牌的該地址訊息設(shè)置一請求標(biāo)志寄存器,根據(jù)該請求標(biāo)記寄存器發(fā)出該中斷請求。
7.如權(quán)利要求1所述的通用串行總線設(shè)備數(shù)據(jù)傳輸方法,其中上述處理器響應(yīng)上述中斷請求以根據(jù)上述輸入/輸出令牌的該地址訊息,將上述緩沖器配置給對應(yīng)于上述地址訊息的上述端點以傳輸該數(shù)據(jù)的步驟還包括: 從上述多個端點中的對應(yīng)至上述中斷請求的端點中選擇一第一優(yōu)先級端點; 查找一請求對列以判斷是否有數(shù)據(jù)待傳輸; 如果有數(shù)據(jù)待傳輸,則將上述緩沖器配置給上述第一優(yōu)先級端點;以及 如果沒有數(shù)據(jù)待傳輸,則從上述多個端點中的對應(yīng)至上述中斷請求的端點中選擇一第二優(yōu)先級端點。
8.一種通用串行總線設(shè)備,其耦接至一通用串行總線主機(jī),包括: 一控制器,用以自上述通用串行總線主機(jī)接收一輸入/輸出令牌,并根據(jù)上述輸入/輸出令牌發(fā)出一中斷請求; 一緩沖器; 多個端點;以及 一處理器,用以判斷上述緩沖器是否為一閑置狀態(tài),當(dāng)上述緩沖器為上述閑置狀態(tài)時,則上述處理器響應(yīng)上述中斷請求以根據(jù)上述輸入/輸出令牌的一地址訊息,將上述緩沖器配置給上述多個端點中的對應(yīng)于上述地址訊息的一端點以進(jìn)行數(shù)據(jù)傳輸。
9.如權(quán)利要求8所述的通用串行總線設(shè)備,其中該控制器在發(fā)出該中斷請求的同時,回復(fù)上述通用串行總線主機(jī)一否定認(rèn)可回報,并且當(dāng)上述緩沖器配置給對應(yīng)于上述地址訊息的上述端點后,該控制器回復(fù)上述通用串行總線主機(jī)一認(rèn)可回報。
10.如權(quán)利要求8所述的通用串行總線設(shè)備,其中當(dāng)上述緩沖器不為上述閑置狀態(tài)時,上述處理器在上述多個端點的一另一端點的數(shù)據(jù)傳輸完成后,再響應(yīng)該中斷請求以依一調(diào)度策略將上述緩沖器配置給對應(yīng)于上述地址訊息的上述端點。
11.如權(quán)利要求8所述的通用串行總線設(shè)備,其中上述控制器還包括一請求標(biāo)志寄存器,上述請求標(biāo)志寄存器包括對應(yīng)至上述多個端點的多個位,上述控制器根據(jù)上述輸入/輸出令牌的上述地址訊息置位所對應(yīng)的位,并根據(jù)上述請求標(biāo)志寄存器發(fā)出上述中斷請求。
12.如權(quán)利要求8所述的通用串行總線設(shè)備,其中上述處理器從上述多個端點中的對應(yīng)至上述中斷請求的端點中選擇一第一優(yōu)先級端點,并查找一請求隊列以判斷是否有數(shù)據(jù)待傳輸,如果有數(shù)據(jù)待傳輸,則將上述緩沖器配置給上述第一優(yōu)先級端點,如果沒有數(shù)據(jù)待傳輸,則從上述多個端 點中的對應(yīng)至上述中斷請求的端點中選擇一第二優(yōu)先級端點。
【文檔編號】G06F13/38GK103744816SQ201410053829
【公開日】2014年4月23日 申請日期:2014年2月18日 優(yōu)先權(quán)日:2014年2月18日
【發(fā)明者】鄭宇 , 潘婷婷 申請人:威盛電子股份有限公司