1、引言
數(shù)據(jù)采集在工業(yè)測(cè)控領(lǐng)域里有廣泛的應(yīng)用,它已成為計(jì)算機(jī)測(cè)控系統(tǒng)的一個(gè)重要的環(huán)節(jié),尤其在設(shè)備故障監(jiān)測(cè)系統(tǒng)中,由于各種設(shè)備的結(jié)構(gòu)復(fù)雜,運(yùn)動(dòng)形式多種多樣,發(fā)生故障的可能部位很難確定,因此我們需要從設(shè)備的各個(gè)部位來(lái)提取大量的、連續(xù)的數(shù)據(jù)作為設(shè)備狀態(tài)的信息,以此來(lái)分析、判斷設(shè)備是否存在故障,這就需要高速、高性能的數(shù)據(jù)采集系統(tǒng)來(lái)保證采集到的數(shù)據(jù)的實(shí)時(shí)性;同時(shí),我們需要對(duì)同一設(shè)備的不同位置的信號(hào)進(jìn)行同步采集,并借助一些手段來(lái)提取特征(例如繪制軸心軌跡圖)以判斷設(shè)備的運(yùn)行狀態(tài)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中,通常采用單片機(jī)或DSP作為主控制器來(lái)控制ADC、存儲(chǔ)器及其他相關(guān)的外圍電路來(lái)工作。但是這些傳統(tǒng)的設(shè)計(jì)中都存在著一些不足,單片機(jī)的時(shí)鐘頻率較低且通過(guò)軟件編程來(lái)實(shí)現(xiàn)數(shù)據(jù)采集,難以實(shí)現(xiàn)高速、高性能、多通道數(shù)據(jù)采集系統(tǒng)的要求;DSP雖然速度快,但是它更擅長(zhǎng)處理復(fù)雜的數(shù)學(xué)運(yùn)算,對(duì)于數(shù)采系統(tǒng)要求的簡(jiǎn)單高速的讀寫(xiě)操作來(lái)說(shuō),是一種資源的浪費(fèi) 。而FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)在高速數(shù)據(jù)采集上具有更大的優(yōu)點(diǎn),F(xiàn)PGA體積小、功耗低、時(shí)鐘頻率高、內(nèi)部延時(shí)小、全部控制邏輯由硬件完成,另外編程配置靈活、開(kāi)發(fā)周期短、利用硬件描述語(yǔ)言來(lái)編程,可實(shí)現(xiàn)程序的并行執(zhí)行、這將會(huì)大大提高系統(tǒng)的性能。
2、系統(tǒng)總體方案
在往復(fù)式壓縮機(jī)狀態(tài)在線(xiàn)監(jiān)測(cè)系統(tǒng)中,由于壓縮機(jī)結(jié)構(gòu)復(fù)雜、零部件多、運(yùn)動(dòng)形式各不相同,發(fā)生的故障也就會(huì)多種多樣,因此需要對(duì)各個(gè)部件的多個(gè)測(cè)點(diǎn)的模擬信號(hào)進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,同時(shí)還要對(duì)一些測(cè)點(diǎn)周?chē)煌奈恢玫男盘?hào)進(jìn)行同步采集,這就對(duì)信號(hào)采集的同步性有嚴(yán)格的要求。
多通道的數(shù)據(jù)采集形式有以下幾種:
①各通道模擬信號(hào)分別通過(guò)信號(hào)調(diào)理電路后,由多路開(kāi)關(guān)選擇后送入1片高速AD轉(zhuǎn)換器件,多路選擇開(kāi)關(guān)的切換由硬件或軟件控制,從而達(dá)到分別轉(zhuǎn)換各通道采來(lái)的數(shù)據(jù)。這種方案所需器件少、硬件電路簡(jiǎn)單、系統(tǒng)結(jié)構(gòu)小型化,但使用多路開(kāi)關(guān)會(huì)帶來(lái)一系列的信號(hào)失真問(wèn)題,且不能實(shí)現(xiàn)信號(hào)的真實(shí)同步采集,這些問(wèn)題對(duì)AD器件和多路開(kāi)關(guān)都提出了較高的要求。
②各通道模擬信號(hào)分別通過(guò)信號(hào)調(diào)理電路后,送入各自對(duì)應(yīng)的AD器件,由系統(tǒng)軟、硬件控制各AD的同步采集。采用多片無(wú)差別AD芯片來(lái)實(shí)現(xiàn)各通道采樣,與常用的模擬多路開(kāi)關(guān)加單片高速AD芯片,保證了信號(hào)采集的同步性和實(shí)時(shí)性,避免了使用多路開(kāi)關(guān)帶來(lái)的一系列問(wèn)題如通道切換過(guò)程中尖峰電壓的處理、開(kāi)關(guān)導(dǎo)通電阻的影響以及高頻采樣時(shí)噪聲的抑制等。
針對(duì)往復(fù)式壓縮機(jī)在線(xiàn)監(jiān)測(cè)系統(tǒng)對(duì)多路模擬信號(hào)采集的實(shí)時(shí)性和同步性的要求,提出了一種基于FPGA的多通道數(shù)據(jù)采集的新方案,采用FPGA+ARM相結(jié)合的設(shè)計(jì),采集主控制邏輯用FPGA來(lái)實(shí)現(xiàn),ARM則用來(lái)實(shí)現(xiàn)采集數(shù)據(jù)的網(wǎng)絡(luò)傳輸控制。本方案中,F(xiàn)PGA向需要同步采樣的通道對(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īng)過(guò)網(wǎng)絡(luò)傳輸給上位機(jī)進(jìn)行處理。其數(shù)據(jù)采集系統(tǒng)總體設(shè)計(jì)如圖1所示。

