基于FPGA的多通道數據采集系統設計
最常用的數據采集方案多以MCU為核心,控制多路信號的采集及處理。但由于單片機本身的指令周期以及處理速度的影響,對于多通道A/D進(jìn)行控制及數據處理,普通的MCU往往不容易達到要求??紤]到FPGA器件的高集成度、內部資源豐富、特別適合處理多路并行數據等明顯優(yōu)于普通微處理器的特點(diǎn),并針對大地電磁數據采集系統對實(shí)時(shí)性和同步性的要求,本文提出了一種多通道數據采集方案。采用FPGA與ARM相結合的設計,采集主控制邏輯用FPGA實(shí)現,ARM用來(lái)實(shí)現采集數據的存儲和數據傳輸控制。
1 系統總體結構
系統總體結構如圖1所示。A/D轉換器采用TI公司的24位高精度模數轉換器ADS1255;FPGA采用Altera公司的EP2C35;ARM為ARM9內核的處理器S3C2410。雙口RAM由EP2C35內部存儲器塊配置而成,該雙口RAM與ARM的系統總線(xiàn)相連,映射為ARM的一塊內存區。
AD前端處理電路的作用是實(shí)現對信號的放大、衰減以及阻抗匹配,從而滿(mǎn)足ADC對輸入信號的要求。濾波網(wǎng)絡(luò )濾除高頻噪聲和工頻信號的干擾,增益放大通過(guò)ARM給出的控制信號實(shí)現對模擬信號的不同增益的放大處理。ADS1255負責把模擬電信號轉換成數字信號,可以通過(guò)功能選擇設置ADS1255工作在不同的工作模式下。ADS1255的工作時(shí)鐘由FPGA提供,改變FPGA輸出時(shí)鐘的頻率就能實(shí)現AD采樣率的改變。FPGA并行控制5路AD的數據采集,并把采集到的各路數據按順序以字節的形式寫(xiě)入雙口RAM中緩存。FPGA對雙口RAM的數據寫(xiě)入和ARM對數據的讀取是通過(guò)乒乓傳輸結構實(shí)現的。當FPGA寫(xiě)滿(mǎn)雙口RAM上半區后,向ARM申請中斷,ARM響應中斷后,讀出上半區數據到內存中進(jìn)行存儲;同時(shí)FPGA向RAM的下半區寫(xiě)數據,寫(xiě)滿(mǎn)下半區后也向ARM發(fā)出中斷,通知ARM讀出下半區數據。通過(guò)乒乓傳輸保證了系統數據采樣和數據傳輸可以連續進(jìn)行。
2 FPGA的邏輯設計
本方案中的數據采集流程如下:系統初始化后,ARM通過(guò)控制信號把采樣頻率、通道選擇等參數通知給FPGA,然后FPGA向需要同步采樣的通道對應的AD芯片提供統一時(shí)鐘,使得AD同步地選擇相應的通道進(jìn)行數據的同步采樣和轉換,其結果由FPGA接收并存儲在雙口RAM對應的存儲空間,然后由ARM從相應的雙口RAM空間讀取數據進(jìn)行本地存儲或經(jīng)過(guò)網(wǎng)絡(luò )傳輸給上位機進(jìn)行處理。根據以上流程以及FPGA要實(shí)現的功能,整個(gè)FPGA邏輯設計劃分為通道和采樣率選擇模塊、時(shí)鐘模塊、雙口RAM模塊、AD采樣控制模塊、串并轉換模塊、數據存儲控制模塊、ARM接口控制模塊。
各模塊連接關(guān)系如圖2所示。
評論