基于FPGA的IRTG-B碼編解碼器的設(shè)計與實現(xiàn)
一般每個IRIG-B碼都包含有豐富的碼信息。它必須包含幀開始標(biāo)志位、位置識別標(biāo)志和索引標(biāo)志,以使接受方能進行數(shù)據(jù)卸載,或通過位置識別標(biāo)志和索引標(biāo)志識別出相應(yīng)的天、時、分、秒等信息。圖6所示是IRIG-B碼編碼模塊的設(shè)計圖。本文引用地址:http://2s4d.com/article/191278.htm
3 IRRIG-B解碼模塊設(shè)計
3.1 鎖相環(huán)PLL模塊
PLL鎖相環(huán)模塊用于實現(xiàn)系統(tǒng)同步功能,以使外部信號脈沖和提供的標(biāo)準(zhǔn)時鐘脈沖相位同步,從而實現(xiàn)輸入信號頻率對標(biāo)準(zhǔn)信號頻率的自動跟蹤。PLL主要由鑒相器(PD)、環(huán)路濾波器(LPF)和壓控振蕩器(VCO)等三個基本部件組成。本文選用Ouartus II軟件中宏功能庫中自帶的PIX模塊來實現(xiàn)其相位同步功能。
3.2 IRIG-B解碼模塊
對IRIG-B碼進行解碼就是將B中包含的標(biāo)準(zhǔn)時間信號和天、時、分、秒信息提取出來。解碼的關(guān)鍵在于判別IRIG-B碼的幀開始標(biāo)志位和相應(yīng)的秒、時、分、天的位置和信息。通過檢測B碼中各個碼元的寬度(高電平),可以判斷相應(yīng)的時間信息。該模塊可完成對IRIG-B碼的寬度檢測。如果寬度為8,則確定是位置識別標(biāo)志,如果檢測到兩個連續(xù)的寬度都是8,第二個寬度為8的脈沖則作為幀開始標(biāo)志位。如果寬度為5,則對應(yīng)的數(shù)值為“1”,如果寬度為2,則對應(yīng)的數(shù)值為“0”。
本設(shè)計采用10 kHz基準(zhǔn)信號來采樣IRIG-B碼信號以提取碼元相關(guān)信息。由于10kHz與外部頻率脈沖不能完全同步,有一定時間誤差。所以,利用10 kHz脈沖信號來采樣B碼信號,可使三種碼元不會出現(xiàn)重疊,從而可以提高采樣精度。在捕獲方式下,當(dāng)滿足捕獲條件時,硬件可自動將計數(shù)器中的數(shù)據(jù)寫入存儲器中,當(dāng)B碼信號的上升沿到來時,計數(shù)器開始計數(shù),下降沿到來時則停止計數(shù),并通過采樣計數(shù)數(shù)值范圍來判斷對應(yīng)的碼元,從而將直流碼解出。表1所列是用10kHz采樣B碼的信息表,圖7所示是IRIG-B解碼模塊示意圖。
3.3 雙端口RAM和控制模塊
本系統(tǒng)中的RAM模塊主要完成時間信息的存儲,RAM通過讀寫控制信號來進行讀寫控制。當(dāng)讀寫信號為高電平時進行寫操作,此時可以通過寫地址線控制把數(shù)據(jù)存儲到相應(yīng)的存儲單元中;為低電平時則進行讀操作,此時可通過讀地址線控制把相應(yīng)存儲單元的數(shù)據(jù)讀出。從而完成整個數(shù)據(jù)存儲的讀取,圖8所示是該雙端口RAM和控制模塊的示意圖。
4 結(jié)束語
基于FPGA的IRIG-B碼編解碼器有利于硬件電路的簡化并縮短開發(fā)周期,同時其工作穩(wěn)定,可靠性高,可提供精確時間信息,在工程實踐中得到日益廣泛的應(yīng)用。本系統(tǒng)采用模塊化設(shè)計,其系統(tǒng)的各個模塊之間有較好的關(guān)聯(lián)性,又有一定的獨立性,便于后期對系統(tǒng)功能的擴展。當(dāng)以串行方式進行數(shù)據(jù)傳輸,用一個I/O端口即可完成數(shù)據(jù)的接收和發(fā)送,因而既節(jié)省系統(tǒng)資源,又可解決并行傳輸通道之間的相互干擾問題。
評論