該方案將16路信號(hào)分為4組,分別對(duì)應(yīng)4塊相同的小電路板,每塊小電路板采用4片AD,分別由FPGA控制完成4路信號(hào)的采集、轉(zhuǎn)換。4塊小電路板最終插在一塊大的主電路板上,這樣可實(shí)現(xiàn)系統(tǒng)小型化的要求。系統(tǒng)外形結(jié)構(gòu)如圖2所示,圖中標(biāo)號(hào)1、2、3、4分別對(duì)應(yīng)四塊小的電路板。

3、 系統(tǒng)主要器件的選型
3.1 FPGA芯片的選型及依據(jù)
由于本系統(tǒng)采集通道數(shù)較多,實(shí)時(shí)性和同步性要求較高,要求提供的時(shí)鐘頻率高,內(nèi)部延時(shí)小,因此系統(tǒng)選擇Xilinx公司的Spartan3系列XC3S400作為主控制芯片,該芯片具有40萬(wàn)系統(tǒng)門(mén)、8064個(gè)邏輯單元內(nèi)嵌18K位塊RAM,包含4個(gè)時(shí)鐘管理模塊和8個(gè)全局時(shí)鐘網(wǎng)絡(luò),最大支持264個(gè)用戶(hù)I/O。這些豐富的片上資源在加上其靈活的編程方式使得該芯片成為最適合的選擇。
3.2 AD芯片的選型及依據(jù)
在本方案中,考慮到系統(tǒng)的分辨率、通道數(shù)、采樣率以及接口等要求,本系統(tǒng)AD芯片選用TI公司的ADS8321[3]。ADS8321是TI公司生產(chǎn)的逐次逼近式串行16位微功耗高速A/D轉(zhuǎn)換器,采樣頻率最高可達(dá)100kHz,具有較小的線(xiàn)性度、較低的噪聲和功耗,ADS8321具有同步串行SPI/SSI接口,采用這種串行接口輸出數(shù)據(jù)減小了芯片的體積。
4、 FPGA的邏輯設(shè)計(jì)
4.1 FPGA的邏輯設(shè)計(jì)思想
本方案中,系統(tǒng)初始化后,首先上位機(jī)將采集的參數(shù)信息(采樣長(zhǎng)度、采樣頻率、采樣方式、通道選擇、增益倍數(shù)等等)傳送給ARM主控制器,ARM將這些參數(shù)信息存入外部的雙口RAM中,然后FPGA再按照RAM里的采集參數(shù)信息控制執(zhí)行,完成采集任務(wù),當(dāng)采集完成后,F(xiàn)PGA將采集到的數(shù)據(jù)同步地傳送到雙口RAM對(duì)應(yīng)的存儲(chǔ)空間,供ARM來(lái)讀取,然后ARM在將讀到的數(shù)據(jù)傳送給上位機(jī)。
4.2 FPGA模塊劃分
根據(jù)以上的設(shè)計(jì)思想,整個(gè)FPGA邏輯模塊劃分為:時(shí)鐘邏輯模塊、采樣控制模塊、串并轉(zhuǎn)換模塊、通道選擇模塊、存儲(chǔ)控制模塊、接口控制模塊。下面具體給出各模塊的設(shè)計(jì)過(guò)程。
①時(shí)鐘邏輯模塊。該設(shè)計(jì)中,外部輸入的時(shí)鐘為50MHz,由于設(shè)計(jì)中需要多種不同的時(shí)鐘信號(hào),所以必須設(shè)計(jì)一個(gè)可根據(jù)采集需要任意分頻的時(shí)鐘邏輯模塊,且必須準(zhǔn)確,才能保證整個(gè)系統(tǒng)的正常工作。同時(shí)該設(shè)計(jì)采用同步時(shí)序電路,它是基于時(shí)鐘觸發(fā)沿設(shè)計(jì),對(duì)時(shí)鐘的周期、占空比、延時(shí)、抖動(dòng)提出了更高的要求,為此本設(shè)計(jì)中采用FPGA所帶的DCM時(shí)鐘資源驅(qū)動(dòng)設(shè)計(jì)的主時(shí)鐘,已達(dá)到最低的時(shí)鐘抖動(dòng)和延遲。
②采樣控制模塊。該模塊主要負(fù)責(zé)控制數(shù)據(jù)采樣和AD轉(zhuǎn)換等,在采樣時(shí)刻到來(lái)時(shí),根據(jù)ADS8321芯片的工作特性,在CS信號(hào)的控制下,芯片便按照時(shí)序進(jìn)行采樣、轉(zhuǎn)換,對(duì)于ADS8321要注意當(dāng)16位轉(zhuǎn)換結(jié)果輸出完畢后,置位CS或去掉 DCLOCK脈沖,使結(jié)果僅輸出一次,否則在Dout端會(huì)繼續(xù)輸出轉(zhuǎn)換結(jié)果,但此時(shí)是反過(guò)來(lái)由最低位到最高位依次輸出,直到最高位輸出出現(xiàn)重復(fù)時(shí),Dout端變成高阻態(tài)。
③串并轉(zhuǎn)換模塊。由于ADS8321時(shí)以串行輸出轉(zhuǎn)換結(jié)果的,故需要該模塊來(lái)將串行輸出的數(shù)據(jù)轉(zhuǎn)換為并行輸出,該模塊主要采用移位寄存器來(lái)實(shí)現(xiàn)。
④通道選擇模塊。該模塊用來(lái)選擇需要采樣的通道,當(dāng)ARM主控制器將上位機(jī)傳來(lái)的通道選擇控制字寫(xiě)入雙口RAM時(shí),通道選擇模塊根據(jù)該信息來(lái)進(jìn)行通道的選擇,同時(shí),當(dāng)數(shù)據(jù)采集完畢后,該模塊還為存儲(chǔ)控制模塊提供相應(yīng)的地址信號(hào),以便將對(duì)應(yīng)通道采集來(lái)的數(shù)據(jù)存入對(duì)應(yīng)的空間
⑤存儲(chǔ)控制模塊。雙口RAM用于數(shù)據(jù)緩存,一是存儲(chǔ)各AD芯片轉(zhuǎn)換的數(shù)據(jù),二是存儲(chǔ)ARM主控制器傳來(lái)的采集參數(shù)信息。它具有真正的雙端口,可以同時(shí)對(duì)其進(jìn)行數(shù)據(jù)存取,兩端口具有獨(dú)立的控制線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn)。該模塊就是根據(jù)雙口RAM讀寫(xiě)時(shí)序?qū)崿F(xiàn)對(duì)雙口RAM的讀寫(xiě)操作,已達(dá)到緩存數(shù)據(jù)的目的。
⑥接口控制模塊。該模塊為ARM向FPGA及其雙口RAM進(jìn)行交互提供橋梁。當(dāng)ARM向雙口RAM寫(xiě)入采集參數(shù)信息時(shí),接口模塊要將該信息通知采樣控制模塊;當(dāng)ARM讀取雙口RAM中的數(shù)據(jù)時(shí),接口模塊對(duì)ARM的訪(fǎng)問(wèn)地址進(jìn)行譯碼,選中對(duì)應(yīng)的存儲(chǔ)空間,取出數(shù)據(jù)。
4.3軟件實(shí)現(xiàn)
本設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,采用VHDL來(lái)分別設(shè)計(jì)頂層模塊和各底層模塊,該語(yǔ)言支持自頂向下和基于庫(kù)的設(shè)計(jì)方法,并且電路仿真和驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性。下面以采樣控制模塊為例來(lái)說(shuō)明其控制算法。
狀態(tài)機(jī)是FPGA內(nèi)部的指揮單元,它按照固定的節(jié)拍往復(fù)的運(yùn)行,本采樣控制模塊利用狀態(tài)機(jī)來(lái)設(shè)計(jì),根據(jù)ADS8321的工作時(shí)序,將狀態(tài)機(jī)分為4個(gè)狀態(tài)周期,分別是建立周期、采樣周期、轉(zhuǎn)換周期、省電模式周期,其狀態(tài)流程如圖3所示。

5 、結(jié)束語(yǔ)
本文作者創(chuàng)新點(diǎn)是采用FPGA和ARM相結(jié)合的設(shè)計(jì)方法完成高速、多通道、實(shí)時(shí)的數(shù)據(jù)采集以及數(shù)據(jù)的網(wǎng)絡(luò)傳輸并采用VHDL編程來(lái)實(shí)現(xiàn)FPGA各邏輯模塊的功能。本設(shè)計(jì)已通過(guò)Modelsim進(jìn)行的功能仿真和時(shí)序仿真,并在Xilinx提供的ISE集成的環(huán)境下進(jìn)行編譯、綜合、優(yōu)化、布局布線(xiàn),并成功的下載到FPGA芯片中。通過(guò)對(duì)實(shí)際信號(hào)的采集、測(cè)試,系統(tǒng)工作正常,驗(yàn)證了設(shè)計(jì)結(jié)構(gòu)的合理性,因此是一種比較理想的數(shù)據(jù)采集方案。
責(zé)任編輯:gt
電子發(fā)燒友App



















評(píng)論