dsp综合实验课件_第1页
dsp综合实验课件_第2页
dsp综合实验课件_第3页
dsp综合实验课件_第4页
dsp综合实验课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现代电子学综合实验DSP实验TMS320C5402核心版该板实现了一个最小系统,可以单独运行。板上主要资源包括:一个TMS320C5402型号的DSP芯片;一个LV64L1664KX16BITSRAM

;一个CPLD可编程芯片,本模块主要负责实验系统中的总线控制工作。DPS+CPLD开发板和EDA5.1底板构成的完整DSP开发系统图DSP_JTAG接口:DSP与仿真器的连接接口CPLD_JTAG接口:对CPLD进行配置和下载程序的接口J6、J7:通过该接口与EDA主板连接,从而可使用底板上的外设.EPM240T100C561LV6416EPM240T100C5DSP_JTAGVC5402J7J6PLD_JTAGDSP_JTAG:DSP与仿真器的连接接口CPLD_JTAG:对CPLD进行配置和下载程序的接口通过跳线器J2切换MP/MC工作方式,当跳线器连接时工作在微计算机方式,当跳线器断开时工作在MP方式J6J7:通过该接口与EDA主板连接,从而可使用底板上的外设.如果MP/MC=0,程序从片内ROM开始执行,否则,从片外程序存储器开始执行。数码管led液晶显示电源开关5V电源输入时钟源51单片机VGA接口232接口4*4键盘TLC549实验箱布局图核心板模式显示PS2USB电平开关核心板插口◎数字信号处理(Digitalsignalprocessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪80年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速发展,已经在信号处理、通信、语音、图像、雷达、生物医学、工业控制、仪器仪表等许多领域得到广泛应用.◎

DSP既是DigitalSignalProcessing的缩写,也是DigitalSjgnalProcessor的缩写,二者的英文简写相同,但含义不同.◎

DigitalSjgnalProcessing广指数字信号处理的理论和方法,即数字信号处理技术。◎

DigitalSjgnalProcessor(DSP)——指用于进行数字信号处理的可编程微处理器,强调运算处理的实时性,因此除了具备普通微处理器所强调的高速运算和控制功能外,主要针对实时数字信号处理,在处理器结构、指令系统和数据流程上做了较大的改动。DSP系统的构成DSP系统具有数字处理的全部优点:

(1)接口方便。(2)编程方便。可使设计人员在开发过程中灵活方便地对软件进行修改和升级。(3)稳定性好。受环境温度及噪声的影响较小,可靠性高。(4)精度高。(5)可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本不受影响,因此数字系统便于测试、调试和大规模生产。(6)集成方便。有高度的规范性,便于大规模集成。当然,数字信号处理也存在一定的缺点。例如,对于简单的信号处理任务,若采用DSP则使成本增加。DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。此外,DSP技术更新的速度快,数学知识要求多,开发和调试工具还不尽完善。TMS320VC5402引脚图:TMS320VC5402的引脚1返回首页图:TMS320VC5402的引脚2表:TMS320VC5402引脚说明1表:TMS320VC5402引脚说明3表:TMS320VC5402引脚说明4表:TMS320VC5402引脚说明5表:TMS320VC5402引脚说明7返回本节表:TMS320VC5402引脚说明815~76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSST图3处理器方式状态寄存器PMST的位结构表3:时钟方式寄存器CLKMD表4:软件等待状态寄存器SWWSR表5:分区转换控制寄存器表7:定时器控制寄存器TCR定时器控制寄存器TCR功能DSP的USB仿真器(TDS510)驱动软件安装1.将DSP的USB仿真器(TDS510)连接到DSP模块上的JTAG接口和PC机(连接无误后才上电),桌面出现找到新的硬件界面:

2.点击“从列表或指定位置安装”,出现以下画面,并在浏览中选择驱动软件目录:3.然后点击下一步,出现:4.点击完成,屏摹右下方出现“新硬件已安装并可以使用了。”,表示dsp仿真器驱动软件安装完毕。CCS中的软件或硬件仿真的设置1.点击桌面的”setupccs”软件,并在File菜单下选择import;2.在出现的importconfiguration对话框中,选择器件及软件或硬件仿真设备,然后点击”import”,在”mysystem”下出现相应的软件或硬件仿真设备.软件仿真设备设置步骤:硬件仿真设备设置步骤:仿真设备设置完毕,启动CCS:点击”setupccs”中”file”菜单下的”exit”启动ccs,出现如下界面:接着点击open菜单,若选择”c5402devicesimulator/cpu”即为软件仿真,选择”c5402dskviatds510usb2.0emulator/cpu”即为硬件仿真.CCS的使用一、新建工程文件启动CCS,在主菜单中单击“Project”,会有“new”和“open”选项,创建新工程使用“new”选项。程序会提问新建工程的名字以及保存位置,指定后单击“确定”即可。新建工程窗口CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。可使用两种方式向工程添加源文件、CMD和库文件。(1)添加源文件

·第一个方法:在主菜单中单击“Project”,选择“AddFilestoProject”命令,在弹出的添加文件对话框中找到文件,单击“打开”按钮即可。

·第二个方法:在工程名上单击鼠标右键,选择“AddFiles”命令。在弹出的添加文件的对话框中,找到指定类型的文件。单击“打开”按钮。2.向工程添加各类型文件添加文件(2)添加必需的内存定位文件“*.cmd”:使用上述任一方式,向工程里添加“hello.cmd”,注意在添加文件对话框的“文件类型”下拉列表中要选择“LinkCommandFile(*.cmd)”,该文件定义了各代码段和数据段在存储器中的位置。3)添加库文件:

