【实用资料】DSP实验指导答案.pdf
DSP原理及应用课后习题答案
DSP原理及应用课后习题答案简述DSP芯片的主要特点哈彿结构•一将程序和数据存储在不同的存赭空河中.即程序存储器和数据存储器足两个相互独立的存赭器.毎个存储器独立编址.独立访问.多总线结构…保证在一个机器周期内可以多次访问程序存僦空何和数据存储空何.揣令系统的流水线操作••减少描令执行时仙・增强处理器的处理能力•取址.译码.取操作和执行四个阶段。
少用的礎件乘法器••使乘法累加运畀能在单个周期内完成.特殊的DSP描令.抉速的描令周期、玦件配18强。
详细描述冯诺依曼结构和哈佛结构,并比较不同?河诺依曼结构••数据和程序共用总线和存储空间.在某一时刻.只能谀写程序或者饯写数据.将播令.数据、地址存储在同一个存储器统一編址.依鏗折令计数器提供的地址来区分是描令•数据还是地址•取揣令和IR操作数都访问同一存鯨器.数据吞叶率低.哈佛结构••一将程用和数据存储在不同的存赭空徇中.即程序存储器和数据存储器足两个相互独立的存锚器.每个存储器独立编址.独立访问.改进的还允许在程序存储空何和数据存赭空何之间相互传送数据。
DSP系统的设讣过程?确定DSP系统设计的性能描标进行览浓优化与模拟:选择DSP芯片和外用芯片:进行皱件电路的设计:进行软件设计: 逬行软硕件综合调试.请描述TMS320C54X的总线结构?C54X采用先进的哈佛结沟并具有八组总线•其曲立的程序总线和数据总线允许同时渎取描令和操作数.实现高度的并行操作’ 程序总线PB传送从程序存储器来的指令代码和立即数.3组数据总线连按各种元器件.CB和DB总线传送从数据存储器读出的操作数.EB总线传送写入到存储器中的数据•(1分)4组地址总线PAB\CAB\DAB\E.AB传送执行抬令所滞的地址。
TMS320C54X片内存储器一般包括哪些种类?如何配置片内存储器?C54X片内存僦器一般包括两种类型:ROM(只优存锚器).RAM{随机访何存储器人RAM又町分为双访何DARAM和单访问SARAM .简述TMS320C54X芯片的CPU外组成部分及其功能。
DSP实验指导书及其思考题答案
《DSP原理及应用》实验指导书杨宣兵编写适用专业:电子信息工程_电子科学与技术信息工程通信工程信息与通信工程学院2013 年 5 月前言《DSP原理与应用》是电子信息类专业信号与信息处理方向的一门专业必修课,同时也是其他电类专业的一门重要的选修课。
课程以DSP芯片原理及基于DSP 芯片的应用系统开发为主要内容,介绍了DSP芯片原理与开发工具及软硬件开发方法。
开设必要的课程实验,使学生加深对DSP原理与片上资源应用的掌握,掌握DSP项目开发流程、开发方法、开发平台CCS的基本使用、DSP对外设控制方法以及经典数字信号处理算法的DSP工程实现等。
培养学生将数字信号处理理论应用到实际项目中的工程意识与工程开发能力。
通过本课程实验,提高学生分析问题、解决问题的能力和基于DSP的嵌入式系统开发的实际动手能力,为学生步入社会奠定工程开发基础。
对不同专业根据实验教学大纲进行实验项目选择。
实验项目设置与内容提要目录实验一基本算术运算的DSP实现 (1)实验二数字振荡器的设计与实现 (9)实验三 BSP 串口通信实现 (16)实验四 FIR 数字滤波器设计与实现 (25)实验五 TMS320VC5402 的Bootloader设计与实现 (34)实验六快速傅立叶变换(FFT)的实现 (45)实验七外部中断、按键、LED控制实验 (67)实验八双音多频DTMF信号产生 (70)实验九双音多频DTMF信号解码 (76)附录一DES5402PP-U性能介绍 (82)附录二CCS驱动程序的安装 (83)附录三DES5402PP-U功能详细介绍 (87)附录四DES5402PP-U板上设置、状态显示、跳线一览表 (93)实验一: 基本算术运算的DSP 实现实验学时:4 实验类型:验证实验要求:必修 一、实验目的1、掌握CCS 的配置与基本使用方法;2、掌握C54X 汇编语言程序结构,掌握基于CCS 开发平台Simulator 采用汇编指令完成16位定点加减乘除运算程序设计并对运算结果进行评价; 二、实验内容本实验学习使用定点DSP 实现16位定点加、减、乘、除运算的基本方法和编程技巧。
DSP第二章课后答案
k X 2
2 N 1 n 0
n W x
kn 2N 2 k n N 2 2 N 1 n N
n e x
n 0
N 1
j
n e x
j
2 k n N 2
令 n n N ,则
j k x n e N X 2 n 0 N 1 2 k n 2
k 0,1, 2 ,求 q (n) 。
y (n) x((n 4))6 4 (n 4) 3 (n 5) 2 (n) (n 1)
(b) X ( k ) 的实部是 Re X ( k )
1 X (k ) X (k ) ,又由 2
且 M r M ,所以
2 Mak X 1 (k ) 2 Mak 2 M 2 M ( a +a ) M M
而 X 2 (k )
4 M 1
n0
x2 (n)e
j
2 kn 4M
2 (n) f (nT2 ) f ( 将x
j 2 nr M np ) ar e 4 M 代入 X 2 (k ) 4M r M M 4 M 1 j 2 ( k r ) n 4M
x n r y1 n 0
n ir , i 0,..., N 1 others
求证 DFT y1 n 与X k 的关系。 (2)将长度扩大 r 倍(补 0 增长) ,得到一个长度为 rN 的有限长序列 y2 ( n)
x n 0 n N 1 y2 n N n rN 1 0
(k ) 是周期为 N 的周期性序列, X (k ) 使周期为 2 N 的周期性 序列的 DFS 系数。当然, X 1 2 (k ) 确定 X (k ) 。 序列。试根据 X 1 2
dsp实验指导书
《 D S P 技术及应用》实验指导书吴延海吴冬梅编西安科技大学通信学院2 0 0 6目录第一章DES320PP-U介绍§1.1 功能特点 3 §1.2 XDS510仿真调试器 3 §1.3 对外的扩展接口 3 §1.4 DES5402PP-U结构及功能 4第二章DES320PP-U驱动程序的安装8 §2.1 安装驱动程序setupcc54x 8 §2.2 安装CCS下的硬仿真器驱动程序9第三章DSP实验内容12 §3.1 实验一CCS开发环境练习12 §3.2 实验二基本算术运算—--定点加减法15 §3.3 实验三基本算术运算----定点乘除法18 §3.4 实验四用定时器实现数字振荡器21 §3.5 实验五FFT的实现26 §3.6 实验六BSP串口操作45 §3.7 实验七HPI接口操作实验50 §3.8 实验八FIR滤波器56附录DES320PP-U实验系统资源一览63 附1.1 实验系统跳线说明63 附1.2 实验系统测试点说明64 附1.3 实验系统I/O接口说明65 附1.4 存储器映射一览表65第一章DES320PP-U介绍§1.1 功能特点●集成XDS510仿真调试器,无需外部JTAG仿真器便可完成所有DSP实验;全面支持'C2000,'C5000,'C6000,'VC33各个系列DSP,并全面兼容CCS 2.0,方便您调试自己的目标DSP系统●多类型仿真/教学实验DSP平台,通过更换DSP子卡可满足不同需求,包括C2000系列、C5000系列、C6000系列的DSP子卡●在可换CPU架构上,提供多种扩展模块,包括USB1.1模块、视频模块、EDA实验模块、信号与系统实验模块等等,便于用户选购定制;●可学习深层次信号处理原理,如G.723编解码;定点DSP实现MP3解码;无线基带通信所涉及的卷积编码、Vitebi译码、自适应均衡;AM调制、LMS自适应滤波;●可完成语音频段范围的信号处理实验:使用TLC320AC01作为模拟接口(AIC)电路,提供A/D和D/A各1个通道(14 bit),最高采样率为25K Sa/s。
DSP实验报告(综合)
实验报告||实验名称 D SP课内系统实验课程名称DSP系统设计||一、实验目的及要求1. 掌握用窗函数法设计FIR数字滤波器的原理和方法。
熟悉线性相位FIR 数字滤波器特性。
了解各种窗函数对滤波器特性的影响。
2. 掌握设计IIR数字滤波器的原理和方法。
熟悉IIR数字滤波器特性。
了解IIR数字滤波器的设计方法。
3.掌握自适应数字滤波器的原理和实现方法。
掌握LMS自适应算法及其实现。
了解自适应数字滤波器的程序设计方法。
4.掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。
5.了解边缘检测的算法和用途,学习利用Sobel算子进行边缘检测的程序设计方法。
6.了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。
7.了解取反的算法和用途,学习设计程序实现图像的取反运算。
8.掌握直方图均衡化增强的原理和程序设计;观察对图像进行直方图均衡化增强的效果。
二、所用仪器、设备计算机,dsp实验系统实验箱,ccs操作环境三、实验原理(简化)FIR:有限冲激响应数字滤波器的基础理论,模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
IIR:无限冲激响应数字滤波器的基础理论。
模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。
数字滤波器系数的确定方法。
、自适应滤波:自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。
e(n)=z(n)-y(n)=s(n)+d(n)-y(n)直方图:灰度直方图描述了一幅图像的灰度级内容。
灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。
图像边缘化:所谓边缘(或边沿)是指其周围像素灰度有阶跃变化。
经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。
DSP原理及应用答案(精)
DSP原理及应用答案(精)广东白云学院2013—2014学年第二学期期末考试《DSP原理及应用》(A卷)参考答案及评分标准适用专业及方向:电子信息工程、通信工程层次:本科年级:11 级限时:120 分钟考试形式:闭卷考场要求:笔试分)1、DSP定点数值为0x6000,若它是Q15(或S0.15)定标的有符号小数,它的数值是( 0.75 );若是Q0(或S15.0)格式有符号整数,则它的数值是( 24576 )。
2、'C54x芯片分成( 3 )个相互独立的可选择的存储空间,其中程序存储器空间在不扩展的情况下可寻址(64K )字。
3、与单片机相比,DSP采用了改进型(哈佛)结构和流水线/或并行技术,多了硬件乘加器,是(运算密集)型处理器,运算速度和(精度)高。
4、’DSP在CPL=0时,操作数@y的实际地址是将( DP )寄存器的内容作为地址的高( 9 )位,再加上y提供的低( 7 )位偏移地址。
5、COFF文件的基本单元是(段)。
它是就是最终在存储器映象中占据连续空间的一个数据或代码块。
6、AR1=1001H时,执行DST A,*AR1指令后,AH内容存入地址(1001H)的单元,AL存入地址(1000H)的单元。
7、指令ADD #4567H, 8, A,B执行前A=00001234H,B=00001100H,执行后A和B的值分别为( 00001234H )、( 00457934H )。
第 1 页共 12 页8、 'C54x芯片的中断系统可分为硬件中断和(软件中断),还可以分为可屏蔽中断和(非屏蔽中断)。
9、'C54x芯片的硬件复位地址为( FF80H ),INT0的中断序号为16,IPTR=1FFH时其中断向量地址为( FFC0H )。
10. 在’C54x DSP寻址和指令系统中,操作数Xmem和Ymem 表示(数据存储器双寻址数据),Lmem表示(长字寻址的32位数据存储器数据)。
最新DSP课后习题答案1资料
第一章:答:数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。
(1 在通用的计算机上用软件实现;(2 在通用计算机系统中加上专用的加速处理机实现;(3 用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4 用通用的可编程DSP 芯片实现。
与单片机相比,DSP 芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5 用专用的DSP 芯片实现。
在一些特殊的场合,要求的信号处理速度极高,用通用DSP 芯片很难实现(6)用基于通用dsp 核的asic 芯片实现。
答:第一阶段,DSP的雏形阶段(1980年前后)。
代表产品:S2811。
主要用途:军事或航空航天部门。
第二阶段,DSP 的成熟阶段(1990年前后)。
代表产品:TI 公司的TMS320C20 主要用途:通信、计算机领域。
第三阶段,DSP 的完善阶段(2000年以后)。
代表产品:TI公司的TMS320C54主要用途:各个行业领域。
答:1、采用哈佛结构(1)冯。
诺依曼结构,(2)哈佛结构(3)改进型哈佛结构2、采用多总线结构3. 采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的dsp 指令6、快速的指令周期7、硬件配置强8、支持多处理器结构9、省电管理和低功耗答:哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯。
诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
区别:哈佛:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
DSP课程实验指导书
一、创建和打开工程
运行 CCS5000 程序,其主界面如下图所示。
图 1.1
CCS 程序主界面
-1-
DSP 原理及应用实验指导书
1. 新建工程文件 如果要在 CCS 的安装目录下的“\myprojects\volume1”子目录中新建一个 volume1.pjt 工程,则 1) 在“\myprojects”子目录中创建一个 volume1 目录。 2) 运行 CCS 程序,在主菜单中单击“Project”,选择“New”项,程序会提示输入新建 工程的名字和保存位置。如图 1.2,输入工程名字和位置后,单击“确定”即可。
-3-
DSP 原理及应用实验指导书
processingLoad 来消耗指令周期,模拟复杂信号处理算法在时间上的消耗。 3) 函数 dataIO()在实验中不作任何实际操作而直接返回。 二、 构建程序 构建(Building)是指编译、汇编、连接三个独立步骤按顺序联合运行。在主菜单中单 击“Project”,选择“Rebuild All”,或者单击工具条图标 ,CCS 将重新对工程中所有文
loadprogram搜寻窗口中选择所建立的文件夹如ll在lldebug中选择编译链接好的可执行程序llout并点击此时ccs就把程序加载到目标系统dsp若汇编有错误则在错误改正后点击工具栏按钮ccs重新编译已被更新的程dsp原理及应用实验指导书序同时还需要选择filereloadprogramccs把程序重新加载到目标系统dspcustomiz明山
信息工程系 2013.4
目
录
第一部分 CCS 软件使用方法 ................................................................................................... 1 第二部分 基本指令实验部分 ................................................................................................... 7 实验一 实验二 实验三 实验四 实验五 实验六 创建、添加工程文件;编译、运行程序.......................................................... 7 64 位加法实验 .................................................................................................. 10 64 位减法实验 .................................................................................................. 12 双操作数乘法实验 ........................................................................................... 14 并行运算指令实验 ........................................................................................... 17 循环操作实验 ................................................................................................... 19
DSP应用技术实验指导书
第1章实验系统介绍1.1 系统概述SEED-DTK(DSP Teaching Kit)是一套可以满足大学本科、研究生和教师科研工作的综合实验设备。
SEED-DTK是我公司在总结以往产品的基础上,以独特的多DSP结构、强大的DSP主板功能、丰富的外围实验电路、精心设计的实验程序、精湛的产品工艺形成的高性能产品。
本文档主要介绍的是SEED-DTK5502实验箱,它由SEED-DEC5502板卡以及SEED-DTK_MBoard构成;其中主控板是我公司生产的SEED-DEC5502,母板是我公司生产的SEED-DTK_MBoard板卡。
此外,该款实验箱还可配置DSK板卡、图像处理卡等多种子卡。
1.1.1 SEED-DTK5502实验箱实验例程¾ SEED_DEC5502板卡实验例程1. CCS软件应用实验:介绍CCS的使用,编写简单的实验例程。
2. DSP片上资源应用实验本部分例程介绍的是DSP的片上资源。
3. SSED_DEC5502板卡应用实验SSED_DEC5502板卡与实验箱资源的应用实验。
包括:异步、同步串口通讯;扩展I/O口使用;AD/DA的使用。
4. 算法实验包括FFT,滤波(FIR、IIR),卷积,自适应滤波器算法实验5. 语音算法实验包括回声,混响,语音滤波等实验6. 参考实验包括USB使用实验、自举程序的编写以及SEED-DEC5502板卡与SEED-DTK_MBoard板卡之间数据传递实验。
¾母板实验例程1. TMS320VC5402片上资源应用实验本部分例程主要是DSP片上资源的使用介绍。
2. 实验箱外设实验实验箱母板资源的应用实验。
包括:键盘、液晶、信号源的使用。
¾其他板卡实验程序该部分程序将根据实验箱的具体配置提供。
1.1.2 SEED-DTK5502的原理框图如下:实验箱整体配置与特点1.21.2.1 实验箱整体配置SEED-DTK5502实验箱由以下几部分构成:1. SEED-DEC5502 实验箱DSP基本系统TMS320VC5502:主频可达300MHz,能够实现高速(600MMACS)运算;SDRAM:2M×32-位Flash:256K×16-位(可扩展至512K×16位)提供看门狗电路、电源监视、上电复位、手动复位2路编程可选的RS232/RS422/RS485,其中一路可与TMS320VC5502本身串口切换。
DSP实验答案Solution_lab3
DSP实验答案Solution_lab3Name:Section:Laboratory Exercise 3DISCRETE-TIME SYSTEMS: TIME-DOMAIN REPRESENTATION3.1 SIMULATION OF DISCRETE-TIME SYSTEMSProject 3.1The Moving Average SystemAccording to Program P2_1.Answers:Q3.1 The output sequence generated by running the above program for M = 2 with x[n] = s1[n]+s2[n]as the input is shown below.The component of the input x[n] suppressed by the discrete-time system simulated by thisprogram is -y3.2 LINEAR TIME-INVARIANT DISCRETE-TIME SYSTEMSProject 3.5Computation of Impulse Responses of LTI SystemsAccording to Program P2_5.Answers:Q3.20The required modifications to Program P2_5 to generate the impulse response of the following causal LTI system: y[n] + 0.71y[n-1] – 0.46y[n-2] – 0.62y[n-3]= 0.9x[n] – 0.45x[n-1] + 0.35x[n-2] + 0.002x[n-3] are given below:clf;N = 45;num = [0.9 -0.45 0.35 0.002];den = [1 0.71 -0.46 -0.62 ];y = impz(num,den,N);% Plot the impulse responsestem(y);xlabel('Time index n'); ylabel('Amplitude');title('Impulse Response'); grid;The first 45 samples of the impulse response of this discrete-time system generated byrunning the modified is given below:Q3.21The MATLAB program to generate the impulse response of a causal LTI system of Q3.20 using the filter command is indicated below:clf;num = [0.9 -0.45 0.35 0.002];den = [1 0.71 -0.46 -0.62 ];x=[1 zeros(1,39)];y = filter(num,den,x);% Plot the impulse responsestem(y);xlabel('Time index n'); ylabel('Amplitude');title('Impulse Response'); grid;The first 40 samples of the impulse response generated by this program are shown below:Q3.22The MATLAB program to generate and plot the step response of a causal LTI system is indicated below: clf;num = [0.9 -0.45 0.35 0.002];den = [1 0.71 -0.46 -0.62 ];x=ones(1,40);z = filter(num,den,x);% Plot the impulse responsefigurestem(z);xlabel('Time index n'); ylabel('Amplitude');title('Step Response'); grid;The first 40 samples of the step response of the LTI system of Project 3.3 are shown below:Project 3.7 ConvolutionAccording to Program P2_7.Answers:Q3.28 The sequences y[n] and y1[n] generated by running Program P2_7 are shown below:The difference between y[n]and y1[n]is- noThe reason for using x1[n] as the input, obtained by zero-padding x[n], for generatingy1[n]is – lengthProject 3.8 Stability of LTI SystemsAccording to Program P2_8.Answers:Q3.30The purpose of the for com-mand is- Repeat statements a specific number of times.The purpose of the end com-mand is - Terminate scope of FOR, WHILE, SWITCH, TRY, and IF statements.Q3.31 The purpose of the break com-mand is- Terminate execution of WHILE or FOR loop.Q3.32The discrete-time system of Program P2_8 is-The impulse response generated by running Program P2_8 is shown below:The value of |h(K)| here is - 1.6761e-005From this value and the shape of the impulse response we can conclude that the system is – stable.By running Program P2_8 with a larger value of N the new value of |h(K)| is - 9.1752e-007From this value we can conclude that the system is – stable.Q3.33 The modified Program P2_8 to simulate the discrete-time system of Q3.33 is given below: clf;num = [1 -4 3]; den = [1 -1.7 1];N = 200;h = impz(num,den,N+1);parsum = 0;for k = 1:N+1;parsum = parsum + abs(h(k));if abs(h(k)) < 10^(-6), break, endend% Plot the impulse responsen = 0:N;stem(n,h)xlabel('Time index n'); ylabel('Amplitude');% Print the value of abs(h(k))disp('Value =');disp(abs(h(k)));The impulse response generated by running the modified Program P2_8 is shown below:The values of |h(K)| here are - 2.0321From this value and the shape of the impulse response we can conclude that the system is - unstable.3.3 Convolution of signals and system impulse responses:a. Load the supplied acoustic impulse response of a room into MATLAB using the command:[impr,fs,nbits] = wavread('impr.wav');This impulse response was obtained by creating an impulsive noise at one position in the room and recording (and digitizing) the sounds arriving at another position in the room.b. Plot the impulse-response waveform impr using the plot() command and listen to it using the soundsc() command. What can you see and hear in the impulse response?c. Load the supplied speech signal into MATLAB using the command:[y,fs,nbits] = wavread('oilyrag.wav');d. Convolve the speech signal with the impulse response, and plot and listen to the resulting signal.Describe what you see and hear, comparing it to the original speech signal y. Explain what the convolved signal is physically equivalent to.[impr,fs,nbits] = wavread('impr.wav');subplot(311)plot(impr);title(' acoustic impulse response of a room');soundsc(impr);[y,fs,nbits] = wavread('oilyrag.wav');subplot(312)plot(y);title('speech signal');soundsc(y);x=conv(impr,y);subplot(313)plot(x)soundsc(x);title('resulting signal');Date: Signature:。
DSP原理及应用课后习题答案
简述DSP芯片的【2 】重要特色哈佛构造----将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个互相自力的存储器,每个存储器自力编址,自力拜访.多总线构造---保证在一个机械周期内可以多次拜访程序存储空间和数据存储空间.指令体系的流水线操作--削减指令履行时光,加强处理器的处理才能.取址,译码,取操作和履行四个阶段.专用的硬件乘法器--使乘法累加运算能在单个周期内完成.特别的DSP指令.快速的指令周期.硬件设置装备摆设强.具体描写冯诺依曼构造和哈佛构造,并比较不同?冯诺依曼构造--数据和程序共用总线和存储空间,在某一时刻,只能读写程序或者读写数据.将指令.数据.地址存储在同一个存储器同一编址,依附指令计数器供给的地址来区分是指令‘数据照样地址,取指令和取操作数都拜访同一存储器,数据吞吐率低.哈佛构造----将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个互相自力的存储器,每个存储器自力编址,自力拜访.改良的还许可在程序存储空间和数据存储空间之间互相传送数据.DSP体系的设计进程?肯定DSP体系设计的机能指标;进行算法优化与模仿;选择DSP芯片和外围芯片;进行硬件电路的设计;进行软件设计;进行软硬件分解调试.请描写TMS320C54x的总线构造?C54X采用先辈的哈佛构造并具有八组总线, 其自力的程序总线和数据总线许可同时读取指令和操作数,实现高度的并行操作.程序总线PB传送从程序存储器来的指令代码和立刻数.3组数据总线衔接各类元器件.CB和DB总线传送从数据存储器读出的操作数,EB总线传送写入到存储器中的数据.(1分)4组地址总线PAB\CAB\DAB\EAB传送履行指令所需的地址.TMS320C54x片内存储器一般包括哪些种类?若何设置装备摆设片内存储器?C54X片内存储器一般包括两种类型:ROM(只读存储器),RAM(随机拜访存储器).RAM又可分为双拜访DARAM和单拜访S ARAM.简述TMS320C54X芯片的CPU各构成部分及其功效.CPU状况和掌握存放器:用于设置各类工作前提和工作方法的状况以及存储器设置装备摆设状况和掌握信息.40位算术逻辑单元.40位累加器A和B:两者配合完成算术运算和逻辑运算.桶形移位存放器:使处理器能完成数字定标,位提取,对累加器进行归一化处理等操作.乘法器/加法器单元:在单周期内完成一次乘法累加运算.比较选择和存储单元:是专门为Viterbi算法设计的加法,比较,选择操作的硬件单元.指数编码器:用于支撑单周期指令EXP的专用硬件.TMS320C54x存储器包括哪几个空间?64k程序存储空间:程序指令和程序中所需的常数表格64k数据存储空间:存储须要程序处理的数据或程序处理后的成果64kI/O存储空间:存储与外部存储器映像的外设接口TMS320C54x有几种状况和掌握存放器?它们的功效?状况存放器ST0 和状况存放器ST1: 0和1包括了各类工作前提和工作方法的状况处理器方法状况存放器PMST:包括了存储器设置装备摆设状况和掌握信息TMS320C54x的片表里设有哪些?以及它们的功效?通用I/O引脚:扩大外部存储器;准时器:用于周期性的产生中止和周期输出;时钟产生器:为C54X供给时钟旌旗灯号;主机接口:外部主机或主处理器可以经由过程HPI接口读写C54X的片内RAM,从而大大进步数据交流才能;串行口:这些串口可供给全双工,双向的通讯功效,可与编解码器,串行AD转换器和其他串行器件通讯,也可以用于微处理器之间的通讯.软件可编程等待状况产生器:它可以将外部总线周期扩大到14个机械周期,以使C54X与低速外部装备接口;可编程分区转换逻辑:它许可C54X在外部存储器分区之间切换时不须要外部为存储器插等待状况.TMS320C54x供给哪几种数据寻址方法?若何寻址的?立刻数寻址:指令中有一个固定的立刻数 LD #0,ARP绝对寻址:指令中有一个固定的地址(16位):数据存储器寻址dmad 程序存储器寻址pmad端口地址PA寻址,*(lk)寻址累加器寻址:按累加器的内容作为地址去拜访程序存储器中的一个单元READA Smem直接寻址:指令编码中含有的7位地址DP或SP一路合成数据存储器中操作数的现实地址间接寻址:经由过程帮助存放器寻址单操作数寻址和双操作数寻址存储器映射存放器MMR寻址:修正存储器映射存放器的值,而不影响当前数据页面指针DP和当前客栈指针SP的值客栈寻址:把数据压入或弹出体系客栈.在轮回寻址方法中,若何肯定轮回缓冲的肇端地址.若缓冲大小32,其肇端地址从哪开端?轮回寻址中,轮回缓冲区大小存放器用于肯定轮回缓冲区的大小.大小为R的轮回缓冲区必须从一个N位边界开端,XXXX XXXX XX00 0000开端双数据存储器操作数间接寻址应用哪几种类型,所用帮助存放器只能是那几个,其特色是?*ARx.*ARx-.*ARx+.*ARx+0% 只能应用AR2.AR3.AR4.AR5.在一个机械周期内经由过程两个16位数据总线读两个操作数,或者一次读一次写.汇编器和链接器若何对段进行治理?汇编器经由过程段位指令主动辨认各个段,并将段名雷同的语句汇编在一路.链接器:对汇编器产生的COFF目的文件中的各段作为输入端,当有多个文件进行链接时,将输入段组合起来,在可履行的COFF输出模板中树立各个输出端;链接器为输出段选择存储器地址.汇编程序中的伪指令有什么感化?个中段界说伪指令有哪些?初始化段和末始化段有何差别?对汇编器.链接器有重要的指导感化,包括段界说.前提汇编.文件引用.宏界说.text--存放程序代码.data---存放初始化了的数据.bss---存放未初始化的变量.sect ‘名称’---界说一个著名段,放初始化了的数据或程序代码.未初始化段重要用来在存储器中保留空间,没有现实内容.已初始化段包含可履行代码或已初始化数据,放在目的文件中,加载程序再放到C54x存储器中.链接敕令文件有什么感化?MEMORY和SECTIONS伪指令的感化?链接敕令文件用来为链接器供给链接信息,可将链接操作所需的信息放在一个文件中,在多次应用雷同的链接信息,便利挪用.链接器要肯定输出端应分派到存储器的地位,起首须要一个目的存储器的模子,MEMORY指令就是指定目的存储器的模子, SECTIONS伪指令的感化:解释若何将输入段组合成输出段;在可履行文件中界说输出段;指定输出段在存储器中存放的地位;许可对输出段从新定名.TMS320C54x CPU吸收到可屏障的硬件中止时,知足哪些前提才能响应中止?优先级最高中止,当同时有几个硬件请求中止时,C54x依据优先级进行响应;状况存放器ST1中的INTM位是0,表示允许可屏障中止;中止屏障存放器IMR中响应的位是1.TMS320C54x 的中止向量表是若何重界说的?DSP复位时,中止向量表的肇端地址固定为0FF80H,复位后,中止向量可从新被映像到程序存储器的任何一个128子页的地方(除保留区域外),中止向量地址由PMST中的中止向量指针IPTR(9位)和中止向量号(0~31)左移两位后构成.简述非延迟分支转移与延迟分支转移的不同.非延迟分支转移:在指令流水线中先消除分支指令后面已读入的一个双字指令或两个单字指令,然后再进行分支转移;延迟分支转移:跟在分支指令后的一个双字指令或两个单字指令先履行,然落后行分支转移. .简述TMS320C54X准时器构成及功效,并介绍初始化准时器步骤?准时器由三个存储器映象存放器构成:TIM,PRD,TCRTIM是准时器存放器,每计数一次主动减1;PRD是准时器周期存放器,当TIM减为0后,CPU主动将PRD的值装入TIM;TCR是准时器掌握存放器,包含准时器的掌握和状况位.初始化准时器的步骤有:将TCR中的TSS地位1,停滞准时器工作;装入PRD的值;从新装入TCR,以初始化TDDR和启动准时器;使TS S清0以接通CLKOUT旌旗灯号,使TRB置位以便TIM减到0后从新装入准时器时光常数.简述TMS320C54X时钟产生器的构成及功效.C54X 的时钟产生器包括一个内部振荡器和一个锁相环电路. 功效是为C54x供给时钟旌旗灯号.C54X支撑软件客栈,简述客栈的界说及初始化步骤.a)声明具有恰当长度的未初始化段; b) 将客栈指针指向栈底; c) 在链接敕令文件中将客栈段放入内部数据存储区.简述TMS320C54X使能准时器中止步骤.a) 对IFR中的TINT地位1,消除以前的准时器中止; b) 对IMR中的TINT地位1,凋谢准时中止;c) 使ST1中的INTM位清0,凋谢所有的中止.TMS320C54X芯片的流水线共有若干个操作阶段?每个阶段履行什么义务?完成一条指令都须要哪些操作周期?下述6个周期预取址P:在T1机械周期内,将PC中的内容加载程序地址总线PAB取指F:在T2机械周期内,从选中的程序存储器单元中,掏出指令字并加载到程序总线PB上译码D:在T3机械周期内,将PB的内容装进指令存放器,将指令字译成具体操作寻址A:在T4机械周期内,寻址操作数,数据1读地址加载数据地址总线DAB,数据2读地址加载数据地址总线CAB,并更新帮助存放器间接寻址方法和客栈指针.读数R:在T5周期内,数据1加载到数据总线DB,数据2加载到数据总线CB,若须要,数据3写地址加载数据地址总线EAB.履行X:在T6机械周期内,CPU按操作码请求履行指令,并将数据3加载到EB,写入指定存储单元,停滞本条指令.线性缓冲法:对于长度为N的FIR滤波器,在数据存储器中开拓一个N单元的缓冲区.存放最新的N个样本;滤波时从最老的样本开端,没读一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶部.轮回缓冲法:对于N级FIR滤波器,在数据存储中开拓一个称为滑窗的具有N个单元的轮回缓冲区,滑窗中存放最新的N个输入样本值,每次输入新的样本时,新的样本将改为滑窗中最老的数据,其他数据则不须要移动系数对称FIR滤波器的C54x的实现步骤:1.在数据存储器中开拓两个轮回缓冲区:2并交运算:同时应用D总线和E总线,D总线用来履行加载或算术运算,E总线用来存放先前的成果.在不引起硬件资本冲突的情形下,C54x许可某些指令并行履行,以进步履行速度.并行加载------存储指定(乘法指令)...并行存储--------乘法指令(加/减指令).。
DSP实验报告_百度文库(精)
实验0 实验设备安装才CCS调试环境实验目的:按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。
实验步骤:以演示实验一为例:1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示;4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:心得体会:通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。
熟悉了DSP实验箱基本模块。
让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。
实验二基本算数运算2.1 实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。
DSP课后习题答案【VIP专享】
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线0生高不产中仅工资22艺料22高试可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料22荷试,下卷而高总且中体可资配保料置障试时23卷,23调需各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看2工且55作尽22下可2都能护1可地关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编5试求写、卷技重电保术要气护交设设装底备备4置。高调、动管中试电作线资高气,敷料中课并3设试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
DSP习题及答案
第一章作业1、C54x有哪些寻址方式?都是如何寻址的?2、块循环共使用了哪些寄存器,可以嵌套使用吗?重复次数如何确定?3、中断向量地址是如何确定的?4、现在要开放外中断2,应该如何编程?5、晶振为10M,实现5mS定时,应该如何编程?第五章作业1:作整数乘法Z= (其中XI= 1,2,3,4,5,6,7,8,9,10, YI=11,12,13,14,15,16,17,18,19,20 )2:分别用块循环操作法和banz 循环方法对的100个变量分别初始化为1,2,3,…,100.bss x,100 ;3:初始化变量X=5555 5555H,Y=AAAA AAAAH,并将X 与Y 的乘积结果保存在变量Z 中4:作小数乘法Z= 其中a i 和x i 分别为常量-0.4,-0.3,-0.2,-0.1,0.1,0.2,0.3,0,4,并将乘积结果保存在变量Z 中。
5:C 程序调用汇编子程序,应如何编写,举例说明(参考实验3)i i i y x *9∑=i i i x a *30∑=1、C54x有哪些寻址方式?都是如何寻址的?答:有即立即寻址、绝对寻址、累加器寻址、直接寻址间接寻址、存储器映像寄存器寻址和堆栈寻址7种寻址方式。
如何寻址略:2、块循环共使用了哪些寄存器,可以嵌套使用吗?重复次数如何确定?答:在块循环中使用了BRC,RSA REA三个寄存器,因为在DSP内部只有这样一组用于块循环操作的寄存器因此不能嵌套使用。
重复次数等于加载BRC的数值加一。
3、中断向量地址是如何确定的?答:中断向量地址由中断向量指针IPTR和所使用的中断向量号共同来确定。
用公式表示就是:中断向量地址=IPTR* 27+中断序号*44、现在要开放外中断2,应该如何编程?经查IMR和IFR寄存器,外部中断2的允许(标志)位都是第2位,即位码为04H。
对编成的叙述略。
SSBX INTM;关闭可屏蔽中断总开关STM 04H,IFR;清除历史中断标志STM 04H,IMR;设置中断屏蔽寄存器允许响应中断RSBX INTM;开放中断屏蔽总开关5、晶振为10M,实现5mS定时,应该如何编程?定时器初始化程序如下:Prd=10000,tddr=10计算略STM # 0000H,SWWSRSSBX INTM; 停止所有可屏蔽中断STM #17ffH,CLKMD;PLL*2 方式CLKOUT=20MHzSTM #0010H,TCR; 停止定时器STM #9999,PRD; 设置时间常数STM #270fH,PRDSTM #0C29H,TCR;启动定时器,设置TDDR =9STM #08H,IMR ;开放屏蔽寄存器的允许位STM #08H,IFR ;清除历史中断标志第五章习题答案1:作整数乘法Z= 要求在运算之前初始化X I = 1,2,3,4,5,6,7,8,9,10, Y I =11,12,13,14,15,16,17,18,19,20.mmregs.bss X,10.bss Y,10.bss Z,1.text_c_int00: stm #X,AR1;ld #1,ASTM #19,AR2LOOP:STL A,*AR1+ADD #1,ABANZ LOOP,*AR2-STM #X,*AR2i i i y x *90∑=STM #Y,AR3RPTZ A,#9MAC *AR2+,*AR3+,ASTM #Z,AR0STL A,*AR0.end2:分别用块循环操作法和banz 循环方法对的100个变量分别初始化为1,2,3,…,100 .bss x,100.bss x,100 ; .text.text_c_int00:STM #x,AR0_c_int00: STM #x,AR0 LD #0,ASTM #99,AR2 STM 99,BRCLD #1,A RPTB NEXT-1LOOP:STL A,*AR0+ADD #1,AADD #1,A STL A,*AR0+BANZ LOOP,*AR2-NEXT: nop3:初始化变量X=5555 5555H,Y=AAAA AAAAH,并将X与Y的乘积结果保存在变量Z中.mmregs.data.bss z,4x.long 55555555hY .long 0aaaaaaaahstm #x+1,ar2;取x低字stm #y+1,ar3;取x低字ld *ar2,Tmpyu *ar3-,Astl a,@z+1ld a,-16,amacsu *ar2-,*ar3+,a stl a,@z+2;macsu *ar3-,*ar2,a sth a,@z+3;stl a,@z .endld a,-16,amac *ar2,*ar3,a4:作小数乘法Z= 其中a i 和x i 分别为常量-0.4,-0.3,-0.2,-0.1,0.1,0.2,0.3,0,4,并将乘积结果保存在变量Z 中。
DSP实验指导书及其思考题答案
DSP实验指导书及其思考题答案《DSP原理及应用》实验指导书杨宣兵编写适用专业电子信息工程_电子科学与技术信息工程通信工程信息与通信工程学院7>2013 年 5 月前言《DSP原理与应用》是电子信息类专业信号与信息处理方向的一门专业必修课同时也是其他电类专业的一门重要的选修课课程以为主要内容介绍了 1 基本算术运算的DSP实现 4 1 验证必修1CCS基本操作2DSP应用程序结构和开发流程3基于DSP开发环境Simulator完成16位定点加减乘除运算 2 数字振荡器的设计与实现 4 1 设计必修1CCS图形工具使用2基于C语言和汇编语言混合程序设计3定时器等外设资源的应用4简单算法迭代的实现 3 BSP串口通信实现 4 2 综合必修1McBSP串口操作2VC54XX片上ROM资源的使用 4 FIR数字滤波器设计与实现实现42 设计选修1McBSP串口操作与串口中断服务程序编写2ADDA操作3FIR滤波器实现的特殊指令应用4CCS高级调试工具使用 5 TMS320VC5402的Bootloader设计与实现 4 510 设计必修1编程完成对外设IO端口的控制实现流水灯功能2完成从COFF文件到启动表的转换3完成程序的固化与脱离上位机控制的独立运行 6 快速傅立叶变换实现 4 2 综合选修1辅助寄存器使用位倒序寻址方式应用等2FFT算法的编程实现3CCS探针和图形工具使用7 外部设备控制实验 4 1 综合任选1熟悉外部中断使用与中断服务程序编写方法2掌握对外设端口的操作方法3掌握外设的控制方法包括键盘LED步进电机LCD等8 双音多频9 双音多频 4 2 设计选修掌握DTMF信号的解码算法原理掌握DTMF信号解码算法的DSP实现方法目录实验一基本算术运算的DSP实现1实验二数字振荡器的设计与实现9实验三 BSP 串口通信实现16实验四 FIR 数字滤波器设计与实现25实验五 TMS320VC5402 的Bootloader设计与实现34实验六快速傅立叶变换FFT的实现45实验七外部中断按键LED控制实验67实验八双音多频DTMF信号产生70实验九双音多频DTMF信号解码76附录一 DES5402PP-U性能介绍82附录二CCS驱动程序的安装83附录三DES5402PP-U功能详细介绍87附录四 DES5402PP-U板上设置状态显示跳线一览表93实验一基本算术运算的DSP实现实验学时4实验类型验证实验要求必修一实验目的1掌握CCS的配置与基本使用方法2掌握C54X汇编语言程序结构掌握基于CCS开发平台Simulator采用汇编指令完成16位定点加减乘除运算程序设计并对运算结果进行评价二实验内容本实验学习使用定点DSP实现16位定点加减乘除运算的基本方法和编程技巧三实验原理方法和手段1、定点DSP中数据表示方法C54X是16位的定点DSP一个16位的二进制数既可以表示一个整数也可以表示一个小数当它表示一个整数时其最低位D0表示D1位表示次高位D14表示如果表示一个有符号数时最高位D15为符号位0表示正数1表示负数例如07FFFH 表示最大的正数32767十进制而0FFFFH表示最大的负数-1负数用2的补码方式显示当需要表示小数时小数点的位置始终在最高位后而最高位D15表示符号位这样次高位D14表示然后是最低位D0表示所以04000H表示小数0501000H表示小数而0001H表示16位定点DSP能表示的最小的小数有符号 0000030517578125在后面的实验中除非有特别说明我们指的都是有符号数在C54X中将一个小数用16位定点格式来表示的方法是用乘以该小数然后取整从上面的分析可以看出在DSP中一个16进制的数可以表示不同的十进制数或者是整数或者是小数如果表示小数必定小于1但仅仅是在做整数乘除或小数乘除时系统对它们的处理才是有所区别的而在加减运算时系统都当成整数来处理2、实现16定点加法C54X中提供了多条用于加法的指令如ADDADDCADDM和ADDS其中ADDS用于无符号数的加法运算ADDC用于带进位的加法运算如32位扩展精度加法而ADDM 专用于立即数的加法在本实验中我们可以使用下列代码来说明加法运算ld temp1a 将变量temp1装入寄存器Aadd temp2a 将变量temp2与寄存器A相加结果放入A中stl aadd_result 将结果低16位存入变量add_result中注意这里完成计算temp3 temp1temp2我们没有特意考虑temp1和temp2是整数还是小数在加法和下面的减法中整数运算和定点的小数运算都是一样的3、实现16位定点减法C54X中提供了多条用于减法的指令如SUBSUBBSUBC和SUBS其中SUBS用于无符号数的减法运算SUBB用于带进位的减法运算如32位扩展精度的减法而SUBC为移位减DSP中的除法就是用该指令来实现的SUB指令与ADD指令一样有许多的寻址方式其详细使用说明请查阅TI文档在本实验中我们可以使用下列代码来说明减法运算stm temp1ar3 将变量temp1的地址装入ar3寄存器stm temp3ar2 将变量temp3的地址装入ar3寄存器sub ar2 ar3b 将变量temp3左移16位同时变量temp1也左移16位然后相减结果放入寄存器B高16位中同时ar2加1sth bsub_result 将相减的结果高16位存入变量sub_result4、实现16定点整数乘法在C54X中提供了大量的乘法运算指令其结果都是32位放在A或B寄存器中乘数在C54X的乘法指令很灵活可以是T寄存器立即数存贮单元和A或B寄存器的高16位在C54X中一般对数据的处理都当做有符号数如果是无符号数乘时请使用MPYU指令这是一条专用于无符号数乘法运算的指令而其它指令都是有符号数的乘法在本实验中我们使用下列代码来说明整数乘法运算rsbx FRCT 清FRCT标志准备整数乘ld temp1T 将变量temp1装入T寄存器mpy temp2a 完成temp2temp1结果放入A寄存器32位例如当temp1 1234H十进制的4660temp2 9876H十进制的-26506乘法的结果在A寄存器中为0F8A343F8H十进制的-123517960这是一个32位的结果需要两个内存单元来存放结果sth ampy_I_h 将结果高16位存入变量mpy_I_hstl ampy_I_l 将结果低16位存入变量mpy_I_l当temp1 10H十进制的16temp2 05H十进制的5乘法结果在A寄存器中为00000050H十进制的80对于这种情况仅仅需要保存低16位即可stl ampy_I_l 将结果低16位存入变量mpy_I_l5、实现16定点小数乘法在C54X中小数的乘法与整数乘法基本一致只是由于两个有符号的小数相乘其结果的小数点的位置在次高的后面所以必须左移一位才能得到正确的结果C54X中提供了一个状态位FRCT将其设置为1时系统自动将乘积结果左移移位但注意整数乘法时不能这样处理所以上面的实验中一开始便将FRCT清除两个小数16位相乘后结果为32位如果精度允许的话可以只存高16位将低16位丢弃这样仍可得到16位的结果在本实验中我们使用下列代码来说明小数乘法运算ssbx FRCT FRCT 1准备小数乘法ld temp116a 将变量temp1装入寄存器A的高16位mpya temp2 完成temp2乘寄存器A的高16位结果在B中同时将temp2装入T寄存器sth bmpy_f 将乘积结果的高16位存入变量mpy_f 例如temp1 temp2 4000H十进制的05两数相乘后结果为20000000十进制的025再如temp1 0ccdH十进制的01temp2 0599aH十进制的07两数相乘后B寄存器的内容为08f5f0a4H十进制的007000549323857如果仅保存结果的高16位08f5H十进制的006997680664063有时为了提高精度可以使用RND或使用MPYR 指令对低16位做四舍五入的处理6、实现16定点整数除法在C54X中没有提供专门的除法指令一般有两种方法来完成除法一种是用乘法来代替除以某个数相当于乘以其倒数所以先求出其倒数然后相乘这种方法对于除以常数特别适用另一种方法是使用SUBC指令重复16次减法完成除法运算下面我们以temp1temp2为例说明如何使用SUBC指令实现整数除法其中变量temp1为被除数temp2为除数结果即商存放在变量temp3中在完成整数除法时先判断结果的符号方法是将两数相乘保存A或B的高16位以便判断结果的符号然后只做两个正数的除法最后修正结果的符号为了实现两个数相除先将被除数装入A或B的低16位接着重复执行SUBC指令用除数重复减16次后除法运算的商在累加器的低16位余数在高16位详细代码如下ld temp1T 将被除数装入T寄存器mpy temp2A 除数与被除数相乘结果放入A寄存器ld temp2B 将除数temp2装入B寄存器的低16位abs B 求绝对值stl Btemp2 将B寄存器的低16位存回temp2ld temp1B 将被除数temp1装入B寄存器的低16位abs B 求绝对值rpt 15 重复SUBC指令16次subc temp2b 使用SUBC指令完成除法运算bcd div_endagt 延时跳转先执行下面两条指令然后判断A 若A 0则跳转到标号div_end结束除法运算stl Bquot_i 将商B寄存器的低16位存入变量quot_isth Bremain_i 将余数B寄存器的高16位存入变量remain_ixor B 若两数相乘的结果为负则商也应为负先将B寄存器清0sub quot_iB 将商反号stl Bquot_i 存回变量quot_i中div_end上面给出的是整数除法的通用程序在实际应用中可以根据具体情况做简化如正数除法可以直接将被除数temp1装入B寄存器的低16位然后用SUBC指令循环减除数temp2减完后B寄存器中低16位为商高16位为余数不用判断符号从而节省时间例如temp1 10H十进制的16temp2 5两数相除后商为3在B寄存器的低16位余数为1在B寄存器的高16位7、实现16定点小数除法在C54X中实现16位的小数除法与前面的整数除法基本一致也是使用循环的SUBC指令来完成但有两点需要注意第一小数除法的结果一定是小数小于1所以被除数一定小于除数这与整数除法正好相反所以在执行SUBC指令前应将被除数装入A或B寄存器的高16位而不是低16位其结果的格式与整数除法一样A 或B寄存器的高16位为余数低16位为商第二与小数乘法一样应考虑符号位对结果小数点的影响所以应对商右移一位得到正确的有符号数其详细代码如下ld temp1T 将被除数装入T寄存器mpy temp2A 除数与被除数相乘结果放入A寄存器ld temp2B 将除数temp2装入B寄存器的低16位abs B 求绝对值stl Btemp2 将B寄存器的低16位存回temp2ld temp116B 将被除数temp1装入B寄存器的高16位abs B 求绝对值rpt 15 重复SUBC指令16次subc temp2b 使用SUBC指令完成除法运算and 0ffffhB 将B寄存器的高16位清为0这时余数被丢弃仅保留商bcd div_endagt 延时跳转先执行下面两条指令然后判断A 若A 0则跳转到标号div_end结束除法运算stl B-1quot_f 将商右移一位后存入变量quot_f右移是为了修正符号位xor B 若两数相乘的结果为负则商也应为负先将B 寄存器清0sub quot_fB 将商反号stl Bquot_f 存回变量quot_f中div_end注意上面的C54X的16位定点有符号小数除法通用程序没有保留余数商保存在变量temp3中举一个例子当temp1 2cccH十进制的035temp2 55c2H十进制的067两数相除的结果为temp3 42dcH十进制的0x42dc052233四实验条件PC机 DES5402PP-U实验系统若使用需要将CCS配置为硬件仿真器五实验步骤本实验需要使用C54X汇编语言实现加减乘除的基本运算并通过DES的存贮器显示窗口观察结果实验分两步完成1编写实验程序代码本实验的汇编源程序代码主要分为六个部分加法减法整数乘法小数乘法整数除法和小数除法每个部分后面都有一条需要加断点的标志语句nop当执行到这条加了断点的语句时程序将自动暂停这时你可以通过存贮器窗口检查计算结果当然你看到的结果都是十六进制的数2在simulator上调试运行并观察结果在完成实验程序代码的输入并在CCS集成开发环境采用编译器对各模块进行编译并连接后就可以在simulator上调试运行步骤如下将CCS配置为C5402 simulator启动CCS新建工程exer1prj将编写的主程序文件CMD文件中断向量表添加到工程对各模块进行编译然后rebuild生成out输出文件c在CCS界面单击菜单栏File下面的Load选项并在弹出的File Name对话框中选择Debug文件夹下面的exer1out装入基本算术运算实验程序这时应能在反汇编窗口看到程序代码d 用鼠标选中Memory窗口并在其中选择要查看的存贮器地址段0x080-0x08ee 在反汇编窗口中在每个nop指令处都设一个断点方法有两种1用鼠标单击该指令将其点亮即可2在菜单栏中选择Break Add然后在弹出的对话框中键入欲加断点的地址即可f 单击菜单栏下的Run F5按钮启动执行基本算术运算程序程序在执行完加法运算后自动暂停通过CPU窗口可以看到寄存器AHL的内容为0x46这正是加法运算的结果同样在Memory窗口中可以看到0x810x820x88的内容为分别为001200340x46执行加法运算后将0x81和0x82的内容相加结果放在0x88单元g 在Memory窗口中用鼠标左键双击0x81单元这时可以修改该内存单元的内容输入新的数据0x0ffee十进制的-18编辑内容时请直接输入FFEE十六进制然后回车确认便完成对0x81单元的修改h 在CPU 窗口中修改PC值方法也是鼠标左键双击PC寄存器的内容输入新的PC值0x1805编辑内容时直接输入1805并用回车键确认i 单击菜单栏下的Run F5按钮程序从当前PC继续运行重新计算0x81和0x82的和结果在0x88中当程序再次暂停时可以看到AHL寄存器和0x88的内容为0x22十进制的34这正是我们希望的结果-1852 34j 单击Run F5按钮程序从当前PC继续运行完成减法运算当程序再次暂时断点位于0x1813可以看到0x83和0x84单元的内容分别为FFEE和0012B寄存器的内容为ffdc0000而0x89的内容为ffdc十进制-36这正是我们希望的结果注意该减法操作使用了辅助寄存器寻址所以计算结果在B寄存器的高16位 k 单击Run F5按钮程序从当前PC继续运行完成整数乘法运算当程序再次暂时断点位于0x181d可以看到0x81和0x82单元的内容分别为0012和0034A 寄存器的内容为000003A8这正是我们希望的结果1852 936 0x3a8 这时我们可以用1个16位的内容单元来保存结果如将A寄存器的低16位存入0x8b单元但如果将0x81的内容修改为0x2000十进制的8192在CPU窗口中将PC修改为1818然后继续运行重新计算乘法当程序完成乘法暂停时可以看到A寄存器的内容为00068000这也是一个正确的结果819252 4259840x68000此时将无法用一个16位的存贮单元来保存A寄存器中的结果l 单击Run F5按钮程序从当前PC继续运行完成小数乘法运算当程序再次暂停时断点位于0x1826可以看到0x83和0x84单元的内容分别为4000和b548A 寄存器的内容为40000000乘法的结果在B寄存器中为daa40000这正是我们希望的结果05 -058374 -029187 0x0daa4 对于小数乘法一般情况都可以用1个16位的内容单元将B寄存器的高16保存如存入0x8c单元m 单击Run F5按钮程序从当前PC继续运行完成整数除法运算当程序再次暂时断点位于0x183b可以看到0x810x820x8d和0x8e单元的内容分别为00340012FFFE和0010这正是我们希望的结果52除以-18商为-2 0xfffe 余数为16 0x10n 单击Run F5按钮程序从当前PC继续运行完成小数除法运算当程序再次暂停时断点位于0x1852可以看到0x810x82和0x8f单元的内容分别为40004ab8和6da3这正是我们希望的结果05058374 08565457 0x6da3o 如果以上程序运行不正确请检查代码是否输入正确还可以在源代码中插入断点调试注意对中间结果的观察六实验报告要求1实验前进行预习初步编写相应实验程序代码2、实验时对实验代码进行调试并不断修改达到正确结果3、写出本次实验的心得体会七思考题1对直接寻址用法有什么体会如果在直接寻址前遗漏对DP初始化对结果有什么影响2在小数乘法中使用了置FRCT标志为1的指令如果将该语句取消那么B寄存器的结果是多少想想什么时候应该设置FRCT标志实验_2_数字振荡器的设计与实现实验学时 4实验类型设计实验要求必修一实验目的通过本实验的学习让学生掌握多模块程序设计方法掌握定时器使用掌握简单算法的DSP实现以及CCS环境下图形工具的简单应用二预习和参考1数字振荡器原理设一个传递函数为正弦序列sinkωT其z变换为H z其中A 2cosωT B -1 C sinωT设初始条件为0求出上式的反Z变换得y[k] Ay[k-1]By[k-2]Cx[k-1]这是一个二阶差分方程其单位冲击响应即为sinkωT利用单位冲击函数x[k-1]的性质即仅当k 1时x[k-1] 1代入上式得k 0 y[0] Ay[-1] By[-2] 0 0k 1 y[1] Ay[0] By[-2] c ck 2 y[2] Ay[1] By[0] 0 Ay[1]k 3 y[3] Ay[2] By[1]k n y[n] Ay[n-1] By[n-2]在k 2以后y[k]能用y[k-1]和y[k-2]算出这是一个递归的差分方程根据上面的说明我们可以开始数字振荡器的设计设该振荡器的频率为2kHz采样率为40kHz通过定时器设置每隔25us中断一次即产生一个y[n]则递归的差分方程系数为A 2cosωT 2cos 2 x PI x 2000 40000 2 x 095105652B -1C sinωT sin 2 x PI x 2000 40000 030901699为了便于定点DSP处理我们将所有的系数除以2然后用16位定点格式表示为这便是本实验中产生2KHz正弦信号的三个系数在本实验中主程序在初始化时先计算出y[1]和y[2]然后开放定时器中断以后每次进入定时器中断服务程序时利用前面的y[1]和y[2]计算出新的有y[0]通过CCS提供的图形显示工具我们将在图形窗口中看到一个正弦信号波形下面是初始化和中断服务程序代码片段初始化y[1]和y[2]ssbx FRCT 置FRCT 1准备进行小数乘法运算st INIT_AAA 将常数A装入变量AAst INIT_BBB 将常数B装入变量BBst INIT_CCC 将常数C装入变量CCpshd CC 将变量CC压入堆栈popd y2 初始化y2 CCld AA T 装AA到T寄存器mpy y2a y2乘系数A结果放入A寄存器sth ay1 将A寄存器的高16位存入变量Y1 中断服务程序片段ld BBT 将系数B装入T寄存器mpy y2a y2乘系数B结果放入A寄存器ltd y1 将y1装入T寄存器同时复制到y2mac AAa 完成新正弦数据的计算a寄存器中为y1AAy2BBsth a1y1 将新数据存入y1因所有系数都除过2所以在保存结果时转移一位恢复数据正常大小sth a1y0 将新正弦数据存入y02C54X的定时器操作C54X的片内定时器利用CLKOUT时钟计数用户使用三个寄存器TIMPRDTCR来控制定时器参见表2-1在表2-2中列出了定时器控制寄存器的各个比特位的具体定义VC5402的另一个定时器定时器1的控制寄存器分别为0x30TIM10x31PRD10x32TCR1表2-1 VC5402定时器0的相关寄存器寄存器地址名称用途0024h TIM 定时器寄存器每计数一次自动减1 0025h PRD 定时器周期寄存器当TIM减为0后CPU自动将PRD的值装入TIM 0026h TCR 定时器控制寄存器表2-2 定时器控制寄存器TCRbit概要比特名称功能15-12 保留读出时为011 Soft 该比特位与10位配合使用以决定定时器在使用仿真调试时状态Soft 0 当进入仿真调试时定时器立即停止工作Soft 1 当计数器被减为0后停止工作10 Free 该位与11位配合使用以决定定时器在使用仿真调试时状态Free 0 根据11比特位决定定时器状态Free 1 忽略11比特位定时器不受影响9-6 PSC 定时器预置计数器当PSC减为0后CPU自动将TDDR装入然后TIM开始减15 TRB 定时器复位当TRB 1时CPU将PRD寄存器的值装入TIM寄存器将TDDR的值装入PSC4 TSS 定时器启停控制位当系统复位时TSS被清除定时器立刻开始工作TSS 0 表示启动定时器TSS 1 表示停止定时器0-3 TDDR 定时器扩展周期当PSC减到0后CPU自动将TDDR的值装入PSC然后TIM减 1所以整个定时器的周期寄存器可以有20个比特PRDTDDR 从上面的介绍可以看到定时器实际上可以有20个比特的周期寄存器它对CLKOUT信号计数先将PSC减1直到PSC为0然后用TDDR重新装入PSC同时将TIM 减1直到TIM减为0这时CPU发出TINT中断同时在TOUT引脚输出一个脉冲信号脉冲宽度为CLKOUT一致然后用PRD重新装入TIM重复下去直到系统或定时器复位因而定时器中断的频率由下面的公式决定TINT的频率其中tc表示CLKOUT的周期定时器当前的值可以通过读取TIM寄存器和TCR 寄存器的PSC比特位得到下面是本实验中初始化定时器的程序片段 stm 10hTCR 停止定时器stm 2499PRD 设置PRD寄存器值为2499TINT中断频率为 Foutclk 24991 100MHz2500 40 KHz stm 20hTCR 重新装入TIM和PSC然后启动定时器 3C54X中断的使用在C54X中用户可以通过中断屏蔽寄存器IMR来决定开放或关闭一个中断请求图2-1给出了C5402的IMR寄存器的各个比特位的定义图2-1 C5402的IMR寄存器其中HPINT表示HPI接口中断INT3-INT0为外部引脚产生的中断TXINT和TRINT为TDM串口的发送和接收中断BXINT0和BRINT0为BSP串口的发送和接收中断TINT0为定时器0中断在中断屏蔽寄存器IMR中1表示允许CPU响应对应的中断0表示禁止当然要CPU响应中断ST1寄存器中的INTM还应该为0允许所有的中断当DSP响应中断时PC指针指向中断向量表中对应中断的地址进入中断服务子程序中断向量表是C54X存放中断服务程序的一段内存区域大小为80H在中断向量表中每一个中断占用4个字的空间一般情况是将一条跳转或延时跳转指令存放于此当然如果中断服务程序很短小于或等于4个字可以直接放入该向量表中断向量表的位置可以通过修改基地址来改变其基地址由PMST寄存器中的IPTR15-7 bits决定中断向量表的各中断的偏移说明以及中断向量地址的形成请参考教材以及教材附录部分例如C54x复位后其IPTR全为1复位中断的偏移量为0所以中断向量表起始位置在0FF80H因而复位后程序从0FF80H开始运行本实验的初始化程序读取中断向量表的启始地址然后设置PMST的高9位以便DSP能正确响应中断代码如下ld 0dp 设置DP页指针ssbx intm 关闭所有中断ld vector a 读出中断向量地址vector在中断向量表程序中定义and 0FF80h a 保留高9位IPTRandm 007Fh pmst 保留PMST的低7位or pmst astlm a pmst 设置PMST其中包括IPTR三实验要求基于DSP的定时器产生2KHz正弦波采样率为40KHz或者自定义但必须满足采样定理采样CCS图形查看工具查看产生波形及其频谱图四实验条件PC机 DES5402PP-U实验系统五调试及结果测试本实验需要使用C54X汇编语言或C语言实现数字振荡器并通过CCS提供的图形显示窗口观察输出信号波形以及频谱实验分下面几步完成1根据确定数字振荡器的频率计算并确定系数2启动CCS新建工程文件如文件名为sinewaveprj选择Project菜单中的Add File to Project选项将所编写的汇编源程序exer2asmvec_tableasm和连接命令sinewavecmd文件依次添加到工程文件中注意你可以在添加文件对话框中选择显示不同的文件类型来加快文件选择速度你也可以使用鼠标右键单击工程文件名如sinewaveprj并选择Add Files项来添加需要的文件其中exer2asm 包括初始化代码和中断服务程序而vec_talbeasm包含中断向量表 3选择Project菜单中的Options选项或使用鼠标右键单击工程文件名如sinewaveprj并选择Options项来修改或添加编译连接中使用的参数例如选择Assembler窗口选择Enable Symbolic Debug Infomation以便使用汇编源代码级调试你可以在汇编源程序设置断点等等选择Linker窗口在Output Filename 栏中写入输出OUT文件的名字如sineout你还可以设置生成的MAP文件名 4完成编译连接正确生成OUT文件然后使用File菜单的Load Program选项将生成的OUT文件如sineout装入DSP的片内存储器这时CCS将显示程序的启始地址_c_int005选View→Graph→TimeFrequency打开图形显示设置窗口在弹出的对话框中按图2-2设置所示主要修改Start Address为y0y0为生成的正弦波输出变量Acquisition Buffer Size为1DSP Data Type为16-bit signed integer 图2-2 CCS图形查看工具设置6在汇编源程序的中断服务程序_tint中的nop语句处设置断点该行被加亮为洋红色选择Debug→Animate运行程序观察输出波形数一数一个周期的正弦波有多少个点算算频率是否是2kHz另外想想Run和Animate两种运行方式的区别 7用右键单击图形显示窗口并选择Proporties项以便修改显示属性将Display Type项改为FFT Magnitude以便显示信号频谱修改Sampling Rate Hz 项为40000然后退出注意观察生成的正弦波频率8清除所有断点关闭除波形显示窗口外的所有窗口并关闭工程文件9下面我们使用C语言完成本实验新建一个工程文件如sinewave_cprj并添加所编写的timercvec_tableasm源程序再添加timercmd再添加C使用的标准库rtslib该文件应该在CCS安装目录中例如若CCS安装在d\ti下则rtslib应该在d\ti\c5400\cgtools\lib下修改编译连接选项加入符号调试选项修改生成的OUT文件名如timerout10完成编译连接正确生成OUT文件然后使用File菜单的Load Program选项将生成的OUT文件如timerout装入DSP的片内存储器这时CCS将显示程序的启始地址_c_int0011 打开C源程序timerc窗口在中断服务程序函数tint 的con_buf 0语句处增加一个断点同样打开图形显示窗口并将Start Address改为bufAcquisition Buffer Size改为128Display Data Size改为128DSP Data Type 为32-bit floating point12选择Debug→Animate运行程序观察输出波形数一数一个周期的正弦波有多少个点算算频率是否是2kHz同样用右键单击图形显示窗口显示信号频谱注意修改Sampling Rate Hz 项为40000然后退出注意观察生成的正弦波频率六实验报告要求1预习报告分析采用数字信号处理方法产生正弦波原理复习定时器工作原理及中断控制方法考虑主程序中断向量表以及CMD模块的编写2实习记录根据实习步骤记录实验结果图形考虑显示图形的设置3实验报告1汇出实验结果信号曲线图及其频谱图2进行本次实验总结七思考题1本实验程序产生了一个2kHz的正弦信号请修改程序产生一个频率相同的余弦信号为了验证产生的COS信号可以同时生成SIN和COS信号然后在两个图形窗口中显示波形它们应该正好相差 2相位。
DSP技术与应用习题库及标准答案王忠勇
、
专用型
DSP
。
9.
DSP芯片按数据格式分为
浮点型
、
定点型
。
第二
早
1.
C28x芯片具有C27X
、C
28X、C2XLP
操作模式。
2.
C28x芯片模式选择由
ST1
中的AMODE
和OBJMODE
位组
合来选定模式。
3.
CPU内核由CPU、
仿真逻辑、
接口组成。
4.
CPU主要特性是 保护流水线、独立寄存器空间算术逻辑单兀
3.中断向量地址的低地址保存该向量的_低16位,高地址则保存它的—高6位。
4•向量表可以映像到程序空间的底部或顶部,这取决于状态寄存器STI的向量映像位
VMAP_如果VMAP位是0,向量就映像在以0x000000开始的地址上 ;
如果其值是1,向量就映像到以—0X3FFFC0开始的地址上。
5.281X有14个通用中断,为仿真而设计的中断_DLOGINT(数据
8K*16
位,映像
至
地
址
0x3F80000H-0x3F9FFFh。
10.C28x包含位的Flash存储器1K*16位的OTP
11.Flash存储器被分成4_个8Kxl6位单元和—8个16Kxl6位的单元
12.外部扩展接口映射到_ 5_个独立的存储空间ZONE0/1/2/6/7_。
13.用户可以通过软件改变XINTCNF2寄存器中的_XMP/MC位来控制
B、语音处理
C、浮点运算
D、
图象处理
5.采用DSP进行数字信号处理属于(C)实现方法。
A、硬件B、软件C、软硬件结合D、以上都不是
DSP实验答案
上 机 实 验
第8章 上
8.1 8.2 8.3 8.4
机
实
验
实验一: 系统响应及系统稳定性 实验二: 时域采样与频域采样 实验三: 用FFT对信号作频谱分析 实验四: IIR数字滤波器设计及软件实现
8.5 实验五: FIR数字滤波器设计与软件实现
8.6 实验六: 数字信号处理在双音多频拨号系统中的应用
先对原序列x(n)以N为周期进行周期延拓后取主值区序列,
xN (n) [ x(n iN )]RN (n)
i
再计算N点DFT, 则得到N点频域采样:
X N (k ) DFT[ xN (n)]N =X (e j ) k 0,1, 2, , N 12π k N源自第 8 章第 8 章
上 机 实 验
8.2.3 实验程序运行结果
(1) 时域采样理论的验证程序exp2a.m的运行结果如图 8.2.2所示。 由图可见, 当采样频率为1000 Hz时, 频谱混叠
很小; 当采样频率为300 Hz时, 频谱混叠很严重; 当采样
频率为200 Hz时, 频谱混叠更很严重。
第 8 章
上 机 实 验
图8.2.2
第 8 章
上 机 实 验
(2) 频域采样理论的验证程序exp2b.m的运行结果如图
8.2.3所示。
该图验证了频域采样理论和频域采样定理。 对信号x(n) 的频谱函数X(ejω)在[0, 2π]上等间隔采样N=16时, N点 IDFT[XN(k)]得到的序列正是原序列x(n)以16为周期进行周 期延拓后的主值区序列:
title(′(g) h2(n)与R8(n)的卷积y22(n)′) %=====================================
DSP技术与实验思考题答案
DSP技术与实验思考题答案DSP实验报告实验⼀CCS集成开发环境的熟悉思考⼀:为什么要设置成Address=0x1000?1、主程序中的bss段如下:.bss x,5 ;伪指令。
声明数组x,5个字.bss y,1 ;伪指令。
声明变量y,1个字2、数据存储区分配如下:PAGE 1: /*数据存储区*/SPRAM:org=1000H len=1000H /*定义SPRAM区,起始地址1000H,长度1000H*/ 3、段分配如下:.bss :>SPRAM PAGE 1 /*将.text段映射或定位到PAGE1的SPRAM区*/ 所以数组x的五个存储单元地址为1000H~1004H。
4、数据表分配如下:table: .word 10,20,3,4,5 ;伪指令。
声明5个16位整数类型的常数。
table是标号5、下⾯的操作是将table中的五个数据装载到变量x中,即存储空间1000H~1004H中STM #x,AR1 ;AR1=#x或AR1指向数组xRPT #4 ;下⼀条指令重复执⾏4+1=5次MVPD table,*AR1+ ;将程序存储器中的table数据表→AR1+指向的数据存储器由以上存储结构可知,查看Data的地址空间1000H的内容就是查看数组x中的五个数:10, 20, 3, 4, 5在数据存储器中的存储情况。
思考⼆:为什么.bss的地址是0x1000,变量y的地址是0x1005,变量x的地址⼜是多少呢?因为.bss段分配到SPRAM PAGE 1,⽽SPRAM PAGE 1的起始地址为1000H,所以.bss的地址为0x1000;变量x最先声明,变量y接着声明,⽽变量x是长度为5的数组,所以变量x占地址0x1000~0x1004五个地址单元,变量y的地址为0x1005.思考三:为什么要设置成Address=0x0090?1、程序存储区地址分配如下:PAGE 0: /*程序存储区*/EPROM:org=0090H len=0F70H /*定义EPROM区,起始地址0090H,长度0F70H*/ 2、段分配如下:.text :>EPROM PAGE 0 /*将.text段映射或定位到PAGE0的EPROM区*/ 由以上程序结构可知,.text段的起始地址为0090H,查看Program的地址空间中0090H 中的的内容就是查看主程序在程序存储其中的内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验指导实验一常用指令实验一、实验目的1、了解DSP开发系统的组成和结构;2、掌握DSP开发系统的连接;3、熟悉DSP的开发界面;4、熟悉F2812系列的寻址系统;5、掌握F2812系列常用指令的用法。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,2812CPU板。
三、实验原理外部标志输出(软件可控信号)XF可用于在多处理器结构中相互通信,也可作通用输出脚。
本实验中XF引脚先接到CPLD,然后把XF再通过CPLD输出给LED灯。
XF为低时LED亮,XF为高时LED灭。
四、实验步骤与内容1、系统连接在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示:2、在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存在问题。
3、运行CCS程序待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电,启动CCS,此时仿真器上的“绿色指示灯”应点亮,CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG接口或CCS相关设置存在问题,这时需掉电检查仿真器的连接、JTAG接口连接是否正确,或检查CCS相关设置是否存在问题。
注:如出现上述问题,原因有二:其一,可能是系统连接错误或没有正常复位,应重新检查系统硬件并复位;其二,可能是软件安装或设置存在问题,应尝试调整软件系统设置,具体仿真器和仿真软件CCS的应用方法参见第三章。
●成功运行CCS程序后,首先应熟悉CCS的用户界面;●学会在CCS环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。
4、修改样例程序,练习运用DSP其他指令进行相关编程实验。
注:实验系统连接及CCS相关设置是以后所有实验的基础,在以下实验中这部分内容将不再复述。
5、填写实验报告。
6、样例程序实验操作说明仿真口选择开关K9拨到右侧,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open菜单打开exp4_01_xf目录下面的工程文件“Example_281x_xf.pjt”,用下拉菜单中Project/Open,打开“Example_281x_xf.pjt”,双击“Source”,可查看源程序。
在File→Load Program菜单下加载debug目录下的Example_281x_xf.out文件:加载完毕,单击“Run”运行程序;注意:实验程序所在的目录不能包含中文,目录不能过深,如果想重新编译程序,去掉所有文件的只读属性。
的Example_281x_xf.out文件:加载完毕,单击“Run”运行程序;实验结果:可见指示灯D1定频率闪烁;单击“Halt”暂停程序运行,则指示灯停止闪烁,如再单击“Run”,则指示灯D1又开始闪烁;注:指示灯D1在CPLD单元的右上方。
因F2812的CPU频率较大,在本样例程序中CPU的频率选择不宜过大,如果D1闪烁观察不到现象,可适当的加大延时时间。
关闭所有窗口,本实验完毕。
五、程序框图实验二数据存储实验一、实验目的a)掌握TMS320F2812程序空间的分配;b)掌握TMS320F2812数据空间的分配;c)能够熟练运用TMS320F2812数据空间的指令。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,2812CPU板。
三、实验系统相关资源介绍本实验指导书是以TMS320F2812为例,介绍其相关的内部和外部存储器资源。
对于其他类型的CPU请参考查阅相关的数据手册。
下面给出TMS320F2812的存储器分配表:对于数据存储空间而言,映射表相对固定。
值得注意的是内部寄存器都映射到数据存储空间内。
因此在编程应用时这些特定的空间不能作其他用途。
对于程序存储空间而言,其映射表和CPU的工作模式有关。
当MP/MC引脚为高电平时,CPU工作在微处理器模式;当MP/MC引脚低电平时,CPU工作在微控制器模式。
存储器实验主要帮助用户了解存储器的操作和DSP内部的双总线结构。
并熟悉相关的指令代码和操作等。
四、实验步骤与内容a)样例程序实验操作说明连接好DSP开发系统,开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;在CCS的Memory窗口中查找F2812各个区段的数据存储器地址,在可以改变的数据地址随意改变其中内容;在CCS中装载实验示范程序,单步执行程序,观察程序中写入和读出的数据存储地址的变化;联系其它寻址方式的使用(使用汇编语言时)。
打开并加载“..\ exp4_02_mem\ \Debug\Example_281x_mem.out”,用“View”下拉菜单中的“Memory”查看内存单元,如下图所示:输入要查看的内存单元地址,本实验要查看0x003F9020H~0x3F902FH单元的数值变化,输入地址0x003F9020H;查看0x003F9020H~0x3F902FH单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Halt”暂停程序运行;查看0x003F9020H~0x3F902FH单元内数值的变化;关闭各窗口,本实验完毕。
本实验说明:本实验程序将对0x003F9020H开始的8个地址空间,填写入0xAAAA的数值,然后读出,并存储到0x003F9028H开始的8个地址空间。
在CCS中可以观察DATA存储器空间地址0x003F9020H~0x3F902FH值的变化。
注:本实验也可以在CPU1上运行五、程序框图实验三开关实验一、实验目的1、了解数字量与模拟量的区别和联系。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,2812CPU板。
三、实验原理8位的数字量输入(由八拨码开关产生)当拨码开关打到靠近LED时为低,相反为高,通过74LS244缓冲连接到DSP的数据总线的低8位。
8位的数字量输出(通过八个LED灯显示)当对应LED点亮时说明输出为低,熄灭时为高,通过74LS273缓冲连接到DSP的数据总线的低8位。
数字量输入输出单元的资源分配如下:数字量输入分配空间为数据空间的:CS2基地址(0x80000)+8000h (低8位,只读)四、实验步骤与内容1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;2、运行CCS软件,装载示范程序,分别调整“数字输入输出单元”的开关K1~K8,观察LED1~LED8灯亮灭的变化,以及输入和输出状态是否一致。
3、样例程序实验操作说明启动CCS 2.0,并加载“..\ EXP4_03_switch\ Debug\Example_281x_switch.out”;单击“Run”运行程序;分别调整开关量输入单元的开关K1~K8,观察LED指示灯LED1~LED8亮灭的变化,以及开关量输入和输出状态是否一致。
任意调整K1~K8开关,可以观察到对应LED1~LED8 灯“亮”或“灭”;单击“Halt”,暂停持续运行,开关将对灯失去控制;关闭所有窗口,本实验完毕。
五、实验说明实验中采用简单的一一映射关系来对数据地址进行验证,目的是使实验者能够对数据有一目了然的认识。
在本实验中,提供的数据空间分配如下:CPU2的数据空间地址: 0x88000 拨码开关 input 8位CPU2的数据空间地址: 0x88001 LED灯 output 8位六、程序框图实验四事件管理器定时器实验一、实验目的1、熟悉F2812事件管理器的定时器;2、掌握F2812事件管理器定时器的控制方法;3、学会使用事件管理器定时器中断方式控制程序流程。
二、实验设备计算机,CCS 2.0版软件,DSP硬件仿真器,EXP4实验箱,2812CPU板。
三、实验原理事件管理器模块EV A、EVB中都有两个通用目的(GP)定时器。
这些定时器在以下的应用中可以作为独立的时基。
i.在控制系统中产生采样周期;ii.为捕捉单元和正交编码脉冲电路的操作提供时基;iii.为比较单元和与产生PWM输出相关的电路提供时基。
定时器模块的功能框图如下图所示:定时器的输入一般有:(1)内部器件(CPU)的时钟;(2)外部时钟TCLKINA/B,最大频率为器件自身时钟的1/4/;(3)带有方向的输入TDIRA/B,用于GP定时器的增/减计数模式;(4)复位信号RESET。
定时器的输出一般有:(1)GP定时器的比较输出TxCMPR(1、2、3、4);(2)送给ADC模块的ADC启动转换信号;(3)下溢、上溢、比较匹配和周期匹配信号,送给自身的比较单元和比较逻辑;(4)计数方向指定位。
下面介绍一下定时器相关寄存器:定时器控制寄存器的各位定义如下:比较控制寄存器各位定义如下:其它相关的原理及内容请读者参考相关的英文文档及书籍。
四、实验步骤和内容1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;运行CCS软件,调入样例程序,装载并运行;2、事件管理器定时器实验通过数字量输入输出单元的LED1~LED8来显示;3、样例程序实验操作说明启动CCS 2.0,并加载“..\ EXP4_04_ev_timer\Debug\Example_281x_ev_timer.out”;单击“Run”运行,可观察到灯LED1~LED8的奇数和偶数灯以一定的时间间隔(由定时器周期决定)轮流点亮、熄灭;单击“Halt”,暂停程序运行,LED灯停止闪烁;单击“Run”,运行程序,LED灯又开始闪烁;关闭所有窗口,本实验完毕。
源程序查看:用下拉菜单中Project/Open,打开“Example_281x_ev_timer.pjt”,双击“Source”,可查看各源程序。
五、实验说明F2812的通用定时器功能强大,除了做通用定时器使用外,还可以配合事件管理器模块产生PWM波形。
可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断。
六、程序框图主程序流程图实验五 CPU定时器实验一、实验目的1、熟悉F2812的CPU定时器;2、掌握F2812的CPU定时器的控制方法;3、学会使用CPU定时器中断方式控制程序流程。
二、实验设备计算机,CCS 2.0版软件,DSP硬件仿真器,EXP4实验箱,2812CPU板。
三、实验步骤和内容1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;运行CCS软件,调入样例程序,装载并运行;2、CPU定时器实验通过数字量输入输出单元的LED1~LED8来显示;3、样例程序实验操作说明启动CCS 2.0,并加载“..\ EXP4_05_cpu_timer\Debug\Example_281x_cpu_timer.out”;单击“Run”运行,可观察到灯LED1~LED8的变化规律:先LED1,8点亮;LED2,7点亮,LED1,8熄灭;LED3,6点亮,LED2,7熄灭;LED4,5点亮,LED3,6熄灭;后LED4,5熄灭,LED3,6点亮;LED3,6熄灭,LED2,7点亮;LED2,7熄灭,LED1,8点亮。