楊小平1,,李永紅1,劉志剛1,2,,嚴洪立1,,李率真1
(1.成都信息工程大學(xué) 電子工程學(xué)院,,四川 成都 610225,;2.杭州旗捷科技有限公司,浙江 杭州310000)
摘要:提出了一種以FPGA和ARM處理器為核心的嵌入式多通道高速采集及脈沖提取系統(tǒng)設(shè)計的新方法,。該系統(tǒng)主要應(yīng)用于電力設(shè)備局部放電檢測,,監(jiān)測電力設(shè)備運行情況,。系統(tǒng)主要實現(xiàn)用3種工作模式(正常工作模式、長記錄模式和觸發(fā)模式)實時采集,、處理電信號,,并根據(jù)采樣后得到的數(shù)據(jù)和脈沖波形來判斷被測信號是否正常工作。整個采集系統(tǒng)可實現(xiàn)100 MS/s的高速采樣,,具有穩(wěn)定性高,、實時性強、易于擴展,、便于攜帶等特點,。
關(guān)鍵詞:多通道高速采集;脈沖提??;FPGA
0引言
數(shù)據(jù)采集,尤其是高速數(shù)據(jù)采集,,在工業(yè)自動化控制,、醫(yī)療器械、室內(nèi)環(huán)境監(jiān)測和軍事監(jiān)控等領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用,。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng),通常是以單片機或者DSP為核心控制器,,實現(xiàn)對數(shù)據(jù)信息的采集,。隨著信息科技的發(fā)展,大眾對信息數(shù)據(jù)的實時性,、穩(wěn)定性等要求越來越高,。而單片機的時鐘頻率較低、速度較慢并且軟件采用順序?qū)崿F(xiàn)模式,,從而使得數(shù)據(jù)采集速度低,,進而影響整個系統(tǒng)的效率。雖然DSP有較高的運算處理速度,,然而它很難完成對復(fù)雜外圍器件的控制,。而FPGA(現(xiàn)場可編程門陣列)有單片機和DSP難以超越的優(yōu)勢,F(xiàn)PGA時鐘頻率高,、內(nèi)部延時小,、集成度高、全部控制邏輯由硬件完成,、速度快,、效率高[1]。
考慮到FPGA的諸多優(yōu)勢,,本文提出了一種以FPGA和ARM處理器為核心的嵌入式多通道高速采集及脈沖提取系統(tǒng)設(shè)計方案,。系統(tǒng)有觸摸屏LCD和顯示器兩種顯示和下發(fā)配置命令方式,。將該方案應(yīng)用于電力設(shè)備局部放電檢測,通過采集和提取有效脈沖來實時監(jiān)測電力設(shè)備的工作狀態(tài),。這一設(shè)計對安全用電及電力行業(yè)有重大的實用價值,。
1系統(tǒng)總體結(jié)構(gòu)
本數(shù)據(jù)采集系統(tǒng)基于FPGA+ARM架構(gòu)。FPGA(XC6SLX75)外圍電路主要包括一個四通道100 MS/s采樣率,、串行差分輸入輸出的AD(ADS6424),,一片ARM(AM3359)控制器和一片DDR2(MT47H128M16)128 MB地址空間的存儲器,用于存儲采樣數(shù)據(jù)[2],。如圖1所示,。
圖1中,S1~S4為4路模擬信號輸入端,,為了得到較準確的脈沖信號,,本設(shè)計使S1~S3作為信號輸入端,S4作為噪聲信號輸入端,,通過前3路和第4路的比較進而有效地濾除噪聲,。TTL信號作為相位信息,F(xiàn)PGA需要檢測是否有該同步信號并通知ARM,。A/D轉(zhuǎn)換器前端的信號調(diào)理用來實現(xiàn)對輸入模擬信號的放大,、衰減、濾波及輸入阻抗匹配,,從而達到AD將模擬信號轉(zhuǎn)換成數(shù)字信號的要求,。系統(tǒng)工作過程為:首先PC下發(fā)命令指令經(jīng)ARM送到FPGA,配置FPGA的工作模式,、采樣率等,;其次,AD將轉(zhuǎn)換后的數(shù)字信號送給FPGA,,F(xiàn)PGA經(jīng)過運算處理提取有效脈沖信號存儲到DDR2中,,然后向ARM發(fā)中斷命令,ARM通過GPMC總線提取DDR2中的數(shù)據(jù),;最后ARM通過網(wǎng)絡(luò)或USB將數(shù)據(jù)傳輸給PC顯示[3],。
2方案實現(xiàn)
2.1FPGA設(shè)計
FPGA設(shè)計流程:系統(tǒng)上電后,F(xiàn)PGA首先初始化配置ADS6424芯片,,然后將AD轉(zhuǎn)換后的數(shù)據(jù)由串行轉(zhuǎn)為并行再經(jīng)過相應(yīng)的算法處理得到有效的脈沖,,將得到的脈沖存儲在DDR2中,再通過GPMC總線接口送給ARM,。ARM控制器負責與用戶上位機程序通過網(wǎng)口或USB進行通信,,給FPGA下達控制指令。根據(jù)上述流程以及FPGA要實現(xiàn)的功能,,整個FPGA邏輯設(shè)計可劃分為5個模塊,,分別為ADC初始化模塊Ad_init,;ADC數(shù)據(jù)接收模塊Data_rec;ARM接口模塊 Gpmc_inst,;數(shù)據(jù)處理模塊Data_prc,;數(shù)據(jù)存儲模塊Data_str。如圖2所示,。
2.1.1ADC初始化模塊Ad_init
ADC初始化模塊用于對ADS6424芯片進行復(fù)位及初始化配置來滿足AD正常工作,,該模塊只在上電時或者系統(tǒng)復(fù)位時調(diào)用一次,并與Data_rec模塊協(xié)調(diào)工作用于600 Mb/s串行數(shù)據(jù)的低壓差分信號(LVDS)數(shù)據(jù)對位,。
2.1.2數(shù)據(jù)輸入模塊Data_rec
數(shù)據(jù)輸入模塊接收ADC輸入的串行數(shù)據(jù)和時鐘,,并將4路AD差分串行數(shù)據(jù)經(jīng)SERDES(串并轉(zhuǎn)換器)轉(zhuǎn)換為并行數(shù)據(jù)發(fā)送給Data_prc模塊。Data_rec模塊與Data_prc模塊之間有FIFO用于同步AD采樣的100 MHz時鐘和FPGA內(nèi)部處理數(shù)據(jù)的100 MHz時鐘,。
2.1.3數(shù)據(jù)處理模塊Data_prc
數(shù)據(jù)處理模塊內(nèi)部包含3個子模塊,,分別用于三種工作狀態(tài),各種工作狀態(tài)的數(shù)據(jù)和控制信號獨立,,接口根據(jù)工作狀態(tài)選擇異步開關(guān)進行切換,。
(1)正常工作狀態(tài),。正常工作情況下抗干擾脈沖提取算法如下:
?、俑鶕?jù)設(shè)置的閾值做背景噪聲的濾除;
②根據(jù)與噪聲通道的比較判斷是有用信號還是噪聲;
?、叟袛嗍欠袷欠讲ㄐ盘?,如果是方波信號則去除;
④將提取出的有用脈沖段及相位信息上傳給ARM,。
具體說明:根據(jù)設(shè)置的閾值得到脈沖1~3,,對得到的脈沖段與噪聲通道做比較,,只比較同相位的值,,如果信號通道的值大于噪聲通道的值,則認為是有用信號,,否則是噪聲,,需要被濾除。如圖3所示,,脈沖3的信號通道的值小于噪聲通道,,需要被濾除。如果脈沖是方波,,如脈沖2,,也要被濾除。對提取出的有用的脈沖段如脈沖1,,在傳輸至ARM時需要做如下處理:從第一個過閾值的點向前取55個點,,向后取200個點,,共取256個點,這樣保證取出來的脈沖段是一個完整的脈沖段[45],。
?。?)長時間記錄。系統(tǒng)啟動后,根據(jù)輸入的時鐘和寫使能寫DDR2,將對應(yīng)通道的AD采集數(shù)據(jù)輸入到FPGA,,并對數(shù)據(jù)點數(shù)進行計數(shù),,達到30兆個數(shù)據(jù)點則停止存儲,并向ARM發(fā)送中斷信號,。長記錄模式根據(jù)設(shè)置的采樣率和采樣時間,,將采集到的點不做任何處理上傳給ARM,再通過ARM經(jīng)由網(wǎng)絡(luò)上傳至PC,,PC設(shè)置相關(guān)通道的閾值,。長記錄采集模式的目的是得到各通道的背景噪聲值,方便設(shè)置閾值,。
?。?)觸發(fā)記錄。系統(tǒng)啟動后,根據(jù)輸入的時鐘和寫使能寫DDR2,達到一個時間長度則進行循環(huán)存儲,。將輸入的數(shù)據(jù)進行逐點判斷,,當達到觸發(fā)條件時,計算出讀取DDR2的首地址,并根據(jù)剩余采樣點數(shù)進行計數(shù),,達到采樣點數(shù)后則停止存儲,并向ARM發(fā)送中斷信號,。
2.1.4指令解析模塊Gpmc_inst
采用100 MHz時鐘對ARM的Gpmc接口進行鎖存,解析ARM的輸入指令,,并根據(jù)讀信號和地址信號返回寄存器的狀態(tài)值,,或者DDR2存儲器內(nèi)的數(shù)據(jù)。通過這個模塊與ARM進行通信,。
2.1.5數(shù)據(jù)存儲模塊Data_str
該模塊負責DDR2存儲器的讀寫,,采用MPMC的IP核,通過NPI接口進行控制,,將輸入的16 bit數(shù)據(jù)字拼接成64 bit寬度寫入DDR2存儲器,,輸出時根據(jù)讀使能信號取出DDR2中的數(shù)據(jù),并將64 bit的數(shù)據(jù)拆成4個16 bit數(shù)據(jù),,按照順序輸出,。數(shù)據(jù)存儲模塊沒有地址輸入接口,其內(nèi)部只是簡單的地址遞加,,當復(fù)位后,,地址歸零。
2.2ARM設(shè)計
在該設(shè)計中ARM主要有兩個作用,,一是擔當中間件,,承上啟下,,一方面接收PC命令,協(xié)議解析后配置給FPGA,,另一方面將FPGA傳過來的數(shù)據(jù),,打包上傳給PC。傳輸支持USB和網(wǎng)絡(luò)兩種方式,,USB包和UDP包采用相同的應(yīng)用層協(xié)議,。另一個是在不用PC的情況下,ARM作為上位機通過智能觸摸屏LCD顯示器下發(fā)命令配置FPGA,,且FPGA也將采集到的數(shù)據(jù)和有效脈沖上傳給ARM,,做相應(yīng)的處理后通過LCD呈現(xiàn)。
2.2.1硬件部分
ARM部分結(jié)構(gòu)如圖4所示,。本設(shè)計采用兩種ARM啟動方式,,一種是從SD卡啟動,另一種是從NandFlash啟動,,兩種方式可通過撥碼開關(guān)切換,。GPMC接口主要是連接FPGA和ARM,使其順利通信,;DDR2起緩存數(shù)據(jù)作用,;NandFlash用于存儲系統(tǒng)及應(yīng)用文件等;ARM支持網(wǎng)口和USB1兩種方式與PC通信,;USB2用于連接U盤將數(shù)據(jù)導(dǎo)出,;觸摸屏LCD主要用于顯示波形和下發(fā)指令;預(yù)留RS485,、RS422用于后期擴展功能[6],。
2.2.2應(yīng)用部分
用QT(跨平臺的C++應(yīng)用程序開發(fā)框架)開發(fā)設(shè)計GUI(圖形用戶界面),界面主要包括配置FPGA各種工作模式、設(shè)置采樣參數(shù)以及顯示有效脈沖等,。如圖5所示,。
3結(jié)論
本文給出了一種以FPGA+ARM處理器為核心的嵌入式多通道高速采集及脈沖提取系統(tǒng)設(shè)計的新方法,詳細闡述了系統(tǒng)設(shè)計流程和工作模式,。經(jīng)過長時間的測試和檢測,,該系統(tǒng)可以實現(xiàn)數(shù)據(jù)的高速多通道采集及脈沖的提取,。此設(shè)備可以應(yīng)用于多種相關(guān)數(shù)據(jù)采集及分析的場合,,有觸摸屏LCD和顯示器兩種顯示方式,具有穩(wěn)定性高,、實時性強,、易于擴展、便于攜帶的特點,。目前,,該設(shè)備已應(yīng)用于電力設(shè)備局部放電檢測,可以實現(xiàn)二維圖形顯示,,后續(xù)將開發(fā)三維圖形顯示應(yīng)用。
參考文獻
?。?] 張偉,,韓一明,吳新玲.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電力情報,,2002,4(3):4649.
?。?] 滕巖峰,周雪峰.帶USB 接口的100MHz高速數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機信息,,2006,,22(20):227229.
[3] 劉小林,,范育兵,,羅春暉.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009,,35(7):4244.
?。?] 徐文波,田耘.Xilinx FPGA開發(fā)使用教程(第2版)[M].北京:清華大學(xué)出版社,,2012.
?。?] 李宗海,陳蜀宇,,李海偉.嵌入式Linux系統(tǒng)在ARM平臺上的構(gòu)建[J].計算機系統(tǒng)應(yīng)用,,2010,19(10):153157.
[6] CORBET J, RUBINI A.Linux設(shè)備驅(qū)動程序(第三版)[M].魏永明,,耿岳,,鐘書毅,譯.北京:中國電力出版社,,2006.