(北京空間飛行器總體設(shè)計部,北京 100094)
星間通信及距離測量是實現(xiàn)衛(wèi)星組網(wǎng)編隊飛行及自主定軌的關(guān)鍵技術(shù)。測距精度直接影響自主定軌精度,最終影響終端用戶的定位精度。雙向單程測距體制(DOW)要求發(fā)送端和接收端嚴(yán)格按照統(tǒng)一的時鐘節(jié)拍進行信號的發(fā)送與接收,即要求發(fā)送端按照本星時頻單元輸出秒脈沖的上升沿發(fā)送測距信號,接收端按照本星時頻單元輸出秒脈沖的上升沿(秒脈沖上升沿即為測距時刻)采樣測距信號,計算傳播延時產(chǎn)生偽距測量。但是由于測距接收機中跟蹤測量FPGA的工作時鐘與時頻單元的時鐘非同源,所以跟蹤測量FPGA依據(jù)工作時鐘計數(shù)形成的秒脈沖上升沿會早于或晚于時頻單元秒脈沖的上升沿,又由于兩個時鐘的異步關(guān)系,也不可以用時頻單元秒脈沖上升沿直接對測距信號進行采樣(FPGA內(nèi)部會產(chǎn)生亞穩(wěn)態(tài)),所以需要測量出這兩個脈沖之間的時間差來對測距值進行修正。經(jīng)調(diào)研,目前國內(nèi)外測量兩個脈沖時間差方法[1]包括直接計數(shù)法,模擬內(nèi)插法、延遲內(nèi)插法、不同長度導(dǎo)線測量法及游標(biāo)法等。
(1)直接計數(shù)法,用高速時鐘對這兩個脈沖進行采樣,測量兩個脈沖之間的時鐘個數(shù)。本方法測量精度較低,在十幾納秒范圍內(nèi),而且由于是異步關(guān)系所以采樣會存在亞穩(wěn)態(tài),導(dǎo)致存在整周期模糊度問題,而測距接收機要求的測量精度在百皮秒量級,所以不適用在高精度測距接收機中。
(2)模擬內(nèi)插法,本方法基于電子計數(shù)方法,對待測脈沖填充計數(shù)時鐘。需要使用模擬電路進行充放電,還要使用更高頻率時鐘進行采樣,由于模擬電路容易受工作環(huán)境高低溫影響,并且采用的更高頻率時鐘還是存在一個時鐘周期的不確定度,測量精度依舊不高,在測距接收機中不適用。
(3)延遲內(nèi)插法,原理是通過大量具有相同延時間隔的傳輸單元串聯(lián)組成,開始信號進入延遲單元后啟動監(jiān)測結(jié)束信號,當(dāng)開始和結(jié)束信號均進入延遲單元后統(tǒng)計通過的延時單元來計算時差,這些功能目前采用專用集成電路設(shè)計來實現(xiàn),僅采用FPGA很難實現(xiàn)。
(4)不同長度導(dǎo)線測量方法需要過多的外圍硬件,并且測量值易受工作環(huán)境高低溫影響,僅采用FPGA很難實現(xiàn)。
上述幾種測量方法要么是測量精度不滿足需求,要么就是電路復(fù)雜,溫度穩(wěn)定性不好,均不滿足使用要求。本文提出了一種測距修正方法,即采用偽碼鎖相跟蹤環(huán)技術(shù)實現(xiàn)時鐘同步與時差測量,優(yōu)點是工作環(huán)境簡單,資源占用少,采用1片F(xiàn)PGA就可以實現(xiàn),能夠與片內(nèi)其它功能模塊進行集成設(shè)計,減少接口傳遞,具有測量隨機誤差小、精度高(可達(dá)皮秒量級),不易受高低溫影響等優(yōu)點。
星間測距接收機接收時頻單元輸出的3個時頻信號,如圖1所示。這3個時頻信號分別是10 MHz時鐘信號,10.23 MHz時鐘信號以及秒脈沖信號。其中,10 MHz時鐘信號是由原子鐘產(chǎn)生,10.23 MHz稱為時頻基準(zhǔn)信號,由10 MHz時鐘進行頻率綜合后產(chǎn)生。秒脈沖信號由10.23 MHz時頻信號計數(shù)產(chǎn)生,整秒時刻輸出脈沖。接收機將10 MHz進行倍頻產(chǎn)生80 MHz給跟蹤測量FPGA使用。
圖1 跟蹤測量FPGA外圍時鐘使用情況Fig.1 Clock environment of tracking FPGA
10.23 MHz是由10 MHz原子鐘合成得到,但是長時間工作過程中,10 MHz時鐘會由于元器件老化等原因?qū)е骂l率發(fā)生微小變化,最終導(dǎo)致10.23 MHz發(fā)生變化。為了保證時頻基準(zhǔn)信號頻率的準(zhǔn)確性,當(dāng)10 MHz頻率發(fā)生變化時,需要對頻綜的參數(shù)進行調(diào)整,使得時頻基準(zhǔn)信號依然保持10.23 MHz輸出,時頻基準(zhǔn)信號調(diào)整范圍為±1.5 Hz。10.23 MHz時鐘調(diào)整的過程,實際上是對10.23 MHz與10 MHz的頻率與相位關(guān)系進行調(diào)整,上述兩個時鐘的異步關(guān)系導(dǎo)致跟蹤測量FPGA工作時鐘80 MHz與10.23 MHz信號所產(chǎn)生的秒脈沖也是異步的。
雙向單程測距是指兩顆衛(wèi)星依據(jù)自己時間基準(zhǔn)在本星時頻單元的秒脈沖上升沿時刻按照10.23 MHz頻率相互發(fā)送測距信號,同時在秒脈沖上升沿時刻互相測量對方信號的到達(dá)時刻,隨后通過互相交換對方的偽距測量值以達(dá)到消除鐘差實現(xiàn)真實距離的測量。
例如,A星按照秒脈沖上升沿,周期的發(fā)送測距偽隨機碼。經(jīng)過空間傳輸后到達(dá)B星,B星通過測距接收機接收,并在本星時頻單元輸出秒脈沖上升沿時刻鎖存跟蹤環(huán)路恢復(fù)出來的A星發(fā)來偽碼整數(shù)碼片計數(shù)與小數(shù)碼片計數(shù),隨后再按照式(1)計算出空間傳播的時間。如果雙星時間完全同步,則計算出來的就是雙星之間真實距離,否則計算出來的就是偽距。跟蹤測量FPGA取得的測距值t和雙星之間的偽距T(單位:s)為
(1)
式中:tint為鎖存的整碼片計數(shù);tfrac為鎖存的小數(shù)碼片計數(shù);w為偽碼跟蹤環(huán)路NCO的累加器位寬,Δt為雙星時差。
圖2所示為跟蹤測量FPGA的測距時刻與時頻單元秒脈沖上升沿時刻不一致時形成的測距誤差,式(1)中的t即是圖1中的偽碼傳播延時,B星應(yīng)該的測距時刻是整1 s時刻,而實際的測距時刻是80 MHz時鐘產(chǎn)生的測距時刻,所以需要扣除td,則修正后的偽距T′為
T′=1-(t-td)=T+td
(2)
式中:td為時間修正量。
圖2 A星發(fā)B星收測距碼空間傳播時序Fig.2 Ranging code propagation in space between two satellites
跟蹤測量FPGA的輸入信號10.23 MHz與80 MHz是異步關(guān)系,為了實現(xiàn)兩個時鐘產(chǎn)生的秒脈沖同步,首先必須同步這兩個時鐘,在時鐘同步的前提下可以實現(xiàn)測量脈沖之間的同步。本文介紹了一種采用偽碼鎖相技術(shù)實現(xiàn)80 MHz與10.23 MHz信號進行同步的方法,跟蹤環(huán)路FPGA實現(xiàn)見圖3。時頻單元輸入的10.23 MHz與秒脈沖信號作為輸入驅(qū)動“偽碼序列A生成器”產(chǎn)生周期為1 s的偽隨機序列A。由80 MHz作為工作時鐘驅(qū)動“本地NCO”產(chǎn)生片內(nèi)10.23 MHz,與外部時頻輸入的秒脈沖共同驅(qū)動“偽碼序列B生成器”產(chǎn)生一個周期為1 s的偽隨機序列B,序列A與序列B的生成多項式一樣,隨后序列B與序列A送“鑒相器”進行相關(guān)運算產(chǎn)生鑒相誤差,并送“環(huán)路濾波器”,濾波器的輸出來調(diào)整“本地NCO”來實現(xiàn)環(huán)路的跟蹤。當(dāng)環(huán)路鎖定后就實現(xiàn)了片內(nèi)10.23 MHz信號與時頻單元輸入10.23 MHz信號的同步,此時這兩個時鐘產(chǎn)生的秒脈沖就實現(xiàn)了同步。
圖3 FPGA跟蹤環(huán)路實現(xiàn)框圖Fig.3 Tracking loop diagram in FPGA
二進制數(shù)隨機序列具有很重要的特點,它具有良好的自相關(guān)性[2]。一個二進制數(shù)隨機序列x(t)的自相關(guān)函數(shù),Rx(τ)定義為
(3)
其中,x(t-τ)是x(t)在時間上向右平移τ后得到的波形,所以自相關(guān)函數(shù)Rx(τ)是檢查x(t)與它自身平移后的波形x(t-τ)兩者之間的相似程度。二進制數(shù)隨機序列的自相關(guān)函數(shù)Rx(τ)在原點中心呈一個三角形。這表明當(dāng)τ=0時,波形完全重疊,具有最大相關(guān)性,如圖4所示。
注:Tc為碼元寬度。
圖4 偽隨機序列及自相關(guān)函數(shù)
Fig.4 PN code and the autocorrelation function
本應(yīng)用中,選用的偽碼生成多項式為:x24+x7+x2+x+1(初相全一)。
鑒相器是實現(xiàn)兩個異步信號頻率與相位的比較,輸出相位誤差。時頻單元送來的10.23 MHz信號驅(qū)動偽碼生成器A,由秒脈沖信號上升沿置碼生成器初相狀態(tài)。片內(nèi)NCO輸出的10.23 MHz信號驅(qū)動本地偽碼生成器B,由80 MHz時鐘采樣到輸入秒脈沖上升沿后置偽碼序列B初相狀態(tài)。上述兩個偽碼生成序列在80 MHz的工作時鐘節(jié)拍采樣下進行相關(guān)運算,整秒時刻(或毫秒時刻)輸出相關(guān)結(jié)果作為鑒相誤差送環(huán)路濾波器。令:x(n)是對偽碼序列A的采樣序列,y(n)是對偽碼序列B的采樣序列,則相關(guān)運算可以表示為
(4)
式中:N是相關(guān)運算累加長度,n是序列編號。
偽碼跟蹤采用延遲鎖定跟蹤算法,在生成偽碼序列B時產(chǎn)生一路超前(Early)碼Be,一路即時(Prompt)碼Bp和一路滯后(Late)碼Bl,其中超前碼Be的相位相比即時碼Bp的相位超前π相位,滯后碼Bl相對即時碼Bp滯后π相位。當(dāng)跟蹤鎖定時,即時支路的偽碼與輸入的偽碼同頻同相關(guān)系。鑒相算法可以采用式(5)計算。歸一化的鑒相誤差計算公式為[3]
(5)
式中:RL為遲路相關(guān)結(jié)果;RE為早路相關(guān)結(jié)果。
相關(guān)時常決定了鑒相誤差的精度與隨機誤差,長時間的相關(guān)運算可以減小鑒相隨機誤差,提高鑒相精度,但同時又會影響環(huán)路的收斂時間。當(dāng)對收斂時間要求并不嚴(yán)格的場合,可以盡量延長鑒相時間。本例中由于采用的是1 s周期的偽隨機碼,故鑒相時間可以選擇1 s。
環(huán)路濾波器采用理想二階環(huán)路,可以對頻率階躍信號無誤差的跟蹤。環(huán)路濾波器經(jīng)雙線性變換后的數(shù)字化實現(xiàn)形式如圖5所示。
圖5 理想二階環(huán)路數(shù)字化模型Fig.5 Ideal two order loop filter
令ts為環(huán)路鑒相誤差更新頻率,ε為環(huán)路阻尼系數(shù),bl為環(huán)路帶寬。則環(huán)路無阻尼振蕩頻率為
ωn=(8εbl)/(4ε2+1)
(6)
令環(huán)路增益K=KaKb,Ka為鑒相增益,Kb為壓控增益,fs為數(shù)控振蕩器NCO的工作頻率,w是NCO的累加位寬,則Ka=1/π,Kb=2π×fs/2w。通過式(7)、(8)[4]可以計算出環(huán)路濾波器的積分系數(shù)與直通系數(shù)[4]。
積分系數(shù)為
(7)
直通系數(shù)為
(8)
數(shù)控振蕩器是通過調(diào)整累加值大小來控制累加器溢出頻率的快慢來形成不同震蕩頻率的。令:NCO累計器位寬是w,輸出的中心頻率是fo,工作頻率為fs,則頻率控制字fc為
(9)
式中:R(·)表示四舍五入。則在某個溢出時刻,相位累加器溢出后剩余的值為
Pi=M(kfc,2w)
(10)
式中:M(·)表示取模運算,k是滿足kfc>2w的最小整數(shù)。
Pi均勻地分布在[0,fc)范圍內(nèi),當(dāng)Pi為零時,本地NCO恢復(fù)出的10.23 MHz的上升沿與時頻單元輸出的10.23 MHz的上升沿完全對齊,當(dāng)溢出值不為零時,本地NCO恢復(fù)出的10.23 MHz的上升沿將會滯后時頻單元輸出的10.23 MHz的上升沿,并且滯后時間的多少由溢出值Pi來度量。
圖6是使用32 bit相位累加器,80 MHz工作時鐘,中心頻率10.23 MHz,連續(xù)300多個采樣點NCO累加器溢出時刻的相位值轉(zhuǎn)換為時間的仿真曲線。
圖6 NCO溢出值的分布Fig.6 Overflow value of NCO
將溢出值轉(zhuǎn)換成時間(單位:s)為
(11)
從圖6中可以看出,時間呈鋸齒狀均勻分布在[0,12.5]ns范圍內(nèi)。在取得td后再依據(jù)式(2)可以計算出修正后的偽距。
上述鎖相跟蹤環(huán)路的相位測量誤差源包括相位抖動和動態(tài)應(yīng)力誤差,而造成相位抖動誤差源主要分為熱噪聲、機械振動引起震蕩頻率抖動以及艾蘭均方差三種[5-6]。綜合起來,環(huán)路跟蹤相位抖動方差如式(12)所示。
(12)
采用上述方法設(shè)計的偽碼鎖相跟蹤環(huán)路當(dāng)環(huán)路鎖定后本地NCO輸出的10.23 MHz時鐘與時頻單元輸入的10.23 MHz信號實現(xiàn)了同步,并且由這兩個時鐘各自生成的秒脈沖也實現(xiàn)了同步。兩個秒脈沖上升沿的相位差由式(11)給出,相位差的隨機抖動方差由式(12)給出。
上述偽碼鎖相同步及時差測量方法采用FPGA實現(xiàn),分成如下幾個模塊,實現(xiàn)框圖見圖7。
(1)時頻單元時鐘驅(qū)動偽碼產(chǎn)生模塊。該模塊輸入時頻單元時鐘10.23 MHz與秒脈沖信號,并按照2.2節(jié)的偽碼生成多項式產(chǎn)生偽碼序列。偽碼的初相時刻由秒脈沖信號的上升沿置位。
(2)本地偽碼產(chǎn)生模塊。該模塊輸入NCO產(chǎn)生的10.23 MHz信號與啟動信號,由啟動信號上升沿置偽碼相位初相。
(3)乘法運算模塊。對時頻單元驅(qū)產(chǎn)生的偽碼與本地偽碼模塊的早路偽碼、遲路偽碼按照80 MHz的時鐘頻率采樣相乘輸出。
(4)積分清零模塊。該模塊對乘法運算模塊的輸出進行積分累加,每次清零脈沖到達(dá)時刻輸出累加值同時清零。
(5)鑒相模塊。該模塊依據(jù)公式(5)進行相位檢測,輸出鑒相誤差。
(6)環(huán)路濾波器模塊。該模塊依據(jù)2.4節(jié)描述的濾波器進行設(shè)計。
(7)本地偽碼NCO模塊。該模塊工作時鐘80 MHz,根據(jù)“開始跟蹤脈沖”信號啟動輸出10.23 MHz時鐘信號以及積分清零脈沖。本模塊受環(huán)路濾波器輸出的誤差控制字動態(tài)調(diào)整輸出頻率,達(dá)到對時頻輸入的10.23 MHz時鐘的鎖相跟蹤。
(8)鎖定檢測模塊。依據(jù)偽碼自相關(guān)函數(shù)的特性,如果積分時常為1 s,則早(或遲)支路為準(zhǔn)支路相干積分的一半,即是40 000 000,適當(dāng)考慮余量,當(dāng)早(或遲)支路相干積分大于20 000 000時認(rèn)為環(huán)路鎖定,此時輸出的時差測量值有效。
(9)等待計數(shù)器模塊。當(dāng)本地偽碼與輸入偽碼碼相位相差一個碼片以上時,環(huán)路無法跟蹤鎖定。通過設(shè)置等待計數(shù)器延遲本地偽碼初相生成時刻,保證本地偽碼與輸入偽碼相位基本對齊,跳過捕獲過程直接進入跟蹤狀態(tài)。
本設(shè)計是星間通信測距接收機基帶模塊通信測量FPGA程序中的一個小模塊,F(xiàn)PGA選用Xilinx公司的XC4VSX55芯片,該模塊的使用資源情況見表1。
圖7 FPGA設(shè)計實現(xiàn)框圖Fig.7 Project diagram of FPGA
邏輯資源使用數(shù)量/個可用量/個百分比/%Slice registers4251228800Slice LUTS4711228800Full used LUT-FF pairs29560149
為了驗證偽碼鎖相環(huán)路及環(huán)路跟蹤參數(shù)設(shè)計的正確性,采用系統(tǒng)工作時鐘80 MHz,設(shè)置時頻單元輸入時鐘10.23 MHz+1 Hz,采用周期1 ms的偽隨機序列進行跟蹤,相關(guān)積分時間1 ms。設(shè)計環(huán)路帶寬為5 Hz、7 Hz、9 Hz、11 Hz的情況下,環(huán)路跟蹤仿真曲線如圖8所示。從圖8中可以看出,環(huán)路帶寬大收斂速度快。由于頻差在環(huán)路的快捕獲帶內(nèi),所以均經(jīng)過一個周期的頻率捕獲后進入了相位跟蹤[7]。
圖8 1 Hz頻差時不同環(huán)路帶寬下的跟蹤曲線Fig.8 Trace curve of 1Hz frequency difference in different loop width
設(shè)置同一環(huán)路帶寬5 Hz,不同的輸入頻差0.2 Hz、-0.6 Hz、1 Hz、-1.5 Hz情況下進行仿真,環(huán)路的跟蹤特性如圖9所示。從圖9中可以看出,當(dāng)輸入不同頻差信號時環(huán)路均可以跟蹤鎖定,并且當(dāng)鎖定后準(zhǔn)支路的相干積分值基本維持在2倍的早路與遲路的相干值,與理論計算預(yù)期一致。
在不同輸入頻偏下當(dāng)環(huán)路鎖定之后,NCO的溢出值表征的是本地恢復(fù)出的秒脈沖與時頻單元輸入的秒脈沖之間的時間差,可以作為修正量對測距值進行修正。將溢出值轉(zhuǎn)換為時間(見圖10),時間差呈鋸齒狀均勻分布在0~12.5 ns之間。
圖9 當(dāng)輸入不同頻差信號時環(huán)路的跟蹤曲線Fig.9 Trace cure in different frequency difference
圖10 當(dāng)輸入不同頻差信號時NCO溢出時刻Fig.10 Overflow of NCO under different frequency difference
測試環(huán)境硬件組成包括時頻單元,兩個測距接收機基帶模塊(模擬A/B雙星),以及測距接收機的單檢設(shè)備。時頻單元輸出的10 MHz與10.23 MHz信號同時接上述兩個基帶模塊。當(dāng)10 MHz與10.23 MHz相位完全固定時,這兩個時鐘產(chǎn)生的秒脈沖相位保持穩(wěn)定,所以測距曲線穩(wěn)定。此時調(diào)整10.23 MHz為10.23 MHz+1 Hz再觀察補償前與補償后的測距值,如圖11所示。
從圖11的測試曲線可以看出,調(diào)整時鐘頻率后,由于兩個時鐘產(chǎn)生的秒脈沖相位相對滑動,導(dǎo)致測距值呈鋸齒狀波動,補償后測距值穩(wěn)定。此時信號的C/N0=56.5 dB·Hz。補償后測距隨機誤差為0.306 ns,由于補償值的隨機誤差是皮秒量級,為星間無線電測距隨機誤差的1%,所以對最終測量結(jié)果無顯著影響。
圖11 補償前與補償后的測距延時值Fig.11 Range values before and after compensation
本文提出了一種采用偽隨機碼跟蹤鎖相方法對兩個不同源時鐘產(chǎn)生的異步測距時刻進行同步的方法。跟蹤環(huán)路使用的偽隨機碼為截斷的小M序列,并利用偽隨機序列良好的自相關(guān)特性,采用延遲鎖定環(huán)路計算鑒相誤差,環(huán)路濾波器采用理想二階環(huán),可以無誤差的跟蹤頻率階躍變化。最終實現(xiàn)FPGA工作時鐘對時頻單元10.23 MHz信號的良好跟蹤。經(jīng)分析與測試,驗證了跟蹤精度高達(dá)到皮秒量級,修正后對原始測距值隨機誤差影響較小,滿足高精度星間測距的要求。