同步至少兩套時間驅動引擎的系統和方法相關申請的交叉引用本申請要求于2012年3月6目遞交的第61/607,132號美國臨時申請的優先權,其公開內容通過引用的方式全部并入于此。技術領域本發明各實施方式涉及通信領域,并且更具體地涉及同步至少兩套時間驅動引擎的系統和方法。
背景技術:在時分多址TDMA或時分雙工TDD系統,例如時分同步碼分多址TD-SCDMA系統中,對各種時序的控制非常嚴格。可以說能否控制好各種時序是實現TD-SCDMA系統的關鍵。在這種情況下,時間驅動引擎有非常重要的作用,它提供諸如基帶、功率放大器和射頻等各個硬件模塊的開關時間。一般情況下,一個小型的TD-SCDMA系統只需要一套時間驅動引擎。但是在一些特殊的情況下,可能需要兩套或更多套時間驅動引擎。例如基站通過下行雙載波向一個用戶設備UE提供兩個下行通道,這時候可以給每個下行通道一套時間驅動引擎,分別負責各個通道的時序。盡管一個基站和UE有兩套時間驅動引擎,但是由于TD-SCDMA系統的同步要求,這兩套時間驅動引擎必須保持同步,也就是說這兩套時間驅動引擎必須有相同的時間計數值。
技術實現要素:根據本發明的一個方面,提出了一種用于同步至少兩套時間驅動引擎的系統,其中所述至少兩套時間驅動引擎共享一個時鐘輸入,所述至少兩套時間驅動引擎中的一套作為基準時間驅動引擎,而其他套作為可以通過調整而與所述基準時間驅動引擎同步的可調時間驅動引擎,所述至少兩套時間驅動引擎分別具有一個第一寄存器,隨著每個時鐘輸入周期的消逝,其值增加1,其中同步的目的是使得至少兩個第一寄存器的值相等;所述系統包括:至少一個第二寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲一個觸發調整的值;至少一個第三寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲所述觸發調整的值與所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值這兩者之和;確定單元,用于確定所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值;以及控制單元,用于控制所述至少一個第二寄存器和至少一個第三寄存器中值的存儲,以及當相應可調時間驅動引擎的第一寄存器的值隨著每個時鐘輸入周期的消逝,增加到所述相應可調時間驅動引擎的第二寄存器中存儲的所述觸發調整的值時,將所述相應可調時間驅動引擎的第一寄存器的值由所述相應可調時間驅動引擎的第三寄存器中的值替代。根據本發明的第二方面,提出了一種用于同步至少兩套時間驅動引擎的方法,其中所述至少兩套時間驅動引擎共享一個時鐘輸入,所述至少兩套時間驅動引擎中的一套作為基準時間驅動引擎,而其他套作為可以通過調整而與所述基準時間驅動引擎同步的可調時間驅動引擎,所述至少兩套時間驅動引擎分別具有一個第一寄存器,隨著每個時鐘輸入周期的消逝,其值增加1,其中同步的目的是使得至少兩個第一寄存器的值相等,所述方法包括:利用至少一個第二寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲一個觸發調整的值;利用至少一個第三寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲所述觸發調整的值與所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值這兩者之和;確定所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值;以及控制所述至少一個第二寄存器和至少一個第三寄存器中值的存儲,以及當相應可調時間驅動引擎的第一寄存器的值隨著每個時鐘輸入周期的消逝,增加到所述相應可調時間驅動引擎的第二寄存器中存儲的所述觸發調整的值時,將所述相應可調時間驅動引擎的第一寄存器的值由所述相應可調時間驅動引擎的第三寄存器中的值替代。根據本發明,能實現至少兩套時間驅動引擎之間的同步。附圖說明結合附圖并參考以下詳細說明,本發明各實施方式的特征、優點及其他方面將變得更加明顯,在此以示例性而非限制性的方式示出了本發明的若干實施方式。在附圖中:圖1示出了本發明可以在其中實施的無線通信系統;圖2示出了根據本發明的一個實施方式的用于同步兩套時間驅動引擎的系統的框圖;圖3示出了根據本發明的又一個實施方式的用于同步兩套時間驅動引擎的系統的框圖;圖4示出了根據本發明的又一個實施方式的用于同步兩套時間驅動引擎的系統的框圖;以及圖5示出了根據本發明的一個實施方式的用于同步兩套時間驅動引擎的方法的流程圖。在所有的上述附圖中,相同的標號表示具有相同、相似或相應的特征或功能。具體實施方式以下參照附圖詳細描述本發明的各實施方式。圖1示出了本發明可以在其中實施的無線通信系統100。如圖1所示,該無線通信系統100包括對應于第一小區的第一基站110,對應于第二小區的第二基站120、用戶設備130和140。第一基站110提供第一覆蓋范圍110-a,第二基站120提供第二覆蓋范圍120-a。這里,假定用戶設備130在第一覆蓋范圍110-a內。因此,用戶設備130通過無線鏈路150與第一基站110進行通信。用戶設備140在第二覆蓋范圍120-a內。因此,用戶設備140通過無線鏈路160與第二基站120進行通信。另外,第一基站110和第二基站120之間通過回程鏈路170進行通信。回程鏈路170可以是有線的,也可以是無線的。這里,假定第一基站110和第二基站120是時分多址TDMA或時分雙工TDD系統,例如TD-SCDMA系統中的基站,并且假定第一基站110和第二基站120是相鄰小區的基站。根據本發明的用于同步至少兩套時間驅動引擎的系統和方法可以實現在第一基站110和/或第二基站120中以及用戶設備130和/或140中。當然,本領域的技術人員可以理解,無線通信系統100中還可以包括更多或更少的基站、更多或更少的用戶設備。圖2示出了根據本發明的一個實施方式的用于同步兩套時間驅動引擎的系統200的框圖。這里需要指出的,為了簡單起見,圖2中只示出了對兩套時間驅動引擎進行同步。本領域的技術人員應該理解,本發明完全適用于對更多套時間驅動引擎進行同步。如圖200所示,兩套時間驅動引擎210和220共享一個時鐘輸入205,所述兩套時間驅動引擎210和220中的一套時間驅動引擎作為基準時間驅動引擎,而另一套時間驅動引擎作為可以通過調整而與所述基準時間驅動引擎同步的可調時間驅動引擎。不失一般性,這里假定時間驅動引擎210為基準時間驅動引擎,而時間驅動引擎220為可調時間驅動引擎。在同步多于兩套的時間驅動引擎的情況下,其中一套時間驅動引擎作為基準時間驅動引擎,而其他套時間驅動引擎作為可以通過調整而與所述基準時間驅動引擎同步的可調時間驅動引擎。兩套時間驅動引擎210和220分別具有第一寄存器211和221,隨著每個時鐘輸入周期205的消逝,其值增加1,其中同步的目的是使得所述兩個第一寄存器211和221的值相等。所述系統200包括:第二寄存器222,用于可調時間驅動引擎220,用于在所述基準時間驅動引擎210的第一寄存器211的值與可調時間驅動引擎220的第一寄存器221的值不相等時,存儲一個觸發調整的值;第三寄存器223,用于可調時間驅動引擎220,用于在所述基準時間驅動引擎210的第一寄存器211的值與可調時間驅動引擎220的第一寄存器221的值不相等時,存儲所述觸發調整的值與所述基準時間驅動引擎210的第一寄存器211的值和可調時間驅動引擎220的第一寄存器221的值之間的差值這兩者之和;確定單元230,用于確定所述基準時間驅動引擎210的第一寄存器211的值和可調時間驅動引擎220的第一寄存器221的值之間的差值;以及控制單元240,用于控制所述第二寄存器222和第三寄存器223中值的存儲,以及當可調時間驅動引擎220的第一寄存器221的值隨著每個時鐘輸入周期的消逝,增加到所述可調時間驅動引擎220的第二寄存器222中存儲的所述觸發調整的值時,將所述可調時間驅動引擎220的第一寄存器221的值由所述可調時間驅動引擎220的第三寄存器223中的值替代。根據本發明的該實施方式,以硬件方式來實現兩套時間驅動引擎210和220之間的同步。根據該實施方式,系統200還包括兩個第四寄存器214和224,分別用于時間驅動引擎210和220,用于響應于一個鎖存信號(例如來自控制單元240),同時地分別保存所述兩個第一寄存器211和221中的值。其中,所述確定單元230通過計算所述基準時間驅動引擎210的第四寄存器214的值和可調時間驅動引擎220的第四寄存器224的值之間的差值,來確定所述基準時間驅動引擎210的第一寄存器211的值和可調時間驅動引擎220的第一寄存器221的值之間的差值。兩套時間驅動引擎210和220之間的同步過程具體如下:(1):控制單元240發出鎖存信號,這個時候兩套時間驅動引擎210和220的第一寄存器(寄存器Base_CNT)211和221的值同步地分別保存到第四寄存器214和224(寄存器Latch_CNT)中。(2):由于兩個第四寄存器214和224的值是在同一時刻下捕獲的,確定單元230通過計算這兩個值的差值就可以知道兩套時間驅動引擎210和220的第一寄存器211和221之間的計數偏移。設基準時間驅動引擎210的第四寄存器214的值為TDMA1_Latch_CNT_VAL,可調時間驅動引擎220的第四寄存器224的值為TDMA2_Latch_CNT_VAL,它們之間的差值為ΔVal=TDMA1_Latch_CNT_VAL-TDMA2_Latch_CNT_VAL。不失一般性,假設TDMA1_Latch_CNT_VAL大于TDMA2_Latch_CNT_VAL。(3):通過(2)可以知道基準時間驅動引擎210的第一寄存器211的值比可調時間驅動引擎220的第一寄存器221的值大ΔVal。為了使這兩套時間驅動引擎210和220同步,根據該實施方式,使可調時間驅動引擎220的第一寄存器221的值增大ΔVal。(4):進行可調時間驅動引擎220的第一寄存器221的值的調整。將可調時間驅動引擎220的第二寄存器222(寄存器ADJUST_CNT)的值初始化為一個大于當前的可調時間驅動引擎220的第一寄存器221的值,例如為ADJUST_CNT_VAL。將可調時間驅動引擎220的第三寄存器223(寄存器INIT_CNT)的值設為(ADJUST_CNT_VAL+ΔVal)。當可調時間驅動引擎220的第一寄存器221的值增長到ADJUST_CNT_VAL的時候,將可調時間驅動引擎220的第三寄存器223(為ADJUST_CNT_VAL+ΔVal)的值保存到可調時間驅動引擎220的第一寄存器221中。這樣就實現了可調時間驅動引擎220的第一寄存器221的值增加了ΔVal,進而實現了兩套時間驅動引擎210和220之間的同步。根據本發明的另一個實施方式,以軟件方式實現兩套時間驅動引擎210和220之間的同步。軟件同步兩套時間驅動引擎210和220可以減少兩套時間驅動引擎210和220中的鎖存信號連接,并省略第四寄存器214和224,因此可以節省硬件資源。圖3示出了以軟件方式同步兩套時間驅動引擎的系統300的框圖。與圖2所示的以硬件方式同步兩套時間驅動引擎的系統200相比較,系統300沒有兩套時間驅動引擎中的鎖存信號連接,并且沒有第四寄存器214和224。由上文關于以硬件方式同步兩套時間驅動引擎可以知道同步兩套時間驅動引擎的關鍵是找出兩套時間驅動引擎在同一時刻的第一寄存器之間的差值。以軟件方式同步兩套時間驅動引擎和以硬件方式同步兩套時間驅動引擎的區別之一在于此,其他過程可以是一樣的。以軟件方式同步兩套時間驅動引擎的具體過程如下。假設確定單元230作為一個軟件運行在某個型號的CPU上,該CPU的頻率為Fcpu,兩套時間驅動引擎210和220的時鐘輸入的頻率為Ftdma,且Fcpu遠大于Ftdma。(1):確定單元230第一次讀取CPU的計數,設為Tc1。(2):隨后立即地,確定單元230讀取基準時間驅動引擎210的第一寄存器211的值,設為TDMA1_Latch_CNT_VAL。(3):確定單元230第二次讀取CPU的計數,設為Tc2。(4):隨后立即地,確定單元230讀取可調時間驅動引擎220的第一寄存器221的值,設為TDMA2_Latch_CNT_VAL。(5):確定單元230計算兩套時間驅動引擎210和220的第一寄存器211和212的值之間的差值為ΔVal=TDMA1_Latch_CNT_VAL+((Tc2-Tc1)/(Fcpu/Ftdma))-TDMA2_Latch_CNT_VAL。(6):在得到ΔVal之后,就可以通過以硬件方式同步兩套時間驅動引擎210和220過程中的(3)和(4)兩個操作來同步兩套時間驅動引擎210和220。在一個實施方式中,為了達到最佳的效果,上述的(1)和(3)中的第一次讀取和第二次讀取使用同一個函數,(2)和(4)中的讀取第一寄存器211和221的值也使用同一個函數,并且高速緩存(cache)需要關閉。軟件同步兩套時間驅動引擎的一個重要方面是利用CPU的Fcpu遠大于時間驅動引擎的時鐘輸入的頻率Ftdma來抵消軟件讀取帶來的計數誤差。圖4示出了根據本發明的又一個實施方式的同步兩套時間驅動引擎的系統400的框圖。與圖2所示的同步兩套時間驅動引擎的系統200相比較,在系統400中,基準時間驅動引擎210也有第二寄存器212和第三寄存器213。對于對更多套時間驅動引擎進行同步的情況,基準時間驅動引擎210與每個其他可調時間驅動引擎之間的同步處理,與上面所描述的基準時間驅動引擎210和可調時間驅動引擎220之間的同步處理相類似,并且基準時間驅動引擎210與每個可調時間驅動引擎之間的同步處理可以同時地進行。也就是說,在對更多套時間驅動引擎進行同步的系統中,還包括用于相應其他可調驅動引擎的第二寄存器和第三寄存器,并且有可能包括用于相應其他可調驅動引擎的第四寄存器。圖5示出了根據本發明的一個實施方式的用于同步至少兩套時間驅動引擎的方法500的流程圖。所述至少兩套時間驅動引擎共享一個時鐘輸入,所述至少兩套時間驅動引擎中的一套作為基準時間驅動引擎,而其他套作為可以通過調整而與所述基準時間驅動引擎同步的可調時間驅動引擎,所述至少兩套時間驅動引擎分別具有一個第一寄存器,隨著每個時鐘輸入周期的消逝,其值增加1,其中同步的目的是使得至少兩個第一寄存器的值相等。所述方法500包括:步驟S510,利用至少一個第二寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲一個觸發調整的值;步驟S520,利用至少一個第三寄存器,用于相應可調時間驅動引擎,用于在所述基準時間驅動引擎的第一寄存器的值與相應可調時間驅動引擎的第一寄存器的值不相等時,存儲所述觸發調整的值與所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值這兩者之和;步驟S530,確定所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值;以及步驟S540,控制所述至少一個第二寄存器和至少一個第三寄存器中值的存儲,以及當相應可調時間驅動引擎的第一寄存器的值隨著每個時鐘輸入周期的消逝,增加到所述相應可調時間驅動引擎的第二寄存器中存儲的所述觸發調整的值時,將所述相應可調時間驅動引擎的第一寄存器的值由所述相應可調時間驅動引擎的第三寄存器中的值替代。根據本發明的一個實施方式,方法500還包括:步驟S522,利用至少兩個第四寄存器,分別用于所述至少兩套時間驅動引擎,用于響應于一個鎖存信號,同時地分別保存所述至少兩個第一寄存器中的值;在該實施方式中,在步驟S530中,通過計算所述基準時間驅動引擎的第四寄存器的值和相應可調時間驅動引擎的第四寄存器的值之間的差值,來確定所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值。根據本發明的一個實施方式,在步驟S530中,通過在第一次讀取CPU的計數之后讀取所述基準時間驅動引擎的第一寄存器的值,在第二次讀取CPU的計數之后讀取相應可調時間驅動引擎的第一寄存器的值,并根據所述CPU的時鐘頻率和所述時鐘輸入的頻率,來確定所述基準時間驅動引擎的第一寄存器的值和相應可調時間驅動引擎的第一寄存器的值之間的差值。根據本發明的一個實施方式,第一次讀取CPU的計數和第二次讀取CPU的計數所采用的函數相同,并且讀取所述基準時間驅動引擎的第一寄存器的值和讀取相應可調時間驅動引擎的第一寄存器的值所采用的函數相同。根據本發明的一個實施方式,所述時間驅動引擎是時分多址TDMA或時分雙工TDD系統,例如TD-SCDMA系統中的時間驅動引擎。根據本發明的一個實施方式,所述方法500還包括:步驟S524,針對所述基準時間驅動引擎利用第二寄存器和第三寄存器。應當注意,為了使本發明更容易理解,上面的描述省略了對于本領域的技術人員來說是公知的、并且對于本發明的實現可能是必需的更具體的一些技術細節。因此,選擇并描述實施方式是為了更好地解釋本發明的原理及其實際應用,并使本領域普通技術人員明白,在不脫離本發明實質的前提下,所有修改和變更均落入由權利要求所限定的本發明的保護范圍之內。