《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于DSP/BIOS的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)
基于DSP/BIOS的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)
摘要: 數(shù)字信號處理器(DSP)擁有強(qiáng)大的數(shù)字信號處理能力,與其配套的集成可視化開發(fā)環(huán)境CCS(Coder Composer Stu-dio)更方便了 DSP應(yīng)用程序的開發(fā)。DSP/BIOS是CCS的重要組成部分,它實(shí)質(zhì)上是一種基于DSP平臺的規(guī)??煽氐膶?shí)時(shí)操作系統(tǒng)內(nèi)核。這里主要研究在DSP上利用DSP,BIOS實(shí)現(xiàn)FIR數(shù)字濾波器的方法。
Abstract:
Key words :

  1 引言

  數(shù)字信號處理器(DSP)擁有強(qiáng)大的數(shù)字信號處理能力,與其配套的集成可視化開發(fā)環(huán)境CCS(Coder Composer Stu-dio)更方便了 DSP應(yīng)用程序的開發(fā)。DSP/BIOS是CCS的重要組成部分,它實(shí)質(zhì)上是一種基于DSP平臺的規(guī)??煽氐膶?shí)時(shí)操作系統(tǒng)內(nèi)核。這里主要研究在DSP上利用DSP,BIOS實(shí)現(xiàn)FIR數(shù)字濾波器的方法。

  2 TMS320F2812及DSP/BIOS內(nèi)核介紹

  TMS320F2812是基于TMS320C2XXX內(nèi)核的定點(diǎn)數(shù)字信號處理器,具有數(shù)字信號處理及強(qiáng)大的事件管理和嵌入式控制功能,適于有大批量數(shù)據(jù)處理的控制系統(tǒng)。其性能可用于數(shù)字濾波器設(shè)計(jì)。

  TMS320F2812采用高性能的靜態(tài)CMOS技術(shù),時(shí)鐘頻率達(dá)150 MHz;低功耗(內(nèi)核電壓1.9 V,I/O口電壓3.3 V);采用哈佛總線結(jié)構(gòu),片上集成許多片上外設(shè),可實(shí)現(xiàn)更多功能。開發(fā)環(huán)境是集成開發(fā)環(huán)境CCS,支持C/C++/匯編嵌入式實(shí)時(shí)操作系統(tǒng)DSP/BIOS,JTAG調(diào)試接口。

  DSP/BIOS內(nèi)核是一個(gè)尺寸可伸縮的實(shí)時(shí)內(nèi)核,它是為實(shí)時(shí)信號處理應(yīng)用而設(shè)計(jì)的,主要包括:(1)DSP/BIOS配置工具。該工具可用來創(chuàng)建和配置在應(yīng)用程序中使用的DSP/BIOS內(nèi)核對象,也可使用該工具配置存儲器,線程優(yōu)先權(quán)以及中斷處理;(2)DSP/BIOS實(shí)時(shí)分析工具。CCS中的分析丁具使用戶可測試和分析目標(biāo)DSP上應(yīng)用程序的運(yùn)行,包括監(jiān)測CPU負(fù)荷、日志、線程執(zhí)行情況等;(3)DSP/BIOS API函數(shù)。用戶在PC端采用C、C++或匯編語言編寫調(diào)用DSP/BIOS API函數(shù)的應(yīng)用程序;(4)器件支持庫。提供許多宏和函數(shù),用來簡化片上外設(shè)的配置和管理。

  3 數(shù)字濾波器分析

  數(shù)字濾波器根據(jù)沖激響應(yīng)持續(xù)時(shí)間可分為有限沖激響應(yīng)濾波器(FIR)和無限沖激響應(yīng)濾波器(IIR)。其中FIR濾波器能夠保證嚴(yán)格的線性相位特性,且不存在穩(wěn)定性問題。窗函數(shù)法和頻率采樣法等是設(shè)計(jì)FIR數(shù)字濾波器的常用方法。窗函數(shù)法在時(shí)域中進(jìn)行,其原理簡單,易于實(shí)現(xiàn),但存在在相同設(shè)計(jì)指標(biāo)下濾波器的階數(shù)通常會偏大的問題。頻率采樣法對于只有少數(shù)幾個(gè)非零值采樣的窄帶選頻濾波器較有效。這里分析如何在DSK2812板上利用CCS本身所帶的操作系統(tǒng)實(shí)現(xiàn)一種通過窗函數(shù)法實(shí)現(xiàn)的FIR濾波器。FIR濾波器的各項(xiàng)指標(biāo)可以通過現(xiàn)有的表查找,其設(shè)計(jì)步驟如下:

  (1)給定所要求的理想頻率響應(yīng)函數(shù)Hd(ejw);(2)對理想頻率響應(yīng)函數(shù)進(jìn)行反傅里葉變換,則得到系統(tǒng)單位脈沖響應(yīng)為:hd(n)=IDFTFT[Hd(ejw)];(3)根據(jù)過渡帶及阻帶衰減最小的要求查表,可選定窗ω(n)的形狀及除數(shù),N的大小,一般N的值要做幾次試探才能最終確定;(4)得到所設(shè)計(jì)的FIR濾波器的單位抽樣響應(yīng)(該響應(yīng)逼近理想):h(n)=hd(n)ω(n),n=0,1…,N-1;(5)求H(ejw)=DTFT[h(n)],檢查是否滿足設(shè)計(jì)要求,若不滿足,則需重新按照上述步驟設(shè)計(jì)。

  4 數(shù)字濾波器的實(shí)現(xiàn)

  要實(shí)現(xiàn)的低通FIR濾波器:通帶邊緣頻率ωp=10 kHz,阻帶邊緣頻率ωs=22 kHz,阻帶衰減δ2=75 dB,采樣頻率fs=50 kHz。根據(jù)對濾波器的分析可求得系統(tǒng)的差分方程。所求得的h(n)在程序設(shè)計(jì)過程中可用一個(gè)數(shù)組存放。X(n)是A/D轉(zhuǎn)換器采樣值。讓其逐項(xiàng)相加,再輸出即可。實(shí)現(xiàn)濾波器所采用的硬件平臺為DSK2812,實(shí)現(xiàn)流程如圖1所示。

