DSP实验

DSP实验
DSP实验

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 管脚

ICETEK-LF2407-EDU 实验箱将引脚ADCIN00-ADCIN03 连接到了实验箱底板上“A/D 输入”的四个插座上。ICETEK-LF2407-EDU 实验箱控制模块使用如下引脚:

PWM12/IOPE6--指示灯

PWM11/IOPE5 和TDIRB/IOPF4—步进电机

CANTX/IOPC6—蜂鸣器

五、实验步骤和内容

实验程序通过相关寄存器设置,使用PWM12/IOPE6 作为输出,控制实验箱控制模块上指示灯J5 进行有规律地闪烁。具体步骤如下:

1.实验准备

(1)连接设备:

①关闭计算机和实验箱电源;

②检查ICETEK-LF2407-A 板上JP6 的位置,应连接在1-2 位置(靠近DSP 芯片端),即设置DSP 工作在MP 方式;如使用PP 型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;

③关闭实验箱上的三个开关。

(2)开启设备:

①打开计算机电源;

②打开实验箱电源开关,打开ICETEK-LF2407-A 板上电源开关,注意板上指示灯DS1、DS2 和DS3 亮;打开控制模块电源开关;

③如使用USB 型仿真器用附带的USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。

(3)启动Code Composer Studio3.3

(4)打开工程文件

打开菜单“Project”的“Open”项;选择E:\ICETEK\LF2407A\LF2407目录中的“IOPin.pjt”

2. 浏览程序

在项目浏览器中,双击led.c,激活led.c 文件,浏览该文件的内容,理解各语句作用。打开led.cmd,浏览并理解各语句作用。

3. 编译工程

单击“Project”菜单,“Rebuild all”项,编译工程中的文件,生成IOPin.out 文件。

4. 下载程序

单击“File”菜单,“Load program…”项,选择D:\2407EDULab\Lab6-IOPin 目录中的IOPin.out 文件,通过仿真器将其下载到2407A DSP 上。

5. 运行程序观察结果

·单击“Debug”菜单,“Run”项,运行程序。·观察实验箱控制模块上指示灯J5 闪烁情况。

·单击“Debug”菜单,“Halt”项,停止程序运行。

6. 修改程序重新运行

适当改变程序中“Delay(256);”语句中的延时参数,重复步骤3-5,使指示灯约1 秒闪烁一次。

六、实验结果

实验程序可控制指示灯闪烁。通过DSP 的通用I/O 引脚可以输出状态,从而直接控制外围设备。

七、问题与思考

* 如果需要控制较大电流驱动的设备或控制电平大于3.3V 的设备应如何设计?

答:这就需要设计一个驱动器了,可以使用专用的驱动芯片进行设计,也可以使用三极管,达林顿管进行设计等等。

* 如果需要精确控制指示灯闪烁的时间,有什么方法?

答:使用DSP的时间管理器模块中的通用定时器功能,实现精确控制指示灯的亮灭,从而达到精确控制指示灯闪烁的目的。

《DSP原理与应用》实验报告

一、实验题目

定时器应用实验

二、实验目的

1、熟悉LF2407的定时器;

2、掌握LF2407的定时器的控制方法;

3、学会使用CPU定时器中断方式控制程序流程。

三、实验设备

计算机,DSP教学实验箱。

四、实验原理说明

1. 通用定时器介绍及其控制方法

⑴.事件管理器模块(EV)

TMS320LF2407A DSP 片内包括两个事件管理模块EV A 和EVB,每个事件管理器模块包括通用定时器(GP)、比较单元以及正交编码脉冲电路。每个事件管理模块都包含两个通用定时器,用以完成计数、同步、定时启动ADC、定时中断等功能。

⑵.通用定时器(GP)

* 每个通用定时器包括:

- 一个16 位的定时器增/减计数的计数器TxCNT,可读写;

- 一个16 位的定时器比较寄存器(双缓冲,带影子寄存器)TxCMPR,可读写;

