DSP课后习题与思考题
DSP课后思考题
第一章1. 什么是可编程DSP芯片?它有什么特点?答:可编程DSP芯片即通用数字信号处理器,其有完整的指令系统,可通过编程来实现各种数字信号处理功能,易于软件更新与系统升级。
主要特点有:(1)快速的指令周期,支持在一个指令周期内可完成一次乘法和一次加法运算;(2)采用改进的哈佛总线结构,可以同时完成获取指令和数据读取操作;(3)片内具有快速RAM,可通过独立的总线对多个存储器块并行访问;(4)硬件支持低开销或无开销的循环及跳转指令,使得FFT、卷积等运算速度大大提高;(5)快速的中断处理和硬件I/O支持,保证了实时响应能力;(6)专用寻址单元,具有在单周期内操作的多个硬件地址产生器;(7)采用流水线操作,使取指、译码、取操作数和执行指令等操作可以重叠执行;(8)片内集成了丰富的外设模块,简化了系统硬件设计。
2. 什么是定点DSP芯片和浮点DSP芯片?各有什么特点?答:定点DSP芯片:数据以定点格式工作的DSP芯片,DSP里面运算的数据的小数点位置是固定的。
主频高、速度快、成本低、功耗小,计算复杂度不高。
浮点DSP芯片:数据以浮点格式工作的DSP芯片,DSP里面运算的数据的小数点位置是浮动的。
处理速度比定点DSP低,成本和功耗比定点DSP高,其动态范围和处理精度远高于定点DSP芯片,运算复杂度高,精度要求高。
3. 简述TMS320C2000、TMS320C5000、TMS320C6000的特点和应用领域。
答:(1) TMS320C2000 系列面向控制应用领域进行了优化,基于32位处理器内核,主频300MHz,具有强大运算和控制功能,片内集成了丰富的控制外设模块,便于构成高效能的工业测控系统,片内集成了Flash存储器,简化了用户硬件电路;集成了异步串行通信接口,易于通过标准通信接口实现与计算机或其他微处理器间的远距离通信。
主要用于大存储设备管理、高效能的实时控制等场合,如电机驱动控制、大容量开关电源、医疗仪器等。
《DSP原理与开发实例》思考题答案
第一章绪论思考题解答1、思考并讨论Digital Signal Processing和Digital Signal Processor之间的联系和区别。
答:Digital Signal Processing指数字信号处理技术,它是理论和计算方法上的技术;Digital Signal Processor指数字信号处理器,它是实现数字信号处理技术的通用或专用可编程微处理器芯片。
两者互为基础、不可分割。
一方面,数字信号处理技术为充分利用数字信号处理器奠定理论和技术基础;另一方面,数字信号处理器为实现数字信号处理技术提供物理支撑和实现平台。
2、简述DSP的发展历程。
答:DSP芯片的发展历程大致可分为以下三个阶段。
第一阶段,DSP的雏形阶段。
快速傅里叶变换为数字信号的实时处理奠定了算法基础,集成电路技术的发展为DSP的出现提供了技术保障。
这个时期,DSP芯片的运算速度大约为单指令周期200~250ns,应用仅局限于军事或航空航天领域。
第二阶段,DSP的成熟阶段。
DSP器件在硬件结构上出现了硬件乘法器、硬件FFT变换和单指令滤波处理。
其单指令周期为80~100ns,其应用范围逐步扩大到通信、计算机领域。
第三阶段,DSP的完善阶段。
DSP的信号处理能力更加完善、系统开发更加方便、程序编辑调试更加灵活、功耗进一步降低、成本不断下降、多核技术开始应用。
尤其是各种通用外设集成到片上,大大地提高了数字信号处理能力。
这一时期的DSP运算速度可达到单指令周期10ns以上,可在Windows环境下直接用C语言编程,使用方便灵活,使DSP芯片不仅在通信、计算机领域得到了广泛的应用,而且逐渐渗透到人们日常消费领域。
3、DSP有哪几种分类方式,可将DSP芯片分成哪几类?答:DSP有三种分类方式:按基础特性分类、按数据格式分类和按用途分类。
按基础特性可分为静态DSP芯片和一致性DSP芯片;按数据格式可分为定点DSP芯片和浮点DSP芯片;按照用途可分为通用型DSP芯片和专用型DSP芯片。
DSP习题及解答[1](精)
第一章引言1. 一个存储单元有哪两个属性?寄存器与存储器有什么不同?一个存储单元的两个属性是:地址与值。
寄存器是特殊的存储器,读写寄存器可引发相关电路的动作。
2. 由单片机构成的最小系统有哪几部分构成?由单片机构成的最小系统包括电源和晶体振荡器。
3. DSP是哪三个英文词的缩写?中文意义是什么?DSP是Digital Signal Processor的缩写,中文意义是数字信号处理器。
4. 哈佛结构计算机与冯∙诺伊曼结构计算机有什么差别?哈佛结构计算机有独立的数据总线和程序总线,冯∙诺伊曼结构计算机数据和程序共用一套总线。
5. 微控制器与微处理器有什么不同?微控制器内部可固化程序,而微处理器内部不含程序。
6. TMS320LF24xA系列单片机有几套总线?分别起什么作用?总线中数据线和地址线分别有多少条?最大可以访问多少存储单元?每个存储单元由多少位组成?TMS320LF24xA系列单片机有三套总线,分别是程序读总线、数据读总线和数据写总线。
每套总线中各有16条数据线和16条地址线,最大可以访问64K个存储单元,每个存储单元由16位组成。
7. 什么是操作码?什么是操作数?操作码用于表示指令所要执行的动作,操作数表示指令所涉及的数据。
8. 实现一条指令的功能要经过哪四个阶段?CPU为什么要采用流水线结构?实现一条指令的功能要经过“取指”、“译码”、“取操作数”和“执行”四个阶段,CPU采用流水线结构可以同时使多条指令处于不同的处理阶段,实现并行处理,提高CPU的指令吞吐率。
第二章寻址方式与主要寄存器操作1. 有哪三种寻址方式?三种寻址方式是:立即数寻址、直接寻址和间接寻址。
2. 指令LACL #10与LACL 10有什么区别?各为什么寻址方式?含义是什么?指令LACL #10将常数10装载到累加器,指令LACL 10将地址10(假设DP为0)处的值装载到累加器。
前者是立即数寻值,操作数在指令中;后者是直接寻址,操作数的地址最低7位在指令中。
DSP 第四章 思考题
参考P40, 参考P40,图4.2.1
思考题
4.4 欲实现通过定时器周期中断的方法,形成每 0.1s触发一次XF端反转,请配置定时器的相关寄存 器,并说明配置理由。假设CPU时钟频率为20MHZ。
0.1s=100ms=100*10^6ns CLKOUT主频 CLKOUT主频f=20MHz,T=50ns 主频f=20MHz, 时钟数100*10^6ns/50ns=2 时钟数100*10^6ns/50ns=2 000 000 根据定时长度计算公式:Tt=T* (TDDR+1) * (PRD+1) 根据定时长度计算公式: 给定TDDR=15,PRD=62449,CLKOUT主频 给定TDDR=15,PRD=62449,CLKOUT主频 f=20MHz, f=20MHz,T=50ns Tt=50*(15+1)*(62449+1)=50*1,000,000(ns)=50(ms)
9~6
1
5
0
4
1111
3~0
TDR 0026h
保留
Soft
Free
PSC
TRB
TSS
TDDR
保留位
软件调试控制位
预定标 计数器
重新 加载位
停止 状态位
分 频 系 数
第4章 TMS320C54x的片内外设、接口及应用 TMS320C54x的片内外设、 的片内外设
3. 定时控制寄存器TCR 定时控制寄存器TCR 16位存储器映像寄存器, 16位存储器映像寄存器,包含定时器的控制位 位存储器映像寄存器 和状态位。 和状态位。
思考题
4.3 试分别说明下列中断语句的功能。 (1)STM (H,IMR
;清除INT2中断标志 清除INT2中断标志 ;放开(许可)TINT1 放开(许可)
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芯片原理与应用习题与思考题(张雄伟)
习题与思考题第一章DSP 系统与DSP芯片1.数字信号处理算法一般的实现方法有哪些?2.什么是可编程DSP芯片?他有什么特点?3.什么是定点DSP芯片和浮点DSP芯片?各有什么优缺点?4.设计DSP应用系统时,如何选择合适的DSP芯片?5.TMS320LF2407A-40的指令周期是多少纳秒(ns)?它的运算速度是多少MIPS? 如果DSP算法是按帧处理的,且帧长是10ms,则该芯片在一帧时间内最多可运行多少个指令周期?6.简述DSP应用系统的典型构成和特点。
7.简述DSP应用系统的一般设计过程。
8.开发DSP应用系统,一般需要哪些软硬件工具?第二章DSP芯片的运算基础1.已知一个16进制数3000H,若该数分别用Q0、Q5、Q15表示,计算该数的大小。
2.若某一个变量用Q10表示,计算该变量所能表示的数值范围和精度。
3.已知x=0.4567,试分别用Q15、Q14、Q5将该数转换为定点数(考虑舍入和不舍入两种情况)。
4.函数f(x)= 2(1+x2),-1<x<+1,为了保持最大精度,试确定定点运算时自变量x和函数f(x)的Q值。
5.两个数x、y分别为0.45和1.97,试采用16位定点方法(保持最大精度),计算x、y 之和及乘积,并比较定点和浮点之结果。
6.采用定点方法,计算log2(105.6)的值,并比较定与浮点的结果。
第三章TMS320C24x DSP的硬件结构1.TMS320LF/LC240x芯片的CPU主要由哪几部分组成?2.TMS320LF/LC240x DSP芯片的外设有哪些?它们是如何构成的?3.TMS320LF/LC240x DSP芯片的中断是如何组织的?4.TMS320LF/LC240x DSP芯片的内部总线是如何组织的?5.试述TMS320LF/LC240x DSP芯片的存储器结构?第四章TMS320C24x DSP的指令系统1.汇编语句格式包含哪几部分?编写汇编语句需要注意哪些问题?2.TMS320C24x的指令集包含了哪几种基本类型的操作?3.TMS320C24x提供了那些基本的数据寻址方式?4.直接寻址方式中,数据存储单元的地址是如何生成的?5.采用﹡BR0+间接寻址,若AR0为0000 1000b,试写出位反转模式与AR1低4位的关系,设ARP=1。
DSP控制技术思考题与习题
DSP控制技术思考题与习题DSP控制技术思考题与习题1 请比较哈佛结构与冯.诺依曼结构的不同。
哈佛结构P3L5 指令周期在10ns以下,高实时性。
2请比较TI公司各种DSP平台的特点和应用领域。
P7L13 TMS320F2812的哪些特点使其更适合于控制领域应用? P9L111请简述F2812各总线(PRDB PAB DRAB DWDB DWAB 操作数总线和结果总线)之间的关系? P28L1,表2-2-12 根据2-2-1思考F2812的程序地址如何产生。
表2-2-13 请简述F2812CPU内部各寄存器的特点和功能。
P304请分析F2812内部各模块的时钟与振荡器频率之间的关系。
] P425 初始化系统控制过程中需要配置哪些寄存器?例2-4-16 在30MHZ的晶振频率下,如何设置各相关寄存器使定时器定时1ms. P48L3例2-4-27假设OSCCLK为12.000MHZ,WDCR的位WDPS(2:0)设置为2,请问最长需要多少时间进行“喂狗”操作? P53提示1 对照图3-1-2,请分析程序、数据空间统一寻址这一概念的具体含义。
图3-2-1?2请分析Zone0 Zone1 Zone2 Zone6空间的特点和应用上的区别。
P613 请分析 Boot ROM与XINTF的Zone6 Zone7地址之间的关系。
P61 XPC/MC4 假设X2TIMING=1,Lead=2,Active=4, Trail=2,试画出XTIMCLK=SYSCLKOUT 时XINTF 的读写周期的波形图。
P705 请分析通过GPIO有几种方法向外输出数字量0或1. P76GPIO初始化程序1 请画图说明中断向量、中断向量表、中断向量号、中断服务程序入口地址、中断向量地址在存储空间中的关系。
P81?2 请分析INTR和TRAP等软件中断与硬件中断的异同。
P88-893请比较几种低功耗模式的唤醒方式的异同。
DSP(知识点+思考题)
DSP复习要点第一章绪论1、数的定标:Qn表示。
例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、’C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。
第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。
(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。
(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。
1)、累加器A和B分为三部分:保护位、高位字、地位字。
保护位保存多余高位,防止溢出。
2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。
5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。
答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。
•ST0主要反映处理器的寻址要求和计算机的运行状态。
DSP课后习题答案--李建
第一章:1、数字信号处理的实现方法一般有哪几种?(1)在通用的计算机上用软件实现(2)在通用计算机系统中加上专用的加速处理机实现(3)用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理(4)用通用的可编程DSP 芯片实现,可用于复杂的数字信号处理算法(5)用专用的DSP 芯片实现(6)用基于通用dsp 核的asic 芯片实现2、简单的叙述一下dsp 芯片的发展概况?答:第一阶段,DSP 的雏形阶段(1980 年前后)代表产品:S2811。
主要用途:军事或航空航天部门第二阶段,DSP 的成熟阶段(1990 年前后)代表产品:TI 公司的TMS320C20 主要用途:通信、计算机领域第三阶段,DSP 的完善阶段(2000 年以后)代表产品:TI 公司的TMS320C54 主要用途:各行业领域3、可编程dsp 芯片有哪些特点?(1)采用哈佛结构:冯.诺依曼结构,哈佛结构,改进型哈佛结构(2)采用多总线结构(3)采用流水线技术(4)配有专用的硬件乘法-累加器(5) 具有特殊的dsp 指令(6)快速的指令周期(7) 硬件配置强(8)支持多处理器结构(9)省电管理和低功耗4、什么是哈佛结构和冯.诺依曼结构?它们有什么区别?哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成, 大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
冯.诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
区别: 哈佛:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
DSP习题及解答[1](精)
第一章引言1. 一个存储单元有哪两个属性?寄存器与存储器有什么不同?一个存储单元的两个属性是:地址与值。
寄存器是特殊的存储器,读写寄存器可引发相关电路的动作。
2. 由单片机构成的最小系统有哪几部分构成?由单片机构成的最小系统包括电源和晶体振荡器。
3. DSP是哪三个英文词的缩写?中文意义是什么?DSP是Digital Signal Processor的缩写,中文意义是数字信号处理器。
4. 哈佛结构计算机与冯∙诺伊曼结构计算机有什么差别?哈佛结构计算机有独立的数据总线和程序总线,冯∙诺伊曼结构计算机数据和程序共用一套总线。
5. 微控制器与微处理器有什么不同?微控制器内部可固化程序,而微处理器内部不含程序。
6. TMS320LF24xA系列单片机有几套总线?分别起什么作用?总线中数据线和地址线分别有多少条?最大可以访问多少存储单元?每个存储单元由多少位组成?TMS320LF24xA系列单片机有三套总线,分别是程序读总线、数据读总线和数据写总线。
每套总线中各有16条数据线和16条地址线,最大可以访问64K个存储单元,每个存储单元由16位组成。
7. 什么是操作码?什么是操作数?操作码用于表示指令所要执行的动作,操作数表示指令所涉及的数据。
8. 实现一条指令的功能要经过哪四个阶段?CPU为什么要采用流水线结构?实现一条指令的功能要经过“取指”、“译码”、“取操作数”和“执行”四个阶段,CPU采用流水线结构可以同时使多条指令处于不同的处理阶段,实现并行处理,提高CPU的指令吞吐率。
第二章寻址方式与主要寄存器操作1. 有哪三种寻址方式?三种寻址方式是:立即数寻址、直接寻址和间接寻址。
2. 指令LACL #10与LACL 10有什么区别?各为什么寻址方式?含义是什么?指令LACL #10将常数10装载到累加器,指令LACL 10将地址10(假设DP为0)处的值装载到累加器。
前者是立即数寻值,操作数在指令中;后者是直接寻址,操作数的地址最低7位在指令中。
DSP(知识点+思考题)
DSP复习要点第一章绪论1、数的定标:Qn表示。
例如:16进制数2000H=8192,用Q0表示16进制数2000H=0.25,用Q15表示2、‟C54x小数的表示方法:采用2的补码小数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果自动左移1位。
第二章CPU结构和存储器设置一、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建立的。
(1)、一组程序总线(PB):传送从程序存储器的指令代码和立即数。
(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执行指令所需要的地址。
2、C54x DSP的CPU包括哪些单元?答:'C54X 芯片的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、比较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。
1)、累加器A和B分为三部分:保护位、高位字、地位字。
保护位保存多余高位,防止溢出。
2)、桶形移位寄存器:将输入数据进行0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在一个周期内完成一次17*17bit的乘法和一次40位的加法4)、比较选择和存储单元:用维比特算法设计的进行加法/比较/选择运算。
5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。
答:’C54x DSP的ST1,ST0,PMST的主要功能是用于设置和查看CPU的工作状态。
•ST0主要反映处理器的寻址要求和计算机的运行状态。
DSP课后复习题及答案
DSP课后复习题及答案1、DSP应⽤系统模型包括哪些主要部分?抗混叠滤波、A/D转换、DSP芯⽚、平滑滤波DSP系统特点:精度⾼、可靠性强、集成度⾼、接⼝⽅便、灵活性好、保密性好、时分复⽤选择DSP芯⽚的依据:考虑成本、供货能⼒、技术⽀持、开发系统、体积、功耗、⼯作环境温度。
DSP为了降低功耗采取了哪些措施?双电压供电、多种⼯作模式2、DSP芯⽚在提⾼芯⽚运算速度⽅⾯采⽤了哪些措施1.针对DSP运算多采⽤乘加运算的特点,⼤多采⽤了单个指令周期实现乘加运算的处理技术2.单周期实现多个运算单元并⾏处理3.各种数据搬运的⼯作可交由DMA处理,⽆需CPU⼲涉4.提供针对⾼级数学运算(指数、开⽅、FFT等)的库函数3、TSM320c54x芯⽚存储器采⽤什么结构?有何特点?TSM320c54x芯⽚存储器采⽤哈弗结构特点:将程序和数据存储在不同的存储空间,即程序存储器和数据存储器是两个相互独⽴的存储器,每个存储器独⽴编址,独⽴访问4、TSM320C54x芯⽚的总线有哪些?他们各⾃的作⽤和区别是什么?1)程序总线(PB)C54x⽤1条程序总线传送取⾃程序存储器的指令代码和⽴即数操作数2)数据总线(CB、DB和EB)C54x⽤3条数据总线将内部各单元连接在⼀起3)地址总线(PAB、CAB、DAB和EAB)C54x⽤4条地址总线传送执⾏指令所需的地址5、累加器A和B的作⽤是什么?他们有何区别?累加器A和B都可以配置成乘法器/加法器或ALU的⽬的寄存器。
区别:累加器A的31~16位能被⽤作乘法—累加单元中的乘法器输⼊,⽽累加器B不能6、TSM320C45x的总储存空间为多少?可分为哪三类?他们的⼤⼩是多少?TSM320C45x的总储存空间为192K 可分为64Kd的程序存储空间 64K的数据存储空间和64K的I/O空间7、试述三种存储空间的各⾃作⽤是什么?程序存储空间⽤于存放要执⾏的指令和指令执⾏中所⽤的系数表数据存储空间存放执⾏指令所要⽤的数据I/O空间与存储器映象外围设备相连接,也可以作为附加的数据存储空间所⽤8、定时器由哪些寄存器组成?它们是如何⼯作的?定时器由定时器寄存器(TIM) 、定时器周期寄存器(PRD)和定时器控制器寄存器(TCR)TIM是⼀减1计数器 PRD中存放时间常数 TCR中包含有定时器的控制位和状态位9、C45x有哪⼏种串⾏⼝?标准同步串⼝有哪些部分组成?它们是如何⼯作的?标准同步串⾏⼝(SP)、缓冲同步串⾏⼝(BSP)、多路缓冲串⼝(McB-SP)时分多路串⾏⼝(TDM)。
DSP课后习题与思考题.doc
第一章习题与思考题—\填空:1.Instruction Cycle(指令周期)是执行一条指令所需的时间,指令周期的单位是(nS纳秒)。
所以DSP单周期指令的周期也是(时钟周期)。
2.选择DSP芯片所需考虑的因素有(DSP芯片性能)、(片内硬件资源)、(价您、(DSP芯片的开发工具)等。
3.TMS320LF2407A控制器是专门为基于也业的应用而设计的。
其运算速度最大可为(40MIPS),最小指令周期为(25nS)o4.TMS320LF2407ADSP控制器有强大的外设功能,包括(时间管理器EVA,EVB)、(控制器局域网CAN)、(串行接口SPI, SCI)、(模/数转换器ADC)、(看门狗定时器)。
5.TMS320LF2407ADSP 芯片有RAM:(PARAM)>(SARAM),是(⑹位。
二、思考题:1.根据TI公司对DSP命名的方法。
解释给出芯片型号的各个字段的意义。
TMS 320 LF 2407APGE2.为何将TMS320x2000系列的DSP也称作DSP数字信号控制器或DSP单片机。
3.与TMS320x240x系列器件相比,TMS320x240xA器件增加了那些新特点。
运行速度加快30MHz——40MHz片上Flash/Rom中的代码可以加密;PDPINTX、CAPn、XINTn、和ADCSOC管脚有输入保护电路;PDPINTx管脚的状态反映在COMCONx寄存器中。
第二章习题与思考题—、填空:1.TMS320LF240xA系列DSP控制器采用了改进的(哈佛结构)总线,具有分离的(程序总线)和(数据总线),使用㈣级流水线作业。
2.TMS320LF240xA系列DSP控制器具有两套相互独立的(程序操作总线)和(数据操作总线),共有6套16位的内部总线构成,分别为(程序读总线PRDB、程序地址总线PAB、数据读总线DRDB、数据写总线DWDB、数据读地址总线DRAB、数据写地址总线DWAB)。
DSP第一章课后答案
2
n=-
x ( n) x ( n)
1 = x ( n) 2 n=- = = = 1 2 1 2 1 2
X
(e j )e j n d
X (e j ) x(n)e j n d
n=-
X
(e j ) X (e j )d
e 2
n
P ( )
n s
X s ( j) xa (t ) p (t )
1 X a ( j ) P ( j ) 2
jn s 2
n 1 sin( s )e 2 n n n Sa ( s )e 2 T n y (n) 0, n 0 x(n)
1 jw 1 1 jw( n 1) e e 2 22 u (n 1) e jwn u (n) 1 jw 1 e 2
n
1 e jw( n 1) e jw 2 u (n 1) e jwnu (n) 1 jw 1 e 2 1 e 2 u (n 1) e jwn u (n) 1 e jw 2
z 1 2 ( z 1) ( z 1) 2
z 1
X ( z) z
d X1 ( z) X1 ( z) dz d 1 1 z [ ] 2 dz ( z 1) ( z 1) 2 z 1 ( z 1)3
(1) 设 x1 (n) (n 1)[u (n) u (n 3)], x2 (n) u (n) u (n 4) 则有
H (e j ) H ( z ) H ( z 1 )
DSP复习思考题
• 1、TMS320C54x芯片采用了什么结构? • 2、TMS320C54x芯片在提高芯片运算速度 方面采用了那些措施? • 3、采用流水线操作的特点是什么? • 4、 TMS320C54x芯片的总线有那些,它 们各自的作用和区别是什么? • 5、列举DSP芯片的特点。
• 6、 TMS320C54x芯片的CPU主要包括那些部 分?它们的功能是什么? • 7、累加器A和B的作用是什么?有何区别? • 8、ST0、ST1、PWST的作用是什么?它们如 何影响DSP工作过程? • 9、TMS320C54x的总存储空间是多少?可分 为那3类?它们的大小是多少? • 10、三种存储器空间各自的作用是什么? • 11、 TMS320C54x有哪几个串行口? • 12、简单论述中断处理过程?
• 20、循环寻址中,长度为R的循环缓冲器必须 从一个N位地址的边界开始,即循环缓冲器基 地址的最低N位必须为0。这是为什么?N值如 何确定? • 21、地址以位倒序方式产生,是何意义? • 22、指令AR2=#023AH *AR2+=#999Ah 执行后,AR2中值为多少?999Ah放在何处? *+AR2=#999Bh 执行后,AR2中值为多少?999Bh放在何处?
27. 常用汇编命令有哪些,它们的作用是什 么?
28. 画出汇编程序的编辑、汇编和链接过程 图,并说明各部分的作用是什么? 29. 汇编器和链接器的区别是什么?
30. 段程序计数器( SPC )是怎样工作的? 试述已初始化段和未初始化段的的区别?
31. 编制一个有 3 个目标文件组成的 .cmd 文件,并对存储器空间进行分配。 32. MEMORY 命令和 SECTIONS 命令的作用 是什么?如何使用?
• • • • • •
DSP思考题
思考题1.DSP有哪些特点?哈佛总线结构、流水线结构、硬件乘加单元、优化的指令集。
2.哈佛总线结构与冯·诺依曼总线结构的区别?哈佛:程序存储区与数据存储区分开、程序总线与数据总线分开。
优点:取指和读写数据可同时进行,加速指令执行速度。
3.数字信号处理系统的基本组成包含哪几个部分?模拟信号采集、数字信号处理、模拟信号输出(画出基本组成框图)。
4.DSP的分类?定点型与浮点型DSP各有什么特点?按数据格式划分:定点、浮点按用途划分:通用、专用定点DSP:定点运算速度快,定点数动态范围小,定点运算亦发生溢出(需要软件确保不发生溢出),浮点运算时间长,价格相对便宜;浮点DSP:浮点运算速度快,浮点数动态范围大,浮点运算一般不会发生溢出,价格相对昂贵。
5.TI C2000 DSP的应用范围?新能源、电机控制、数字电源、工业驱动、智能电网、传感检测等。
6.F2812 CPU的字长是多少?定点/浮点型?主频能达到多高?32位、定点型、150MHz7.简述F2812 CPU的哈佛总线结构。
程序地址总线(22bit)、程序读数据总线(32bit)、数据读地址总线(32位)、数据读数据总线(32bit)、数据/程序写数据总线(32bit)、数据写地址总线(32位)。
8.F2812 CPU的流水线有多少级?每级流水线包含哪些阶段?各阶段的作用是什么?8级,取指1、取指2、译码1、译码2、读1、读2、执行、写(各阶段作用参考PPT)。
9.F2812内部存储空间的Flash和SARAM有多大?Flash划分为多个扇区的优点是什么?128KW、18KW。
可对各个扇区进行独立擦写、减少对未使用扇区的不必要的擦写,可延长相应扇区的寿命。
10.F2812的外部总线的地址总线与数据总线分别是多少位?地址:19位。
数据:16位。
11.F2812包含哪些外设模块?Watchdog、CPU Timer、GPIO、PIE、EV、ADC、SPI、SCI、eCAN、McBSP 12.F2812的片上时钟种类及其作用?XCLKIN/OSCCLK、CLKIN、SYSCLKOUT、LSPCLK/HSPCLK(各自用于哪些模块请参考PPT)。
DSP第五章课后答案
(b)用脉冲响应不变法, 所以
H ( z)
1 e ( a jb )Ts z 1 1 e ( a jb )Ts z 1 1 cos(bTs )e aTs z 1 1 2 cos(bTs )e aTs z 1 e 2 aTs z 2
1 2
butterworth 低通滤波器阶次 N:
lg 100.301 1 / 101.5 1 1.941 N 2 lg 2 / 4.828
所以选 N=2 滤波器的截止频率 c
2.000
10
0.301
1
1/ 4
2
再查表可求得模拟滤波器的系统函数为
所以有
对 S a ( s ) 进行部分分式展开,得
Sa ( s)
由
1 a a jb a jb 2 2 2 2 2 s a b 2(a b )( s a jb) 2(a b 2 )( s a jb)
1 1 得 Ts 1 1 e z s 1 a a jb 1 a jb 1 S ( z) ( a jb )Ts 1 ( a jb )Ts 1 1 2 2 2 2 2 2 1 z a b 2(a b ) 1 e z 2(a b ) 1 e z
Ap
H z
i 1
N
1 e siT z 1
5.6
试用双线性变换法(T=1)设计一低通数字滤波器,并满足技术指标如下:
(1)通带和阻带都是频率的单调下降函数,而且没有起伏 (2)频率在 0.5 处的衰减为-3.01db (3)频率在 0.75 处的衰减至少为 15db。 解: 根据题意,显然要先设计一个原型 butterworth 低通滤波器。 (1) 利用 T=1 对技术要求频率先进行反畸变: 因为 wp 0.5 , ws 0.75 所以 p
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相位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章习题与思考题一、填空:1.Instruction Cycle(指令周期)是执行一条指令所需的时间,指令周期的单位是(nS纳秒)。
所以DSP单周期指令的周期也是(时钟周期)。
2.选择DSP芯片所需考虑的因素有(DSP芯片性能)、(片内硬件资源)、(价格)、(DSP芯片的开发工具)等。
3.TMS320LF2407A控制器是专门为基于(控制)的应用而设计的。
其运算速度最大可为(40MIPS),最小指令周期为(25nS)。
4.TMS320LF2407ADSP控制器有强大的外设功能,包括(时间管理器EVA,EVB)、(控制器局域网CAN)、(串行接口SPI,SCI)、(模/数转换器ADC)、(看门狗定时器)。
5.TMS320LF2407ADSP芯片有RAM:(DARAM)、(SARAM),是(16)位。
二、思考题:1. 根据TI公司对DSP命名的方法。
解释给出芯片型号的各个字段的意义。
TMS 320 LF 2407APGE2. 为何将TMS320x2000系列的DSP也称作DSP数字信号控制器或DSP单片机。
3. 与TMS320x240x系列器件相比,TMS320x240xA器件增加了那些新特点。
运行速度加快30MHz——40MHz片上Flash/Rom中的代码可以加密;PDPINTX、CAPn、XINTn、和ADCSOC管脚有输入保护电路;PDPINTx管脚的状态反映在COMCONx寄存器中。
第二章习题与思考题一、填空:1.TMS320LF240xA系列DSP控制器采用了改进的(哈佛结构)总线,具有分离的(程序总线)和(数据总线),使用(四)级流水线作业。
2.TMS320LF240xA系列DSP控制器具有两套相互独立的(程序操作总线)和(数据操作总线),共有6套16位的内部总线构成,分别为(程序读总线PRDB、程序地址总线PAB、数据读总线DRDB、数据写总线DWDB、数据读地址总线DRAB、数据写地址总线DWAB)。
3.指令流水线由发生指令执行周期内的一系列总线操作序列组成,其特点是将指令的执行过程分为4个阶段,即(取指令阶段)、(指令译码阶段)、(取操作数阶段)、(指令执行阶段)。
4.中央算术逻辑部分主要包括:(中央算术逻辑单元CALU)、(累加器ACC)、(输出定标移位器)。
5.累加器的操作与5个位于状态寄存器ST0,ST1的位有关,分别为(进位位C)、(溢出方式位OVM)、(溢出标志位OV)、(测试/控制标志位TC)和(符号扩展方式位SXM)。
6.乘法器单元包括(16位×16位硬件乘法器)、(临时寄存器TREG)、(乘积寄存器PREG)和(乘积定标移位器)。
7.外围设备通过(外部总线PBUS接口)连接到内部存储器接口。
8.TMS320LF240xA系列DSP控制器的CPU中包括一个ARAU(辅助寄存器单元)。
ARAU主要为CPU提供(间接寻址能力),8个16位的辅助寄存器(AR0~AR7)可以访问(64K数据存储器)的任一单元。
9.任何无效的地址将会导致(非屏蔽中断NMI)事件的发生。
10.中断按触发形式可分为两类,即(软件中断)和(硬件中断)。
(软件中断)由(INTR)、(NMI)或(TRAP)指令请求;(硬件中断)由(内部中断)和(外部中断)组成,(内部中断)由(片内外设信号)触发;(外部中断)由(外部中断引脚上的信号)触发。
11.从CPU对中断进行管理的角度出发,中断可分为(可屏蔽中断)和(不可屏蔽中断)。
第三章习题与思考题一、填空:1.TMS320LF2407ADSP控制器的存储器包括(DARAM、SARAM)和(闪速存储器Flash)。
2.TMS320LF2407ADSP控制器具有16位地址总线,可以独立访问如下三种空间(64千字)的程序空间,(64千字)的数据空间,(64千字)的I/O空间。
3.TMS320LF2407A DSP控制器的存储器DARAM有(544)字,分为三块,即(B0、B1、B2),但仅有(B0)块可根据的CNF位设置的不同,即可被映射到程序存储空间,也可被映射到数据存储空间。
4.TMS320LF2407A DSP控制器的SARAM即可用作(程序存储器)又可被用作(数据存储器)。
5.含有片内闪速存储器的器件中Flash是被映射到(程序存储空间)。
对于2407A来说,( )引脚的状态决定Flash是片内存储器被访问还是片外存储器被访问。
6.程序存储器用于存放(程序代码)、(数据)、(表信息和常量)等。
7.TMS320LF2407A DSP控制器的程序存储器范围最大为(64K字),包括(片内DARAM)的(B0)块,(SARAM)和(Flash)。
8.TMS320LF2407A DSP控制器的数据存储器范围最大为(64K字),其中(32K字0000h~7FFFh)是内部存储器,包括(SARAM),(DARAM)以及(存储器映射的外设专用寄存器)。
另外的(32K字)的单元作为外部存储器的一部分。
9.对数据存储器的访问有两种方式(直接寻址)和(间接寻址)。
10.当采用直接寻址方式时,将整个64千字的数据存储器分为(512)个数据页,标记为(0~511),每页由(128)个字组成。
11.对所有的外部空间进行写操作时,至少需要(两)个时钟周期。
12.TMS320LF2407A DSP控制器是具有高速运行的DSP芯片,当用户想要使它与运行速度较慢的外部存储器,I/O等接口时,必须插入(等待时间),以便延长CPU读/写这些外部设备的时间,从而解决速度匹配的问题。
第四章习题与程序题一、填空:1.寻址方式是指寻找指令中(操作数地址)的方式。
TMS320LF2000汇编指令采用3种存储器寻址方式:(立即寻址方式)、(直接寻址方式)、(间接寻址方式)。
2.立即寻址方式分两种类型:(短立即寻址方式)和(长立即寻址方式)。
3.直接寻址方式的寻址对象是64K字的数据存储器,具体操作是将64K字的数据存储器分为(512)个数据页,每个数据页中包括(128字)单元。
4.间接寻址方式的寻址对象是64K字的数据存储器。
它是利用CPU内部8个16位的(辅助寄存器)(AR0~AR7)中任意一个辅助寄存器Rn的内容作为一个16位地址,来访问64K数据存储器中的任意单元。
5.汇编语言程序的语句除汇编指令以外,还可以由(伪指令)和(宏指令)组成。
6.一条源语句包含有4个有序的域,依次为:(标号域),(助记符域),(操作数域)和(注释域)。
7.一个完整的汇编文件应包含:(汇编源程序文件)、(头文件)、(命令文件)。
二、完成下列指令及注释:1. ⑴LDP#6 ;设置数据页为6(0300h~037Fh)ADD 5h,2 ;将0305h单元的内容左移2位;累加器,结果存入累加器dma:305h dma:305hACC⑵ADD *+,AR0 ;当前辅助寄存器AR4所指定的;器单元的内容加至累加器;当前辅助寄存器的内容加1;AR0设定为下一个辅助寄存器ARP ARPAR4 AR4dma:302h dma:302hACCC C2. 设OVM=0,ADDC *+,AR3 ;累加器结果正常;当前辅助寄存器AR0指定的数据存储单元15h;的内容与ACC和C的内容相加,结果存入CC;AR0的内容加1,指定AR3为下次辅助寄存器指令执行前指令执行后ARP ARPAR0 AR0dma:315h dma:315hACCC COV OV3. AND *-;当前辅助寄存器AR2指定的数;的内容与ACC的低位字逻辑“;AR1的内容减1指令执行前指令执行后ARP ARPAR1 AR1dma:315h dma:315hACCC C4. CALL 300h,*-,AR1 ;PC+2→TOS.程序存储器地址;入程序计数器(PC),并从该地;当前辅助寄存器的内容减1.;一个辅助寄存器指令执行前指令执行后5. CMPR 1 ;(当前AR)<(AR0)?,1表示6. LDP#0 ;(DP=0)LACL 60h ;60h单元的内;累加器的高16位填0dma:60h dma:60hACC ACCC C7. LAR AR2,*+ ;将当前辅助寄存器所指的数据存;的内容装入AR2中.当前辅助寄存;容增18. LST #1,0h ;(DP=4),ARB被装入新的A9.⑴NEG ;(OVM=1)OVM=1)累加器求负ACC ACCOV OV⑵NEG ;(OVM=0)指令执行前指令执行后ACC ACCOV OV10. POP;PC增1.(TOS)→ACC(15:0);堆栈弹出一级指令执行前指令执行后ACCC C堆栈11. PUSH ;PC增1.将所有堆栈单元向下;推一级.ACC(15:0)→TOS指令执行前指令执行后ACC堆栈堆栈12.LDP #6SACL 29h,2 ;PC增1.(ACC)左移2位送入数据;存储单元329h处指令执行前指令执行后ACC ACCC C329h 329h13. SAR AR1,*- ;将AR1的内容存入当前辅;定的存储单元205h14. SBRK #8Eh ;当前辅助寄存器的值减去靠右对齐;正整数(无符号算术运算)指令执行前指令执行后ARPAR415. SPLK #ABCDh,*+,AR1 ;将16位立即数ABCDh写入当前;所指定的数据存储单元320h.;当前辅助寄存器的内容增1;AR1被指定为下一个辅助寄存器16. SUB *-,1;ACC的内容减去当前辅助寄存器A;指定的数据存储单元02FEh的内容;1位后的值(移位时高位填零),;结果存入ACC 。
AR2的内容减1;AR5指定为下次辅助寄存器指令执行前指令执行后ARP ARPAR2 AR2dma:2FEh dma:2FEhACCC C三、按要求完成下列程序片断:程序1:系统初始化程序片断(范例)程序2:逻辑运算:(61h)AND(62h)OR(63h),结果存于60h程序3:测试TC转移程序4:将60h与61h处的内容互换程序5:将60h,61h处的内容按大小顺序放入62h,63h程序6:将数据存储器300h-309h的内容左移4位程序7:将300h-309h单元的内容移向下一个单元程序8:从300h-309h中依次判断其中存放的是否为小写字母若是,转换为大写字母若不是,不转换结果依次存入30A-313h程序9:1加到100,结果存入60h处程序10:乘法:(60h)*(61h),结果高位存62h,低位存63h程序11:从程序存储空间的biao中读出数据,依次存入数据存储空间以60h开始的单元第五章习题与思考题一、填空:1、汇编语言程序设计是应用软件设计的基础,其主要任务是使用汇编指令和伪指令编写源程序完成指定的功能。