MATLAB辅助DSP设计的研究与实现
Exchange)的连接对象。提供MATLAB和硬件DSP 之间的实时通信通道。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时地向硬件目标DSP发送和取出数据而不必停止DSP上运行的程序。例如把原始数据发送给程序进行处理,并把处理结果取回到MATLAB空间中进行分析。
RTDX连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,它们不能分别创建。
3)使用嵌入式对象。在MATLAB环境中创建一个可以代表嵌入在目标C程序中的变量的对象。利用嵌入式对象可直接访问嵌入在目标DSP中的存储器和寄存器中的变量,即把目标C程序中的变量作为MATLAB的一个变量对待。
3.2 CCSLink的工作原理
上面的三种方式在具体实现时略有不同,但是其原理相似,不失一般性,我们通过第一种方式--与CCS IDE的连接对象,来介绍CCSLink的工作机理。
1)选择目标DSP并创建CCS IDE连接对象
在MATLAB环境下使用函数ccsdsp并配置相应的属性名和属性值即可创建一个CCS IDE连接对象cc:
cc=ccsdsp(‘boardnum’, x, ‘procnum’, y, ‘timeout’, z);
其中,boardnum、procnum、timeout都是属性名。分别表示创建连接对象时所使用的目标板编号、DSP处理器编号及全局超时值。
2)在MATLAB环境下加载CCS工程文件
projfile=fullfile(matlabroot, ‘toolbox’, ‘tiddk’, …, ‘ccsproject.pjt’); %取得工程文件
projpath = fileparts(projfile); %取得工程文件路径
open(cc, projfile); %加载工程文件,该函数实现把文件filename加载在CCS IDE中
cd(cc, projpath); %改变CCS的工作路径
3)在MATLAB环境下编译、连接并下载可执行文件
创建了CCS IDE连接对象并加载工程文件后,即可通过函数build()编译和链接工程文件,以生成针对目标DSP的可执行文件(.out文件);通过函数load()下载可执行文件到目标DSP中。
具体方法如下:
build(cc); %编译、链接工程文件,生成目标DSP可执行文件
load(cc, ‘ccsproject.out’); %下载可执行文件到目标DSP,可执行文件名与工程名相同
4)在MATLAB环境下控制程序运行
CCSLink提供了3个函数用于控制目标DSP的运行状态。通过这些函数,在MATLAB下对DSP的控制操作就像在CCS IDE中一样方便,实际上也确实是这样进行的。
halt(cc); %中断处理器的运行
restart(cc); %复位程序计数器PC,重新执行程序
run(cc, ‘runtohalt’, 30); %执行程序到断点处,最后一个参数表示超时时间,此处为30s
5)在MATLAB环境下对CCS IDE连接对象进行操作
在MATLAB中可以方便的操作DSP存储器和寄存器中的数据,包括读操作和写操作。下面以读写目标DSP存储器和寄存器中的数据来说明。
date=read(cc, [256,0], ‘double’, 100); %从目标存储器目的地址100H(即十进制数256)处开始,读取100个双精度数并赋给MATLAB对象date
reg=regread(cc, ‘A0’, ‘2scomp’); %读取DSP寄存器A0中的数据,并转化成双精度数分配给MATLAB对象reg
write(cc, [256,0], double([1.0 2.0 3.0]));%向目标存储器100H开始的地址处,写入三个双精度数据
6)关闭CCS IDE连接对象
当一切操作执行完成后,需要删除ccsdsp对象,以收回系统资源。
clear cc; %关闭CCS IDE连接对象
4 CCSLink应用实例
通过CCSLink工具,可以使用MATLAB来进行DSP的辅助设计。在此以FIR滤波器为例,介绍CCSLink在DSP设计中的应用。在该实例中,FIR滤波的核心内容由DSP实现,而算法仿真、系数产生、用户界面、结果验证等部分由MATLAB辅助完成。
4.1 FIR滤波器设计
设输入信号为x(n),输出信号为y(n),则FIR滤波器对应的差分方程可表示为:
其中,h(k)(k=0,1,2,…,N-1)表示滤波器系数序列,是滤波器设计的关键。h(k)可以通过MATLAB工具箱提供的滤波器函数fir1()和fir2()来获取:首先通过建立MATLAB/Simulink模型,根据所需设计低通滤波器的性能要求来确定滤波器的阶数和截止频率等参数。本例所设计的FIR低通滤波器参数为:截止频率(Fc)2kHz,采样频率(Fs)8kHz,阶数(N)40。然后借助函
- 基于DSP和MATLAB的语音数据采集和处理系统(05-13)
- 简化“算法到C代码”是软件业的一项挑战(07-04)
- DSP与MATLAB的语音数据采集和处理系统(02-12)
- 基于MATLAB-DSP在无传感器矢量控制中的应用(05-04)
- 基于Matlab和VC混合编程的DSP数据采集系统(05-06)
- 基于FPGA设计DSP的实践与改进设计(05-11)