深 圳 大 学 实 验 报 告
课程名称: DSP系统设计
实验项目名称: DSP系统设计实验
学院: 机电与控制工程学院
专业: 自动化
指导教师: 杜建铭
报告人1: . 学号:。 班级: 3
报告人2: . 学号: 。 班级: 3
报告人3: . 学号: 。 班级: 3
实验时间:
实验报告提交时间:
教务处制
实验一、CCS入门试验
1、实验目的
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,添加工程所需文件;
4.在弹出的对话框中的下拉菜单中分别选择.c 点击打开,即可添加源程序math.c 添加到工程中;
5.同样的方法可以添加文件 math.cmd、rts.lib 到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib 文件已经加到工程文件中
6.添加头文件。点击Project 选择 Build Options ,在弹出的对话框中选取Complier选栏的Processor选项,在Include Search Path 中填入 .h 的路径,点击确定。如果没有指定头文件路径,在编译时会显示“无法打开头文件” 的错误信息。
7.右键点击 Math.pjt 在弹出的选项中选取 Scan All File Dependencies ,源程序所包含的头文件被自动加到工程浏览窗中的 Include 文件夹中。
(三)设置编译与连接选项
1.点击 Project 选择 Build Opitions;
2.在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;
3.在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配文件),堆栈的大小以及初始化的方式。
(四)工程编译与调试
1.点击 Project Build all,对工程进行编译,如正确则生成 out 文件;若是修改程序,可以使用 Project Build 命令,进行编译连接,它只对修改部分做编译连接工作。可节省编译与连接的时间。编译通过,生成.out 文件;
2.点击 File load program,在弹出的对话框中载入 debug 文件夹下的.out 可执行文件;
3.装载完毕。
4.点击 Debug Go Main 回到 C 程序的入口;
5.打开 File Workspace Save to Workspace 保存调试环境,以便下次调试时不需要重新进行设置。只要 File Workspace Load Workspace 即可恢复当前设置。
六、实验现象
下面是对环境的调试
配置软件仿真,选择 F2812 Device Smulator,单击 Import。
配置硬件仿真,选择 F2812 XDS510 Emulator,单击 Import。点击 Close 关闭。
七、实验心得
问题总结:将 USB 仿真器的 USB 插头插入 PC 机的 USB 插槽中。只有当驱动程序已安装且计算机已成功识别,并且在设备管理器中会显示 SEED-XDSusb2.0 Emulator。才算成功安装,方可进行下一步操作,否则实验不能进行下去。出现各种错误提示。
心得体会:这是ccs的入门实验,只要在于熟悉ccs的配置与建立,只有熟悉并能够正确地使用这两个步骤,才能继续调试跟分析接下来的各种实验。因为每次做实验都必须先经过这两个步骤,所以需要格外细心。
实验二、 交通灯
2、实验目的
1.掌握 DSP 扩展数字 I/O 口的方法;
2.了解 SEED-DEC2812 的硬件系统。
二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
SEED-DEC2812 模板直接采用F2812 片上的 2 通道 SCI 作为异步收发器UART三、实验内容
1.DSP 的初始化;
2.TMS320C2812 的扩展数字 I/O 口使用;
3.交通灯实现程序。
四、程序流程图
五、实验步骤
1.打开 CCS,进入 CCS 的操作环境;
2.装入 IO.pjt 工程文件,添加 2812.gel 文件,开始进行调试;
3.打开 IO.c 文件,到第 25 行,修改 TESTCOMMAND 的宏定义;
TESTCOMMAND 是交通灯操作控制选项。可以为 1、2、3、4、5 这 5 个
数。1 为自动运行;2 为夜间模式;3 为交通灯东西通;4 为交通灯南北通;5为禁行。
4.装载程序 IO.out;
5.运行,观察。在程序运行过程中,可直接在 Watch Window 里修改 TestCommand的值,即将每一种运行方式所对应宏定义的值直接赋值给 TestCommand,即可改变运行方式。
6.重新到第 3)步开始尝试其他情况或者退出实验。
六、实验现象
(1)到第 25 行,修改 TESTCOMMAND 的宏定义;
SEED-DTK_MBoard 单元的 Traffic Lamp 处将显示结果;
(2)将运行方式改为夜间模式,将TestCommand 赋值为 0xAA16即可。如下图所示
(3)交通灯效果如下图所示:
七、实验心得
问题总结:DSP 系统中一般只有少量的数字 I/O 资源,而一些控制中经常需要大量的数字量的输入与输出。因而,在外部扩展 I/O 资源是非常有必要的。这里采用 CPLD 在其内部做锁存逻辑来实现。
心得体会:在实验过程中学会了本实验使用 CPLD 在其内部做锁存逻辑来实现DSP 外部 I/O的扩展,掌握 了DSP 扩展数字 I/O 口的方法。在实验中修改 TESTCOMMAND 的宏定义来实验交通灯更多的功能。
同时也了解了 SEED-DEC2812 的硬件系统。
实验三、片上存储器实验——SRAM 读写实验
一、实验目的
1.熟悉 SEED-DEC2812 的实验环境;
2.解 SRAM 存储空间的分配。
二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
TMS320F2812 片内的1个带采样保持电路的 12BIT 的 A/D 转换模块
三、实验内容
1.DSP 的初始化;
2.DARAM 上写数据;
3.检查并读取 SRAM 上的数据。
四、程序流程图
五、实验步骤
1.打开 CCS,进入 CCS 的操作环境。
2.装入 sram.pjt 工程文件,添加 2812.gel 文件。
3.装载 sram.out 文件,进行调试。
4.在 sram.c 程序的第 34 行"Errcount = 0;"与第42行;" for(;;)"处设置断点。
5.运行程序,程序会停在断点处,观察 SourData[i]的值。
6.继续运行程序,观察结果。
六、实验现象
在 sram.c 程序的第 34 行"Errcount = 0;"与第42行;" for(;;)"处设置断点。如下图所示:
程序会停在断点处,观察 SourData[i]的值:
7、实验心得
总结:TMSF20F2812 片内包括 5 段 SARAM,M0、M1、L0、L1 和 H0 段。L0、L1 和 H0 段大小总和为 16K×16 位的 SARAM,分为 3块(4K+4K+8K),分别是 L0(4K),L1(4K),H0(8K)。每块可以单独使用,都可以映射到程序区和数据区。
心得:通过本实验我们了解 了DSP 的空间分配及其使用方法。进一步熟悉了 SEED-DEC2812 的实验环境;并加深了解 SRAM 存储空间的分配。
实验 四、片上外设——AD 采集实验
一、实验目的
1.了解 TMS320F2812 片上外设 AD;
2.熟悉片上 AD 的使用;
3.利用片上 AD 进行数据采集。
二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
TMS320F2812 片内的1个带采样保持电路的 12BIT 的 A/D 转换模块
3、实验内容
1.初始化系统;
2.初始化片上 AD,进行通道的选则(注:本实验SEED-DEC2812 的 AD 接口使用了ADCINA6通道)
3.AD 数据采集
①模拟量输入范围:0.0V~3.0V;
②转换率:在 25MHz 的 ADC 时钟下为 80ns;
③转换结果=4095×(输入的模拟信号-ADCLO)÷3
④中断控制方式灵活,可以在每次转换结束或每隔一次转换结束触发中断;
四、程序流程图
程序说明:①SAMPLERATE 有 3 个选择 1、2、3。1 表示采样率为 8k,2 表示采样率为 44k,3 表示采样率为 96k。
②"adconvover=0",131 行"adconvover=1"为断点设置处
5、实验步骤
1.打开 CCS,进入 CCS 的操作环境。.装入 ad.pjt 工程文件。
2.修改完宏定义并进行编译、链接生成 AD.out 文件,装载程序 AD.out。
可以修改宏定义 SAMPLERATE,选择不同采样率
3.设置断点
打开 AD.c 文件,到 115 行"adconvover=0",131 行"adconvover=1"设置断点。
4.设置实验箱信号源。
通过液晶屏和键盘,设置信号源:当液晶屏上出现"通讯自检不成功,请复位系统"时,按下"Enter"键,进入"信号发生器设置"。在"信号发生器设置"这一菜单下:"通道"设为"0";"信号类型"可根据需要任意选择;"信号频率"和"信号振幅"可在屏幕下方"有效输入"限定的范围内任意输入,建议振幅设为 1000 左右,频率"设为 300 左右;"电压偏移"设为 1;
"信号发生器开关"设为"开启"。此时便有信号输入到 ADCINA6 通道。
5.调试程序
①运行程序,可以观察收到的数据和显示的图像,数据保存在 Ad_data 数组中,图像显示的即为 Ad_data 数组。显示图像时请注意所显示数组的数据类型及长度。其中图像显示设置对话框中 Start adderss:起始地址;Acquisition BufferSize:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致);DSP Data Type:数据类型;
②可以修改信号源,继续执行,观察输入不同信号源的执行结果。
六、实验现象
修改宏定义
设置断点
设置实验箱信号源
注意:TMS320F2812 的 AD 输入范围在 0—3v,而 SEED-DTK_MBoard板的信号源默认输出为-1V—1V,故选择 1V 的电压偏移
图像显示设置DSP Data Type:数据类型如下图:
修改不同信号源,继续执行,观察输入不同信号下实验得到的图形:
7、实验心得
问题总结:采样频率对采集到图像的影响,不同采样频率得到的图像区别不大,设置Display Data Size:显示数据个数要与程序中宏定义的采样个数一致,否则会有问题。在调试得到理想波形时总调试到有杂波,经过认真修改和按实验步骤一步步重新开始做才最终得到波形。
心得体会:在实验过程中理解1V 的电压偏移的设置,是由于实验中AD的模拟量输入范围:0.0V~3.0V;在试验中学会了AD采集以及将采集到的数据显示并用图像显示出来,理解了模数转换的过程。同时要注意采样个数与实验设置的显示个数要一致。一般情况AD转换只需要设置各种寄存器的操作就可以,实验的过程关键在理解里面程序内容。
实验五、片上外设——SCI 数据传递实验
3、实验目的
1.了解 TMS320F2812 片上外设 SCI;
2.熟悉片上 SCI 通道的使用;
3.利用片上 SCI 通道进行数据采集。二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
SEED-DEC2812 模板直接采用F2812 片上的 2 通道 SCI 作为异步收发器UART三、实验内容
1.初始化系统;
2.初始化片上 SCI 通道;
①SEED-DEC2812 采用 MAX3160 多协议收发器,使得异步串口接口电平可配置为 RS232/RS422/RS485 多种接口电平标准。在RS232 接口标准时,采用 4 线制(RXD、TXD、RTS、CTS),其中RTS和CTS 由 UART 控制/状态寄存器实现。而在 RS422/RS485 接口标准时,采用 2 线制(RXD、TXD)。
②MAX3160CAP上的引脚RS485/RS232#用于选择工作在RS-422/RS-485还是RS-232。引脚 HDPLX 则用于控制是 RS-422 还是 RS-485,引脚 FAST 用于控制信号转换率 。
3.SCI 数据传递
UART_MODE 寄存器映射到'F2812 的 Zone1 的 0x00 4010 的存储单元,其定义如下:
四、程序流程图
注:PIE 中断矢量表初始化。
五、实验步骤
1.打开 CCS,进入 CCS 的操作环境。.装入 uart.pjt 工程文件。
2修改宏定义,然后编译、链接生成 uart.out 文件,装载程序 uart.out
打开 uart.c 文件,到第 16 行,可以修改宏定义 UART_INT。0 代表使用查询模式接受数据,1 代表使用中断模式接受数据。
3.设置断点
根据UART_INT的宏定义设置断点;如果 UART_INT 设置为0,在 uart. c文件的第 82 行"Send_Flag = 1;" 设置断点
如果 UART_INT 设置为 1,在 DSP28_DefaultIsr.c 文件的第 993 行"Send_Flag =1;"设置断点(中断函数实现)。
4. 设置参数
运行 "串口调试助手"的软件,设置串口参数
5. 调试
在"串口调试助手"的发送窗口中输入要发送的数据,运行程序,程序会等待外部中断。此时在发送区输入要发送的单个字符,点击手工发送。程序将在断点处继续运行程序,此时在接收窗口中可观察所发送的数据。六、实验现象
修改此处UART_INT的宏定义选择模式
设置断点,发送数据,在断点处停止,继续运行课接受到数据。
七、实验心得
问题总结:通讯助手的波特率一定要设置为19200,因为程序设置了,如果不是波特率不为19200,将无法实现通讯传输。由于一开始实验时未设置好便无法传输,后改了设置便可。在串口一栏中设置对应连接到计算机上的串口。如下图:
心得体会:在实验过程中学会了本实验是使用SCI 异步收发器UART,设置UART_MODE 寄存器的位定义,可以通过修改初始化的宏定义来选择是查询模式还是中断模式。"Send_Flag =1;"设置断点决定是否发送,在断点处继续运行将可看到接送区接受到刚才自己发送的数据。学会了简单使用通讯发送接受数据,可将其应用于实际的无线通讯对数据采集记录。
实验六、步进电机控制实验
一、实验目的
1.了解步进电机驱动的原理;
2.了解步进电机的控制原理;
3.熟悉使用 PWM 控制步进电机的运行。
二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
SEED-DEC2812 模板直接采用F2812 片上的 2 通道 SCI 作为异步收发器UART
SEED-DTK_MBoard
步进电机
3、实验内容
1.DSP 的初始化;
2.EV 初始化与配置
3.步进电机的驱动程序。
四、程序流程图
五、实验步骤
1.打开 CCS,进入 CCS 的操作环境。
2.装入 stepmotor.pjt 工程文件,添加 2812.gel 文件。
3.装载 stepmotor.out 文件。
4.运行程序,观察实验箱上电机的运行状态。
5.用户可通过修改定时器1的周期以及PWM的比较功能调整电机运行放向与状态。(DSP28_Ev.c 文件)。
6、实验现象
电机的运行状态如下图所示:
七、实验心得
总结:步进电机的控制接口为 EVA 的 PWM1、PWM2、 PWM3、PWM4 引脚。它们分别为步进电机四相的控制端。按一定的频率循环置高电平即可使可使步进电机转动。因此通过改变四个引脚,可以得到不同规则条件下的电机转动。
心得:通过这次实验,我们了解到步进电机驱动的原理跟了解步进电机的控制原理;主要是通过改变 EVA 的 PWM1、PWM2、 PWM3、PWM4 引脚的置高电平的频率来控制,因为同时也了解了如何通过改变EVA引脚的配置来控制电机的运转。并熟悉使用 PWM 控制步进电机的运行。
实验七、定时器控制实验
一、实验目的
1.熟悉如何编写 2812 的中断服务程序;
2.掌握长时间间隔的定时器的处理。
3.掌握片内外设的设置方法。
二、实验仪器
TMS320系列 SEED-DTK 教学试验箱 电脑
TMS320F2812 三、实验内容
1.系统初始化
2. DSP 的初始设置;
3. 定时中断的编写
四、程序流程图
五、实验步骤
1. 打开 CCS,进入 CCS 的操作环境。
2.装入 cputimer.pjt 工程文件,添加 2812.gel 文件。
3.装载 cpuTimer.out 文件,进行调试。
4.在 2812-LED.c 程序的第 56行"*LED3 = 0; "和第 62 行"*LED3 = 1"处设置断点。
5.运行程序,程序停在第一个断点处,表明已进入定时器中断。观察指示灯 D1、D3。
6.继续运行程序,程序会停在第二个断点处。观察指示灯 D1、D3。
7.若取消断点,连续运行程序会看到 SEED_DEC2812 板卡上 D1 和 D3 交替闪烁。
8.实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。
6、实验现象
在 2812-LED.c 程序的第 56行"*LED3 = 0; "和第 62 行"*LED3 = 1"处设置断点。如下图所示
设置断点之后,程序会停在第二个断点处。观察指示灯 D1、D3。
七、实验心得
总结:TMS320F2812 片内有 3 个 32 位时钟。其中定时器 1 和定时器 2 预留给适时操作系统使用,只有 CPU 定时器 0 用户可以在应用程序中使用。这些时钟有一个 32 位计数器,当计数器到达 0 时,产生一个中断。其中,TIMER0 中断为 PIE 中断,TIMER1 中断直接连到 CPU 的 INT13,TIMER2 中断直接连到 CPU 的 INT14。重置这些中断的参数可以实现不同的定时效果。
心得体会:通过本实验,我们熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用。懂得如何改变周期寄存器的值,从而控制每次进中断的时间。熟悉了如何编写 2812 的中断服务程序的步骤;并掌握了长时间间隔的定时器的处理以及片内外设的设置方法。
本文来源:https://www.2haoxitong.net/k/doc/127f05db80eb6294dd886c70.html
文档为doc格式