基于TMS320VC5402
基于TMS320VC5402 DSK的自适应滤波器算法实验
电子工程与信息科学系 裴小平 李玉虎 梁晓雯
摘 要:本文简述了DSP处理器的发展概况,着重介绍了TMS320VC5402 DSK的软,硬件平台,并介绍了一个基于此平台的自适应数字滤波器的算法实验.
关键词:DSP;算法;JTAG;实验
Experiment of Adaptive Filter Algorithm Based on
TMS320VC5402 DSK
Dept. of Electronics Engineering and Information Science
Pei Xiaoping Li Yuhu Liang Xiaowen
Abstract: This paper introduced the development of DSP and emphasized on the software and hardware workbench of TMS320VC5402 DSK. An experimental example of adaptive filter algorithm was given.
Key words: DSP;algorithm;JTAG;experiment
数字信号处理(Digital Signal Processing简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科.近年来,随着计算机和网络技术的日益普及,DSP技术得到了迅速发展,尤其是在通信领域,DSP技术得到极为广泛的应用.
数字信号处理理论是在众多学科理论基础上发展起来的,与网络理论,信号与系统,通信理论,人工智能,模式识别等都密切相关.它可以利用计算机和专用处理设备,将自然界中的模拟的连续信号进行抽样,量化,转换成数字信号,从而进行滤波,估值,压缩,识别等处理.由于这些处理技术要求实时快速,一般的个人计算机远远不能满足,DSP处理器就是在这种情况下应运而生的.DSP处理器的强大功能,超常速度,迅速得到了广泛应用,反过来对DSP理论的发展又起到了极大的推动作用.
目前,DSP处理器的主要厂商有美国德州仪器公司(TI),AD公司,Motorola公司等.其中TI公司可谓业界巨首,TI DSP处理器全球市场占有率超过50%,在国内也被广泛采用.TI公司在国内许多高校投资建设了DSP实验室,我们中国科技大学电子工程与信息科学系也是受益者之一.自1994年以来,我们便以TI DSP开发系统为平台,开设了数字信号处理算法实验.
一,TMS320VC5402 DSK工作原理
TMS320VC5402 DSK是以TMS320VC5402处理器为核心的DSP 初学者工具(DSP Starter Kit).它提供了一个低功耗,独立的开发平台,使用户能评估和开发C54X DSP的应用程序,同时也可以作为以其他芯片为核心的DSP硬件设计的参考.TMS320VC5402 DSK的结构框图如图1所示,主要包括以下部分:
100M VC5402 DSP
64K16位的SRAM存储器
256K16位的FLASH存储器
JTAG仿真测试总线控制器(JTAG TBC)和并行接口控制器(Parallel
Port Controller)
电话网络接口(DAA)
麦克风/扬声器音频接口
RS-232异步数据接口
扩展子板接口(MEMORY I/F和PERIPHERAL I/F)
PC/ rs
TERMINAL
SPERAKER
MICROPHONE DC
5V
TEL LINE LED 8-POS DIP SW
Power LED
图1 TMS320VC5402 DSK结构框图
DSK的核心是TMS320VC5402芯片,它是TI公司的第五代产品,支持定点运算,内核电压为1.8V,I/O电压为3.3V,工作速率可达100MIPS.片内包括一个JTAG仿真接口,一个控制接口,一个主机接口(HPI),一个时钟接口,两个多通道缓冲串行接口McBSP0和McBSP1,McBSP0接电话网络接口,McBSP1接麦克风/扬声器音频接口.启动(boot)模式有三种:允许用户在运行环境中从NO-boot,ROM-boot或HPI-boot模式之间选择.
DSK通过16位外部存储器接口(EMIF)将片外64K16位的SRAM,256K16位的FLASH存储器以及扩展存储器接口与DSP VC5402相连,扩展存储器接口可以与外接子板相连.
DSK提供一个嵌入的IEEE标准 1149.1 JTAG(Joint Test Action Group)仿真模块,它可直接与编码设计调试软件CCS(Code composer debugger)兼容.IEEE标准 1149.1扫描逻辑仅用于仿真和测试.这个逻辑提供接口器件的边界扫描,用于测试引脚之间的连续性或进行DSP器件外设的操作测试.这种扫描逻辑接到内部扫描逻辑电路,扫描逻辑电路可以访问所有片内资源.DSP可以利用IEEE标准 1149.1串行的扫描引脚和专用仿真引脚进行在线仿真.DSK的嵌入JTAG仿真端口(由测试总线控制器TBC提供)与主机端口(HPI)一起与IEEE-1284并行接口相连.同时DSK也可以通过它的外部JTAG连接器与外部仿真器XDS510一起使用,进行外部仿真.
DSK的电话网络接口(DAA)与模数转换器TLC320AD50C连接,通过一个多通道缓冲串行端口(McBSP0)使DSP可以访问一个电话接口,多通道缓冲并行端口在软件控制下,可以访问外设扩展连接器.
麦克风/扬声器接口(3.5mm音频插座提供)与第二片TLC320AD50C连接.这片TLC320AD50C连在DSP第二个多通道缓冲串行端口(McBSP1)上,McBSP1与DSP的两个定时器和一个外部中断信号相连,同时与外设扩展连接器相连来使用外接子板.
通用异步接收发送器UART(Universal Asynchronous Receiver Transmitter)通过一个RS-232电平转换器与DB-9插座相连,组成串行异步输入输出接口.此接口可以与PC机相连.
可编程器件CPLD完成DSK所需的组合逻辑,并为DSP软件提供控制和状态接口.
两个80脚的子板连接器(MEMORY I/F和PERIPHERAL I/F),一个可以访问DSP的异步EMIF;另一个可以访问DSP的外设控制/状态信号.
25脚DB-25为IEEE-1284并口,通过PPC(Parellel Port Controller)与DSP的HPI和TBC的JTAG相连.
DSK提供了一个八脚的DIP开关,控制外部用户选项;还提供了一个按钮开关,允许手动复位(RESET).DSK上有一个电压管理器,监控内部产生的电压,并在复位期控制主板;四个LED,一个用于通电指示,其他三个用于用户控制指示.
DSK是一个需要+5VDC的独立板,板上的线性电压整流器提供1.8V的DSP核电压(Core Voltage),3.3VDC数字以及5VDC模拟电压.
二,DSP设计软件CCS DSK C5000
DSP CCS(Code Composer Studio)是DSP编码设计软件,它是一个开放型的,功能强大的集成开发环境,它主要包括代码生成和代码调试两部分.代码生成部分是将用C或汇编语言编写的DSP程序编译并连接成可执行的DSP程序;代码调试部分是对DSP程序及系统进行调试,使之能够达到设计目标.CCS DSK C5000是针对C54X DSK开发系统设计的软件平台,其中的C编译器只支持ANSI C,因此,在写C程序时一定要遵守ANSI C的语法.连接C程序时,应包含一个运行支持库(runtime-support library),该库中含有所有用到的C函数.CCS C5000软件具有很好的仿真功能,程序正确运行后,可以直接观察到运行结果.有关的具体使用方法在此不作详细说明.
三,自适应滤波器原理及算法
1.数字滤波器
数字滤波器是利用数字的方法,按预定的要求对信号进行变换,把输入的信号变成一定的输出信号,从而达到改变信号频谱的目的.从某种意义上讲,数字滤波器是具有某种"算法"的数字处理过程.按照滤波器结构可将数字滤波器分为:
(1)无限冲激响应滤波器(IIR)
(2)有限冲激响应滤波器(FIR)
FIR滤波器的差分方程是:
其直接型结构如图2所示
x(n) x(n-I) x(n-1)
h(0) h(n-1)
图2
2.自适应滤波器
在许多DSP的应用场合,由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和IIR两种具有固定滤波系数的滤波器无法实现最优滤波.在这种情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化.
自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的.一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法.自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构.图3示出了自适应滤波器的一般结构.
d(n)
e(n)
x(n)
y(n)
图3 自适应滤波器的一般结构
上图中,x(n)为输入信号,y(n)为输出信号,d(n)为参考信号或期望信号,e(n)则是d(n)和y(n)的误差信号.自适应滤波器的滤波器系数受误差信号e(n)控制,根据e(n)的值和自适应算法自动调整.
自适应算法的种类较多,最常用的有最小均方误差算法,即LMS算法.基本的LMS算法如下:
h(k,n+1) = h(k,n)+ue(n)x(n-k)
其中,h(k,n)和h(k,n+1)分别是迭代前后的系数值,n和n+1表示前后两个时刻,k=0~N-1,N为滤波器的阶数,u为收敛因子,e(n)为误差信号,x(n-k)是输入信号.
综上可知N阶自适应滤波器的算法如下:
for(k=0,k
立刻下载此文档