DSP应用技术试验第1讲.ppt

上传人:牧羊曲112 文档编号:5428147 上传时间:2023-07-05 格式:PPT 页数:56 大小:392.50KB
返回 下载 相关 举报
DSP应用技术试验第1讲.ppt_第1页
第1页 / 共56页
DSP应用技术试验第1讲.ppt_第2页
第2页 / 共56页
DSP应用技术试验第1讲.ppt_第3页
第3页 / 共56页
DSP应用技术试验第1讲.ppt_第4页
第4页 / 共56页
DSP应用技术试验第1讲.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《DSP应用技术试验第1讲.ppt》由会员分享,可在线阅读,更多相关《DSP应用技术试验第1讲.ppt(56页珍藏版)》请在三一办公上搜索。

1、DSP应用技术,实 验 课 程电光系,本课程成绩,笔试 60分实验 30分平时 10分总分 100分,实验注意事项,1.按学号与机号对应就坐上机,实验完毕填写实验登记本,并交老师签字;2.上机过程中不可玩游戏,否则取消参加以后实验资格;3.不得在实验室内吃早点;4.不得随意更改计算机的软件和硬件设置,不得使用与实验课程无关的软件;5.保持实验室整洁,不要将废纸、杂物留在实验室。,第一讲,1、实验箱系统介绍2、仿真开发与基本操作3、定时器控制实验,SEED-DTK(DSP Teaching Kit)是由合众达公司提供的一套可以满足大学本科、研究生和教师科研工作的综合实验设备,具有独特的多DSP结

2、构、较强的DSP主板功能、丰富的外围实验电路、与教学内容紧密结合的实验例程。下面主要介绍下SEED-DTK2812实验箱,它由SEED-DEC2812板卡以及SEED_DTK_MBoard构成:其中主控板是合众达公司生产的SEED-DEC2812,母板是由该公司生产的SEED-DTK_MBoard板卡。此外,该款实验箱还可以配置DSK板卡、图像处理卡等多种子卡。,1 实验系统介绍,SEED-DTK2812的原理框图,SEED-DTK2812实验箱构成,SEED-DEC2812 实验箱DSP基本系统:高性能DSP:TMS320F2812,主频150MHZ外扩SRAM,最大容量为512K16位51

3、2字节的EEPROM+RTC实时时钟16路AD输入4路DA输出12路PWM输出,6路捕捉输入双路URAT接口,接口标准为RS232/RS422/RS485,可配置符合USB2.0标准的高速Host端接口1路CAN总线接口,符合CAN2.0协议,SEED-DTK2812实验箱构成:,SEED-MBoard 实验箱人机接口模块:处理器为TMS320C5402SRAM:64K16位(可扩展至25616位)FLASH:25616位(用于存放二级标准汉字库及驻留实验程序)提供手动复位1路RS232接口4路12位10微秒建立时间10V输出D/A17键薄膜键盘240*128大屏幕液晶显示交通灯演示模块,DS

4、P电路系统,一个独立工作的DSP芯片一般包括电源电路、复位电路、时钟电路、模数转换接口电路。下面结合合众达公司提供的SEED-DTK2812实验箱为例对DSP基本的硬件电路设计及应用进行简要的介绍。(参见电路设计原理图)复位电路 上电复位电路一般在芯片的RESET引脚上置100200ms的低电平脉冲。RC复位电路具有一般性。,具有上电延迟复位和手动复位功能的复位电路图如图所示。系统调试和系统运行出现故障时可以方便地使用手动复位。,复位电路图,合众达公司提供的SEED-DEC2812板卡中,J2作为复位按钮,方便调试。复位芯片TPS3823-33能够输出时间固定为20ms的复位有效信号。,DSP

5、电路系统,时钟电路 合众达公司提供的SEED-DEC2812板卡中,TMS320F2812采用内部振荡器方式,由一个30MHZ的石英晶振提供参考频率如图所示。,内部振荡器电路,DSP电路系统,电源与滤波电路 电源芯片TPS75733实现将5V转为3.3V电源,最大输出电流为3A;电源芯片TPS76801Q实现将5V转为1.9V电源,最大输出电流为1A。3.3V、1.9V这两路电源分别为外围电路和CPU供电,为了降低电源干扰,通常对电源作滤波处理,方法是采用容值大小不同的电容并联进行电源滤波。,2 仿真开发与基本操作,DSP的软件结构DSP仿真开发 硬件仿真 软件仿真 仿真操作界面 工程文件 练

