基于FPGA和DSP的微振動(dòng)傳感器信號(hào)采集系統(tǒng)設(shè)計(jì)
2.2.2 EDMA3控制器
TMS320C6747內(nèi)的EDMA3控制器是一個(gè)高效的數(shù)據(jù)傳輸引擎,可在沒(méi)有CPU參與的前提下,完成DSP存儲(chǔ)空間內(nèi)的數(shù)據(jù)轉(zhuǎn)移,保證CPU核心專(zhuān)注于信號(hào)處理算法的運(yùn)算。
EDMA3傳輸有3種觸發(fā)方式:事件觸發(fā)、連鎖觸發(fā)和CPU觸發(fā)。本系統(tǒng)設(shè)計(jì)選擇事件觸發(fā),FPGA內(nèi)FIFO的half_full輸出信號(hào)和DSP的GP4[2]相連,滿(mǎn)足條件會(huì)自動(dòng)觸發(fā)一個(gè)EDMA請(qǐng)求,執(zhí)行對(duì)應(yīng)于參數(shù)RAM的數(shù)據(jù)傳輸。
EDMA3數(shù)據(jù)傳輸?shù)目刂仆ㄟ^(guò)設(shè)置參數(shù)RAM來(lái)實(shí)現(xiàn)。本系統(tǒng)設(shè)計(jì)設(shè)置OPT=0x0010000C。其中TCINTEN位置1,當(dāng)最后傳輸事務(wù)完成之后會(huì)觸發(fā)DSP系統(tǒng)的EDMA中斷;STATIC位置1,在EDMA事務(wù)傳輸請(qǐng)求完成之后參數(shù)RAM不會(huì)被更新或者鏈接到別的參數(shù)RAM;SYNCDIM位置1,EDMA傳輸類(lèi)型是二維,每一個(gè)傳輸請(qǐng)求傳輸BCNT x ACNT字節(jié)。
為使EDMA事件傳輸及中斷能夠被觸發(fā)并順利執(zhí)行,本系統(tǒng)設(shè)計(jì)進(jìn)行下列配置:
(1)GPIO4[2]配置為邊沿觸發(fā),且打開(kāi)中斷使能;
(2)對(duì)EDMA寄存器EESR相應(yīng)位寫(xiě)1,使EER相應(yīng)位置1,使EDMA3CC監(jiān)測(cè)外部觸發(fā)事件;
(3)配置EDMA的參數(shù)RAM并寫(xiě)進(jìn)配置寄存器,定義EDMA數(shù)據(jù)傳輸?shù)膮?shù);
(4)配置EDMA寄存器DMAQNUM,映射GP4[2]中斷對(duì)應(yīng)的28號(hào)事件到隊(duì)列0;
(5)配置EDMA寄存器DRAE[1],使能EDMA傳輸完成產(chǎn)生的中斷;
(6)置EDMA寄存器IER相應(yīng)位為1,使對(duì)應(yīng)通道的傳輸完成能觸發(fā)EDMA中斷;
(7)DSP控制寄存器IER.NMIE置1,使能DSP所有非重啟的中斷;
(8)DSP控制寄存器CSR.GIE置1,打開(kāi)DSP中斷的總開(kāi)關(guān)。
2.3 FPGA和DSP接口
系統(tǒng)設(shè)計(jì)采用FPGA和DSP雙核心,F(xiàn)PGA在并行運(yùn)算方面有很高的效率,可負(fù)責(zé)控制信號(hào)的采集和預(yù)處理,而DSP擅長(zhǎng)信號(hào)處理,負(fù)責(zé)信號(hào)的算法,保證系統(tǒng)的高效運(yùn)行。FPGA和DSP的接口設(shè)計(jì)是保證兩者進(jìn)行有效通信的關(guān)鍵。
本系統(tǒng)設(shè)計(jì)中DSP通過(guò)EMIFA和FPGA相連的物理接口如圖2所示。接口的信號(hào)線(xiàn)可分3部分:DSP對(duì)FPGA的控制線(xiàn),F(xiàn)PGA通知DSP的中斷信號(hào)線(xiàn)和數(shù)據(jù)線(xiàn)。本文引用地址:http://www.ex-cimer.com/article/189702.htm
(1)控制線(xiàn):在FPGA內(nèi)部和DSP相連的是一個(gè)輸出FIFO,它的片選信號(hào)、時(shí)鐘信號(hào)和寫(xiě)使能信號(hào)對(duì)應(yīng)于TMS320C6747的信號(hào)EMA_CS3,EMA_ CLK,EMA_WE信號(hào);而讀使能信號(hào)由EMA_OE,EMA_CS3和EMA_CLK共同產(chǎn)生,因?yàn)镋MIFA的每一個(gè)讀時(shí)序包含多個(gè)EMA_CLK時(shí)鐘周期,在EMA_OE有效電平期間,F(xiàn)IFO的讀使能信號(hào)只能持續(xù)一個(gè)時(shí)鐘周期,否則多個(gè)數(shù)據(jù)將被讀出。
(2)中斷信號(hào)線(xiàn):FIFO的信號(hào)線(xiàn)half_full和C6747的其中一個(gè)通用管腳GP4[2]相連,通過(guò)配置GPIO的配置寄存器SET_RIS_TRIG45,CLR_ FAL_TRIG45和BINTEN,GPIO4[2]電平由低到高的變化將會(huì)產(chǎn)生中斷。
(3)數(shù)據(jù)線(xiàn):EMIFA的數(shù)據(jù)線(xiàn)是16位,12位的FIFO的輸出數(shù)據(jù)線(xiàn)直接和EMIFA的EMA_D低12位相連,在FPGA中配置與EMA_D高4位相連的管腳一直為0。
3 軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)包括FPGA模塊和DSP模塊的軟件流程控制,F(xiàn)PGA模塊內(nèi)部主要是FIFO設(shè)計(jì),控制數(shù)據(jù)的采集以及配合DSP進(jìn)行通信,而在DSP模塊中主要包含EDMA數(shù)據(jù)傳輸控制和算法處理。
3.1 FPGA的FIFO
FPGA模塊采用Xilinx公司的XC4VSX35型號(hào),其內(nèi)部設(shè)計(jì)有DCM模塊和FIFO模塊。DCM模塊和外部的晶振相連,引入時(shí)鐘信號(hào),通過(guò)DCM輸出時(shí)鐘信號(hào)給AD9235作時(shí)鐘信號(hào)以及FPGA內(nèi)部FIFO的寫(xiě)時(shí)鐘信號(hào)。FIFO模塊設(shè)有相互獨(dú)立的讀寫(xiě)時(shí)鐘,是異步讀寫(xiě)方式,能夠協(xié)調(diào)模/數(shù)轉(zhuǎn)換模塊和DSP模塊之間的工作,把數(shù)據(jù)從模/數(shù)轉(zhuǎn)換模塊的輸出轉(zhuǎn)移到DSP模塊。
FIFO模塊采用XC4VSX35內(nèi)部的Block RAM,通過(guò)IP核配置的方式,生成所需的FIFO緩沖存儲(chǔ)器,F(xiàn)IFO的寫(xiě)入時(shí)鐘由FPGA內(nèi)部的DCM提供。在寫(xiě)入時(shí)鐘的控制下AD9235的輸出數(shù)據(jù)寫(xiě)入FIFO緩沖器,當(dāng)FIFO內(nèi)數(shù)據(jù)數(shù)量達(dá)到設(shè)定值時(shí),F(xiàn)IFO的half_full信號(hào)線(xiàn)電平由低轉(zhuǎn)高,以GPIO中斷的方式觸發(fā)DSP的EDMA事務(wù)進(jìn)行數(shù)據(jù)轉(zhuǎn)移。圖3是ISE7.1中FIFO的仿真時(shí)序圖。
fpga相關(guān)文章:fpga是什么
傳感器相關(guān)文章:傳感器工作原理
干涉儀相關(guān)文章:干涉儀原理
光纖傳感器相關(guān)文章:光纖傳感器原理
評(píng)論