- 一个16 位的定时器周期寄存器(双缓冲,带影子寄存器)TxPR,可读写;

- 一个16 位的定时器控制寄存器TxCON,可读写;

- 可选择的内部或外部输入时钟;

- 用于内部或外部时钟输入的可编程的预定标器(Prescaler);

- 控制和中断逻辑,用于4 个可屏蔽中断—下溢、溢出、定时器比较和周期中断;

- 可选择方向的输入引脚TDIRx,用于双向计数方式时选择向上或向下计数。

* 通用定时器之间可以彼此独立工作或相互同步工作,完成复杂的任务。

* 通用定时器在中断标志寄存器EV AIFRA,EV AIFRB,EVBIFRA 和EVBIFRB中有12 个中断标志位。每个通用定时器可根据以下事件产生4 个中断:

- 上溢—TxOFINF(x=1,2,3 或4);

- 下溢—TxUFINF(x=1,2,3 或4);

- 比较匹配--TxCINT(x=1,2,3 或4);

- 周期匹配--TxPINT(x=1,2,3 或4)。

* 每个通用定时器有4 种可选择的操作模式:

-停止/保持模式;

-连续增计数模式;

-定向增/减计数模式;

-连续增/减计数模式。

相应的定时器控制寄存器TxCON 中的位的形式决定了通用定时器的计数模式。

2. TMS320LF240x 中断结构

利用CPU 支持的6 个可屏蔽中断,采用集中化的中断扩展设计来满足大量的外设中断需求。LF240x 内核提供一个不可屏蔽的中断NMI 和6 个按优先级获得服务的可屏蔽中断INT1 至INT6。而这6 个中断级的每一个都可被很多外设中断请求共享。通过中断请求系统中的一个两级中断来扩展系统可响应的中断个数。

为了让CPU 能区分引起中断的事件,在每个外设中断请求有效时都会产生一个唯一的外设中断向量,保存于外设中断向量寄存器(PIVR)中。实际上有两个中断向量表,CPU 的向量表用于得到一级通用中断服务子程序(GISR);外设向量表指定外设中断子程序(SISR)。GISR 程序根据PIVR 中的外设中断向量取值决定执行哪个SISR。

3. 中断响应过程

外设事件要引起CPU 中断,必须保证:外设事件的中断使能为被使能,CPU 内核级的6 个可屏蔽中断中,相应中断也被使能。在外设事件发生时,首先将其在外设中断控制器中的标志位置1,从而引起CPU内核的INT1—INT6 中的一个产生中断。中断服务过程中,其他可屏蔽中断将会自动被屏蔽,直到中断返回。

在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:定时器1会引起INT2 中断),在相应GISR 子程序中,取出PIVR 的值,根据其值再转向相应的SISR;SISR 程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。

4. 中断程序设计

用C 语言设计中断服务程序需要用intterupt 关键字修饰定义的中断服务函

数,例如:

void interrupt gptime1(void);

中断服务函数应尽量短小,在中断服务函数中要注意对中断标志寄存器、中断屏蔽寄存器的设置,避免中断嵌套或中断丢失现象的发生。

五、实验步骤和内容

本实验设计的程序是在上一个实验基础上修改得来,由于上一实验控制指示灯闪烁的延时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。

对于定时器的周期寄存器为计数40000 次产生1 个中断,由于DSP 工作在40MHz主频,正好是1ms 中断一次,所以在中断服务程序中计算中断500 次时改变指示灯状态,实现指示灯亮0.5 秒,再灭0.5 秒,即每秒闪烁1 次。具体步骤如下:

1. 实验准备

⑴.连接设备

①关闭计算机和实验箱电源;

②检查ICETEK-LF2407-A 板上JP6 的位置,应连接在1-2 位置(靠近DSP 芯片端),即设置DSP 工作在MP 方式;如使用PP 型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;

③关闭实验箱上的三个开关。

⑵开启设备:

①打开计算机电源