6、习,DSP的软件结构,.asm,.obj,.cmd,.out,DSP的软件结构,汇编器和链接器提供有关命令,创建块和对块处理;(1)汇编器功能:确定汇编语言源代码中各种代码和数据段的块及相应块的联系命令。汇编后产生.obj文件(目标文件)。,(2)链接器功能(配置CMD文件),将块定位于目标存储器,使各块有合适的起始地址 将COFF目标文件中的块建立程序块或数据块,产生可执行的COFF输出模块(.out文件)为输出模块选择存储器地址。,DSP仿真开发,DSP与单片机一样,它的开发需要一套完整的软硬件开发工具。TI公司提供软件开发工具CCS(Code Composer Studio)硬件开发工具

7、为扩展开发系统XDS(Extrended Development System).,DSP仿真开发 硬件仿真开发:,目前采用边界扫描仿真器XDS,利用DSP芯片上集成JTAG边界扫描接口,实现数据传输和仿真。在开发时,DSP芯片焊在电器板上,配合CCS,可进行仿真 调试,使DSP开发非常方便。,DSP仿真开发,调试程序时,若需设置内部寄存器或读出指令执行结果,先停止DSP内核电路的工作,通过器件上JTAG头对器件进行扫描,可以把信息输入到DSP中,亦可从器件中读出数据。软件仿真开发:软件开发平台CCS是TI公司开发其DSP芯片的开放型集成开发环境,它基于PC机的DSP开发环境,可在Window

8、环境下运行。与边界扫描仿真器XDS连接使用直接进行用户目标系统的开发,调试。它集编辑、编译、链接、软件仿真,硬件调试及实时跟踪等功能于一体。,DSP仿真开发,操作:(1)双击桌面Setup ccs2(c2000)图标,弹出CCS设置对话框。(2)单击“import Configuration”的“close”,关闭对话框。(3)在弹出的“Code Composer Studio Setup”对话框中选“F2812 xds510 Emulator”或“F2812 Simulator”(4)单击“Save&Quit”后,自动进入CCS工作界面。,DSP仿真开发仿真操作界面,仿真操作界面有:菜单栏、

9、工具条,工程管理器窗口和工作窗口。菜单栏中主要有:文件存取操作向目标板装载目标程序剪贴复制存储器,变量等编辑窗口菜单,工具操作存储器,寄存器,图,看门狗等观察。项目工程的操作(新建、打开、增加、删除、编译)调试(中断,单步等操作),DSP仿真开发仿真操作界面,常用图标Project Toolbar:工程工具条提供与工程和断点设置有关的命令 编译当前文件 对所有修改过的文件重新编译,再链接生成可执行文件全部重新编译链接生成可执行文件,DSP仿真开发仿真操作界面,停止Build操作 设置断点 移除所有断点.Debug Toolbar:调试工具条提供常用的调试命令 单步跳出,程序运行在函数内部时,执

10、行该操作会执行函数内的所有剩余操作,DSP仿真开发仿真操作界面,源代码单步进入(遇到函数调用时,进入被调用函数并单步运行函数的程序)源代码单步执行(遇到函数调用时,整个函数作为一条程序处理)运行程序 停止程序运行 断续运行(遇到断点后短暂后,继续运行)寄存器窗口 观察内存数据空间,DSP仿真开发仿真操作界面,观察堆栈空间 观察反汇编代码 Watch Window:观察工具条打开Quick Watch 窗口观察或修改变量,可将变量加入Watch 窗口以便察看 打开Watch窗口观察或修改变量。,工程文件,目前绝大多数软件都以项目工程(Project)形式组织软件开发中的所有文件。集成开发环境下,

