宋鵬,田樂
(西安工程大學(xué)電子信息學(xué)院,陜西西安710048)
基于FPGA的時(shí)間同步精度的設(shè)計(jì)與實(shí)現(xiàn)
宋鵬,田樂
(西安工程大學(xué)電子信息學(xué)院,陜西西安710048)
為了提高對時(shí)系統(tǒng)的精度,利用FPGA對傳輸對時(shí)信息進(jìn)行解調(diào).以北斗衛(wèi)星的授時(shí)精度為基礎(chǔ),傳輸對時(shí)信息采用IRIG-B碼,在FPGA對IRIG-B碼解調(diào)中引入全數(shù)字Costas環(huán),能夠很好地提取出IRIG-B碼的過零點(diǎn)信息,避免了過零點(diǎn)檢測電路的零點(diǎn)漂移和脈沖抖動等問題.仿真結(jié)果表明,該算法減小了IRIG-B碼的同步誤差,提高了對時(shí)精度,達(dá)到電力系統(tǒng)中對時(shí)的精度要求.
IRIG-B;FPGA;時(shí)間同步;授時(shí)精度
根據(jù)電力系統(tǒng)領(lǐng)域的授時(shí)要求,我國電網(wǎng)規(guī)定時(shí)間信號接收單元通過接收的時(shí)間信號,獲得1pps (pulse per second)和包含北京時(shí)間時(shí)刻和日期信息的時(shí)間報(bào)文,其1pps的前沿與UTC(Universal Time Coordinated)秒的時(shí)刻偏差≤1μs,該1pps和時(shí)間報(bào)文作為主時(shí)鐘的外部基準(zhǔn)時(shí)間[1].
在終端時(shí)間統(tǒng)一設(shè)備,進(jìn)行時(shí)間信息解碼,需要將正弦波轉(zhuǎn)換為矩形波,進(jìn)行過零點(diǎn)檢測.在波形變換過程中,過零點(diǎn)檢測電路由于信道失真、信號不穩(wěn)定、噪音等因素,在零點(diǎn)附近通常產(chǎn)生抖動、漂移,這樣造成零點(diǎn)誤判,輸出時(shí)間精度降低[2-3].根據(jù)可編程邏輯器件(FPGA)的并行處理數(shù)據(jù)方式[4],本文采用FPGA對IRIG-B碼解碼,在解碼中引入全數(shù)字Costas環(huán),能夠很好地提取IRIG-B碼的過零點(diǎn)信息,輸出1pps和時(shí)間報(bào)文,提高了時(shí)間同步精度.
北斗衛(wèi)星導(dǎo)航系統(tǒng)(COMPASS)(北斗二代)是中國正在實(shí)施的自主發(fā)展、獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng).由5顆靜止軌道衛(wèi)星和30顆非靜止軌道衛(wèi)星組成,空間衛(wèi)星的任務(wù)是完成中心控制系統(tǒng)和用戶收發(fā)機(jī)之間的雙向無線電信號轉(zhuǎn)發(fā).北斗衛(wèi)星系統(tǒng)中已成功發(fā)射16顆衛(wèi)星,覆蓋整個亞太地區(qū).北斗全球衛(wèi)星導(dǎo)航系統(tǒng)開放服務(wù)是在服務(wù)區(qū)免費(fèi)提供定位、測速和授時(shí)服務(wù),定位精度為10m,授時(shí)精度為50ns,測速精度為0.2m/s[5-6].
根據(jù)電力系統(tǒng)領(lǐng)域的發(fā)展和授時(shí)精度要求,本文時(shí)間統(tǒng)一終端設(shè)備采用北斗衛(wèi)星導(dǎo)航系統(tǒng)接收機(jī)作為授時(shí)源,輸出標(biāo)準(zhǔn)IRIG-B碼.IRIG-B碼是將串口對時(shí)的時(shí)間報(bào)文和數(shù)據(jù)脈沖對時(shí)的準(zhǔn)時(shí)沿的優(yōu)勢結(jié)合在一起來傳輸時(shí)間信息,這種方式只需要傳送一組信號,節(jié)約了主時(shí)鐘系統(tǒng)資源[7].在終端系統(tǒng)設(shè)計(jì)中,采用FPGA對IRIG-B進(jìn)行解碼,其解調(diào)系統(tǒng)框圖如圖1所示.
圖1 IRIG-B碼解調(diào)系統(tǒng)圖
圖2 IRIG-B碼示意圖
IRIG-B格式時(shí)間碼是每秒一幀的時(shí)間碼,其中B(DC)碼的波形如圖2所示.由圖2可以看出,IRIG-B碼為脈寬調(diào)制的時(shí)間碼,它每秒一幀,每個脈沖稱為碼元.IRIG-B碼是脈寬調(diào)制的時(shí)間格式.索引計(jì)數(shù)間隔的5ms和2ms分別代表了二進(jìn)制“1”和“0”.參考碼元(PR)的“準(zhǔn)時(shí)”參考點(diǎn)為參考碼元的前沿.
在實(shí)際應(yīng)用中,根據(jù)IRIG-B碼傳輸距離的不同,IRIG-B碼有非幅度調(diào)制DC碼(直流碼)和幅度調(diào)制AC碼(交流碼)兩種碼型.非調(diào)制IRIG-B碼是一種標(biāo)準(zhǔn)的TTL電平信號,適用于傳輸距離不遠(yuǎn)的場合,可達(dá)到ns級精度.對于長距離傳輸,正弦調(diào)制IRIG-B碼對時(shí)只能達(dá)到ms級的對時(shí)精度[8-10].為了達(dá)到電力系統(tǒng)的對時(shí)的精度要求,采用FPGA進(jìn)行IRIG-B(AC)碼解碼,其環(huán)路采用Costas環(huán)法進(jìn)行零點(diǎn)追蹤,對時(shí)精度可達(dá)到μs級.
直流B碼,可使用電纜進(jìn)行近距離的傳輸,其時(shí)間精度較高,在傳輸距離達(dá)到200m時(shí),依然可以保證較高精度的信號傳輸質(zhì)量.而IRIG-B(AC)用于遠(yuǎn)距離傳輸,其傳輸距離可以達(dá)到500m,因而其應(yīng)用范圍更廣泛.由于經(jīng)過了調(diào)制與解調(diào)的處理過程,因而B(AC)碼信號的時(shí)間精度就會有所降低.
2.1 IRIG-B碼精度的提高
IRIG-B(DC)傳輸采用RS-422標(biāo)準(zhǔn)接口,對輸入的直流碼進(jìn)行電平轉(zhuǎn)換后,得到TTL電平的B碼信號.采用FPGA進(jìn)行IRIG-B(DC)解碼,在每一個IRIG-B碼元的上升沿到來時(shí)開始計(jì)數(shù),下降沿到來時(shí)停止計(jì)數(shù),然后讀出計(jì)數(shù)值,分別判斷出是2ms或5ms或8ms,據(jù)此來判斷碼元的值,同時(shí)做6個狀態(tài)機(jī)將秒、分、時(shí)、天、月、年區(qū)分出來,根據(jù)每次的碼元及狀態(tài)的判斷,確認(rèn)屬于哪種狀態(tài)并轉(zhuǎn)移到這種狀態(tài),直至這一幀數(shù)據(jù)的完成.在一幀數(shù)據(jù)完成后輸出數(shù)據(jù),轉(zhuǎn)換成串口數(shù)據(jù)輸出.同時(shí)在連續(xù)兩個8ms處解出1pps.采用FPGA進(jìn)行IRIG-B(DC)解碼,采取以下幾種措施提高IRIG-B(DC)的對時(shí)精度:
(1)增加外部時(shí)鐘頻率外部時(shí)鐘頻率增加1倍,精度也會相應(yīng)的增加1倍.這種方法是最簡單直接的辦法,但這種方法并不是任何時(shí)候都可以應(yīng)用的.此法雖然能提高IRIG-B(DC)的解碼精度,但同時(shí)增加了整個系統(tǒng)的功耗,并且由于板子運(yùn)行速率的原因也是不能隨意增加外部的時(shí)鐘頻率.
(2)采用脈寬判容錯技術(shù)通過軟件或硬件將1,2,3ms脈沖判別為2ms脈沖,4,5,6ms脈沖判別為5ms脈沖,7,8,9ms脈沖判別為8ms脈沖,做到脈寬判別容錯.
(3)嚴(yán)格同步、失步判據(jù)在解碼時(shí),當(dāng)連續(xù)3ms數(shù)據(jù)正確時(shí)允許同步,同時(shí)當(dāng)連續(xù)3ms數(shù)據(jù)錯誤時(shí)判為失步,以便在最大程度上克服誤碼.
(4)減小1pps脈寬在設(shè)計(jì)中選擇1pps信號來同步編碼過程中的各個信號,1pps脈沖的上升沿來了之后,清零芯片內(nèi)設(shè)計(jì)的各個計(jì)數(shù)器,使之開始記數(shù).但由于1pps脈沖的脈寬較大,如果直接用它做清零信號,會帶來較大的誤差,因此需要把它的脈寬調(diào)整,使用調(diào)整后的脈沖,可以提高編碼的精度.
為了便于傳遞標(biāo)準(zhǔn)時(shí)間格式碼,可用其對標(biāo)準(zhǔn)正弦波載頻進(jìn)行幅度調(diào)制,標(biāo)準(zhǔn)正弦信號必須與產(chǎn)生直流B碼的信號共源,以保持兩者之間的時(shí)間關(guān)系不變.標(biāo)準(zhǔn)正弦波載頻的頻率與碼元速率嚴(yán)格相關(guān),一般為碼元速率的10倍.B碼的標(biāo)準(zhǔn)正弦波載頻頻率為1kHz.同時(shí),其正交過零點(diǎn)(圖中A點(diǎn))與所調(diào)制格式碼元的前沿相符合,標(biāo)準(zhǔn)的調(diào)制比為10∶3,IRIG-B(AC)碼調(diào)制示意圖如圖3所示.
由于信道帶來的噪聲和失真,IRIG-B(AC)碼在經(jīng)過零檢測電路形成的時(shí)間基準(zhǔn)脈沖會有抖動和零點(diǎn)漂移,會把噪聲傳遞到輸出端,導(dǎo)致輸出時(shí)間信號的抖動[2].對B(AC)碼的解調(diào)中引入了全數(shù)字鎖相環(huán),該環(huán)路通過對輸入的B(AC)碼進(jìn)行跟蹤,從而得到其同頻同相的載波,這樣也就精確地得到了B(AC)碼攜帶的過零點(diǎn)信息.這一方法完全克服了以往解調(diào)方式中采用過零點(diǎn)檢測電路所存在的缺點(diǎn).IRIG-B (AC)碼解調(diào)原理圖如圖4所示.
圖3 IRIG-B(AC)碼調(diào)制示意圖
圖4 IRIG-B(AC)碼解調(diào)原理圖
解調(diào)IRIG-B(AC)信號時(shí),必須恢復(fù)出同步載波信號.目前用于同步載波恢復(fù)的方法通常有兩類,一類是在發(fā)送信號的同時(shí),在適當(dāng)?shù)念l率上還發(fā)送導(dǎo)頻信號,實(shí)際中這種方法很少采用.另一類是直接從接收到的信號中提取,可以用平方變換法和COSTAS環(huán)法等.由于在獲得相同的工作性能時(shí),COSTAS環(huán)法的工作頻率是平方變換法工作頻率的1/2.因此,COSTAS環(huán)法在實(shí)際中更為實(shí)用[11-14].本文采用全數(shù)字Costas環(huán)法恢復(fù)B(AC)碼的載波,用作IRIG-B(AC)碼的同步時(shí)鐘.Costas環(huán)的構(gòu)成原理圖如圖5所示.
Costas環(huán)中的壓控振蕩器(VCO)輸出兩路互為正交的載波信號,接收到的輸入信號s(t)分別與同相和正交的載波信號進(jìn)入兩個鑒相器中進(jìn)行鑒相,通過低通濾波器(LPF)濾波后輸出不含倍頻項(xiàng)的基帶信號,再相乘得到誤差信號,送入到環(huán)路濾波器(LF)后輸出與相位差相關(guān)的控制電壓來控制本地載波源的輸出[6].
假設(shè)輸入信號為s(t)=m(t)cos(wct+θ).其中m(t)為調(diào)制信號;wc為輸入信號角頻率;θ為輸入信號初始相位.
本地VCO輸出的兩路載波信號為
圖5 全數(shù)字Costas環(huán)原理圖
其中φ為VCO輸出載波頻率信號的相位值.
輸入信號和本地載波的兩路正交信號相乘倍頻后得到如下所示的兩路信號:
經(jīng)過低通濾波器除掉倍頻項(xiàng)后,得到鑒相器輸入式:
兩路信號經(jīng)過鑒相相乘后得到加在環(huán)路濾波器上的誤差控制信號:
當(dāng)θ-φ總是小于1弧度的時(shí)候,sin(θ-φ)≈(θ-φ),誤差信號就是和相位差相關(guān)的一個信號,最終使穩(wěn)態(tài)相位誤差減少到很小的數(shù)值,而沒有剩余頻差.環(huán)路鎖定時(shí),有v5≈(1/2)m(t).最終,VCO輸出的載波信號就是系統(tǒng)所需要的載波信號.c1,c2分為Costas環(huán)路濾波器上下兩個支路的增益因子,相關(guān)值的計(jì)算公式為
其中ξ為環(huán)路阻尼系數(shù)(工程上一般取0.707);wn為環(huán)路阻尼振蕩頻率,且wn=8ξBL/(4ξ2+1);BL為環(huán)路等效噪音寬帶;T為環(huán)路更新時(shí)間;Kd為環(huán)路總增益.
2.2 數(shù)據(jù)仿真
在Costas環(huán)的設(shè)計(jì)中,首先要處理好環(huán)路的時(shí)鐘問題.在B(AC)碼解調(diào)中,AD模塊對輸入B(AC)碼信號以8kHz的速率采樣.B(AC)碼本身的載波頻率為1kHz,即一個周期采樣8個點(diǎn).取環(huán)路噪聲等效寬度為15Hz,環(huán)路更新時(shí)間為1ms.FIR低通濾波器的工作時(shí)鐘為8kHz,本地NCO的累加時(shí)鐘為8kHz,輸出1kHz的載波.環(huán)路參數(shù)取c1=0.022 013,c2=0.000 247 22.用Matlab進(jìn)行仿真,其結(jié)果如圖6所示.環(huán)路在第350個左右采樣點(diǎn)的位置鎖定,跟蹤時(shí)間約40ms.基于FPGA采用Costas環(huán)進(jìn)行IRIG-B(AC)碼的時(shí)間解調(diào),在復(fù)位開始運(yùn)行約40ms后,輸出相位與輸入的相位差開始趨近零.因?yàn)檫M(jìn)行的是關(guān)于時(shí)間精度的問題,所以有必要將相位差轉(zhuǎn)換為時(shí)間差.因?yàn)椋?/p>
其中w為角速率(rad/s);Δφ為相位差(rad);Δt為時(shí)間差(s).
圖7 輸出與輸入信號的時(shí)間差圖
圖6 輸出與輸入信號的相位差圖
這樣就可以將相位差轉(zhuǎn)換為時(shí)間差,得到輸入與輸出之間的時(shí)間差.采用Matlab進(jìn)行仿真,結(jié)果如圖7所示.從圖7可以得出跟蹤時(shí)間約40ms后,輸出的時(shí)間與輸入的時(shí)間差趨近零,采用Costas環(huán)可以提高IRIG-B(AC)碼的解碼精度達(dá)到μs級別,滿足電力系統(tǒng)的要求.
目前很多時(shí)間同步系統(tǒng)都采用GPS作為同步時(shí)鐘源,雖然GPS是目前最成熟的授時(shí)定位系統(tǒng),但是由于GPS受控于美國國防部,因此不能保證中國用戶的利益.高精度的授時(shí)在我國國防科研、電力領(lǐng)域有著重要的保障作用,因此在獲取時(shí)間信息方面要避免依賴別國技術(shù)而產(chǎn)生的危害,通過擁有自主知識產(chǎn)權(quán)的北斗系統(tǒng),可以產(chǎn)生精度滿足要求更為安全的時(shí)間信息來保障科研需求.
隨著航天、通信、電力等領(lǐng)域?qū)r(shí)間統(tǒng)一系統(tǒng)的要求越來越高,設(shè)計(jì)和實(shí)現(xiàn)高精度、體積小的時(shí)間統(tǒng)一終端變得日益重要.基于FPGA的IRIG-B(AC)碼對時(shí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在IRIG-B(AC)碼解調(diào)中引入全數(shù)字Costas環(huán),能夠很好地提取出B(AC)碼的過零點(diǎn)信息,這避免了在以往解調(diào)電路中使用過零檢測電路時(shí)存在的零點(diǎn)漂移和脈沖抖動等問題,使得恢復(fù)的載波與輸入B(AC)碼的同步誤差縮小至1μs的精度.采用FPGA進(jìn)行IRIG-B編碼方式對時(shí)的優(yōu)點(diǎn)是精度高、數(shù)據(jù)全、不需要人工預(yù)置,缺點(diǎn)是編碼復(fù)雜.
[1]謝黎,黃國方,沈健.數(shù)字化變電站中高精度同步采樣時(shí)鐘的設(shè)計(jì)[J].電力系統(tǒng)自動化,2009(1):61-64.
[2]劉俊俊,繆小松.提高過零檢測精度的方法研究[J].工業(yè)控制計(jì)算機(jī),2009,22(10):80-81.
[3]馬紅皓,胡永輝.GPS&IRIG-B時(shí)間系統(tǒng)分析[D].電子科技,2007,190(7):212.
[4]宋曉梅,楊金濤,榮慶華.基于FPGA的全數(shù)字觸發(fā)器的設(shè)計(jì)[J].西安工程大學(xué)學(xué)報(bào),2009,23(4):98-103.
[5]許宏國.北斗共視授時(shí)技術(shù)研究與設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2007.
[6]馮娟,史浩山,趙宏偉.基于北斗授時(shí)信息的B碼轉(zhuǎn)換設(shè)計(jì)[J].信息安全與通信保密,2008(12):92-93.
[7]王卿,宋鐵成.基于GPS技術(shù)進(jìn)行精度授時(shí)的方法[J].電氣電子教學(xué)教報(bào),2007,29(4):34-38.
[8]VYAEHESLAV I V,lllYA E K,IRINA P C.Accurate time synchronization for digital communication network[J].Microwave&Telecommunication Technology,2007(10):259-260.
[9]郜洪亮,劉遵義.基于GPS和FPGA的便攜式高精度同步時(shí)鐘的研制[J].電力系統(tǒng)保護(hù)與控制,2009,37(2):80-82.
[10]周國平.基于FPGA時(shí)間同步技術(shù)的實(shí)現(xiàn)[J].電力系統(tǒng),2010(8):72-74.
[11]National Semiconductor.DP83640 Precision PHYTER-IEEE 1588 Precision Time Protocol Transceiver[EB/OL].http:// www.national.com/analog.2009.
[12]Psomnath Paul.Low-overhead design technique for calibration of maximum frequency at multiple operating points[C]//Proc of IEEE International Conference on Computer-Aided Design.San Jose,2007:401-404.
[13]汪世輝,許生旺.基于匹配濾波和時(shí)間恢復(fù)算法的B(AC)碼數(shù)字解調(diào)技術(shù)[J].飛行器測控學(xué)報(bào),2008,27(4):41-43.
[14]張頌,楊景曙,胡海娜.直擴(kuò)導(dǎo)航系統(tǒng)中數(shù)字科思塔斯環(huán)的FPGA設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)應(yīng)用[J].世界電子元器件,2008 (12):80-84.
On improving the accuracy of time synchronization in the power system
SONG Peng,TIAN Le
(School of Electronics and Information,Xi'an Polytechnic University,Xi'an 710048,China)
In order to improve the accuracy of the system,the transmission of time information was demodulated based on FPGA.The COMPASS timing accuracy as a basis,IRIG-B code as the transmission timing information,in the use of FPGA demodulated IRIG-B code to introduced digital Costas loop,can well be extracted IRIG-B code zero crossing information,to avoid the zero-crossing detection circuit and pulse jitter zero drift problems.Simulation results showed that the algorithm reduce the IRIG-B code synchronization errors and improve accuracy for time to reach the power system on the accuracy requirements.
IRIG-B;FPGA;time synchronization;accuracy
TP 29
A
1674-649X(2014)01-0089-05
編輯:田莉;校對:孟超
2013-07-10
陜西省自然科學(xué)基礎(chǔ)研究計(jì)劃資助項(xiàng)目(ZD13JC2-15)
宋鵬(1976-),男,陜西省大荔縣人,西安工程大學(xué)副教授,博士.E-mail:songpeng310@163.com