②打开实验箱电源开关,打开ICETEK-LF2407-A 板上电源开关,注意板上指示灯DS1 、DS2 和DS3 亮;打开控制模块的电源开关;

③如使用USB 型仿真器用附带的USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。设置Code Composer Studio 为Emulator 方式。

⑶启动Code Composer Studio

2. 打开工程文件,浏览程序

打开菜单“Project”的“Open”项;选择D:\2407EDULab\Lab3-Timer 目录中的“Timer.pjt”。在项目浏览器中,双击led.c,激活led.c 文件,浏览该文件的内容,理解各语句作用。打开led.cmd,浏览并理解各语句作用,对照C 源程序学习中断向量表的写法。

3. 编译工程

单击“Project”菜单,“Rebuild all”项,编译工程中的文件,生成Timer.out

文件。

4. 下载程序

单击“File”菜单,“Load program…”项,选择D:\2407EDULab\Lab3-Timer 目录中的Timer.out 文件,通过仿真器将其下载到2407A DSP 上。

5. 运行程序观察结果

·单击“Debug”菜单,“Run”项,运行程序。

·观察实验箱控制模块上指示灯J5 闪烁情况。

·单击“Debug”菜单,“Halt”项,停止程序运行。

6. 修改程序重新运行

适当改变程序中“#define T1MS 0x9c3f”语句中的延时参数,重复步骤3-5,使指示灯约1 秒闪烁两次、三次、四次。

六、实验结果

- 指示灯在定时器的定时中断中按照设计定时闪烁。

- 使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP 定时启动A/D 转换,日常生活中的计时器计数、空调的定时启动和关闭等。

- 在调试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵活的闪烁方式可表达多种状态信息。

《DSP原理与应用》实验报告

一、实验题目

AD转换实验

二、实验目的

1. 熟悉CPU内部AD转换的基本原理。

2. 掌握TMS320LF2407A的内部ADC功能模块的指标和常用方法。

三、实验设备

计算机, DSP教学实验箱

四、实验原理

1. TMS320LF2407A 模数转换模块特性

- 带内置采样和保持的10 位模数转换模块ADC,最小转换时间为500ns。

- 多达16 个的模拟输入通道(ADCIN0—ADCIN15)。

- 自动排序的能力。一次可执行最多16 个通道的“自动转换”,而每次要转换的通道都可通过编程来选择。

- 两个独立的最多可选择8 个转换通道的排序器可以独立工作,也可以级连后工作。

- 排序控制器可决定模拟通道转换的顺序。

- 可单独访问的16 个转换结果寄存器。

- 多个触发源启动转换:

·软件设置启动标志;

·事件管理器(共两个)提供多个事件源;

·外部ADCSOC 引脚。

- 灵活的中断控制。

- 采样和保持获取时间窗口有单独的预定标控制。

- 内置校验模式和自测试模式。

2. 模数转换工作过程

- 模数转换模块接到启动转换信号后,按照排序器的设置,开始转换第一个通道的数据;

- 经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存;

- 按顺序进行下一个通道的转换;

- 转换结束,设置标志,也可发出中断;

- 如果为连续转换方式则从新开始转换过程;否则等待下一个启动信号。3. 模数转换的程序控制

模数转换相对于计算机来说是一个较为缓慢的过程。一般采用中断方式启动转换或保存结果,这样在CPU 忙于其他工作时可以少占用处理时间。设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。

由于TMS320LF2407A DSP 芯片内的A/D 转换精度是10 位的,转换结果的高10位为所需数值,所以在保留时应注意将结果的低6 位去除,取出高10 位有效数字。

五、实验内容与步骤

本实验程序设置DSP 采用连续采集的方式工作,同时采集两个通道(ADCIN0,ADCIN1)的模拟量输入;使用片内通用定时器 1 产生定时中断,用以定时保存转换数据。

1. 实验准备

⑴连接设备:

①关闭计算机和实验箱电源;

②如使用PP 型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;

