基于FPGA的IRIG-B編碼器實(shí)現
M12T輸出的100 pps信號(以下稱(chēng)PPMl2)如圖3所示,每個(gè)脈沖的上升沿時(shí)刻準確,周期10 ms,在pps的參考點(diǎn),脈沖寬度為6~8 ms,其他時(shí)刻2~4 ms,脈沖寬度不是關(guān)注的重點(diǎn)。本文引用地址:http://dyxdggzs.com/article/163206.htm
B碼的每個(gè)碼元恰好與上述100 pps信號對應。首先在FPGA中構建一個(gè)模100的碼元計數器MMH和一個(gè)高電平脈沖寬度檢測器,通過(guò)下面的方法和步驟可以恢復pps。
(1)在PPMl2信號的上升沿復位寬度檢測器,高電平計時(shí),在下降沿停止并輸出Tb;
(2)在PPM12下降沿檢查T(mén)b,當6 msTb8 ms時(shí),令MMH=1,否則執行下面的操作:
if MMH=99 then MMH=O
else MMH=MMH+1
(3)在PPMl2信號的上升沿檢查MMH,如果MMH=0,則當前脈沖的上升沿是參考點(diǎn)Pr,觸發(fā)輸出8 ms高電平脈沖作為pps信號,重復步驟(1)~(3),在PPM12信號上升沿檢查MMH;如果MMH的個(gè)位為9或者M(jìn)MH=0,則當前脈沖標記為索引脈沖,即輸出8 ms高電平。
3.2 絕對時(shí)間獲取
通過(guò)在FPGA上構建一個(gè)UART與M12T互連。為了簡(jiǎn)化FPGA對M12T的配置和輸出時(shí)間的獲取,將UART分成兩部分設計,即發(fā)送模塊txmit和接收模塊rcvr。發(fā)送模塊用一個(gè)M4K設計一個(gè)512×8 FIFO,在系統復位后的若干個(gè)時(shí)鐘,利用一個(gè)狀態(tài)機將M12T的配置數據寫(xiě)入FIFO;然后通過(guò)txmit模塊配置M12T,配置結束后,UART模塊將M12T的時(shí)間碼轉發(fā)到外部RS 232接口,同時(shí)可以轉發(fā)外部接口的配置數據到M12T。接收模塊采用寄存器模式,只接收M12T發(fā)來(lái)的絕對時(shí)間信息,這樣后面的編碼模塊可以直接使用這些時(shí)間信息。做法如下:設計一個(gè)接收計數器rx_ count,每接收一個(gè)字節計數器自加,并根據rx_count決定是否保存時(shí)間碼。由于M12T每秒中發(fā)送一幀,故在檢測到pps時(shí)復位該計數器。
M12T在每個(gè)1 pps的上升沿過(guò)后送出當前時(shí)間,而FPGA通過(guò)UART接收到時(shí)間時(shí),B碼當前幀已經(jīng)啟動(dòng),據此形成的B碼要等下一個(gè)pps參考點(diǎn)之后才可以發(fā)送,所以對接收的時(shí)間要進(jìn)行預進(jìn)位處理。
本文在FPGA預處理部分設計了一個(gè)RTC計時(shí)鏈,在每個(gè)1 pps的上升沿.計時(shí)鏈向上進(jìn)位,編碼模塊從RTC計時(shí)鏈取絕對時(shí)間。從UART接收到新的時(shí)間后,如果該時(shí)間與計時(shí)鏈的值有差異,則將通過(guò)計時(shí)鏈的同步置數接口修正計時(shí)鏈的值。同時(shí)計時(shí)鏈負責把M12T的二進(jìn)制時(shí)間轉換成壓縮的BCD碼,還要根據當前接收到的年月日,計算當天是全年中的第幾天,即IRIG-B碼中的Day字段,而且在預加1 S和轉換時(shí)間格式時(shí),要注意閏年和月大和月小對Day字段的影響。
4 IRIG-B編碼模塊實(shí)現
4.1 IRIG-B DC編碼模塊
分析B碼可以發(fā)現,秒的最低位出現在MMH=1處,分的最低位出現在MMH=10處,小時(shí)的最低位出現在MMH=20處,依次類(lèi)推。按照圖1,容易得出時(shí)間寄存器輸出時(shí)刻和碼元計數器MMH之間的關(guān)系。由于碼元周期固定為10 ms,可以這樣實(shí)現編碼,定義一個(gè)模10的計數器MML和邏輯向量CMP(9 down to0)來(lái)表征一個(gè)碼元在10 ms的狀態(tài)。MML每ms加1,同時(shí)根據MML的值,選擇CMP的一位更新輸出狀態(tài),步驟如下:
(1)構建模10計數器MML,以及一個(gè)1 ms定時(shí)器;
(2)在PPM12信號的上升沿復位MML和1 ms定時(shí)器;
(3)1 ms定時(shí)器溢出時(shí),MML加1;
(4)根據MML和CMP輸出編碼信號IRIG_B_OUT,即IRIG_B_OUT=CMP(MML);
評論