基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng)設(shè)計(jì)
摘要:在振動(dòng)信號(hào)采集和處理系統(tǒng)設(shè)計(jì)中,信號(hào)的處理時(shí)間與可靠性決定著系統(tǒng)應(yīng)用的可行性。本文設(shè)計(jì)了一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng),該系統(tǒng)通過(guò)振動(dòng)信號(hào)采集電路、抗混疊濾波電路、AD采樣電路將電荷信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)送入FPGA,在FPGA處理設(shè)計(jì)中利用數(shù)據(jù)流控制方法并行實(shí)現(xiàn)了信號(hào)的采樣和處理,并在數(shù)據(jù)存儲(chǔ)和訪問(wèn)過(guò)程中采用時(shí)鐘時(shí)標(biāo)方法判斷信號(hào)采樣過(guò)程中的數(shù)據(jù)丟失情況,有效提高了振動(dòng)信號(hào)處理的實(shí)時(shí)性及可靠性。本設(shè)計(jì)在真實(shí)環(huán)境中進(jìn)行了驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定可靠,滿足各項(xiàng)技術(shù)應(yīng)用要求。
本文引用地址:http://butianyuan.cn/article/201610/308465.htm振動(dòng)現(xiàn)象是機(jī)械設(shè)備運(yùn)行的伴隨過(guò)程,結(jié)構(gòu)部件處于工作狀態(tài)就有振動(dòng)信號(hào)產(chǎn)生,常見(jiàn)故障通過(guò)振動(dòng)和由振動(dòng)輻射出來(lái)的噪聲反映。在飛行器的健康監(jiān)控和診斷過(guò)程中,作為提取故障信息的主要手段,振動(dòng)信號(hào)的采集和處理具有特殊重要的意義。
飛行器振動(dòng)過(guò)程的捕捉由于采樣點(diǎn)數(shù)密集,傳感器數(shù)量多,傳感器之間同步要求高,對(duì)于振動(dòng)采集系統(tǒng)采樣速率、采樣精度和數(shù)據(jù)處理能力提出了更高的要求,單純依靠CPU完成數(shù)據(jù)采樣和處理越來(lái)越力不從心。
以FPGA為代表的可編程邏輯器件以其工作穩(wěn)定、速度快、靈活的可編程能力等特點(diǎn),獲得了越來(lái)越廣泛應(yīng)用。本文提出了一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng);該系統(tǒng)具有實(shí)時(shí)性高,糾錯(cuò)能力強(qiáng)等特點(diǎn),采用數(shù)據(jù)流控制的方法實(shí)現(xiàn)了信息的并行處理,可以更加有效的實(shí)現(xiàn)多通道振動(dòng)信號(hào)采集;同時(shí)為了提高數(shù)據(jù)的可靠性采用時(shí)間標(biāo)定的方法進(jìn)行數(shù)據(jù)的存儲(chǔ)和校驗(yàn)。本文第一節(jié)介紹了該系統(tǒng)的整體設(shè)計(jì)方案,第二節(jié)、第三節(jié)介紹了電荷放大器及和混疊濾波電路的實(shí)現(xiàn)方法,第四節(jié)著重介紹了FPGA的實(shí)現(xiàn)方法,最后介紹了方案的實(shí)際應(yīng)用情況。
1 整體方案
振動(dòng)信號(hào)采集處理系統(tǒng)用于采集軸承的圓周運(yùn)動(dòng)所導(dǎo)致的振動(dòng)過(guò)程,振動(dòng)傳感器安裝在機(jī)械部件上,可以同時(shí)采集機(jī)械部件各方向的振動(dòng)量值,為達(dá)到振動(dòng)信號(hào)校驗(yàn)和標(biāo)定的目的,結(jié)構(gòu)部件上安裝有光柵傳感器,結(jié)構(gòu)部件每轉(zhuǎn)動(dòng)一周產(chǎn)生一個(gè)脈沖信號(hào),該信號(hào)與振動(dòng)信號(hào)同時(shí)送入振動(dòng)采集系統(tǒng)用于后續(xù)處理。
本文所采用的振動(dòng)傳感器為成熟的商用傳感器,該傳感器輸出信號(hào)為電荷信號(hào),其量值與結(jié)構(gòu)部件的振動(dòng)加速度成正比。振動(dòng)傳感器發(fā)出的信號(hào)經(jīng)過(guò)電荷放大器電路將該信號(hào)轉(zhuǎn)變?yōu)殡妷盒盘?hào),該電壓信號(hào)經(jīng)抗混疊濾波處理、AD采樣后轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),送入FPGA進(jìn)行后續(xù)處理;光柵傳感器產(chǎn)生的脈沖信號(hào),經(jīng)光電隔離處理后送入FPGA作為時(shí)標(biāo)用于后續(xù)處理;DSP從FIFO中讀取采樣數(shù)據(jù),進(jìn)行分析和處理并根據(jù)處理的結(jié)果進(jìn)行顯示和告警。方案中AD轉(zhuǎn)換電路采用16位的高精度高速AD轉(zhuǎn)換芯片實(shí)現(xiàn),時(shí)標(biāo)采樣電路采用光電隔離器件實(shí)現(xiàn)。振動(dòng)信號(hào)采集處理系統(tǒng)原理圖如圖1所示。
2 電荷放大器電路設(shè)計(jì)
電荷放大器電路原理圖如圖2所示,放大器采用美國(guó)TI公司的TL082芯片。該芯片是采用二次離子注入Bi—FET兼容工藝制作的單片集成高輸入阻抗運(yùn)算放大器。電路中C1為積分電容用于實(shí)現(xiàn)電荷信號(hào)及電壓信號(hào)的轉(zhuǎn)化,C1電容的精度對(duì)整個(gè)電路精度有較大影響,應(yīng)選用高精度的瓷介電容,電阻R1為反饋電阻主要功能是避免電容C1出現(xiàn)飽和現(xiàn)象,電阻R1阻值需大于等于500 kΩ。為了保護(hù)運(yùn)放TL082,在其反相端串接電阻R2,為避免R2與運(yùn)放TL082的輸入電容構(gòu)成另一個(gè)極點(diǎn)而使運(yùn)放產(chǎn)生自激振蕩。在R2兩端并聯(lián)電容C3實(shí)現(xiàn)相位補(bǔ)償。電容C2和R2、C3并聯(lián)電路相串聯(lián),作用是隔離掉壓電傳感器的零漂。電容C4、C5、C6、C7用于濾除電源上的干擾信號(hào)。
3 抗混疊濾波電路設(shè)計(jì)
混疊現(xiàn)象由信號(hào)中高于采樣速率一半的成分引起的,該現(xiàn)象會(huì)導(dǎo)致A/D轉(zhuǎn)換后的數(shù)據(jù)波形失真,產(chǎn)生錯(cuò)誤。解決辦法是將信號(hào)中高于采樣速率一半的頻率成分濾除。這要求在采樣率變化的情況下,濾波器的低通截止頻率也要相應(yīng)調(diào)整。濾波器MAX291配合A/D轉(zhuǎn)換器的低通濾波電路可以實(shí)現(xiàn)程控抗混疊濾波。該器件是一款巴特沃思低通濾波器。截止頻率范圍從0.1 Hz到50 kHz。截止頻率與輸入時(shí)鐘頻率之比為50:1。系統(tǒng)可以通過(guò)FPGA分頻產(chǎn)生5 Hz到25 MHz的方波信號(hào),控制抗混疊濾波電路實(shí)現(xiàn)不同截止頻率的低通濾波功能。
4 FPGA設(shè)計(jì)
文中FPGA芯片選用XILINX公司的virtex-5系列XC5VFX70芯片,該芯片具有11,200個(gè)可配置邏輯塊和18KB大小的RAM塊296個(gè),能夠滿足較復(fù)雜的邏輯控制和較大的數(shù)據(jù)存儲(chǔ)要求。FPGA控制邏輯包括數(shù)據(jù)流控制邏輯、FIFO控制邏輯、調(diào)度模塊、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)訪問(wèn)等幾部分。調(diào)度模塊是FPGA的核心控制模塊向其他模塊發(fā)出控制指令,數(shù)據(jù)流控制邏輯完成了數(shù)據(jù)由串行數(shù)據(jù)向并行數(shù)據(jù)的轉(zhuǎn)化,F(xiàn)IFO控制邏輯完成了FIFO的寫(xiě)入寫(xiě)出控制,數(shù)據(jù)的存儲(chǔ)和訪問(wèn)控制邏輯主要用于數(shù)據(jù)的校驗(yàn),F(xiàn)PGA邏輯組成框圖如圖3所示。
4.1 調(diào)度模塊
調(diào)度模塊是控制邏輯的核心負(fù)責(zé)協(xié)調(diào)其他模塊的工作,調(diào)度模塊由輸入時(shí)鐘驅(qū)動(dòng),內(nèi)部設(shè)置定時(shí)器周期運(yùn)行為調(diào)度模塊的調(diào)度提供時(shí)間基準(zhǔn),定時(shí)器在每一個(gè)驅(qū)動(dòng)時(shí)鐘的上升沿加1,達(dá)到最大值時(shí)自動(dòng)清零重新開(kāi)始運(yùn)行,當(dāng)定時(shí)器達(dá)到某一特定的值時(shí),調(diào)度邏輯進(jìn)行邏輯判斷是否需要發(fā)出控制指令,如果邏輯判斷為真則發(fā)出調(diào)度指令發(fā)送給其他模塊驅(qū)動(dòng)其工作。
調(diào)度模塊有2種工作狀態(tài)忙狀態(tài)和空閑狀態(tài),調(diào)度模塊發(fā)出啟動(dòng)AD裝換指令后處于忙狀態(tài),此時(shí)調(diào)度模塊只控制數(shù)據(jù)流開(kāi)關(guān)進(jìn)行數(shù)據(jù)讀取和寫(xiě)入的操作,時(shí)標(biāo)數(shù)據(jù)不會(huì)被寫(xiě)入FIFO,此時(shí)如果系統(tǒng)收到時(shí)標(biāo)脈沖信號(hào),調(diào)度模塊指示定時(shí)器鎖定當(dāng)時(shí)的定時(shí)器值,不進(jìn)行其他操作。當(dāng)調(diào)度模塊完成數(shù)據(jù)輸入后進(jìn)入空閑狀態(tài),此時(shí)如果系統(tǒng)收到時(shí)標(biāo)脈沖信號(hào)或者在前一個(gè)忙狀態(tài)系統(tǒng)收到時(shí)標(biāo)脈沖信號(hào),則調(diào)度模塊向數(shù)據(jù)流開(kāi)關(guān)發(fā)出指令,數(shù)據(jù)流開(kāi)關(guān)打開(kāi)完成定時(shí)器時(shí)鐘的記錄。
4.2 數(shù)據(jù)流開(kāi)關(guān)
采樣數(shù)據(jù)處理的實(shí)時(shí)性是FPGA設(shè)計(jì)中首先要考慮的問(wèn)題,振動(dòng)信號(hào)采集過(guò)程中常會(huì)由于輸入數(shù)據(jù)量過(guò)大,導(dǎo)致后續(xù)處理電路處于飽和狀態(tài)以致數(shù)據(jù)丟失。為解決上述問(wèn)題,F(xiàn)PGA通過(guò)開(kāi)關(guān)切換的方式將數(shù)據(jù)分別送入不同的線程進(jìn)行處理。振動(dòng)傳感器輸出數(shù)據(jù)格式如下:(A1B1C 1D1E1F1),(A2B2C2D2E2F2),……(AN BN CN DN EN FN),A、B、C、D、E、F分別代表不同方向的振動(dòng)量值。采用單通道的數(shù)據(jù)處理方式時(shí),程序首先需完成數(shù)據(jù)的區(qū)分工作,然后完成6次數(shù)據(jù)處理過(guò)程,當(dāng)一次需要處理數(shù)據(jù)量較大的情況下,系統(tǒng)會(huì)產(chǎn)生較大的延遲并導(dǎo)致后續(xù)數(shù)據(jù)的丟失。為降低數(shù)據(jù)處理電路的負(fù)擔(dān),采用數(shù)據(jù)流開(kāi)關(guān)將振動(dòng)傳感器輸出數(shù)據(jù)分別存儲(chǔ)在不同的通道中通過(guò)數(shù)據(jù)流控制開(kāi)關(guān)后數(shù)據(jù)格式如下:
通道1:A1、A2……AN;
通道2:B1、B2……BN;
通道3:C1、C2……CN;
通道4:D1、D2……DN;
通道5:E1、E2……EN;
通道6:F1、F2……FN。
僅需處理N個(gè)數(shù)據(jù)就能滿足系統(tǒng)要求,系統(tǒng)對(duì)于處理能力的要求相應(yīng)降低。數(shù)據(jù)流控制仿真結(jié)果如圖3所示。圖中AD采樣數(shù)據(jù)為連續(xù)的單通道輸入數(shù)據(jù),經(jīng)過(guò)AD控制命令和通道開(kāi)關(guān)的控制后被分別發(fā)送到6個(gè)數(shù)據(jù)處理通道進(jìn)行后續(xù)處理。
4.3 FIFO的控制
振動(dòng)數(shù)據(jù)存儲(chǔ)在由XILINX提供的FIFO軟核中。FIFO核的存儲(chǔ)深度、數(shù)據(jù)寬度、標(biāo)志位設(shè)置、存儲(chǔ)類(lèi)型和讀寫(xiě)端口速率可以在FIFO生成時(shí)進(jìn)行設(shè)置,F(xiàn)IFO模塊生成時(shí)占用FPGA內(nèi)部的BLOCK RAM,即使存儲(chǔ)容量很小的FIFO也會(huì)占用整塊BLOCK RAM。FIFO端口包括輸入輸出端口、讀寫(xiě)使能、讀寫(xiě)時(shí)鐘及空滿標(biāo)志幾部分。其中,輸入輸出端口與數(shù)據(jù)總線連接用于數(shù)據(jù)傳輸;讀寫(xiě)使能由控制邏輯驅(qū)動(dòng)完成一次讀寫(xiě)操作;讀寫(xiě)時(shí)鐘信號(hào)完成讀域或者寫(xiě)域所有信號(hào)的同步;滿標(biāo)志表明由于該FIFO處于滿狀態(tài),寫(xiě)操作將被忽略,空標(biāo)志表明FIFO處于空狀態(tài),讀操作將不能獲得正確的數(shù)據(jù)。
FIFO控制邏輯進(jìn)行數(shù)據(jù)寫(xiě)入操作時(shí)首先判斷FIFO是否處于滿狀態(tài),如果FIFO處于滿狀態(tài),先從FIFO中讀出一條數(shù)據(jù),然后將新數(shù)據(jù)寫(xiě)入FIFO中。如果FIFO不處于滿狀態(tài)則直接進(jìn)行寫(xiě)操作。FIFO讀操作的時(shí)機(jī)由DSP控制,DSP內(nèi)的程序首先讀取空狀態(tài)寄存器判斷FIFO中是否存有數(shù)據(jù),如果寄存器顯示FIFO為空則取消讀操作,否則就從FIFO中讀出需要的數(shù)據(jù)。IP核對(duì)使能信號(hào)的訪問(wèn)時(shí)序有著嚴(yán)格地要求,使能信號(hào)必須于讀寫(xiě)時(shí)鐘完全同步,而且控制邏輯將使能信號(hào)的長(zhǎng)度控制在一個(gè)讀寫(xiě)時(shí)鐘周期內(nèi)。
4.4 數(shù)據(jù)的存儲(chǔ)
振動(dòng)采樣數(shù)據(jù)的數(shù)據(jù)量非常龐大,一旦出現(xiàn)錯(cuò)位將無(wú)法完整復(fù)現(xiàn)信號(hào)的原始狀態(tài),因此在對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)的同時(shí),對(duì)數(shù)據(jù)進(jìn)行時(shí)間標(biāo)記也是十分重要的。時(shí)間標(biāo)記在一個(gè)完整的記錄周期結(jié)束時(shí)進(jìn)行,調(diào)度模塊控制時(shí)標(biāo)開(kāi)關(guān)在所有的FIFO中存入時(shí)標(biāo)信息,F(xiàn)IFO中存儲(chǔ)在時(shí)標(biāo)以前的數(shù)據(jù)均為本周期的數(shù)據(jù),存儲(chǔ)在時(shí)標(biāo)信息以后的數(shù)據(jù)均為下一周期的數(shù)據(jù),時(shí)標(biāo)及數(shù)據(jù)記錄格式如表1所示。表中D15,D14位是保留位用于功能擴(kuò)展,D13,D12是表明存儲(chǔ)數(shù)據(jù)是時(shí)標(biāo)信號(hào)(01、02),或者采樣數(shù)據(jù)(00)。
4.5 數(shù)據(jù)的訪問(wèn)
DSP進(jìn)行數(shù)據(jù)還原時(shí),訪問(wèn)程序依據(jù)采集順序先從本周期起始通道開(kāi)始依次讀出采樣數(shù)據(jù),當(dāng)訪問(wèn)程序讀取到第一個(gè)時(shí)標(biāo)數(shù)據(jù)后本周期數(shù)據(jù)讀取完畢,訪問(wèn)程序繼續(xù)讀取后續(xù)通道的時(shí)標(biāo)信息,直至獲得所有通道的時(shí)標(biāo)數(shù)據(jù)后表明本次數(shù)據(jù)訪問(wèn)過(guò)程結(jié)束,如果訪問(wèn)程序連續(xù)獲得了所有通道的時(shí)標(biāo)信息表明采樣數(shù)據(jù)為完整有效的數(shù)據(jù),否則說(shuō)明在采樣過(guò)程中存在數(shù)據(jù)丟失的現(xiàn)象,數(shù)據(jù)不可信不能進(jìn)行后續(xù)處理,如果出現(xiàn)數(shù)據(jù)丟失現(xiàn)象則訪問(wèn)程序?qū)⑺型ǖ罆r(shí)標(biāo)數(shù)據(jù)讀出后本次訪問(wèn)結(jié)束。
5 結(jié)束語(yǔ)
文中設(shè)計(jì)了一種基于FPGA的振動(dòng)信號(hào)采集處理系統(tǒng),通過(guò)數(shù)據(jù)流管理等手段實(shí)現(xiàn)振動(dòng)信號(hào)的實(shí)時(shí)采集處理,本設(shè)計(jì)在真實(shí)環(huán)境中進(jìn)行了驗(yàn)證,系統(tǒng)運(yùn)行穩(wěn)定可靠,各項(xiàng)性能指標(biāo)滿足技術(shù)要求。
評(píng)論