11、一个工程可能包括了许多类型的源文件,也会产生许多不同的输出文件。因此开发一个应用软件并非建立一个新文件,而是建立一个新工程。新工程项目的建立步骤:a.打开CCS(c2000)b.单击project c.在“Project Creating”对话框中,Project栏输入新工程项目名。Location,Project,Target一般默认。d.单击“完成”。,工程文件,在项目工程管理窗口出现“*.pjt(Debug)”。双击后出现以下文件夹:Dependent Projects DSP/BIOS Config Generated Files Include 头文件(*.h)Libraries 库

12、文件(*.lib)Source C语言成汇编语言源文件(*.C或*.asm),工程文件,在这些子目录中应添加必要文件,以后缀加以区别。这些文件需要专门编写。实际上头文件(*.h),链接文件(*.cmd),库文件(*.lib)简单应用,一般不需编写,借用即可。但源文件必须根据用途,要求编制。可以用C语言也可以用汇编语言编制。目前一般用途可用C语言编写。,工程文件,为了有条不紊地使用CCS,建议构建新工程项目后,自动生成相应文件类及*.pjt文件;在该文件夹中组建相应的文件夹,该文件夹中包括Include,Libraries,Source.其中在Include移植相应的头文件(*.h),在Libr

13、aries中移植必要的库文件(*.lib)。而Source中放置新编置u的C语言源程序(*.C),工程文件,简单程序开发包括:创建新工程项目向新工程添加.c,.cmd,.lib,文件编译、链接生成目标文件装载目标文件运行目标文件,练 习,目的:熟悉CCS软件环境,了解软件仿 真开发过程。在CCS中编程实现简单的加法运算,a=10,b=10,计算 c=a+b,操作步骤,1.创建新工程qq(project-New)2.在“myprojectqq”中添加文件夹“src”、“lib”、“include”.3.编制C语言源文件(File-New)4.添加库文件、链接文件和源文件。(ProjectAdd

14、File to Project)5.将创建的新工程存储。(Project-Save)6.编译C语言源程序。(),操作步骤,7.链接并生成目标文件(Debug-Rebuild All,)8.装载目标文件(FileLoad Program)9.打开输出结果窗口(ViewWatch,)10.运行目标文件(DebugGo Main,)11.停止运行。(DebugHalt,)12.修改源程序中a,b值,熟悉链接-装载-观察结果的过程.,3 定时器控制实验,实验目的:掌握 定时器基本原理掌握 中断的基本原理掌握 定时器控制C语言编程,实验原理 TMS320F2812片内有3个32位时钟,分别被称为CPU定

15、时器0、1、2。其中定时器1和定时器2预留给适时操作系统使用(例如DSPBIOS),只有定时器0用户可以在应用程序中使用。每个定时器中均有一个32位减计数器,当计数器减到零时,产生一个中断。其中,TIMER0中断为PIE中断,TIMER1中断直接连在CPU的INT13,TIMER2中断直接连在CPU的INT14.注:SEED-DEC2812未使用CPU定时器0,用户可以根据应用的需要灵活使用。,3 定时器控制实验,3 定时器控制实验,实验原理,工作原理(1)预定标计数器PSC,在系统工作时钟SYSCLKOUT作用下,递减计数。经(TDDR+1)个周期预定标计数器减为零,产生下溢信息,向定时器的

16、32位计数器(TIM)借位。(2)32位计数器TIM,在预定标计数器PSC下溢信号下,递减计数;预定标计数器PSC在本身下溢信号作用下,重新装载。(3)32位计数器TIM经(PRD+1)个周期,递减为零,产生中断信息INT,并在此信号作用下重新装载。,在初始化值TDDR,PRD 不全为零时,定时器中断周期为:即中断频率为:,定时中断信号与处理器内部连接示意图:,定时器控制寄存器(TCR),中断标志写1清除标志,中断使能写1清除使能,CPU定时器 仿真模式,定时器装载位 1=reload,定时器停止状态位0 start1 stop,(RES为保留位),定时器配置和控制寄存器,定时器预定标寄存器(

17、TPR),16位定时器预定标计数器高8位,16位定时器预定标计数器低8位,16位定时器分频寄存器高8位,16位定时器分频寄存器低8位,定时器配置和控制寄存器,定时器计数器(TIM);,TIMH:32位定时器 计数器高16位,TIM:32位定时器 计数器低16位,定时器配置和控制寄存器,定时器周期寄存器(PRD),PRDH:32位定时器 周期寄存器高16位,PRD:32位定时器 周期寄存器低16位,定时器配置和控制寄存器,实验准备 1将DSP仿真器与计算机连接好;2将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接;3.打开SEED-DTK2812的电源。观察SEED-DTK