若工程是基于C语言编写的,还需添加运行时的支持库文件(Run-Time-SupportLibrary).如果基于汇编的就不需要)。使用上述任何一种方式,向工程添加“rts.lib”文件,该文件存放在CCS的安装目录c5400\cgtools\lib”下。注意在添加文件对话框的“文件类型”下拉列表中要选择“ObjectLibraryFiles(*.o*,*.l*)”。(5)添加gel文件在工程视图中选中GELfiles文件夹,单击鼠标右键,在弹出的菜单中选择LoadGEL选项,载入gel文件.(4)添加头文件在工程名“hello1.pjt”上单击鼠标右键,选择“ScanAllDependencies”,这样hello.c文件所包含的头文件“hello.h”将出现在工程浏览窗中的“include”文件夹中。头文件实际不用人工添加,在Build工程时,CCS本身就会自动完成扫描。二、建造和运行程序

建造(Building)指编译、汇编、链接三个独立步骤按顺序联合运行。

(1)建造:在主菜单中单击“Project”,选择“RebuildAll”,或者单击工具条图标,CCS将重新对工程中所有文件进行编译、汇编、链接,并同步在底部窗口中显示编译连接信息。连接完毕,CCS生成一个“.out”文件,默认存放在目录“hello2”下的“debug”目录中。

(2)建造完毕后,再装载程序:在主菜单中单击“File”,选择“LoadProgram”,在弹出对话框中,找到目录“hello2”下的“debug”目录,选择“hello.out”,并打开。CCS装载完毕该文件到目标DSP以后,会自动弹出“Dissassembly”窗口,显示构成源代码的反汇编指令。同时,CCS还会在底部弹出“stdout”栏,用于显示程序在运行时的输出信息。

(3)点击工具栏按钮或选择Debug→Run。单步和全速运行:在主菜单中单击“Debug”,选择“GoMain”,让程序从主函数开始运行。程序会停在main()处,并会有一个黄色的箭头标记当前要执行的C语言代码,若单步执行,用F10,若全速执行,用F5(RUN)

