陳昱均,孫希延,紀(jì)元法
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林541004)
隨著科學(xué)技術(shù)的日新月異,時間同步精度要求越來越高,而高精度的時間同步是國家時間服務(wù)的基本技術(shù)支撐。大多數(shù)實(shí)際工程應(yīng)用并不要求系統(tǒng)所有終端的時間信息與國際標(biāo)準(zhǔn)時間相同,僅要求系統(tǒng)內(nèi)各點(diǎn)的時間相同。從這個角度來看,時間同步可分為絕對時間同步和相對時間同步。絕對時間同步是指本地時間與國際標(biāo)準(zhǔn)時間同步[1],相對時間同步則只在某一工作系統(tǒng)中完成時間同步。絕對時間同步系統(tǒng)的實(shí)現(xiàn)方法較多,如北斗授時、GPS授時、搬運(yùn)鐘法。相對時間同步系統(tǒng)中,時間的基準(zhǔn)由系統(tǒng)內(nèi)部產(chǎn)生,經(jīng)時間比對,將系統(tǒng)終端的時間與時間基準(zhǔn)對齊,完成時間同步。
本研究設(shè)計(jì)一種實(shí)現(xiàn)相對時間同步的系統(tǒng),以FPGA平臺為基礎(chǔ),包含信號發(fā)射部分和信號接收部分。所采用的時間同步標(biāo)準(zhǔn)根據(jù)其發(fā)射部分與接收部分輸出的秒脈沖信號是否同步來判斷,信號發(fā)射部分生成基準(zhǔn)的秒脈沖信號,信號接收部分生成同步的秒脈沖信號。由于系統(tǒng)采用擴(kuò)頻通信體制進(jìn)行時間信號的傳遞,系統(tǒng)不僅可實(shí)現(xiàn)秒脈沖信號的同步,還可實(shí)現(xiàn)數(shù)據(jù)的傳輸。
時間同步是一個時間傳遞的過程,在此過程中,調(diào)整任一端輸出時刻的位置,可使時間達(dá)到同步狀態(tài)。通過對時間信號的調(diào)制發(fā)送與捕獲跟蹤,可實(shí)現(xiàn)時間的傳遞。在接收機(jī)中,對時間信號的實(shí)時跟蹤是一個與該接收信號同步復(fù)制過程,跟蹤環(huán)路由載波跟蹤環(huán)路與碼跟蹤環(huán)路2部分組成,它們分別跟蹤接收信號中的載波與偽碼。
碼跟蹤環(huán)路的主要功能是保持復(fù)制的C/A碼與接收的C/A碼之間的相位一致。因此,對C/A碼周期數(shù)累加,可輸出時間信息,然后根據(jù)碼環(huán)相位的測量誤差估算時間同步的精度。排除多徑和其他干擾后,碼環(huán)的測量誤差主要包括熱噪聲所致的碼相位抖動,σtDLL為熱噪聲引起的碼相位測量均方誤差,則對于非相干前減后功率鑒相法,以偽碼碼片為單位的值σtDLL[2]可用下式進(jìn)行估算:
其中,TC為偽碼碼寬。雖然減小相關(guān)器間距D可降低碼環(huán)的熱噪聲,但其降低程度與射頻前端帶寬Bfe有關(guān)。若提高信號載噪比C/N0,并增加相干積分時間Tcoh,減小環(huán)路噪聲帶寬BL,則σtDLL越小,時間同步精度越高。
信號的調(diào)制發(fā)送主要在FPGA中進(jìn)行,上位機(jī)通過串口或其他接口將數(shù)據(jù)信號發(fā)送至FPGA,在相同的工作時鐘下,載波、偽碼和數(shù)據(jù)信息同時產(chǎn)生。首先將數(shù)據(jù)信息與偽碼進(jìn)行模二加運(yùn)算,實(shí)現(xiàn)數(shù)據(jù)碼的擴(kuò)頻調(diào)制,再對載波進(jìn)行BPSK調(diào)制[3],得到數(shù)字中頻信號。
信號主體結(jié)構(gòu)由載波、偽碼、數(shù)據(jù)碼3部分組成,外部提供10 MHz晶振輸入,系統(tǒng)的整體工作時鐘通過PLL環(huán)倍頻到64 MHz。信號編碼示意圖如圖1所示,其中串口輸入的數(shù)據(jù)為32 bit,擴(kuò)頻碼采用碼速率為1 MHz的Gold碼,偽碼周期為1 ms,選擇載波頻率為400 MHz,是偽碼速率的400倍。
圖1 信號編碼示意圖Fig.1 Schematic diagram of signal coding
在FPGA平臺內(nèi),秒脈沖(1 pulse per second,簡稱1PPS)信號的生成通過對碼周期計(jì)數(shù)產(chǎn)生,碼速率則通過碼NCO[4]控制。碼NCO的結(jié)構(gòu)實(shí)質(zhì)上是由一個加法器和寄存器組成的相位累加器,對于一個N位的碼NCO,每秒增加的相位量會造成寄存器Mfc/2N次溢出,即周期信號的頻率為:
圖2為碼NCO累加仿真圖,取N=32時,碼頻率控制字(即Code_freqword_d1)M=67 108 864,在寄存器BD_c_code_nco中對頻率控制字進(jìn)行累加,則一個碼片所持續(xù)的時間是從累加到寄存器溢出時所持續(xù)的時間。當(dāng)碼片個數(shù)BD_c_phase_count累計(jì)到1000時,毫秒計(jì)數(shù)ch_1ms_counter加1。
圖2 碼NCO累加仿真圖Fig.2 Code NCO cumulative simulation map
對碼頻率控制字累加溢出,寄存器內(nèi)殘余值為0的情況下,本地時鐘計(jì)數(shù)產(chǎn)生1PPS信號。圖3為信號產(chǎn)生端1PPS信號對比圖,其中源1是對本地時鐘計(jì)數(shù),源3是對擴(kuò)頻碼周期計(jì)數(shù)。信號輸出通過不同的IO口導(dǎo)致硬件延時,絕對位置差值為1 ns,在示波器上輸入2種方式產(chǎn)生的1PPS信號,結(jié)果表明信號分辨率基本無差別。
圖3 信號產(chǎn)生端1PPS信號對比Fig.3 1PPS signal comparison of signal modular
信號接收模塊在硬件上通過DSP+FPGA共同完成,主要功能是實(shí)現(xiàn)基帶信號的捕獲與跟蹤。捕獲的目的是估算接收信號的載波頻率和偽碼相位,然后將這2個參數(shù)發(fā)送至跟蹤環(huán)路,再對其進(jìn)行初始化處理。根據(jù)偽碼的良好自相關(guān)和互相關(guān)特性,信號捕獲采用并行碼相位捕獲算法[5],數(shù)字中頻信號與本地載波產(chǎn)生的正弦與余弦信號混頻后,將混頻后的值進(jìn)行FFT處理,同時本地復(fù)制的C/A碼也作FFT處理,然后將處理后的C/A碼的值取其共軛復(fù)數(shù)并乘以混頻作FFT處理的值,將所得的乘積經(jīng)傅里葉反變換,得到在時域內(nèi)的相關(guān)結(jié)果,最后對這些相關(guān)值進(jìn)行檢測,以判斷信號是否存在。
由于需要對信號中的載波頻率和偽碼相位進(jìn)行實(shí)時跟蹤,跟蹤環(huán)路以閉路反饋的方式運(yùn)行。信號跟蹤主要包括載波跟蹤環(huán)路和偽碼相位跟蹤環(huán)路。載波跟蹤的目的是實(shí)時產(chǎn)生與接收信號中載波信號相位一致的本地載波,然后與接收到的信號進(jìn)行混頻,實(shí)現(xiàn)對接收信號中的載波剝離。因?yàn)椴东@的載波頻率只是估計(jì)值,其精度較差,所以需要進(jìn)入一個鎖頻環(huán),使本地載波頻率盡量與接收信號的頻率接近,然后再結(jié)合鎖相環(huán)進(jìn)行載波相位的調(diào)整??梢?,載波跟蹤環(huán)路的設(shè)計(jì)是二階鎖頻輔助三階鎖相環(huán)路[6]。碼跟蹤的目的是產(chǎn)生與接收信號中偽碼相同碼相位的本地偽碼信號,然后對接收信號進(jìn)行解擴(kuò),得到信號調(diào)制的數(shù)據(jù)碼信息。跟蹤時,首先根據(jù)捕獲所得的偽碼相位估計(jì)值生成超前、即時、滯后3路本地偽碼信號,3路信號依次相差半個碼片,然后分別與經(jīng)正弦和余弦混頻后的信號進(jìn)行相關(guān)運(yùn)算,并將相關(guān)后的信號進(jìn)行積分,可得6路積分結(jié)果,將該結(jié)果送入碼環(huán)鑒相器,鑒相器的值再經(jīng)環(huán)路濾波后,調(diào)整數(shù)控振蕩器的輸出,進(jìn)而調(diào)整本地偽碼輸出的頻率和相位,最終形成閉環(huán)的偽碼跟蹤環(huán)路。
接收機(jī)的1PPS信號輸出與信號產(chǎn)生端的1PPS信號輸出是同一原理,不同之處是信號產(chǎn)生端碼速率固定不變,而在接收端,由于受熱噪聲、晶振穩(wěn)定度等影響,碼跟蹤環(huán)路中的相位值有差異,導(dǎo)致碼頻率控制字的生成不固定,繼而影響碼NCO的溢出時間。因?yàn)橐绯鰰r間不同,所以接收端的C/A碼周期與生成端的C/A周期不完全相同。在幀同步后,DSP發(fā)送標(biāo)志位給FPGA,讓其開始對碼周期數(shù)進(jìn)行累加后輸出1PPS信號。信號強(qiáng)度良好的情況下,偽碼跟蹤環(huán)路碼相位測量誤差均方差約為0.01個碼片,碼速率為1 Mchip/s時,距離誤差為3 m左右,對應(yīng)時間為10 ns,并在示波器上輸出產(chǎn)生端與接收端1PPS信號。時間同步精度示意圖如圖4所示,在同源情況下,同步精度最大值為17 ns。
圖4 時間同步精度示意圖Fig.4 Schematic diagram of time synchronization accuracy
接收端1PPS信號的輸出通過C/A碼周期計(jì)數(shù)產(chǎn)生,其本質(zhì)是對C/A碼碼片計(jì)數(shù)。在碼NCO中,32位寄存器溢出1次,碼片數(shù)加1。1PPS信號輸出時刻原理圖如圖5所示,M為碼頻率控制字,當(dāng)寄存器的值處于A、B之間的X點(diǎn)時,下一個時鐘上升沿到來后,寄存器的值將溢出,寄存器當(dāng)前值會小于M,處于B、C之間的Y點(diǎn)。從X到Y(jié)所歷經(jīng)的時間為1個工作時鐘,因?yàn)樾盘柈a(chǎn)生端寄存器的溢出值為0,所以B、Y所歷經(jīng)的時間也等同于B、Y兩處的碼相位,其時間段可看作碼環(huán)相位的測量誤差的主要部分,減小該部分誤差即可提高同步信號的精度。
同源情況下,1PPS信號輸出時對寄存器溢出后的當(dāng)前值進(jìn)行采集。寄存器溢出后的采集值如圖6所示,其中寄存器值采集個數(shù)為192個,寄存器值的大小只在上下兩端波動。根據(jù)這個特點(diǎn),調(diào)整1PPS信號的輸出時刻,即在寄存器的值小于1/2個碼頻率控制字時,輸出1個1PPS信號,或在溢出后的第一個時鐘時,輸出1個1PPS信號,這樣輸出的1PPS信號就會在圖5的B點(diǎn)左右波動很小的相位,進(jìn)而提高了時間的同步精度。
圖5 1PPS信號輸出時刻原理圖Fig.5 1PPS signal output timing diagram
圖6 寄存器溢出后的采集值Fig.6 The acquisition value after register overflows
利用寄存器值的特點(diǎn)輸出秒脈沖信號,并將信號輸入至示波器。改進(jìn)后的時間同步精度如圖7所示,其中源1為信號產(chǎn)生端生成的標(biāo)準(zhǔn)秒脈沖信號,源2為接收機(jī)端改進(jìn)后的秒脈沖信號,源3為未改進(jìn)的秒脈沖信號,改進(jìn)后的秒脈沖信號同步精度1.5 ns,未改進(jìn)的秒脈沖信號同步精度仍為17 ns,精度得到了顯著的提高。
圖7 改進(jìn)后的時間同步精度Fig.7 The improved time synchronization accuracy
利用偽碼跟蹤環(huán)路中本地復(fù)制的碼相位與信號產(chǎn)生端碼相位的對齊作為時間同步,設(shè)計(jì)了一種基于FPGA實(shí)現(xiàn)時間同步的系統(tǒng)結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果表明,在同源情況下,根據(jù)碼NCO溢出值的特點(diǎn)對秒脈沖信號的輸出時刻作調(diào)整,以提高同步精度,秒脈沖信號同步精度達(dá)到了1.5 ns。對于不同源的情況,可在寄存器的值溢出前延遲一定時間,使其處于寄存器的最大值時輸出秒脈沖信號,則時間同步精度能提高到1個時鐘內(nèi)。
[1]王鵬.基于FPGA的絕對時間同步系統(tǒng)的設(shè)計(jì)研究[D].哈爾濱:哈爾濱工程大學(xué),2007:2.
[2]謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2011:317-320.
[3]劉煥淋,向勁松,代少升.擴(kuò)展頻譜通信[M].北京:北京郵電大學(xué)出版社,2008:121-136.
[4]張進(jìn),蘇凱熊.基于FPGA的數(shù)控振蕩器的設(shè)計(jì)與實(shí)現(xiàn)[J].福州大學(xué)學(xué)報(bào),2005,33(5):585-586.
[5]Van Nee R,Coenen A.New fast GPS code-acquisition technique using FFT[J].Electronics Letters,1991,278(2):39-40.
[6]Kaplan E.Understanding GPS:Principles and Applications[M].Second Edition California:Artech House,INC,2006:306.