1、引言
數(shù)據(jù)采集在工業(yè)測控領(lǐng)域里有廣泛的應(yīng)用,它已成為計算機測控系統(tǒng)的一個重要的環(huán)節(jié),尤其在設(shè)備故障監(jiān)測系統(tǒng)中,由于各種設(shè)備的結(jié)構(gòu)復雜,運動形式多種多樣,發(fā)生故障的可能部位很難確定,因此我們需要從設(shè)備的各個部位來提取大量的、連續(xù)的數(shù)據(jù)作為設(shè)備狀態(tài)的信息,以此來分析、判斷設(shè)備是否存在故障,這就需要高速、高性能的數(shù)據(jù)采集系統(tǒng)來保證采集到的數(shù)據(jù)的實時性;同時,我們需要對同一設(shè)備的不同位置的信號進行同步采集,并借助一些手段來提取特征(例如繪制軸心軌跡圖)以判斷設(shè)備的運行狀態(tài)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)設(shè)計中,通常采用單片機或DSP作為主控制器來控制ADC、存儲器及其他相關(guān)的外圍電路來工作。但是這些傳統(tǒng)的設(shè)計中都存在著一些不足,單片機的時鐘頻率較低且通過軟件編程來實現(xiàn)數(shù)據(jù)采集,難以實現(xiàn)高速、高性能、多通道數(shù)據(jù)采集系統(tǒng)的要求;DSP雖然速度快,但是它更擅長處理復雜的數(shù)學運算,對于數(shù)采系統(tǒng)要求的簡單高速的讀寫操作來說,是一種資源的浪費 。而FPGA(現(xiàn)場可編程門陣列)在高速數(shù)據(jù)采集上具有更大的優(yōu)點,F(xiàn)PGA體積小、功耗低、時鐘頻率高、內(nèi)部延時小、全部控制邏輯由硬件完成,另外編程配置靈活、開發(fā)周期短、利用硬件描述語言來編程,可實現(xiàn)程序的并行執(zhí)行、這將會大大提高系統(tǒng)的性能。
2、系統(tǒng)總體方案
在往復式壓縮機狀態(tài)在線監(jiān)測系統(tǒng)中,由于壓縮機結(jié)構(gòu)復雜、零部件多、運動形式各不相同,發(fā)生的故障也就會多種多樣,因此需要對各個部件的多個測點的模擬信號進行實時數(shù)據(jù)采集,同時還要對一些測點周圍不同的位置的信號進行同步采集,這就對信號采集的同步性有嚴格的要求。
多通道的數(shù)據(jù)采集形式有以下幾種:
①各通道模擬信號分別通過信號調(diào)理電路后,由多路開關(guān)選擇后送入1片高速AD轉(zhuǎn)換器件,多路選擇開關(guān)的切換由硬件或軟件控制,從而達到分別轉(zhuǎn)換各通道采來的數(shù)據(jù)。這種方案所需器件少、硬件電路簡單、系統(tǒng)結(jié)構(gòu)小型化,但使用多路開關(guān)會帶來一系列的信號失真問題,且不能實現(xiàn)信號的真實同步采集,這些問題對AD器件和多路開關(guān)都提出了較高的要求。
②各通道模擬信號分別通過信號調(diào)理電路后,送入各自對應(yīng)的AD器件,由系統(tǒng)軟、硬件控制各AD的同步采集。采用多片無差別AD芯片來實現(xiàn)各通道采樣,與常用的模擬多路開關(guān)加單片高速AD芯片,保證了信號采集的同步性和實時性,避免了使用多路開關(guān)帶來的一系列問題如通道切換過程中尖峰電壓的處理、開關(guān)導通電阻的影響以及高頻采樣時噪聲的抑制等。
針對往復式壓縮機在線監(jiān)測系統(tǒng)對多路模擬信號采集的實時性和同步性的要求,提出了一種基于FPGA的多通道數(shù)據(jù)采集的新方案,采用FPGA+ARM相結(jié)合的設(shè)計,采集主控制邏輯用FPGA來實現(xiàn),ARM則用來實現(xiàn)采集數(shù)據(jù)的網(wǎng)絡(luò)傳輸控制。本方案中,F(xiàn)PGA向需要同步采樣的通道對應(yīng)的AD芯片提供統(tǒng)一的時鐘,使得AD同步地選擇相應(yīng)的通道進行數(shù)據(jù)的同步采樣和轉(zhuǎn)換,其結(jié)果由FPGA同步地接收并存儲在外部雙口RAM對應(yīng)的存儲空間,然后由ARM從相應(yīng)的雙口RAM空間讀取數(shù)據(jù),并經(jīng)過網(wǎng)絡(luò)傳輸給上位機進行處理。其數(shù)據(jù)采集系統(tǒng)總體設(shè)計如圖1所示。
該方案將16路信號分為4組,分別對應(yīng)4塊相同的小電路板,每塊小電路板采用4片AD,分別由FPGA控制完成4路信號的采集、轉(zhuǎn)換。4塊小電路板最終插在一塊大的主電路板上,這樣可實現(xiàn)系統(tǒng)小型化的要求。系統(tǒng)外形結(jié)構(gòu)如圖2所示,圖中標號1、2、3、4分別對應(yīng)四塊小的電路板。
3、 系統(tǒng)主要器件的選型
3.1 FPGA芯片的選型及依據(jù)
由于本系統(tǒng)采集通道數(shù)較多,實時性和同步性要求較高,要求提供的時鐘頻率高,內(nèi)部延時小,因此系統(tǒng)選擇Xilinx公司的Spartan3系列XC3S400作為主控制芯片,該芯片具有40萬系統(tǒng)門、8064個邏輯單元內(nèi)嵌18K位塊RAM,包含4個時鐘管理模塊和8個全局時鐘網(wǎng)絡(luò),最大支持264個用戶I/O。這些豐富的片上資源在加上其靈活的編程方式使得該芯片成為最適合的選擇。
3.2 AD芯片的選型及依據(jù)
在本方案中,考慮到系統(tǒng)的分辨率、通道數(shù)、采樣率以及接口等要求,本系統(tǒng)AD芯片選用TI公司的ADS8321[3]。ADS8321是TI公司生產(chǎn)的逐次逼近式串行16位微功耗高速A/D轉(zhuǎn)換器,采樣頻率最高可達100kHz,具有較小的線性度、較低的噪聲和功耗,ADS8321具有同步串行SPI/SSI接口,采用這種串行接口輸出數(shù)據(jù)減小了芯片的體積。
4、 FPGA的邏輯設(shè)計
4.1 FPGA的邏輯設(shè)計思想
本方案中,系統(tǒng)初始化后,首先上位機將采集的參數(shù)信息(采樣長度、采樣頻率、采樣方式、通道選擇、增益倍數(shù)等等)傳送給ARM主控制器,ARM將這些參數(shù)信息存入外部的雙口RAM中,然后FPGA再按照RAM里的采集參數(shù)信息控制執(zhí)行,完成采集任務(wù),當采集完成后,F(xiàn)PGA將采集到的數(shù)據(jù)同步地傳送到雙口RAM對應(yīng)的存儲空間,供ARM來讀取,然后ARM在將讀到的數(shù)據(jù)傳送給上位機。
4.2 FPGA模塊劃分
根據(jù)以上的設(shè)計思想,整個FPGA邏輯模塊劃分為:時鐘邏輯模塊、采樣控制模塊、串并轉(zhuǎn)換模塊、通道選擇模塊、存儲控制模塊、接口控制模塊。下面具體給出各模塊的設(shè)計過程。
①時鐘邏輯模塊。該設(shè)計中,外部輸入的時鐘為50MHz,由于設(shè)計中需要多種不同的時鐘信號,所以必須設(shè)計一個可根據(jù)采集需要任意分頻的時鐘邏輯模塊,且必須準確,才能保證整個系統(tǒng)的正常工作。同時該設(shè)計采用同步時序電路,它是基于時鐘觸發(fā)沿設(shè)計,對時鐘的周期、占空比、延時、抖動提出了更高的要求,為此本設(shè)計中采用FPGA所帶的DCM時鐘資源驅(qū)動設(shè)計的主時鐘,已達到最低的時鐘抖動和延遲。
②采樣控制模塊。該模塊主要負責控制數(shù)據(jù)采樣和AD轉(zhuǎn)換等,在采樣時刻到來時,根據(jù)ADS8321芯片的工作特性,在CS信號的控制下,芯片便按照時序進行采樣、轉(zhuǎn)換,對于ADS8321要注意當16位轉(zhuǎn)換結(jié)果輸出完畢后,置位CS或去掉 DCLOCK脈沖,使結(jié)果僅輸出一次,否則在Dout端會繼續(xù)輸出轉(zhuǎn)換結(jié)果,但此時是反過來由最低位到最高位依次輸出,直到最高位輸出出現(xiàn)重復時,Dout端變成高阻態(tài)。
③串并轉(zhuǎn)換模塊。由于ADS8321時以串行輸出轉(zhuǎn)換結(jié)果的,故需要該模塊來將串行輸出的數(shù)據(jù)轉(zhuǎn)換為并行輸出,該模塊主要采用移位寄存器來實現(xiàn)。
④通道選擇模塊。該模塊用來選擇需要采樣的通道,當ARM主控制器將上位機傳來的通道選擇控制字寫入雙口RAM時,通道選擇模塊根據(jù)該信息來進行通道的選擇,同時,當數(shù)據(jù)采集完畢后,該模塊還為存儲控制模塊提供相應(yīng)的地址信號,以便將對應(yīng)通道采集來的數(shù)據(jù)存入對應(yīng)的空間
⑤存儲控制模塊。雙口RAM用于數(shù)據(jù)緩存,一是存儲各AD芯片轉(zhuǎn)換的數(shù)據(jù),二是存儲ARM主控制器傳來的采集參數(shù)信息。它具有真正的雙端口,可以同時對其進行數(shù)據(jù)存取,兩端口具有獨立的控制線、地址線和數(shù)據(jù)線。該模塊就是根據(jù)雙口RAM讀寫時序?qū)崿F(xiàn)對雙口RAM的讀寫操作,已達到緩存數(shù)據(jù)的目的。
⑥接口控制模塊。該模塊為ARM向FPGA及其雙口RAM進行交互提供橋梁。當ARM向雙口RAM寫入采集參數(shù)信息時,接口模塊要將該信息通知采樣控制模塊;當ARM讀取雙口RAM中的數(shù)據(jù)時,接口模塊對ARM的訪問地址進行譯碼,選中對應(yīng)的存儲空間,取出數(shù)據(jù)。
4.3軟件實現(xiàn)
本設(shè)計采用自頂向下的設(shè)計方法,采用VHDL來分別設(shè)計頂層模塊和各底層模塊,該語言支持自頂向下和基于庫的設(shè)計方法,并且電路仿真和驗證機制以保證設(shè)計的正確性。下面以采樣控制模塊為例來說明其控制算法。
狀態(tài)機是FPGA內(nèi)部的指揮單元,它按照固定的節(jié)拍往復的運行,本采樣控制模塊利用狀態(tài)機來設(shè)計,根據(jù)ADS8321的工作時序,將狀態(tài)機分為4個狀態(tài)周期,分別是建立周期、采樣周期、轉(zhuǎn)換周期、省電模式周期,其狀態(tài)流程如圖3所示。
5 、結(jié)束語
本文作者創(chuàng)新點是采用FPGA和ARM相結(jié)合的設(shè)計方法完成高速、多通道、實時的數(shù)據(jù)采集以及數(shù)據(jù)的網(wǎng)絡(luò)傳輸并采用VHDL編程來實現(xiàn)FPGA各邏輯模塊的功能。本設(shè)計已通過Modelsim進行的功能仿真和時序仿真,并在Xilinx提供的ISE集成的環(huán)境下進行編譯、綜合、優(yōu)化、布局布線,并成功的下載到FPGA芯片中。通過對實際信號的采集、測試,系統(tǒng)工作正常,驗證了設(shè)計結(jié)構(gòu)的合理性,因此是一種比較理想的數(shù)據(jù)采集方案。
責任編輯:gt
評論
查看更多