專利名稱:一種時(shí)鐘閏秒處理方法及其系統(tǒng)的制作方法
一種時(shí)鐘閏秒處理方法及其系統(tǒng)技術(shù)領(lǐng)域:
[0001]本發(fā)明涉及授時(shí)的時(shí)間同步技術(shù)領(lǐng)域:
,尤其涉及一種時(shí)鐘閏秒處理方法及其系統(tǒng)。
背景技術(shù):
[0002]由于地球自轉(zhuǎn)速度減慢,原子時(shí)與世界時(shí)時(shí)間誤差大于O. 9秒,根據(jù)地球的自轉(zhuǎn)速度,國(guó)際計(jì)量局會(huì)定期在年底、年中或季末對(duì)協(xié)調(diào)世界時(shí)增加一秒鐘,使其能與地球自轉(zhuǎn)同步。這不會(huì)讓我們漸漸走向日落在早晨時(shí)發(fā)生,但可能會(huì)在計(jì)算機(jī)系統(tǒng)中帶來問題,原因是計(jì)算機(jī)系統(tǒng)需要在時(shí)鐘里多加一秒,但系統(tǒng)本身不夠靈活,因此無法處理這多出來的一秒鐘。[0003]高精度定時(shí)器是在一個(gè)應(yīng)用“睡眠”時(shí)被使用的子系統(tǒng),它會(huì)等待操作系統(tǒng)完成某些其他的任務(wù)。在某些情況下,高精度定時(shí)器會(huì)為這些睡眠中的應(yīng)用設(shè)定一種鬧鐘,會(huì)在操作系統(tǒng)花費(fèi)太多時(shí)間來處理其他工作時(shí)敲響。從斯圖爾茨在郵件列表中發(fā)布的內(nèi)容來判斷,當(dāng)閏秒發(fā)生時(shí),這些高精度定時(shí)器會(huì)突然變得比核心操作系統(tǒng)提前一秒,因此就會(huì)開始敲響那些鬧鐘,從而同時(shí)喚醒無數(shù)睡眠中的應(yīng)用,導(dǎo)致服務(wù)器的中央處理器超載。[0004]在2009年I月份,閏秒導(dǎo)致Sun Microsystems的Solaris操作系統(tǒng)和甲骨文的軟件包都出現(xiàn)了問題。自2005年以來則一共有三次閏秒發(fā)生,分別是在2005年、2008年底和現(xiàn)在的2012年,下一次閏秒將在何時(shí)發(fā)生,要視地球的自轉(zhuǎn)速度有多快而定——這一速度既有可能減慢也有可能加快,具體要視潮汐、天氣和熔態(tài)金屬在地球核心的流動(dòng)而定。[0005]為了應(yīng)對(duì)閏秒的發(fā)生,目前有兩種解決方案,第一種常見方案閏秒設(shè)為定值常數(shù),此方案在閏秒進(jìn)行調(diào)整時(shí),會(huì)出現(xiàn)跳秒問題,得到的TOD (Time of Data,實(shí)時(shí)時(shí)間常數(shù))消息是錯(cuò)誤的,必須重新更改閏秒值,下載最新程序才能使用,缺點(diǎn)是,硬件一段時(shí)間不能正常工作,嚴(yán)重的甚至?xí)霈F(xiàn)整個(gè)系統(tǒng)癱瘓;第二種常見方案人工推送閏秒,此方案在設(shè)計(jì)硬件時(shí),預(yù)留了接口,使得當(dāng)閏秒在調(diào)整時(shí)可以通過人工的方式告訴硬件閏秒值,從而不用重新下載最新程序,缺點(diǎn)是,此方式不夠智能化,每次閏秒調(diào)整時(shí)都需要耗費(fèi)人力。[0006]隨著計(jì)算機(jī)和網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展,火電廠熱工自動(dòng)化系統(tǒng)數(shù)字化、網(wǎng)絡(luò)化的時(shí)代已經(jīng)到來。這一方面為各控制和信息系統(tǒng)之間的數(shù)據(jù)交換、分析和應(yīng)用提供了更好的平臺(tái)、另一方面對(duì)各種實(shí)時(shí)和歷史數(shù)據(jù)時(shí)間標(biāo)簽的準(zhǔn)確性也提出了更高的要求。[0007]GPS時(shí)間服務(wù)器是針對(duì)自動(dòng)化系統(tǒng)中的計(jì)算機(jī)、控制裝置等進(jìn)行校時(shí)的高科技產(chǎn)品,時(shí)鐘源設(shè)備它從授時(shí)衛(wèi)星上獲取標(biāo)準(zhǔn)的時(shí)間信號(hào),將這些信息通過各種接口類型來傳輸給自動(dòng)化系統(tǒng)中需要時(shí)間信息的設(shè)備,如計(jì)算機(jī)、保護(hù)裝置、故障錄波器、事件順序記錄裝置、安全自動(dòng)裝置、遠(yuǎn)動(dòng)RTU等,這樣就可以達(dá)到整個(gè)系統(tǒng)的時(shí)間同步。
發(fā)明內(nèi)容
[0008]本發(fā)明的目的在于提出一種時(shí)鐘閏秒處理方法及其系統(tǒng),能夠?qū)崿F(xiàn)在閏秒變化時(shí) TOD消息平滑過渡,使其時(shí)間與調(diào)整閏秒時(shí)的時(shí)間完全一致。為達(dá)此目的,本發(fā)明采用以下技術(shù)方案[0009]一種時(shí)鐘閏秒處理方法,包括[0010]使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),本發(fā)明所述閏秒值為 UTC (Universal Time Coordinated,協(xié)調(diào)世界時(shí))時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù),所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲??;[0011]當(dāng)系統(tǒng)重啟時(shí),通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間;從所述存儲(chǔ)器中讀取閏秒值,將系統(tǒng)當(dāng)前的UTC時(shí)間加上所述閏秒值作為系統(tǒng)當(dāng)前的GPS時(shí)間,系統(tǒng)當(dāng)前的GPS時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí);系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài);[0012]當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC 時(shí)間;根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取系統(tǒng)的GPS時(shí)間;[0013]當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí)收到調(diào)整閏秒通知的中斷消息,使系統(tǒng)的UTC時(shí)間按照23 59 59,23 59 :60、00 00 :00、00 00 01變化,將所述中斷消息中新閏秒值寫入所述存儲(chǔ)器。[0014]進(jìn)一步地,當(dāng)系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào)時(shí),UTC時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí),直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。[0015]進(jìn)一步地,所述根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)具體為由本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到。[0016]進(jìn)一步地,所述存儲(chǔ)器為單片機(jī)FLASH存儲(chǔ)器。[0017]本發(fā)明還提出了一種時(shí)鐘閏秒處理系統(tǒng),包括,[0018]閏秒值存儲(chǔ)模塊用于使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù),所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取;用于接收閏秒中斷處理模塊發(fā)送的新閏秒值,將該新閏秒值替換所述存儲(chǔ)器中原閏秒值;用于為初始化模塊提供閏秒值;[0019]初始化模塊當(dāng)系統(tǒng)重啟時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取UTC時(shí)間,從所述存儲(chǔ)器中讀取閏秒值,將當(dāng)前的UTC時(shí)間加上所述閏秒值作為當(dāng)前的GPS時(shí)間, 將當(dāng)前的GPS時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí);用于初始化完畢后使系統(tǒng)進(jìn)入所述正常運(yùn) 4丁豐旲塊;[0020]正常運(yùn)行模塊當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間,根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取系統(tǒng)的GPS時(shí)間;當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),若收到調(diào)整閏秒通知的中斷消息時(shí),用于使系統(tǒng)進(jìn)入閏秒中斷處理模塊;[0021]閏秒中斷處理模塊當(dāng)系統(tǒng)處于正常運(yùn)行模塊時(shí)收到調(diào)整閏秒通知的中斷消息, 用于使UTC時(shí)間按照23 59 59,23 59 :60、00 00 :00、00 00 01變化,將所述中斷消息中新閏秒值發(fā)送到所述閏秒值存儲(chǔ)模塊;用于閏秒中斷處理完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊。[0022]進(jìn)一步地,所述的時(shí)鐘閏秒處理系統(tǒng)還包括授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)模塊當(dāng)系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào)時(shí),用于使系統(tǒng)根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)獲得UTC時(shí)間,直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間;用于授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)處理完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊。[0023]進(jìn)一步地,所述根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)具體為由本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到。[0024]進(jìn)一步地,閏秒值存儲(chǔ)模塊中所述存儲(chǔ)器為單片機(jī)FLASH存儲(chǔ)器。[0025]本發(fā)明所述閏秒處理技術(shù)方案可以實(shí)現(xiàn)在閏秒變化時(shí)TOD消息平滑過渡,其時(shí)間與調(diào)整閏秒時(shí)的時(shí)間完全一致,即UTC時(shí)間會(huì)出現(xiàn)23:59:58、23:59:59、23:59:60、 00:00:00,00:00:01……的變化,而GPS時(shí)間也不會(huì)出現(xiàn)跳秒,可以保證在閏秒調(diào)整時(shí)系統(tǒng)的穩(wěn)定正常運(yùn)行。
[0026]圖一是本發(fā)明具體實(shí)施例一所述的時(shí)鐘閏秒處理方法的方法流程圖;[0027]圖二是本發(fā)明具體實(shí)施例二所述的時(shí)鐘閏秒處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
[0028]下面結(jié)合附圖并通過具體實(shí)施方式
來進(jìn)一步說明本發(fā)明的技術(shù)方案。[0029]實(shí)施例一[0030]圖一是本實(shí)施例所述的時(shí)鐘閏秒處理方法的方法流程圖,如圖一所示,本實(shí)施例所述的時(shí)鐘閏秒處理方法包括[0031]S101、系統(tǒng)重啟;[0032]S102、判斷接收機(jī)是否獲取UTC時(shí)間,若是,則執(zhí)行步驟S106,否則重復(fù)執(zhí)行本步驟;接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC時(shí)間是一個(gè)持續(xù)過程,與步驟S103無先后順序。[0034]在系統(tǒng)重啟后接收機(jī)一直持續(xù)工作讀取授時(shí)衛(wèi)星信號(hào),在系統(tǒng)成功啟動(dòng)后,進(jìn)入正常運(yùn)行狀態(tài)時(shí),如果當(dāng)接收機(jī)接收授時(shí)衛(wèi)星信號(hào)失敗時(shí),向系統(tǒng)發(fā)送消息,告訴系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào),系統(tǒng)臨時(shí)通過高穩(wěn)晶振分頻IPPS計(jì)時(shí)繼續(xù)為UTC計(jì)時(shí),當(dāng)接收授時(shí)衛(wèi)星信號(hào)恢復(fù)正常時(shí),系統(tǒng)恢復(fù)為通過授時(shí)衛(wèi)星信號(hào)獲取UTC時(shí)間。[0035]S103、判斷FLASH是否存有閏秒信息,若是則執(zhí)行步驟S105,否則執(zhí)行步驟S104 ;[0036]本發(fā)明使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),可以為單片機(jī) FLASH存儲(chǔ)器。[0037]所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù)。如,2012年調(diào)整閏秒之前, UTC時(shí)間和GPS時(shí)間相差15秒。[0038]所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取,初次獲取后,由于所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),后面系統(tǒng)重啟時(shí)可直接從所述存儲(chǔ)器中讀取。[0039]S104、預(yù)設(shè)時(shí)間閾值內(nèi)獲取到閏秒值存入FLASH,返回步驟S103 ;[0040]當(dāng)初次獲取閏秒值時(shí),通過接收機(jī)讀取授時(shí)衛(wèi)星信號(hào)數(shù)據(jù)幀里面包含有閏秒信息。由于FLASH掉電時(shí)不丟失數(shù)據(jù),所以,除第一次系統(tǒng)重啟通過接收機(jī)讀取閏秒信息以外,后面系統(tǒng)重啟時(shí)僅需要直接從FLASH讀取該閏秒信息即可。該閏秒信息在每次進(jìn)行閏秒調(diào)整后由系統(tǒng)自動(dòng)更新,每次閏秒調(diào)整后新的閏秒值比原閏秒值增加一秒。[0041]既然閏秒值可以通過接收機(jī)直接讀取,為什么還要使用存儲(chǔ)器存儲(chǔ)呢?因?yàn)殚c秒值一般接收機(jī)在冷啟動(dòng)的時(shí)候要獲取到閏秒信息通常要經(jīng)過較長(zhǎng)的時(shí)間,約12. 5分鐘之內(nèi),若用在GPS時(shí)間服務(wù)器的時(shí)鐘模塊上會(huì)導(dǎo)致啟動(dòng)時(shí)間過慢,將影響到整個(gè)GPS時(shí)間服務(wù)器的時(shí)鐘模塊的性能,而接收機(jī)的熱啟動(dòng)雖然存有閏秒信息,但卻需要電池來實(shí)現(xiàn),這對(duì)于 GPS時(shí)間服務(wù)器的時(shí)鐘模塊是不適用的,因?yàn)镚PS時(shí)間服務(wù)器的時(shí)鐘模塊是封裝在一個(gè)殼內(nèi)的,若用電池方案,電池?zé)o法更換,而且也可能帶來電池腐蝕等隱患,不利于GPS時(shí)間服務(wù)器的時(shí)鐘模塊的穩(wěn)定。將閏秒存入單片機(jī)FLASH可以很好的解決該問題,由于閏秒是半年甚至多年才調(diào)整一次,而當(dāng)前的閏秒是已知的,可先寫入FLASH,當(dāng)世界時(shí)間組織調(diào)整閏秒時(shí),程序可以實(shí)現(xiàn)FLASH中的閏秒值隨著變化,從而在下次上電時(shí)又得到了當(dāng)時(shí)的正確閏秒值。[0042]所述預(yù)設(shè)時(shí)間閾值可為接收機(jī)在冷啟動(dòng)的時(shí)候要獲取到閏秒信息需要等待的時(shí)間,如12. 5分鐘。[0043]本步驟執(zhí)行完畢后,將讀取的閏秒時(shí)間存入存儲(chǔ)器中,即存入本實(shí)施例所述的 FLASH存儲(chǔ)器中。[0044]S105、讀取閏秒值;[0045]讀取FLASH存儲(chǔ)器中的閏秒值,如2009年I月I日之后2012年6月30日之前, 所述閏秒值為15。[0046]S106、GPS 時(shí)間=UTC 時(shí)間 + 閏秒;[0047]系統(tǒng)重啟時(shí),GPS時(shí)間初始時(shí)間為步驟S102所獲得的UTC時(shí)間加上步驟S105所獲得的閏秒時(shí)間。[0048]S107、系統(tǒng)正常運(yùn)行,UTC時(shí)間跟蹤接收機(jī)計(jì)時(shí),GPS時(shí)間根據(jù)高穩(wěn)晶振分頻IPPS 計(jì)時(shí);系統(tǒng)正常運(yùn)行時(shí),UTC時(shí)間是按照跟蹤接收機(jī)每秒實(shí)時(shí)讀取時(shí)間信號(hào)獲??;GPS時(shí)間以重啟初始化時(shí)的初始時(shí)間為基礎(chǔ),在初始時(shí)間基礎(chǔ)上由當(dāng)前的GPS時(shí)間通過本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到,具有很高的精確度。[0049]系統(tǒng)正常運(yùn)行時(shí),系統(tǒng)一直持續(xù)本步驟的運(yùn)行狀態(tài),直到收到調(diào)整閏秒通知的中斷消息時(shí)進(jìn)入步驟S108,或丟失授時(shí)衛(wèi)星信號(hào)時(shí)進(jìn)入步驟S109。[0050]S108、當(dāng)收到調(diào)整閏秒通知的中斷消息時(shí),使系統(tǒng)的UTC時(shí)間按照23 59 :59、23 59 :60,00 00 00,00 00 01變化,將新閏秒寫入FLASH中,本步驟執(zhí)行完畢后返回步驟 S107 ;[0051]在世界時(shí)間組織調(diào)整閏秒時(shí),本發(fā)明在處理UTC時(shí)間時(shí),采用實(shí)時(shí)處理方案,即在授時(shí)衛(wèi)星出來的時(shí)間信號(hào)有效情況下,每秒都會(huì)讀取時(shí)間信息,UTC時(shí)間跟著變化。UTC時(shí)間會(huì)按照 23:59:58、23:59:59、23:59:60、00:00:00、00:00:01......變化,而由于 UTC 時(shí)間是每秒實(shí)時(shí)讀取時(shí)間信息獲取的,所以只要那個(gè)時(shí)刻授時(shí)衛(wèi)星信號(hào)良好,UTC時(shí)間會(huì)同步改變。[0052]此時(shí)GPS時(shí)間還是根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí),GPS時(shí)間不會(huì)出現(xiàn)跳秒。當(dāng)前通信系統(tǒng)的時(shí)間是不允許出現(xiàn)跳秒的,跳秒可能會(huì)導(dǎo)致整個(gè)通信系統(tǒng)的癱瘓。因此GPS時(shí)間服務(wù)器的時(shí)鐘模塊提供的GPS時(shí)間是不允許出現(xiàn)跳秒的,由于“GPS時(shí)間=UTC時(shí)間+閏秒”, 當(dāng)前的GPS時(shí)間服務(wù)器的時(shí)鐘模塊時(shí)間處理技術(shù)在上電獲取到準(zhǔn)確的UTC時(shí)間后,大約在 3分鐘內(nèi),就可以由UTC時(shí)間和閏秒數(shù)來確定GPS時(shí)間,而后,只要不掉電,GPS時(shí)間都是按照自己程序的時(shí)間函數(shù)在計(jì)時(shí),一直不會(huì)變化,也就不會(huì)產(chǎn)生跳秒。[0053]將新閏秒寫入FLASH中,此時(shí)FLASH中新的閏秒值比原閏秒值大一秒。如2012年 6月30日調(diào)整閏秒后,F(xiàn)LASH中的閏秒由原來的15秒改為16秒。[0054]S109、當(dāng)丟失授時(shí)衛(wèi)星信號(hào)時(shí),UTC時(shí)間、GPS時(shí)間根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí);[0055]當(dāng)授時(shí)衛(wèi)星信號(hào)丟失時(shí),UTC時(shí)間由本地時(shí)間函數(shù)自動(dòng)每秒加I計(jì)時(shí),而每一秒的時(shí)間間隔是由GPS時(shí)間服務(wù)器的時(shí)鐘模塊內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到的,這樣就可以使GPS時(shí)間服務(wù)器的時(shí)鐘模塊在丟失授時(shí)衛(wèi)星信號(hào)后,時(shí)間仍能保持很高的精度。[0056]此處UTC時(shí)間、GPS時(shí)間均根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí),直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。[0057]S110、判斷接收機(jī)接收授時(shí)衛(wèi)星信號(hào)是否恢復(fù)正常,若是則返加步驟S107,否則返回步驟S109。[0058]實(shí)施例二[0059]圖二是本實(shí)施例所述的時(shí)鐘閏秒處理系統(tǒng)的結(jié)構(gòu)示意圖,如圖二所示,本時(shí)鐘閏秒處理系統(tǒng)包括閏秒值存儲(chǔ)模塊201、初始化模塊202、正常運(yùn)行模塊203、閏秒中斷處理模塊204,進(jìn)一步地,系統(tǒng)還可包括授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)模塊205。[0060]下面逐一介紹各模塊的功能和實(shí)現(xiàn)方式[0061]閏秒值存儲(chǔ)模塊201 :用于使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù),所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲??;用于接收閏秒中斷處理模塊204發(fā)送的新閏秒值,將該新閏秒值替換所述存儲(chǔ)器中原閏秒值;用于為初始化模塊202提供閏秒值;[0062]本發(fā)明使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),可選擇單片機(jī) FLASH存儲(chǔ)器。[0063]當(dāng)初次獲取閏秒值時(shí),通過接收機(jī)讀取授時(shí)衛(wèi)星信號(hào)數(shù)據(jù)幀里面包含有閏秒信息,所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù)。如,2012年調(diào)整閏秒之前,UTC時(shí)間和GPS時(shí)間相差15秒。初次獲取閏秒值后,將讀取的閏秒時(shí)間存入存儲(chǔ)器中,即存入本實(shí)施例所述的FLASH存儲(chǔ)器中。[0064]由于FLASH掉電時(shí)不丟失數(shù)據(jù),所以,除第一次系統(tǒng)重啟通過接收機(jī)讀取閏秒信息以外,后面系統(tǒng)重啟時(shí)僅需要直接從FLASH讀取該閏秒信息即可。該閏秒信息在每次進(jìn)行閏秒調(diào)整后由系統(tǒng)自動(dòng)更新,每次閏秒調(diào)整后新的閏秒值比原閏秒值增加一秒。[0065]既然閏秒值可以通過接收機(jī)直接讀取,為什么還要使用存儲(chǔ)器存儲(chǔ)呢?因?yàn)殚c秒值一般接收機(jī)在冷啟動(dòng)的時(shí)候要獲取到閏秒信息通常要經(jīng)過較長(zhǎng)的時(shí)間,約12. 5分鐘之內(nèi),若用在GPS時(shí)間服務(wù)器的時(shí)鐘模塊上會(huì)導(dǎo)致啟動(dòng)時(shí)間過慢,將影響到整個(gè)GPS時(shí)間服務(wù)器的時(shí)鐘模塊的性能,而接收機(jī)的熱啟動(dòng)雖然存有閏秒信息,但卻需要電池來實(shí)現(xiàn),這對(duì)于 GPS時(shí)間服務(wù)器的時(shí)鐘模塊是不適用的,因?yàn)镚PS時(shí)間服務(wù)器的時(shí)鐘模塊是封裝在一個(gè)殼內(nèi)的,若用電池方案,電池?zé)o法更換,而且也可能帶來電池腐蝕等隱患,不利于GPS時(shí)間服務(wù)器的時(shí)鐘模塊的穩(wěn)定。將閏秒存入單片機(jī)FLASH可以很好的解決該問題,由于閏秒是半年甚至多年才調(diào)整一次,而當(dāng)前的閏秒是已知的,可先寫入FLASH,當(dāng)世界時(shí)間組織調(diào)整閏秒時(shí),程序可以實(shí)現(xiàn)FLASH中的閏秒值隨著變化,從而在下次上電時(shí)又得到了當(dāng)時(shí)的正確閏秒值。[0066]初始化模塊202 :當(dāng)系統(tǒng)重啟時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取UTC 時(shí)間,從所述存儲(chǔ)器中讀取閏秒值,將當(dāng)前的UTC時(shí)間加上所述閏秒值作為當(dāng)前的GPS時(shí)間,將當(dāng)前的GPS時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí);用于初始化完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊203 ;[0067]系統(tǒng)重啟時(shí),讀取FLASH存儲(chǔ)器中的閏秒值,如2009年I月I日之后2012年6月 30日之前,所述閏秒值為15。[0068]系統(tǒng)重啟時(shí),判斷接收機(jī)是否獲取UTC時(shí)間,若未獲取則繼續(xù)判斷,直到成功獲取當(dāng)前UTC時(shí)間為止。[0069]此時(shí),GPS時(shí)間初始時(shí)間為步驟S102所獲得的UTC時(shí)間加上步驟S105所獲得的閏秒時(shí)間。[0070]即GPS時(shí)間=UTC時(shí)間+閏秒[0071]獲取GPS時(shí)間初始時(shí)間后,在初始時(shí)間基礎(chǔ)上,當(dāng)前的GPS時(shí)間通過本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到,具有很高的精確度。[0072]初始化完成后,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。[0073]正常運(yùn)行模塊203 :當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間,根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取系統(tǒng)的GPS時(shí)間;當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),若收到調(diào)整閏秒通知的中斷消息時(shí),用于使系統(tǒng)進(jìn)入閏秒中斷處理模塊 204 ;[0074]系統(tǒng)正常運(yùn)行,UTC時(shí)間跟蹤接收機(jī)計(jì)時(shí),GPS時(shí)間根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí); 系統(tǒng)正常運(yùn)行時(shí),UTC時(shí)間是按照跟蹤接收機(jī)每秒實(shí)時(shí)讀取時(shí)間信號(hào)獲取;GPS時(shí)間以重啟初始化時(shí)的初始時(shí)間為基礎(chǔ),在初始時(shí)間基礎(chǔ)上由當(dāng)前的GPS時(shí)間通過本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到,具有很高的精確度。[0075]系統(tǒng)正常運(yùn)行時(shí),系統(tǒng)一直持續(xù)該運(yùn)行狀態(tài),直到收到調(diào)整閏秒通知的中斷消息, 或丟失授時(shí)衛(wèi)星信號(hào)時(shí)為止。[0076]閏秒中斷處理模塊204 :當(dāng)系統(tǒng)處于正常運(yùn)行模塊203時(shí)收到調(diào)整閏秒通知的中斷消息,用于使UTC時(shí)間按照23 59 59,23 59 :60、00 00 :00、00 00 :01變化,將所述中斷消息中新閏秒值發(fā)送到所述閏秒值存儲(chǔ)模塊201 ;用于閏秒中斷處理完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊203 ;[0077]在世界時(shí)間組織調(diào)整閏秒時(shí),本發(fā)明在處理UTC時(shí)間時(shí),采用實(shí)時(shí)處理方案,即在授時(shí)衛(wèi)星出來的時(shí)間信號(hào)有效情況下,每秒都會(huì)讀取時(shí)間信息,UTC時(shí)間跟著變化。UTC時(shí)間會(huì)按照 23:59:58、23:59:59、23:59:60、00:00:00、00:00:01......變化,而由于 UTC 時(shí)間是每秒實(shí)時(shí)讀取時(shí)間信息獲取的,所以只要那個(gè)時(shí)刻授時(shí)衛(wèi)星信號(hào)良好,UTC時(shí)間會(huì)同步改變。[0078]此時(shí)GPS時(shí)間還是根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí),GPS時(shí)間不會(huì)出現(xiàn)跳秒。當(dāng)前通信系統(tǒng)的時(shí)間是不允許出現(xiàn)跳秒的,跳秒可能會(huì)導(dǎo)致整個(gè)通信系統(tǒng)的癱瘓。因此GPS時(shí)間服務(wù)器的時(shí)鐘模塊提供的GPS時(shí)間是不允許出現(xiàn)跳秒的,由于“GPS時(shí)間=UTC時(shí)間+閏秒”, 當(dāng)前的GPS時(shí)間服務(wù)器的時(shí)鐘模塊時(shí)間處理技術(shù)在上電獲取到準(zhǔn)確的UTC時(shí)間后,大約在 3分鐘內(nèi),就可以由UTC時(shí)間和閏秒數(shù)來確定GPS時(shí)間,而后,只要不掉電,GPS時(shí)間都是按照自己程序的時(shí)間函數(shù)在計(jì)時(shí),一直不會(huì)變化,也就不會(huì)產(chǎn)生跳秒。[0079]將新閏秒寫入FLASH中,此時(shí)FLASH中新的閏秒值比原閏秒值大一秒。如2012年 6月30日調(diào)整閏秒后,F(xiàn)LASH中的閏秒由原來的15秒改為16秒。[0080]授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)模塊205:當(dāng)系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào)時(shí),用于使系統(tǒng)根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)獲得UTC時(shí)間,直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間;用于授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)處理完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊203。[0081]當(dāng)授時(shí)衛(wèi)星信號(hào)丟失時(shí),UTC時(shí)間由本地時(shí)間函數(shù)自動(dòng)每秒加I計(jì)時(shí),而每一秒的時(shí)間間隔是由GPS時(shí)間服務(wù)器的時(shí)鐘模塊內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到的,這樣就可以使GPS時(shí)間服務(wù)器的時(shí)鐘模塊在丟失授時(shí)衛(wèi)星信號(hào)后,時(shí)間仍能保持很高的精度。[0082]此處UTC時(shí)間、GPS時(shí)間均根據(jù)高穩(wěn)晶振分頻IPPS計(jì)時(shí),直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。本發(fā)明所述閏秒處理技術(shù)方案可以實(shí)現(xiàn)在閏秒變化時(shí)TOD消息平滑過渡,其時(shí)間與調(diào)整閏秒時(shí)的時(shí)間完全一致,即 UTC 時(shí)間會(huì)出現(xiàn) 23:59:58、23:59:59、23:59:60、00:00:00、00:00:01......的變化,而GPS時(shí)間也不會(huì)出現(xiàn)跳秒,可以保證在閏秒調(diào)整時(shí)系統(tǒng)的穩(wěn)定正常運(yùn)行。[0083]以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實(shí)現(xiàn),其軟件程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如計(jì)算機(jī)中的硬盤、光盤或軟盤。[0084]上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理,任何熟悉本技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種時(shí)鐘閏秒處理方法,其特征在于 使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù),所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲?。? 當(dāng)系統(tǒng)重啟時(shí),通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間;從所述存儲(chǔ)器中讀取閏秒值,將系統(tǒng)當(dāng)前的UTC時(shí)間加上所述閏秒值作為系統(tǒng)當(dāng)前的GPS時(shí)間,系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài); 當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間;根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取系統(tǒng)的GPS時(shí)間; 如果當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí)收到調(diào)整閏秒通知的中斷消息,使系統(tǒng)的UTC時(shí)間按照23 59 59,23 59 :60、00 00 :00、00 00 01變化,將所述中斷消息中新閏秒值寫入所述存儲(chǔ)器。
2.如權(quán)利要求
I所述的時(shí)鐘閏秒處理方法,其特征在于,如果當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí)系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào),UTC時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí),直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC時(shí)間,系統(tǒng)重新進(jìn)入正常運(yùn)行狀態(tài)。
3.如權(quán)利要求
I或2所述的時(shí)鐘閏秒處理方法,其特征在于,所述根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)具體為由本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到。
4.如權(quán)利要求
3所述的時(shí)鐘閏秒處理方法,其特征在于,所述存儲(chǔ)器為單片機(jī)FLASH存儲(chǔ)器。
5.—種時(shí)鐘閏秒處理系統(tǒng),其特征在于,包括, 閏秒值存儲(chǔ)模塊用于使用存儲(chǔ)器存儲(chǔ)閏秒值,所述存儲(chǔ)器掉電時(shí)不丟失數(shù)據(jù),所述閏秒值為UTC時(shí)間和GPS時(shí)間相差的整數(shù)秒數(shù),所述閏秒值初始由接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲?。挥糜诮邮臻c秒中斷處理模塊發(fā)送的新閏秒值,將該新閏秒值替換所述存儲(chǔ)器中的原閏秒值;用于為初始化模塊提供閏秒值; 初始化模塊當(dāng)系統(tǒng)重啟時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取UTC時(shí)間,從所述存儲(chǔ)器中讀取閏秒值,將當(dāng)前的UTC時(shí)間加上所述閏秒值作為當(dāng)前的GPS時(shí)間,將當(dāng)前的GPS時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí);用于初始化完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊; 正常運(yùn)行模塊當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),用于通過接收機(jī)接收授時(shí)衛(wèi)星信號(hào)實(shí)時(shí)獲取系統(tǒng)的UTC時(shí)間,根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取系統(tǒng)的GPS時(shí)間;當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),若收到調(diào)整閏秒通知的中斷消息時(shí),用于使系統(tǒng)進(jìn)入閏秒中斷處理模塊; 閏秒中斷處理模塊當(dāng)系統(tǒng)處于正常運(yùn)行模塊時(shí)收到調(diào)整閏秒通知的中斷消息,用于使UTC時(shí)間按照23 59 59,23 59 :60、00 00 :00、00 00 :01變化,將所述中斷消息中新閏秒值發(fā)送到所述閏秒值存儲(chǔ)模塊;用于閏秒中斷處理完畢后使系統(tǒng)進(jìn)入所述正常運(yùn)行模塊。
6.如權(quán)利要求
5所述的時(shí)鐘閏秒處理系統(tǒng),其特征在于,所述的時(shí)鐘閏秒處理系統(tǒng)還包括授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)模塊如果當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí)系統(tǒng)丟失授時(shí)衛(wèi)星信號(hào),用于使系統(tǒng)根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)獲得UTC時(shí)間,直到授時(shí)衛(wèi)星信號(hào)恢復(fù)良好時(shí)使用接收機(jī)通過授時(shí)衛(wèi)星信號(hào)獲取UTC的時(shí)間;用于授時(shí)衛(wèi)星信號(hào)丟失應(yīng)對(duì)處理完畢后使系統(tǒng)重新進(jìn)入所述正常運(yùn)行模塊。
7.如權(quán)利要求
5或6所述的時(shí)鐘閏秒處理方法,其特征在于,所述根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí)具體為由本地時(shí)間函數(shù)自動(dòng)每秒加一計(jì)時(shí),每秒的時(shí)間間隔由內(nèi)置的高穩(wěn)恒溫晶振進(jìn)行分頻得到。
8.如權(quán)利要求
7所述的時(shí)鐘閏秒處理方法,其特征在于,閏秒值存儲(chǔ)模塊中所述存儲(chǔ)器為單片機(jī)FLASH存儲(chǔ)器。
專利摘要
本發(fā)明公開了一種時(shí)鐘閏秒處理方法及其系統(tǒng),方法包括使用存儲(chǔ)器存儲(chǔ)閏秒值,閏秒值初始由接收機(jī)獲?。划?dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí),通過接收機(jī)實(shí)時(shí)獲取UTC時(shí)間;根據(jù)高穩(wěn)恒溫晶振分頻計(jì)時(shí)獲取GPS時(shí)間;當(dāng)系統(tǒng)重啟時(shí),通過接收機(jī)實(shí)時(shí)獲取UTC時(shí)間;將當(dāng)前的UTC時(shí)間加上閏秒值作為GPS時(shí)間,GPS時(shí)間根據(jù)高穩(wěn)晶振分頻繼續(xù)計(jì)時(shí);系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài);當(dāng)系統(tǒng)處于正常運(yùn)行狀態(tài)時(shí)收到調(diào)整閏秒通知的中斷消息,使UTC時(shí)間按照平滑過渡變化,將中斷消息中新閏秒值寫入存儲(chǔ)器。本發(fā)明可以實(shí)現(xiàn)在閏秒變化時(shí)TOD消息平滑過渡,其時(shí)間與調(diào)整閏秒時(shí)的時(shí)間完全一致,而GPS時(shí)間也不會(huì)出現(xiàn)跳秒,保證在閏秒調(diào)整時(shí)系統(tǒng)的穩(wěn)定正常運(yùn)行。
文檔編號(hào)G04R20/04GKCN102981403SQ201210364560
公開日2013年3月20日 申請(qǐng)日期2012年9月26日
發(fā)明者劉搏, 吳浩浩 申請(qǐng)人:廣東大普通信技術(shù)有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan