基于NiosII處理器的通用AD IP核的設計與實現
2.2 FIR濾波器模塊的設計
在實際應用的數據采集系統中,往往需要對外界模擬輸入信號進行濾波,以提取信號中有用的信息。在本設計中這部分的功能是由FIR濾波器模塊來完成的。FIR濾波器模塊采用Altera公司提供的FIR IP核來實現,通過Simulink軟件中的DSP Builder工具對其進行仿真并最終可以生成底層HDL代碼。由于TLC549的最高采樣頻率為40 kHz,本文設計了一個低通濾波器,它的采樣頻率為40 kHz,3 dB截止頻率為100 Hz。在Simulink軟件中建立的FIR IP核的仿真模型如圖4所示。本文引用地址:http://www.104case.com/article/151966.htm
圖4中nco_v8_0模塊和nco_v8_1模塊是2個數控振蕩器,分別用于產生100 Hz和1 kHz的正弦信號,signal add模塊是并行加法器,它將兩路正弦信號進行疊加并將和信號輸出。fir_compiler_v8_0模塊是FIR IP核,它將signal add模塊輸出的和信號作為輸入,并將數字濾波的結果輸出到示波器進行顯示。仿真結果如圖5和圖6所示。
由圖5可以看出:第1路是頻率為100 Hz的正弦信號,第2路是頻率為1 kHz的正弦信號,第3路是前兩路信號的疊加。圖6中顯示的是經過數字濾波后的波形,可以看出只有100 Hz的頻率分量存在,1 kHz的信號被濾除了,從而完成了對FIR IP核的功能驗證。通過圖4中的Signal Compiler工具可以完成該FIR IP核的底層HDL代碼的生成。
FIR濾波器模塊采用Altera公司提供的FIR IP核來實現,具有高性能、可配置、可重用等特點。設計者只需根據整個系統的需求以及所選用AD芯片的采樣速率等參數確定濾波器的類型與系數,并對該IP核進行參數化、實例化,即可完成針對該款AD芯片的FIR濾波器模塊的設計。因此這部分的設計對于不同的AD芯片是相對獨立的,具有很好的通用性。
2.3 FIFO緩存模塊的設計
為了連續和正確地采集數據,實現無縫緩沖,本設計利用了FIFO做數據緩存。由于TLC549是8位的AD芯片,故本設計采用1個512×8 bit 的FIFO來存儲采樣的數據。當FIFO中的數據存滿時,它會向Nios II CPU產生一個中斷信號。頂層應用程序可以通過中斷服務程序將FIFO中的數據讀到內存中進行處理。這樣既不會造成數據的丟失,同時可以保證CPU較高的效率,很好地解決了上述的速度不匹配的問題。
FIFO緩存模塊的設計對于不同的AD芯片是相對獨立的,設計者只需根據所選用AD芯片的精度、采樣速率、時鐘速率等參數確定FIFO緩存的位寬和深度,并對FIFO進行參數化、實例化,即可完成針對該款AD芯片的FIFO緩存模塊的設計,因此具有很好的通用性。
評論