摘要:為提高整個(gè)系統(tǒng)時(shí)間的同步精度,以便為測量設(shè)備提供可靠的時(shí)間信息和標(biāo)準(zhǔn)頻率信號,給出了一種基于FPGA" title="FPGA">FPGA的IRIG-B編解碼器" title="編解碼器">編解碼器的設(shè)計(jì)與實(shí)現(xiàn)方法。新系統(tǒng)基于模塊化設(shè)計(jì),其中編碼部分完成標(biāo)準(zhǔn)時(shí)間信息及相應(yīng)的BCD碼的產(chǎn)生,并在標(biāo)準(zhǔn)時(shí)間BCD碼中加入幀開始標(biāo)志位、位置識別標(biāo)志和索引標(biāo)志識別,從而將BCD格式的時(shí)間信息變成IRIG-B格式碼,同時(shí)數(shù)據(jù)并串處理可通過FPGA的一個(gè)I/O端口發(fā)送串行數(shù)據(jù)。解碼部分則完成串行IRIG-B格式碼的接收并判斷幀開始標(biāo)志位和位置識別標(biāo)志,再解出相應(yīng)原始時(shí)間信息并存儲到雙端口的RAM" title="RAM">RAM中,最后以并行方式輸出。
關(guān)鍵詞:IRIG-B;可編程邏輯器件;FPGA;編碼器;解碼器
0 引言
時(shí)間統(tǒng)一(以下簡稱時(shí)統(tǒng))系統(tǒng)是武器系統(tǒng)試驗(yàn)測試、通信、氣象、航天、工業(yè)控制、電力系統(tǒng)測量與保護(hù)等領(lǐng)域的關(guān)鍵技術(shù),主要為其他參試測試設(shè)備提供標(biāo)準(zhǔn)時(shí)間信號和標(biāo)準(zhǔn)頻率信號。隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,對標(biāo)準(zhǔn)化時(shí)間系統(tǒng)設(shè)備的要求越來越高,IRIG-B碼以其優(yōu)越性成為時(shí)間系統(tǒng)設(shè)備的首選。而對信號的幀結(jié)構(gòu)的可編程度、集成度的需求越來越高,用于時(shí)間系統(tǒng)的IRIG-B碼源的設(shè)計(jì)也趨于高度集成化。FPGA可編程邏輯器件的規(guī)模比較大,適合于時(shí)序、組合等邏輯電路應(yīng)用場合,同時(shí)具有實(shí)時(shí)性好、可靠性高、成本低、可編程等優(yōu)勢。本文介紹了采用Ahera公司的EP20K200E器件所設(shè)計(jì)的IRIG-B時(shí)統(tǒng)信號發(fā)生及解碼電路。
IRIG-B編碼模塊主要利用外部時(shí)鐘脈沖信號來觸發(fā),它將用于產(chǎn)生IRIG-B碼的各種門電路集成在一個(gè)芯片,以產(chǎn)生標(biāo)準(zhǔn)的IRIG-B串行時(shí)間碼并向設(shè)備終端發(fā)送,從而完成DC碼編碼。通過設(shè)備終端對接收到的IRIG-B碼進(jìn)行解調(diào),便能產(chǎn)生出系統(tǒng)所需的標(biāo)準(zhǔn)時(shí)間和各種控制信號,然后再存儲到相應(yīng)的雙端口RAM中。
1 系統(tǒng)整體硬件設(shè)計(jì)
IRIG(Inter-Range Instrumentation Group)是美國靶場司令部委員會的下屬機(jī)構(gòu),稱為“靶場時(shí)間組”。IRIG-B碼(DC)以其實(shí)際的優(yōu)越性能而成為時(shí)統(tǒng)設(shè)備最佳選擇的標(biāo)準(zhǔn)碼型。IRIG時(shí)間標(biāo)準(zhǔn)有兩大類:一類是并行時(shí)間碼格式,這類碼由于是并行格式,傳輸距離較近,且是二進(jìn)制,因此遠(yuǎn)不如串行格式廣泛;另一類是串行時(shí)間碼,共有六種格式,即A、B、D、E、G、H。它們的主要差別是時(shí)間碼的幀速率不同,B碼的主要特點(diǎn)是時(shí)幀速率為1幀/s;而且攜帶信息量大,經(jīng)譯碼后可獲得1、10、100、1000 c/s的脈沖信號和BCD編碼的時(shí)間信息及控制功能信息;此外,B碼的分辨率高,調(diào)制后的B碼帶寬能適用于遠(yuǎn)距離傳輸,它分為直流、交流兩種,而且接口標(biāo)準(zhǔn)化,國際通用。
IRIG-B碼編碼器由時(shí)鐘脈沖發(fā)生器模塊、標(biāo)準(zhǔn)時(shí)間形成模塊、BCD碼轉(zhuǎn)換模塊、并串轉(zhuǎn)換、直流碼形成模塊和交流碼模塊組成,其編碼器硬件設(shè)計(jì)總體框圖如圖1所示。
IRIG-B解碼器則由鎖相環(huán)PLL模塊、IRIG-B解碼模塊、雙端口RAM、RAM控制模塊等組成。其解碼硬件的設(shè)計(jì)框圖如圖2所示。
2 IRIG-B編碼模塊的設(shè)計(jì)
2.1 時(shí)鐘脈沖產(chǎn)生模塊設(shè)計(jì)
為了達(dá)到系統(tǒng)所要求的精度,使頻率較為穩(wěn)定,設(shè)計(jì)時(shí)可用更高的頻率作為時(shí)鐘分頻鏈的第一主時(shí)鐘。這里采用鎖相環(huán)實(shí)現(xiàn)倍頻方法來提供所需的頻率,可選用Quartus II軟件中宏功能庫中自帶的PLL來提高整體的運(yùn)算速度,同時(shí)也能合理的進(jìn)行資源綜合。實(shí)事上,使用基本的宏定義模塊可以明顯地提高用戶的設(shè)計(jì)開發(fā)時(shí)間。時(shí)鐘脈沖產(chǎn)生電路是IRIG-B碼產(chǎn)生器不可缺少的單元,該電路主要由幾個(gè)分頻器級聯(lián)和一些邏輯門組成。
電路中的數(shù)字分頻器可對外部提供的頻率進(jìn)行分頻,以產(chǎn)生系統(tǒng)所需時(shí)序脈沖和B碼的三種基本編碼形式脈沖,其寬度(高電平)分別為2ms、5 ms、8 ms,頻率為100Hz的脈沖信號:其中第一種是高電平為2 ms、低電平為8 ms的脈沖(代表邏輯“0”);第二種是高、低電平均為5 ms的脈沖(代表邏輯“1”);第三種是高電平為8ms、低電平為2 ms的脈沖(作為位置識別標(biāo)志和參考碼元)。Quartus II軟件下的仿真模塊結(jié)果如圖3所示。
2.2 標(biāo)準(zhǔn)時(shí)間信息和BCD碼轉(zhuǎn)換模塊設(shè)計(jì)
該模塊由百分秒計(jì)數(shù)器、秒計(jì)數(shù)器、分計(jì)數(shù)器、時(shí)計(jì)數(shù)器和天計(jì)數(shù)器級連而成。它可對預(yù)置的時(shí)間進(jìn)行秒加一,每隔一秒對時(shí)間信息刷新一次,從而形成動態(tài)BCD碼,并使時(shí)間信息符合IRIG-B碼的格式。標(biāo)準(zhǔn)時(shí)間信息和BCD碼轉(zhuǎn)換模塊如圖4所示。
2.3 IRIG-B碼DC格式的生成
IRIG-B(DC)時(shí)間碼格式的時(shí)間格式幀從幀參考標(biāo)志開始,因此,連續(xù)兩個(gè)8ms寬脈沖中的第二個(gè)8ms脈沖的前沿為秒的準(zhǔn)時(shí)點(diǎn),該點(diǎn)標(biāo)志著一個(gè)時(shí)間格式幀的開始,稱為參考碼元。從第二個(gè)8ms開始,分別為第1、2、…、99、0個(gè)碼元。B碼時(shí)間格式中含有秒、分、時(shí)、天等信息,其位置在P0~P5間。時(shí)間信息中,高電平用5ms脈沖表示,低電平用2 ms脈沖表示,其中秒信息占用第2、3、4、5、7、8、9碼元;分信息占用第11、12、13、14、16、17碼元;時(shí)信息占用第20、21、22、24、26、27碼元;天信息占用第31、32、33、34、36、37、38、38、41、42碼元;P6~P10包含其他控制信息(這里沒有應(yīng)用)。另外,第6、15、25、35、…、95碼元為索引標(biāo)志,用2ms脈沖寬度表示,固定為“0”。時(shí)、分、秒均用相應(yīng)BCD碼表示,低位在前,高位在后,個(gè)位在前,十位、百位在后。圖5所示是IRIG-B時(shí)間碼的格式幀示意圖。
一般每個(gè)IRIG-B碼都包含有豐富的碼信息。它必須包含幀開始標(biāo)志位、位置識別標(biāo)志和索引標(biāo)志,以使接受方能進(jìn)行數(shù)據(jù)卸載,或通過位置識別標(biāo)志和索引標(biāo)志識別出相應(yīng)的天、時(shí)、分、秒等信息。圖6所示是IRIG-B碼編碼模塊的設(shè)計(jì)圖。
3 IRRIG-B解碼模塊設(shè)計(jì)
3.1 鎖相環(huán)PLL模塊
PLL鎖相環(huán)模塊用于實(shí)現(xiàn)系統(tǒng)同步功能,以使外部信號脈沖和提供的標(biāo)準(zhǔn)時(shí)鐘脈沖相位同步,從而實(shí)現(xiàn)輸入信號頻率對標(biāo)準(zhǔn)信號頻率的自動跟蹤。PLL主要由鑒相器(PD)、環(huán)路濾波器(LPF)和壓控振蕩器(VCO)等三個(gè)基本部件組成。本文選用Ouartus II軟件中宏功能庫中自帶的PIX模塊來實(shí)現(xiàn)其相位同步功能。
3.2 IRIG-B解碼模塊
對IRIG-B碼進(jìn)行解碼就是將B中包含的標(biāo)準(zhǔn)時(shí)間信號和天、時(shí)、分、秒信息提取出來。解碼的關(guān)鍵在于判別IRIG-B碼的幀開始標(biāo)志位和相應(yīng)的秒、時(shí)、分、天的位置和信息。通過檢測B碼中各個(gè)碼元的寬度(高電平),可以判斷相應(yīng)的時(shí)間信息。該模塊可完成對IRIG-B碼的寬度檢測。如果寬度為8,則確定是位置識別標(biāo)志,如果檢測到兩個(gè)連續(xù)的寬度都是8,第二個(gè)寬度為8的脈沖則作為幀開始標(biāo)志位。如果寬度為5,則對應(yīng)的數(shù)值為“1”,如果寬度為2,則對應(yīng)的數(shù)值為“0”。
本設(shè)計(jì)采用10 kHz基準(zhǔn)信號來采樣IRIG-B碼信號以提取碼元相關(guān)信息。由于10kHz與外部頻率脈沖不能完全同步,有一定時(shí)間誤差。所以,利用10 kHz脈沖信號來采樣B碼信號,可使三種碼元不會出現(xiàn)重疊,從而可以提高采樣精度。在捕獲方式下,當(dāng)滿足捕獲條件時(shí),硬件可自動將計(jì)數(shù)器中的數(shù)據(jù)寫入存儲器中,當(dāng)B碼信號的上升沿到來時(shí),計(jì)數(shù)器開始計(jì)數(shù),下降沿到來時(shí)則停止計(jì)數(shù),并通過采樣計(jì)數(shù)數(shù)值范圍來判斷對應(yīng)的碼元,從而將直流碼解出。表1所列是用10kHz采樣B碼的信息表,圖7所示是IRIG-B解碼模塊示意圖。
3.3 雙端口RAM和控制模塊
本系統(tǒng)中的RAM模塊主要完成時(shí)間信息的存儲,RAM通過讀寫控制信號來進(jìn)行讀寫控制。當(dāng)讀寫信號為高電平時(shí)進(jìn)行寫操作,此時(shí)可以通過寫地址線控制把數(shù)據(jù)存儲到相應(yīng)的存儲單元中;為低電平時(shí)則進(jìn)行讀操作,此時(shí)可通過讀地址線控制把相應(yīng)存儲單元的數(shù)據(jù)讀出。從而完成整個(gè)數(shù)據(jù)存儲的讀取,圖8所示是該雙端口RAM和控制模塊的示意圖。
4 結(jié)束語
基于FPGA的IRIG-B碼編解碼器有利于硬件電路的簡化并縮短開發(fā)周期,同時(shí)其工作穩(wěn)定,可靠性高,可提供精確時(shí)間信息,在工程實(shí)踐中得到日益廣泛的應(yīng)用。本系統(tǒng)采用模塊化設(shè)計(jì),其系統(tǒng)的各個(gè)模塊之間有較好的關(guān)聯(lián)性,又有一定的獨(dú)立性,便于后期對系統(tǒng)功能的擴(kuò)展。當(dāng)以串行方式進(jìn)行數(shù)據(jù)傳輸,用一個(gè)I/O端口即可完成數(shù)據(jù)的接收和發(fā)送,因而既節(jié)省系統(tǒng)資源,又可解決并行傳輸通道之間的相互干擾問題。