專利名稱:一種提升傳輸數據包的效率的方法與裝置的制作方法
技術領域:
本發明涉及一種數據傳輸方法,更明確地說,有關一種可提高同時型傳輸類型數據包的傳輸效率的數據傳輸方法。
背景技術:
在通用串行總線(Universal Serial Bus, USB)協議3. O版中,包含四種傳輸類型控制型傳輸類型(control transfer type)、中斷型傳輸類型(interrupt transfer type)、巨量型傳輸類型(bulk transfer type),以及同時型傳輸類型(isochronous transfer type)。一般而言,同時型傳輸類型是應用于語音和視頻的傳輸,且由于語音與視頻的傳輸需為即時傳輸(real-time transfer),因此,在傳輸同時型傳輸類型的數據包時, 需以穩定的速度且持續地傳輸同時型傳輸類型的數據包,以避免造成接收端所接收的語音或視頻產生斷斷續續(不連續)的現象,或者與傳輸端所傳送的語音或視頻不同步(延遲) 的現象。
以USB 3. O為例,請參考圖1,圖1為說明一 USB 3. O數據包DP的數據包格式的示意圖。如圖1所示,數據包DP包含一檔頭(header)H,以及一數據負載P。檔頭H包含一型態資訊TP、一端點資訊(end point)EP>一連結命令字元(link command word)LW,以及一檔頭錯誤檢查碼CRCh。數據負載P包含一數據段D,以及一數據錯誤檢查碼CRCd。
型態資訊TP可用來判斷數據包DP的數據包類型。數據包類型,舉例來說,可為握手(handshake)、數據(data)…等。端點資訊EP可用來判斷數據包DP所屬的傳輸類型(如同時型傳輸類型)。連結命令字元LW用來表示數據連結的情況,且連結命令字元LW另包含一連結命令字元錯誤檢查碼CRClj與檔頭順序參數(Header Sequence Number) HSEQ0連結命令字元錯誤檢查碼CRQ用來判斷連結命令字元LW是否有錯誤。檔頭順序參數HSEQ用來判斷數據包DP的數據包順序是否有錯誤。檔頭錯誤檢查碼CRCh用來判斷檔頭H是否有錯誤。
數據段D提供傳送端實際所傳輸的數據,如語音數據、視頻數據…等。數據錯誤檢查碼CRCd用來判斷數據段D是否有錯誤。此外,數據段D可包含N筆數據SD廣SDn。
請參考圖2。圖2為說明在現有技術中傳輸同時型傳輸類型數據包的示意圖。在圖2中,傳送端T可為一主控端(host)或一裝置端(device),而接收端R則為一對應的裝置端或一對應的主控端。而傳輸端T與接收端R的數據處理從最底部依序分層為實體層 (physical layer)PH、數據連結層(data link layer)DL 與協議層(protocol layer)PR0 如圖2所示,當接收端R接收一來自于傳送端T的數據包DP1后,經過實體層PH的處理之后,接收端R的數據連結層DL會直接依據數據包DP1的連結命令字元錯誤檢查碼CRCu與檔頭錯誤檢查碼CRChi,判斷數據包DP1的檔頭H1是否正確。當判斷數據包DP1的檔頭H1正確后,接收端R才會根據數據包DP1的檔頭H1,對數據包DP1進行后續處理,如將數據包DP1往上傳送至接收端R的協議層PR以依據數據包DP1的數據負載P1中的數據錯誤檢查碼CRCdi 來判斷數據包DP1的數據負載P1是否正確,以及在判斷DP1的數據負載P1為正確后,根據協議所定義的事件及數據段D1的內容(數據SDn SD1N),產生對應的動作,如根據協議與數據段D1的內容,輸出語音或視頻數據。然而,當接收端R的數據連結層DL判斷數據包DP1的檔頭H1錯誤時,接收端R的數據連結層DL會直接發出一重新傳送信號Sketky至傳送端T,而使傳送端T得再重新傳送一次數據包DP115換句話說,即使數據包DP1是屬于同時型傳輸類型數據包,接收端R仍會針對檔頭錯誤的同時型傳輸類型數據包DP1發出一重試信號Sketky 至傳送端T,而使得傳送端T再重新傳送一次同時型傳輸類型數據包DP115如此一來,在傳輸語音或視頻時,會產生不必要的延遲,例如讓語音或視頻的斷斷續續的狀況更為嚴重,或者與傳送端之間的同步性更差,而造成使用者的不便。發明內容
為了解決在現有技術中傳輸同時型傳輸類型數據包的不連續與不同步的問題,提出了新的傳輸方法以及裝置,以提升在傳輸同時型傳輸類型數據包的效率并降低在傳輸語音或視頻時產生不連續與不同步的現象。
本發明在一實施例中,提供一種提升于通用串行總線通訊協議版本3. O版中傳輸同時性型傳輸類型的數據包的效率的方法。該方法包含從一傳送端接收一第一數據包、對該第一數據包的一檔頭進行錯誤碼檢查,以得出一檢查結果,以及當該檢查結果表示為錯誤時,忽略該第一數據包。
本發明在另一實施例中,提供一種提升于通用串行總線協議3. O版中傳輸同時型傳輸類型的數據包 的效率的方法。該方法包含當一傳送端從一接收端接收對應于一第一同時型傳輸類型數據包的一重新傳送信號時,該傳送端根據該第一同時型傳輸類型數據包的一第一檔頭序列參數,設定一第二同時型傳輸類型數據包的一第二檔頭序列參數,以及該傳送端傳送設定該第二檔頭序列參數后的該第二同時型傳輸類型數據包至該接收端。
本發明在又一實施例中,提供一種用于同時型通訊協議中傳送數據的裝置,該裝置包含一數據連結層裝置,用來根據一偵測信號,選擇性地傳送一偽裝數據包數據。
利用本發明所提供的傳輸方法,在數據連結層中對于有錯誤的同時型傳輸類型數據包,接收端并不會對傳送端發出重新傳送信號。除此之外,本發明另提供一傳輸方法,可使當傳送端接收到代表要求重新傳送上一次所傳送的同時型傳輸類型數據包的重新傳送信號時,傳送端不重新傳送上一次所傳送的同時型傳輸類型數據包,而直接傳送本次所要傳送的同時型傳輸類型數據包,以使得傳送端可以更快速地傳送后續的同時型傳輸類型數據包,如此便可以有效解決使用者在接收語音或視頻信號時產生不連續或者不同步的現象,提供給使用者更大的便利性。
圖1為說明一 USB 3. O數據包的數據包格式的示意圖2為說明在現有技術中傳輸同時型傳輸類型數據包的示意圖3為說明本發明的第一實施例的提升在USB協議3. O版中傳輸同時型傳輸類型的數據包的效率的方法的流程圖4A為說明本發明在同時型傳輸類型數據包的檔頭有錯誤的情況下,要求傳送端重新傳送數據包的示意圖4B為說明本發明在同時型傳輸類型數據包的檔頭有錯誤的情況下,不要求傳送端重新傳送數據包的示意圖5為說明本發明的第二實施例的提升在USB協議3. O版中傳輸同時型傳輸類型的數據包的效率的方法的流程圖6A為說明本發明在接收端要求傳送端重新傳送上次所傳送的同時型傳輸類型數據包的情況下,傳送端重新傳送上次所傳輸的數據包的示意圖6B為說明本發明在接收端要求傳送端重新傳送上次所傳送的同時型傳輸類型數據包的情況下,傳送端不再重新傳送上次所傳輸的數據包的示意圖7為說明本發明的用于傳輸同時型傳輸類型中的裝置的示意圖。
其中,附圖標記
300方法301 305步驟
ACKcTACK5確認信號
CRCh, CRCd, CRCl, CRCDh1、CRCd1、CRCu 錯誤檢查碼
DPJPcTDP5數據包D^D1數據段
DL數據連結層EP、EPjSj點資訊
H、H1檔頭hseq、HseqcTHseq4檔頭順序參數
LBAD確認錯誤LGOOD確認正確
Ne接收數據包數目Nt傳送數據包數目
P、P1數據負載PH實體層
PR協議層R接收端
SD1, SD2, SDn, SD11, SD12, SD1N數據
Seetey重新傳送信號T傳送端
TPJP1型態資訊LW、Lff1連結命令字元
700用于傳輸同時型傳輸類型中的裝置
711、712數據連結層裝置721、722協議層裝置
Sm、Sd2偵測信號DPcec> Dpeetey偽裝數據包數據具體實施方式
有鑒于此,本發明為了解決在現有技術中傳輸同時型傳輸類型數據包的不連續與不同步的問題,提出了新的傳輸方法,以提升在傳輸同時型傳輸類型數據包的效率并降低在傳輸語音或視頻時產生不連續與不同步的現象。
請參考圖3。圖3說明根據本發明的一第一實施例的提升在USB協議3. O版中傳輸同時型傳輸類型的數據包的效率的方法300的流程圖。在方法300中,假設傳輸端T欲傳輸兩個同時型傳輸類型數據包DP1與DP2,且數據包DP1與DP2所傳輸的順序是傳輸端T先傳輸數據包DP1至接收端R,然后再傳輸數據包DP2至接收端R。其步驟說明如下
步驟301 :接收端R接收從傳送端T傳送來的同時型傳輸類型數據包DP1 ;
步驟302 :依據同時型傳輸類型數據包DP1的連結命令字元錯誤檢查碼CRCu與檔頭錯誤檢查碼CRChi,對同時型傳輸類型數據包DP1的檔頭H1進行錯誤碼檢查,以分別得出連結命令子兀檢查結果Eu與檔頭檢查結果Em ;
步驟303 :依據連結命令字元檢查結果Eu與檔頭檢查結果Ehi,判斷同時型傳輸類型數據包DP1的檔頭H1是否正確;若正確,則繼續步驟304 ;若否,則跳到步驟305 ;
步驟304 :接受同時型傳輸類型數據包DP1,以進行后續處理;
步驟305 :忽略同時型傳輸類型數據包DP1,且不要求傳送端T重新傳送同時型傳輸類型數據包DP1,以使得傳送端T可直接傳送下一個同時型傳輸類型數據包DP2。
另外,上述的步驟30廣305在接收端R的數據連結層DL中所進行。
在步驟301中,從傳送端T接收數據包DP1時,依據數據包DP1中的型態資訊TP1與端點資訊EP1,可得知數據包DP1為同時型傳輸類型的數據包。
在步驟302中,數據包DP1的檔頭H1的錯誤檢查碼CRChi可為16比特的循環冗余檢查碼(Cyclic Redundancy Check 16,CRC-16),而錯誤檢查碼CRCu可為5比特的循環冗余檢查碼(CRC-5)。而判斷數據包DP1的檔頭H1是否正確的方式,舉例而言,可對數據包DP1 的檔頭H1與連結命令字元LW1分別進行循環冗余檢查。舉例來說,檔頭H1整體的循環冗余檢查,將數據包DP1的檔頭H1 (包含錯誤檢查碼CRChi)除以一預定除數CRCdh,以據以得一對應的余數CRCrh1。依據所得余數CRCehi ,可得檔頭檢查結果Eh1。而連結命令子兀檢查結果Eu 可以類似的方式得出。
在步驟303中,當余數CRCsm等于一預定值X時,檢查結果Em表示數據包DP1的檔頭H1為正確;當余數CRC khi不等于預定值X時,檢查結果Em表示數據包DP1的檔頭H1為錯誤。舉例而言,設預定值X為0,當余數CRCkhi等于O時,檢查結果Ehi表示數據包DP1的檔頭H1為正確;當余數CRCkhi不等于O時,檢查結果Ehi表示數據包DP1的檔頭H1為錯誤。而檢查結果Eu亦可以類似的方式來得知連結命令字元LW1為正確或錯誤。在本實施例中,當檢查結果Eu與Ehi皆為正確時,才判斷檔頭H1為正確;當檢查結果Eu與Em中有一者為錯誤時,則判斷檔頭H1為錯誤。
在步驟304中,在接收端R確定接受同時型傳輸類型數據包0 1后,便會將數據包 DP1上傳至協議層PR,以進行后續處理。而在協議層PR對于數據包DP1的處理如同前述,于此不再贅述。
在步驟305中,接收端R已經由檔頭檢查結果Ehi與Eu得知數據包DP1有誤,因此忽略數據包DP115然而為了提升傳輸效率,使傳送端T可更快傳送后續的數據包DP2,因此接收端R不要求傳送端T重新傳送數據包DP1,意即接收端R的數據連結層DL不會發出重新傳送信號Sketky至傳送端T,來要求傳送端T重新傳送數據包DP115更明確地說,若傳送端T被要求重新傳送數據包DP1,則傳送端T便得再次傳送數據包DP1,而因此后續的數據包DP2被發出的時間便會被延后而造成延遲,而產生如現有技術般在傳送語音或視頻時的問題。然而,由于本發明在步驟305中并不會要求傳送端T重新傳送數據包DP1,因此后續的數據包 DP2不會因此等待傳送端T重新傳送數據包DP1的時間,而可以即時地傳送至接收端R,如此以提升傳輸效率并改善在傳送語音或視頻時不連續或者不同步的問題。
請參考圖4A及圖4B。圖4B為說明本發明在同時型傳輸類型數據包的檔頭有錯誤的情況下,不要求傳送端T重新傳送數據包(步驟305)的示意圖。圖4A為說明在同時型傳輸類型數據包的檔頭有錯誤的情況下,要求傳送端T重新傳送數據包的示意圖(現有技術);圖48為說明在同時型傳輸類型數據包的檔頭有錯誤的情況下,不要求傳送端T重新傳送數據包的示意圖(本發明的步驟305);以此方式來說明本發明確能提高在傳送同時型傳輸類型數據包的傳輸效率。在圖4A及圖4B中,假設傳送端T欲依序傳送同時型傳輸類型數據包DPpDPyDPyDP4以及DP5。接收端R在接收到一數據包時,在數據連結層DL的處理中,皆會對該數據包的檔頭進行錯誤檢查,以據以發出一對應的確認信號ACK至傳送端 T,來告知傳送端T所傳送的數據包是否有被正確地接收。在圖4A中,舉例來說,當確認信號ACK表示為“LG00D”,則表示傳送端T所傳送的數據包有被正確地接收,而不需重新傳送; 當確認信號ACK表示為“LBAD”,則表示傳送端T所傳送的數據包沒有被正確地接收,而需要傳送端T重新傳送該數據包。也就是說,當確認信號ACK表示為“LBAD”時,則表示接收端R 發出一重新傳送信號Sketky,以要求傳送端T重新傳送該數據包。而從圖4B可以看出,數據包DP1在接收端R的數據連結層DL的處理中,被檢查出有錯誤。然而,對應于數據包DP1的確認信號ACK1仍為“LG00D”,如此傳送端T便視為成功傳送數據包DP1,而繼續傳送下一個數據包DP2。此外,接收端R經錯誤檢查得知數據包DP1有錯,所以實際上不會對數據包DP1 進行后續處理,而是直接忽略數據包DP115反觀圖4A,數據包DP1在接收端R的數據連結層 DL的處理中,被檢查出有錯誤。因此,對應于數據包DP1的確認信號ACK1便為“LBAD”,以告知傳送端T需重新傳送數據包DP115而傳送端T在第二次傳送數據包DP1時,接收端R的數據連結層DL在處理第二次接收到的數據包DP1時,仍發現有錯,對應于第二次傳送的數據包DP1的確認信號ACK2仍為“LBAD”,以告知傳送端T需重新傳送數據包DP115直到傳送端 T第三次傳送數據包DP1時,接收端R才正確地接收到數據包DP1,而回應“LG00D”的確認信號ACK3至傳送端T,如此傳送端才可繼續傳送下一個數據包DP2。如此看來,在相同的時間中,圖4B已將五個數據包DP廣DP5傳送完畢;而圖4A卻僅傳送了三個 數據包DP廣DP3。雖然圖4B所接收到的數據包DP1是錯誤的,但是這樣的狀況,在進行語音或視頻的傳輸時,是可以被允許的,而換來的是傳輸效率的提升。相較之下,圖4A所接收到的數據包都是正確的, 可是傳輸效率卻因為重新傳送的關系而下降。這樣的情況,在進行語音或視頻的傳輸時,有可能會造成傳輸端T與接收端R的語音或視頻信號彼此間的同步性差異太大,而造成使用者的困擾。
另外,在進行USB協議3. O版的傳輸時,傳送端T有一傳送數據包計數器CT,用來計數傳送數據包數目Ντ,以在欲傳送的數據包內的檔頭序列參數HSEQ填入正確的值;接收端R有一接收數據包計數器CK,用來計數接收數據包數目Νκ,以判斷所接收的數據包DP的檔頭序列參數HSEQ的值是否正確。在傳送端T與接收端R進行初始化溝通之前,傳送端T 會先同步傳送端T的傳送數據包數目Nt與接收端R的接收數據包數目Νκ。更明確地說,在傳送端T與接收端R進行初始化溝通之前,傳送端T會先將傳送數據包計數器Ct的傳送數據包數目Nt重置為預設值N1,并發出同步序列信號Sseq至接收端R,以使接收端R將接收數據包計數器Ck的接收數據包數目Nk重置為預設值N1,并且通知接收端R在每次正確接收數據包后,就將接收數據包數目Nk增加步階數目Nstep。如此一來,每當傳送端T接收到接收端 R所回應的代表“LG00D”的確認信號ACK (意即接收端R已正確接收數據包),傳送端T就會將傳送數據包數目Nt增加一步階數目Nstep。舉例來說,當傳送端T要傳送第一個數據包 DP0時,傳送端T會根據傳送數據包數目Nt的值(N1),以將數據包DPtl的檔頭序列參數HSEQtl的值設為K。當接收端R接收到數據包DPci時,接收端R會比較數據包DPci的檔頭序列參數 HSEQ0的值(N1)與接收數據包數目Nk的值(N1)。若檔頭序列參數HSEQtl的值與接收數據包數目Nk相等(N1),則接收端R判斷數據包DPtl的數據包順序正確;反之,若不相等,則接收端R判斷數據包DPtl的數據包順序不正確。在接收端R正確接收數據包DPtl之后,接收端R 會將接收數據包數目Nk的值增加步階數目Nstep。此時,接收數據包數目Nk的值變為(N1 + Nstep),且接收端R會發出代表“LG00D”的確認信號ACK至傳送端T,以通知傳送端T,將傳送數據包數目Nt的值增加步階數目Nstep。如此一來,當傳送端T要傳封送數據包DPci的下一個數據包DP1時,傳送端T會根據傳送數據包數目Nt的值,將數據包DP1的檔頭序列參數 HSEQ1的值設為(N1 + Nstep)。因此當接收端R接收到數據包DP1后,可比較接收數據包數目 Ne的值與檔頭序列參數HSEQ1的值,以判斷數據包DP1的數據包順序是否正確。
請參考圖5。圖5為說明根據本發明的一第二實施例的提升在USB協議3. O版中傳輸同時型傳輸類型的數據包的效率的方法500的流程圖。在方法500中,假設傳輸端T 欲傳輸兩個同時型傳輸類型數據包DPtl與DP115也就是說,傳輸端T的緩沖存儲器內有數據包DPtl與數據包DP1等待被傳送。數據包DPtl與DP1所傳輸的順序是傳輸端T先傳輸數據包 DP0至接收端R,然后再傳輸數據包DP1至接收端R。在本實施例中,當接收端R在接收數據包DPtl后,接收端R根據同時型傳輸類型數據包DPtl的連結命令字元錯誤檢查碼CRCui與檔頭錯誤檢查碼CRChci,判斷所接收的連結命令字元LWtl或檔頭Htl有錯誤,而發出一重新傳送信號Sketky至傳送端T,來要求傳送端T得再重新傳送一次同時型傳輸類型數據包DPtlt5其步驟說明如下
步驟501 :傳送端T接收從接收端R傳送來的要求傳送端T再重新傳送一次同時型傳輸類型數據包DPtl的重新傳送信號Sketky ;
步驟502 :依據同時型傳輸類型數據包DPtl的檔頭序列參數HSEQtl的值,以設定同時型傳輸類型數據包DP1的檔頭序列參數HSEQ1的值;
步驟503 :不發送同時型傳輸類型數據包DP。,而直接傳送同時型傳輸類型數據包 DP10
另外,上述的步驟50廣503在傳送端T的數據連結層DL中所進行。
在步驟501中,傳送端T根據重新傳送信號Sketky,可得知接收端R未成功接收傳送端T上次所傳送的數據包(在本實施例中即為數據包DPtl),且依據傳送端T的緩沖存儲器中的數據包DPci中的型態資訊TPci與端點資訊EPci,傳送端T可知數據包DPci為同時型傳輸類型的數據包。
在步驟502中,由于傳送端T未接收到代表“LG00D”的確認信號ACK。因此,傳送端T的傳送數據包數目Nt的值不會增加步階數目Nstep。更明確地說,此時,傳送端T的傳送數據包數目Nt的值等于數據包DPci的檔頭序列參數HSEQci的值。因此,傳送端T根據傳送數據包數目Nt的值(等于檔頭序列參數HSEQtl的值),以設定數據包DP1的檔頭序列參數 HSEQ1的值。舉例而言,若數據包DPtl的檔頭序列參數HSEQtl的值為0,此時傳送端T將緩沖存儲器中的數據包DP1的檔頭序列參數HSEQ1的值設定為O。
在步驟503中,傳送端T直接傳送數據包DP115由于數據包DP1的檔頭序列參數 HSEQ1的值被設為等于數據包DPtl的檔頭序列參數HSEQtl的值,且由于接收端R未正確接收數據包DPci,因此接收端R的接收數據包數目Nk的值仍維持等于檔頭序列參數HSEQci的值,因此,當接收端R接收到數據包DP1時,由于數據包DP1的檔頭序列參數HSEQ1的值等于檔頭序列參數HSEQtl的值(意即檔頭序列參數HSEQ1的值與接收數據包數目Nk的值相等),因此接收端R會判斷數據包DP1的數據包順序正確。
請參考圖6A與圖6B。圖6B為說明本發明在接收端R要求傳送端T得再重新傳送一次傳送端T上次所傳輸的同時型傳輸類型數據包的情況下,傳送端T不再重新傳送上次所傳輸的數據包(步驟503)的示意圖。在圖6A及圖6B中,設傳送端T已發出序列信號Sseq 至接收端R。傳送端T將傳送數據包數目Nt重置為預設值N1 (在圖6A及圖6B中,設預設值 N1為O)。接收端R將接收數據包數目Nk也重置為預設值N1 (O)。且設步階數目NstepS I。 圖6A為說明在接收端R要求傳送端T得再重新傳送一次傳送端T上次所傳輸的同時型傳輸類型數據包的情況下,傳送端T再重新傳送上次所傳輸的數據包的示意圖(現有技術); 圖6B為說明接收端R要求傳送端T得再重新傳送一次傳送端T上次所傳輸的同時型傳輸類型數據包的情況下,傳送端T不再重新傳送數據包的示意圖(本發明的步驟503);以此方式來說明本發明確能提高USB 3. O版在傳送同時型傳輸類型數據包的傳輸效率。在圖6A 及圖6B中,假設傳送端T欲依序傳送同時型傳輸類型數據包DPc^DPpDPyDP3以及DP4。從圖6A中,數據包DP1在接收端R的數據連結層DL的處理中,被檢查出有錯誤。因此,接收端 R的接收數據包數目Nk仍維持等于1,且接收端R會發出對應于數據包DP1的確認信號ACK1 為“LBAD”,以要求傳送端T重新傳送數據包DP115因此,傳送端T的傳送數據包數目Nt也維持等于I。在圖6A,傳送端T會重新傳送數據包DP115然而,在圖6B中,傳送端T不會重新傳送數據包DP115而是根據此時傳送數據包數目Nt的值(等于數據包DP1的檔頭序列參數 HSEQ1)來設定數據包DP2的檔頭序列參數HSEQ2,并將DP2傳送至接收端R。因此,當接收端 R接收到檔頭序列參數HSEQ2已被更改為I的數據包DP2時,接收端R根據接收數據包數目 Nk(等于I)與檔頭序列參數HSEQ2 (等于1),會判斷數據包DP2的數據包順序為正確。若數據包DP 2的檔頭序列參數HSEQ2未被設定為I,則接收端R根據接收數據包數目Nk (等于I) 與檔頭序列參數HSEQ2 (不等于1),會判斷在傳輸的過程中,遺漏了檔頭序列參數HSEQ為I 的數據包。此時,接收端R會判斷與傳送端T已不同步,而發出一同步請求信號Ssyn至傳送端T,以要求傳送端T重新同步。在圖6B中,傳送端T在傳送完數據包DP2后,接收端R正確接收數據包DP2,并且將接收數據包數目Nk (等于I)增加步階數目Nstep,而使接收數據包數目Nk變成2。接收端R會發出對應于數據包DP2的“LG00D”的確認信號ACK2。因此,傳送端T會將傳送數據包數目Nt增加步階數目Nstep,而使傳送數據包數目Nt變成2。如此一來,當傳送端T要傳送數據包DP3時,由于傳送數據包數目Nt與接收數據包數目Nk相等,因此,傳送端T就可設定正確的檔頭序列參數HSEQ3,以使得接收端R判斷數據包順序正確,而不會發出同步請求信號SSYN。如此一來,在相同的時間中,圖6B已將五個數據包DPcTDP4傳送完畢;而圖6A卻僅傳送了四個數據包DPcTDPp雖然圖6B所接收到的數據包DP1是錯誤的,且傳送端T未重新傳送DP115然而上述的狀況,在進行語音或視頻的傳輸時,是可以被允許的,而換來的是傳輸效率的提升。相較之下,圖6A所接收到的數據包都是正確的,可是傳輸效率卻因為重新傳送的關系而下降。這樣的情況,在進行語音或視頻的傳輸時,有可能會造成傳輸端T與接收端R的語音或視頻信號彼此間的同步性差異太大,而造成使用者的困擾。
請參考圖7。圖7為說明本發明的用于傳輸同時型傳輸類型中的裝置700的示意圖。裝置700用來傳送數據。裝置700包含第一數據連結層裝置711、第二數據連結層712、 第一協議層裝置721,以及第二協議層裝置722。裝置700為根據本發明的第一實施例與第二實施例所衍生。如圖7所示,當第一數據連結層裝置711與第一協議層裝置721為傳送端時,第二數據連結層裝置712與第二協議層裝置為接收端;當第一數據連結層裝置711 與第一協議層裝置721為接收端時,第二數據連結層裝置712與第二協議層裝置為傳送端。 第一數據連結層裝置711與第二數據連結層裝置712皆能偵測彼此之間所傳輸的數據以據以分別產生偵測信號Sdi與SD2。舉例來說,設第一數據連結層裝置711與第一協議層裝置 721為接收端、第二數據連結層裝置712與第二協議層裝置722為傳送端。當第一數據連結層裝置711偵測到傳輸的數據包有一 CRC錯誤時,偵測信號Sdi指示出該CRC錯誤,而第一數據連結層裝置711便據以傳送一偽裝數據包數據DPrac至第二數據連結層裝置712,其中偽裝數據包數據DPac包含對應于該CRC錯誤的錯誤數據包數據。第二數據連結層裝置712 將所接收的偽裝數據包數據DPaffi進行處理,再傳送至第二協議層裝置722。當第二數據連結層裝置711偵測到從第一數據連結層裝置712所傳送來的重傳信號時,偵測信號Sd2表示需重傳一第一數據包,而第二數據連結層裝置712便據以傳送一偽裝數據包數據DPketky至第一數據連結層裝置711,其中偽裝數據包數據DPketky包含相異于該第一數據包的一第二數據包數據。第一數據連結層裝置711將所接收的偽裝數據包數據DPketky進行處理,再傳送至第一協議層裝置721。此外,第二數據包可為第一數據包的下一個待傳送的數據包。
綜上所述,利用本發明所提供的傳輸方法,在數據連結層中對于有錯誤的同時型傳輸類型數據包,接收端并不會對傳送端發出重新傳送信號。除此之外,本發明另提供一傳輸方法,可使當傳送端接收到代表要求重新傳送上一次所傳送的同時型傳輸類型數據包的重新傳送信號時,傳送端不重新傳送上一次所傳送的同時型傳輸類型數據包,而直接傳送本次所要傳送的同時型傳輸類型數據包,以使得傳送端可以更快速地傳送后續的同時型傳輸類型數據包,如此便可以有效解決使用者在接收語音或視頻信號時產生不連續或者不同步的現象,提供給使用者更大的便利性。當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
權利要求
1.一種提升于通用串行總線協議中傳輸同時型傳輸類型的數據包的效率的方法,其特征在于,該方法包含當一傳送端從一接收端接收對應于一第一同時型傳輸類型數據包的一重新傳送信號時,該傳送端根據該第一同時型傳輸類型數據包的一第一檔頭序列參數,設定一第二同時型傳輸類型數據包的一第二檔頭序列參數;以及該傳送端傳送設定該第二檔頭序列參數后的該第二同時型傳輸類型數據包至該接收端。
2.根據權利要求1所述的方法,其特征在于,該傳送端傳送數據包的順序為先傳送該第一同時型傳輸類型數據包后,再傳送該第二同時型傳輸類型數據包。
3.根據權利要求2所述的方法,其特征在于,該傳送端根據該第一同時型傳輸類型數據包的該第一檔頭序列參數,設定該第二同時型傳輸類型數據包的該第二檔頭序列參數包含該傳送端設定該第二同時型傳輸類型數據包的該第二檔頭序列參數的值為該第一檔頭序列參數的值。
4.根據權利要求3所述的方法,其特征在于,另包含在該傳輸端傳輸該第一同時型傳輸類型數據包前,該傳輸端同步該傳送端與該接收端。
5.根據權利要求4所述的方法,其特征在于,在該傳輸端同步該傳送端與該接收端包含該傳輸端將該傳輸端的一傳送數據包計數器的計數值重置為一預定值;以及該傳輸端傳輸一同步序列信號至該接收端以使該接收端的一接收數據包計數器的計數值重置為該預定值。
6.根據權利要求5所述的方法,其特征在于,另包含該傳輸端控制該傳送數據包計數器在每次傳送一數據包后,該傳送數據包計數器的計數值增加一歩階數目;以及該傳輸端通知該接收端控制該接收數據包計數器在每次正確接收一數據包后,該接收數據包計數器的計數值增加該歩階數目。
7.根據權利要求6所述的方法,其特征在于,另包含當該傳輸端從該接收端接收到該重新傳送信號時,該傳輸端控制該傳送數據包計數器的計數值不增加該歩階數目。
8.根據權利要求7所述的方法,其特征在于,該第一同時型傳輸類型數據包的該第一檔頭序列參數為該傳輸數據包計數器的計數值。
9.根據權利要求1所述的方法,其特征在于,另包含該傳送端根據該第一同時型傳輸類型數據包中的一型態資訊與一端點資訊,以判斷該第一數據包為同時型傳輸類型的數據包。
10.根據權利要求1所述的方法,其特征在于,當該傳送端為一主控端時,該接收端為一裝置端;當該接收端為該主控端時,該傳送端為該裝置端。
11.一種用于同時型通訊協議中傳送數據的裝置,其特征在于,包含一數據連結層裝置,用來根據一偵測信號,選擇性地傳送一偽裝數據包數據。
12.根據權利要求11所述的裝置,其特征在于,當該偵測信號為一CRC錯誤信號,該數據連結層裝置傳送包含該偽裝數據包數據,其中該偽裝數據包數據包含一對應于該CRC錯誤信號的錯誤數據包數據。
13.根據權利要求12所述的裝置,其特征在于,另包含一協議層裝置,用來接收該偽裝數據包數據。
14.根據權利要求11所述的裝置,其特征在于,當該偵測信號為一重傳信號且指示一第一數據包數據需要重傳,該數據連結層裝置傳送該偽裝數據包數據,其中該偽裝數據包數據包含一相異于該第一數據包數據的第二數據包數據。
15.根據權利要求14所述的裝置,其特征在于,另包含一協議層裝置,用來接收該偽裝數據包數據。
全文摘要
本發明公開一種提升傳輸數據包的效率的方法與裝置。該方法包含當一傳送端從一接收端接收對應于一第一同時型傳輸類型數據包的一重新傳送信號時,該傳送端根據該第一同時型傳輸類型數據包的一第一檔頭序列參數,設定一第二同時型傳輸類型數據包的一第二檔頭序列參數;以及該傳送端傳送設定該第二檔頭序列參數后的該第二同時型傳輸類型數據包至該接收端。
文檔編號H04L1/16GK103001733SQ20121032629
公開日2013年3月27日 申請日期2010年11月24日 優先權日2010年11月24日
發明者張倬炫, 許銘勛, 謝登全 申請人:鈺創科技股份有限公司