實(shí)現(xiàn)流程

  (1)啟動(dòng)CCS,新建一個(gè)丁程,命名為FILTER。

  (2)新建一個(gè)DSP/BIOS的配置文件,命名為Fiher.cmd,并將其加入該工程中。在配置文件中設(shè)置所用到的硬件中斷,它對應(yīng)A/D采樣的硬件中斷。還需設(shè)置一個(gè)軟件中斷,用來對A/D轉(zhuǎn)換模塊采集到的數(shù)據(jù)濾波。因?yàn)闉V波器處理數(shù)據(jù)需一定時(shí)間,所以將其放到軟件中斷中,通過BIOS的任務(wù)調(diào)度實(shí)現(xiàn)對信號的濾波。

  (3)配置系統(tǒng)時(shí)鐘,系統(tǒng)有基于PLL的時(shí)鐘模塊,為器件及各種外設(shè)提供時(shí)鐘信號。在X1/XCLKIN和X2兩個(gè)引腳間連接一個(gè)30MHz的晶體振蕩器(可采用外部時(shí)鐘),將輸入的時(shí)鐘信號直接接到X1/XCLKIN引腳,而X2引腳懸空,這種情況下,不使用內(nèi)部振蕩器。然后經(jīng)PLL倍頻后,為系統(tǒng)提供時(shí)鐘。通過PLLCR寄存器的值可配置15~150 MHz的時(shí)鐘。則TMS320F2812得到SYSCLKOUT,通過配置高速外設(shè)時(shí)鐘HISPCP和慢速外設(shè)時(shí)鐘LOSPCP控制外設(shè),從而實(shí)現(xiàn)整個(gè)系統(tǒng)的時(shí)鐘系統(tǒng)控制。這里設(shè)置系統(tǒng)的時(shí)鐘HSPCLK為150 MHz。

  (4)數(shù)字濾波器通過EVA1模塊設(shè)置采樣頻率。首先將該模塊配置為連續(xù)增計(jì)數(shù)模式。當(dāng)周期寄存器和定時(shí)器的值相等時(shí),產(chǎn)生一個(gè)外設(shè)中斷請求,選擇其啟動(dòng)A/D轉(zhuǎn)換器,則在中斷標(biāo)志位置位的同時(shí)將A/D轉(zhuǎn)換啟動(dòng)信號送至A/D轉(zhuǎn)換模塊。故只需配置定時(shí)器的周期值,便可改變A/D轉(zhuǎn)換器的采樣頻率。濾波器的通用定時(shí)器采用內(nèi)部CPU時(shí)鐘(HSPCLK)作為時(shí)鐘源,而內(nèi)部時(shí)鐘源可通過時(shí)鐘預(yù)定標(biāo)參數(shù)寄存器設(shè)置。這里設(shè)置的內(nèi)部高速外設(shè)時(shí)鐘為系統(tǒng)時(shí)鐘。

 

  (5)A/D轉(zhuǎn)換模塊的配置。A/D轉(zhuǎn)換模塊的A/D轉(zhuǎn)換器有16個(gè)通道,可配置為2個(gè)獨(dú)立的8通道模塊,分別服務(wù)于事件管理器A和B。兩個(gè)獨(dú)立的8通道模塊也可級聯(lián)構(gòu)成一個(gè)16通道模塊。盡管在模數(shù)轉(zhuǎn)換模塊中有多個(gè)輸入通道和兩個(gè)排序器,但僅有一個(gè)轉(zhuǎn)換器。將其配置為兩個(gè)獨(dú)立8通道模塊,讓EVA事件管理器A觸發(fā)A/D轉(zhuǎn)換器、信號從ADINAO引腳輸入,從ADCRESULTO結(jié)果寄存器中讀取轉(zhuǎn)換結(jié)果。

  (6)處理采集到的數(shù)據(jù),即是對采集的信號進(jìn)行濾波。首先根據(jù)信號通過濾波器設(shè)計(jì)過程進(jìn)行運(yùn)算,得到系統(tǒng)差分方程的系數(shù),用一個(gè)數(shù)組存放該系數(shù),以方便計(jì)算。主程序的數(shù)據(jù)采集即硬件中斷所要完成的工作。

  為驗(yàn)證所設(shè)計(jì)濾波器的濾波效果,將其應(yīng)用于某電路實(shí)驗(yàn)的實(shí)測信號濾波,濾波前后波形如圖2所示。由圖2可看出,濾波效果較好。

濾波前后波形

  5 結(jié)論

  所設(shè)計(jì)的濾波器濾波效果理想,達(dá)到了設(shè)計(jì)要求。在DSP/BIOS多任務(wù)的調(diào)度下,不但可在濾波算法的基礎(chǔ)上添加新任務(wù),實(shí)現(xiàn)多任務(wù)系統(tǒng),而且還能較好地滿足需進(jìn)行濾波處理的系統(tǒng)開發(fā)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。