胡秀琴, 康戈文
(電子科技大學(xué)自動化工程學(xué)院,四川成都 610054)
現(xiàn)代機械設(shè)備的結(jié)構(gòu)越來越復(fù)雜,故障診斷技術(shù)顯得尤為重要,其意義在于能有效地遏制故障損失和降低設(shè)備維修費用[1]。本文設(shè)計了一套電機故障的信號采集與處理裝置,將電機轉(zhuǎn)軸的轉(zhuǎn)速信號通過編碼器轉(zhuǎn)化為數(shù)字信號[2],并通過電路板上的數(shù)字頻率計計算信號的頻率,再將該計數(shù)結(jié)果輸出給上位機做后續(xù)的信號分析,利用FFT得到信號的基頻率[3],結(jié)合諧波小波包得到信號的細化頻率[4],兩個方法結(jié)合能更準(zhǔn)確地判斷電機故障。
該檢測系統(tǒng)的總體設(shè)計方案如圖1所示,主要由信號采集、信號處理和通訊接口組成。其中信號采集系統(tǒng)是將光電編碼器安裝在高速轉(zhuǎn)動軸上,并將其輸出信號接入電路板。信號預(yù)處理部分包含低通濾波電路,放大和整流電路;信號處理部分由FPGA芯片及其外圍的供電電路,存儲電路和通信電路組成。將光電編碼器安裝在旋轉(zhuǎn)軸上得到一圈的輸入轉(zhuǎn)動信息,該信號經(jīng)過信號預(yù)處理濾波,放大和整流后變成矩形波信號進入FPGA,利用SOPC Builder與NIOS II IDE為主要的軟件工具計算信號高電平的寬度,并將計數(shù)結(jié)果由串口傳遞給上位機,通過判斷高電平寬度的變化分析信號的頻率,從而判斷出故障的類型。
圖1 系統(tǒng)設(shè)計框圖
該部分主要介紹測試系統(tǒng)中主要的硬件電路設(shè)計。本設(shè)計主要包括信號預(yù)處理模塊及FPGA及其配置芯片電路設(shè)計。
由于輸入信號是帶有噪音的低頻信號,因此需要對信號進行預(yù)處理。該預(yù)處理模塊是由LM358和LM393組成的電路,其中LM358是由兩個獨立的、高增益內(nèi)部頻率補償?shù)倪\算放大器組成,其中一個運放用于低通濾波,另一個運放用于信號放大。LM393是雙電壓集成電路,用于信號的整流,將信號變?yōu)橐?guī)則的矩形波信號,預(yù)處理電路如圖2所示。
圖2 信號預(yù)處理電路
本設(shè)計采用了Altera公司Cyclone系列的FPGA——EP1C12Q240C8。 圖 3為 FPGA及 其外圍芯片設(shè)計的詳細框圖,主要由電源、晶振、UART、LCD、復(fù)位按鍵、PIO、串行配置芯片、FLASH、SRAM、SDRAM和JTAG接口共計11個部分組成[5]。FPGA部分是本采集系統(tǒng)的核心器件,完成LCD顯示,SDRAM存儲器,F(xiàn)LASH存儲器和接口等的控制,并嵌入NIOS II處理器,完成系統(tǒng)功能[6]。
圖3 硬件設(shè)計框圖
SOPC片上系統(tǒng)設(shè)計是整個系統(tǒng)的核心。利用Altera公司的SOPC Builder開發(fā)工具,將Altera公司提供的一些模塊如NIOS II processor, Memories,uart 及IO口等,集成到一個片上系統(tǒng)內(nèi),定制生成一個處理器[7]。再將這個處理器添加Quartus工程中,同時添加同步模塊和其它的控制邏輯,將SOPC和各模塊連接起來,通過編譯就得到了SOPC片上系統(tǒng)[8]。
本文的SOPC片上系統(tǒng)主要由NIOS II處理器和FLASH控制器、LCD控制器、epcs_controller、sdram和sram控制器,三態(tài)橋、通用IO、I2C控制器以及串口構(gòu)成。由于SDRAM和SRAM共用地址總線,所以需要添加三態(tài)橋鎖存地址信號。在FPGA內(nèi)部連接SOPC的模塊電路主要由一個D觸發(fā)器,計數(shù)器和數(shù)據(jù)鎖存器構(gòu)成。圖4是本SOPC系統(tǒng)的主要外設(shè)模塊圖。
圖4 SOPC片上系統(tǒng)框圖
在這個方案中采用了NIOS II軟核處理器作為SOPC的處理器,總線采用AVALON總線的方式來實現(xiàn)計數(shù)器功能[9]。信號從PIO口輸入作為NIOS II處理器的中斷輸入,計數(shù)器使能信號為高電平有效,當(dāng)信號上升沿到來時觸發(fā)NIOS處理器中斷,處理器給出計數(shù)器清零端無效信號,計數(shù)器開始計數(shù)直到計數(shù)器;當(dāng)下降沿到來時,由于計數(shù)使能信號為高電平,所以低電平時不計數(shù),在信號的下一個高電平到來時,鎖存計數(shù)結(jié)果并讀取數(shù)據(jù),將計數(shù)器清零,鎖存信號置為無效,同時開始下一輪的計數(shù)。為方便后續(xù)的數(shù)據(jù)處理,所選擇的光電編碼器旋轉(zhuǎn)一圈的脈沖數(shù)為1024,因此高速軸旋轉(zhuǎn)一周可得到1024個計數(shù)值。計數(shù)數(shù)據(jù)通過UART輸出,亦可通過高速USB輸出給上位機做進一步的信號分析。這個方案的好處在于NIOS II處理器對數(shù)據(jù)的強大處理能力,保證了系統(tǒng)能完成比較復(fù)雜的數(shù)據(jù)處理任務(wù)。主要函數(shù)[10]如下:
中斷函數(shù):
static void cnt_plus_interrupts(void* context, alt_u32 id)
{
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(COUNTER_DETECT_BASE,0x0); IOWR_ALTERA_AVALON_PIO_DATA(OEN_BASE,0x1);data[k]=IORD_ALTERA_AVALON_PIO_DATA(DATA_IN_BASE);//read data
k=k+1; IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0xf);//clear
IOWR_ALTERA_AVALON_PIO_DATA(OEN_BASE,0x0); IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0x0);
}
主函數(shù):
int main(void)
{
while(1 )
{
if(k==number)
{
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(COUNTER_DETECT_BASE,0x0);//關(guān) 中 斷IOWR_ALTERA_AVALON_PIO_DATA(CLEAR_BASE,0xf);//clear
for(int i=0;i<number;i++)
{ uart_tx(data[i]);
printf("%x ",data[i]);
}
k=0;
}
}
return 0;
}
試驗
由于系統(tǒng)時鐘50MHz,具有極高的精度,本身就是良好的測試信號源。所以我們將50MHz時鐘作為測試信號源.采用分頻系統(tǒng)時鐘的方法來獲取各種頻段下的測試信號源。分頻器的分頻因子不同,所得到的測試信號不同,為了驗證本設(shè)計的正確性,設(shè)計了一個2分頻的時鐘分頻器,分頻器輸出的不同位數(shù)就代表了不同的頻率。本計數(shù)器的計數(shù)原理如下:系統(tǒng)的晶振為clkF=50MHz,作為分頻器與計數(shù)器的時鐘信號。分頻器的輸出信號Q[n]的頻率為
計算高電平的寬度公式為
計數(shù)結(jié)果的輸出形式為十六進制。表1為測試結(jié)果及誤差分析,每個頻率下任取10數(shù)據(jù)做誤差分析。
表1 測試結(jié)果及分析
800,800,800,800,800,12.2K 800 800 0 800,800,800, 800,800 400,400,400,400,400,24.4K 400 400 0 400,400,400, 400,400 200,200,200,200,200,48.8K 200 200 0 200,200,200, 200,200
測試結(jié)果表明,低頻段誤差較大。隨著待測信號頻率的升高,誤差不斷地變小,當(dāng)信號頻率達到12kHz以上時,測試結(jié)果沒有誤差,對于高頻信號,該系統(tǒng)具有很高的可靠性和高精度性。
該測試系統(tǒng)是基于NIOSⅡ的高精度頻率計,充分利了FPGA內(nèi)部硬件資源,在FPGA內(nèi)部構(gòu)建SOPC片上系統(tǒng),采用VHDL編寫底層模塊,C語言編寫控制程序,大大降低了外圍硬件電路的復(fù)雜性,使硬件結(jié)構(gòu)更加簡單,電路性能更加穩(wěn)定可靠。由以上測試數(shù)據(jù)可知,該系統(tǒng)應(yīng)用在高速轉(zhuǎn)軸上的誤差很小,通過在實驗室電機的高速轉(zhuǎn)軸上的實驗,本測試系統(tǒng)已經(jīng)在軟件和硬件上得到了實現(xiàn),驗證了該測試裝置的正確性。
[1]曹龍漢. 柴油機智能化故障診斷技術(shù)研究[D].重慶:重慶大學(xué),2001.
[2]李秀娟.光電編碼器信號處理及接口電路設(shè)計[J].南京航空航天大學(xué)學(xué)報,1993(25):130-134.
[3]呂武,申萍,王小方.FFT在機車故障檢測記錄系統(tǒng)中的應(yīng)用[J].電力機車與城軌車輛,2006,29(1):38-40.
[4]李宏亮.諧波小波的時頻特性分析及其在故障診斷中的應(yīng)用[J].機械強度,2000(22):81-85.
[5]鐘德勝.基于SOPC的TD-SCDMA同步時鐘設(shè)計[D].成都:成都電子科技大學(xué),2009.
[6]劉德亮,王竹林,尉廣軍. 基于FPGA高精度頻率測量儀的設(shè)計[J]. 河北工業(yè)科技,2010,27 (1):29-31.
[7]李化,王永麗.NIOS系統(tǒng)與計算機串口通信的實現(xiàn)[J]. 西南民族大學(xué)學(xué)報,2008,43(4):864-867.
[8]楊秀增.基于Niosl l的自適應(yīng)高精度頻率計設(shè)計[J]. 動化與儀表,2009(7): 13-16.
[9]楊煥崢.嵌入式高精度數(shù)字頻率計的設(shè)計[J].長沙航空職業(yè)技術(shù)學(xué)院學(xué)報,2007(9):64-67.
[10]周立功.SoPC嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2006.