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