本文简单介绍了IIR数字滤波器的原理及设计方法,通过分析TMS320C5402的串口工作方式和TLC320AC01的特点,构建了C5402和AC01的连接方法,使系统既可以处理数字信号也可以处理模拟信号。在CCS环境和DES5402PP开发板的基础上,给出了系统具体的设计方案,实现了IIR滤波器的功能。
1 IIR滤波器的MATLAB设计
IIR滤波器有以下几个特点:
⑴ IIR数字滤波器的系统函数可以写成封闭函数的形式。
⑵ IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。
⑶ IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
⑷ IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。
尽管IIR滤波器的算法比FIR滤波器要复杂,且不是因果稳定的,但IIR滤波器也具有多种优越性,它可充分利用模拟滤波器的设计成果,工作量相对较小;在相同的设计指标下,可以用较低的阶数获得较好的性能;所用的存储单元少,因此对于硬件来说,在相同时钟速率和存储空间下可以提供更好的带外衰减特性。
设低通IIR切比雪夫滤波器的采样点为256个,采样频率为600Hz,输入为两个频率分别为100Hz和300Hz的正弦信号的合成信号。设定截止频率为200Hz,可以预料,将保留100Hz的信号,300Hz的信号基本被滤掉。
根据系统的设计流程,先在MATLAB中求得IIR滤波器的系数。主要分为三个步骤:产生本系统的测试信号;调用MATLAB中的滤波器函数,求出滤波器的系数;调用filter函数进行滤波,输出滤波后的信号。验证滤波器的性能后,将滤波器的系数通过程序写成.inc的文件,通过.include语句将其写入DSP汇编程序中。
2 C5402的缓冲串口(BSP)工作方式
TMS320C5402是TI公司生产的16位定点、速度为100MIPS、RAM为16×16位、ROM为4K×16位、可编程、低功耗和高性能的DSP。它提供的各种类型的串口都可以在全双工方式下通信,其串口信号与许多符合工业标准的串行设备兼容,可以直接连接。
缓冲串口在BSP在标准串口的基础上增加一个自动缓冲单元ABU,是一种增强型标准串口。允许8、10、12、16、20、24或32位的数据传输。由于ABU是一个附加逻辑电路,它允许串口单元直接将数据读写到C5402的内部独立存储器,不需要CPU参与,从而使BSP传输速度更快。表1给出了BSP发送和接收数据初始化的操作步骤。
3 AC01的特点
TLC320AC01也是TI公司生产的一款集成有A/D和D/A的芯片,通过串口与DSP或其他设备通信。C5402与AC01连接后,可以只使用一个缓冲通道串口来同时实现数据的采集和输出,从而节省了DSP的硬件开销。因此,DSP与AC01的连接使用在信号处理中得到了广泛的应用。
实验系统DES5402PP使用AC01作为模拟信号接口,有两个AC01,分别工作于“主”、“从”模式。利用“主AC01”产生合成的输入信号,“从AC01”将该信号转换成滤波的数据信号并输入到DSP芯片。其中,DSP还可以通过读写AC01的寄存器,控制AC01的采样频率、增益、低通、高通滤波器的截止频率等参数。AC01的九个控制寄存器如表2。
在AC01正常工作前,必须对它进行正确的初始化。采样频率Fs=MCLK/2AB,其中,MCLK为DSP的工作频率,A,B分别为A,B寄存器的内容。由于实验设置采样频率为600Hz,因此设A,B寄存器的内容分别为5和4。即:
4 C5402和AC01的连接方式
4.1 C5402和AC01的硬件连接
在主/从模式下,DSP可以不通过其他器件而直接与两个AC01相连。其硬件连接如图1所示:
图1 主/从TLC320AC01和TMS320C5402的连接
4.2 C5402和AC01的软件连接
先在C5402的数据存储空间写入256个数据,然后通过缓冲串口将数据发送到“主AC01”,利用“主AC01”的D/A通道产生一个模拟信号作为IIR滤波器的输入信号。在串口通讯中,因为数据时钟和帧同步信号都由AC01产生,所以C5402将使用外部时钟和帧同步信号。在使用串口前,需要对它进行初始化,包括串口收发中断设置和串口寄存器的初始化,主要代码如下:
同时,要修改中断向量表以便正确响应串口的接收和发送中断请求,其中发送中断产生测试信号和完成对AC01的初始化。实际上对信号滤波的实现,就是指从A/D读到一个数据后调用滤波程序,然后输出数据到D/A。
5 实验过程与结果分析
实验程序主要包括以下几个步骤:
⑴ 对DSP的寄存器、缓冲串口以及定时器初始化,确保能提供AC01正确的时钟信号。
⑵ 同过DSP的缓冲串口对AC01进行初始化,正确设置AC01的采样率控制寄存器(表2中的R1),设置其采样频率。
⑶ 设置DSP的中断,从缓冲串口读取数据。这一步可以通过CCS环境查看读取的数据是否正确。如果正确,将采样数据送到滤波程序中,进行滤波处理,得到结果后,直接送到AC01的D/A单元输出。否则,返回步骤(1)。
滤波前后的波形如图2和图3所示。可以看到,比起滤波前的(a)图,(b)图的时域和频域波形得到明显改善,300Hz的信号基本被滤除。
(a)滤波前的信号波形&nBSP; (b)滤波后的信号波形
图2 滤波前后信号的时域波形
(a)滤波前的信号频率 (b)滤波后的信号频率
图3 滤波前后信号的频域波形
在图2(b)中,可以看到,只剩下一种频率的正弦信号。从频域来看,在图3(b)中,高频部分已经基本削弱,同时低频也有少量损失,只要将滤波器的阶数高一些或者截止频率稍微定低一些,便能更大程度的保留低频信号、消除高频信号。
6 结语
在信号与信息的过滤、检测和预测等处理中,都要使用滤波器,数字滤波器是数字信号处理中使用广泛的一种方法。IIR数字滤波器的设计过程中,可以借助模拟滤波器的设计成果或直接采用典型的滤波器类型,减少工作量。而在信号的输入输出过程中,往往需要A/D和D/A转换,TLC320AC01模拟接口电路便可方便的实现这一转换。此外,DSP芯片本身具有并行的硬件乘法器、流水线结构以及快速片内RAM等资源,容易实现滤波运算,且程序可移植性好,不同性能的滤波器只需要修改滤波器的参数即可。
参考文献
[1]齐海兵,平,陶文超。无限冲激响应滤波器的设计与实现[J]。微计算机信息,2006,10-2:84-85.
[2]汪安民,陈明欣,朱明。TMS320C54xxDSP实用技术[M].北京:清华大学出版社,2007:48-204.
[3] Texas Instrument. TLC320AC01C Data Manual.
[4] Texas Instrument. InteRFacing TMS320C54x DSPs to TLC320AC01/02 Analog Interface circuits
[5] TLC320AC01 datasheet https://www.dzsc.com/datasheet/TLC320AC01_8838.html.
[6] ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[7] ABU datasheet https://www.dzsc.com/datasheet/ABU_2278676.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。