18、_Mboard单元的+5V,+3.3V,+15V,-15V的电源指示灯以及SEED-DEC2812的电源指示灯D2是否均亮;若有不亮的,请断开电源,检查电源。,实验程序文件:DSP28_CpuTimer.c:包含定时器初始化和配置函数。DSP28_Defautlsr.c:包含各中断默认的中断程序。DSP28_GlobalVariableDefs.c:定义各模块的全局变量。DSP28_Gpio.c:Gpio初始化。DSP28_InitPeripherals.c:包含各外设初始化。DSP28_PieCtrl.c:初始化各PIE控制寄存器。DSP28_PieVect.c:PIE中断向量表初始化。DS

19、P28_SysCtrl.c:包含系统初始化函数等。,实验程序文件:CpuTimer.c:实验主程序,包含系统初始化,定时器中断初始化,中断程序等。2812.cmd:声明了系统存储器配置与程序各段的连接关系。2812.gel:系统初始化*.h:各个源文件的头文件 Rts2800.l:库函数文件,系统初始化,等待进入中断程序,关中断,定时器中断初始化,配置并启动定时器,开中断,定时器控制设计流程图:,3,3,interrupt void ISRTimer2(void);void main(void)/*初始化系统*/InitSysCtrl();/*关中断*/DINT;IER=0 x0000;IFR

20、=0 x0000;/*初始化PIE*/InitPieCtrl();/*初始化PIE中断矢量表*/InitPieVectTable();/*初始化外设*/InitPeripherals();,定时器控制设计实例:,主程序设计:,EALLOW;PieVectTable.TINT2=,#define M_INT14 0 x2000,void ConfigCpuTimer(struct CPUTIMER_VARS*Timer,float Freq,float Period)Uint32 temp;/Initialize timer period:Timer-CPUFreqInMHz=Freq;Time

21、r-PeriodInUSec=Period;temp=(long)(Freq*Period);Timer-RegsAddr-PRD.all=temp;/Set pre-scale counter to divide by 1(SYSCLKOUT):Timer-RegsAddr-TPR.all=0;Timer-RegsAddr-TPRH.all=0;,设置定时器定时时间,并初始化定时器:,根据程序列出具体的定时器中断频率公式,/Initialize timer control register:Timer-RegsAddr-=0;/0=Pulse Low Timer-RegsAddr-=0;/0

22、=No Toggle,POL bit defines action Timer-RegsAddr-=1;/1=Stop timer,0=Start/Restart Timer Timer-RegsAddr-=1;/1=reload timer Timer-RegsAddr-=0;/Force output enable(not used)Timer-RegsAddr-=7;/7+1=8 SYSCLKOUT cycle pulse width Timer-RegsAddr-=1;Timer-RegsAddr-=1;/Timer Free Run Timer-RegsAddr-=1;/0=Disa

23、ble/1=Enable Timer Interrupt/Reset interrupt counter:Timer-InterruptCount=0;,实验要求与任务,装入cputimer.pjt 工程文件后,添加2812.gel文件。结合程序流程充分理解实验主程序CpuTimer.c,并完成以下工作:1、将中断服务主程序补充完整,要求能够实现SEED_DEC2812板卡上指示灯D1和D3交替闪烁。,interrupt void ISRTimer2(void)CpuTimer2.InterruptCount+;?,补充程序实现指示灯D1和D3交替闪烁,2、尝试将指示灯D1和D3交替闪烁的时间改为4S、10S(实验者根据自己的需要改变周期寄存器的值,从而控制每次进入中断的时间)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号