大地電磁場(chǎng)攜帶著(zhù)地球內部的結構、構造、溫度、壓力以及物質(zhì)成分的物理狀態(tài)等信息,為人們研究板塊運動(dòng)的規律、追溯地球的演化歷史提供了科學(xué)依據。大地電磁探測是研究大陸巖石圈導電性結構的有效方法之一,使人們從電性角度認識地球內部的構造形態(tài),達到了解地下不同深度地質(zhì)情況的目的。該技術(shù)應用前景廣泛,可用于地下更深層找礦、找水、找油、監測海底潛艇等,對國民經(jīng)濟和國防的發(fā)展都有重要的推動(dòng)作用。 最常用的數據采集方案多以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所示。 2.1 通道和采樣率選擇模塊 在實(shí)際應用中并不是每個(gè)通道都被使用,AD的采樣率也不只一種,所以在通道的控制和采樣率設置上應該具有可選擇性。 通道和采樣率選擇模塊提供2個(gè)8 bit的控制寄存器A和B。如圖3所示,寄存器A的0~4 bit分別對應ADC通道CH0~CH4,5~7 bit保留;寄存器B的8 bit分別對應采樣率FS0~FS7。如果要選擇某幾個(gè)通道,只需將寄存器A中相應的位置1,其他位置0,AD采樣控制模塊就會(huì )根據該寄存器中的內容使能相應的通道。如果要選擇某一個(gè)采樣頻率,只需把寄存器B中相應的位置1,其他位置0,時(shí)鐘模塊會(huì )產(chǎn)生相應的時(shí)鐘控制AD的采樣率。在開(kāi)啟數據采集之前,ARM應根據所要求的通道和采樣頻率向寄存器A和B寫(xiě)入相應命令字。 2.2 時(shí)鐘模塊 本設計中外部輸入時(shí)鐘為16.384 MHz。由于設計中各個(gè)模塊工作時(shí)鐘的不同以及AD采樣率的變化,所以需要多種不同的時(shí)鐘信號。時(shí)鐘模塊的功能就是根據不同采樣率為各個(gè)模塊提供所需的時(shí)鐘信號。由于該設計采用同步時(shí)序電路,它是基于時(shí)鐘觸發(fā)沿設計,對時(shí)鐘的周期、占空比、延時(shí)、抖動(dòng)提出了較高的要求,為此本設計中采用FPGA所帶的PLL時(shí)鐘資源驅動(dòng)設計的主時(shí)鐘,使其達到最低的時(shí)鐘抖動(dòng)和延遲。 2.3 雙口RAM模塊 本設計中雙口RAM用于數據緩存,一方面存儲各個(gè)AD芯片轉換的數據,另一方面供ARM讀取數據做進(jìn)一步的存儲與處理。它具有真正的雙端口,可以同時(shí)對其進(jìn)行數據存取,兩個(gè)端口具有獨立的控制線(xiàn)、地址線(xiàn)和數據線(xiàn)。該雙口RAM模塊是通過(guò)調用Altera FPGA自帶的參數化模型庫(Mega-lpm)實(shí)現的。 2.4 A/D采樣控制模塊 A/D采樣控制模塊的主要任務(wù)就是根據ADS1255的轉換時(shí)序圖,在其芯片的引腳發(fā)出相應的時(shí)序控制信號,使ADS1255完成啟動(dòng)、配置和數據讀取等操作。ADS1255的控制操作如下:首先設置ADS1255的參數配置,讀數據模,然后啟動(dòng)轉換,通過(guò)查詢(xún)ADS1255的DRDY信號判斷是否轉換完成,轉換結束后將數據按bit順序讀出。同時(shí)將數據輸出給串并轉換模塊,完成一次A/D轉換操作。采樣控制模塊每完成一次采樣操作,則停止等待下一個(gè)觸發(fā)脈沖的到來(lái)。 這一控制過(guò)程通過(guò)狀態(tài)機實(shí)現。圖4給出了該A/D轉換控制模塊的狀態(tài)轉換圖。當數據采集啟動(dòng)信號START為高電平時(shí),狀態(tài)機啟動(dòng)。 狀態(tài)機的各個(gè)狀態(tài)描述如下: (1)conv_init:狀態(tài)機的初始狀態(tài)。 (2)mode_set:設置ADS1255內部的控制寄存器。 (3)conv_start:?jiǎn)?dòng)A/D轉換。 (4)conv_wait:等待A/D轉換結束。如果轉換結束則進(jìn)入下一狀態(tài),否則將繼續保持在該狀態(tài)。 (5)conv_read:A/D轉換結束后讀出每個(gè)bit信息,同時(shí)使能移位寄存器進(jìn)行串并轉換。 (6)read_next:判斷數據是否讀完。如果沒(méi)有返回conv_read狀態(tài),否則進(jìn)入下一狀態(tài)。 (7)conv_next:判斷是否需要繼續轉換數據。如果沒(méi)有就進(jìn)入下一狀態(tài),否則返回conv_start狀態(tài)。 (8)cony_end:表示本次采樣任務(wù)結束。狀態(tài)機保持在該狀態(tài),直到采樣啟動(dòng)脈沖觸發(fā)重新開(kāi)始新的一次采樣任務(wù),狀態(tài)機復位到conv_init狀態(tài)。 2.5 串并轉換模塊 由于A(yíng)DS1255是以串行輸出轉換結果的,故需要該模塊將串行輸出的數據轉換為井行輸出。該模塊主要采用移位寄存器來(lái)實(shí)現,其移位控制信號由AD采樣控制模塊提供。 2.6 數據存儲控制模塊 該模塊的作用是將5通道24 bit經(jīng)過(guò)串并轉換的采樣數據按通道順序,以從低字節到高字節的次序,一個(gè)一個(gè)字節將其寫(xiě)入雙口RAM中,實(shí)際上相當于一個(gè)字節意義上的并串轉換。該模塊輸入為5路采樣數據reg24Data_0~4,dataF為輸出的字節數據,wrenF為雙口RAM的寫(xiě)控制信號。圖5是一個(gè)五通道數據存儲的仿真示意圖。輸入數據值分別為0x030201、0x060504、0x090807、0x121110、0x151413,輸出字節數據為01~15,同時(shí)使能寫(xiě)RAM,滿(mǎn)足設計要求。 2.7 ARM接口控制模塊 該模塊為ARM與FPGA及其雙口RAM交互提供橋梁。當ARM向控制寄存器寫(xiě)入采集參數信息時(shí),接口模塊要將該信息通知通道和采樣率選擇模塊;當ARM讀取雙口RAM中的數據時(shí),接口模塊對ARM的訪(fǎng)問(wèn)地址進(jìn)行譯碼,選中對應的存儲空間取出數據。 本文采用FPGA和ARM結合設計,很好地完成了多通道高精度的數據采集與處理,并且還詳細介紹了FPGA邏輯的設計方法。FPGA邏輯通過(guò)硬件描述語(yǔ)言Verilog實(shí)現,已應用到磁數據采集系統中。本方案設計靈活,能很容易地擴展為更多路的數據采集,也能很容易地修改為與其他的A/D轉換芯片接口。所以該方案可根據不同的應用進(jìn)行擴展,進(jìn)一步增強了系統應用的靈活性。 |