ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:1.20MB ,
资源ID:7336522      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7336522.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮dsp硬件实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮dsp硬件实验报告.docx

1、北邮dsp硬件实验报告 DSP硬件实验报告学院:电子工程学院班级: 姓名: 学号: 班内序号: 一 常用指令实验一、实验目的1.熟悉DSP开发系统的连接2.了解DSP开发系统的组成,结构和应用系统构成3.熟悉常用C54X系列指令的用法(程序寻址,寄存器,I/O口,定时器,中断控制)。二、实验设备计算机,CCS 2.0版软件,DSP仿真器,EXPIII+试验箱。 三、实验步骤与内容1、系统连接:进行DSP实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:(1)、上电复位:在硬件安装完成后,确认安装正确、各实验部件及电源连接正确后,接通仿真器电源或启动计算机,此时,仿真盒上的“红色小

2、灯”应点亮,否则DSP开发系统与计算机连接有问题。(2)、运行CCS程序:先给实验箱上电,然后启动CCS,此时仿真器上的“绿色小灯”应点亮,并且CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG接口或CCS相关设置存在问题,掉电,检查仿真器的连接、JTAG接口连接,或检查CCS相关设置是否正确。2、实验操作:(1)、拨码开关设置 实验箱的拨码开关SW2.4置OFF(54x的译码有效); 54x CPU板的跳线J2的1、2短接(HPI 8位模式); SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;CPU_CS=0); SW2全部置ON(FLASH工作在数据空间,

3、LED灯D5的工作状态处于灭状态);(2)、运行实验程序 启动CCS 2.0,点击File Load Program. 并加载“exp01.out”;加载完毕后,单击“Run”运行程序;(3)、观察实验现象实验结果:可见XF灯以一定频率闪烁;单击“Halt”暂停程序运行,则XF灯停止闪烁,如再单击“Run”,则“XF”灯又开始闪烁;四、流程图五、实验代码源程序:注释:;File Name:exp01.asm .mmregs .global _main_main: stm #3000h,sp ssbx xf call delay rsbx xf Call delay b _main nop no

4、p ;delay: stm 270fh,ar3 loop1: stm 0f9h,ar4 loop2: banz loop2,*ar4- banz loop1,*ar3- ret nop nop ; .end/定义存储器映像寄存器 /全局符号,可在外部定义/设置堆栈指针寄存器的值为3000h/sp:堆栈指针寄存器/置位状态寄存器xf=1,灯亮/调用delay函数/复位状态寄存器xf=0,灯灭/调用delay函数/无条件转移至_main,/空指令/空指令/设置辅助寄存器ar3值为9999/设置辅助寄存器ar4值为249/Loop:对代码块开始重复汇编/寄存器ar4值减一,当其值不为0时跳转到loo

5、p2 /寄存器ar3值减一,当其值不为0时跳转到loop1/可选择延迟的返回/空指令/空指令二、资料存储实验 一、实验目的:1、掌握TMS320C54的程序空间的分配,2、掌握TMS320C54的数据空间的分配,3、操作其数据空间的指令二、实验设备计算机,CCS3.3,DSP仿真器,EXPIII+试验箱三、实验步骤与内容 1、实验使用资源介绍本实验指导书是以TMS32OVC5410为例,介绍相关的内部和外部内存资源。对于其它类型的CPU请参考查阅相关的资料手册。下面给出TMS32OVC5410的内存分配表: 对于存储空间而言,映像表相对固定。值得注意的是内部寄存器与存储空间的映像关系。因此在编

6、程应用时这些特定的空间不能作其它用途。对于程序存储空间而言,其映像表和CPU的工作模式有关。当MP/MC引脚为高电平时,CPU工作在微处理器模式;当MP/MC引脚低电平时,CPU工作在为计算机模式。具体的内存映像关系如上图所示。2、实验操作 (1).拨码开关设置实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接(HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);(2).运行实验程序启动CCS 2.0,点击File

7、 Load Program. 并加载“exp02.out”;加载完毕后,单击“Run”运行程序,;a) 在CCS的Memory窗口中查找C5410各个区段的数据存储器地址,在可以改变的存储器内容的地方,选定地址随意改变其中内容并观察结果;b) 在CCS中装载实验示范程序,单步执行程序,程序中写入和读出的数据存储地址的变化;c) 改变其它寻址方式,观察数据存储器地址与写入和读出数据的的变化。(3)实验现象 : 本实验程序将对0x1000开始的8个地址空间,填写入0xAAAA的数值,然后读出, 并存储到0X1008开始的8个地址空间.4、流程图本实验说明:本实验程序将对0x1000开始的8个地址空

