張 艷
(西安電子工程研究所 西安 710100)
為保證靶場(chǎng)試驗(yàn)中各參試設(shè)備協(xié)同工作,由靶場(chǎng)時(shí)統(tǒng)站提供標(biāo)準(zhǔn)時(shí)間基準(zhǔn)和標(biāo)準(zhǔn)頻率基準(zhǔn),各設(shè)備接收此信號(hào)后與其測(cè)量數(shù)據(jù)結(jié)合,達(dá)到測(cè)量數(shù)據(jù)的時(shí)間同步。靶場(chǎng)間儀器組(inter range instrumentation group,IRIG)碼是美國靶場(chǎng)司令委員會(huì)制定的一種時(shí)間標(biāo)準(zhǔn),共有4種并行二進(jìn)制時(shí)間碼格式和6種串行二進(jìn)制時(shí)間碼格式。串行時(shí)間碼傳輸距離較遠(yuǎn),共有六種格式:A,B,D,E,G,H,它們的主要差別是時(shí)間碼的幀速率不同和所表示的時(shí)間信息不同。為了向國際標(biāo)準(zhǔn)靠攏,建議采用IRIG-B碼用于靶場(chǎng)的時(shí)間同步。B碼的幀速率為每秒一幀,經(jīng)譯碼后可獲得脈沖信號(hào)和BCD編碼的時(shí)間信息及控制信息。同時(shí),B碼在實(shí)際傳輸中采用了兩種碼型:AC碼 (交流碼)和 DC碼(直流碼)。DC碼中每個(gè)碼元為脈沖信號(hào),可以實(shí)現(xiàn)較高精度(微秒量級(jí))的時(shí)間同步,但由于脈沖信號(hào)的頻譜豐富,窄帶信道無法傳輸,而只適用于近距離的用戶,對(duì)遠(yuǎn)距離時(shí)統(tǒng)設(shè)備而且只有窄帶信道的用戶,可以采用DC碼調(diào)制的方法,即將DC碼調(diào)制成AC碼再進(jìn)行傳輸。在本文中只涉及DC碼。
傳統(tǒng)的IRIG-B時(shí)間碼解碼的設(shè)計(jì)方法基本都采用TTL數(shù)字集成電路和單片機(jī)結(jié)合的方法,利用許多的門電路和單穩(wěn)態(tài)觸發(fā)電路從編碼信號(hào)中解出同步信號(hào)。這種結(jié)構(gòu)模式器件多、成本高、可靠性不高、通用性不強(qiáng)[1]。現(xiàn)在采用FPGA芯片來解算IRIG-B DC碼,利用VHDL硬件描述語言編程,硬件體積小,功耗低;軟件實(shí)現(xiàn)靈活,并且可以根據(jù)需要不斷升級(jí)。該解碼方式相比傳統(tǒng)方法,簡(jiǎn)單實(shí)用,解碼精度高,解決了功耗、體積問題,增強(qiáng)了工作穩(wěn)定性。
IRIG-B直流碼幀格式如圖1所示,直流碼為脈寬編碼方式,幀速率為每秒1幀,1幀分為10個(gè)字段,每個(gè)字段10位,每位的周期均為10ms。并且,每位都以高電平開始(該脈沖前沿為此碼元的準(zhǔn)時(shí)參考點(diǎn)),其持續(xù)時(shí)間分為3種類型:2ms(二進(jìn)制“0”)、5ms(二進(jìn)制“1”)和 8ms(參考碼元,位置標(biāo)志碼元 P1、P2、…、P9、P0)。第 1 個(gè)字段傳送的是秒信息,第2個(gè)字段傳送的是分信息,第3個(gè)字段傳送的是時(shí)信息,第4、5個(gè)字段傳送的是天信息。時(shí)間信息均采用BCD碼表示,低位在前,高位在后;個(gè)位在前,十位在后。在實(shí)際應(yīng)用中,只對(duì)時(shí)、分、秒進(jìn)行編碼,后面的字段中,還包括上站和分站的特標(biāo)控制碼和分站時(shí)延修正碼,對(duì)這些碼沒有采用,這里不進(jìn)行詳細(xì)的介紹。
圖1 B碼幀格式
從B碼直流碼中提取時(shí)間信息的關(guān)鍵是正確的檢測(cè)脈沖電平寬度及其所在的位置。具體思路是:首先判斷出同步參考標(biāo)志,再根據(jù)5ms和2ms脈沖出現(xiàn)的位置提取出時(shí)間信號(hào),然后通過接口將時(shí)間編碼傳輸給其他模塊。具體流程圖如圖2所示。
由第2節(jié)的介紹可以知道,每幀數(shù)據(jù)的同步參考標(biāo)志由一個(gè)8ms的位置標(biāo)志碼元和相鄰的寬度為8 ms的參考碼元組成,對(duì)同步參考標(biāo)志的定位,用一個(gè)包含了3種狀態(tài)的狀態(tài)機(jī)來實(shí)現(xiàn),三種狀態(tài)為S0,S1,S2,如圖3所示。
S0狀態(tài):表示未接收到碼元前的低電平;S1狀態(tài):表示接收到碼元前的低電平;S2狀態(tài):接收到碼元的高電平;當(dāng)滿足狀態(tài)S2時(shí),用一個(gè)計(jì)數(shù)器N計(jì)算放入移位寄存器的碼元數(shù),當(dāng)N=18時(shí),判斷收到的是否是同步參考標(biāo)志,若是,幀同步參考標(biāo)志模塊輸出標(biāo)志脈沖Pr,作為下一步時(shí)間解碼模塊對(duì)時(shí)間信息碼元辨別與提取的開關(guān)信號(hào)。
本模塊在幀同步參考標(biāo)志模塊輸出的標(biāo)志脈沖Pr為高時(shí)解碼,這里用的時(shí)鐘周期為10ms,對(duì)應(yīng)直流碼碼元周期,在每個(gè)時(shí)鐘下降沿將時(shí)間信息的碼元(也叫時(shí)間編碼)解碼結(jié)果寫入寄存器單元中。時(shí)間編碼的位置信息見下表1。
在標(biāo)志脈沖Pr的下降沿,一幀數(shù)據(jù)結(jié)束,將寄存器中有意義的位數(shù)用端口輸出,實(shí)現(xiàn)了實(shí)時(shí)的每秒數(shù)據(jù)更新輸出。
按照上面的思路,已經(jīng)解算出了時(shí)間信息,但是卻未和標(biāo)準(zhǔn)時(shí)間同步,與標(biāo)準(zhǔn)時(shí)間對(duì)時(shí)的過程稱為定時(shí)。一般靶場(chǎng)的時(shí)統(tǒng)設(shè)備還會(huì)提供用戶與標(biāo)準(zhǔn)時(shí)間保持高精度同步的時(shí)間信號(hào),如秒脈沖信號(hào)(1PPS)。用此信號(hào)做清零信號(hào),對(duì)計(jì)數(shù)器清零來實(shí)現(xiàn)分頻器輸出的頻率和IPPS的同步。產(chǎn)生電路由一個(gè)D觸發(fā)器,一個(gè)非門和一個(gè)與門組成,當(dāng)清零信號(hào)為高電平時(shí)清零。如圖4所示。
通過VHDL編程實(shí)現(xiàn)以上檢測(cè)思路,并采用Altera公司的QuartusII仿真波形如圖5所示。
datain是輸入的B碼直流碼數(shù)據(jù)(數(shù)據(jù)同圖1),data-out[0…47]表示的是解碼后的 48 位數(shù)據(jù)(此例只解算秒、分、時(shí)、天),詳見下圖6。
表1 時(shí)間編碼位置信息
圖6 解算出的時(shí)間BCD碼
從仿真結(jié)果得出,解算出的時(shí)間BCD碼數(shù)組data-out[0…47]數(shù)據(jù)是正確的,此基于FPGA的B碼解碼電路設(shè)計(jì)能夠達(dá)到B碼直流碼的解碼要求。
采用FPGA設(shè)計(jì)IRIG-B格式直流時(shí)間碼解碼器,能大大減小電路設(shè)計(jì)的復(fù)雜度,增加系統(tǒng)的可靠性和設(shè)計(jì)靈活性,采用VHDL語言進(jìn)行軟件設(shè)計(jì),具有方法簡(jiǎn)單、易讀和可重用性強(qiáng)的特點(diǎn)。
[1]馮強(qiáng).基于FPGA的時(shí)統(tǒng)終端設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(10-2):182-184.
[2]童寶潤.時(shí)間統(tǒng)一技術(shù)[M].北京:國防工業(yè)出版社,2004.
[3]中國人民解放軍總裝備部測(cè)量通信總體研究所.GJB2991A-2008B時(shí)間碼接口終端通用規(guī)范[S].總裝備部軍標(biāo)出版發(fā)行部,2008.
[4]劉愛榮,王振成.EDA技術(shù)與CPLD/FPGA開發(fā)應(yīng)用簡(jiǎn)明教程[M].北京:清華大學(xué)出版社,2007.
[5]黃任.VHDL入門·解惑·經(jīng)典實(shí)例·經(jīng)驗(yàn)總結(jié)[M].北京:北京航空航天大學(xué)出版社,2005.