③检查ICETEK-LF2407-A 板上JP6 的位置,应连接在1-2 位置(靠近DSP 芯片端),即设置DSP 工作在MP 方式;

④用实验箱附带的信号连接线(两边均为单声道耳机插头)连接第一信号源的波形输出端到“A/D 输入”的ADCIN0 插座(位于实验箱底板中部,第二信号源旁边);用信号连线连接第二信号源的输出端到“A/D输入”的ADCIN1 插座;

⑤打开实验箱上三个开关。

⑵开启设备:

①开计算机电源;

②开实验箱电源开关,打开ICETEK-LF2407-A 板上电源开关,注意板上指

示灯DS1、DS2 和DS3 亮;

③如使用USB 型仿真器用附带的USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。

④设置Code Composer Studio 为Emulator 方式。

⑶启动Code Composer Studio

2. 打开工程并浏览程序

- 打开菜单“Project”的“Open”项;选择D:\2407EDULab\Lab4-AD 目录中的“adc.pjt”。

- 在项目浏览器中,双击ad.c,激活ad.c 文件,浏览该文件的内容,理解各语句作用。打开ad.cmd,浏览并理解各语句作用。

4. 编译工程

单击“Project”菜单,“Rebuild all”项,编译工程中的文件,生成adc.out 文件。

5. 下载程序

单击“File”菜单,“Load program…”项,选择D:\2407EDULab\Lab4-AD 目录中的adc.out 文件,通过仿真器将其下载到2407A DSP 上。

6. 打开观察窗口

- 选择菜单“View”、“Graph”、“Time/Frequency…”做如下设置,然后单击“OK”按钮;

- 选择菜单“View”、“Graph”、“Time/Frequency…”做如下设置,然后单击“OK”按钮;

- 在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。

- 在有“中断位置”注释的语句上加上软件跟踪断点(Toggle Breakpoint),即单击语句后按F9 键;

通过设置,我们打开了两个图形窗口观察两个通道模数转换的结果。

7. 设置信号源

由于模数输入信号未经任何转换就进入DSP,所以必须保证输入的模拟信号的幅度在0-3.3V 之间。实验箱上信号源输出为0-3.3V。但如果使用外接信号源,则必须用示波器检测信号范围,保证最小值0V 最大值3.3V,否则容易损坏DSP 芯片的模数采集模块。

首先设置一号信号源(上部)开关为“关”。设置实验箱上一号信号源的“频率选择”在“100Hz—1KHz”档,“波形选择”在“三角波”档,“频率微调”选择较大位置靠近最大值,“幅值微调”选择最大。开启一号信号源开关,一号信号源电源指示灯亮。

首先设置二号信号源(下部)开关为“关”。设置实验箱上二号信号源的“频率选择”在“100Hz—1KHz”档,“波形选择”在“正弦波”档,“频率微调”选择适中位置,“幅值微调”选择最大。开启二号信号源开关,二号信号源电源指示灯亮。

8. 运行程序观察结果

- 单击“Debug”菜单,“Run”项,运行程序;

- 当程序停在所设置的软件断点上时,观察“ADCIN0”、“ADCIN1”窗口中的图形显示;

- 适当改变信号源的四个调节旋钮的位置,按F5 健再次运行到断点位置,观察图形窗口中的显示。注意:输入信号的频率不能大于10KHz,否则会引

起混叠失真,而无法观察到波形,如果有兴趣,可以试着做一下,观察采样失真后的图形。

9. 停止运行结束实验

六、实验结果

- 用实验中的设置,我们可以看到如下结果

- 实验程序使用定时器中断去读取模数转换的结果,这是一种较为简单的方法。用这种方法,没有考虑到A/D 转换的精确时钟,必然会造成保存的结果中发生多点(重复)、丢点等不精确的结果。在要求较高的场合,一般采用使用定时器中断启动A/D 转换,再相应转换完成后的中断信号,将结果保存这种方案。

七、问题与思考