8、间,填写入0xAAAA的数后读并存储到0X1008开始的8个地址空间。在CCS中可以观察DATA内存空间地址0X10000X100F值的变化。五、实验程序源程序:注释:*File Name:exp02.asm ;get some knowledge of the cmd file;the program is compiled at no autoinitialization mode .mmregs .global _main _main: ;store data stm 1000h,ar1 rpt #07h st 0aaaah,*ar1+ ;read data then re-store

9、stm 7h,ar3 stm 1000h,ar1 stm 1008h,ar2 loop: ld *ar1+,t st t,*ar2+ banz loop,*ar3- here: b here .end/该程序在没有初始化的模式下编译/定义存储器映像寄存器/全局符号,可在外部定义/执行主程序/将外部内存地址1000h赋给辅助寄存器ar1/循环执行下一条指令8次rpt:循环执行下一条指令,计数为短立即数/将数据AAAAH存放到以地址1000H1007H的八个存储单元中.且ar1值加1 ,st存储/将立即数7赋给辅助寄存器ar3/将地址1000h赋给辅助寄存器ar1/将地址1008h赋给辅助寄存器a

10、r2Ld:把操作数装入累加器,赋值/将辅助寄存器ar1的值赋给t,ar1值加1/将t的值赋给辅助寄存器ar2,ar2值加1/寄存器ar3值减1,当其值不为0时跳转到loop/无条件转移至here三 I/O实验一、实验目的1. 了解I/O口的拓展,掌握I/O口的操作方法2. 熟悉PORTR,PORTW指令的用途3. 了解字量与模拟量的同异二、实验设备计算机,CCS3.3,DSP仿真器,EXPIII+试验箱三、实验步骤与内容 1、实验说明:实验中采用简单的一一映像关系来对I/O口进行验证,目的是使实验者能够对I/O 有一目了然的认识。在本实验系统中,提供的IO空间分配如下:CPU1:0x0000

11、switch input (X) 80x0001 LED output(X) 8CPU2: 0x0001 DAC0x0004 Read_Key0x0006 Write_Key0x000F Write_LCD2、 实验过程(1)拨码开关设置 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接(HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);(2)实验执行程序运行CCS程序,装载示范程序,调整K0K7的开关,

12、观察LP1LP7 LED亮灭的变化,以及输入和输出状态是否一致。 注意: 电平转换接口主要考虑应用3.3V的中央处理器时,系统的电平兼容问题,用来保护CPU不受损坏。系统采用74LVC245电平兼容转换器件。 (3)实验现象调整K0K7的开关,观察LP1LP7 LED不同条件下灯的亮灭变化。4、流程图五、实验程序源程序:注释:;File Name :exp03.asm;learn how to operate the I/O ports;in the I/O space 0x0000=8 switches ; 0x0001=8 LEDs .mmregs .global _main .text_

13、main: stm 3100h,sp stm 1000h,ar1 portr 8000h,*ar1 nop nop portw *ar1,8001h nop nop b_main nop nop .end/输入端口赋给8个按键/输入端口赋给8个指示灯/定义映像寄存器/声明全局符号,/代码区/执行主程序/设置堆栈指针寄存器的值为3100h/设置辅助寄存器ar1值为1000h/从8000h端口读入IO数据,将其传入ar1所指向的内存空间1000h /空指令.起延时作用./空指令/将ar1所指向的内存空间的值赋给8001h端口,控制led灯 访问I/O 空间需要使用特殊的指令:portr 和port

14、w。 portr:读按键;portw:写按键;空指令;空指令 ;无条件转移至_main,实现按键控制;空指令;空指令四 定时器实验一、 实验目的熟悉C54的定时器,掌握C54定时器的控制方法,学会使用定时器中断方式控制流程。二、实验设备 计算机,CCS3.3,DSP仿真器,EXPIII+试验箱3、实验步骤及内容1、实验说明 C54的定时器是一个20位的减法计数器,可以被特定的状态位实现停止、重新启动、重新设置或禁止,可以使用该定时器产生周期性的CPU中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD和定时减法寄存器TDDR。 在本系统中,如果设置时钟频率为20MHZ,令PRD=0x4e

