專利名稱:用來進(jìn)行串行傳送通訊的方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明為有關(guān)于電子裝置之間的數(shù)據(jù)傳輸,尤其有關(guān)于用來進(jìn)行串行傳送通訊(Serial Transport Communication)的方法及相關(guān)裝置。
背景技術(shù):
傳統(tǒng)的便攜式電子裝置諸如移動電話(例如多功能移動電話)或個人數(shù)字助理(Personal Digital Assistant, PDA)為典型地被設(shè)計成具有分別符合不同的無線通信標(biāo)準(zhǔn)的多種無線通信功能。例如該些無線通信功能可包含藍(lán)牙(Bluetooth,BT)功能、無線保真(Wireless Fidelity,Wi-Fi)功能以及調(diào)頻(Frequency Modulation,FM)功能。依據(jù)相關(guān)技術(shù),針對傳統(tǒng)的可攜式電子裝置中的無線通信功能的實(shí)施可能遭遇某些問題。尤其 是,由于這些無線通信功能需要各自的驅(qū)動程序以及各自的傳送總線(Transport Bus),在傳統(tǒng)的可攜式電子裝置的架構(gòu)下針對這些驅(qū)動程序以及這些傳送總線進(jìn)行設(shè)計所遭遇的復(fù)雜度勢必成為重?fù)?dān),這是因?yàn)閭鹘y(tǒng)的可攜式電子裝置被預(yù)期要管理不同的傳送總線。如此,需要一種新穎的方法來實(shí)現(xiàn)具備單一傳送總線的可攜式電子裝置,以降低設(shè)計復(fù)雜度。
發(fā)明內(nèi)容
因此本發(fā)明的目的之一在于提供一種用來進(jìn)行串行傳送通訊(Serial TransportCommunication)的方法及相關(guān)裝置,以解決上述問題。本發(fā)明的一較佳實(shí)施例中提供一種進(jìn)行串行傳送通訊的方法,其中該方法為用來于多個裝置之間進(jìn)行通訊,而該多個裝置中的每一者提供用戶多個無線通信功能,且該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn)。該方法包含有下列步驟針對該多個無線通信功能中的第一無線通信功能,利用串行傳送協(xié)議(Serial Transport Protocol)透過傳送總線(Transport Bus)于該多個裝置之間進(jìn)行通訊;以及針對該多個無線通信功能中的第二無線通信功能,利用該串行傳送協(xié)議透過該傳送總線于該多個裝置之間進(jìn)行通訊。本發(fā)明的一較佳實(shí)施例中提供一種進(jìn)行串行傳送通訊的裝置,其中該裝置為用來與至少一其它裝置進(jìn)行通訊,而該其它裝置以及該裝置當(dāng)中的每一者提供用戶多個無線通信功能,且該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn)。該裝置包含有傳送總線;以及控制電路,耦接至該傳送總線。該傳送總線為用來進(jìn)行數(shù)據(jù)傳輸。另外,該控制電路為用來針對該多個無線通信功能中的第一無線通信功能,利用串行傳送協(xié)議(SerialTransport Protocol)透過該傳送總線于該裝置與該其它裝置之間進(jìn)行通訊。此外,該控制電路另用來針對該多個無線通信功能中的第二無線通信功能,利用該串行傳送協(xié)議透過該傳送總線于該裝置與該其它裝置之間進(jìn)行通訊。本發(fā)明的好處的一是,本發(fā)明的方法及裝置確保用來進(jìn)行串行傳送通訊的整體架構(gòu)能精巧化。由于采用該串行傳送協(xié)議,設(shè)計復(fù)雜度可大幅地降低。另外,基于該串行傳送協(xié)議,與數(shù)據(jù)傳輸無直接關(guān)系的經(jīng)常性控制時間得以減少,故所需的傳輸帶寬亦得以減少。
圖I為依據(jù)本發(fā)明一第一實(shí)施例的兩個用來進(jìn)行串行傳送通訊(SerialTransport Communication)的裝置的不意圖。圖2為圖I所示的兩個裝置中的一者的控制邏輯(Control Logic)于一實(shí)施例中的實(shí)施細(xì)節(jié)。圖3為依據(jù)本發(fā)明一實(shí)施例的一種用來進(jìn)行串行傳送通訊的方法的流程圖。圖4為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法中所涉及的封包格式。圖5為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法中所涉及的序列號/確認(rèn)(Sequence-Number/Acknowledgement)方案。圖6為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法中所涉及的逾時/重新傳輸 (Timeout/Retransmission)方案。圖7為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法中所涉及的非確認(rèn)/重新傳輸(Non-Acknowledgement/Retransmission)方案。圖8為圖3所示的根據(jù)本發(fā)明一實(shí)施例方法中所涉及的重設(shè)(Reset)方案。
具體實(shí)施例方式在本專利說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定的組件。所屬領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同的名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)貝U。在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式的用語,故應(yīng)解釋成“包含但不限定于”。另外,“耦接”一詞在此為包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表該第一裝置可直接電氣連接于該第二裝置,或透過其它裝置或連接手段間接地電氣連接至該第二裝置。請參考圖1,圖I為依據(jù)本發(fā)明第一實(shí)施例的兩個用來進(jìn)行串行傳送通訊(SerialTransport Communication)的裝置100與200 (分別標(biāo)示為“裝置I”與“裝置2” )的示意圖,其中裝置100與200當(dāng)中的每一者可用來與至少一其它裝置(諸如裝置100與200當(dāng)中的另一裝置)進(jìn)行通訊。于本實(shí)施例中,裝置100與200當(dāng)中的每一者提供用戶多個無線通信功能,其中該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn)。例如該多個無線通信功能可包含藍(lán)牙(Bluetooth,BT)功能、無線保真(Wireless Fidelity,Wi-Fi)功能以及調(diào)頻(Frequency Modulation,FM)功能。依據(jù)本實(shí)施例,裝置100的無線通信功能110_1、110-2、…與110-N分別等同于裝置200的無線通信功能210-1、210-2、...與210-N。如此,無線通信功能110-1、110-2、...與110-N于圖I分別標(biāo)示為“功能1”、“功能2”、...與“功能N”,且無線通信功能210-1、210-2、.與210-N于圖I亦分別標(biāo)示為“功能1,,、“功能2”、...與“功能N”。如圖I所示,裝置100具備一傳送驅(qū)動程序(Transport Driver) 130,且裝置100可利用一串行傳送協(xié)議(Serial Transport Protocol) 120透過同一個傳送驅(qū)動程序130進(jìn)行對應(yīng)于無線通信功能110-1、110-2、...與110-N中的任一者的通訊。另外,裝置200具備一傳送驅(qū)動程序230,裝置200且可利用一串行傳送協(xié)議220透過同一個傳送驅(qū)動程序230進(jìn)行對應(yīng)于無線通信功能210-1、210-2、...與210-N中的任一者的通訊。實(shí)作上,裝置100與200當(dāng)中的每一者可包含諸如圖I所示者的傳送總線(Transport Bus)至少一部分(例如一部分或全部)。例如裝置100與200共享同一個傳送總線,其中該傳送總線為用來進(jìn)行數(shù)據(jù)傳輸,且為本實(shí)施例的裝置100與200之間唯一的傳送總線。另外,裝置100與200當(dāng)中的每一者可另包含一控制電路,其中該控制電路為耦接至上述的傳送總線。一般而言,該控制電路可稱為控制邏輯(Control Logic),這是因?yàn)樵摽刂齐娐返囊徊糠挚衫媚?些)程序代碼來實(shí)施。請參考圖2,其繪示了該控制邏輯的例子以便于理解。所考慮的裝置中的該控制電路(例如裝置100與200當(dāng)中的任一者)可包含接收管理器(Receiver Handler, RX Handler) 22、接收錯誤管理單兀(RX ErrorHandling Unit) 24、接收分配器(RX Dispatcher) 26、發(fā)射管理器(Transmitter Handler,TX Handler) 32、發(fā)射錯誤管理單元(TX Error Handling Unit) 34、發(fā)射分配器(TXDispatcher) 36以及發(fā)射隊列單元(TX Queue Unit) 380于本實(shí)施例中,該控制電路的多個接收封包路徑從該傳送總線開始(于圖2標(biāo)示為“接收自傳送總線”),并通過接收管理器22、接收錯誤管理單元24與接收分配器26,且一直通到無線通信功能110-1、110-2、...與110-N/無線通信功能210-1、210-2、...與210-N才結(jié)束(于圖2標(biāo)示為“送至無線通信功能”)。然而,該控制電路的多個發(fā)射封包路徑從無線通信功能110-1、110-2、...與110-N/無線通信功能210-1、210-2、...與210-N開始(于圖2標(biāo)示為“接收自無線通信功能”), 并通過發(fā)射管理器32、發(fā)射隊列單元38與發(fā)射分配器36,且一直通到該傳送總線(于圖2標(biāo)示為“送至傳送總線”)。依據(jù)圖2所示的實(shí)施例,接收管理器22為用來從該傳送總線接收多個進(jìn)來的接收封包,而接收錯誤管理單元24為用來依據(jù)所考慮的裝置的串行傳送協(xié)議(例如裝置100的串行傳送協(xié)議120,或裝置200的串行傳送協(xié)議220)處理該些進(jìn)來的接收封包的錯誤(若存在任何錯誤),且接收分配器26為用來將接收封包分配(Dispatch)予無線通信功能110-1、110-2、...與110-N/無線通信功能210-1、210-2、...與210-N。另外,發(fā)射管理器32為用來從無線通信功能110-1、110-2、.與110-N/無線通信功能210-1,210-2,.與210-N接收多個進(jìn)來的發(fā)射封包,且發(fā)射隊列單元38為用來暫時地儲存該些進(jìn)來的發(fā)射封包。尤其是,藉由利用發(fā)射隊列單元38,該控制電路控制分別對應(yīng)于該些無線通信功能的多個發(fā)射封包(諸如該些進(jìn)來的發(fā)射封包中的一部分或全部)成為隊列,以供分別發(fā)送至該傳送總線,以共享該傳送總線。由于實(shí)施發(fā)射隊列單元38,發(fā)射封包不會通過發(fā)射錯誤管理單元34。發(fā)射錯誤管理單元34為用來依據(jù)所考慮的裝置的串行傳送協(xié)議(例如裝置100的串行傳送協(xié)議120,或裝置200的串行傳送協(xié)議220)處理該些進(jìn)來的發(fā)射封包,且發(fā)射分配器36為用來將預(yù)備好的發(fā)射封包分配予該傳送總線。由于圖2所示的安排,發(fā)射錯誤管理單元34可控制發(fā)射分配器36的分配運(yùn)作,尤其是可基于串行傳送協(xié)議120/串行傳送協(xié)議220來決定發(fā)射隊列單元38中的一發(fā)射封包是否應(yīng)當(dāng)分配予無線通信功能110-1、110-2、…與110-N/無線通信功能210-1、210-2、...與210-N中的一者。請注意,基于串行傳送協(xié)議120/串行傳送協(xié)議220,接收錯誤管理單元24與發(fā)射錯誤管理單元34可彼此溝通以進(jìn)行通訊控制、錯誤校正與重新傳輸。圖3為依據(jù)本發(fā)明一實(shí)施例的一種用來進(jìn)行串行傳送通訊的方法300的流程圖,其中方法300為用來于多個裝置(例如裝置100與200)之間進(jìn)行通訊,該多個裝置中的每一者提供使用者分別符合不同的無線通信標(biāo)準(zhǔn)的多個無線通信功能,諸如上述的多個無線通信功能。圖3所示的方法300可應(yīng)用于圖I所示的裝置100與200中的任一者,尤其是應(yīng)用于圖2所示實(shí)施例的控制電路。該方法說明如下于步驟310中,針對該多個無線通信功能中的第一無線通信功能,所考慮的裝置中的該控制電路(例如裝置100/裝置200中的該控制電路,如圖2所示)利用串行傳送協(xié)議諸如串行傳送協(xié)議120/串行傳送協(xié)議220透過傳送總線于該多個裝置(例如裝置100與200)之間進(jìn)行通訊,如圖I所示。尤其是,針對該第一無線通信功能,該控制邏輯利用串行傳送驅(qū)動程序(Serial Transport Driver)諸如傳送驅(qū)動程序130/傳送驅(qū)動程序230透過該傳送總線于該多個裝置(例如裝置100與200)之間進(jìn)行通訊。于步驟320中,針對該多個無線通信功能中的第二無線通信功能,所考慮的裝置中的該控制電路(例如裝置100/裝置200中的該控制電路,如圖2所示)利用該串行傳送協(xié)議(更明確而言,步驟310中所述的同一個串行傳送協(xié)議)透過該傳送總線(更明確而言,步驟310中所述的同一個傳送總線)于該多個裝置之間進(jìn)行通訊。尤其是,針對該第 二無線通信功能,該控制邏輯利用該串行傳送驅(qū)動程序(更明確而言,步驟310中所述的同一個串行傳送驅(qū)動程序)透過該傳送總線于該多個裝置(例如裝置100與200)之間進(jìn)行通訊。依據(jù)本實(shí)施例,該串行傳送驅(qū)動程序?yàn)橛脕砉芾斫邮兆?發(fā)送至該傳送總線的封包。該控制電路可利用同一個串行傳送驅(qū)動程序管理這些封包,其中這些封包可為分別對應(yīng)于該些無線通信功能的封包。另外,對該多個無線通信功能中的每一者,步驟310與步驟320中的任一步驟中所述的該串行傳送協(xié)議為關(guān)于使用該串行傳送驅(qū)動程序的共同協(xié)議。例如在所考慮的裝置是裝置100的狀況下,對該多個無線通信功能中的每一者,串行傳送協(xié)議120為關(guān)于使用同一個傳送驅(qū)動程序130的共同協(xié)議。又例如在所考慮的裝置是裝置200的狀況下,對該多個無線通信功能中的每一者,串行傳送協(xié)議220為關(guān)于使用同一個傳送驅(qū)動程序230的共同協(xié)議。請注意,在裝置100與裝置200是同一個裝置電子中的同一種裝置的狀況下,傳送驅(qū)動程序230可與傳送驅(qū)動程序130相同。這只是為了說明的目的而已,并非對本發(fā)明的限制。一般而言,裝置100與裝置200不必是同一種裝置。例如裝置100可為同一個裝置電子中的一主芯片(Host Chip),而裝置200可為同一個裝置電子中的一控制器芯片。實(shí)作上,串行傳送協(xié)議220可與串行傳送協(xié)議120相同。圖4為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法300中所涉及的封包格式。在符合步驟310中所述串行傳送協(xié)議的一封包(諸如于圖2所示實(shí)施例所述的那些封包中的一接收/發(fā)射封包)當(dāng)中,一標(biāo)頭是必須的,而一有效載荷(Payload)以及對應(yīng)的錯誤偵測信息諸如循環(huán)冗余檢查信息(Cyclic Redundancy Check Information,以下簡稱為“CRC信息”)則是可選擇的選項(即,非必須的)。例如該標(biāo)頭可包含4字節(jié)(bytes),而該有效載荷(payload)與該CRC信息(若存在)可分別包含99字節(jié)與2字節(jié)(bytes),其中該99字節(jié)可為待傳輸?shù)臄?shù)據(jù),而該CRC信息是藉由依據(jù)一預(yù)定循環(huán)冗余檢查規(guī)則對該數(shù)據(jù)進(jìn)行計算而產(chǎn)生。依據(jù)圖4所示的封包格式,該標(biāo)頭可區(qū)分為多個字段,而這些字段的例子可包含同步(Synchronization, Sync)字段SYNC、序列號(Sequence Number)字段SEQ、確認(rèn)(Acknowledgement)字段 ACK、非確認(rèn)(Non-Acknowledgement)字段 NAK、一種類字段TYPE、長度字段的兩個子字段LENGTH_8-11與LENGTH_0_7、以及檢查和(Checksum)字段CHECKSUM,其中子字段LENGTH_8-11代表該長度字段的第八至第i^一位,而子字段LENGTH_0-7代表該長度字段的第零至第七位。于本實(shí)施例中,同步字段SYNC、序列號字段SEQ、確認(rèn)字段ACK、非確認(rèn)字段NAK、種類字段TYPE、該長度字段的兩個子字段LENGTH_8-11與LENGTH_0-7、以及檢查和字段CHECKSUM的各自的位(bit)數(shù)分別為2位(2bits)、3位(3bits)、3 位(3bits)、l 位(Ibit)、3 位(3bits)、4 位(4bits)、8 位(8bits)與 8 位(8bits)。依據(jù)本實(shí)施例,序列號字段SEQ中的序列號是循環(huán)的(Cyclic),且可從0變化至7。確認(rèn)字段ACK中的值為典型地(Typically)被設(shè)定為與一先前接收的封包的序列號字段SEQ中相同的數(shù)值,亦即該先前接收的封包的序列號。于是,本實(shí)施例的確認(rèn)字段ACK中的值亦可從0變化至7。另外,設(shè)定于非確認(rèn)字段NAK中的數(shù)值0代表沒有錯誤;而設(shè)定于非確認(rèn)字段NAK中的數(shù)值I代表發(fā)生錯誤,尤其是代表偵測到錯誤的封包。至于種類字段TYPE,其內(nèi)的數(shù)值可予以變化以便指出本封包(亦即,包含此標(biāo)頭的封包)是復(fù)數(shù)種封包的某一種封包,諸如一藍(lán)牙主控制器接口(BT Host Controller Interface,BT HCI)封包、一
調(diào)頻封包、一全球定位系統(tǒng)(Global Positioning System,GPS)封包或一無線保真封包。如此,這個字段典型地對應(yīng)于上述多個無線通信功能中的一者。此外,在該長度字段的值為0的狀況下,本封包(亦即,包含此標(biāo)頭的封包)是一標(biāo)頭封包(Header-Only Packet),這表示本封包沒有任何有效載荷(因此,上述對應(yīng)的錯誤偵測信息在本封包中是不需要的。檢查和字段CHECKSUM中的一個示范性數(shù)值可為((字節(jié)
+ 字節(jié)[I]+ 字節(jié)[2])&0xFF);其中(字節(jié)
+字節(jié)[I] +字節(jié)[2])代表此標(biāo)頭的前三個字節(jié),也就是此標(biāo)頭當(dāng)中由同步字段SYNC起直到該長度字段(其包含子字段LENGTH_8-11與LENGTH_0_7)為止的三個字節(jié)。圖5為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法300中所涉及的序列號/確認(rèn)(Sequence-Number/Acknowledgement)方案,其中圖5所示的橫軸代表時間t,而在圖4所示的標(biāo)頭、有效載荷以及CRC信息當(dāng)中用來區(qū)別彼此的不同程度的陰影在此也用來繪示本實(shí)施例的某些封包的標(biāo)頭、有效載荷及/或CRC信息。該序列號/確認(rèn)方案為用來確保封包已被一同儕(Peer)裝置接收。在所考慮的裝置為裝置100的狀況下,該同儕裝置可為裝置200。在所考慮的裝置為裝置200的狀況下,該同儕裝置可為裝置100。為了便于理解,在該多個裝置諸如裝置100與200當(dāng)中,符號“A”可用來代表裝置100,而符號“B”可用來代表裝置200。另外,符號“CTRLCKT-A”可用來代表裝置A (即裝置100)中的該控制邏輯,而符號“CTRLCKT-B”可用來代表裝置B(即裝置200)中的該控制邏輯。于本實(shí)施例中,串行傳送協(xié)議220為輿串行傳送協(xié)議120相同,因此,標(biāo)號20可用來共同地代表串行傳送協(xié)議120與串行傳送協(xié)議220,以茲簡明?;诖袀魉蛥f(xié)議20,控制電路CTRLCKT-A典型地設(shè)定來自裝置A的多個第一封包中的一第一封包的序列號字段SEQ,以區(qū)別該第一封包以及該多個第一封包當(dāng)中的其它封包。例如該多個第一封包各自的序列號字段SEQ內(nèi)的序列號是循環(huán)的。如圖5的上半部所示,該多個第一封包中的某些封包各自的標(biāo)頭內(nèi)的序列號分別是0、1、2、3、...等(于第一行封包各自的標(biāo)頭分別標(biāo)示為“SEQ = 0,,、“SEQ = 1,,、“SEQ = 2,,、“SEQ = 3”、...等)。如此,該多個第一封包的序列號所形成的序列可為{{0,1,2,3,4,5,6,7},{0,1,2,3,4,5,6,7},...}。
基于串行傳送協(xié)議20,控制邏輯CTRLCKT-B典型地設(shè)定由裝置B送至裝置A的一第二封包的確認(rèn)字段ACK,以告知裝置A該第一封包已被裝置B接收、確認(rèn)。尤其是,基于串行傳送協(xié)議20,控制邏輯CTRLCKT-B將該第二封包的確認(rèn)字段ACK設(shè)定為該第一封包的序列號字段SEQ中的同一個數(shù)值。如圖5的下半部所示,由裝置B送至裝置A的該些第二封包中的某些封包各自的標(biāo)頭內(nèi)的確認(rèn)字段ACK中的值分別是0、1、1、2、2、...等(于第二行封包各自的標(biāo)頭分別標(biāo)示為“ACK = 0,,、“ACK = 1,,、“ACK = 1,,、“ACK = 2,,、“ACK= 2”、...等)。請注意,封包傳輸與封包處理可能導(dǎo)致封包確認(rèn)的延遲。于是,在控制邏輯CTRLCKT-B設(shè)定該第二封包的確認(rèn)字段ACK的那一刻,裝置B (尤其是其內(nèi)的控制邏輯CTRLCKT-B)將要確認(rèn)(或正在確認(rèn))的第一封包可能是由裝置A所送來的一先前第一封包,而非由裝置A剛送來的最新第一封包。這解釋了為何圖5所示的最左側(cè)第二封包(即第二行封包當(dāng)中沒有任何有效載荷的封包)被標(biāo)示為“ACK = O”而非標(biāo)示為“ACK = 1”,其中圖5所示的最左側(cè)第二封包告知裝置A :圖5所示的最左側(cè)第一封包(即第一行封包當(dāng)中標(biāo)頭被標(biāo)示了 “SEQ = O”的封包)已被裝置B接收、確認(rèn)。 依據(jù)本實(shí)施例,某些連續(xù)送出的第二封包各自的確認(rèn)字段ACK中的值可能相同,這是因?yàn)樵谶@些連續(xù)送出的第二封包中的最后一個封包的確認(rèn)字段ACK被設(shè)定的那一刻并沒有新的第一封包被確認(rèn)。例如在圖5所示的中央第二封包(即第二行封包當(dāng)中標(biāo)頭被標(biāo)示了 “SEQ = I”與“ACK = I”的封包)的確認(rèn)字段ACK被設(shè)定的那一刻,序列號為I的第一封包已被確認(rèn),而序列號為2的第一封包的確認(rèn)可能會因?yàn)榉獍鼈鬏斉c封包處理而延遲。對裝置A而言,可以設(shè)計具備未確認(rèn)(Unacknowledged)封包數(shù)(亦即,已經(jīng)送出但未被確認(rèn)的封包的數(shù)量)的容忍度,使得封包傳輸?shù)男艿陌l(fā)揮不受到任何妨礙。例如控制邏輯CTRLCKT-A對該多個第一封包當(dāng)中的未確認(rèn)封包的數(shù)量進(jìn)行計數(shù)。當(dāng)未確認(rèn)封包的數(shù)量達(dá)到一預(yù)定閾值時,控制邏輯CTRLCKT-A控制裝置A暫時地停止送出任何載有有效載荷(Payload)的封包。也就是說,在未確認(rèn)封包的數(shù)量未達(dá)到該預(yù)定閾值的狀況下,控制邏輯CTRLCKT-A可容忍未確認(rèn)封包的存在。實(shí)作上,該預(yù)定閾值小于可供設(shè)定于序列號字段內(nèi)的所有序列號的總數(shù),以預(yù)留傳輸延遲的寬裕時間(Margin)。于本實(shí)施例中,由于序列號字段SEQ內(nèi)的序列號是循環(huán)的且可從O變化至7,故可供設(shè)定于序列號字段內(nèi)的所有序列號的總數(shù)等于8,且該預(yù)定閾值可為7 (其小于8)。如以上所揭露,上述的有效載荷以及對應(yīng)的錯誤偵測信息諸如該CRC信息是可選擇的選項(即,非必須的)。依據(jù)本實(shí)施例,在裝置A所送出的該些第一封包當(dāng)中,控制邏輯CTRLCKT-B典型地確認(rèn)分別具有有效載荷的封包,而非確認(rèn)不具有任何有效載荷的封包。也就是說,上述的該第一封包是具有有效載荷的封包;并且,基于串行傳送協(xié)議20,控制邏輯CTRLCKT-B避免裝置B確認(rèn)任何未載有有效載荷的第一封包。依據(jù)本實(shí)施例,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-A針對裝置B而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-B。另外,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-B針對裝置A而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-A。為了簡明起見,相仿之處不再重復(fù)贅述。圖6為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法300中所涉及的逾時/重新傳輸(Timeout/Retransmission)方案,其中圖5所示的序列號/確認(rèn)方案及控制邏輯CTRLCKT-A與CTRLCKT-B的相關(guān)運(yùn)作可應(yīng)用于本實(shí)施例。
依據(jù)本實(shí)施例,控制邏輯CTRLCKT-A可觸發(fā)一重試定時器開始量測從上述的該第一封包送出起的一時間區(qū)間T6。例如所考慮的第一封包可為圖6所不的最左側(cè)第一封包的下一個封包(即第一行(row)封包當(dāng)中標(biāo)頭被標(biāo)示了“SEQ = 2”與“ACK = 0”的封包)??刂七壿婥TRLCKT-A偵測是否接收到任何用來確認(rèn)(Acknowledge)所考慮的第一封包的確認(rèn)封包(例如任何能確認(rèn)所考慮的第一封包的第二封包)。在沒有接收到任何用來確認(rèn)所考慮的第一封包的確認(rèn)封包的狀況下(例如沒有接收到任何于確認(rèn)字段ACK被設(shè)定為2的第二封包),當(dāng)該重試定時器指出逾時(例如時間區(qū)間T6達(dá)到一預(yù)定閾值U,控制邏輯CTRLCKT-A控制裝置A重送任何未被確認(rèn)的第一封包,諸如在時間區(qū)間T6內(nèi)被送出的兩個第一封包(即第一行封包當(dāng)中大約繪示于中央的兩個第一封包,也就是于標(biāo)頭分別被標(biāo)示了 “SEQ = 2”與“SEQ = 3”的連續(xù)兩個封包)。尤其是,控制邏輯CTRLCKT-A首先藉由送出一重新同步型樣(Re-Sync Pattern)RESYNC來開始該(多個)重送運(yùn)作,其中控制邏輯CTRLCKT-B典型地監(jiān)控進(jìn)來的封包中是否存在重新同步型樣RESYNC,以辨識這樣的狀況。例如重新同步型樣RESYNC可包含4字節(jié){0x7F,0x7F,0x7F,0x7F}。如圖6所示,緊接著重新同步型樣RESYNC后面出現(xiàn)的重送的 第一封包是第一行封包當(dāng)中標(biāo)頭被標(biāo)示了“SEQ = 2”與“ACK = 0”的封包的重試版本(亦SP,于標(biāo)頭被標(biāo)示了“重試”者),其中該重試版本的標(biāo)頭被重新標(biāo)示成“ACK = I”以繪示下列事實(shí)在圖6所示第二行封包當(dāng)中于標(biāo)頭被標(biāo)示了 “SEQ = I”與“ACK = I”的第二封包已被裝置A確認(rèn)。請注意,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-A針對裝置B而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-B。另外,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-B針對裝置A而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-A。為了簡明起見,本實(shí)施例與前述各個實(shí)施例/變化例相仿之處不再重復(fù)贅述。圖7為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法300中所涉及的非確認(rèn)/重新傳輸(Non-Acknowledgement/Retransmission)方案,其中圖5所示的序列號/確認(rèn)方案及控制邏輯CTRLCKT-A與CTRLCKT-B的相關(guān)運(yùn)作可應(yīng)用于本實(shí)施例。 依據(jù)本實(shí)施例,基于串行傳送協(xié)議20,控制邏輯CTRLCKT-B可設(shè)定由裝置B送至裝置A的一第二封包的非確認(rèn)字段NAK,以告知裝置A :有錯誤被偵測到。也就是說,當(dāng)偵測到錯誤時,控制邏輯CTRLCKT-B送出于非確認(rèn)字段NAK被設(shè)定為I的第二封包予裝置A。例如所考慮的第二封包可為于標(biāo)頭被標(biāo)示了 “SEQ = 0”、“ACK = I”與“NAK = I”的第二封包(即圖7所示的第二行封包當(dāng)中不具有任何有效載荷的封包),其中此第二封包為用來告知裝置A :有錯誤被偵測到。由于此第二封包的非確認(rèn)字段NAK被設(shè)定為1,其序列號字段SEQ處于不予理會(Don’ t Care)狀態(tài)且可帶有任意數(shù)值。 如圖7所示,控制邏輯CTRLCKT-B觸發(fā)一停止定時器開始量測從所考慮的第二封包送出起的一時間區(qū)間T7,并控制裝置B丟棄任何第一封包,直到該停止定時器指出逾時為止(例如時間區(qū)間17達(dá)到一預(yù)定閾值Tsttjp)。例如在第一行封包當(dāng)中于標(biāo)頭被標(biāo)示了 “SEQ = 2”與“ACK = 0”的第一封包的有效載荷的一部分710有錯誤的狀況下(例如此部分710原本就有錯誤,或者此部分710的內(nèi)容在封包傳輸期間被扭曲了),控制邏輯CTRLCKT-B丟棄載有此部分710的第一封包且另丟棄下一個第一封包。在時間區(qū)間T7達(dá)到預(yù)定閾值Tsttjp之后,控制邏輯CTRLCKT-B監(jiān)控進(jìn)來的封包中是否存在任何重新同步型樣RESYNC,以接收重送的封包。對裝置A而言,當(dāng)接收到所考慮的第二封包且偵測到所考慮的第二封包的非確認(rèn)字段NAK被設(shè)定為I時,控制邏輯CTRLCKT-A等待等同于預(yù)定閾值Tstop的一段時間,然后先藉由送出重新同步型樣RESYNC來開始該(些)重送運(yùn)作。例如重新同步型樣RESYNC可包含4字節(jié){0x7F,0x7F,0x7F,0x7F}。如圖7所示,緊接著重新同步型樣RESYNC后面出現(xiàn)的重送的第一封包是第一行封包當(dāng)中標(biāo)頭被標(biāo)示了“SEQ = 2”與“ACK = O”的封包的重試版本(亦即,于標(biāo)頭被標(biāo)示了“重試”者),其中該重試版本的標(biāo)頭被重新標(biāo)示成“ACK= I”以繪示下列事實(shí)在圖7所示第二行封包當(dāng)中于標(biāo)頭被標(biāo)示了 “SEQ= I”與“ACK= I”的第二封包已被裝置A確認(rèn)。請注意,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-A針對裝置B而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-B。另外,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-B針對裝置A而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-A。為了簡明起見,本實(shí)施例與前述各個實(shí)施例/變化例相仿之處不再重復(fù)贅述。圖8為圖3所示根據(jù)本發(fā)明一實(shí)施例的方法300中所涉及的重設(shè)(Reset)方案,其中圖5所示的序列號/確認(rèn)方案及控制邏輯CTRLCKT-A與CTRLCKT-B的相關(guān)運(yùn)作可應(yīng)用于本實(shí)施例。依據(jù)本實(shí)施例,基于串行傳送協(xié)議20,控制邏輯CTRLCKT-A可藉由進(jìn)行重新傳輸來重獲(Recover)裝置A與裝置B之間的傳輸,其中上述的重新傳輸?shù)倪\(yùn)作細(xì)節(jié)可參照圖5與圖6分別所示的實(shí)施例中的實(shí)施細(xì)節(jié)。當(dāng)偵測到重獲裝置A與裝置B之間的傳輸并不成功,控制邏輯CTRLCKT-A控制裝置A送出一重設(shè)型樣(Reset Pattern) RST以通知裝置B 需要重設(shè)裝置A與裝置B的間的傳輸。實(shí)作上,控制邏輯CTRLCKT-A可觸發(fā)一重設(shè)定時器開始量測從“重獲裝置A與裝置B之間的傳輸”開始起的一時間區(qū)間T8。在“重獲裝置A與裝置B之間的傳輸”不成功的狀況下,當(dāng)該重設(shè)定時器指出逾時(例如時間區(qū)間T8達(dá)到一預(yù)定閾值TKST),控制邏輯CTRLCKT-A控制裝置A送出重設(shè)型樣RST以通知裝置B :需要重設(shè)裝置A與裝置B之間的傳輸。當(dāng)接收到裝置A所送出的重設(shè)型樣RST,控制邏輯CTRLCKT-B控制裝置B送出另一個重設(shè)型樣RST以通知裝置A :裝置A所送出的重設(shè)型樣RST已收到。于是,裝置A與裝置B兩者均重設(shè)裝置A與裝置B之間的傳輸。 請注意,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-A針對裝置B而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-B。另外,只要不產(chǎn)生矛盾,控制邏輯CTRLCKT-B針對裝置A而進(jìn)行的運(yùn)作可應(yīng)用于控制邏輯CTRLCKT-A。為了簡明起見,本實(shí)施例與前述各個實(shí)施例/變化例相仿之處不再重復(fù)贅述。本發(fā)明的各個實(shí)施例的好處之一是,用來進(jìn)行串行傳送通訊的整體架構(gòu)得以精巧化。由于采用該串行傳送協(xié)議,設(shè)計復(fù)雜度可大幅地降低。另外,基于該串行傳送協(xié)議,與數(shù)據(jù)傳輸無直接關(guān)系的經(jīng)常性控制時間得以減少,故所需的傳輸帶寬亦得以減少。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種用來進(jìn)行串行傳送通訊的方法,該方法為用來于多個裝置之間進(jìn)行通訊,該多個裝置中的每ー者提供用戶多個無線通信功能,該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn),該方法包含 針對該多個無線通信功能中的第一無線通信功能,利用串行傳送協(xié)議透過傳送總線以在該多個裝置之間進(jìn)行通訊;以及 針對該多個無線通信功能中的第二無線通信功能,利用該串行傳送協(xié)議透過該傳送總線以在該多個裝置之間進(jìn)行通訊。
2.如權(quán)利要求I所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 針對該第一無線通信功能,利用串行傳送驅(qū)動程序透過該傳送總線以在該多個裝置之間進(jìn)行通訊;以及 針對該第二無線通信功能,利用該串行傳送驅(qū)動程序透過該傳送總線以在該多個裝置之間進(jìn)行通訊。
3.如權(quán)利要求2所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,該串行傳送驅(qū)動程序?yàn)橛脕砉芾斫邮兆?發(fā)送至該傳送總線的封包;以及對該多個無線通信功能中的每ー者,該串行傳送協(xié)議為關(guān)于使用該串行傳送驅(qū)動程序的共同協(xié)議。
4.如權(quán)利要求I所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 利用串行傳送驅(qū)動程序管理接收自/發(fā)送至該傳送總線的封包。
5.如權(quán)利要求4所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,對該多個無線通信功能中的每ー者,該串行傳送協(xié)議為關(guān)于使用該串行傳送驅(qū)動程序的共同協(xié)議。
6.如權(quán)利要求5所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 控制分別對應(yīng)于該多個無線通信功能的多個發(fā)送封包成為隊列,以供分別發(fā)送至該傳送總線,以共享該傳送總線。
7.如權(quán)利要求I所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 基于該串行傳送協(xié)議,設(shè)定來自該多個裝置中的第一裝置的多個第一封包中的第一封包的序列號字段,以區(qū)別該第一封包以及該多個第一封包當(dāng)中的其它封包。
8.如權(quán)利要求7所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 基于該串行傳送協(xié)議,設(shè)定由該多個裝置中的第二裝置送至該第一裝置的第二封包的一確認(rèn)字段,以告知該第一裝置該第一封包已被該第二裝置接收、確認(rèn)。
9.如權(quán)利要求8所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 對該多個第一封包當(dāng)中的未確認(rèn)封包的數(shù)量進(jìn)行計數(shù);以及 當(dāng)未確認(rèn)封包的數(shù)量達(dá)到ー預(yù)定閾值時,控制該第一裝置暫時地停止送出任何載有有效載荷的封包。
10.如權(quán)利要求9所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,基于該串行傳送協(xié)議,該多個第一封包各自的序列號字段內(nèi)的序列號是循環(huán)的;以及該預(yù)定閾值小于可供設(shè)定于序列號字段內(nèi)的所有序列號的總數(shù),以預(yù)留傳輸延遲的寬裕時間。
11.如權(quán)利要求8所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,設(shè)定該確認(rèn)字段的步驟另包含 基于該串行傳送協(xié)議,將該第二封包的該確認(rèn)字段設(shè)定為該第一封包的該序列號字段中的同一個數(shù)值。
12.如權(quán)利要求8所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,該第一封包為載有有效載荷的封包;以及該方法另包含 基于該串行傳送協(xié)議,避免該第二裝置確認(rèn)任何未載有有效載荷的第一封包。
13.如權(quán)利要求7所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 觸發(fā)一重試定時器開始量測從該第一封包送出起的時間區(qū)間; 偵測是否接收到任何用來確認(rèn)該第一封包的確認(rèn)封包;以及 在沒有接收到任何用來確認(rèn)該第一封包的確認(rèn)封包的狀況下,當(dāng)該重試定時器指出逾吋,控制該第一裝置重送任何未被確認(rèn)的第一封包。
14.如權(quán)利要求7所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 基于該串行傳送協(xié)議,設(shè)定由該多個裝置中的第二裝置送至該第一裝置的第二封包的一非確認(rèn)字段,以告知該第一裝置有錯誤被偵測到;以及 觸發(fā)停止定時器開始量測從該第二封包送出起的ー時間區(qū)間,并控制該第二裝置丟棄任何第一封包,直到該停止定時器指出逾時為止。
15.如權(quán)利要求7所述的用來進(jìn)行串行傳送通訊的方法,其特征在于,另包含 基于該串行傳送協(xié)議,藉由進(jìn)行重新傳輸來重獲該第一裝置以及該多個裝置中的第二裝置之間的傳輸;以及 當(dāng)偵測到重獲該第一裝置以及該第二裝置之間的傳輸并不成功,控制該第一裝置送出重設(shè)型樣以通知該第二裝置需要重設(shè)該第一裝置以及該第二裝置之間的傳輸。
16.一種用來進(jìn)行串行傳送通訊的裝置,該裝置為用來與至少ー其它裝置進(jìn)行通訊,該其它裝置以及該裝置當(dāng)中的每ー者提供用戶多個無線通信功能,該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn),該裝置包含有 傳送總線,用來進(jìn)行數(shù)據(jù)傳輸;以及 控制電路,耦接至該傳送總線,用來針對該多個無線通信功能中的第一無線通信功能,利用串行傳送協(xié)議透過該傳送總線以在該裝置與該其它裝置之間進(jìn)行通訊,以及用來針對該多個無線通信功能中的第二無線通信功能,利用該串行傳送協(xié)議透過該傳送總線以在該裝置與該其它裝置之間進(jìn)行通訊。
17.如權(quán)利要求16所述的用來進(jìn)行串行傳送通訊的裝置,其特征在干,針對該第一無線通信功能,該控制電路利用串行傳送驅(qū)動程序透過該傳送總線以在該裝置與該其它裝置之間進(jìn)行通訊;以及針對該第二無線通信功能,該控制電路利用該串行傳送驅(qū)動程序透過該傳送總線以在該裝置與該其它裝置之間進(jìn)行通訊。
18.如權(quán)利要求17所述的用來進(jìn)行串行傳送通訊的裝置,其特征在于,該串行傳送驅(qū)動程序?yàn)橛脕砉芾斫邮兆?發(fā)送至該傳送總線的封包;以及對該多個無線通信功能中的每一者,該串行傳送協(xié)議為關(guān)于使用該串行傳送驅(qū)動程序的共同協(xié)議。
19.如權(quán)利要求16所述的用來進(jìn)行串行傳送通訊的裝置,其特征在于,該控制電路利用串行傳送驅(qū)動程序管理接收自/發(fā)送至該傳送總線的封包。
20.如權(quán)利要求19所述的用來進(jìn)行串行傳送通訊的裝置,其特征在于,對該多個無線通信功能中的每ー者,該串行傳送協(xié)議為關(guān)于使用該串行傳送驅(qū)動程序的共同協(xié)議。
21.如權(quán)利要求20所述的用來進(jìn)行串行傳送通訊的裝置,其特征在于,該控制電路控制分別對應(yīng)于該多個無線通信功能的多個發(fā)送封包成為隊列,以供分別發(fā)送至該傳送總線, 以共享該傳送總線。
全文摘要
本發(fā)明提供一種用來進(jìn)行串行傳送通訊的方法與裝置,該方法為用來于多個裝置之間進(jìn)行通訊,該多個裝置中的每一者提供用戶多個無線通信功能,該多個無線通信功能分別符合不同的無線通信標(biāo)準(zhǔn),該方法包含針對該多個無線通信功能中的第一無線通信功能,利用串行傳送協(xié)議透過傳送總線于該多個裝置之間進(jìn)行通訊;以及針對該多個無線通信功能中的第二無線通信功能,利用該串行傳送協(xié)議透過該傳送總線于該多個裝置之間進(jìn)行通訊。所述的方法及相關(guān)裝置的好處之一是用來進(jìn)行串行傳送通訊的整體架構(gòu)得以精巧化。
文檔編號G06F13/38GK102779106SQ20121009306
公開日2012年11月14日 申請日期2012年3月31日 優(yōu)先權(quán)日2011年5月10日
發(fā)明者萬緯倫, 劉憲璋, 孫瑞廷, 莊佳璇, 王志亙, 許碩仁 申請人:聯(lián)發(fā)科技股份有限公司