IRIG (Inter Range Instrumentation Group)起源于軍隊(duì)靶場(chǎng)的時(shí)間同步,靶場(chǎng)中的時(shí)間系統(tǒng)為衛(wèi)星或航天器發(fā)射,、常規(guī)武器試驗(yàn),、測(cè)控系統(tǒng)提供標(biāo)準(zhǔn)時(shí)間。IBIG-B時(shí)間碼(簡(jiǎn)稱B碼)就是由IRIG所屬的TCG(Telecommunication Group)制訂的一種串行時(shí)間碼,,被廣泛應(yīng)用于時(shí)間信息傳輸系統(tǒng)中,。在實(shí)際的應(yīng)用中,根據(jù)距離B碼發(fā)生器的遠(yuǎn)近及不同時(shí)間精度的要求,,B碼在實(shí)際傳輸中采用了兩種碼型AC碼(交流碼)和DC碼(直流碼),。當(dāng)傳輸距離比較遠(yuǎn)時(shí)采用AC碼,當(dāng)傳輸距離近時(shí)則采用DC碼,。在本文中只涉及DC碼,。
FPGA為時(shí)碼技術(shù)、時(shí)統(tǒng)設(shè)備的研制與開(kāi)發(fā)注入了新的生機(jī),,為整個(gè)系統(tǒng)內(nèi)的從設(shè)備分配相干的工作時(shí)鐘,,從而確保從設(shè)備具有同源相干的時(shí)鐘基準(zhǔn)。系統(tǒng)時(shí)鐘送出時(shí)間信號(hào),,F(xiàn)PGA對(duì)接收到的時(shí)間信號(hào)進(jìn)行編制,,并且生成與GPS輸出信號(hào)1 pps精確同步的B碼信號(hào)。而解碼系統(tǒng)是FPGA對(duì)B碼格式信號(hào)進(jìn)行解調(diào),產(chǎn)生出所需的絕對(duì)時(shí)間和各種控制信號(hào),,提供給測(cè)量設(shè)備,。對(duì)時(shí)統(tǒng)設(shè)備進(jìn)行高度集成,實(shí)現(xiàn)時(shí)統(tǒng)設(shè)備大規(guī)模,、高速度,、低成本、低開(kāi)發(fā)費(fèi)用,、設(shè)計(jì)周期短,、電路簡(jiǎn)單、易于調(diào)試和可靠性高的目標(biāo),,是時(shí)統(tǒng)設(shè)備發(fā)展的必然趨勢(shì),。
1 IRIG-B碼格式與原理
IRIG-B碼的時(shí)幀周期是1 s,包含100個(gè)碼元,,每個(gè)碼元周期為10ms,,即B碼的碼元速率為100 pps。B碼有3種碼元,,位置識(shí)別標(biāo)志P,二進(jìn)制“1”和“0”,,脈寬分別為8ms,、5ms和2 ms。位置識(shí)別標(biāo)志P0的前沿在幀參考點(diǎn)前一個(gè)索引計(jì)數(shù)間隔處,,以后每10個(gè)碼元有一個(gè)位置識(shí)別標(biāo)志,,分別為P1、P2,、……,、p9、P0,,PR為幀參考點(diǎn),。脈沖信號(hào)如圖1所示。
一個(gè)時(shí)間格式幀從幀參考標(biāo)志開(kāi)始,,由相鄰兩個(gè)幀參考標(biāo)志之間的碼元組成,,每個(gè)時(shí)幀的準(zhǔn)時(shí)為該時(shí)幀參考標(biāo)志的前沿。如果連續(xù)出現(xiàn)兩個(gè)8 ms的位置識(shí)別標(biāo)志,,則該時(shí)幀的開(kāi)始是位于第2個(gè)8ms的位置識(shí)別標(biāo)志前沿,。
IRIG-B碼中第1個(gè)字段(PR~P1)傳送的是秒信息,第2個(gè)字段(P1~P2)傳送的是分信息,,第3個(gè)字段(P2~P3)傳送的是時(shí)信息,,第4、5個(gè)字段(P3~P5)傳送的是天數(shù)信息,即從1月1日開(kāi)始計(jì)算的年積日,,所以在第5個(gè)字段結(jié)束后時(shí)間信號(hào)已經(jīng)解析并保存在寄存器中,。另外,在第8個(gè)字和第10個(gè)字中分別有3位表示上站和分站的特標(biāo)控制碼元,。不僅包含豐富的時(shí)間信息,,也包含必要的控制信息和監(jiān)測(cè)信息,方便后端用戶進(jìn)行使用,。
FPGA對(duì)B碼的編碼和解碼時(shí)根據(jù)其格式和原理使用計(jì)數(shù)器和狀態(tài)機(jī)來(lái)實(shí)現(xiàn),,其中會(huì)涉及到多個(gè)時(shí)鐘信號(hào),這些時(shí)鐘信號(hào)都是由FPGA外部晶振40 MHz的時(shí)鐘分頻而來(lái),。編碼時(shí)鐘為5 MHz,;解碼的時(shí)鐘有10 kHz、10 MHz,,同時(shí)會(huì)輸出時(shí)間信號(hào),,即天、時(shí),、分,、秒信號(hào)。
2 IRIG-B碼編碼
時(shí)間模塊由CPU進(jìn)行處理,,提取系統(tǒng)的時(shí)間信號(hào),,即秒信號(hào)sec_bcd[7..0],分信號(hào)min_bcd[7..0],,時(shí)信號(hào)hour_bcd[6..0],,天信號(hào)day_bcd[10..0],為FPGA的輸入信號(hào),,這些輸入信號(hào)都是并行信號(hào),,并且是BCD碼。GPS模塊為編碼系統(tǒng)提供1 pps信號(hào)上升沿,,即秒同步信號(hào),,也作為FPGA的輸入信號(hào)。IRIG-B碼編碼的寄存器傳輸級(jí)(RTL)視圖如圖2所示,。
圖2中,,F(xiàn)PGA對(duì)IRIG-B碼的編碼主要由兩個(gè)模塊構(gòu)成,一個(gè)為時(shí)鐘分頻模塊,,另一個(gè)為數(shù)據(jù)處理模塊,。系統(tǒng)的晶振時(shí)鐘為40 MHz,通過(guò)分頻,,采用5 MHz的時(shí)鐘,,所以此處的誤差最大為200ns,。當(dāng)GPS產(chǎn)生1個(gè)pps_in信號(hào)后,時(shí)間信號(hào)同時(shí)進(jìn)入FPGA,。為了產(chǎn)生的IRIG-B碼和GPS產(chǎn)生的pps_in信號(hào)精確同步,,所以IRIG-B碼的準(zhǔn)時(shí)位置應(yīng)對(duì)準(zhǔn)GPS模塊發(fā)出的1 pps信號(hào)上升沿。B碼編碼的狀態(tài)機(jī)流程圖如圖3所示,。
FPGA完成這個(gè)時(shí)刻的B碼編碼后,,會(huì)立即不斷地搜索下一個(gè)pps_in的上升沿,GPS模塊每秒都會(huì)觸發(fā)pps_in的上升沿,,一旦發(fā)現(xiàn)pps_in上升沿,,馬上進(jìn)入下一秒的編碼。這樣編程的好處是B碼大致上可以與1 pps同步,,延遲少且方便測(cè)試,。FPGA對(duì)IRIG-B碼秒信號(hào)的編碼仿真波形如圖4所示。
如上圖所示,,第1行信號(hào)是40 MHz的晶振時(shí)鐘,;第2行信號(hào)是輸入信號(hào)pps_in;第3行信號(hào)是復(fù)位信號(hào),,低電平有效,;第4行信號(hào)是分頻后的時(shí)鐘信號(hào)5 MHz;第5行是輸入秒信號(hào),,此時(shí)秒信號(hào)sec bcd[7..0]為8位二進(jìn)制數(shù)10001000,;最后一行信號(hào)是B碼的編碼信號(hào)。當(dāng)pps_in上升沿到來(lái)時(shí),,F(xiàn)PGA對(duì)B碼在5 MHz時(shí)鐘的上升沿處立即產(chǎn)生高電平,首先是B碼輸出位置識(shí)別標(biāo)志Pr(高電平8 ms,,低電平2 ms),,接著8位二進(jìn)制的秒信號(hào)從低位至高位輸出,實(shí)現(xiàn)計(jì)數(shù)器計(jì)數(shù)編碼,,放大波形可以知道,,此時(shí)B碼與pps_in有100 ns的滯后,100ns的延遲對(duì)時(shí)序同步影響很小,,可以忽略不計(jì),。然后FPGA根據(jù)狀態(tài)機(jī)的狀態(tài)運(yùn)行,直到下一個(gè)pps_in上升沿來(lái)臨,。
3 IRIG-B碼解碼
解碼部分的設(shè)計(jì)采用兩個(gè)時(shí)鐘來(lái)處理,,晶振的時(shí)鐘為40 MHz,通過(guò)分頻,,可以得到一個(gè)是10 kHz的時(shí)鐘,,和一個(gè)10 MHz的時(shí)鐘。先采用10 kHz的時(shí)鐘,當(dāng)連續(xù)監(jiān)測(cè)到2個(gè)脈寬為8 ms的位置標(biāo)示信號(hào)時(shí),,啟動(dòng)1個(gè)計(jì)時(shí)器,,當(dāng)計(jì)時(shí)器計(jì)時(shí)到990 ms時(shí),產(chǎn)生1個(gè)使能信號(hào)EN,,這個(gè)信號(hào)是傳遞給高頻時(shí)鐘的監(jiān)測(cè)使能信號(hào),。接著計(jì)時(shí)器清零,等待下一次監(jiān)測(cè)到連續(xù)2個(gè)脈寬為8 ms的信號(hào)出現(xiàn)時(shí),,計(jì)時(shí)器重新開(kāi)始計(jì)時(shí),。
如果只采用高頻時(shí)鐘的話,要監(jiān)測(cè)2個(gè)脈寬為8 ms的信號(hào)與計(jì)時(shí)將會(huì)非常浪費(fèi)邏輯資源,。所以在前一部分的監(jiān)測(cè)與計(jì)時(shí)用低頻時(shí)鐘進(jìn)行,;在準(zhǔn)時(shí)對(duì)應(yīng)的上升沿來(lái)臨前2 ms為高頻時(shí)鐘部分提供1個(gè)使能信號(hào);高頻時(shí)鐘處理部分接收到此使能信號(hào)EN后再監(jiān)測(cè)B碼的PR的上升沿,,當(dāng)監(jiān)測(cè)到PR為高電平后,,發(fā)出1個(gè)脈沖1 pps。經(jīng)過(guò)這樣的處理,,就能精確的提取出1 pps信號(hào)以及與1 pps精確同步的10 MHz脈沖信號(hào),。1 pps對(duì)時(shí)信號(hào)的提取如圖5所示。
當(dāng)檢測(cè)到P5時(shí),,時(shí)間信號(hào)已經(jīng)檢測(cè)出來(lái),,這些時(shí)間信號(hào)都放在相應(yīng)的寄存器(都是BCD碼的并行信號(hào))中,當(dāng)有使能信號(hào)EN時(shí),,此時(shí)將已經(jīng)檢測(cè)出的時(shí)間信號(hào)加1 s,,并在輸出1 pps信號(hào)的同時(shí)輸出時(shí)間信號(hào),這樣就保證了時(shí)間的準(zhǔn)確性,,也是用10 MHz的時(shí)鐘同步,,然后將時(shí)間信號(hào)在監(jiān)測(cè)到2個(gè)脈寬為8 ms的位置標(biāo)示信號(hào)時(shí)清零。FPGA對(duì)IRIG-B碼的解碼仿真如圖6所示,。
如上圖,,當(dāng)?shù)?行的信號(hào)使能信號(hào)EN觸發(fā)1個(gè)上升電平時(shí),時(shí)間信號(hào)會(huì)在此時(shí)加上1 s,。原先解碼出來(lái)的時(shí)間信號(hào)秒,、分、時(shí),、天信號(hào)為sec_out[7..0],、min_out[7..0]、hour_out[6..0],、day_out [10..0],,加1 s后的時(shí)間信號(hào)放在寄存器sec_final[7..0],、min_final[7..0]、hour_final[6..0],、day_final[10..0]中,,已經(jīng)將它們化為十進(jìn)制數(shù),根據(jù)B碼的格式,,它們的第4位均為無(wú)效信號(hào),,即sec_out[4]、min_ out[4],、hour_out[4],、day_out[4]、sec_final[4],、min_final[4],、hour_final[4]、day_final[4]都是無(wú)效信號(hào),。
當(dāng)使能信號(hào)EN有效時(shí),,即在FPGA處理時(shí)間信號(hào)加1 s的過(guò)程中,當(dāng)原先的秒信號(hào)sec_out寄存器為59 s時(shí),,加1 s后,,輸出的sec_final寄存器使其秒清零,并且在分信號(hào)寄存器加一,。同理適用于分,、時(shí)、天信號(hào),,它們都有一個(gè)上限,,分信號(hào)的上限同樣是59時(shí)信號(hào)的上限是23,而天信號(hào)的上限是365或366,,需要進(jìn)行判斷后得出,,一旦超過(guò)了各自信號(hào)的上限,輸出寄存器就會(huì)自動(dòng)清零,,同時(shí)進(jìn)位加一。
由圖6可以知道,,寄存器sec_out的值為十六進(jìn)制數(shù)45,,使能信號(hào)EN有效后,即加上1 s后,,sec_final的值為十六進(jìn)制數(shù)46,,因?yàn)槠涞?位無(wú)效,所以秒時(shí)間為26,,最后解碼出來(lái)的時(shí)間是145天11時(shí)41分26秒,。這些時(shí)間信號(hào)存在FPGA的寄存器中,,當(dāng)1 pps輸出時(shí),它們會(huì)隨10 MHz的時(shí)鐘頻率同步輸出到外部總線上,,外部總線接受到時(shí)間信號(hào)實(shí)現(xiàn)時(shí)間同步,,去校準(zhǔn)從設(shè)備的實(shí)時(shí)時(shí)間,實(shí)現(xiàn)了FPGA對(duì)IRIG-B的解碼,。
4 結(jié)論
隨著通信技術(shù)和通信媒體的發(fā)展,,如何解決時(shí)統(tǒng)信號(hào)在不同媒體中的傳輸,對(duì)靶場(chǎng)時(shí)間統(tǒng)一系統(tǒng)提出了更高的要求,。
本設(shè)計(jì)中用到Cyclone的EP1C6Q240C8芯片,,并且使用modelsim實(shí)現(xiàn)功能和時(shí)序仿真。實(shí)踐證明,,通過(guò)FPGA完成了對(duì)IRIG-B碼的編,、解碼設(shè)計(jì),能夠?qū)崿F(xiàn)與系統(tǒng)時(shí)鐘信號(hào)的精確同步,,當(dāng)GPS送入pps_in信號(hào)時(shí),,F(xiàn)PGA進(jìn)行編碼,輸出的IRIG-B碼暫時(shí)保存在FPGA的存儲(chǔ)器中,,當(dāng)需要為外部設(shè)備提供精確的對(duì)時(shí)時(shí)鐘時(shí),,F(xiàn)PGA進(jìn)行解碼操作,輸出同步脈沖信號(hào)1pps和時(shí)間信號(hào),,從而去校準(zhǔn)從設(shè)備的實(shí)時(shí)時(shí)間,,使設(shè)備具有精度高的同步的時(shí)鐘基準(zhǔn),獲得精確且同步的控制效果,,便于對(duì)從設(shè)備進(jìn)行遠(yuǎn)程管理和監(jiān)測(cè),。