基于AVR和CPLD的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計
將程序下載至CPLD中運行調(diào)試,經(jīng)過對電路的調(diào)試和測量,控制8通道A/D同時轉(zhuǎn)換的狀態(tài)機產(chǎn)生的示波器時序波形如圖5所示,其中,0、1、2、3、4分別對應(yīng)的是圖3中的CONVST、EOC、EOLC、CS、RD,而第5通道是對FIF0的寫信號。從示波器顯示的波形圖可以看出產(chǎn)生的8個連續(xù)的脈沖對應(yīng)位置完全滿足圖3所要求的時序要求,也就是說在控制器同時控制8路信號的采集時不會出現(xiàn)時序混亂的情況。由此可知,采用本系統(tǒng)中設(shè)計的采集程序可以實現(xiàn)同時采集的要求,并且根據(jù)采集的脈沖寬度分析可知該系統(tǒng)能滿足采集速度為10 Mb/s的設(shè)計要求。
2.2 控制Flash存儲程序設(shè)計
4個Flash存儲器的流水線工作原理如圖2所示,對單獨的每一片F(xiàn)lash來說每一次存儲都是在上一次存儲過程中加載完成后進行,而對于由4片F(xiàn)lash存儲器組成的整個系統(tǒng),它一直在加載存儲數(shù)據(jù),這樣可以保證存儲速度大于采集速度,從而保證存儲過程中不會因單片F(xiàn)lash存儲速度慢而造成丟失數(shù)據(jù)。實現(xiàn)Flash存儲的主要程序:
在數(shù)據(jù)加載期間本系統(tǒng)應(yīng)采用DMA傳輸控制方式,即:每當(dāng)FIF0的半滿標志信號HF產(chǎn)生一次有效電平時,ATmegal62就啟動一次中斷,在中斷程序中,ATmegal62將產(chǎn)生NAND Flash命令和有效地址,以及啟動DMA控制器。一旦DMA控制器啟動,ATmegal62就將轉(zhuǎn)入后臺進行有效地址的運算等,從而參與數(shù)據(jù)傳輸過程,整個數(shù)據(jù)從FIFO到Flash存儲器的傳輸過程是由CPLD內(nèi)部編寫的DMA控制器控制完成。啟動一次DMA控制器傳輸一頁2048個字節(jié)的數(shù)據(jù),一次中斷完成16 K字節(jié)的傳輸。其示波器時序如圖6所示:第0,1,2,3通道是FIF0的讀數(shù)據(jù)時序波形,第4通道是Flash的寫通道時序波形。
3 結(jié)論
通過使用AVR和CPLD編程,設(shè)計實現(xiàn)了一種成本低且可實現(xiàn)10 Mb/s以上并行采集數(shù)據(jù)率的高速數(shù)據(jù)采集存儲系統(tǒng)。在分析MAXl308特性及轉(zhuǎn)換時序的基礎(chǔ)上,設(shè)計完成了A/D轉(zhuǎn)換器及其外圍電路,并通過調(diào)試可知時序穩(wěn)定。通過VHDL語言實現(xiàn)了采集模塊、控制與存儲模塊和Flash存儲功能。在完成硬件連接后調(diào)試,試驗結(jié)果顯示,該設(shè)計能夠?qū)崿F(xiàn)低成本高速采集,多路同時采集速度大于10 Mb/s采集系統(tǒng),具有一定的實用價值。
評論