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