一種獲取高精度時間的方法
2023-07-05 14:49:11 1
專利名稱:一種獲取高精度時間的方法
技術領域:
本發明屬於時間同步領域,尤其涉及一種獲取高精度時間的方法。
背景技術:
在通信領域,時間同步變的越來越重要。要提供準確的時間必須能夠獲得高精度的時間,最方便和快捷的獲得時間的途徑是GPS。GPS的時間和時刻都是通過GPS接收機或者接收卡來獲得。GPS接收機或者接收卡通過串口來提供時間信息,通過輸出的秒信號脈衝來提供時刻信息。現有的獲得時間的辦法,是將時間伺服器與GPS衛星接收機通過串口連接,時間伺服器接收GPS衛星接收機送來的時間信息,用接收的時間信息直接校正本地伺服器的時間,從而使時間伺服器的本地時間與GPS衛星接收機的時間保持一致。
用現有技術獲得的時間主要的缺點是精度比較差,主要的原因如下1)GPS衛星接收機向串口發送時間信息的時刻,並不是準確的時刻,這個時刻與時間信息所攜帶的標準時間有一定的延時。2)GPS衛星接受機通過串口發送時間信息到時間伺服器接收到信息有一定的延時。因為串口傳送信息的速率比較慢。以上兩個原因決定了時間伺服器並不能獲得高精度準確的時間,時間伺服器的時間精度與GPS時間精度有一定的差距。
發明內容
有鑑於此,本發明的主要目的在於提供一種獲取高精度時間的方法,用於消除現有技術方案由於延時產生的誤差,把GPS接收機提供的時間和時刻信息轉化為時間伺服器本身的時間,使時間伺服器能夠獲得高精度的時間。
為實現上述目的,本發明提供了一種獲取高精度時間的方法,該方法包括ACPU接收到秒脈衝信號後,進入時間處理程序,讀出實時時鐘晶片的時間T1;BCPU獲得衛星接收卡發送的時間T2;CCPU計算出衛星時間T2與實時時鐘晶片T1的時間差ΔT=T2-T1;DCPU接收到下一個秒脈衝信號後,讀出實時時鐘晶片的時間T3;ECPU將T3+ΔT寫入實時時鐘晶片中。
其中,步驟A具體為CPU接收到秒脈衝信號後,觸發CPU的一個外部中斷,進入時間處理程序,讀出實時時鐘晶片的時間T1。
其中,步驟A中的時間處理程序為CPU的中斷處理函數。
其中,步驟B具體為CPU通過串口獲得衛星接收卡發送的時間T2。
其中,步驟E具體為CPU通過並口將T3+ΔT寫入實時時鐘晶片中。
使用本方明方法使得時間伺服器可以經濟方便的獲得準確和高精度的時間,從而利用時間伺服器本地的時間向外提供各種高精度的時間服務,為各種通信設備校正時間。
圖1為本發明的原理框圖。
圖2為本發明的方法流程圖。
具體實施例方式
本發明為一種獲取高精度時間的方法,為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖,對本發明進一步詳細說明。
本發明原理框圖如圖1所示,時間伺服器包括衛星接收卡,CPU,實時時鐘晶片,以及向實時時鐘晶片供電的電池。衛星接收卡與CPU之間有兩個連接衛星接收卡輸出秒脈衝信號到CPU,可作為CPU的一個外部中斷輸入;衛星卡的串口與CPU的串行接口連接,以便CPU可以接收衛星卡輸出的時間信息。CPU通過數據線和地址線與實時時鐘晶片連接,以便獲取和設置時間。電池主要給實時時鐘晶片供電。
如圖2所示,本發明所提供的方法包括當秒脈衝到時,時間伺服器的CPU接收到秒脈衝信號,進入時間處理程序,讀出實時時鐘晶片的時間T1。該步驟可由秒脈衝的上升沿觸發時間伺服器CPU的一個外部中斷來實現,也可以由時間伺服器CPU定時查詢秒脈衝上升沿是否來到以實現;在秒脈衝信號產生後很短時間內(大約是10ms量級),衛星接收卡會通過串口向外發送時間信息,時間信息包括了年月日,小時,分,秒,此時間信息代表的是前一個秒脈衝產生的準確時間,CPU通過串口獲得衛星接收卡發送的時間T2;接著CPU計算出衛星時間T2與實時晶片T1的時間差ΔT=T2-T1;當下一個秒脈衝來到時,CPU接收到該信號,讀出實時時鐘晶片的時間T3;CPU將T3+ΔT寫入實時時鐘晶片中,從而完成一次時間校正。
通過以上步驟,就完成了一次時間校正。當下一個秒脈衝到來時,重複步驟A,開始下一次校正。
權利要求
1.一種獲取高精度時間的方法,其特徵是,包括步驟ACPU接收到秒脈衝信號後,進入時間處理程序,讀出實時時鐘晶片的時間T1;步驟BCPU獲得衛星接收卡發送的時間T2;步驟CCPU計算出衛星時間T2與實時時鐘晶片T1的時間差ΔT=T2-T1;步驟DCPU接收到下一個秒脈衝信號後,讀出實時時鐘晶片的時間T3;步驟ECPU將T3+ΔT寫入實時時鐘晶片中。
2.如權利要求1所述獲取高精度時間的方法,其特徵是步驟A具體為CPU接收到秒脈衝信號後,觸發CPU的一個外部中斷,進入時間處理程序,讀出實時時鐘晶片的時間T1。
3.如權利要求1所述獲取高精度時間的方法,其特徵是步驟A中的時間處理程序為CPU的中斷處理函數。
4.如權利要求1所述獲取高精度時間的方法,其特徵是步驟B具體為CPU通過串口獲得衛星接收卡發送的時間T2。
5.如權利要求1所述獲取高精度時間的方法,其特徵是步驟E具體為CPU通過並口將T3+ΔT寫入實時時鐘晶片中。
全文摘要
本發明提供了一種獲取高精度時間的方法當時間伺服器的CPU接收到衛星接收卡發送的秒脈衝上升沿時,進入時間處理程序,讀出實時時鐘晶片的時間T1,然後讀出衛星接收卡的時間T2,並計算出T2與T1的時間差ΔT,在下一個秒脈衝到來時,CPU在時間處理程序中讀出實時時鐘晶片的時間T3,並將T3+ΔT設置到實時時鐘晶片中,完成一次時間校正。當下一個秒脈衝到來時開始下一次矯正。利用本發明可以消除現有技術方案由於延時產生的誤差,把GPS接收機提供的時間和時刻信息轉化為時間伺服器本身的時間,使時間伺服器能夠獲得高精度的時間。
文檔編號H04J3/06GK101043253SQ200610061330
公開日2007年9月26日 申請日期2006年6月26日 優先權日2006年6月26日
發明者張曉勇 申請人:華為技術有限公司