SEEDDTK2812实验讲义.docx
- 文档编号:17623135
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:65
- 大小:1.69MB
SEEDDTK2812实验讲义.docx
《SEEDDTK2812实验讲义.docx》由会员分享,可在线阅读,更多相关《SEEDDTK2812实验讲义.docx(65页珍藏版)》请在冰点文库上搜索。
SEEDDTK2812实验讲义
DSP原理及应用
实验讲义
(SEED-DTK2812)
黄山学院信息工程学院
2012-2
目录
第一章实验系统介绍
1.1SEED-DTK2812的原理框图……….……....…...….……………..…...3
1.2试验箱的整体配置与特点………………….……...…………………….4
1.3实验箱功能实现…………………………….….……..…………………5
1.3.1SEED-DTK2812…………………………….…………………….5
1.3.2SEED-Mboard….……………………….………………………..5
第二章实验
2.1CCS使用实验
实验一CCS使用和调试…..……….……..…………………………….7
2.2片上资源应用实验
实验二SRAM读写实验……………….…………..…………………..19
实验三定时器控制实验……………………….……..………………..22
2.3DEC板卡应用实验
实验四交通灯实验……….………………….…..…….…...…….……26
2.4DSP算法实验
实验五线性卷积算法的实现……….……………....……...……..……30
实验六快速傅立叶变换(FFT)算法实验……...….…………………35
实验七无限冲击响应滤波器(IIR)算法实验………….….………….…40
实验八有限冲击响应滤波器(FIR)算法实验……………..……………46
第1章
实验系统介绍
1.1系统概述
SEED-DTK(DSPTeachingKit)是一套可以满足大学本科、研究生和教师科研工作的综合实验设备。
SEED-DTK是我公司在总结以往产品的基础上,以独特的多DSP结构、强大的DSP主板功能、丰富的外围实验电路、精心设计的实验程序、精湛的产品工艺形成的高性能产品。
本文档主要介绍的是SEED-DTK2812实验箱,它由SEED-DEC2812板卡以及SEED-DTK_MBoard构成;其中主控板是我公司生产的SEED-DEC2812,母板是我公司生产的SEED-DTK_MBoard板卡。
此外,该款实验箱还可配置DSK板卡、图像处理卡等多种子卡。
1.1.1SEED-DTK2812实验箱实验例程
ØSEED_DEC2812板卡实验例程
1.CCS软件应用实验:
介绍CCS的使用,编写简单的实验例程。
2.DSP片上资源应用实验
本部分例程介绍的是DSP的片上资源。
3.SEED_DEC2812板卡应用实验
SEED_DEC2812板卡与实验箱资源的应用实验。
包括:
异步、同步串口通讯;扩展I/O口使用;AD/DA的使用。
4.算法实验
包括FFT,滤波(FIR、IIR),卷积,自适应滤波器算法实验
5.参考实验
包括USB使用实验、自举程序的编写以及SEED-DEC2812板卡与SEED-DTK_MBoard板卡之间数据传递实验。
Ø母板实验例程
1.DSP5402片上资源应用实验
本部分例程主要是DSP片上资源的使用介绍。
2.实验箱外设实验
实验箱母板资源的应用实验。
包括:
键盘、液晶、信号源的使用。
Ø其他板卡实验程序
该部分程序将根据实验箱的具体配置提供。
1.1.2SEED-DTK2812的原理框图如下:
1.2实验箱整体配置与特点
1.2.1实验箱整体配置
SEED-DTK2812实验箱由以下几部分构成:
1.SEED-DEC2812实验箱DSP基本系统
◆高性能DSP:
TMS320F2812,主频150MHz
◆外扩SRAM,最大容量为512K×16位,基本配置为256K×16位
◆512字节的EEPROM+RTC实时时钟
◆16路AD输入
◆4路DA输出
◆12路PWM输出,6路捕捉输入
◆双路URAT接口,接口标准为RS232/RS422/RS485,可配置
◆符合USB2.0标准的高速Host端接口
◆1路CAN总线接口,符合CAN2.0协议
2.SEED-Mboard实验箱人机接口模块
◆处理器为TMS320C5402
◆SRAM:
64K×16-位(可扩展至256K×16位)
◆Flash:
256K×16-位(用于存放二级标准汉字库及驻留实验程序)
◆提供手动复位
◆1路RS232接口
◆4路12位10μS建立时间±10V输出D/A
◆17键薄膜键盘
◆240*128大屏幕液晶显示
◆交通灯演示模块
以上只介绍实验箱所用到资源,如想使用其他资源请参考各个模块的用户手册。
1.3实验箱功能实现
1.3.1SEED-DEC2812
实验箱中SEED-DEC2812工作状态如下:
1.Boot模式:
直接将MP/MC接地,工作在MC模式下,将SCITXDA上拉,工作在“JumptoFlash”自举模式下。
2.输入时钟源:
外部30M时钟晶体,通过对软件寄存器PLLCR设置,使PLL锁相环倍频,最后产生150M系统时钟。
1.3.2SEED-Mboard
实验箱中本模块工作状态如下
1.工作方式的选择
SEED-Mboard的工作模式为MC工作方式。
2.BOOT模式
当SEED-Mboard处于MC工作方式时,只能用FLASH引导方式,既程序存放在FLASH中,上电或复位后,DSP将FLASH中的程序BOOTLOAD到SRAM中,程序在SRAM中运行。
3.工作频率
使用10MHz外部频率输入;当复位后,PLL硬件初始化设置为5倍频。
其芯片管脚CLKMD3~CLKMD1设置为010;便于DSP读取FLASH的程序。
系统工作正常后,可通过设置CPU的寄存器CLKMD,将PLL设为需要的倍频数。
4.串口通讯
MCBSP0用于UART通讯,因MCBSP是一种同步串口,而UART是一种异步串口,所以VC5402没有直接和UART通讯的片内外设,只有通过软件方式,用MCBSP和DMA来完成UART通讯功能,在硬件电路上,BDX0作为数据发送端,BDR0和BFSR0作为数据接收端。
MCBSP1用于与SEED_DEC2812的MCBSP串口通讯。
5.增强型HPI口
SEED-Mboard使用HPI口作为GPIO口,用做键盘扫描,HPI口的HD0-HD3,XF做输出,工作时置为0,而HD4-HD7,BIO做输入,工作时接上拉电阻,实现键盘操作
使用时,请注意以下几个方面:
1.上电后正常情况是,SEED-DEC5502板卡的D1常亮,D5灯闪烁,电源指示灯D2,D4常亮。
SEED-DTK_Mboard板的电源指示灯都亮。
2.各个实验程序的编译环境如下:
CCS版本为2.20.18。
3.各实验使用到资源可参考本书的附录内容。
注意:
运行FLASH读写程序有可能会破坏SEED-DEC5502板卡的固化的自举程序,这样会使实验箱的自检程序无法正常运行。
如果想运行实验箱自检程序,要重新烧录SEED-DEC5502的FLASH程序。
即运行光盘中的BOOT文件夹中的DEC5502_FLASHBOOT程序。
具体烧录方法见SEED-DTK5502实验箱使用手册的第四章。
实验一CCS使用和调试
一、实验目的:
1.熟悉CCS集成开发环境,掌握工程的生成方法;
2.熟悉SEED-DEC2812实验环境;
3.掌握CCS集成开发环境的调试方法。
二、实验内容:
1.DSP源文件的建立;
2.DSP程序工程文件的建立;
3.学习使用CCS集成开发工具的调试工具。
三、实验要求
1.了解CCS常见文件。
2.掌握CCS常用指令。
四、实验仪器
1.PC机
2.DSP实验箱
3.DSP仿真器
五、实验原理
1、CCS简介
CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
CCS支持如下所示的开发周期的所有阶段
CCS构成及接口见下图
CCS窗口介绍:
2、使用CCS常遇见文件简介
1.program.c:
C程序源文件
2.program.asm:
汇编程序源文件
3.filename.h:
C程序的头文件,包含DSP/BIOSAPI模块的头文件
4.filename.lib:
库文件
5.project.cmd:
连接命令文件
6.program.obj:
由源文件编译或汇编而得的目标文件
7.program.out:
经完整的编译、汇编以及连接后生成可执行文件
8.program.map:
经完整的编译、汇编以及连接后生成空间分配文件
9.project.pjt:
存储环境设置信息的工作区文件
保存配置文件时将产生下列文件:
1.programcfg.cmd:
连接器命令文件
2.programcfg.h54:
汇编头文件
3.programcfg.s54:
汇编源文件
(一)CMD文件简介
cmd文件用于DSP代码的定位。
由3部分组成:
1.输入/输出定义:
.obj文件:
链接器要链接的目标文件。
.lib文件:
链接器要链接的库文件。
.map文件:
链接器生成的交叉索引文件。
.out文件:
链接器生成的可执行代码;链接器选项。
2.MEMORY命令:
描述系统实际的硬件资源。
3.SECTIONS命令:
描述"段"如何定位。
下面例子则可说明其基本格式:
-osample.out
-msample.map
-stack100
sample.objmeminit.obj
-lrts.lib
MEMORY
{
PAGE0:
VECT:
origin=0xff80,length0x80
PAGE0:
PROG:
origin=0x2000,length0x400
PAGE1:
DATA:
origin=0x800,length0x400
}
SECTIONS
{
.vectors:
{}>PROGPAGE0
.text:
{}>PROGPAGE0
.data:
{}>PROGPAGE0
.cinit:
{}>PROGPAGE0
.bss:
{}>DATAPAGE1
}
下面介绍一下CMD文件中常用的程序段名与含义
1..cinit存放C程序中的变量初值和常量;
2..const存放C程序中的字符常量、浮点常量和用const声明的常量;
3..text存放C程序的代码;
4..bss为C程序中的全局和静态变量保留存储空间;
5..far为C程序中用far声明的全局和静态变量保留空间;
6..stack为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;
.sysmem用于C程序中malloc、calloc和realloc函数动态分配存储空间。
(二)vecs.asm文件简介
vecs.asm是DSP的中断向量表文件。
中断服务程序的地址(中断向量)要装载到存储器的合适区域。
一般中断向量表文件是采用汇编语言编写;在文件中一般汇编指令.sect来生成一个表。
这个表包含中断向量的地址和跳转指令。
因为中断读物的标志符在汇编语言模块外部使用,所以标志符用.ref或.global。
(三)GEL文件简介
GEL文件的功能同cmd文件的功能基本相同,用于初始化DSP。
但它的功能比cmd文件的功能有所增强,GEL在CCS下有一个菜单,可以根据DSP的对象不同,设置不同的初始化程序。
以下面的例子介绍一下GEL文件的构成。
例:
#defineDEC2812_CTL0x60000//定义DEC2812_CTL寄存器
#defineDEC2812_INT0x60001//定义DEC2812_INT寄存器
#defineDEC2812_STA0x60002//定义DEC2812_STA寄存器
StartUp();开始函数
{
GEL_MapReset();;存储空间复位
GEL_MapAdd(0x0000,0,0x7fff,1,1);定义程序空间0000-7fff可读写
GEL_MapAdd(0x8000,0,0x7000,1,1);定义程序空间8000-f000可读写
GEL_MapAdd(0x0000,1,0x1000,1,1);定义数据空间0000-f000可读写
GEL_MapAdd(0xffff,2,1,1,1);定义I/O空间0xffff可读写
GEL_MapOn();存储空间打开
GEL_MemoryFill(0xffff,2,1,0x40);在I/O空间添入数值40h
}
3、CCS常用指令简介
1.设置断点。
将光标放置在需要设置断点的程序行前,选择Debug→Breakpoints,即完成可一个断点的设置。
2.CCS提供3种方法复位目标板
1)ResetDSP:
Debug→ResetD,初始化所有的寄存器内容并暂停运行中的程序。
使用此命令后,要重新装载.out文件后,再执行程序。
2)Restart:
Debug→Restart,将PC值恢复到当前载入程序的入口地址。
3)Gomain:
Debug→Gomain,将程序运行到主程序的入口处暂停。
3.CCS提供4种执行操作
1)执行执行:
Debug→Run,程序运行直到遇到断点为止。
2)暂停执行:
Debug→Halt,程序停止运行。
3)动画执行:
Debug→Animate,用户反复运行程序,直到遇到断点为止。
4)自由执行:
Debug→RunFree,禁止所有断点运行程序。
4.CCS提供4种单步执行操作
1)单步进入:
快捷键F8,Debug→stepinto,当调试语句不是基本的汇编指令时,此操作进入语句内部。
2)单步执行:
Debug→stepOver,此命令将函数或子函数当作一条语句执行,不进入内部调试。
3)单步跳出:
Debug→stepOut,此命令作用为从子程序中跳出
4)执行到光标处:
快捷键crtl+F10,Debug→RuntoCursor,此命令作用为将程序运行到光标处。
5.内存、寄存器与变量的操作
1)查看变量:
使用view→WatchWindow命令
2)查看寄存器:
使用view→Registers→CPURegisters命令
3)查看内存:
使用view→memory命令
6.Graph的设置即图形显示
1)选择View→Graph→Time/Frequency。
2)在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType等的属性可改变为如下图所示(也可根据具体需要设置属性)。
向下滚动右侧的滚动条或调整dialog框的大小可看到所有的属性。
示例(A)将起始地址为0x2c28的数组进行图形显示
3)点击OK,将出现所设的图形窗口。
如:
在滤波实验中,用以上方法设定的图形窗口,在运行滤波程序后,最终的显示结果如下图所示
4)可以在图形上单击右键,选择“FloatInMainTable”,这时图形将浮现在主窗口中,以便观察。
六、实验准备及步骤
实验准备:
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接;
3.启动计算机,当计算机启动后,打开SEED-DTK2812的电源。
观察SEED-DTK_MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯灯及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮,请断开电源,检查电源。
实验步骤:
a)创建源文件
1.双击
图标进入CCS环境。
2.打开CCS选择File→New→SourceFile命令
3.编写源代码并保存
4.保存源程序名为math.c,选择File→Save
5.创建其他源程序(如.cmd)可重复上述步骤。
b)创建工程文件
1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定
弹出如下对话框:
2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成即可完成工程创建;
3.点击Project选择addfilestoproject,添加工程所需文件;
4.在弹出的对话框中的下拉菜单中分别选择.c点击打开,即可添加源程序math.c添加到工程中;
5.同样的方法可以添加文件math.cmd、rts.lib到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib文件已经加到工程文件中。
c)设置编译与连接选项
1.点击Project选择BuildOpitions;
2.在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;
3.在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配文件),堆栈的大小以及初始化的方式。
d)工程编译与调试
1.点击Project→Buildall,对工程进行编译,如正确则生成out文件;若是修改程序,可以使用Project→Build命令,进行编译连接,它只对修改部分做编译连接工作。
可节省编译与连接的时间。
编译通过,生成.out文件;
2.点击File→loadprogram,在弹出的对话框中载入debug文件夹下的.out可执行文件;
3.装载完毕;
4.点击debug→GoMain回到C程序的入口;
5.打开File→Workspace→SaveWorkspace保存调试环境,以便下次调试时不需要重新进行设置。
只要File→Workspace→LoadWorkspace即可恢复当前设置。
七、实验报告要求
1.叙述利用CCS集成开发环境,生成工程的方法;
2.叙述CCS集成开发环境的调试过程。
3.请参阅CCS的在线帮助或CCS使用指南,进一步学习关于ProbePoints、Graph、Animation和GEL文件的知识并进行总结。
实验二、SRAM读写实验
一、实验目的:
1.熟悉SEED-DEC2812的实验环境;
2.解SRAM存储空间的分配。
二、实验内容
1.DSP的初始化;
2.DARAM上写数据;
3.检查并读取SRAM上的数据。
三、实验要求
1.了解TMS320VC2812的内部存储器空间的分配与使用。
四、实验仪器
1.PC机
2.DSP实验箱
3.DSP仿真器
五、实验原理
TMS320F2812片内包括5段SARAM,M0、M1、L0、L1和H0段。
所有基于C28x内核的数字信号处理器都包含两个单周期快速访问的存储器,M0和M1。
每个空间的长度都是1K字,其中M0映射到0x000000~0x0003F空间,M1映射到0x000400~0x0007F空间。
在复位状态下,堆栈指针指向M1模块的起始位置。
MO和M1既可以执行程序也可以存放数据变量。
其中,M0和M1段大小都为1K×16位的SARAM,当复位后,堆栈指针指向M1段的开头。
M0和M1段都可以映射到程序区和数据区。
L0、L1和H0段大小总和为16K×16位的SARAM,分为3块(4K+4K+8K),分别是L0(4K),L1(4K),H0(8K)。
每块可以单独使用,都可以映射到程序区和数据区。
1、实验程序,包含文件:
1.sram.c:
这是实验的主程序,包含了系统初始化,SRAM读写程序等。
2.DSP28_GlobalVariableDefs.c:
定义各模块的全局变量。
3.DSP28_SysCtrl.c:
系统初始化函数。
4.DSP28_DefaultIsr.c:
系统中断向量表初始化
5.2812.cmd:
声明了系统的存储器配置与程序各段的连接关系。
6.2812.gel:
系统初始化
2、程序流程图
六、实验步骤及注意事项
实验准备:
首先将光盘下03.ExamplesofProgram\04.SEED_DEC2812实验程序目录下的3.2.2onchip_sram的文件夹拷贝到D:
盘根目录下。
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接;
1.打开SEED-DTK2812的电源。
观察SEED-DEC-MBoard单元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED_DEC2812的电源指示灯D2是否均亮;若有不亮的,请断开电源,检查电源
实验步骤:
1.打开CCS,进入CCS的操作环境。
2.装入sram.pjt工程文件,添加2812.gel文件。
3.装载sram.out文件,进行调试。
4.在sram.c程序的第34行“Errcount=0;”与第42行;”for(;;)”处设置断点。
5.运行程序,程序会停在断点处,观察SourData[i]的值。
6.继续运行程序,观察结果。
七、实验报告要求
1.叙述TMS320VC2812的内部存储器空间的分配。
2.在整个工程中程序初始化包括哪几个部分,各自的作用?
3.总结调试运行情况及所遇到的问题的解决方法。
实验三、定时器控制实验
一、实验目的
1.熟悉如何编写2812的中断服务程序;
2.掌握长时间间隔的定时器的处理。
3.掌握片内外设的设置方法。
二、实验内容
1.系统初始化;
2.DSP的初始设置;
3.定时中断的编写;
三、实验要求
通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用。
四、实验仪器
1.PC机
2.DSP实验箱
3.DSP仿真器
五、实验原理
TMS320F2812片内有3个32位时钟。
其中定时器1和定时器2预留给适时操作系统使用(例如DSPBIOS),只有CPU定时器0用户可以在应用程序中使用。
这些时钟有一个32位计数器,当计数器到达0时,产生一个中断。
其中,TIMER0中断为PIE中断,TIMER1中断直接连到CPU的INT13,TIMER2中断直接连到CPU的INT14。
定时器功能框图如下所示:
3个定时器的中断信号(
)在处理器内部连接不尽相同,如下图所示:
定时器在工作过程中,首先用32位计数寄存器(TIMH:
TIM)装载周期寄存器(PRDH:
PRD)内部的值。
计数寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SEEDDTK2812 实验 讲义