基于DSP/BIOS的FIR數字濾波器設計與實現
(2)新建一個DSP/BIOS的配置文件,命名為Fiher.cmd,并將其加入該工程中。在配置文件中設置所用到的硬件中斷,它對應A/D采樣的硬件中斷。還需設置一個軟件中斷,用來對A/D轉換模塊采集到的數據濾波。因為濾波器處理數據需一定時間,所以將其放到軟件中斷中,通過BIOS的任務調度實現對信號的濾波。
(3)配置系統時鐘,系統有基于PLL的時鐘模塊,為器件及各種外設提供時鐘信號。在X1/XCLKIN和X2兩個引腳間連接一個30MHz的晶體振蕩器(可采用外部時鐘),將輸入的時鐘信號直接接到X1/XCLKIN引腳,而X2引腳懸空,這種情況下,不使用內部振蕩器。然后經PLL倍頻后,為系統提供時鐘。通過PLLCR寄存器的值可配置15~150 MHz的時鐘。則TMS320F2812得到SYSCLKOUT,通過配置高速外設時鐘HISPCP和慢速外設時鐘LOSPCP控制外設,從而實現整個系統的時鐘系統控制。這里設置系統的時鐘HSPCLK為150 MHz。
(4)數字濾波器通過EVA1模塊設置采樣頻率。首先將該模塊配置為連續增計數模式。當周期寄存器和定時器的值相等時,產生一個外設中斷請求,選擇其啟動A/D轉換器,則在中斷標志位置位的同時將A/D轉換啟動信號送至A/D轉換模塊。故只需配置定時器的周期值,便可改變A/D轉換器的采樣頻率。濾波器的通用定時器采用內部CPU時鐘(HSPCLK)作為時鐘源,而內部時鐘源可通過時鐘預定標參數寄存器設置。這里設置的內部高速外設時鐘為系統時鐘。
(5)A/D轉換模塊的配置。A/D轉換模塊的A/D轉換器有16個通道,可配置為2個獨立的8通道模塊,分別服務于事件管理器A和B。兩個獨立的8通道模塊也可級聯構成一個16通道模塊。盡管在模數轉換模塊中有多個輸入通道和兩個排序器,但僅有一個轉換器。將其配置為兩個獨立8通道模塊,讓EVA事件管理器A觸發A/D轉換器、信號從ADINAO引腳輸入,從ADCRESULTO結果寄存器中讀取轉換結果。
(6)處理采集到的數據,即是對采集的信號進行濾波。首先根據信號通過濾波器設計過程進行運算,得到系統差分方程的系數,用一個數組存放該系數,以方便計算。主程序的數據采集即硬件中斷所要完成的工作。
為驗證所設計濾波器的濾波效果,將其應用于某電路實驗的實測信號濾波,濾波前后波形如圖2所示。由圖2可看出,濾波效果較好。本文引用地址:http://www.104case.com/article/173546.htm
![]() |
5 結論
所設計的濾波器濾波效果理想,達到了設計要求。在DSP/BIOS多任務的調度下,不但可在濾波算法的基礎上添加新任務,實現多任務系統,而且還能較好地滿足需進行濾波處理的系統開發。
評論