- 请修改实验程序,完成同时采集四路输入信号功能。

- 如何设置能做到用定时器中断启动A/D 转换,再由A/D 转换完成后的中断中断CPU 保存结果?

将启动A/D转换开始的标志写在定时器中断函数中实现定时器中断启动A/D 转换;A/D转换完成后触发的中断函数中写入中断CPU保存结果的标志位实现A/D 转换完成后的中断中断CPU 保存结果。

《DSP原理与应用》实验报告

一、实验题目

串行通信实验

二、实验目的

1. 了解TMS320LF2407A DSP 片内串行通信接口(SCI)的特点。

2. 学会设置SCI 接口进行通信。

3. 了解ICETEK-LF2407-A 板上对SCI 接口的驱动部分设计。

4. 学习设计异步通信程序。

三、实验设备

计算机,DSP教学实验箱

四、实验原理

1. TMS320LF2407A DSP 串行通信接口模块

TMS320LF240x 器件包括串行通信接口SCI 模块。SCI 模块支持CPU 与其他使用标准格式的异步外设之间的数字通信。SCI 接收器和发送器是双缓冲的,每一个都有它自己单独的使能和中断标志位。两者都可以独立工作,或者在全双工的方式下同时工作。

2. ICETEK-LF2407-A 板异步串口设计

由于DSP 内部包含了异步串行通信控制模块,所以在板上只需加上驱动电路部分即可。驱动电路主要完成将SCI 输出的0-3.3V 电平转换成异步串口电平的工作。转换电平的工作由MAX232 芯片完成,但由于它是5V 器件所以它同DSP 间的信号线必须有电平转换,此板采用的是74LS245。

3. 串行通信接口设置

* CPU 进行串行通信时可以采用两种方式,一种是轮询方式,即CPU 不断查询串口状态进行接收和发送,缺点是占用CPU 时间太多;另一种是中断方式,SCI 的接收和发送都可以产生中断信号,这样CPU 可以在完成其他一些工作的同时进行串行通信。

* 串行通信接口波特率计算

内部生成的串行时钟由系统时钟SYSCLK 频率和波特率选择寄存器决定。串行通信接口使用16 位波特率选择寄存器,数据传输的速度可以被编程为65000 多种不同的方式。

不同通信模式下的串行通信接口异步波特率由下列方法决定:

- BRR=1—65535 时的串行通信接口异步波特率:

SCI 异步波特率=SYSCLK/ [( BRR+1)*8]

其中,BRR=SYSCLK/(SCI 异步波特率*8)-1;

- BRR=0 时的串行通信接口异步波特率:

SCI 异步波特率=SYSCLK/16

这里BRR 等于波特率选择寄存器的16 位值。

五、实验步骤

1. 实验准备

⑴.连接设备

①关闭计算机和实验箱电源;

②检查ICETEK-LF2407-A 板上JP6 的位置,应连接在1-2 位置(靠近DSP 芯片端),即设置DSP 工作在MP 方式;

③关闭实验箱上三个开关;如使用PP 型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;

④用附带的串行通信电缆连接计算机COM 端口和ICETEK-LF2407-A 板上P6 九针接头。

⑵.开启设备

①打开计算机电源;

②打开实验箱电源开关,打开ICETEK-LF2407-A 板上电源开关,注意板上指示灯DS1 、DS2 和DS3 亮;

③如使用USB 型仿真器用附带的USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。

⑶.设置Code Composer Studio 为Emulator 方式。

⑷.启动Code Composer Studio

2. 打开工程,浏览程序,工程目录为D:\2407EDULab\Lab20-SCI

3. 编译并下载程序

4. 运行“串口调试助手”

利用桌面上“我的电脑”,找到D:\2407EDULab\Lab20-SCI 目录中的程序“串口调试助手V2.0B.exe”,双击它启动;设置“串口调试助手”的串行端口为实际连接的计算机COM 端口,设置波特率为9600,设置传输方式为8 位、无校验、1 个停止位。

