天然氣體積修正儀數(shù)據(jù)采集模塊設(shè)計(jì)
為了實(shí)現(xiàn)快速狀態(tài)轉(zhuǎn)換同時(shí)增強(qiáng)穩(wěn)定性,避免出現(xiàn)毛刺現(xiàn)象,A/D轉(zhuǎn)換器的時(shí)序控制采用多進(jìn)程有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)。
(1) 時(shí)序邏輯
時(shí)序邏輯進(jìn)程STATE_TRANS負(fù)責(zé)狀態(tài)轉(zhuǎn)換,當(dāng)時(shí)鐘信號(hào)SYS_CLK上升沿到來(lái)時(shí),判斷轉(zhuǎn)換條件使?fàn)顟B(tài)機(jī)轉(zhuǎn)入相應(yīng)狀態(tài)。
(2) 組合邏輯
組合邏輯進(jìn)程STATE_BEHV負(fù)責(zé)狀態(tài)輸出,當(dāng)狀態(tài)變量ST發(fā)生變化時(shí),產(chǎn)生對(duì)應(yīng)此狀態(tài)的CNV_ST,AD_RD AD_CS,CH(0為第一通道,1為第二通道)及STATUS相應(yīng)輸出。
(3) 計(jì)數(shù)邏輯
定義P0進(jìn)程,敏感參數(shù)為CNV_ST,當(dāng)一組數(shù)據(jù)采樣結(jié)束(CNV_ST信號(hào)由0變?yōu)?),如果已經(jīng)采集10組數(shù)據(jù),則置位FULL信號(hào),表示采樣過(guò)程已經(jīng)結(jié)束。
2.2.3 濾波器設(shè)計(jì)
A/D轉(zhuǎn)換后的數(shù)據(jù)還不能立即送入處理器中處理,為了提高數(shù)據(jù)的準(zhǔn)確性,設(shè)計(jì)濾波單元對(duì)數(shù)據(jù)進(jìn)行處理。濾波濾波器設(shè)計(jì)實(shí)現(xiàn)經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù)濾波處理及數(shù)據(jù)的輸出。
數(shù)字濾波模塊的濾波算法采用中位值平均濾波法,相當(dāng)于“中位值濾波法”+“算術(shù)平無(wú)度濾波法”,該方法計(jì)算簡(jiǎn)單、速度快,還可消除由于脈沖干擾所引起的采樣值偏差,使得經(jīng)濾波后的輸出信號(hào)為“干凈”信號(hào),可直接用于工業(yè)控制。中位值平均濾波法的時(shí)域差分方程是:本文引用地址:http://m.butianyuan.cn/article/188538.htm
本系統(tǒng)設(shè)計(jì)10組數(shù)據(jù)進(jìn)行濾波處理,取N=8。為了節(jié)約FPGA內(nèi)部資源,濾波器的設(shè)計(jì)中采用移位寄存器代替除法器來(lái)實(shí)現(xiàn)平均濾波部分的算法。濾波模塊的設(shè)計(jì)從采樣數(shù)據(jù)的輸入、數(shù)值累加、去極值、求平均值到數(shù)字量的輸出共5個(gè)處理步驟,并且整個(gè)數(shù)據(jù)處理是“單流向”的,前一步驟的輸出是下一步驟的輸入,符合流水線(xiàn)設(shè)計(jì)要求。采用流水線(xiàn)設(shè)計(jì)方法可以提高系統(tǒng)的工作頻率,從宏觀上看數(shù)字濾波模塊不占用額外的處理時(shí)間,對(duì)于超高速A/D轉(zhuǎn)換控制中顯得格外重要。從VHDL語(yǔ)言的角度看,流水線(xiàn)操作是用面積換速度思想的具體體現(xiàn)[3]。
定義濾波器端口類(lèi)型見(jiàn)表2所示。
從仿真圖中可以看出,當(dāng)時(shí)鐘處于上升沿,AD_START變?yōu)楦唠娖綍r(shí),啟動(dòng)A/D轉(zhuǎn)換,依次讀2個(gè)通道的數(shù)據(jù)。當(dāng)讀滿(mǎn)10組時(shí),進(jìn)行濾波處理。當(dāng)CPU發(fā)出讀信號(hào)時(shí),數(shù)據(jù)讀出??梢?jiàn),設(shè)計(jì)的A/D控制器和濾波器完全符合設(shè)計(jì)要求。
對(duì)設(shè)計(jì)程序進(jìn)行編譯,可以看出,EP1C12Q240C8總的邏輯元數(shù)目為12 060,本控制模塊只占用了227個(gè),完全達(dá)到數(shù)據(jù)采集及濾波處理功能,極大地減輕了CPU的負(fù)擔(dān),可以讓CPU專(zhuān)注于其他的任務(wù)。是一種可行且值得推廣的方法。
3總體功能仿真及編譯結(jié)果
設(shè)計(jì)完成,生成頂層模塊。該模塊可直接加入到體積修正儀的SOPC設(shè)計(jì)中。其總體功能仿真如圖5所示。
從仿真圖中可以看出,當(dāng)時(shí)鐘處于上升沿,AD_START變?yōu)楦唠娖綍r(shí),啟動(dòng)A/D轉(zhuǎn)換,依次讀2個(gè)通道的數(shù)據(jù)。當(dāng)讀滿(mǎn)10組時(shí),進(jìn)行濾波處理。當(dāng)CPU發(fā)出讀信號(hào)時(shí),數(shù)據(jù)讀出。可見(jiàn),設(shè)計(jì)的A/D控制器和濾波器完全符合設(shè)計(jì)要求。
對(duì)設(shè)計(jì)程序進(jìn)行編譯,可以看出,EP1C12Q240C8總的邏輯元數(shù)目為12 060,本控制模塊只占用了227個(gè),完全達(dá)到數(shù)據(jù)采集及濾波處理功能,極大地減輕了CPU的負(fù)擔(dān),可以讓CPU專(zhuān)注于其他的任務(wù)。是一種可行且值得推廣的方法。
評(píng)論