時鐘同步方法及裝置與流程
2023-12-03 12:08:41 2

本發明涉及通信技術,尤其涉及一種時鐘同步方法及裝置。
背景技術:
在通信系統中,一些設備有時鐘同步的需求,例如,在移動承載網絡中,需要給無線基站提供同步時鐘參考源,無線基站之間在軟切換時,如果無線網絡控制器(Radio Network Controller,簡稱RNC)和基站(NodeB)沒有時鐘同步,就可能導致通話連接不能建立起來,而且時間和頻率的偏差還會影響移動臺(Mobile Station,簡稱MS)在基站間切換的成功率。常用要求時鐘同步的設備使用1PPS(1脈衝每秒)信號作為系統工作時鐘源。但因為設備之間的距離可能非常遠,因此不能直接將1PPS脈衝電平信號通過線纜來傳輸。
現有技術中常用的時鐘同步的方法是,如圖1所示,設備A從時鐘源獲得工作時鐘,並直接將時鐘信息T0打包成數據包,通過傳輸線發送給設備B。設備B收到數據包後,解析數據包,得到本地時鐘與數據包中描述的時鐘的差異,再調整本地時鐘。但是,上述方法存在以下缺陷:
(1)由於打包延遲、發送延遲、解析延遲,會導致設備之間的時鐘存在相位差而實現達到真正的時鐘同步;
(2)由於不同設備之間的信號傳輸延遲不同,導致同步後的設備的相位差不同;
(3)一般設備只支持1PPS時鐘輸入,而不支持從數據包上獲得時鐘信息,並調整系統時鐘。
技術實現要素:
本發明實施例的目的是提供一種時鐘同步方法及裝置,能有效解決現有技術存在打包延遲、發送延遲、解析延遲以及設備間傳輸延遲不一致的問題,實現高精度的時鐘同步。
為實現上述目的,本發明實施例提供了一種時鐘同步方法,包括步驟:
第一微控制器打包請求數據包後,以時鐘同步的方式向第二微控制器發送請求數據包;
所述第一微控制器接收到所述第二微控制器回送的響應數據包後,解析所述響應數據包,從而獲得所述第二微控制器接收所述請求數據包的時刻點和打包響應數據包的時刻點;其中,所述響應數據包由第二微控制器以時鐘同步的方式回送;
所述第一微控制器根據四個時刻點進行聯立方程後,計算獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差;所述四個時刻點包括所述第一微控制器打包所述請求數據包的時刻點和接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點;
所述第一微控制器根據所述第一時鐘相位差調節本地時鐘的周期,從而輸出與所述第二微控制器同步的時鐘。
與現有技術相比,本發明公開的時鐘同步方法通過第一微控制器向第二微控制器發送請求數據包,第二微控制器接收到所述請求數據包後回送響應數據包,所述第一微控制器將其打包所述請求數據包的時刻點和接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點、第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程求解後,可獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差,根據所述第一時鐘相位差即可調節本地時鐘以實現時鐘同步,本方案採用第一微控制器和第二微控制器的雙向傳輸,解決了現有技術採用設備間的單向傳輸存在打包延遲、發送延遲、解析延遲以及設備間傳輸延遲不一致的問題,精確度高;採用獨立的微控制器實現時鐘同步,與設備間的業務通信通道相獨立,抗幹擾性高,成本低廉。
作為上述方案的改進,所述第一微控制器和第二微控制器通過對應的串行通信口傳輸所述請求數據包和響應數據包。通過串行通信口傳輸,具有穩定的特點
作為上述方案的改進,所述第一微控制器和第二微控制器通過對應的乙太網接口傳輸所述請求數據包和響應數據包。乙太網接口具有傳輸快速的特點,同步的精度較高。
作為上述方案的改進,所述第一微控制器和第二微控制器均包括溫度補償振蕩器、PWM模塊和通用輸入輸出管腳,所述溫度補償振蕩器用於為所述PWM模塊提供工作時鐘,所述PWM模塊用於調節時鐘的周期和佔空比,所述通用輸入輸出管腳用於輸出所述PWM模塊調製的時鐘以供目標設備使用。所述PWM模塊可還原出高精度的時鐘,具有佔空比可調、頻率可調和可調範圍廣的特點,成本低廉,穩定性高。
作為上述方案的改進,所述時鐘同步方法還包括步驟:
所述第二微控制器接收到參考時鐘源的中斷信號後,讀取對應的PWM模塊中計數器的值;
所述第二微控制器將所述對應的PWM模塊中計數器的值與根據所述參考時鐘源獲取的預期值進行比較,從而獲得所述第二微控制器相對所述參考時鐘源的第二時鐘相位差;
所述第二微控制器根據所述第二時鐘相位差調節本地時鐘的周期以輸出與所述參考時鐘源同步的時鐘。通過上述過程,第二微控制器可鎖定參考時鐘源,精度高,穩定性好。
作為上述方案的改進,所述第一微控制器通過調節對應的PWM模塊中計數器的周期,從而輸出與所述第二微控制器同步的時鐘。
作為上述方案的改進,所述第二微控制器通過調節對應的PWM模塊中計數器的周期,從而輸出與所述參考時鐘源同步的時鐘。
作為上述方案的改進,所述第一微控制器通過將所述第一時鐘相位差引入PID算法中計算得到第一控制參數,根據第一控制參數調節對應的PWM模塊中計數器的周期,從而輸出與所述第二微控制器同步的時鐘。通過PID算法調節PWM模塊中計數器的周期,能達到快速準確調節的效果。
作為上述方案的改進,第二微控制器通過將所述第二時鐘相位差引入PID算法中計算得到第二控制參數,並根據第二控制參數調節對應的PWM模塊中計數器的周期,從而輸出與所述參考時鐘源同步的時鐘。
本發明實施例還提供了一種時鐘同步裝置,包括:
請求數據包發送模塊,用於打包請求數據包後,以時鐘同步的方式向第二微控制器發送請求數據包;
響應數據包接收模塊,用於接收到所述第二微控制器回送的響應數據包後,解析所述響應數據包,從而獲得所述第二微控制器接收所述請求數據包的時刻點和打包響應數據包的時刻點;其中,所述響應數據包由第二微控制器以時鐘同步的方式回送。
時鐘相位差計算模塊,用於根據四個時刻點以及所述第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程後,計算獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差;其中,所述四個時刻點包括所述請求數據包發送模塊打包所述請求數據包的時刻點、所述響應數據包接收模塊接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點;
時鐘調整模塊,用於根據所述第一時鐘相位差調節本地時鐘的周期以輸出與所述第二微控制器同步的時鐘。
與現有技術相比,本發明公開的時鐘同步裝置通過請求數據包發送模塊發送請求數據包,然後通過響應數據包接收模塊接收第二微控制器回送的響應數據包,解析所述響應數據包獲得所述第二微控制器接收所述請求數據包的時刻點和打包響應數據包的時刻點,然後所述時鐘相位差計算模塊將其打包所述請求數據包的時刻點和接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點、第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程求解後,可獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差,時鐘調整模塊根據所述第一時鐘相位差即可調節本地時鐘以實現時鐘同步,能有效解決現有技術存在打包延遲、發送延遲、解析延遲以及設備間傳輸延遲不一致的問題,可實現高精度、穩定的時鐘同步,且使用微控制器實現時鐘同步,成本低廉。
附圖說明
圖1是現有技術採用設備之間的傳輸獲得同步時鐘的示意圖。
圖2是本發明實施例1提供的一種時鐘同步方法的流程示意圖。
圖3是本發明實施例1提供的時鐘同步方法的執行過程示意圖。
圖4是本發明實施例1中時鐘信號的流向示意圖。
圖5是本發明實施例2提供的一種時鐘同步方法的流程示意圖。
圖6是本發明實施例2結合MCU內部硬體資源的工作過程示意圖。
圖7是本發明實施例3提供的一種時鐘同步裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
參見圖2,是本發明實施例1提供的一種時鐘同步方法的流程示意圖,包括步驟:
S1、第一微控制器打包請求數據包後,以時鐘同步的方式向第二微控制器發送請求數據包;
S2、所述第一微控制器接收到所述第二微控制器回送的響應數據包後,解析所述響應數據包,從而獲得所述第二微控制器接收所述請求數據包的時刻點和打包響應數據包的時刻點;其中,所述響應數據包由第二微控制器以時鐘同步的方式回送;
S3、所述第一微控制器根據四個時刻點以及所述第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程後,計算獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差;其中,所述四個時刻點包括所述第一微控制器打包所述請求數據包的時刻點和接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點;
S4、所述第一微控制器根據所述第一時鐘相位差調節本地時鐘的周期,從而輸出與所述第二微控制器同步的時鐘。
結合圖3,將對本實施例的時鐘同步方法的工作過程進行具體描述。第一微控制器MCU-B在任意時刻發送時鐘同步的請求數據包給第二微控制器MCU-A,第二微控制器MCU-A收到數據包後,返回時鐘同步的響應數據包給第一微控制器MCU-B。第一微控制器MCU-B在T0打包數據,並記錄下時間T0;在T1時刻,第一微控制器MCU-B的發送數據包到傳輸線上;經過一定的傳輸延遲後,在K2時刻到達第二微控制器MCU-A,第二微控制器MCU-A記錄下K2;第二微處理MCU-A器在K3時刻解析完成,接著允許執行其他操作;第二微控制器MCU-A在K4開始打包數據,並將時間信息K2和K4放到數據中,在K5時刻發送出去;第一微控制器MCU-B時刻T6接收到同步響應數據包,記錄下T6;在T7時刻解析完數據包。此時第一微控制器MCU-B得到了T0,K2,K4,T6。
因為傳輸通道是對等的,由第一微控制器MCU-B傳輸到第二微控制器MCU-A的傳輸延遲與由第二微控制器MCU-A傳輸到第一微控制器MCU-B的傳輸延遲相等。因為使用的是相同的MCU,那麼打包延遲可以做到相等。將打包延遲加上傳輸延遲所需的時間標記為Tdelay。假設第一微控制器MCU-B相對第二微控制器MCU-A的第一時鐘相位差Tdiff,聯立方程得到方程組:
T0+Tdiff+Tdelay=K2
K4+Tdelay=T6+Tdiff
解方程得到所述第一時鐘相位差Tdiff=(K2-T0+K4-T6)/2
則第一微控制器MCU-B根據所述第一時鐘相位差Tdiff,調整本地的時鐘系統,即可實現同步。
通過上述方案,通過微控制器系統之間的雙向傳輸,實現新的同步方法,避免打包延遲、傳輸延遲的影響,使得微控制器之間的時鐘高精度同步;利用獨立的微控制器還原輸出高精度的時鐘同步,避免使用設備間的業務數據通道,不易受幹擾,穩定性好,成本低廉。如圖4所示,分別通過第一微控制器MCU-B和第二微控制器MCU-A的時鐘直接提供給目標設備A、B使用,無需目標設備的幹涉,避免了不同設備之間的信號傳輸延遲不同而導致同步後的相位差不同,克服了利用設備間的業務通道單方向傳輸,無法計算出實際的相位差,精度低,容易受到幹擾的缺點。
其中,所述第一微控制器MCU-B和第二微控制器MCU-A採用對等的傳輸通道,優選為串行通信口(UART)。通信的接口速率越高,同步的精度越高。比如,使用波特率為115200bps的UART接口,那麼因通信接口而限制的理論最大同步精度不超過8.68us。因此,利用本方案,可以實現us級的時鐘同步。本方案的同步算法與傳輸通道無關,容易擴張,還可以使用其他傳輸通道,如乙太網口、無線網絡等。
參見圖5,是本發明實施例2提供的一種時鐘同步方法的流程示意圖。實施例2在實施例1的基礎上還包括步驟:
S5、所述第二微控制器接收到參考時鐘源的中斷信號後,讀取對應的PWM模塊中計數器的值;
S6、所述第二微控制器將所述對應的PWM模塊中計數器的值與根據所述參考時鐘源獲取的預期值進行比較,從而獲得所述第二微控制器相對所述參考時鐘源的第二時鐘相位差;
S7、所述第二微控制器根據所述第二時鐘相位差調節本地時鐘的周期以輸出與所述參考時鐘源同步的時鐘。
在本實施例中,第二微控制器MCU-A通過接收到參考時鐘源的中斷信號後,讀取對應的PWM模塊中計數器的值;而所述參考時鐘源作為調整第二微控制器MCU-A的基準時鐘源,在觸發第二微控制器MCU-A中斷的同時生成一個預期值,將上述計數器的值和所述計數器的值比較生成所述第二微控制器MCU-A相對所述參考時鐘源的第二時鐘相位差,根據所述第二時鐘相位差調節本地時鐘的周期以輸出與所述參考時鐘源同步的時鐘。通過上述過程,第二微控制器MCU-A可鎖定參考時鐘源輸出時鐘信號,供給目標設備A使用,且可作為調整第一微控制器MCU-B同步的基準時鐘源。
下面,將結合MCU系統內部的硬體資源來對本方案的工作過程進行進一步的描述。
第一微控制器MCU-B和第二微控制器MCU-A採用當前主流MCU所集成的內部硬體資源,包括GPIO(通用輸入輸出管腳),EXTI(外部中斷接口),PWM(脈衝寬度調製),PLL(鎖相環),UART(串行通信口),並在系統內部增加了一個高精度的晶體振蕩器,如TCXO(溫度補償振蕩器)。其中TCXO輸出的時鐘進入MCU中,作為MCU以及PWM模塊的工作時鐘,具有較高的頻率穩定性。且TCXO的時鐘精度決定了輸出的時鐘的精度極限值,如TXCO輸出的時鐘頻率為50MHz,則PWM模塊的工作時鐘為50MHz,則PWM模塊調節輸出的時鐘精度可以精確到20ns。PLL為鎖相迴路或鎖相環,用來統一整合時脈訊號,使高頻器件正常工作。因此,利用MCU內部的PLL和PWM模塊,可輸出高穩定性的時鐘。UART作為異步串口通信協議的一種,工作原理是將傳輸數據的每個字符一位接一位地傳輸。其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用於遠距離通信,但傳送速度較慢。INT是中斷功能的管腳,此處配置為邊沿觸發模式。當INT模塊檢測到管腳的電平有變化,就會中斷當前的軟體,跳轉到中斷服務軟體程序中執行,中斷服務軟體程序執行完後,再繼續執行被中斷的軟體。GPIO是MCU的基本功能,此處管腳配置為輸出,以控制管腳輸出為某個指定的電平值。PWM是脈衝寬度調製,允許調節輸出脈衝的周期和佔空比,PWM模塊通過GPIO將調製的脈衝輸出到系統外部。
如圖6所示,第一微控制器MCU-B的外部中斷接口INT接入通用輸入/輸出管腳GPIO輸出的時鐘信號,第二微控制器MCU-A的外部中斷接口INT接入參考時鐘源信號,第一微控制器MCU-B和第二微控制器MCU-A通過串行通信口UART以及傳輸線傳輸請求數據包和響應數據包,溫度補償振蕩器TXCO輸出時鐘信號至鎖相環PLL穩定後,為PWM模塊提供工作時鐘。PWM模塊通過調節輸出時鐘的周期和佔空比,可通過通用輸入/輸出管腳GPIO輸出時鐘以供目標設備使用;PWM模塊包括一個計數器,所述PWM模塊通過調節計數器的周期以調節輸出時鐘的周期。其中,所述第一微控制器MCU-B通過將所述第一時鐘相位差引入PID算法中計算得到第一控制參數,根據第一控制參數調節對應的PWM模塊中計數器的周期,從而輸出與所述第二微控制器MCU-A同步的時鐘;所述第二微控制器MCU-A通過將所述第二時鐘相位差引入PID算法中計算得到第二控制參數,並根據第二控制參數調節對應的PWM模塊中計數器的周期,從而輸出與所述參考時鐘源同步的時鐘。所述外部中斷接口INT每接入一個中斷信號就會觸發中斷,連續多次執行上述同步過程,當判斷時鐘相位差小於一定的範圍時,可確定同步完成,否則認為沒完成同步。
如圖7所示,是本發明實施例3提供的一種時鐘同步裝置的結構示意圖,如圖7所示的時鐘同步裝置100包括:
請求數據包發送模塊101,用於打包請求數據包後,以時鐘同步的方式向第二微控制器發送請求數據包;
響應數據包接收模塊102,用於接收到所述第二微控制器回送的響應數據包後,解析所述響應數據包,從而獲得所述第二微控制器接收所述請求數據包的時刻點和打包響應數據包的時刻點;其中,所述響應數據包由第二微控制器以時鐘同步的方式回送。
時鐘相位差計算模塊102,用於根據四個時刻點以及所述第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程後,計算獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差;其中,所述四個時刻點包括所述請求數據包發送模塊打包所述請求數據包的時刻點、所述響應數據包接收模塊接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點;
時鐘調整模塊103,用於根據所述第一時鐘相位差調節本地時鐘的周期以輸出與所述第二微控制器同步的時鐘。
本實施例提供的時鐘同步裝置的工作過程可參考實施例1中對時鐘同步方法的具體描述,在此不再贅述。
綜上,本發明實施例公開了一種時鐘同步方法及裝置,通過第一微控制器向第二微控制器發送請求數據包,第二微控制器接收到所述請求數據包後回送響應數據包,所述第一微控制器將其打包所述請求數據包的時刻點和接收所述響應數據包的時刻點、第二微控制器接收所述請求數據包的時刻點和打包所述響應數據包的時刻點、第一微控制器和第二微控制器之間的打包延遲、傳輸延遲進行聯立方程求解後,可獲得所述第一微控制器相對所述第二微控制器的第一時鐘相位差,根據所述第一時鐘相位差即可調節本地時鐘以實現時鐘同步,本方案採用第一微控制器和第二微控制器的雙向傳輸,解決了現有技術採用設備間的單向傳輸存在打包延遲、發送延遲、解析延遲以及設備間傳輸延遲不一致的問題,精確度高;採用獨立的微控制器實現時鐘同步,與設備間的業務通信通道相獨立,抗幹擾性高,成本低廉。
以上所述是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發明的保護範圍。