15、1f,这样得到每1/1000秒中断一次,通过累计1000次,就能定时1秒钟。2、实验过程 (1)拨码开关设置 实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接(HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态); (2)实验程序运行 启动CCS 2.0,并加载“exp04.out”,单击“Run”运行,可观察到LED灯(LP0LP7)以一定的间隔时间不停摆动,单击“Halt”,暂停程序运行,LED 灯停止闪烁,

16、单击“Run”,运行程序,LED灯又开始闪烁。 (3)实验现象 LED灯(LED1LED8)以一定的间隔时间不停闪亮变化;4、流程图5、实验程序 源程序: exp04.c#include tms320uc5402.hioport unsigned port8001;unsigned int show=0x00aa;unsigned int num=0x0000;void sys_ini() asm(ssbx INTM); PMST&=0x00FF; SWWSR=0x7000; CLKMD=0x17FA; void timer0_ini() TCR|=0x0010; PRD=0x2710; TC

17、R|=0x000A; IMR=0x0008; IFR=0xFFFF;asm(rsbx INTM); TCR&=0xFFEF; TCR|=0x0020; interrupt void timer0() if(num=200) show=show; num=0; else num+; return; void main(void) sys_ini(); timer0_ini(); for(;) port8001=show; 注释/调用头文件/I/O 地址输出端口8001/存储在地址10101010/初始化数据/系统初始化子程序/置位INTM=1,禁止所有的可屏蔽中断/(映射到程序空间和数据空间)向

18、量表映射到0x0080空间 -0000 0000 1111 1111/对应于io空间7个等待周期,程序与数据空间0个等待周期 -0111 0000 0000 0000/CLKOUT=2*CLKIN=2*10M=20M,自动延时最长时间设置时钟 -0001 0111 1111 1010 /定时器0初始化子程序,产生5ms时钟 定时器产生中断的计算公式如下: TINT的周期1/tcTDDR+1PRD+1 (其中tc为 CLKOUT的周期)/00000000 0001 0000, TSS=1,停止定时器/PRD=10000(十进制)/TDDR=10(十进制)所以定时器时钟T =1/(20M/10/1

19、0000)=5ms /0000 0000 0000 1000,HINT=0,中断屏蔽寄存,使能定时器中断/HINT=1,中断标志寄存,清除所有中断标志 /复位INTM=0,全局使能可屏蔽中断/-0000 0000 1110 1111, TSS=0,定时器启动/0000 0000 0010 0000,TRB=1,定时器再装载当TRB=1 置位时,TIM 用PRD 中的值装载,PSC 用TDDR 中的值装载。/定时器0中断子程序/记200次定时器中断,时间=200*5ms=1s/取反/每200次,即1s取反一次,灯变化一次/主程序/调用初始化函数/调用定时器初始化函数/将输出端口8001赋给led

20、灯显示变量中断向量空间表:源程序:vectors.asm .global _c_int00,_timer0 .sect .vecsreset: b _c_int00 nop nopnmi: RETE NOP NOP NOP sint17 .space 4*16sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .

21、space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE NOP NOP NOPint1: RETE NOP NOP NOPint2: RETE NOP NOP NOPtint: b _timer NOP NOPbrint0: RETE NOP NOP NOPbxint0: RETE NOP NOP NOPbrint1: RETE NOP NOP NOPbxint1: RETE NOP NOP NOPint3: RETE NOP NOP NOP .end注释:/引用函数c_int00,引用了c中的函数/

22、自定义一个已初始化段.vecs/复位中断向量,跳转到主程序/用nop填充表中其余空字/B指令占两个字节,所以用两个nop/非屏蔽外部中断的输入引脚/允许响应中断,可屏蔽中断置为0,返回/软件中断,内部中断,保留出中断向量的地址空间,将4*16的地址存储在sin17sin30NT0INT2 外部用户中断输入,具有优先权,能通过中断屏蔽寄存器和中断方式位屏蔽,能通过中断标志寄存器复位。/此处int0中断响应为0,设置rete响应中断并返回。/此处int1中断响应为0,设置rete响应中断并返回。/此处int2中断响应为0,设置rete响应中断并返回。/定时器产生的时钟中断,跳转到主程序c中定义的t

