掃描二維碼
隨時(shí)隨地手機(jī)看文章
2.2.2 A/D控制器設(shè)計(jì)
AD7864的工作時(shí)序圖如圖3所示。當(dāng)CONVST信號(hào)為下降沿時(shí)啟動(dòng)一次四通道的A/D轉(zhuǎn)換,因此采樣頻率決定于CONVST信號(hào)的頻率,在第一通道開始轉(zhuǎn)換之后BUSY信號(hào)為高,四通道轉(zhuǎn)換全部結(jié)束后變?yōu)榈?,EOC為高表明正在轉(zhuǎn)換,為低表示一次轉(zhuǎn)換結(jié)束,可讀取結(jié)果,此時(shí)將片選置為低,同時(shí)將讀信號(hào)RD置低即可從數(shù)據(jù)線上將數(shù)據(jù)讀出。為了便于控制采樣頻率,設(shè)置AD_START和CLOCK信號(hào)分別作為外部控制A/D開始轉(zhuǎn)換信號(hào)和時(shí)鐘信號(hào)。
本文采用硬件選擇通道方式,SL1、SL2置高,兩通道依次按順序轉(zhuǎn)換。由于兩通道采樣數(shù)據(jù)使用同一路數(shù)據(jù)總線依次讀出,采用有限狀態(tài)機(jī)(FSM)實(shí)現(xiàn)各通道數(shù)據(jù)的采集。狀態(tài)機(jī)是邏輯設(shè)計(jì)中最重要的設(shè)計(jì)內(nèi)容之一,通過狀態(tài)轉(zhuǎn)移圖設(shè)計(jì)手段可以將復(fù)雜的控制時(shí)序圖形化表示,分解為狀態(tài)之間的轉(zhuǎn)換關(guān)系,將問題簡(jiǎn)化。VHDL流水線設(shè)計(jì)方法可以提高系統(tǒng)的工作頻率,采用VHDL語言編寫控制程序。
狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖如圖4所示,共分為6個(gè)工作狀態(tài):零狀態(tài)(idle)、等待狀態(tài)(STAND_BY)、轉(zhuǎn)換第一通道數(shù)據(jù)(CH0_CONVST)、讀第一通道數(shù)據(jù)(CH0_RD)、轉(zhuǎn)換第二通道數(shù)據(jù)(CH1_CONVST)以及讀第二通道數(shù)據(jù)(CH1_RD)。
設(shè)計(jì)控制器端口類型及說明如表1所示。
FSM結(jié)構(gòu)體定義信號(hào)類型ST和count。ST為狀態(tài),且初始狀態(tài)為零狀態(tài);count用于讀數(shù)據(jù)的計(jì)數(shù),用于濾波。
為了實(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ī)來實(shí)現(xiàn)。
(1) 時(shí)序邏輯
時(shí)序邏輯進(jìn)程STATE_TRANS負(fù)責(zé)狀態(tài)轉(zhuǎn)換,當(dāng)時(shí)鐘信號(hào)SYS_CLK上升沿到來時(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),表示采樣過程已經(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ù)平無度濾波法”,該方法計(jì)算簡(jiǎn)單、速度快,還可消除由于脈沖干擾所引起的采樣值偏差,使得經(jīng)濾波后的輸出信號(hào)為“干凈”信號(hào),可直接用于工業(yè)控制。中位值平均濾波法的時(shí)域差分方程是:
本系統(tǒng)設(shè)計(jì)10組數(shù)據(jù)進(jìn)行濾波處理,取N=8。為了節(jié)約FPGA內(nèi)部資源,濾波器的設(shè)計(jì)中采用移位寄存器代替除法器來實(shí)現(xiàn)平均濾波部分的算法。濾波模塊的設(shè)計(jì)從采樣數(shù)據(jù)的輸入、數(shù)值累加、去極值、求平均值到數(shù)字量的輸出共5個(gè)處理步驟,并且整個(gè)數(shù)據(jù)處理是“單流向”的,前一步驟的輸出是下一步驟的輸入,符合流水線設(shè)計(jì)要求。采用流水線設(shè)計(jì)方法可以提高系統(tǒng)的工作頻率,從宏觀上看數(shù)字濾波模塊不占用額外的處理時(shí)間,對(duì)于超高速A/D轉(zhuǎn)換控制中顯得格外重要。從VHDL語言的角度看,流水線操作是用面積換速度思想的具體體現(xiàn)[3]。
定義濾波器端口類型見表2所示。
從仿真圖中可以看出,當(dāng)時(shí)鐘處于上升沿,AD_START變?yōu)楦唠娖綍r(shí),啟動(dòng)A/D轉(zhuǎn)換,依次讀2個(gè)通道的數(shù)據(jù)。當(dāng)讀滿10組時(shí),進(jìn)行濾波處理。當(dāng)CPU發(fā)出讀信號(hào)時(shí),數(shù)據(jù)讀出??梢姡O(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專注于其他的任務(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)讀滿10組時(shí),進(jìn)行濾波處理。當(dāng)CPU發(fā)出讀信號(hào)時(shí),數(shù)據(jù)讀出??梢?,設(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專注于其他的任務(wù)。是一種可行且值得推廣的方法。
北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...
關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心東京2022年10月18日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...
關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...
關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車