5. 运行程序观察结果

运行程序后,切换窗口到“串口调试助手”;在“串口调试助手”的接收窗口中可看到DSP 通过SCI 发送来的“Hello PC!,Over|”字样;在“发送的字符/数据”栏中输入一些要发送到DSP 的字符串,以“.”字符结尾;然后单击“手动发送”按钮;DSP 在接收到PC 机的信息后会自动进行回答。

6. 结束程序运行退出。

六、实验结果

通过DSP 传送到PC 机上的信息,可以看出:SCI 正确工作。

七、问题与思考

请考虑用中断方式设计程序完成异步串行通信。

main()

{

disable(); //禁止所有中断

IRF = 0xFFFF; //清除中断标志

SCSR1 = 0x81FE;

WDCR = 0xE8;

SCICCR = 0x7;

SCICTL1 = 0x13;

SCICTL2 = 0x3;

SCIHBAUD = 0x2;

SCILBAUD = 0x70;

SCICTL1 = 0x33;

SCIPRI = 0x60;

MCRA = 0x3;

PADATDIR = 0x100;

IMR = 0x10; //使能UART中断INT5

enable(); //使能总中断

SCITXBUF = '';

while(1);

}

《DSP原理与应用》实验报告

一、实验题目

串行外设实验

二、实验目的

通过实验学习使用2407ADSP 的扩展I/O 端口控制外围设备信息的方法,掌握使用2407ADSP 通用计时器的控制原理及中断服务程序的编程方法;了解步进电机的控制方法。

三、实验设备

计算机,教学实验箱

四、实验原理

ICETEK-LF2407-A 是一块以TMS320LF2407ADSP 为核心的DSP 扩展评估板,它通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。步进电机是由DSP 通用I/O 管脚输出直接控制。步进电机的起动频率大于500PPS(拍每秒),空载运行频率大于900PPS。2407A 的通用I/O 口PWM11/IOPE5 控制电机的转动频率,TDIRB/IOPF4 控制转动方向。控制的方法是使用DSP 通用定时器设置PWM11/IOPE5 以一定的频率改变高低状态,输出方波,设置TDIRB/IOPF4 为高电平则顺时针转动,低电平为逆时针转动。

五、实验步骤

1.实验准备

⑴连接设备

①关闭计算机和实验箱电源。

②检查ICETEK-LF2407-A 板上JP6 的位置,应连接在1-2 位置(靠近DSP 芯片端),即设置DSP 工作在MP 方式。如使用PP 型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口。

③关闭实验箱上三个开关。

⑵开启设备

①打开计算机电源。

②打开实验箱电源开关,ICETEK-CTR 板上J2、J3 灯亮;打开位于实验箱中部的电机电源开关,ICETEK-CTR 板上J4 灯亮。

③打开ICETEK-LF2407-A 板上电源开关,注意板上指示灯DS1、DS2和DS3 亮。

④如使用USB 型仿真器用附带的USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。

⑶设置Code Composer Studio 为Emulator 方式

⑷启动Code Composer Studio

2.打开工程并浏览程序,工程目录为D:\2407EDULab\Lab16-Motor

3.编译并下载程序

4.运行程序,观察结果

电机转动时按下ICETEK-CTR 板上的键盘“4”和“6”键,控制电机转动方向

5.停止程序运行并退出

六、实验结果

实验结果:可以看到显示/控制模块上的电机指针在转动,使用“4”和“6”键可控制其转动方向。

分析:使用优化的程序可控制电机更平滑地转动,平滑地改变频率可使马达的摆动减到最小。

七、心得体会

经过这几次的DSP的实验,我了解到DSP的基本功能模块,以及功能模块的实际应用,将课堂上所学到的理论知识和实际很好的结合在一起了。我感到很高兴,因为我又学到了一款新的控制器。在以后的学习中,我将进一步了解DSP 的使用,因为DSP是一款非常强大的微控制器。

DSP实验报告

实验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课程的实用性和趣味性。

