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