李幸旺 李海廣
內蒙古科技大學能源與環(huán)境學院 內蒙古 包頭 014000
頻譜分析儀在設備狀態(tài)檢測和故障排除中起著重要的作用,被廣泛應用于生產調試、施工勘測等領域[1]。然而市場上的大多數(shù)頻譜分析儀結構都比較復雜,而且價格相對較高??蓽y量的頻率范圍超過100KHz,而低于10KHz的頻譜分析儀很少。此外,頻譜分析儀分析信號的時候大都在現(xiàn)場進行測試,還應具有便攜性的特點。
FPGA是由PAL等可編程器件發(fā)展而來的[2],能夠按照用戶需求定制所需的功能,并且 FPGA 還具有強大的并行運算的能力,適用于大量的數(shù)字邏輯運算和對實時性要求比較高的信號處理中[3]。由于很多的信號在時域上來分析信號的特征是非常不便的,然而假設將時域的信號轉換到頻域后,再進行信號特征的分析就很容易了,這也就是信號分析經常使用FFT的重要因素。FFT作為一種將時域數(shù)據(jù)轉換為頻譜數(shù)據(jù)的方法,在信號處理等領域有著廣泛的應用[4]。隨著集成電路的發(fā)展,F(xiàn)PGA的功耗和成本逐漸下降[5],因此通過使用FPGA編程實現(xiàn)一個低功耗低頻的頻譜儀具有很高的意義。
假如使用F作為采樣的頻率,一次進行采樣N個數(shù)據(jù)點,將采樣頻率F除以采樣點數(shù)N得到的就是基波頻率。第n個點對應信號頻率為F*(n-1)/N。本次設計采用的為1kpbs采樣率,采樣點為128,因此采樣分辨率為1k/128 =7.8125Hz,由于經過傅里葉變換后的數(shù)值具有共軛對稱性,因此選取一半的點就可以顯示所有的信息。第64點為500Hz,由此設計的頻譜范圍為7.8~500Hz。
FPGA芯片選用EP4CE40F23C8芯片,其邏輯與存儲器資源相當豐富,可以滿足本次設計的需求,開發(fā)工具為芯片公司所開發(fā)的軟件Quartus II 13.1版本。所選用的模數(shù)轉換芯片采用的是ADI廠家所生產的AD7606芯片,這個芯片具有8個16位的同步采樣通道,而且8個通道都可以支持最高200kSPS的采樣率。本次設計使用8個里面的前4個通道,將采樣的數(shù)據(jù)輸入到FPGA進行FFT分析,最終的頻譜結果使用分辨率為800*480五寸顯示屏顯示。
設計的處理流程框圖如圖1,外部待測量的模擬信號通過AD7606進行模數(shù)轉換,以1kSPS的采樣率進行采樣,該項目采用4路信號進行輸入,分別同時進行快速傅里葉變換。將頻域的波形顯示在TFT顯示屏上,并且按下選擇按鍵(key_sel)的時候可以切換顯示頻譜圖的通道。數(shù)碼管的作用是來顯示異常信號的頻域范圍以及幅值大小,比如選擇按鍵顯示的是1通道,此時按下調整按鍵就可以對當前通道的的異常最小頻率、最大頻率、幅值的區(qū)間進行調整,在判斷模塊中進行和設置條件進行比對,當所測量信號中出現(xiàn)了所設置條件的頻率信號,此時蜂鳴器(beep)發(fā)出報警聲音,并且跟隨者LED燈也點亮閃爍來告知人們。直到按下停止按鍵(key_stop)警報才會消除。
圖1 處理流程圖
圖2 FFT變換頂層
FFT模塊里面包含fft_ctrl、ad_fifo、fft_ip、data_modulus 4個模塊。
2.2.1 ad_fifo。使用fifo IP將ad采集到的數(shù)據(jù)進行緩存,設置FIFO的寬度為16位,深度為128。
圖3 FlFO存儲
2.2.2 fft_ctrl。FFT控制模塊按照FFT IP核的數(shù)據(jù)控制信號時序原理,輸出相應的控制時序,在接收到FFT IP發(fā)出的數(shù)據(jù)準備信號(sink_ready)為高電平的時候,先進行判斷空信號(fifo_rd_empty)來確定數(shù)據(jù)緩存模塊(ad_fifo)內是否有數(shù)據(jù),如果緩存內無數(shù)據(jù)則繼續(xù)保持等待。當空信號(fifo_rd_empty)為低電平的時候,表示緩存模塊中有數(shù)據(jù),此時會將讀請求信號(fifo_rdreq)置為高電平來讀取緩存模塊中的數(shù)據(jù)。并且同時拉高數(shù)據(jù)有效信號(fft_valid)、包括一組FFT數(shù)據(jù)的開始信號(fft_sop)和數(shù)據(jù)的結束信號(fft_eop)。
圖4 FFT控制
2.2.3 fft_ip。Intel公司的FFT IP核具備穩(wěn)定性高和設計參數(shù)化優(yōu)勢,可以進行高性能的FFT變換和FFT逆變換[6-7]。使用的時候調用FFT IP核,按照各端口的時序將AD模塊采集到的數(shù)據(jù)輸入到IP核后,該模塊就可以輸出FFT后的數(shù)據(jù)。
圖5 FFT lP核
圖6 FFT lP核時序
設計中首先讓IP核等待32個時鐘周期之后再進行置位操作。在模塊正常工作后,當sink_ready數(shù)據(jù)準備信號為高電平時,表示可以進行數(shù)據(jù)的輸入了,將該信號輸出給上游的FFT控制模塊,F(xiàn)FT控制模塊就會從fifo中讀取數(shù)據(jù)。根據(jù)FFT控制模塊讀出的數(shù)據(jù)并根據(jù)輸出的開始信號(sink_sop)和數(shù)據(jù)有效信號(sink_valid),將讀出來的數(shù)據(jù)寫入FFT IP核中(sink_imag)實部輸入端口中。由于設計中的數(shù)據(jù)是一個實數(shù)沒有涉及虛部,此時FFT IP核中虛部接口輸入接地為全零信號。當結束信號(sink_eop)為高電平時,這個數(shù)據(jù)就是這一組數(shù)據(jù)的最后一個數(shù)據(jù)了。這時就把一組完整的數(shù)據(jù)接收完成了,然后在FFT模塊內部就開始進行FFT變換,此時只需要關注輸出的有效信號(source_valid)就可以知道數(shù)據(jù)是否轉換完成了。當該信號為高電平的時候表示輸出的數(shù)據(jù)有效,此時輸出開始信號(source_sop)拉為一個時鐘周期的高電平,直到最后一個轉換完成的數(shù)據(jù)輸出的時候輸出結束信號(source_eop)持續(xù)一個時鐘周期的高電平,表示一組數(shù)據(jù)轉換完成。
2.2.4 data_modulus。該模塊為數(shù)據(jù)取模模塊,將經過FFT產生的復數(shù)頻譜數(shù)據(jù)的進行求模運算。首先將復數(shù)的實部和虛部分別進行平方操作,然后再將虛部和實部平方后的數(shù)進行求和然后進行二次開方處理。這里的開方操作利用開平方根IP核,我們將前面計算得到的平方和輸送給sqrt IP核,就會得到頻譜的模值數(shù)據(jù)。
圖7 數(shù)據(jù)取模
圖8 顯示控制頂層
tft_top模塊內部例化了tft顯示控制模塊(tft_coordinates)、ram寫控制模塊(tftramw_ctrl)、tft數(shù)據(jù)地址讀取控制模塊(tftdata_ctrl)、tft數(shù)據(jù)緩存模塊(tftdata_ram)、tft顯示屏復位模塊(tft_rst)5個模塊
FFT模塊(fft_top)傳輸過來的頻譜數(shù)據(jù)經過ram寫控制模塊處理,送到tft數(shù)據(jù)緩存模塊和tft顯示屏復位模塊。tft數(shù)據(jù)緩存模塊根據(jù)ram寫控制模塊產生輸出給tft數(shù)據(jù)地址讀取控制模塊產生的寫地址信號進而將數(shù)據(jù)存儲到RAM中;tft顯示屏復位模塊將直接根據(jù)ram寫控制模塊產生的寫請求信號存儲到顯示屏復位模塊中,該模塊將產生的復位信號輸出到TFT顯示屏模塊。
tft顯示控制模塊由TFT顯示屏模塊輸入的行、場同步信號輸出讀請求數(shù)據(jù)信號,將讀請求信號輸入給tft數(shù)據(jù)地址讀取控制模塊中產生讀地址信號給tft數(shù)據(jù)緩存模塊。將讀出的數(shù)據(jù)進行兩路輸出,一路是直接輸出到模塊外部用于報警條件控制模塊;另一路是輸入到tft顯示控制模塊,控制TFT顯示屏模塊在合適的時間顯示相應的幅值信息數(shù)據(jù)。
該模塊設計使用4個按鍵,然而需要控制4個通道下的頻率和幅度信號。為了保證調整的信號就是預想通道下的信號,為此該模塊利用狀態(tài)機進行了實現(xiàn)。
我們將調整設定為16個狀態(tài),分別為通道1的初始狀態(tài)(頻率最小值)、通道1頻率最大值調整、通道1的幅度最大值、通道1的幅度最小值調整;依次下去最后顯示通道4的初始狀態(tài)(頻率最小值)、通道4頻率最大值調整、通道4的幅度最大值、通道4的幅度最小值調整。默認顯示通道1的數(shù)據(jù),當按下切換通道按鍵時,會切換到通道2的參數(shù),依次下去顯示通道4的參數(shù),當在通道4參數(shù)下按下切換按鍵時會重新回到通道1的參數(shù)。在顯示通道1的參數(shù)時,此時按下加、減按鍵調整為當前通道下最小頻率,按下調整按鍵,此時會調整當前通道的最大頻率,調整完成后可以控制當前最大最小頻率范圍內的頻率。再次按下調整按鍵時會切換到調整幅值,首先進行幅值最大值的調整,再次按下調整按鍵,調整的為幅值的最小值,再次按下回到通道1的初始狀態(tài)。其他通道調整方式均一致。
使用信號發(fā)生器產生一個120Hz的正弦波信號,將信號發(fā)生器的輸出端連接設計的AD轉換芯片的輸入端口,如圖9,對設備進行如上參數(shù)設定,其中a圖中0表示第一個通道,F(xiàn)A表示限定最小頻率,080表示限定最小頻率為80Hz;b圖中0表示第一個通道,F(xiàn)b表示限定最大頻率,160表示限定最大頻率為160Hz,此時代表限定頻率區(qū)間范圍為80~160Hz;c圖中0表示第一個通道,PA表示限定最小幅值,200表示限定最小幅值為200db;c圖中0表示第一個通道,Pb表示限定最大幅值,400表示限定最大頻率為400db,此時代表限定幅值區(qū)間范圍為200~400db。經過上述條件的限定,此時如果輸入的信號在80~160Hz的頻率幅值在200~400db區(qū)間,則不會發(fā)出警示。當頻率或者幅值超出上述區(qū)間,則設備會發(fā)出警告的聲音,并且伴隨LED燈閃爍,也可從TFT顯示屏中讀取當前信號的頻率值。
圖9 下板驗證
文中運用intel公司的 FFT IP核,設計FFT的外圍架構,最后配合AD和顯示屏以波形的形式進行展現(xiàn),方便了使用者的觀測。并通過軟件仿真與實際下板板級實驗驗證了本次設計方案的可行性,為便捷式低頻頻譜分析儀設計提供了一種設計思路,方便更好地在施工現(xiàn)場對數(shù)字信號進行分析。