EDN China > 设计实例 > 模拟设计 > 正文
?

(多图) 基于DES5402PP的IIR滤波器设计与实现

2009年02月02日 ?? 收藏0

  0 引言

  在许多实际应用DSP系统中,输入信号既可以是语音信号、调制的电话信号、编码的数字信号、压缩后的图像信号,也可以是各种传感器输出的模拟信号,这就需要DSP通过A/D和D/A转换完成数字信号和模拟信号之间的转换,从而能使DSP处理模拟信号和将数字信号转换成易于人机交互的声、光、电等信号。DES5402PP是一个采用TI公司的TMS320C5402为核心处理器的实验开发板,它提供的TLC320AC01能很好的完成这一功能。

  1 IIR滤波器的MATLAB设计

  尽管IIR滤波器的算法比FIR滤波器要复杂,且不是因果稳定的,但IIR滤波器也具有多种优越性,它可充分利用模拟滤波器的设计成果,工作量相对较小;在相同的设计指标下,可以用较低的阶数获得较好的性能;所用的存储单元少,因此对于硬件来说,在相同时钟速率和存储空间下可以提供更好的带外衰减特性[1]。

  设低通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。它提供的各种类型的串口都可以在全双工方式下通信,其串口信号与许多符合工业标准的串行设备兼容,可以直接连接。当串口复位时,可通过DSP来关闭或打开串口工作时钟,并允许串口运行在低功耗模式下[2]。

  缓冲串口在BSP在标准串口的基础上增加一个自动缓冲单元ABU,是一种增强型标准串口。允许8、10、12、16、20、24或32位的数据传输。由于ABU是一个附加逻辑电路,它允许串口单元直接将数据读写到C5402的内部独立存储器,不需要CPU参与,从而使BSP传输速度更快。表1给出了BSP发送和接收数据初始化的操作步骤。

表1 BSP的发送和接收初始化步骤

BSP的发送和接收初始化步骤

  3 AC01的特点[3][4]

  TLC320AC01也是TI公司生产的一款集成有A/D和D/A的芯片,通过串口与DSP或其他设备通信。AC01的最高采样频率为25kHz,其数据精度为16位,采用单一5V电源供电。C5402与AC01连接后,可以只使用一个缓冲通道串口来同时实现数据的采集和输出,从而节省了DSP的硬件开销。因此,DSP与AC01的连接使用在信号处理中得到了广泛的应用。

  实验系统DES5402PP使用AC01作为模拟信号接口,有两个AC01,分别工作于“主”、“从”模式。利用“主AC01”产生合成的输入信号,“从AC01”将该信号转换成滤波的数据信号并输入到DSP芯片。其中,DSP还可以通过读写AC01的寄存器,控制AC01的采样频率、增益、低通、高通滤波器的截止频率等参数。AC01的九个控制寄存器如表2。

表2 TLC320AC01的数据存储器功能

TLC320AC01的数据存储器功能

  在AC01正常工作前,必须对它进行正确的初始化。初始化的操作主要工作是配置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所示:

主/从TLC320AC01和TMS320C5402的连接

图1 主/从TLC320AC01和TMS320C5402的连接

  4.2 C5402和AC01的软件连接

  先在C5402的数据存储空间写入256个数据(即三个正弦信号混合而成的测试信号的离散表示),然后通过缓冲串口将数据发送到“主AC01”,利用“主AC01”的D/A通道产生一个模拟信号作为IIR滤波器的输入信号。由于实验中DES5402PP的信号输出通道与输入通道相连,即“主AC01”的输出作为“从AC01”的输入,“从AC01”的DOUT端口与DSP芯片的DR端相连。另外,在串口通讯中,因为数据时钟和帧同步信号都由AC01产生,所以C5402将使用外部时钟和帧同步信号。在使用串口前,需要对它进行初始化,包括串口收发中断设置和串口寄存器的初始化,主要代码如下:

程序

  同时,要修改中断向量表以便正确响应串口的接收和发送中断请求,其中发送中断产生测试信号和完成对AC01的初始化。实际上对信号滤波的实现,就是指从A/D读到一个数据后调用滤波程序,然后输出数据到D/A。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

DES5402PP? IIR滤波器? DSP? TMS320C5402?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