DSP实验二 拨码开关实验

实验二拨码开关实验 —、实验目的 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、输入主要程序。

南昌大学DSP实验报告

实验报告 实验课程: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

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实验报告

实验三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实验

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 管脚

北邮dsp软件实验报告

Matlab仿真实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名:

时间:2015年12月23日 实验一:数字信号的FFT分析 1.实验目的 通过本次试验,应该掌握: (a)用傅里叶变换进行信号分析时基本参数的选择 (b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。 (d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。 2.实验容、要求及结果。 (1)离散信号的频谱分析: 设信号x(n)=0.001*cos(0.45n)+sin(0.3n)-cos(0.302n-) 此信号的0.3谱线相距很近,谱线0.45的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。 【实验代码】:

k=2000; n=[1:1:k]; x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4); subplot(2,1,1); stem(n,x,'.'); title(‘时域序列'); xlabel('n'); ylabel('x(n)'); xk=fft(x,k); w=2*pi/k*[0:1:k-1]; subplot(2,1,2); stem(w/pi,abs(xk)); axis([0 0.5 0 2]); title('1000点DFT'); xlabel('数字频率'); ylabel('|xk(k)|'); 【实验结果图】:

DSP实验程序及结果

#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 #define RUI 25 #define RUI1 1000 #define RUI2 4500 #define SAMPLEF 10000 #define PI 3.1415926 float Wave(); float FIR(); float fHn[RUI]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009, -0.018,0.049,-0.02,0.11,0.28,0.64,0.28, -0.11,-0.02,0.049,-0.018,-0.009,0.01, -0.002,-0.002,0.001,0.0,0.0 }; float fXn[RUI]={ 0.0 }; float fInput,fOutput; float fSignal1,fSignal2; float fStepSignal1,fStepSignal2; float f2PI; int i; float fIn[256],fOut[256]; int nIn,nOut; main() { nIn=0; nOut=0; f2PI=2*PI; fSignal1=0.0; fSignal2=PI*0.1; fStepSignal1=2*PI/30;

DSP实验3

实验三 快速傅里叶变换 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实验报告-深圳大学-自动化

深圳大学实验报告课程名称:DSP系统设计 实验项目名称:DSP系统设计实验 学院:机电与控制工程学院 专业:自动化 指导教师:杜建铭 报告人1:. 学号:。班级:3 报告人2:. 学号:。班级:3 报告人3:. 学号:。班级:3 实验时间: 实验报告提交时间: 教务处制

实验一、CCS入门试验 一、实验目的 1. 熟悉CCS集成开发环境,掌握工程的生成方法; 2. 熟悉SEED-DEC2812实验环境; 3. 掌握CCS集成开发环境的调试方法。 二、实验仪器 1.TMS320系列SEED-DTK教学试验箱24套 2. 台式PC机24台 三、实验内容 1.仿真器驱动的安装和配置 2. DSP 源文件的建立; 3. DSP程序工程文件的建立; 4. 学习使用CCS集成开发工具的调试工具。 四、实验准备: 1.将DSP仿真器与计算机连接好; 2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接; 3.启动计算机,当计算机启动后,打开SEED-DTK2812的电 源。SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。 五、实验步骤 (一)创建源文件 1.进入CCS环境。

2.打开CCS选择File →New →Source File命令 3.编写源代码并保存 4.保存源程序名为math.c,选择File →Save 5.创建其他源程序(如.cmd)可重复上述步骤。 (二)创建工程文件 1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定弹 出对话框: 2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成 即可完成工程创建; 3.点击Project选择add files to project,添加工程所需文件;

DSP实验报告2解读

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实验三和实验四

实验三离散时间系统及响应 [实验目的] 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实验指导书(DSP处理器原理与应用)

实验一: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.360docs.net/doc/0318596096.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, 选择合适的软件仿真环境

dsp实验报告

DSP 实验课大作业实验报告 题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的: (1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程; (2)掌握C 语言与汇编语言混合编程的基本方法。 (3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。 (二)实验内容: 1. MATLAB 仿真 设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表: 对回波信号进行脉冲压缩,MTI ,MTD 。并且将回波数据和频域脉压系数保存供DSP 使用。 2.DSP 实现 在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。 (三)实验原理 1.脉冲压缩原理 在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c c R B τ?==。其中,τ表示脉冲时宽,B 表示脉冲带宽。从上式中我们可以看

出高的雷达分辨率要求时宽τ小,而要求带宽B大。但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。然而通过脉冲压缩技术就可以解决这个矛盾。脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。 在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。 从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。所以说脉冲压缩滤波器就是一个匹配滤波器。从而我们可以在时域和频域两个方向进行脉冲压缩。 滤波器的输出() h n= y n为输入信号() x n与匹配滤波器的系统函数() *(1) y n x n s N n =--。转换到频域就是--卷积的结果:* ()()*(1) s N n =。因此我们可以将输入信号和系统函数分别转化到频域:Y k X k H k ()()( Y k,然后将结果再转化到时域, h n H k →,进行频域相乘得() ()() x t X k →,()() 就可以得到滤波器输出:()() →。我们可用FFT和IFFT来实现作用域的 Y k y n 转换。原理图如下: 图1.脉冲压缩原理框图 2.MTI原理 动目标显示(MTI)技术是用来抑制各种杂波,来实现检测或者显示运动目标的技术。利用它可以抑制固定目标的信号,显示运动目标的信号。以线性调频

DSP运行实验报告

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文件,选中,鼠标左键单击“打开”。

DSP实验

一:实验项目名称: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) {

DSP第二次实验报告

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实验报告二CCS的使用

实验二 CCS使用操作:报告: 1.实验目的 (1) 熟悉CCS集成开发环境,掌握工程的生成方法。 (2) 掌握CCS集成开发环境的调试方法。 2.实验容及步骤 (1)查阅CCS发展历史,给出CCS发展的版本和适用的芯片。 Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含适用于每个TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。CCS IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。借助于精密的高效工具,用户能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。 版本 4 之前的 CCS 均基于 Eclipse 开放源码软件框架。Eclipse 软件框架可用于多种不同的应用,但是它最初被开发为开放框架以用于创建开发工具。我们之所以选择让 CCS 基于Eclipse ,是因为它为构建软件开发环境提供了出色的软件框架,并且正成为众多嵌入式软件供应商采用的标准框架。CCS 将 Eclipse 软件框架的优点和仪器 (TI) 先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。 CCS 有 2 个版本:白金版和微处理器版。各版本支持的处理器不同。支持的核白金版:TMS320C6000、TMS320C5000、TMS320C2800、TMS470、TMS570、ARM 7、ARM9、ARM 11、ARM Cortex M3(不包含 Stellaris Cortex M3)、ARM Cortex R4、ARM Cortex A8 和 MSP430 处理器版:TMS320C2800 和MSP430 CCS 白金版和微处理器版都使用以下各项:主机:PC 操作系统:Microsoft Windows Vista 和 XP (2) 使用CCS时,经常遇到下述扩展名文件,说明分别是什么文件。 ①project. mak :即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程, VC6把MAK文件转换成DSP文件来处理。 ②program. c :定义的变量、数组、函数的声明 ③program. asm :Oracle管理文件(OMF) ④filename. h :H C程序头文件 ⑤filename. lib :LIB 库文件 ⑥project. cmd :CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件 ⑦program. obj :OBJ 对象文件 ⑧program. Out: C语言输出文件 ⑨project. Wks :WKS Lotus 1-2-3电子表格;Microsoft Works文档 保存配置文件时产生的文件: ①programcfg.cmd 连接器命令文件 ②programcfg.h54 头文件 ③programcfg.s54 汇编源文件 DSP源文件的建立;

DSP实验二

信号与信息处理综合实验(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寄存器配置部分

相关文档
最新文档