基于FPGA的IRIG-B(DC)碼解碼
2.1 全局控制模塊
全局控制模塊產(chǎn)生全局控制信號count,對其他模塊進(jìn)行時序管理。首先,將輸入的10 MHz頻率倍頻到50 MHz,使得整個工程以50 MHz的頻率運(yùn)行。其次,判斷輸入的B(DC)碼碼元的上升沿,在碼元的上升沿時刻對全局控制信號count復(fù)位,接下來在50 MHz頻率的控制下全局控制信號count開始計(jì)數(shù)。count的低17比特是2.2 ms的計(jì)數(shù)器,count的第17,18比特是對B(DC)碼碼元采樣點(diǎn)的標(biāo)記,范圍是0~3。count的第19~25比特是對B(DC)碼碼元的統(tǒng)計(jì),范圍是0~99。最后,搜索幀頭的功能。對B碼采樣模塊輸出的數(shù)據(jù)進(jìn)行判斷,當(dāng)搜索到連續(xù)兩個標(biāo)志位P0,PR時,則認(rèn)為搜索到幀頭,開始BCH譯碼,否則認(rèn)為沒有搜索到幀頭,控制信號count復(fù)位,重新搜索。
2.2 B碼采樣模塊
B碼采樣模塊在B(DC)碼碼元上升沿時刻開始以2.2 ms間隔對其采樣,由于B碼的碼元寬度為10 ms所以每個B(DC)碼碼元采樣到四個值。‘P’碼元采樣到的數(shù)據(jù)是“1110”,如圖4所示。同理,‘0’碼元采樣到的數(shù)據(jù)是“0000”,‘1’碼元采樣到的數(shù)據(jù)是“1100”。將采樣到的值反饋給全局控制模塊以便進(jìn)行幀頭搜索并傳遞給BCH譯碼模塊。本文引用地址:http://2s4d.com/article/190174.htm
為了防止干擾造成的抖動對輸入信號造成誤判,采取的修正方法是在全局控制信號count的控制下,在B(DC)碼碼元的每個采樣點(diǎn)處間隔兩個主鐘連續(xù)采樣三次.然后將這三次的采樣值兩兩按位與,再將相與的結(jié)果相或便得到該采樣點(diǎn)處的真實(shí)值,有效地防止了干擾造成的信號誤判。
2.3 BCH譯碼模塊
BCH譯碼模塊在控制信號count的控制下對B(DC)碼采樣模塊輸出的數(shù)據(jù)進(jìn)行判斷,當(dāng)為“1110”時,對應(yīng)的碼元信息為‘P’;當(dāng)為“0000”時,對應(yīng)的碼元信啟、為‘0’;當(dāng)為“1100”時,對應(yīng)的碼元信息為‘1’,并按照秒、分、時、天、TOD在B(DC)碼中所對應(yīng)的碼元位置進(jìn)行相應(yīng)的組合。
2.4 天、時、分、秒、TOD提取模塊
天、時、分、秒、TOD提取模塊是將BCH譯碼模塊中輸出的數(shù)據(jù)存入天、時、分、秒、TOD寄存器中。圖5是在ModelSim SE 6.6下的仿真,TOD為86 399,365天23時59分59秒分別存入了TOD、天、時、分、秒寄存器。從圖5觀察TOD、天、時、分、秒輸出正確。
評論