23、imer程序/同步串口0(McBSP0)接受中断,直接返回/同步串口0(McBSP0)发送中断,直接返回/同步串口1(McBSP1)接受中断,直接返回/同步串口1(McBSP1)发送中断,直接返回/外部中断int3,允许中断并返回六、实验总结:中断,指的是当某个事件发生时,暂停当前的操作,转向中断服务程序,执行完后再返回继续原来的操作。这使得DSP能够处理多个任务。DSP有许多中断源,可以设置中断控制寄存器来确定响应哪些中断而不理会哪些中断,本实验介绍最常用的定时器中断。当有中断发生并且处于允许状态时,程序指针跳转到中断向量表中对应的中断地址。由于中断服务程序一般较长,通常中断向量表存放的是一

24、个跳转指令,指向实际的中断服务程序。使用向量一般用一条跳转指令转到相应中断服务子程序,其余空位用NOP填充;*未使用的向量直接用RETE返回,是为了防止意外进入未用中断。使用定时器首先要对它初始化,基本步骤如下:1关掉中断 2停止定时器运行。 3设定时器的定时长度4允许定时器中断 5运行定时器 6打开中断定时器是一个片内减计数器,它可以被特定的状态位实现停止、重启动、重设置或禁止。定时器在复位后就处于运行状态,用于周期地产生CPU中断或脉冲输出。定时器被预定标计数器所触发,后者每个CPU时钟周期减1,当计数器减至0时,会产生一个定时器中断,同时在下一周期计数器被定时周期值重新装载。 五、INT

25、2中断实验一、实验目的1. 掌握中断技术,学会外部中断的处理方法2. 掌握中断对程序流程的控制,理解DSP对中断响应时序二、实验设备计算机,CCS3.3,DSP仿真器,EXPIII+试验箱三、实验步骤和内容 (1)拨码开关设置1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接(HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态); 2、用导线连接CPLD单元的2号孔单脉冲输出和电机控制单元2号孔INT2。(2)

26、实验程序运行 启动CCS 2.0,并加载“exp05.out”,单击“Run”运行。反复按开关单脉冲输出,观察LED1LED8灯亮灭变化;单击Halt暂停程序运行反复按单脉冲单元的S5键,LED1-LED8灯亮灭不变化 (3)实验现象 : 先按开关单脉冲输出,发现LED灯1,3,5,7亮,再按一次,LED灯2,4,6,8亮。4、流程图五、实验程序源程序:initial.asm注释: .mmregs .global _initial .text _initial: NOP LD #0, DP STM #0, CLKMD STM #0, CLKMD TstStatu1: LDM CLKMD, A

27、AND #01b, A BC TstStatu1, ANEQ STM #0xF7FF, CLKMD STM 0x3FA0, PMST ssbx 1,11 stm #00h,imrstm #0ffffh,ifr stm #04h,imr rsbx 1,11 ret .end/定义存储器映像寄存器/定义全局变量/已初始化可执行代码段/系统初始化/重置数据指针,为DP寄存器赋值0DP是状态寄存器ST0 的低9 位,和7 位(数据存储器地址)构成16 位数据存储区地址/设置时钟模式寄存器的值为0可通过调整CLKMD 寄存器改变CPU 时钟。STM累加器的低端存放到存储器映射寄存器/LDM把存储器映射寄

28、存器值装入到累加器/和poll STATUS (二进制)做与运算;/BC为可选择延迟的条件转移;/1111 0111 1111 1111,设置时钟10MHz;/PMST是处理器模式状态寄存器,指向中断指针向量0011 1111 1010 0000, MP/MC =0,可对片内ROM 寻址;/置位ST1.INTM=1,停止所有的中断/将立即数置位0,存在中断屏蔽寄存器,此时HINT=0停止所有中断;/将立即数全1存入中断标志寄存器,此时HINT=1中断开放,清除所有中断标志位;/立即数0100,使能int2的外部中断/复位ST1.INTM=0,允许所有中断/ret可选择延迟的返回外部中断程序:int2.c注释:interrupt void int2c(); extern void initial();extern void porta();extern void portb();int flag=0,i=0;main() initial(); while(1); interrupt void int2c() i=i+1; if(i=1) if(flag=0) flag=1; porta(); i=0; else flag=0; portb();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1