基于DES5402PP的IIR滤波器设计与实现
在许多实际应用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的发送和接收初始化步骤
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的数据存储器功能
在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所示:
图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。
5 实验过程与结果分析
实验程序主要包括以下几个步骤:
(1),对DSP的寄存器、缓冲串口以及定时器初始化,确保能提供AC01正确的时钟信号。完成该步骤后,检测DSP的CLKR和FSR引脚可以看到连续输出的信号。
(2),同过DSP的缓冲串口对AC01进行初始化,正确设置AC01的采样率控制寄存器(表2中的R1),设置其采样频率。完成该步骤后,检测AC01的DOUT引脚可以发现有连续输出的信号。
(3),设置DSP的中断,从缓冲串口读取数据。这一步可以通过CCS环境查看读取的数据是否正确。如果正确,将采样数据送到滤波程序中,进行滤波处理,得到结果后,直接送到AC01的D/A单元输出。否则,返回步骤(1)。
滤波前后的波形如图2和图3所示。可以看到,比起滤波前的(a)图,(b)图的时域和频域波形得到明显改善,300Hz的信号基本被滤除。
TMS320C5402 TLC320AC01 IIR滤波器 CCS 相关文章:
- 采用TMS320C5402的数字压缩语音录放系统(07-12)
- 基于TLC320AC01与DSP的接口电路设计(01-15)
- 基于TLC320AC01与DSP的接口设计(09-25)
- 基于DSP CCS 2.2实现指纹识别预处理系统(07-28)
- 定点DSP C55X实现浮点相关运算(04-16)
- Stellaris LaunchPad入门讲座第二课——CCS开发环境介绍(上)(04-03)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...