。断点运行1.断点设置:将光标移到欲设断点位置处,按F9;断点取消也是F9.2.按F5.如果同时看到C语言代码和对应编译生成的汇编代码,在主菜单中单击“View”,选择“MixedSource/ASM”,此时会有一个绿色箭头标记当前要执行的汇编代码多种观察窗口帮助调试:(1)查看寄存器:选择View菜单中的CPURegisters命令。(2)查看数据:选择View菜单中的Memory…命令,弹出设置窗口,按实际需要指定其中的参数,如起始地址等,就可以观察到数据单元中的值,该值可以以多种格式表示。(3)查看程序中变量的当前值:可以在程序中用光标选中变量名,在鼠标右键菜单中选择AddtoWatchWindow命令就可以把该变量添加到Watch窗口。随着程序的运行,可以在Watch窗口看到该变量的值的变化。选择View→Graph→Time/Frequency。在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType,Autoscale和MaximumY-value的属性改变为需要的属性。(4)显示图形:如果要观察的变量太多,例如要观察一个数组的值,那么可以用一种更直观的方法,就是把数据用图形的方式表现出来。在TMS320VC5402中,定时器通过控制定时器相关寄存器,该定时器可以被停止、重新启动、复位或禁止。与该定时器有关的寄存器有定时计数寄存器(TIM)、定时周期寄存器(PRD)以及定时器控制寄存器(TCR)。定时计数寄存器TIM:该寄存器是一个存储器映射的寄存器。该寄存器中保存了定时器当前的计数值,并且该寄存器的值会在预分频器中的计数器递减至0的时候递减1。当TIM寄存器中的至递减至0的时候,定时器复位,TIM重新加载PRD寄存器中的值,开始下一轮计数,与此同时,当该寄存器中的值递减至0的时候,产生定时器中断。定时周期寄存器PRD:该寄存器是一个存储器映射的寄存器。该寄存器用于控制定时器的周期。定时器控制寄存器TCR:该寄存器是一个存储器映射的寄存器。该寄存器主要用于控制定时器的启动、停止、复位以及初始化定时器的预分频器等操作。该寄存器的具体内容如下表所示。TDDR:定时器的4位预分频器,TDDR的值为0~15。TSS:定时器启动/停止位。‘1’可停止定时器计数;‘0’可启动定时器。TRB:向该位写入‘1’可复位定时器。PSC:预分频器的递减计数器。该计数器会在CLKOUT的作用下递减,当递减至0的时候,TIM的值便会递减1,同时PSC会重新加载TDDR的预分频值。Free:该位用来配置定时器是否工作在Soft制定的工作方式。当该位为‘0’时,选定Soft位所指定的工作模式;当该位为‘1’时,定时器将会正常运行,而不会采取Soft位所指定的工作模式。Soft:该位用来配置定时器在遇到程序中断时的工作方式。当该位为‘0’时,遇到中断定时器会立即停止运行;当该位为‘1’时,定时器将会正常运行,遇到中断定时器会在递减到0后停止运行。根据以上讲述,可以得到DSP中定时器的定时中断周期为:

T=CLKOUT×(TDDR+1)×(PRD+1)CLKOUT为时钟周期要对定时器正确配置和操作,可以通过以下步骤来实现:1)首先将TCR寄存器中的TSS位置’1’来停止定时。2)初始化定时器周期PRD。3)重新加载TCR寄存器(初始化定时器的预分频器TDDR,TSS=0;TRB=1),启动定时器。4)将IFR寄存器中的TINT位置’1’,清楚尚未处理完的定时器中断,5)将IMR寄存器中的TINT位置’1‘,开定时器中断。6)将ST1寄存器中的INTM清零,全局中断使能。asm("STM#0000h,CLKMD");while(*CLKMD&0x01);asm("STM#40C7h,CLKMD");//设置CPU运行频率=100M/*40C7h:5*clkin=100M30c7h:4*clkin=80M20c7h:3*clkin=60M10C7h:2*clkin=40M*/asm("stm#4240h,SWWSR");//2waitexceptforon-chipprogram1asm("stm#00a0h,PMST");//MP/MC=0,IPTR=001,ovly=0

