本發(fā)明涉及衛(wèi)星導(dǎo)航技術(shù),特別是一種導(dǎo)航衛(wèi)星時(shí)間雙時(shí)鐘域高精度實(shí)時(shí)同步調(diào)整方法。
背景技術(shù):
導(dǎo)航衛(wèi)星開(kāi)機(jī)后,需要和地面進(jìn)行時(shí)間同步,將導(dǎo)航衛(wèi)星時(shí)間調(diào)整到和地面時(shí)間一致?,F(xiàn)有的衛(wèi)星時(shí)間調(diào)整方法主要包括兩類,一是通過(guò)調(diào)整衛(wèi)星頻率來(lái)緩慢調(diào)整衛(wèi)星時(shí)間,該方法存在如下缺點(diǎn):耗時(shí)較長(zhǎng)、地面用戶等待時(shí)間長(zhǎng),無(wú)法實(shí)現(xiàn)多時(shí)鐘域同步調(diào)整;二是通過(guò)直接調(diào)整衛(wèi)星時(shí)間寄存器的方法調(diào)整衛(wèi)星時(shí)間,該方法調(diào)整速度快,但是該方法仍然無(wú)法實(shí)現(xiàn)多時(shí)鐘域同步調(diào)整。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供了一種導(dǎo)航衛(wèi)星時(shí)間雙時(shí)鐘域高精度實(shí)時(shí)同步調(diào)整方法,解決了現(xiàn)有的衛(wèi)星時(shí)間調(diào)整方法耗時(shí)較長(zhǎng)或者不能同時(shí)實(shí)現(xiàn)多個(gè)時(shí)鐘域時(shí)鐘調(diào)整的問(wèn)題,與現(xiàn)有技術(shù)相比縮短了調(diào)整時(shí)間,并可實(shí)現(xiàn)兩個(gè)時(shí)鐘域同步調(diào)整。
本發(fā)明的技術(shù)解決方案是:一種導(dǎo)航衛(wèi)星時(shí)間雙時(shí)鐘域高精度實(shí)時(shí)同步調(diào)整方法,包括如下步驟:
(1)控制衛(wèi)星有效載荷使用上行接收機(jī)接收地面發(fā)送的上行數(shù)據(jù)幀;所述的上行數(shù)據(jù)幀包括星地時(shí)間同步指令、周內(nèi)秒SOW或上行測(cè)距值PR,其中,星地時(shí)間同步指令為控制進(jìn)行導(dǎo)航衛(wèi)星時(shí)間雙時(shí)鐘域?qū)崟r(shí)同步調(diào)整的指令;所述的上行測(cè)距值PR為當(dāng)前導(dǎo)航衛(wèi)星時(shí)間與上行數(shù)據(jù)幀中時(shí)間的時(shí)間差;
(2)將上行數(shù)據(jù)幀進(jìn)行解析得到星地時(shí)間同步指令、周內(nèi)秒SOW或上行測(cè)距值PR,并送至衛(wèi)星時(shí)間生成與保持載荷;
(3)衛(wèi)星時(shí)間生成與保持載荷進(jìn)行判斷,如果接收到星地時(shí)間同步指令, 則轉(zhuǎn)入步驟(4),否則轉(zhuǎn)入步驟(6);
(4)將周內(nèi)秒SOW送至衛(wèi)星的時(shí)間管理FPGA,根據(jù)上行測(cè)距值PR、星地時(shí)延預(yù)置值RR,計(jì)算導(dǎo)航衛(wèi)星時(shí)間秒脈沖信號(hào)1PPS調(diào)整值ΔPOS為
ΔPOS=round{Δt*fFPGA}
其中,round{}為取整運(yùn)算,Δt=PR-RR,Δt的單位為s,fFPGA表示時(shí)間調(diào)整所需的工作時(shí)鐘頻率,ΔPOS為正表示導(dǎo)航衛(wèi)星時(shí)間超前地面時(shí)間,ΔPOS為負(fù)表示導(dǎo)航衛(wèi)星時(shí)間落后地面時(shí)間;
將導(dǎo)航衛(wèi)星時(shí)間秒脈沖信號(hào)1PPS調(diào)整值ΔPOS、星地時(shí)間同步指令發(fā)送至?xí)r間管理FPGA的兩個(gè)不同時(shí)鐘域;
(5)在每個(gè)時(shí)鐘域中分別進(jìn)行如下時(shí)間調(diào)整操作:控制時(shí)間管理FPGA在1個(gè)時(shí)鐘周期內(nèi)將周內(nèi)秒SOW寫(xiě)入導(dǎo)航衛(wèi)星時(shí)間的周內(nèi)秒SOW寄存器中,計(jì)算POSold+ΔPOS+1,如果POSold+ΔPOS+1小于0,則計(jì)算POSold+ΔPOS+1+fFPGA作為新的POS置入導(dǎo)航衛(wèi)星時(shí)間的相位寄存器POS_reg,然后將相位寄存器POS_reg進(jìn)行減一操作;如果POSold+ΔPOS+1大于等于fFPGA,則將POSold+ΔPOS+1-fFPGA作為新的POS置入導(dǎo)航衛(wèi)星時(shí)間的相位寄存器POS_reg,然后將相位寄存器POS_reg加1操作,如果POSold+ΔPOS+1大于等于0且小于fFPGA,則將POSold+ΔPOS+1作為新的POS置入導(dǎo)航衛(wèi)星時(shí)間的相位寄存器POS_reg;其中,POS為導(dǎo)航衛(wèi)星時(shí)間對(duì)1s求余的結(jié)果;POSold為導(dǎo)航衛(wèi)星時(shí)間調(diào)整之前對(duì)應(yīng)的POS;
(6)在每個(gè)時(shí)間調(diào)整所需的工作時(shí)鐘周期,控制導(dǎo)航衛(wèi)星時(shí)間秒脈沖信號(hào)1PPS相位寄存器POS_reg累加1,將周內(nèi)秒SOW的寄存器累加1;其中,當(dāng)相位寄存器POS_reg等于fFPGA時(shí),將相位寄存器POS_reg清零,當(dāng)周內(nèi)秒SOW的寄存器等于604799時(shí),將周內(nèi)秒SOW的寄存器清零;
(7)使用導(dǎo)航衛(wèi)星時(shí)間秒脈沖信號(hào)的相位寄存器POS_reg中的POS更新導(dǎo)航衛(wèi)星時(shí)間對(duì)應(yīng)的周期數(shù)WN、周內(nèi)秒SOW寄存器中的周內(nèi)秒數(shù)SOW,進(jìn)而完成導(dǎo)航衛(wèi)星時(shí)間同步。
所述的fFPGA的計(jì)算方法包括如下步驟:
(1)獲取兩個(gè)時(shí)鐘域時(shí)間調(diào)整所需的工作時(shí)鐘頻率;
(2)計(jì)算得到兩個(gè)時(shí)鐘域時(shí)間調(diào)整所需的工作時(shí)鐘頻率的最大公約數(shù),并作為時(shí)間調(diào)整所需的工作時(shí)鐘頻率fFPGA。
所述的PR∈[0,1000ms),RR=82ms。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:本發(fā)明方法與現(xiàn)有現(xiàn)有相比,具有時(shí)間調(diào)整精度高、時(shí)間調(diào)整耗時(shí)少、可實(shí)現(xiàn)兩時(shí)鐘域同步調(diào)整的優(yōu)點(diǎn),另外本發(fā)明方法中1PPS相位調(diào)整和秒計(jì)數(shù)相位調(diào)整獨(dú)立進(jìn)行,除進(jìn)位和借位操作外,沒(méi)有交互,避免了出現(xiàn)秒計(jì)數(shù)調(diào)整出現(xiàn)1整秒偏差的問(wèn)題。
附圖說(shuō)明
圖1是試驗(yàn)星校時(shí)方案流程圖;
圖2是本發(fā)明方法中衛(wèi)星時(shí)間的校正、保持和分發(fā)方法流程圖;
圖3是組網(wǎng)星時(shí)間調(diào)整方案時(shí)間流圖;
圖4是各種不同的衛(wèi)星和地面相位差情況的調(diào)整過(guò)程分析。
具體實(shí)施方式
本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出一種新的衛(wèi)星導(dǎo)航時(shí)間的雙時(shí)鐘域高精度實(shí)時(shí)同步調(diào)整方法,具有時(shí)間調(diào)整精度高、時(shí)間調(diào)整耗時(shí)少、可實(shí)現(xiàn)兩時(shí)鐘域同步調(diào)整的優(yōu)點(diǎn),另外本發(fā)明方法中1PPS(1 Pulse Per Second)相位調(diào)整和秒計(jì)數(shù)相位調(diào)整獨(dú)立進(jìn)行,除進(jìn)位和借位操作外,沒(méi)有交互,避免了出現(xiàn)秒計(jì)數(shù)調(diào)整出現(xiàn)1整秒偏差的問(wèn)題,本發(fā)明方法步驟如下:
(1)衛(wèi)星有效載荷的上行接收機(jī)接收地面用戶發(fā)送的上行數(shù)據(jù)幀DUP2碼,其中,包含星地時(shí)間同步指令;
(2)上行接收機(jī)收到該幀DUP2碼數(shù)據(jù)的幀頭后,在100ms以內(nèi),將周內(nèi)秒、上行測(cè)距值(范圍為[0~1000ms),注意包括0s,不包括1s)和星地時(shí)間同步指令等其它信息通過(guò)總線發(fā)送給衛(wèi)星時(shí)間生成與保持載荷;
(3)衛(wèi)星時(shí)間生成與保持載荷的CPU接收總線上的上行接收機(jī)發(fā)來(lái)的數(shù) 據(jù),如果其中包含了時(shí)間同步指令,執(zhí)行以下步驟的操作:
(3.1)從上行發(fā)送數(shù)據(jù)幀DUP2碼的第0幀中提取周內(nèi)秒(SOW),并計(jì)算SOW%30、SOW%18、SOW%6、SOW%3發(fā)送給時(shí)間管理FPGA,衛(wèi)星的時(shí)間分為周期數(shù)(WN:Week Number)、周內(nèi)秒數(shù)(SOW:Second of Week)和小數(shù)秒時(shí)間(POS:Position Of Second),POS是當(dāng)前衛(wèi)星時(shí)間對(duì)1s求余的結(jié)果,POSold表示衛(wèi)星時(shí)間調(diào)整之前的POS;
(3.2)根據(jù)上行測(cè)距值(PR)和星地時(shí)延預(yù)置值(RR),計(jì)算導(dǎo)航衛(wèi)星時(shí)間(1PPS)調(diào)整值ΔPOS,上行測(cè)距值PR為衛(wèi)星載荷接收到地面主控站發(fā)射的上行信號(hào)后,根據(jù)跟蹤和解調(diào)的結(jié)果,計(jì)算衛(wèi)星時(shí)間和上行信號(hào)中時(shí)間的時(shí)間差作為上行測(cè)距值PR;
Δt=PR-RR,其中PR∈[0,1000ms),RR=82ms,Δt∈[-82ms,918ms);
(3.3)將Δt轉(zhuǎn)換為FPGA的時(shí)鐘節(jié)拍數(shù)量作為調(diào)整量發(fā)送給時(shí)間管理FPGA,Δt轉(zhuǎn)換為FPGA的時(shí)鐘節(jié)拍數(shù)量的方法為:
ΔPOS=Δt×fFPGA,其中,fFPGA表示時(shí)間管理所采用的時(shí)鐘頻率;
此時(shí)得到的ΔPOS含有正負(fù)號(hào),且考慮到上行測(cè)距值PR的測(cè)量方法是星上1PPS開(kāi)門(mén)、上行恢復(fù)出的地面時(shí)間的1PPS關(guān)門(mén),故ΔPOS的正負(fù)號(hào)的含義如下:
ΔPOS正號(hào)表示衛(wèi)星時(shí)間超前地面時(shí)間,需要將衛(wèi)星時(shí)間進(jìn)行滯后操作;
ΔPOS正號(hào)表示衛(wèi)星時(shí)間超前地面時(shí)間,需要將衛(wèi)星時(shí)間進(jìn)行滯后操作;
(3.4)將該調(diào)整量發(fā)送給時(shí)間管理FPGA;
(3.5)CPU計(jì)算完畢后,馬上向時(shí)間管理FPGA發(fā)送啟動(dòng)星地時(shí)間同步的指令,CPU的兩條指令之間沒(méi)有其它的指令操作,發(fā)送時(shí)間應(yīng)處于地面北斗時(shí)的200ms~500ms;
(4)若FPGA沒(méi)有接收到時(shí)間同步指令時(shí),每一個(gè)時(shí)鐘周期,執(zhí)行以下操作:
(4.1)1PPS相位寄存器(POS_reg)累加1;
(4.2)當(dāng)1PPS相位寄存器累(POS_reg)加滿1整秒(fFPGA)時(shí),POS_reg清零,SOW_reg累加1,30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器累加1;
(4.3)SOW_reg加滿1整周(604799)后,SOW_reg清零;30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器加滿18s、6s、3s后,分別清零;
(4.4)30s累加寄存器滿30s后清零;
(4.5)18s累加寄存器滿18s后清零;
(4.6)6s累加寄存器滿6s后清零;
(4.7)3s累加寄存器滿3s后清零;
(5)若FPGA接收到時(shí)間同步指令時(shí),執(zhí)行以下操作:
(5.1)FPGA接收CPU置入的SOW;
(5.2)FPGA接收CPU置入的SOW%30、SOW%18、SOW%6、SOW%3;
(5.3)FPGA接收CPU置入的ΔPOS;
(5.4)FPGA接收CPU置入的啟動(dòng)時(shí)間同步指令;
(5.5)FPGA1在1個(gè)時(shí)間管理時(shí)鐘周期內(nèi)執(zhí)行以下操作:
調(diào)整周內(nèi)秒寄存器:采用時(shí)序電路,將CPU寫(xiě)入FPGA1的SOW、SOW%30、SOW%18、SOW%6、SOW%3的新值置入SOW、SOW%30、SOW%18、SOW%6、SOW%3的寄存器中;
調(diào)整1PPS相位寄存器:采用時(shí)序電路,在一個(gè)時(shí)鐘周期內(nèi),判斷POSold+ΔPOS+1的值(注意:時(shí)間同步操作本身需要1個(gè)時(shí)鐘周期,所以需要“+1”)
如果小于0(即:POSold+ΔPOS+1的值為負(fù)數(shù)),將POSold+ΔPOS+1+fFPGA作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器需 進(jìn)行額外的借位操作,即減一操作;
如果大于等于1秒(POSold+ΔPOS+1的值大于等于fFPGA),將POSold+ΔPOS+1-fFPGA作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器需進(jìn)行額外的進(jìn)位操作,即加1操作;
如果大于等于0,小于等于1秒,將POSold+ΔPOS+1作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器不進(jìn)行額外的加/減1操作;
時(shí)鐘管理模塊工作時(shí)鐘fFPGA的選擇方法,包括如下步驟:為保證B2/B3/S(61.38MHz/122.76MHz/245.52MHz時(shí)鐘域)和B1(85.932MHz/171.864MHz時(shí)鐘域)隨著衛(wèi)星時(shí)間的調(diào)整,同步的調(diào)整播發(fā)的導(dǎo)航信號(hào),需對(duì)兩個(gè)時(shí)鐘域下分別設(shè)置1PPS相位調(diào)整寄存器POS_Reg,兩個(gè)時(shí)鐘域下的1PPS相位相差固定時(shí)間Δτ,且校時(shí)、調(diào)相不影響Δτ的值,即保證校時(shí)、調(diào)相前后,61.38MHz/122.76MHz/245.52MHz和85.932MHz/171.864MHz時(shí)鐘域下的1PPS的相位差不變。
為了實(shí)現(xiàn)該功能,尋找61.38MHz和85.932MHz的最大公約數(shù)12.276MHz作為相位調(diào)整的頻率,相位調(diào)整值計(jì)算方法和調(diào)整步驟如下:
(1)CPU根據(jù)上行測(cè)距值計(jì)算得到星地鐘差Δt,對(duì)于MEO來(lái)說(shuō)鐘差范圍為[-82ms,918ms),該鐘差為32bits有符號(hào)數(shù);
(2)根據(jù)鐘差Δt計(jì)算中間調(diào)整量,計(jì)算方法為:round{Δt(單位為s)*fFPGA},其中round{}為取整運(yùn)算,這導(dǎo)致相位調(diào)整步長(zhǎng)為81.45ns;
(3)將該調(diào)整量置入FPGA中的相位調(diào)整寄存器中(32bits有符號(hào)數(shù)),用于調(diào)整FPGA1內(nèi)的1PPS的相位。
相位調(diào)整功能中大位寬和高速率的FPGA實(shí)現(xiàn)方法,包括如下步驟:FPGA1和FPGA2內(nèi)的時(shí)間管理模塊分別工作在61.38MHz和85.932MHz時(shí)鐘下,由于時(shí)鐘頻率較高,且FPGA1和FPGA2內(nèi)均運(yùn)行著更高速率的時(shí)鐘245.52MHz和171.864MHz,F(xiàn)PGA1和FPGA2的時(shí)鐘管理模塊完成布局布線后,通過(guò)靜態(tài)時(shí)序分析(STA)工具,時(shí)鐘管理模塊的運(yùn)行速率達(dá)不到在61.38MHz和85.932MHz時(shí)鐘。
為解決該問(wèn)題,通過(guò)STA深入分析關(guān)鍵路徑,發(fā)現(xiàn)在一個(gè)時(shí)鐘周期內(nèi)實(shí)現(xiàn)POSold+ΔPOS+1+fFPGA、POSold+ΔPOS+1-fFPGA和POSold+ΔPOS+1的組合邏輯為時(shí)間管理模塊的關(guān)鍵路徑。
采用如下方法解決時(shí)序問(wèn)題:
(1)CPU不再向FPGA1、FPGA2置入ΔPOS值,而是向FPGA1、FPGA2置入ΔPOS+1+fFPGA、ΔPOS+1-fFPGA和ΔPOS+1,使得FPGA1、FPGA2避免了多個(gè)連續(xù)加法運(yùn)算;
(2)按照解決關(guān)鍵路徑、提高電路時(shí)序的通用方法,將組合邏輯打散,POSold+ΔPOS+1+fFPGA、POSold+ΔPOS+1-fFPGA和POSold+ΔPOS+1原來(lái)的運(yùn)算在1個(gè)時(shí)鐘周期內(nèi)完成運(yùn)行,現(xiàn)在的運(yùn)算在3個(gè)時(shí)鐘周期內(nèi)實(shí)現(xiàn);
(3)在CPU置入ΔPOS+1+fFPGA、ΔPOS+1-fFPGA和ΔPOS+1后,CPU最快在250ns后置入啟動(dòng)指令(間隔1個(gè)CPU指令周期,CPU運(yùn)行速度60MHz,每個(gè)指令周期插入15個(gè)等待周期)。而在CPU置入ΔPOS+1+fFPGA、ΔPOS+1-fFPGA和ΔPOS+1后,F(xiàn)PGA馬上進(jìn)行POSold+(ΔPOS+1+fFPGA)、POSold+(ΔPOS+1-fFPGA)和POSold+(ΔPOS+1)運(yùn)算,運(yùn)算在3個(gè)61.38MHz時(shí)鐘周期內(nèi)完成,運(yùn)算時(shí)間約為48.8ns,小于250ns,故可在CPU置入調(diào)整啟動(dòng)指令前,完成上述運(yùn)算。
如果在CPU置入ΔPOS+1+fFPGA、ΔPOS+1-fFPGA和ΔPOS+1后,F(xiàn)PGA完成了POSold+ΔPOS+1+fFPGA、POSold+ΔPOS+1-fFPGA和POSold+ΔPOS+1運(yùn)算,但是由于CPU工作較慢,在CPU置入調(diào)整啟動(dòng)指令前,F(xiàn)PGA更新了POSold的值(POSold的值每1/fFPGA=1/12.276MHz更新一次),需要重新計(jì)算POSold+ΔPOS+1+fFPGA、POSold+ΔPOS+1-fFPGA和POSold+ΔPOS+1。FPGA通過(guò)設(shè)計(jì)保證采用3個(gè)61.38MHz的時(shí)鐘(每個(gè)12.276MHz時(shí)鐘有5個(gè)61.38MHz時(shí)鐘周期)周期完成運(yùn)算,即在下一次POSold更新前完成運(yùn)算,下面結(jié)合附圖對(duì)本發(fā)明方法進(jìn)行詳細(xì)說(shuō)明。
如圖1所示為試驗(yàn)星校時(shí)方案流程圖,現(xiàn)有的衛(wèi)星時(shí)間調(diào)整方法,包括如下步驟:
(1)步驟1:指令空間傳送
空間指令傳送階段是指地面發(fā)出時(shí)間同步指令后,信號(hào)在空間傳輸并經(jīng)過(guò)上行注入接收機(jī)送至衛(wèi)星時(shí)間生成與保持載荷的時(shí)間。耗時(shí)約1s。
(2)步驟2:等待90N-1
CPU軟件接收到時(shí)間同步指令后,等待地面時(shí)間到90N-1時(shí)向FPGA發(fā)送校時(shí)指令,最多等待90s。由于FPGA試驗(yàn)星的設(shè)計(jì)為同時(shí)調(diào)整所有信號(hào),所以必須等到所有信號(hào)的周期的最小公倍數(shù)時(shí)才可進(jìn)行調(diào)整。
(3)步驟3:校時(shí)指令處理
向FPGA發(fā)送校時(shí)指令后,CPU軟件進(jìn)入等待模式,此時(shí)不處理也不發(fā)出任何信息,為保證FPGA有足夠的時(shí)間完成校時(shí),CPU等待20s后等待FPGA的中斷開(kāi)始工作。
(4)步驟4:等待上行測(cè)距值穩(wěn)定
校時(shí)完成后,CPU軟件向1553B總線上的設(shè)備廣播校時(shí)完成信息,共廣播5s,每秒1次。此時(shí)上行注入接收機(jī)開(kāi)始工作,再等待13秒后認(rèn)為上行測(cè)距值穩(wěn)定,此時(shí)開(kāi)始使用測(cè)距值進(jìn)行調(diào)相。
(5)步驟5:第一次調(diào)相
CPU軟件向FPGA發(fā)送調(diào)相指令后,進(jìn)入等待模式,等待8s后認(rèn)為調(diào)相已經(jīng)完成等待FPGA中斷到來(lái)后開(kāi)始工作。
(6)步驟6:第二次調(diào)相
若星地時(shí)延大于500ms,一次調(diào)相無(wú)法調(diào)整到位還需進(jìn)行第二次調(diào)相,第二次調(diào)相在第一次調(diào)相完成后立刻開(kāi)始執(zhí)行,執(zhí)行過(guò)程同第一次調(diào)相。
表1現(xiàn)有時(shí)間調(diào)整方案流程及耗時(shí)分析
如圖2所示為衛(wèi)星時(shí)間的校正、保持和分發(fā)方法流程圖,如圖3所示為組網(wǎng)星時(shí)間調(diào)整方案時(shí)間流圖,衛(wèi)星時(shí)間的校正、保持和分發(fā)方法,包括如下步驟:
(1)衛(wèi)星有效載荷的上行接收機(jī)接收地面用戶發(fā)送的上行數(shù)據(jù)幀DUP2碼,其中包含星地時(shí)間同步指令;
(2)上行接收機(jī)收到該幀DUP2碼數(shù)據(jù)的幀頭后,在100ms以內(nèi),將周內(nèi)秒、上行測(cè)距值(范圍為[0~1000ms),注意包括0s,不包括1s)和星地時(shí)間同步指令等其它信息通過(guò)總線發(fā)送給衛(wèi)星時(shí)間生成與保持載荷;
(3)衛(wèi)星時(shí)間生成與保持載荷的CPU接收總線上的上行接收機(jī)發(fā)來(lái)的數(shù)據(jù),如果其中包含了時(shí)間同步指令,執(zhí)行以下步驟的操作:
(3.1)從上行發(fā)送數(shù)據(jù)幀DUP2碼的第0幀中提取周內(nèi)秒(SOW),并計(jì)算SOW%30、SOW%18、SOW%6、SOW%3發(fā)送給時(shí)間管理FPGA;
(3.2)根據(jù)上行測(cè)距值(PR)和星地時(shí)延預(yù)置值(RR),計(jì)算導(dǎo)航衛(wèi)星時(shí)間(1PPS)調(diào)整值ΔPOS:
Δt=PR-RR,其中PR∈[0,1000ms),RR=82ms,Δt∈[-82ms,918ms);
(3.3)將Δt轉(zhuǎn)換為FPGA的時(shí)鐘節(jié)拍數(shù)量作為調(diào)整量發(fā)送給時(shí)間管理FPGA,Δt轉(zhuǎn)換為FPGA的時(shí)鐘節(jié)拍數(shù)量的方法為:
ΔPOS=Δt×fFPGA,其中fFPGA表示時(shí)間管理所采用的時(shí)鐘頻率
此時(shí)得到的ΔPOS含有正負(fù)號(hào),且考慮到上行測(cè)距值PR的測(cè)量方法是星上1PPS開(kāi)門(mén)、上行恢復(fù)出的地面時(shí)間的1PPS關(guān)門(mén),故ΔPOS的正負(fù)號(hào)的含義如下:
ΔPOS正號(hào)表示衛(wèi)星時(shí)間超前地面時(shí)間,需要將衛(wèi)星時(shí)間進(jìn)行滯后操作;
ΔPOS正號(hào)表示衛(wèi)星時(shí)間超前地面時(shí)間,需要將衛(wèi)星時(shí)間進(jìn)行滯后操作;
(3.4)將該調(diào)整量發(fā)送給時(shí)間管理FPGA;
(3.5)CPU計(jì)算完畢后,馬上向時(shí)間管理FPGA發(fā)送啟動(dòng)星地時(shí)間同步的指令,CPU的兩條指令之間沒(méi)有其它的指令操作,發(fā)送時(shí)間應(yīng)處于地面北斗時(shí)的200ms~500ms;
(4)若FPGA沒(méi)有接收到時(shí)間同步指令時(shí),每一個(gè)時(shí)鐘周期,執(zhí)行以下操作:
(4.1)1PPS相位寄存器(POS_reg)累加1;
(4.2)當(dāng)1PPS相位寄存器累(POS_reg)加滿1整秒(fFPGA)時(shí),POS_reg清零,SOW_reg累加1,30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器累加1;
(4.3)SOW_reg加滿1整周(604799)后,SOW_reg清零;30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器加滿18s、6s、3s后,分別清零;
(4.4)30s累加寄存器滿30s后清零;
(4.5)18s累加寄存器滿18s后清零;
(4.6)6s累加寄存器滿6s后清零;
(4.7)3s累加寄存器滿3s后清零;
(5)若FPGA接收到時(shí)間同步指令時(shí),執(zhí)行以下操作:
(5.1)FPGA接收CPU置入的SOW;
(5.2)FPGA接收CPU置入的SOW%30、SOW%18、SOW%6、SOW%3;
(5.3)FPGA接收CPU置入的ΔPOS;
(5.4)FPGA接收CPU置入的啟動(dòng)時(shí)間同步指令;
(5.5)FPGA1在1個(gè)時(shí)間管理時(shí)鐘周期內(nèi)執(zhí)行以下操作:
調(diào)整周內(nèi)秒寄存器:采用時(shí)序電路,將CPU寫(xiě)入FPGA1的SOW、SOW%30、SOW%18、SOW%6、SOW%3的新值置入SOW、SOW%30、SOW%18、SOW%6、SOW%3的寄存器中;
調(diào)整1PPS相位寄存器:采用時(shí)序電路,在一個(gè)時(shí)鐘周期內(nèi),判斷POSold+ΔPOS+1的值(注意:時(shí)間同步操作本身需要1個(gè)時(shí)鐘周期,所以需要“+1”)
如果小于0(即:POSold+ΔPOS+1的值為負(fù)數(shù)),將POSold+ΔPOS+1+fFPGA作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器需進(jìn)行額外的借位操作,即減一操作;
如果大于等于1秒(POSold+ΔPOS+1的值大于等于fFPGA),將POSold+ΔPOS+1-fFPGA作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器需進(jìn)行額外的進(jìn)位操作,即加1操作;
如果大于等于0,小于等于1秒,將POSold+ΔPOS+1作為新的POS置入POS寄存器(POS_reg)中;SOW寄存器、30s累加寄存器、18s累加寄存器、6s累加寄存器、3s累加寄存器不進(jìn)行額外的加/減1操作。
如圖4所示為各種不同的衛(wèi)星和地面相位差情況的調(diào)整過(guò)程分析,對(duì)于調(diào)整導(dǎo)航衛(wèi)星的1PPS相位來(lái)說(shuō),調(diào)整前后不同的相位關(guān)系決定了不同的處理方法。下表(表2)給出了星地時(shí)間同步前后1PPS相位關(guān)系的所有可能情況,對(duì)每一種情況進(jìn)行分析,給出每一種情況的處理方法。
表2各種調(diào)相值分析
可以看出,本發(fā)明提供的適用于導(dǎo)航衛(wèi)星有效載荷使用的衛(wèi)星導(dǎo)航時(shí)間的雙時(shí)鐘域高精度實(shí)時(shí)同步調(diào)整方法,適用于各種不同的衛(wèi)星和地面相對(duì)時(shí)間的情況。
本發(fā)明說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。