楊君剛,王 超,王 凱
(西安通信學(xué)院信息服務(wù)系,西安710106)
|R|G-B(DC)碼在光纖高精度授時(shí)設(shè)備中的應(yīng)用
楊君剛,王 超,王 凱
(西安通信學(xué)院信息服務(wù)系,西安710106)
為了實(shí)現(xiàn)光纖授時(shí)設(shè)備輸入/輸出標(biāo)準(zhǔn)IRIG_B(D C)碼,提出了一種基于FPG A的IRIG-B(D C)編解碼設(shè)計(jì)方案。通過(guò)Q uart us II建立工程文件,采用Veri log HDL語(yǔ)言設(shè)計(jì)了B(D C)碼編解碼電路,解決了傳統(tǒng)設(shè)計(jì)中B碼準(zhǔn)秒時(shí)刻對(duì)齊和1PPS恢復(fù)的問(wèn)題。
IRIG-B(D C);FPG A;Veri log HDL;1PPS
近年來(lái),隨著通信、電力、金融和軍事等領(lǐng)域?qū)r(shí)間統(tǒng)一的要求越來(lái)越迫切,時(shí)間同步的精度要求越來(lái)越高,采用光纖時(shí)間傳遞技術(shù)的高精度授時(shí)設(shè)備的時(shí)間同步功能,可以為上述領(lǐng)域的時(shí)間終端設(shè)備提供標(biāo)準(zhǔn)時(shí)間信號(hào)和標(biāo)準(zhǔn)頻率信號(hào),滿足用戶對(duì)于高精度時(shí)間同步的要求[1]。
IRIG-B碼作為一種標(biāo)準(zhǔn)時(shí)間信息碼輸出格式已被廣泛應(yīng)用于其它時(shí)間信息傳輸系統(tǒng)中,B碼接口也成為高精度授時(shí)設(shè)備連接時(shí)間終端設(shè)備的必備接口之一[2]。在傳統(tǒng)的基于微處理器的IRIG-B碼編解碼設(shè)計(jì)中,存在B碼準(zhǔn)秒時(shí)刻對(duì)齊和1PPS恢復(fù)的問(wèn)題,同時(shí)不便于進(jìn)行系統(tǒng)集成。針對(duì)此問(wèn)題,本文提出了一種基于FPGA實(shí)現(xiàn)IRIG-B(DC)時(shí)間碼編解碼設(shè)計(jì)方案,將編解碼模塊進(jìn)行一體化設(shè)計(jì),在準(zhǔn)確可靠實(shí)現(xiàn)編解碼功能基礎(chǔ)上,有效節(jié)省了硬件資源。目前已將其應(yīng)用于實(shí)際的光纖高精度授時(shí)設(shè)備中,實(shí)現(xiàn)設(shè)備對(duì)外輸出高精度的標(biāo)準(zhǔn)時(shí)間信息和1PPS信號(hào)。
圖1 IRIG-B碼在光纖授時(shí)中的應(yīng)用
在光纖授時(shí)系統(tǒng)中,授時(shí)中心站(主站)將標(biāo)準(zhǔn)的時(shí)間信息通過(guò)光纖傳遞到授時(shí)站(從站),同時(shí)對(duì)傳輸時(shí)延進(jìn)行精確測(cè)量,通過(guò)主站或者從站補(bǔ)償控制,實(shí)現(xiàn)主從站間的時(shí)間精確同步。如圖1所示,授時(shí)中心站通過(guò)接收外部標(biāo)準(zhǔn)時(shí)間和1PPS信號(hào)獲得時(shí)間信息,獲得方式可以是脈沖或串口報(bào)文等形式;同樣,授時(shí)站在接收主站時(shí)間信息并實(shí)現(xiàn)主從同步后,需要對(duì)外部的授時(shí)終端輸出精確的時(shí)間信息和1PPS信號(hào),一般也采用脈沖或串口報(bào)文形式。有人通過(guò)研究IRIG-B(DC)碼的編碼規(guī)則[3]發(fā)現(xiàn),B碼在傳遞時(shí)間信息的同時(shí),還可以通過(guò)B碼解碼恢復(fù)出1PPS信號(hào),因此通過(guò)對(duì)IRIG-B(DC)碼編解碼的合理設(shè)計(jì)和控制,可以實(shí)現(xiàn)時(shí)間信息+1PPS的高精度傳遞。
以授時(shí)站編碼輸出為例,在接收到授時(shí)中心站傳來(lái)的包含有時(shí)間信息的光脈沖信號(hào)后,首先通過(guò)光電轉(zhuǎn)換模塊獲得時(shí)間同步單元可以接收的電信號(hào),然后將其輸入到以FPGA為平臺(tái)的時(shí)間同步校準(zhǔn)模塊,通過(guò)內(nèi)部邏輯功能設(shè)計(jì)實(shí)現(xiàn)主從站的時(shí)間同步。為了對(duì)外部授時(shí)終端提供時(shí)間信號(hào)和1PPS的輸出,一方面通過(guò)時(shí)間同步校準(zhǔn)模塊進(jìn)行內(nèi)部分頻,產(chǎn)生精確的1PPS信號(hào);另一方面通過(guò)時(shí)間同步校準(zhǔn)模塊將時(shí)間信息輸出給時(shí)間信息解析模塊,完成對(duì)時(shí)間信息的解析,獲得B碼編碼所需要的時(shí)間信息;然后結(jié)合生成的1PPS信號(hào),在內(nèi)部時(shí)鐘驅(qū)動(dòng)下生成串行IRIG-B (DC)碼;最后通過(guò)符合RS422/485電平標(biāo)準(zhǔn)的RJ45接口進(jìn)行輸出,提供給具有B碼解碼功能的授時(shí)終端使用。
2.1 編碼模塊設(shè)計(jì)
采用FPGA進(jìn)行IRIG-B(DC)編碼設(shè)計(jì)[4,5]是指將來(lái)自其它標(biāo)準(zhǔn)時(shí)間系統(tǒng)(如GPS、北斗、長(zhǎng)短波等授時(shí)設(shè)備)的標(biāo)準(zhǔn)時(shí)間中的天、時(shí)、分、秒信息和TOD時(shí)間信息按照B碼的編碼格式進(jìn)行編碼,然后將其串行輸出,并且使B碼的準(zhǔn)秒時(shí)刻與1PPS的上升沿保持對(duì)齊,從而保證時(shí)間的精度。
整個(gè)方案采用Verilog HDL語(yǔ)言進(jìn)行設(shè)計(jì)。設(shè)計(jì)思路如下:FPGA利用原子鐘提供的10MHz時(shí)鐘信號(hào)經(jīng)倍頻產(chǎn)生20MHz時(shí)鐘作為主時(shí)鐘,同時(shí)為了節(jié)省FPGA硬件資源,利用內(nèi)部分頻電路對(duì)其進(jìn)行分頻處理,得到編碼所需要的100PPS、1000PPS和10000PPS等脈沖控制信號(hào),以減少計(jì)數(shù)器規(guī)模;然后在上述控制信號(hào)的作用下將輸入的時(shí)間信息通過(guò)編碼模塊進(jìn)行編碼,從而生成IRIG_B(DC)串行碼輸出。
編碼模塊的設(shè)計(jì)流程如圖2所示,主要包括:1PPS上升沿檢測(cè)、碼元計(jì)數(shù)、碼元計(jì)數(shù)值變化檢測(cè)、1ms脈沖計(jì)數(shù)、時(shí)間信息編碼和編碼輸出等步驟。
①1PPS上升沿檢測(cè)。按照B碼編碼規(guī)則,其準(zhǔn)秒時(shí)刻表示一秒的開(kāi)始時(shí)刻,對(duì)應(yīng)1PPS信號(hào)的上升沿,因此在設(shè)計(jì)中使用內(nèi)部主時(shí)鐘20MHz對(duì)1PPS信號(hào)進(jìn)行檢測(cè),一旦檢測(cè)到其上升沿,立即對(duì)碼元計(jì)數(shù)值、1ms脈沖計(jì)數(shù)值和時(shí)間信息編碼寄存器進(jìn)行清零,生成編碼使能信號(hào)開(kāi)始編碼,以此保證B碼準(zhǔn)秒時(shí)刻與1PPS上升沿嚴(yán)格對(duì)齊。
圖2 編碼模塊的設(shè)計(jì)流程
②碼元計(jì)數(shù)。在100PPS信號(hào)的上升沿觸發(fā)下,如果同時(shí)檢測(cè)到1PPS信號(hào)的上升沿后,則計(jì)數(shù)清零重新開(kāi)始計(jì)數(shù),否則計(jì)數(shù)值加1,直到計(jì)數(shù)值等于99再次清零。碼元計(jì)數(shù)值變化檢測(cè):在10000PPS信號(hào)的上升沿觸發(fā)下,檢測(cè)碼元計(jì)數(shù)值是否發(fā)生變化,如果計(jì)數(shù)值變化,則產(chǎn)生一個(gè)高窄電平的脈沖作變化標(biāo)志,否則保持低電平。
③1ms脈沖計(jì)數(shù)。在1000PPS信號(hào)的上升沿觸發(fā)下,如果檢測(cè)到碼元計(jì)數(shù)值變化所產(chǎn)生的高窄脈沖,則計(jì)數(shù)清零,否則計(jì)數(shù)加1,直到計(jì)數(shù)到9再次清零。
④時(shí)間信息編碼。按照IRIG-B(DC)的編碼規(guī)則,將輸入的時(shí)間信息隨碼元計(jì)數(shù)值變化進(jìn)行編碼。
⑤編碼輸出。在1ms脈沖計(jì)數(shù)值變化時(shí)將生成的碼元按照串行方式進(jìn)行輸出。
2.2 解碼模塊設(shè)計(jì)
對(duì)輸入的IRIG-B(DC)進(jìn)行解碼[6]就是將輸入的B(DC)串行碼中所包含的天、時(shí)、分、秒信息和TOD時(shí)間信息提取出來(lái),同時(shí)通過(guò)檢測(cè)準(zhǔn)秒時(shí)刻恢復(fù)出1PPS信號(hào)。解碼模塊的設(shè)計(jì)流程如圖3所示,主要包括以下幾個(gè)步驟:B碼檢測(cè)、脈沖采樣、碼元判別、幀頭識(shí)別、串并轉(zhuǎn)換、碼元計(jì)數(shù)和時(shí)間信息及1PPS信號(hào)輸出。其中解碼的關(guān)鍵在于幀頭識(shí)別和1PPS生成。關(guān)鍵部分設(shè)計(jì)介紹如下:
圖3 解碼模塊的設(shè)計(jì)流程
①碼元判別。首先檢測(cè)輸入的IRIG-B(DC),在每個(gè)碼元的上升沿開(kāi)始每間隔2.2ms進(jìn)行采樣,則各碼元對(duì)應(yīng)的采樣值分別為:0碼元(0000)、1碼元(1100)、P碼元(1110)。因此按照該對(duì)應(yīng)關(guān)系就可以獲得相應(yīng)碼元位置的碼元信息,然后將其存入位寬為100的編碼信息寄存器的相應(yīng)的位。在此規(guī)定將所有P碼元以0碼元進(jìn)行存儲(chǔ)。
②幀頭識(shí)別。從IRIG-B(DC)碼的編碼格式可以發(fā)現(xiàn),當(dāng)連續(xù)出現(xiàn)兩個(gè)P碼元的時(shí)候,則第二個(gè)P碼元即為PR參考點(diǎn),同時(shí)也是準(zhǔn)秒時(shí)刻,其上升沿與1PPS的上升沿對(duì)齊。本文為此設(shè)計(jì)了一個(gè)三段式有限狀態(tài)機(jī)(FSM),同時(shí)對(duì)采樣值采用獨(dú)熱編碼方式以實(shí)現(xiàn)幀頭定位,狀態(tài)轉(zhuǎn)換圖如圖4所示。其中,idle為初始狀態(tài)(001),當(dāng)檢測(cè)到采樣值為1110(即P碼元)時(shí),跳轉(zhuǎn)至A狀態(tài)(010),否則保持狀態(tài)不變;在A狀態(tài)下,若檢測(cè)到下一個(gè)采樣值為1110,則跳轉(zhuǎn)至B狀態(tài)(100),否則跳回idle狀態(tài);在B狀態(tài)下,無(wú)論下一個(gè)碼元是P碼元還是0或者1,都跳轉(zhuǎn)至idle狀態(tài)。
圖4 幀頭識(shí)別狀態(tài)轉(zhuǎn)換圖
③1PPS信號(hào)輸出。如圖5所示,幀頭識(shí)別完畢后,接下來(lái)每接收到一個(gè)P碼元就對(duì)其計(jì)數(shù)值加1。當(dāng)計(jì)數(shù)值為10時(shí)產(chǎn)生一個(gè)脈沖控制信號(hào)mask,并使其維持高電平;在接收到下一個(gè)碼元的時(shí)候,將計(jì)數(shù)值清零、mask信號(hào)拉低,然后將其與輸入的B碼信號(hào)進(jìn)行相與運(yùn)算,即可得到1PPS信號(hào)。
圖5 生成1PPS脈沖
④時(shí)間信息和秒脈沖輸出。在碼元識(shí)別中,通過(guò)采樣得到了B碼的碼元信息,并保存在編碼信息寄存器中,然后按照B碼的編碼格式,輔以年時(shí)間信息就可以得到完整的UTC時(shí)間和TOD時(shí)間。同時(shí)將幀頭識(shí)別中恢復(fù)出的1PPS進(jìn)行輸出。
我們用Quartus II建立工程文件,編輯Verilog HDL代碼進(jìn)行設(shè)計(jì)[7],分別得到編解碼模塊的原理圖如圖6所示。
其中,圖6(a)為編碼模塊,輸入信號(hào)包括復(fù)位信號(hào)rst_n、秒脈沖信號(hào)pps_1、時(shí)鐘信號(hào)clk_20M以及包含時(shí)間信息的UTC時(shí)間UTC_in[63:0],輸出即為IRIG_B (DC)串行碼irig_b_dc。圖6(b)為解碼模塊,輸入信號(hào)包括復(fù)位信號(hào)rst_n和時(shí)鐘信號(hào)clk_20M以及IRIG_B (DC)碼irig_b_dc,同時(shí)為了能夠?qū)ν廨敵鰳?biāo)準(zhǔn)UTC時(shí)間,添加年時(shí)間信息UTC_in[15:0],經(jīng)過(guò)解碼模塊后生成完整的UTC時(shí)間信息UTC_out[63:0]和準(zhǔn)確的1PPS信號(hào)pps_pulse。
圖6 編解碼模塊設(shè)計(jì)圖
針對(duì)前文設(shè)計(jì)的編、解碼模塊,本文在ModelSim Altera 6.6d下進(jìn)行了功能仿真驗(yàn)證[7],目前已將該編、解碼模塊在 Altera公司的 Cyclone III EP3C16-Q240C8芯片中實(shí)現(xiàn),并應(yīng)用到光纖高精度授時(shí)設(shè)備上。ModelSim仿真結(jié)果和實(shí)際設(shè)備測(cè)試結(jié)果如圖7和圖8所示。
圖7 ModelSim功能仿真結(jié)果
圖8 編碼模塊實(shí)際應(yīng)用結(jié)果
在對(duì)編碼模塊進(jìn)行ModelSim功能仿真驗(yàn)證時(shí),輸入時(shí)間UTC_in[63:0]為 16′h2012123023595908,則編入B碼中的時(shí)間信息應(yīng)為365天23時(shí)59分59秒,TOD=86399。仿真結(jié)果如圖7(a)所示,串行輸出的B碼碼元符合編碼格式,輸出時(shí)間信息符合預(yù)期。在對(duì)解碼模塊進(jìn)行功能仿真驗(yàn)證時(shí),為了便于產(chǎn)生激勵(lì),將編碼模塊的輸出IRIG_B(DC)碼直接作為解碼模塊的輸入,輸出結(jié)果如圖7(b)所示。仿真結(jié)果表明,解碼模塊可以正確輸出時(shí)間信息,同時(shí)能夠正確恢復(fù)出1PPS信號(hào)。
我們將編碼模塊應(yīng)用到光纖高精度授時(shí)設(shè)備上的實(shí)際測(cè)試結(jié)果如圖8所示。其中,圖8(a)是通過(guò)示波器觀察到的設(shè)備輸出的IRIG-B(DC)碼和1PPS信號(hào);圖8(b)是對(duì)1PPS信號(hào)上升沿和IRIG-B(DC)碼準(zhǔn)秒時(shí)刻位置局部放大圖。通過(guò)實(shí)測(cè)得到兩者時(shí)間差skew值約為11.8ns,實(shí)現(xiàn)了1PPS上升沿和B(DC)碼準(zhǔn)秒時(shí)刻高精度對(duì)齊。
本文提出了一種基于FPGA的IRIG-B(DC)碼的編解碼實(shí)現(xiàn)方案,仿真結(jié)果表明,采用本方案所設(shè)計(jì)的IRIG-B(DC)編碼模塊可以產(chǎn)生穩(wěn)定、可靠、連續(xù)的B(DC)碼,保證與1PPS信號(hào)精確同步;解碼模塊也能夠?qū)斎氲臉?biāo)準(zhǔn)IRIG-B(DC)碼實(shí)現(xiàn)正確解碼輸出,生成標(biāo)準(zhǔn)UTC時(shí)間信息和1PPS信號(hào);解決了傳統(tǒng)設(shè)計(jì)中B碼準(zhǔn)秒時(shí)刻對(duì)齊和1PPS恢復(fù)的問(wèn)題。通過(guò)在光纖高精度授時(shí)設(shè)備上的實(shí)際應(yīng)用,本文進(jìn)一步驗(yàn)證了編解碼模塊輸出的有效性和可靠性,保證了光纖高精度授時(shí)設(shè)備的時(shí)間同步精度,展現(xiàn)了良好的應(yīng)用效果。
[1]王蘇北.高精度光纖時(shí)間傳遞的碼型設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2013.
[2]童寶潤(rùn).時(shí)間統(tǒng)一系統(tǒng)[M].北京:國(guó)防工業(yè)出版社,2000.
[3]國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì).IRIG-B碼接口終端[S].北京國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì),1991.
[4]胡躍祥,劉浩,張捷.基于GPS的IRIG-B直流碼編碼器設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2014,28(4):98-100.
[5]XU Qiaoyu,WANG Xing.Design of IRIG-B Code Encoder Based on SOPC[C].The 2nd International Conference on Computer Application and System Modeling,2012:103-106.
[6]陳永勝.基于FPGA的IRIG-B(DC)解碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2014,40(1):93-96.
[7]王金明,徐志軍,蘇勇.EDA技術(shù)與Verilog HDL設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.
Application of IRIG-B(DC)code in high precision timing devices based on optical fiber
YANG Jun-gang,WANG Chao,WANG Kai
(Department of Information service,Xi'an Communications Institute,Xi'an 710106,China)
In order to realize a port of the standard IRIG-B(DC)code for timing device based on optical fibers, a new designing scheme of IRIG-B(DC)coding and decoding based on FPGA was proposed.The coding and decoding circuits were designed by Verilog HDL in Quartus II,and the problems of the traditional B code with seconds time alignment and 1 PPS recovery was solved.
IRIG-B(DC),FPGA,Verilog HDL,1PPS
TN929.11
A
1002-5561(2016)03-0029-04
10.13921/j.cnki.issn1002-5561.2016.03.009
2015-11-11。
楊君剛(1973-),男,博士,副教授,主要從事光纖時(shí)間傳遞技術(shù)、通信網(wǎng)絡(luò)關(guān)鍵技術(shù)研究。