asm("stm#0802h,BSCR");asm("STM#0h,IMR");asm("STM#0010h,TCR");//关定时器asm("STM#0186ah,PRD");//1msasm("STM#0C2fh,TCR");//TCR=最后四位asm("STM#0008h,IFR");asm("ORM#0008h,*(IMR)");/*开时间中断*/asm("ORM#0100h,*(IMR)");/*开INT3中断*/asm("SSBXXF");asm("RSBXINTM");/*开中断*/vectors.asm中存放的是中断入口地址,如果程序中涉及到中断,就需要在vectors.asm中相应的地址放置跳转指令,跳转到相应的中断服务子程序便可。*.cmd命令文件:(1)在命令文件中两个十分有用的伪指令MEMORY和SECTIONS:指定实际应用中的存储器结构和进行地址的映射。(2)Memory:用来指定目标存储器结构,Memory下可以通过PAGE选项配置地址空间,链接器把每一页都当作一个独立的存储空间。通常情况下,PAGE0代表程序存储器用来存放程序,PAGE1代表数据存储器,用来存放数据。(3)由编译器生成的可重定位的代码和数据块叫做“SECTIONS”(段),SECTIONS用来控制段的构成与地址分配。对于不同的系统配置,“SECTION”的分配方式也不相同,链接器通过“SECTIONS”来控制地址的分配,所以“SECTIONS”的分配就成了配置.cmd文件的重要环节。72存储器-TMS320VC5402寻址空间存储器:DARAM(双寻址数据存储器),SARAM(单寻址数据存储器),ROM(程序存储器)

数据存储器总是安排到数据存储空间,但也可设置成程序存储空间;程序存储器总是安排到程序存储空间,但也可设置成数据存储空间;MP/MC=0,片内ROM配置到程序空间;

MP/MC=1,片内ROM不配置到程序空间;OVLY=1,片内RAM配置到程序和数据空间;OVLY=0,片内RAM只配置到数据空间;以下是对“SECTIONS”的定义及分配的详细介(1).text包括所有的可执行代码和常数,必须放在程序页;(2).cinit包括初始化的变量和常量表,要求放在程序页;.pinit它包括全局构造器(C++),可放在程序页;(3).const它包括字符串、声明、以及被明确初始化过的全局和静态变量,要求放在低地址的数据页;(4).switch它包括为转换声明设置的表格,可以放在程序页也可以放在低地址的数据页。MEMORY{PAGE0:EPROG:origin=0x1400,len=0x7c00VECT:origin=0xff80,len=0x80PAGE1:USERREGS:origin=0x60,len=0x1cBIOSREGS:origin=0x7c,len=0x4IDATA:origin=0x80,len=0x1380EDATA:origin=0x1400,len=0x8000EDATA1:origin=0x9400,len=0x4c00}SECTIONS{.vectors:{}>VECTPAGE0.sysregs:{}>BIOSREGSPAGE1.trcinit:{}>EPROGPAGE0.gblinit:{}>EPROGPAGE0frt:{}>EPROGPAGE0.text:{}>EPROGPAGE0.cinit:{}>EPROGPAGE0.pinit:{}>EPROGPAGE0.sysinit:{}>EPROGPAGE0.bss:{}>IDATAPAGE1.far:{}>IDATAPAGE1.const:{}>IDATAPAGE1.switch:{}>IDATAPAGE1.sysmem:{}>IDATAPAGE1.stack:{}>IDATAPAGE1}.bss它为全局变量和静态变量保留空间。在程序开始运行时,C导入路径把数据从.cinit节复制出去然后存在.bss节中,要求放在低地址的数据页;.stack为C系统堆栈保留空间,这部分存储器为用来将声明传给函数及为局部变量留出空间,要求放在低地址的数据页;.system动态存储器分配保留空间。这个空间用于malloc函数,如果不使用malloc函数,这个段的大小就是0,要求放在低地址的数据页;79JTAG口 JTAG是JointtestActionGroup的简称,又称JTAG口,它是一符合IEEEStd1149.1边界扫描逻辑标准的标准接口。它主要用于在硬件上对DSP进行实时在线仿真测试和DSP程序的下载,它提供对所连接设备的边界扫描,同时也可以用来测试引脚到引脚的连续性,以及进行DSP芯片的外围器件的操作测试。80JTAG口TCK:测试时钟TDI:测试数据输入TDO:测试数据输出TMS:测试方式选择TRST#:测试复位引脚EMU0:仿真中断引脚0EMU1:仿真中断引脚181JTAG口JTAG口实例DFT假设信号为x(0),x(1),……,x(N-1),那么其离散傅立叶变换(DFT)后的实部和虚部以及频谱幅度分别为:频谱幅度:实验九

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论