基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
大地電磁場(chǎng)攜帶著地球內(nèi)部的結(jié)構(gòu)、構(gòu)造、溫度、壓力以及物質(zhì)成分的物理狀態(tài)等信息,為人們研究板塊運(yùn)動(dòng)的規(guī)律、追溯地球的演化歷史提供了科學(xué)依據(jù)。大地電磁探測(cè)是研究大陸巖石圈導(dǎo)電性結(jié)構(gòu)的有效方法之一,使人們從電性角度認(rèn)識(shí)地球內(nèi)部的構(gòu)造形態(tài),達(dá)到了解地下不同深度地質(zhì)情況的目的。該技術(shù)應(yīng)用前景廣泛,可用于地下更深層找礦、找水、找油、監(jiān)測(cè)海底潛艇等,對(duì)國(guó)民經(jīng)濟(jì)和國(guó)防的發(fā)展都有重要的推動(dòng)作用。
最常用的數(shù)據(jù)采集方案多以MCU為核心,控制多路信號(hào)的采集及處理。但由于單片機(jī)本身的指令周期以及處理速度的影響,對(duì)于多通道A/D進(jìn)行控制及數(shù)據(jù)處理,普通的MCU往往不容易達(dá)到要求??紤]到FPGA器件的高集成度、內(nèi)部資源豐富、特別適合處理多路并行數(shù)據(jù)等明顯優(yōu)于普通微處理器的特點(diǎn),并針對(duì)大地電磁數(shù)據(jù)采集系統(tǒng)對(duì)實(shí)時(shí)性和同步性的要求,本文提出了一種多通道數(shù)據(jù)采集方案。采用FPGA與ARM相結(jié)合的設(shè)計(jì),采集主控制邏輯用FPGA實(shí)現(xiàn),ARM用來(lái)實(shí)現(xiàn)采集數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)傳輸控制。
1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)總體結(jié)構(gòu)如圖1所示。A/D轉(zhuǎn)換器采用TI公司的24位高精度模數(shù)轉(zhuǎn)換器ADS1255;FPGA采用Altera公司的EP2C35;ARM為ARM9內(nèi)核的處理器S3C2410。雙口RAM由EP2C35內(nèi)部存儲(chǔ)器塊配置而成,該雙口RAM與ARM的系統(tǒng)總線相連,映射為ARM的一塊內(nèi)存區(qū)。
AD前端處理電路的作用是實(shí)現(xiàn)對(duì)信號(hào)的放大、衰減以及阻抗匹配,從而滿足ADC對(duì)輸入信號(hào)的要求。濾波網(wǎng)絡(luò)濾除高頻噪聲和工頻信號(hào)的干擾,增益放大通過(guò)ARM給出的控制信號(hào)實(shí)現(xiàn)對(duì)模擬信號(hào)的不同增益的放大處理。ADS1255負(fù)責(zé)把模擬電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),可以通過(guò)功能選擇設(shè)置ADS1255工作在不同的工作模式下。ADS1255的工作時(shí)鐘由FPGA提供,改變FPGA輸出時(shí)鐘的頻率就能實(shí)現(xiàn)AD采樣率的改變。FPGA并行控制5路AD的數(shù)據(jù)采集,并把采集到的各路數(shù)據(jù)按順序以字節(jié)的形式寫(xiě)入雙口RAM中緩存。FPGA對(duì)雙口RAM的數(shù)據(jù)寫(xiě)入和ARM對(duì)數(shù)據(jù)的讀取是通過(guò)乒乓傳輸結(jié)構(gòu)實(shí)現(xiàn)的。當(dāng)FPGA寫(xiě)滿雙口RAM上半?yún)^(qū)后,向ARM申請(qǐng)中斷,ARM響應(yīng)中斷后,讀出上半?yún)^(qū)數(shù)據(jù)到內(nèi)存中進(jìn)行存儲(chǔ);同時(shí)FPGA向RAM的下半?yún)^(qū)寫(xiě)數(shù)據(jù),寫(xiě)滿下半?yún)^(qū)后也向ARM發(fā)出中斷,通知ARM讀出下半?yún)^(qū)數(shù)據(jù)。通過(guò)乒乓傳輸保證了系統(tǒng)數(shù)據(jù)采樣和數(shù)據(jù)傳輸可以連續(xù)進(jìn)行。
2 FPGA的邏輯設(shè)計(jì)
本方案中的數(shù)據(jù)采集流程如下:系統(tǒng)初始化后,ARM通過(guò)控制信號(hào)把采樣頻率、通道選擇等參數(shù)通知給FPGA,然后FPGA向需要同步采樣的通道對(duì)應(yīng)的AD芯片提供統(tǒng)一時(shí)鐘,使得AD同步地選擇相應(yīng)的通道進(jìn)行數(shù)據(jù)的同步采樣和轉(zhuǎn)換,其結(jié)果由FPGA接收并存儲(chǔ)在雙口RAM對(duì)應(yīng)的存儲(chǔ)空間,然后由ARM從相應(yīng)的雙口RAM空間讀取數(shù)據(jù)進(jìn)行本地存儲(chǔ)或經(jīng)過(guò)網(wǎng)絡(luò)傳輸給上位機(jī)進(jìn)行處理。根據(jù)以上流程以及FPGA要實(shí)現(xiàn)的功能,整個(gè)FPGA邏輯設(shè)計(jì)劃分為通道和采樣率選擇模塊、時(shí)鐘模塊、雙口RAM模塊、AD采樣控制模塊、串并轉(zhuǎn)換模塊、數(shù)據(jù)存儲(chǔ)控制模塊、ARM接口控制模塊。
各模塊連接關(guān)系如圖2所示。
2.1 通道和采樣率選擇模塊
在實(shí)際應(yīng)用中并不是每個(gè)通道都被使用,AD的采樣率也不只一種,所以在通道的控制和采樣率設(shè)置上應(yīng)該具有可選擇性。
通道和采樣率選擇模塊提供2個(gè)8 bit的控制寄存器A和B。如圖3所示,寄存器A的0~4 bit分別對(duì)應(yīng)ADC通道CH0~CH4,5~7 bit保留;寄存器B的8 bit分別對(duì)應(yīng)采樣率FS0~FS7。如果要選擇某幾個(gè)通道,只需將寄存器A中相應(yīng)的位置1,其他位置0,AD采樣控制模塊就會(huì)根據(jù)該寄存器中的內(nèi)容使能相應(yīng)的通道。如果要選擇某一個(gè)采樣頻率,只需把寄存器B中相應(yīng)的位置1,其他位置0,時(shí)鐘模塊會(huì)產(chǎn)生相應(yīng)的時(shí)鐘控制AD的采樣率。在開(kāi)啟數(shù)據(jù)采集之前,ARM應(yīng)根據(jù)所要求的通道和采樣頻率向寄存器A和B寫(xiě)入相應(yīng)命令字。
2.2 時(shí)鐘模塊
本設(shè)計(jì)中外部輸入時(shí)鐘為16.384 MHz。由于設(shè)計(jì)中各個(gè)模塊工作時(shí)鐘的不同以及AD采樣率的變化,所以需要多種不同的時(shí)鐘信號(hào)。時(shí)鐘模塊的功能就是根據(jù)不同采樣率為各個(gè)模塊提供所需的時(shí)鐘信號(hào)。由于該設(shè)計(jì)采用同步時(shí)序電路,它是基于時(shí)鐘觸發(fā)沿設(shè)計(jì),對(duì)時(shí)鐘的周期、占空比、延時(shí)、抖動(dòng)提出了較高的要求,為此本設(shè)計(jì)中采用FPGA所帶的PLL時(shí)鐘資源驅(qū)動(dòng)設(shè)計(jì)的主時(shí)鐘,使其達(dá)到最低的時(shí)鐘抖動(dòng)和延遲。
2.3 雙口RAM模塊
本設(shè)計(jì)中雙口RAM用于數(shù)據(jù)緩存,一方面存儲(chǔ)各個(gè)AD芯片轉(zhuǎn)換的數(shù)據(jù),另一方面供ARM讀取數(shù)據(jù)做進(jìn)一步的存儲(chǔ)與處理。它具有真正的雙端口,可以同時(shí)對(duì)其進(jìn)行數(shù)據(jù)存取,兩個(gè)端口具有獨(dú)立的控制線、地址線和數(shù)據(jù)線。該雙口RAM模塊是通過(guò)調(diào)用Altera FPGA自帶的參數(shù)化模型庫(kù)(Mega-lpm)實(shí)現(xiàn)的。