实验二拨码开关实验 —、实验目的 1.了解DSP开发系统的组成和结构 2.了解IO的基本编程方法 二、实验设备 计算机,CCS3.3版本软件,DSP仿真器,E300实验箱,2812CPU板。 三、实验原理 8位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过 74LS244(可读)缓冲连接到DSP的数据总线的低8位。CPU通过读指令读取到拨码开关产 生的8位输出的数字量,然后CPU通过写指令把读出的8位数字量写入(0x2200)单元内, 使连接到DSP的数据总线的低8位的74LS273的输出端产生高低信号,此时LED灯产生亮灭。 当对应LED灯点亮时说明输出为低,熄灭时为高。 (器件74LS244和74LS273详细的介绍请参看数据手册) 数字量输入输出单元的资源分配如下: 基地址:2000h(当CS1为0时分配有效) 数字量分配空间为数据空间地址:基地 址+0x2200(低8位,只读) 拨码开关扩展工作原理 说明:74LS244片选号、74LS273 片选信号和74LS273复位信号由E300 上CPLD译码产生。 本实验使用DSP数据总线的低8 位。 实验任务一: 1、编写程序完成将拨码开关的信息读入DSP,然后再将该信息回写,控制led灯。调整"数字输入输出单元"的开关K1~K8,观察LED1~LED8灯亮灭的变化。 2、本实验的程序流程框图如下:
3、输入主要程序 #include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File void main(void) { unsigned int temp; temp = 0; DINT; InitSysCtrl(); InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); for(;;) { asm(" nop "); temp = *(int *)0x2200&0x00ff; asm(" nop "); * (int *)0x2200 = temp; asm(" nop "); } } 四、实验步骤(步骤基本与实验一相同) 1. 2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。 2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。 3.运行Code Composer Studio (CCS)(CCS3.3需要“DEBUG→Connect”) 4. 用“Project\open”打开系统项目文件 路径为“c:\DSP_examep\DSP281X_examples\e300_02_switch\Example_281x_switch.pjt”双击该文件 5、输入主要程序。
一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。
硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图
参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程
实验报告 实验课程:DSP原理及应用 学生姓名: 学号: 专业班级: 2012年 5月 25日
目录 实验一定点除法运算 实验二FIR滤波器 实验三FFT算法 实验四卷积计算 实验五数码管显示 实验六语音录放
实验一定点除法运算 一、实验目的 1、熟悉C54指令系统,掌握常用汇编指令,学会设计程序和算法的技巧。 2、学习用指令实现除法运算。 二、实验设备 计算机;DSP 硬件仿真器;DSP 实验开发平台。 三、实验原理 由内置的硬件模块支持,数字信号处理器可以高速的完成加法和乘法运算。但TMS320 系列DSP不提供除法指令,为实现除法运算,需要编写除法子程序来实现。二进制除法是乘法的逆运算。乘法包括一系列的移位和加法,而除法可分解为一系列的减法和移位。本实验要求编写一个16 位的定点除法子程序。 1.除法运算的过程设累加器为8 位,且除法运算为10 除以3,除的过程包括与除数有关的除数逐步移位,然后进行减法运算,若所得商为正,则在商中置1,否则该位商为0 例如:4 位除法示例:(1)数的最低有效位对齐被除数的最高有效位00001010 - 00011000 11110010 (2)由于减法结果为负,丢弃减法结果,将被除数左移一位再减00010100 - 00011000 11111000 (3)结果仍为负,丢弃减法结果,将被除数左移一位再减00101000 - 00011000 00010000 (4)结果为正,将减法结果左移一位后把商置1,做最后一次减00100001 - 00011000 00001001 (5)结果为正,将减法结果左移一位加1 得最后结果,高4 位是余数,低4 位商:00010011 2.除法运算的实现为了尽量提高除法运算的效率,’C54x 系列提供了条件减指令SUBC 来完成除法操作。 四、实验步骤 1.用Simulator 方式启动Code Composer。 2 .执行Project New 建立新的项目,输入chuf作为项目的名称,将程序定位在D:\ti\myprojects\chuf目录。 3.执行File New Source File 建立新的程序文件,为创建新的程序文件命名为chuf.asm 并保存;执行Project Add Files to Project,把chuf.asm 加入项目中。4.执行File New Source File 建立新的文件并保存为chuf.cmd;执行Project Add Files to Project,把chuf.cmd 加入项目中。 5.编辑chuf.asm 加入如下内容: ;*** 编制计算除法运算的程序段。其中|被除数|<|除数|,商为小数*** .title "chuf.asm" .mmregs .def start,_c_int00
实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。
实验三 IIR 滤波器设计 一、实验目的: 1.认真复习滤波器幅度平方函数的特性,模拟低通滤波器的巴特沃思逼近、切比雪夫型逼近方法;复习从模拟低通到模拟高通、带通、带阻的频率变换法;从模拟滤波器到数字滤波器的脉冲响应不变法、双线性变换法的基本概念、基本理论和基本方法。 2掌握巴特沃思、切比雪夫模拟低通滤波器的设计方法;利用模拟域频率变换设计模拟高通、带通、带阻滤波器的方法.。 3.掌握利用脉冲响应不变法、双线性变换法设计数字滤波器的基本方法;能熟练设计巴特沃思、切比雪夫低通、带通、高通、带阻数字滤波器。 4.熟悉利用MATLAB 直接进行各类数字滤波器的设计方法。 二、实验内容 a. 设计模拟低通滤波器,通带截止频率为10KHz,阻带截止频率为16KHz,通带最大衰减1dB,阻带最小衰减20dB。 (1) 分别用巴特沃思、切比雪夫I、切比雪夫II 型、椭圆型滤波器分别进行设计,并绘制所设计滤波器的幅频和相频特性图。 (2) 在通带截止频率不变的情况下,分别用n=3,4,5,6 阶贝塞尔滤波器设计所需的低通滤波器,并绘制其相应的幅频响应和相频响应图。 %%%%%%%%%----巴特沃思-----%%%%%%% clc;clear all; omegap=10000*2*pi;omegas=16*10^3*2*pi; Rp=1;As=20; [N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次 [b,a]=butter(N,omegac,'s'); [H,w]=freqs(b,a); %设计滤波器的幅频和相频特性图 subplot(211) plot(w/2*pi/1000,20*log10(abs(H)))
实验三FIR滤波器的DSP实验报告 一、实验目的 1. 了解MATLAB的FIR滤波器设计方法与编程; 2. 掌握FIR滤波器算法基本原理和C语言的编程方法; 二、实验内容 FIR滤波器设计流程为,根据给出的滤波器设计(通带带宽、阻带衰减、相位要求)要求,在Matlab环境下仿真得到滤波器系数,得到了滤波器系数后在CCS下编程设计DSP 的FIR滤波器。 1.使用Matlab中的FDAtool设计FIR滤波器 设计实现fir低通滤波器,阶数为20,采样频率fs=8000Hz,截止频率fc=1500Hz,窗口设置为汉明窗Hamming。经过的信号频率是1000HZ和2000HZ的混叠波。 2.参阅FIR基本理论及C语言编程方法,研读、分析实验指导书中的代码; 3. 双击,启动CCS的配置程序选项,选择“C5502 Simulator”; 4. 启动CCS,打开实验工程文件,再编译并装载程序; 5. 仿真波形 A.输入信号波形 B.输入信号频 C输出信号波形
D 输出信号频谱 从输入信号和输出信号的频谱对比中可以看出,输出信号有1KHZ 和2KHZ 的混叠信号。经过FIR 低通录波器后,滤掉了2KHZ 的频谱。只剩下1KHZ 的频谱。 4.修改代码:滤波器设计要求:线性相位低通滤波器,模拟信号通带为0~1kHz ,阻带衰减在5kHz 处为-60dB 。采样率为20kHz 。 采用凯塞窗口设计此低通滤波器,设计过程如下: 通带边界频率为1KHZ ,阻带边界频率是5KHZ 有60dB 的衰减,可得: rad rad s p 22052,102012ππωππ ω==== 过渡带πωωω5 2 = -=?p s ,A=60dB 设计凯塞窗口的长度N 和参数β分别为: 29285.28 =?-≈ ω A N 65326.5)7.8(1102.0=-=a β 使用MA TLAB 设计此滤波器,过程如下: 1)在Matlab 的Start 菜单中选择Toolboxes -> Filter Design -> Filter Design & Analysis Tools(fdatool),或者在命令行中输入fdatool 来启动滤波器设计分析器。
DSP原理与应用 实 验 报 告 姓名: 专业: 班级: 学号: 成绩: 2013年5月13日《DSP原理与应用》实验报告
一、实验题目 数字IO应用实验 二、实验目的 1. 了解TMS320LF2407A DSP 的数字I/O 控制模块的使用方法; 2. 学习使用I/O 管脚控制外围设备; 3. 学会用程序驱动简单外围设备。 三、实验设备 计算机,教学实验箱 四、实验原理 1. TMS320LF2407A DSP 的数字I/O 控制模块介绍 数字输入/输出模块是集成在TMS320LF2407A 片内的外设之一,它主要对芯片的通用、双向的数字I/O(GPIO)引脚进行控制。这些I/O 引脚大多数是基本功能和一般I/O 复用的引脚,数字I/O 模块采用了一种灵活的方法,以控制专用I/O 和复用I/O 引脚的功能,所有I/O 和复用引脚的功能可通过9 个16 位控制寄存器来设置,这些寄存器可分为两类: ·I/O 口复用控制寄存器(MCRx):用于控制选择I/O 口作为基本功能方式或一般I/O 引脚功能; ·数据和方向控制寄存器(PxDATDIR):当I/O 口用作一般I/O 引脚功能时,用数据和方向控制寄存器可控制数据和到双向I/O 引脚的数据方向,这些寄存器直接和双向I/O 引脚相连。 具体控制寄存器的访问地址、定义请参见有关资料。 2. ICETEK-LF2407-A 板引出的I/O 管脚及使用方法 ICETEK-LF2407-A 板使用了一些I/O 管脚对DSP 进行控制。例如:跳线JP6 连接DSP 上MP/MC 管脚,在DSP 复位时,DSP 可读回这一管脚的设置,当管脚接高电平时,DSP 采用微处理器(MP)方式工作,否则设置成微控制器(MC)方式。ICETEK-LF2407-A 板在扩展插头上将未使用的I/O 引脚接出,提供给用户连接使用。其定义见ICETEK-LF2407-A 板说明。这些管脚支持0-3.3V 逻辑电平操作,用户在进行相应设置后可以在I/O 管脚上进行输入或输出操作,使用时须注意根据引脚本身的负载能力驱动相关设备。 3. ICETEK-LF2407-EDU 实验箱及控制模块使用的I/O 管脚
#include"math.h" #define PI 3.1415926 #define WANG 16 #define RUI 1024 int FIRLOW(int *nx,float *nh,int nError,int nCoeffNumber); float h[WANG],fU; int xx[RUI],rr[RUI],wc[RUI]; main() { int i,n_Output=0; fU=0.0005; for ( i=0;i FIR #include DSP实验报告 软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 实验三 快速傅里叶变换 FFT 一、实验目的 1.理解DFT 算法,并能用MATLAB 实现DFT 。 2. 加深对FFT 的理解,体会DFT 和FFT 之间的关系。 3.熟悉应用FFT 实现两个序列的线性卷积的方法。 二、实验原理 N 点序列x(n) 的DFT 和IDFT 定义: 若将DFT 变换的定义写成矩阵形式,则得到 X=A ﹒x ,其中DFT 变换矩阵A 为 ?????????? ????=---2)1(111...1......... ......11...11N N N N N N N W W W W A 可以用函数U=fft(u,N)和u=ifft(U,N)计算N 点序列的DFT 正、反变换。 三、实验内容 (一)离散傅里叶变换(DFT ) 1.用MATLAB 求N=16的有限序列)4/sin()8/sin()(ππn n n x +=的DFT 结果,并画出结果图。 参考程序如下: N=16; n=0:1:N-1; %时域采样 xn=sin(n*pi/8)+sin(n*pi/4); k=0:1:N-1; %频域采样 WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk; Xk=xn*WNnk; subplot(2,1,1) stem(n,xn); subplot(2,1,2) stem(k,abs(Xk)); 2.矩形序列x(n)=R (n),求N分别取8,32时的DFT,最后绘出结果图形。 5 参考程序如下: function[Xk]=dft(xn,N) n=[0:1:N-1]; %n的行向量 k=[0:1:N-1]; %k的行向量 WN=exp(-j*2*pi/N); %旋转因子 nk=n'*k; %产生一个含nk值的N乘N维矩阵WNnk=WN.^nk; %DFT矩阵 Xk=xn*WNnk; %DFT系数的行向量 调用上面函数解题。 N=8;x=[ones(1,5),zeros(1,N-5)]; n=0:N-1; X=dft(x,N); %N=8点离散傅立叶变换 magX=abs(X);phaX=angle(X)*180/pi; k=(0:length(magX)'-1)*N/length(magX); subplot(2,2,1);stem(n,x);ylabel('x(n)'); subplot(2,2,2);stem(k,magX);axis([0,10,0,5]);ylabel('|X(k)|'); N=32;x=[ones(1,5),zeros(1,N-5)]; n=0:N-1; X=dft(x,N); %N=32点离散傅立叶变换 magX=abs(X);phaX=angle(X)*180/pi; k=(0:length(magX)'-1)*N/length(magX); DSP实验报告 院系:哈尔滨理工大学荣成校区 专业:电子信息工程 学号: 1230160101 姓名:董小天 日期: 2015年6月16日 实验二有限冲击响应滤波器(FIR)算法实验 一、实验目的 1.掌握用窗函数发设计FIR数字滤波器的原理和方法; 2.熟悉线性相位FIR数字滤波器特性; 3.了解各种窗函数对滤波特性的影响; 二、实验设备 1.计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。 三、实验原理 1.有限冲击响应数字滤波器的基础理论; 2.模拟滤波器原理(巴特沃斯滤波器、且比学府滤波器、贝塞尔滤波器); 3.数字滤波器系数的确定方法。 四、实验步骤 1、复习如何设计FIR数字滤波;阅读本实验原理,掌握设计步骤; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 A.实验前准备: ①实验箱和CPU配置:SW2的2、4置ON,1、3置OFF;S2全置ON,S23置ON,JP3拨码开关的3、6位置ON,其余置OFF;S2全部置OFF. ②用到西安连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”; B.实验 启动CCS 3.1,打开文件Exp_fir.pjt工程文件;在i=0处设置断点;打开VIEW/GRAPH/TIME/FREQUENCY打开窗口,进行如下改动(参照图片),其中x,y分别表示经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果; 五、成果展示及代码 单击“Animate”运行程序,在实验箱上调整观察窗口并观察滤波的效果(滤波效果明显); DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。 第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。 实验三离散时间系统及响应 [实验目的] 1、熟悉离散时间系统的时域和频域分析方法。 2、掌握稳定系统性的判别。 3、掌握利用MATLAB求解零极状态、差分方程和频率响应的方法。 [实验仪器] 计算机、Matlab6.5(或更高版本)软件 [实验参考书] :自编实验指导书 与本实验有关的MA TLAB函数: 1. conv.m用来实现两个离散序列的线性卷积。其调用格式是:y=conv(x,h) 2.filter.m求离散系统的输出y(n) 。若系统的h(n) 已知,可用conv.m文件可求出y(n) ;若系统的H(z) 已知,可用filter可求出y(n),调用格式是: y=filter(b, a, x);%其中x, y, a 和b都是向量。 3.impz.m在H(z) 已知情况下, 求系统的单位抽样响应h(n)。调用格式是: h = impz(b, a, N) 或 [h,t]=impz(b,a,N) N是所需的的长度。前者绘图时n从1开始,而后者从0开始。 4.freqz.m在H(z) 已知情况下, 求系统的频率响应。基本的调用格式是: [H,w]=freqz(b,a,N,'whole',Fs) N是频率轴的分点数,建议N为2的整次幂;w是返回频率轴座标向量,绘图用;Fs是抽样频率,若Fs=1,频率轴给出归一化频率;’whole’指定计算的频率范围是从0~FS,缺省时是从0~FS/2. 5.zplane.m文件可用来显示离散系统的极-零图。其调用格式是: zplane(z,p), 或zplane(b,a), 前者是在已知系统零点的列向量z和极点的列向量p的情况下画出极-零图,后者是在仅已知H(Z)的A(z)、B(z) 的情况下画出极-零图。 [实验内容] 1、序列的卷积运算。下例是一个指数函数的卷积,结果如图所示。 clear all; fs=20; n =0:49; x=exp(-n/fs); subplot(211),stem(x) y=conv(x,x); subplot(212);stem(y);grid; 05101520253035404550 仿照上例,现在假设存在两个序列,()[,,,,,,] h n=54321,利用计 x n=9121041215()[,,,,] 实验一:DSP软件集成开发环境CCS 一. 实验目的 1.了解DSP 软件开发集成环境Code Composer Studio (CCS) 的安装和配置过程; 2.熟悉并掌握CCS 的操作环境和基本功能,了解DSP软件开发的一般流程: (1) 学习创建工程和管理工程的方法; (2) 了解工程文件和映像文件的基本内容; (3) 了解基本的编译和调试功能; (4) 学习使用观察窗口。 二. 实验设备 计算机、Code Composer Studio 2.2 或以上版本 三. 背景知识 1.DSP 应用系统开发一般需要借助以下调试工具: ―软件集成开发环境(CCS):完成系统的软件开发,进行软件和硬件仿真调试; ―硬件开发及测试平台:实现系统的硬件仿真与调试,包括仿真器和评估模块。 https://www.wendangku.net/doc/3118554368.html,S 集成了适用于所有TI 器件的源码编辑、编译链接、代码性能评估、调试仿真等功能,为 设计人员提供了一个完整的嵌入式系统软件开发环境。 3.系统软件部分可以通过CCS 建立的工程文件进行管理,工程文件一般包含以下几种文件: ―源程序文件:C 语言或汇编语言文件(*.ASM 或*.C) ―头文件(*.H) ―命令文件(*.CMD) ―库文件(*.LIB, *.OBJ) 四. 实验步骤 1. 创建工程文件 双击 CCStudio 图标,启动 CCS ,CCS 的初始界面包括工程管理区和工作区两部分。 在菜单中选择“Project —>New…”,弹出“Project Create ”窗口: 在“Project ”编辑框内填入项目名称,例如“hello1”;有必要的话,可以更改项目文件夹位置 (Location);“Project ”下拉框用以确定输出文件类型;目标硬件类型在“Target ”下拉框中指定。 点击“完成”后,CCS 自动在指定目录下生成“hello1.pjt ”工程文件。工程文件中保存了对应工程的设置信息和内部文件的引用情况。展开工程管理窗口“Projects ”下的“hello1.pjt ”,可以看到所有项目均为空。 任务 1:在 notepad 中打开“hello1.pjt ”,了解并记录工程文件提供的设置信息 若标题栏显示xxxx Emulator, 则需要先运行 Setup CCS, 选择合适的软件仿真环境 一:实验项目名称:TMS320F2812的GPIO实验 二:实验目的:学会使用ccs5.3开发环境以及GPIO的基本操作,通过实验学习使用 TMS320F2812的通用输入输出管脚直接控制外围设备的方法。 实验环境:pc一台,CCS5.3软件 三:实验原理: 四:实验步骤: 1:打开ccs5.3软件。 2依次单击File->New->CCS Project建立工程 3 在弹出的New Project对话框中单击Code Composer Studio,选择CCS Project,然后点击 Next 4 在弹出的对话框中,输入工程名字Led.c,在Family里选择C2000,在Variant的第二个复选框里选择TMS320F2812,在里选择empty project点击 Finish完成 5 将inc、source和F2812_nonBIOS_flash.cmd、rts2800_ml.lib拷贝到工程目录下; 6 在project面板里右键,New->Target Configuration File,在connect里面选择 ,然后在选择框中选择 TMS320F2812; 7 在main.c中编辑代码 8 连接好仿真器与开发板,按F11,下载并在线仿真 五:记录与处理: #include"DSP281x_Device.h" #include"System.h" void main(void) { InitSysCtrl(); EALLOW; GpioMuxRegs.GPBDIR.all |=0x00FF; EDIS; GpioDataRegs.GPBDAT.all = 0x0000; DelayUs(60000); GpioDataRegs.GPBDAT.all = 0x00f0; while(1) { 实验2.4 外中断 一.实验目的 1.通过实验熟悉VC5509A的中断响应过程。 2.学会C语言中断程序设计,以及运用中断程序控制程序流程。 二.实验设备 计算机,ICETEK-VC5509-A实验箱及电源。 三.实验原理 1.中断及中断处理过程: ⑴中断简介:中断是一种由硬件或软件驱动的信号,DSP在接到此信号时,将当前程序悬挂起来,转去执行另外一个任务,这个任务我们称为中断服务程序(ISR)。TMS320C55x DSP 可支持32个ISR,可由硬件或软件触发。 ⑵DSP处理中断的步骤: ①接收中断请求:由软件或硬件发出。 ②响应中断请求:对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中断,则立即响应。 ③准备执行中断服务程序。 - 完成当前正在执行的指令;将进入流水线但还未解码的指令清除。 - 自动保存若干寄存器的值到数据堆栈和系统堆栈。 - 取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。 ④执行中断服务程序。中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的关键寄存器数据,从而恢复中断服务程序执行前的现场。 ⑶中断向量表: 中断向量表的构成请参见TI的文档sprs295d.pdf之3.11节。 中断向量表的地址可以由用户指定。 ⑷外中断: TMS320C5509可以响应INT0-INT4五个外中断。 2.ICETEK-CTR板的键盘接口: 显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP的INT2发送中断信号;当DSP读键盘时将扫描码送到数据总线上。小键盘上每次按下一个键将产生2个扫描码,2次中断。 3.程序编制 由一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使用INT2): ⑴编制中断服务程序:参见实验程序,编写单独的一个函数XINT,此函数使用interrupt 修饰,没有参数和返回值。 ⑵构造中断向量表:可以用汇编语言构造,编写一个汇编语言模块程序vector.asm。 ⑶修改链接命令文件:在MEMORY小节中开辟单独的地址段用以存放中断向量表;在SECTIONS小节中指定.vectors段到前步开设的内存段中。 ⑷主程序中进行初始化设置:定位中断向量表、使能中断、清中断等。 4.实验程序流程图: DSP实验报告(第二次实验) 实验四、正弦信号发生器 验四、正弦信号发生器 一、实验目的 1. 掌握利用DSP产生正弦信号的原理 2. 熟悉子程序调用的程序结构以及堆栈的使用 3.掌握CCS的图形输出操作 二、实验设备 1. 集成开发环境Code Composer Studio(简称CCS) 2. 实验代码Sin.s54、Lab.cmd和Lab.gel 三、实验内容 1. 阅读理解多项式逼近正弦的文档 2. 阅读和理解Sin.s54 3. 调试正弦波发生器 4. 加入断点,并选取图形观测,利用动画及时更新 5. 试利用迭代的方法来实现正弦信号发生器 四、实验结果和提示 1. 2345sin()= 3.140625 + 0.02026367 - 5.325196 + 0.5446778 + 1.800293x x x x x x ,x 为第一象限内的弧度值。因为sin()sin(),sin()sin()x x x x π-=-=-,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。由于有限精度,规定弧度值从~ππ-,其中π=0x7FFF ,π/2=0x4000,π-=0x8000。利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A 中的当前弧度值,以便计算结束后实现x 增量。正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。x 自动增长时要注意当x 超过π后必须调整到~ππ-的范围内才能调用计算子程序,即若,2x x x ππ>=-则。 2. 需要使用临时数据时,必须用frame 语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。要注意的是frame 的下一条指令不能使用直接寻址。 3. 注意事项:利用累加器写乘法寄存器T (stlm )之后的下一条指令不能使用T ;条件转移指令xc 在指令访问阶段判断条件,该条件必须在先于xc 指令的2个指令之前产生;条件转移指令bc 是在指令执行阶段判断条件,不存在这方面的问题。具体细节请参见《数字信号处理系统的应用和设计》3.6节和 4.5节。 4. 图形观测时选择菜单View->Graph->Time/Frequency ,然后设置如下图: DSP实验报告 软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 因为-20log δs=30 ,所以log δs=-30/20 ,δs=0.03162 信号与信息处理综合实验(DSP部分) 学院:信息与通信工程学院 班级:2013211125 姓名:商晴庆 学号: 班内序号: 组号: 2016年4月 实验二 FFT的实现 一、实验目的 (1)进一步熟悉DSK6416开发平台,掌握调试功能; (2)充分理解FFT过程,并编码实现功能。 二、程序功能 (1)基础:将FFT结果写入SDRAM中,并读取出来。 (2)提高:其他点数的FFT 三、模块描述 (1)GBLCTL寄存器配置部分: static EMIFA_Config MyEmifaConfig = { EMIFA_GBLCTL_RMK ( EMIFA_GBLCTL_EK2RATE_FULLCLK, //1 X EMIF input clock EMIFA_GBLCTL_EK2HZ_CLK, //eclkout2 continue output during hold EMIFA_GBLCTL_EK2EN_ENABLE, //eclkout2 enable output EMIFA_GBLCTL_BRMODE_MRSTATUS, //bus request is memory access or refresh pending/in progress EMIFA_GBLCTL_NOHOLD_DISABLE, EMIFA_GBLCTL_EK1HZ_CLK, //eclkout1 continue output during hold EMIFA_GBLCTL_EK1EN_ENABLE, //eclkout1 enable output EMIFA_GBLCTL_CLK4EN_ENABLE, //clkout4 output enable EMIFA_GBLCTL_CLK6EN_ENABLE //clkout6 output enable ), (2)CECTL0-3寄存器配置部分 0xffffffd3, //64BIT SDRAM 0xffffffe3, 0x22a28a22, 0x22a28a22, (3)SDCTL寄存器配置部分 实验一编写一个汇编和C混合的DSP程序 一.实验目的 1.在了解纯C语言程序工程和汇编语言程序工程结构的基础上,学习在C工程中加入汇编编程的混合编程方法。 2.了解混合编程的注意事项。 3.理解混合编程的必要性和在什么情况下要采用混合编程。 二.实验设备 计算机,ICETEK-VC5416AE-S61实验箱(或ICETEK仿真器+ICETEK-VC5416-AE系统板+相关连线及电源)。 三.实验原理 1.使用C语言开发应用程序的优缺点 优点: 易于开发和维护。由于用C语言书写接近自然语言,其可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。 可移植性强。 不容易发生流水线冲突。编译器能提供完善的解决流水线冲突的结果。 有大量现存的算法可利用。 适用于人机界面的开发。 缺点: 代码量大。 程序效率较低。 优化代码存在一定困难。 综上所述,我们一般用C语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的复杂算法。 2.使用汇编语言开发应用程序的优缺点 优点: 更能发挥系统特点。由于汇编语言掌控系统硬件的能力强于C语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。 代码精练,效率高。用汇编语言设计的程序,代码短、不容易产生冗余。 代码量小。 缺点: 可读性差。不利于复杂算法的开发和实现。 可移植性差。 容易产生流水线冲突。由于排除冲突需要靠人来辅助完成,这要求编程人员有较为丰富的开发经验和对硬件工作机制的深刻理解。 3.如何混合编程 (1)混合工程:在工程中可以同时包含C语言程序和汇编语言程序,无需更改编译选项。一般地,我们使用C程序为主,加入汇编语言程序模块。 (2)使用模块技术:在应用程序中划分出比较清晰的模块,不同模块可采用不同语言设计。DSP实验报告
DSP实验3
DSP实验报告2解读
DSP运行实验报告
DSP实验三和实验四
DSP实验指导书(DSP处理器原理与应用)
DSP实验
dsp实验报告4
DSP第二次实验报告
DSP实验报告
DSP实验二
dsp 实验报告