褚建平,甄國涌*,劉東海
(1.中北大學(xué)電子測試技術(shù)國家重點實驗室,太原 030051,2.太原市華納方盛科技有限公司,太原 030051)
基于FPGA和DSP的遙測數(shù)據(jù)實時譜分析卡設(shè)計
褚建平1,甄國涌1*,劉東海2
(1.中北大學(xué)電子測試技術(shù)國家重點實驗室,太原 030051,2.太原市華納方盛科技有限公司,太原 030051)
為了實時分析遙測數(shù)據(jù)單位頻帶內(nèi)譜信息隨頻率的變化情況,設(shè)計了一種遙測數(shù)據(jù)實時譜分析卡。設(shè)計采用FPGA+DSP系統(tǒng)架構(gòu),配合流水線作業(yè)的設(shè)計理念。振動信號功率譜密度(PSD)計算采用快速傅里葉變換法(FFT),沖擊信號沖擊響應(yīng)譜(SRS)采用遞歸數(shù)字濾波法,極大降低運算量,縮短譜分析的時間,從而實現(xiàn)譜信息分析的實時性。測試結(jié)果表明,該譜分析卡可以在9 ms內(nèi)完成一路高頻振動數(shù)據(jù)的處理,在67 ms內(nèi)完成一路沖擊數(shù)據(jù)的處理,設(shè)計具有良好的實時性、穩(wěn)定性和擴(kuò)展性,在實際應(yīng)用中得到較好的效果。
FPGA+DSP;遙測數(shù)據(jù);功率譜密度(PSD);沖擊響應(yīng)譜(SRS);FFT
對信號進(jìn)行頻譜分析,可以得到信號的頻率結(jié)構(gòu),了解信號的頻率成分。這對于工程上確定信號產(chǎn)生的原因,對系統(tǒng)參數(shù)進(jìn)行識別及校正、動態(tài)監(jiān)測設(shè)備的狀態(tài)等都是非常有用的[1-2]。通過閱讀已有的大量文獻(xiàn)發(fā)現(xiàn),對于遙測數(shù)據(jù)的譜分析都是在數(shù)據(jù)接收完成后,再進(jìn)行譜分析的,不具有實時性,針對遙測數(shù)據(jù)實時譜分析的要求,設(shè)計了遙測數(shù)據(jù)實時譜分析卡,實現(xiàn)對3路高頻振動數(shù)據(jù)的實時功率譜密度分析和2路沖擊數(shù)據(jù)的實時沖擊響應(yīng)譜分析。分析完成后,將分析結(jié)果實時發(fā)送給上位機(jī)。
遙測數(shù)據(jù)實時譜分析卡系統(tǒng)總體設(shè)計框圖如圖1所示。譜分析卡主要由數(shù)據(jù)預(yù)處理及接口控制模塊、數(shù)據(jù)實時處理模塊和電源模塊3部分組成。FPGA模塊主要由FPGA芯片、晶振、PROM和程序下載接口組成,完成遙測采編數(shù)據(jù)的接收、挑選以及預(yù)處理工作。FPGA芯片采用Spartan6系芯片XC6SLX150_FGG484芯片,程序緩存PROM采用M25P64芯片。DSP模塊由DSP芯片、復(fù)位電路、晶振、程序緩存Flash和程序下載接口組成,完成對高頻振動數(shù)據(jù)和沖擊數(shù)據(jù)的譜分析工作,DSP芯片選用TI公司推出的低功耗浮點型TMS320C6747芯片[3],程序緩存Flash選取NOR型Flash S29AL032D芯片。電源模塊采用3片TPS54331電源芯片,包括5 V轉(zhuǎn)3.3 V DC-DC、5 V轉(zhuǎn)2.5 V DC-DC和5 V轉(zhuǎn)1.2 V DC-DC為整個系統(tǒng)供電。
圖1 系統(tǒng)總體設(shè)計框圖
FPGA內(nèi)部功能劃分圖如圖2所示,由原始數(shù)據(jù)接收緩存模塊、DSP接口控制模塊和譜分析結(jié)果緩存發(fā)送模塊組成。
圖2 FPGA內(nèi)部功能劃分圖
系統(tǒng)工作流程圖如圖3所示,原始數(shù)據(jù)接收緩存模塊中的DATA_PICK模塊,通過同步422接口接收遙測采編數(shù)據(jù),在接收到的數(shù)據(jù)中不斷地搜索同步字“EB90”以實現(xiàn)幀格式同步,從而保證對數(shù)據(jù)幀結(jié)構(gòu)中信息的正確識別。正確識別幀格式后,將需要處理的3路高頻振動數(shù)據(jù)和2路沖擊數(shù)據(jù)挑選出來,分別緩存在相應(yīng)的FIFO中,以便后續(xù)數(shù)據(jù)的處理。當(dāng)FPGA原始數(shù)據(jù)接收緩存模塊中的任意一個FIFO半滿后,半滿信號作為上升沿中斷發(fā)送給DSP,DSP響應(yīng)該中斷,讀出半滿FIFO中的數(shù)據(jù)到DSP中,等待進(jìn)行譜分析。DSP譜分析完成后,通過IO口向FPGA發(fā)送上升沿,作為譜分析完成的標(biāo)志。FPGA通過識別完成標(biāo)志來識別DSP發(fā)送過來數(shù)據(jù)的種類,并存儲在譜分析結(jié)果緩存發(fā)送模塊相應(yīng)的FIFO中。譜分析結(jié)果緩存發(fā)送模塊中DATA_SEND模塊用來接收上位機(jī)發(fā)送過來的讀數(shù)指令,將譜分析數(shù)據(jù)通過HDLC協(xié)議發(fā)送到上位機(jī)界面,上位機(jī)解析HDLC協(xié)議后,實時顯示譜分析情況。
圖3 系統(tǒng)工作流程圖
DSP內(nèi)部功能劃分圖如圖4所示。DSP采用外部存儲器接口EMIFA,控制原始數(shù)據(jù)的輸入和譜分析完成數(shù)據(jù)的輸出。原始振動數(shù)據(jù)采用快速傅里葉變換譜分析算法進(jìn)行功率譜密度計算,原始沖擊數(shù)據(jù)采用遞歸數(shù)字濾波法進(jìn)行沖擊響應(yīng)譜計算。譜分析完成數(shù)據(jù)緩存采用乒乓緩存結(jié)構(gòu)[4],如果正在寫PING_FIFO,那么就將PONG_FIFO的分析結(jié)果發(fā)送出去;如果正在寫PONG_FIFO,那么就將PING_FIFO中的分析結(jié)果發(fā)送出去,保證寫數(shù)據(jù)和傳輸數(shù)據(jù)的流水線作業(yè),實時將譜分析完成數(shù)據(jù)發(fā)送給FPGA。
圖4 DSP內(nèi)部功能劃分圖
供電模塊電路圖設(shè)計如圖5所示。由于DSP芯片對上電順序有一定的要求:在IO口供電電壓達(dá)到1.65 V之前,核供電電壓至少要攀升到900 mV。所以選用的供電芯片一方面要求輸出電壓可調(diào),另一方面要求可以延緩電源啟動時間。綜合以上兩個方面要求,選用TI公司的TPS54331電源芯片。
圖5 供電模塊電路設(shè)計圖
該電源芯片可以使用表達(dá)式(1),通過配置電阻R4和電阻R5的阻值來控制VCC_OUT輸出,其中Vref=0.8 V。將電阻R4和電阻R5分別設(shè)置成10.2 K、3.24 K,控制5 V轉(zhuǎn)3.3 V DC-DC;將電阻R4和電阻R5分別設(shè)置成10 K、4.64 K,控制5 V轉(zhuǎn)2.5 V DC-DC;將電阻R4和電阻R5分別設(shè)置成10 K、19.6 K,控制5 V轉(zhuǎn)1.2 V DC-DC。
Vout=Vref×[R4/R5+1]
(1)
TPS54331電源芯片可以通過改變電容C3的容值,控制芯片上電延遲時間在1 ms到10 ms之間。利用公式(2)可以計算上電的延時時間,其中Vref=0.8 V,Iss=2 μA。為控制DPS不同電壓的上電順序,將5 V轉(zhuǎn)3.3 V DC-DC、5 V轉(zhuǎn)2.5 V DC-DC、5 V轉(zhuǎn)1.2 V DC-DC的電容C3分別設(shè)置成27 nF、22 nF、15 nF,控制上電延遲時間分別為10 ms、8.8 ms、6 ms。
(2)
通過示波器可以捕捉到上電時3路電壓輸出的時間延遲情況,具體情況如圖6所示。圖中圓圈位置為核電壓值上升到900 mV位置,方塊位置為IO口電壓上升到1.65 V位置,后者時間比前者晚0.5 ms左右,符合設(shè)計要求。圖中豎直黑線分別代表各輸出電壓達(dá)到穩(wěn)定值的位置,可以看出各路電壓延遲啟動情況符合設(shè)計要求。
圖6 電源模塊3路電壓輸出延遲圖
FPGA芯片和DSP芯片之間的數(shù)據(jù)銜接是決定系統(tǒng)穩(wěn)定性的關(guān)鍵,為了實現(xiàn)FPGA芯片和DSP芯片的無縫銜接,需要了解各芯片的工作機(jī)制,FPGA芯片和DSP芯片具有不同的工作機(jī)制:FPGA芯片是并行工作狀態(tài)機(jī)制,而DSP芯片是串行工作狀態(tài)機(jī)制。即FPGA中3路振動數(shù)據(jù)和2路沖擊數(shù)據(jù)的FIFO是同時被寫入數(shù)據(jù)的,任意一路FIFO達(dá)到半滿后,FIFO的編程滿引腳都會輸出高電平。但是DSP只能按照半滿信號拉高的先后順序,捕捉到各路FIFO編程滿引腳由低電平變成高電平時的上升沿中斷,進(jìn)行數(shù)據(jù)的讀取和處理。由于DSP讀取和處理每路數(shù)據(jù)的時間是固定的,那么在這段時間內(nèi)5路數(shù)據(jù)累積量的大小將決定系統(tǒng)是否可以穩(wěn)定地運行下去。
假設(shè)單路數(shù)據(jù)的數(shù)據(jù)采樣率為10.24 K,振動數(shù)據(jù)進(jìn)行一次功率譜密度計算需要采集1 024個點,沖擊數(shù)據(jù)進(jìn)行一次沖擊響應(yīng)譜計算需要采集2 000個點,即振動數(shù)據(jù)完成一次數(shù)據(jù)的采集時間約為100 ms,沖擊數(shù)據(jù)完成一次數(shù)據(jù)采集的時間約為195 ms。根據(jù)對功率譜密度算法和沖擊響應(yīng)譜算法的在線仿真,得知完成一次功率譜密度計算需要9 ms,完成一路沖擊響應(yīng)譜計算需要67 ms。DSP對兩種數(shù)據(jù)的流水線處理情況如圖7所示。從圖7可以看出流水線的工作流程為FPGA完成第一次振動數(shù)據(jù)采集,DSP開始處理第一次采集到的振動數(shù)據(jù),其間FPGA一直在采集沖擊數(shù)據(jù),FPGA完成第一次沖擊數(shù)據(jù)的采集,DSP開始處理第一次沖擊數(shù)據(jù),處理兩路沖擊數(shù)據(jù)需要67 ms×2=134 ms,處理完沖擊數(shù)據(jù)后,讀取第二次采集到的振動數(shù)據(jù)并進(jìn)行振動數(shù)據(jù)的處理。在處理第一次沖擊數(shù)據(jù)的過程中,FPGA完成對振動數(shù)據(jù)的第二次采集和第三次采集,然而DSP只能實時對第二次采集到的數(shù)據(jù)進(jìn)行處理,3路振動數(shù)據(jù)的FIFO中都積累了一次采集的振動數(shù)據(jù)??梢酝茢?每次采集和處理完成一次沖擊數(shù)據(jù),振動數(shù)據(jù)的FIFO就會產(chǎn)生一次數(shù)據(jù)量的積累。久而久之造成振動數(shù)據(jù)FIFO的溢出,不能實時地處理振動數(shù)據(jù)。
圖7 5路數(shù)據(jù)采集和處理非實時流水線作業(yè)圖
然而實際測量的結(jié)果與推測的結(jié)果是有所差異的,實際測量中發(fā)現(xiàn)在最開始有少量振動數(shù)據(jù)被讀取和處理,后期卻只有沖擊數(shù)據(jù)被讀取和處理,振動數(shù)據(jù)不再被讀取和處理,振動數(shù)據(jù)FIFO處于一種“假死”的狀態(tài)。經(jīng)過分析,原因如圖8所示,在上文提到過處理一次沖擊數(shù)據(jù),就會有一次振動數(shù)據(jù)的累積。假設(shè)振動數(shù)據(jù)FIFO的容量經(jīng)過一次沖擊數(shù)據(jù)的處理后,由1 000 byte增長到3 000 byte,編程滿引腳由低電平變成高電平,DSP捕捉到編程滿引腳的上升沿觸發(fā)一次讀振動FIFO的動作,讀取和處理一次振動數(shù)據(jù)后,振動FIFO中還是會緩存2 000 byte的數(shù)據(jù),大于編程滿界限,編程滿引腳電平一直處于高電平,DSP不能捕捉到編程滿引腳的上升沿中斷,因此不能讀取振動FIFO中的數(shù)據(jù),振動FIFO全部處于“假死”狀態(tài)。通過進(jìn)一步分析發(fā)現(xiàn),產(chǎn)生上述問題最根本的原因是系統(tǒng)實時性的問題,為了實現(xiàn)系統(tǒng)實時性,擬定了3種解決方案。
圖8 振動FIFO“假死”狀態(tài)分析圖
方案1 將DSP芯片TM320C6747DZKBA3更改為TM320C6747DZKBD4,芯片工作主頻由300 MHz提高為456 MHz,振動數(shù)據(jù)的處理時間縮短為6.58 ms,沖擊數(shù)據(jù)的處理時間縮短為44 ms,處理數(shù)據(jù)時間共需要6.58 ms×3+44 ms×2=107.74 ms,處理時間大于100 ms不能達(dá)到實時處理數(shù)據(jù)的目的,因此還需要優(yōu)化振動數(shù)據(jù)和沖擊數(shù)據(jù)的處理算法,將時間控制在100 ms以內(nèi),才可以實現(xiàn)系統(tǒng)的實時性;
方案2 將單路數(shù)據(jù)采樣率由10.24 K減緩到5.12 K,減緩采樣率后的流水線作業(yè)圖如圖9所示。從圖9可以看出流水線的工作流程為:完成第1次振動數(shù)據(jù)采集,進(jìn)行振動數(shù)據(jù)的處理,完成第1次沖擊數(shù)據(jù)的采集,進(jìn)行沖擊數(shù)據(jù)的處理,完成第2次振動數(shù)據(jù)的采集,進(jìn)行第2次振動數(shù)據(jù)的處理,完成第3次振動數(shù)據(jù)的采集,進(jìn)行第3次振動數(shù)據(jù)的處理,完成第2次沖擊數(shù)據(jù)的采集,進(jìn)行第2次沖擊數(shù)據(jù)的處理等等,數(shù)據(jù)的采集和處理工作會有序的進(jìn)行下去,不會出現(xiàn)FIFO“假死”現(xiàn)象的出現(xiàn)。
圖9 5路數(shù)據(jù)采集和處理實時流水線作業(yè)圖
方案3 采用一種約束優(yōu)先級的方法實現(xiàn)系統(tǒng)的實時性。由于振動數(shù)據(jù)是高頻數(shù)據(jù),沖擊數(shù)據(jù)是低頻數(shù)據(jù),并且沖擊數(shù)據(jù)只有在大于一定的閾值之后才會被采集一次,因此在數(shù)據(jù)采集過程中有效的沖擊數(shù)據(jù)是非常少的,約定沖擊數(shù)據(jù)的優(yōu)先級高于振動數(shù)據(jù)的優(yōu)先級,即沖擊數(shù)據(jù)采集完成時,優(yōu)先保證沖擊數(shù)據(jù)的實時性,對沖擊數(shù)據(jù)處理過程中采集到的振動數(shù)據(jù)不做處理。如上文所述,沖擊數(shù)據(jù)處理的過程中,不管振動數(shù)據(jù)處理還是不處理,振動數(shù)據(jù)都會被采集回來,造成振動FIFO的“假死”現(xiàn)象。
由于編程滿信號是大于1 536 byte才有效,DSP讀取一次振動數(shù)據(jù)會讀走1 024 byte,固振動FIFO中如果數(shù)據(jù)量積累到大于1 536 byte+1 024 byte=2 560 byte時,振動FIFO就會出現(xiàn)“假死”現(xiàn)象。判斷振動FIFO的編程滿引腳高電平持續(xù)時間超過100 ms,就可以斷定振動FIFO出現(xiàn)了“假死”現(xiàn)象。“假死”現(xiàn)象出現(xiàn)后,需要對FIFO進(jìn)行復(fù)位,重新激活FIFO開始工作,保證系統(tǒng)穩(wěn)定的工作下去。
綜上所述,根據(jù)單路采樣率的大小,可以采用不同的解決方案。在單路采樣率大于5.12 K時,可以采用方案1加方案3;單路數(shù)據(jù)小于5.12 K時,可以采用方案2;兩種解決辦法都可以實現(xiàn)實時地譜分析。本設(shè)計采用設(shè)計方案2,可以很好的滿足設(shè)計要求,測試結(jié)果如下。
為了驗證遙測數(shù)據(jù)譜分析卡設(shè)計的系統(tǒng)穩(wěn)定性,使用示波器監(jiān)測DSP的EMIFA接口寫使能信號,寫使能信號監(jiān)測圖如圖10所示。由于振動數(shù)據(jù)和沖擊數(shù)據(jù)的數(shù)據(jù)量不同,根據(jù)寫使能信號維持的時間可以判斷發(fā)送數(shù)據(jù)的類型,從圖中可以看出數(shù)據(jù)讀出的順序為振動X軸譜分析數(shù)據(jù)、振動Y軸譜分析數(shù)據(jù)、振動Z軸譜分析數(shù)據(jù)、沖擊X軸譜分析數(shù)據(jù)、沖擊Y軸譜分析數(shù)據(jù)。相鄰不同數(shù)據(jù)種類之間的空閑時間,即為譜分析的時間。圖中振動X軸譜分析數(shù)據(jù)與振動Y軸譜分析數(shù)據(jù)之間的空閑為9 ms,即該譜分析卡可以在9 ms內(nèi)完成一路功率譜密度的計算。圖中沖擊X軸譜分析數(shù)據(jù)與沖擊Y軸譜分析數(shù)據(jù)之間的空閑為67 ms,即該譜分析卡可以在67 ms內(nèi)完成一路沖擊響應(yīng)譜的計算。譜分析卡可以穩(wěn)定地進(jìn)行譜分析。
圖10 EMIFA接口寫使能信號監(jiān)測圖
圖11 正弦振動信號圖
為了驗證譜分析卡功率譜密度和沖擊譜響應(yīng)譜密度計算的正確性,將振動和沖擊原始數(shù)據(jù)和譜分析結(jié)果進(jìn)行繪圖對比分析。圖11所示的是500 Hz的正弦振動信號,圖12是其功率譜密度圖。從功率譜密度圖中可以看出在100 Hz的位置都會有一個的功率譜密度突出點,其他位置功率譜密度都接近零。圖13和圖14分別表示的2 kHz隨機(jī)振動的原始信號圖和功率譜密度圖,功率譜密度直接反應(yīng)了原始振動數(shù)據(jù)的每個單位頻率波攜帶的功率。
圖15為沖擊測試中一次測試信號,在經(jīng)過遞歸數(shù)字濾波法處理后,沖擊響應(yīng)譜如圖16所示。
圖13 隨機(jī)振動信號圖圖
圖12 正弦振動信號功率譜密度截圖
圖14 隨機(jī)振動信號功率譜密度圖
圖15 沖擊信號原始數(shù)據(jù)圖
圖16 沖擊響應(yīng)譜圖
綜上所述,該譜分析卡可以實時地處理3路高頻振動數(shù)據(jù)和2路沖擊數(shù)據(jù)。經(jīng)過與專門的譜分析儀器分析的信號進(jìn)行對比,該功率譜密度與沖擊響應(yīng)譜與專用儀器分析結(jié)果一致,說明分析程序正常,譜分析方法正確。
[1] 楊宇,葉宇風(fēng),王洪. 基于DSP的實時信號頻譜分析模塊設(shè)計[J]. 電子測量技術(shù),2006,29(2):124-126.
[2] 周權(quán),蓋淑萍,林楠森,等. 基于DSP與FPGA實時功率譜分析儀[J]. 儀表技術(shù)與傳感器,2015(2):26-28.
[3] 王成. 基于TMS320C6747陣列的超聲無損檢測的實時處理平臺[D]. 黑龍江:哈爾濱工程大學(xué),2011.
[4] 康艷霞,曹劍中,田雁,等. 實時視頻處理系統(tǒng)中乒乓緩存的設(shè)計[J]. 彈箭與制導(dǎo)學(xué)報,2007(4):218-221.
[5] 李桂花,趙五元,馬進(jìn)忠,等. 基于CPCI總線DMA方式的實時高速數(shù)據(jù)交換系統(tǒng)[J]. 強(qiáng)激光與粒子束,2014(11):115103.
[6] 高文,朱明,劉劍等. 基于DSP+FPGA框架的實時目標(biāo)跟蹤系統(tǒng)設(shè)計[J]. 液晶與顯示,2014(4):611-616.
[7] 徐婷. 信號頻率測量的DSP實現(xiàn)[J]. 電子質(zhì)量,2011(11):6-7.
[8] 洪嘉. 高速測試系統(tǒng)中的功率譜估計的DSP算法實現(xiàn)[D]. 四川:電子科技大學(xué),2006.
TheDesignofRealTimeSpectralAnalysisCardofRemoteMeasurementDataBasedonFPGAandDSP
CHUJianping1,ZHENGuoyong1*,LIUDonghai2
(1.National Key Laboratory for Electronic Measurement Technology,The North University of China,Taiyuan 030051,China;2.Taiyuanshi Huana Fangsheng Technology Co,Ltd.,Taiyuan 030051,China)
In order to analyze signal spectrum changes with the frequency information in units of frequency band in real-time remote measurement data,a real-time spectral analysis card of remote measurement data is designed. FPGA+DSP architecture with assembly line is adopted. The vibration signal power spectral density(PSD)is calculated using the fast Fourier transform(FFT),and the shock signal Shock Response Spectrum Signal(SRS)calculated using recursive digital filter method,that the calculations make it reduce the amount of computation greatly,and short the time of the spectral analysis greatly. Therefore,real-time spectral analysis information is achieved. Test results show that the spectral analysis card can complete the high frequency vibration signal analysis within 9 ms and the shock signal analysis within 67 ms,and the Design has a good real-time performance,stability and scalability to give good results in practical applications.
FPGA+DSP;remote measurement data;Power Spectral Density(PSD);shock response spectrum
10.3969/j.issn.1005-9490.2017.05.012
2016-08-28修改日期2016-10-31
TP274
A
1005-9490(2017)05-1108-07
褚建平(1992-),男,黑龍江省七臺河市人,碩士生,主要從事測試系統(tǒng)集成技術(shù)與應(yīng)用軟件技術(shù)研究工作,724721005@qq.com;
甄國涌(1971-),男,山西陽泉人,教授,碩士生導(dǎo)師,主要從事測試系統(tǒng)集成技術(shù)與應(yīng)用軟件技術(shù)研究工作,zhen_gy0124@163.com。