基于DSP/BIOS的FIR数字滤波器设计与实现

基于dsp/bios的fir数字滤波器设计与实现
1 引言
数字信号处理器(dsp)拥有强大的数字信号处理能力,与其配套的集成可视化开发环境ccs(coder composer stu-dio)更方便了 dsp应用程序的开发。dsp/bios是ccs的重要组成部分,它实质上是一种基于dsp平台的规模可控的实时操作系统内核。这里主要研究在dsp上利用dsp,bios实现fir数字滤波器的方法。
2 tms320f2812及dsp/bios内核介绍
tms320f2812是基于tms320c2xxx内核的定点数字信号处理器,具有数字信号处理及强大的事件管理和嵌入式控制功能,适于有大批量数据处理的控制系统。其性能可用于数字滤波器设计。
tms320f2812采用高性能的静态cmos技术,时钟频率达150 mhz;低功耗(内核电压1.9 v,i/o口电压3.3 v);采用哈佛总线结构,片上集成许多片上外设,可实现更多功能。开发环境是集成开发环境ccs,支持c/c++/汇编嵌入式实时操作系统dsp/bios,jtag调试接口。
dsp/bios内核是一个尺寸可伸缩的实时内核,它是为实时信号处理应用而设计的,主要包括:(1)dsp/bios配置工具。该工具可用来创建和配置在应用程序中使用的dsp/bios内核对象,也可使用该工具配置存储器,线程优先权以及中断处理;(2)dsp/bios实时分析工具。ccs中的分析丁具使用户可测试和分析目标dsp上应用程序的运行,包括监测cpu负荷、日志、线程执行情况等;(3)dsp/bios api函数。用户在pc端采用c、c++或汇编语言编写调用dsp/bios api函数的应用程序;(4)器件支持库。提供许多宏和函数,用来简化片上外设的配置和管理。
3 数字滤波器分析
数字滤波器根据冲激响应持续时间可分为有限冲激响应滤波器(fir)和无限冲激响应滤波器(iir)。其中fir滤波器能够保证严格的线性相位特性,且不存在稳定性问题。窗函数法和频率采样法等是设计fir数字滤波器的常用方法。窗函数法在时域中进行,其原理简单,易于实现,但存在在相同设计指标下滤波器的阶数通常会偏大的问题。频率采样法对于只有少数几个非零值采样的窄带选频滤波器较有效。这里分析如何在dsk2812板上利用ccs本身所带的操作系统实现一种通过窗函数法实现的fir滤波器。fir滤波器的各项指标可以通过现有的表查找,其设计步骤如下:
(1)给定所要求的理想频率响应函数hd(ejw);(2)对理想频率响应函数进行反傅里叶变换,则得到系统单位脉冲响应为:hd(n)=idftft[hd(ejw)];(3)根据过渡带及阻带衰减最小的要求查表,可选定窗ω(n)的形状及除数,n的大小,一般n的值要做几次试探才能最终确定;(4)得到所设计的fir滤波器的单位抽样响应(该响应逼近理想):h(n)=hd(n)ω(n),n=0,1…,n-1;(5)求h(ejw)=dtft[h(n)],检查是否满足设计要求,若不满足,则需重新按照上述步骤设计。
4 数字滤波器的实现
要实现的低通fir滤波器:通带边缘频率ωp=10 khz,阻带边缘频率ωs=22 khz,阻带衰减δ2=75 db,采样频率fs=50 khz。根据对滤波器的分析可求得系统的差分方程。所求得的h(n)在程序设计过程中可用一个数组存放。x(n)是a/d转换器采样值。让其逐项相加,再输出即可。实现滤波器所采用的硬件平台为dsk2812,实现流程如图1所示。
(1)启动ccs,新建一个丁程,命名为filter。
(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可看出,滤波效果较好。
5 结论
所设计的滤波器滤波效果理想,达到了设计要求。在dsp/bios多任务的调度下,不但可在滤波算法的基础上添加新任务,实现多任务系统,而且还能较好地满足需进行滤波处理的系统开发。

边缘计算适用于那些领域
什么是视频矩阵和数字矩阵,带宽是什么?
对Mesh网络的支持使低功耗蓝牙技术进入更加广泛的应用领域
升级老电脑固态硬盘的注意事项~!
聊聊VR技术背后的原理
基于DSP/BIOS的FIR数字滤波器设计与实现
激光技术是如何颠覆了钢管切割行业的
FLIR红外热像仪助力畜牧业高质量发展
印制电路板中的地线设计技术简介
小米明日凌晨发布会,米粉最期待小米6、小米平板3,就问雷军有没有
Facebook造芯片是认真的!
智能音箱走到了哪一步?2017年智能音箱将何去何从?
NASA证实新冠病毒疫情影响了很多太空项目
中企正加紧生产4万台制氧机驰援印度!
iPhone15叠层电池是什么,叠层电池与现有卷绕电池有什么差异?
安森美M1 1200 V SiC MOSFET动态特性分析
浅谈造成全国彩电线下市场零售量下跌主要原因
5G带来的很多愿景将能够赋能工业制造
猎豹入局智能音箱市场,智能音箱市场的突围之路究竟在何方?
海南电网与多家公司签订了战略合作协议将积极探索新型商业运营模式