版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论思考题解答PAGE第31页共31页第一章 绪论思考题解答1、思考并讨论DigitalSignalProcessing和DigitalSignalProcessor之间的联系和区别。答:DigitalSignalProcessing指数字信号处理技术,它是理论和计算方法上的技术;DigitalSignalProcessor指数字信号处理器,它是实现数字信号处理技术的通用或专用可编程微处理器芯片。两者互为基础、不可分割。一方面,数字信号处理技术为充分利用数字信号处理器奠定理论和技术基础;另一方面,数字信号处理器为实现数字信号处理技术提供物理支撑和实现平台。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芯片。4、什么是定点DSP芯片,什么是浮点DSP芯片?答:数据以定点格式工作的DSP芯片称为定点DSP芯片;数据以浮点格式工作的DSP芯片称为浮点DSP芯片。5、什么是静态DSP芯片,什么是一致性DSP芯片?答:如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码及管脚结构相互兼容,则这类DSP芯片被称之为一致性的DSP芯片。6、DSP芯片的结构特点是什么?答:1、采用哈佛结构2、采用多总线结构3、采用流水线(pipeline)技术4、配有专用的硬件乘法-累加器5、具有特殊的指令6、快速的指令周期7、硬件配置强8、省电管理和低功耗9、支持多处理器结构7、冯·诺伊曼结构和哈佛结构的主要区别是什么?与前者相比,哈佛结构有何优势?答:1)主要区别:冯·诺伊曼结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线。哈佛结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线。2)哈佛结构优势哈佛结构可独立编址和访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,极大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。8、以四级流水线为例,介绍DSP所采用的流水线技术。答:计算单元在执行一条多周期指令时,总要经过取指、译码、取数、执行、写结果等步骤,需要若干指令周期才能完成。流水线技术是将各指令的各个步骤重叠起来执行,而不是一条指令完成后,才开始执行下一条指令。即在每个指令周期内,几个不同的指令均处于激活状态,每个指令处于不同的阶段。如下图所示,在第N个指令取指令时,前面一个即第N-1个指令正在译码,而第N-2个指令正在取操作数,第N-3个指令则正在执行指令。使用流水线技术后,尽管每一条指令的执行仍然要经过这些步骤,需要同样的指令周期数,但将一个指令段综合起来看,其中每一条指令的执行都是在一个指令周期内完成的。9、简述典型DSP系统的构成。答:一个典型的DSP系统应包括抗混叠滤波(带限滤波)、模数转换(ADC)、数字信号处理器芯片(DSP)、数模转换(DAC)和低通滤波等,其组成框图如下图所示。10、数字信号处理的实现方法有哪几种?答:1)在通用的微型计算机(PC机)上用软件(如VB、VC语言)实现。2)在通用的计算机系统中加上专用的加速处理机实现。3)用单片机(如MCS-51、96系列等)实现。4)用FPGA等产品实现数字信号处理算法。5)用通用的可编程DSP芯片实现。11、与模拟系统相比,数字系统有哪些优点?答:(1)接口方便(2)编程灵活方便(3)运行速度快(4)可重复性好(5)精度高(6)稳定性好(7)大规模集成(8)可获得高性能指标12、数字信号处理系统的局限性是什么?答:(1)自然界的信号绝大多数是模拟信号。(2)模拟信号处理系统从根本上说是实时的。(3)射频信号必须用模拟信号实现。13、简述DSP系统的设计流程。答:1)需求分析2)确定性能指标3)算法模拟4)选择DSP芯片5)软、硬件设计6)软硬件调试7)系统集成8)系统调试与性能测试14、设计DSP系统时需要关注的性能指标有哪些?答:根据设计目标,要明确DSP应用系统的技术性能指标,包括:1)系统的采样频率。系统的采样频率应由信号的频率决定。2)实时性。由采样频率完成最复杂的算法所需的最大时间和系统对实时性的要求判断能否完成工作。3)算法精度。由系统要求的精度决定采用16位还是32位字长,选择定点运算还是浮点运算。4)存储空间。由数据量及程序的大小决定片上RAM的大小,以及是否需要外扩及外扩多大容量的存储空间。5)I/O口。根据系统计算对输入输出口的具体要求。6)成本要求。选择满足性价比要求的芯片和设计方案。15、简述选择DSP芯片需要考虑的因素。答:1)DSP芯片的运算速度2)DSP芯片的价格3)DSP芯片的硬件资源4)DSP芯片的运算精度5)DSP芯片的开发工具6)DSP芯片的功耗7)其它因素:封装形式、质量标准、供货情况、生命周期等。16、调试DSP系统,一般需要哪些软硬件工具?答:软件的调试一般借助DSP开发工具,如软件模拟器(Simulator)、硬件仿真器(Emulator)等,完成功能的测试与程序的修改。硬件调试一般采用硬件仿真器进行调试,在此平台上,可以借助示波器、逻辑分析仪等工具对系统的信号进行测量和分析。
第二章 DSP集成开发环境思考题解答1、简述CCS开发环境的基本功能。答:CCS的基本功能如下:1)集成可视化代码编辑界面,可以直接编写C语言源文件、汇编语言源文件、工程脚本文件(.cmd文件)等。2)集成代码生成工具,包括汇编器、优化C编译器、链接器等。3)基本调试工具,如装入执行代码(.out文件),查看寄存器、存储器、反汇编、变量窗口等,支持C代码级调试。4)支持多DSP调试。5)断点工具,包括硬件断点、数据空间读/写断点、条件断点(使用GEL编写表达式)等。6)探针工具(ProbePoints)用于算法仿真、数据监视等。7)分析工具(ProfilePoints),用于评估代码执行所需要的时钟周期数。8)数据的图型显示工具,可绘制时域/频域波形、眼图、星座图、图像等,并可自动刷新(用Animate命令运行)。9)提供通用的扩展语音(GEL)工具以便使用者编写自己的控制面板/菜单、方便直观修改变量,配置参数等。10)支持RTDX(RealTimeDataExchange)技术,可以在不中断目标系统运行的情况下,实现DSP与其他应用程序对象链接与嵌入(OLE)的数据交换。11)开放式的插件技术,支持其他第三方的ActiveX插件,支持包括软件仿真在内的各种仿真器(只需安装相应的驱动程序)。12)提供DSP/BIOS工具,增强对代码的实时分析能力,如分析代码执行的效率、调度程序执行的优先级,方便管理或使用系统资源(代码/数据占用空间、中断服务程序的调用、定时器使用等),从而减少开发人员对硬件资源熟悉程度的依赖性。2、简述CCS开发环境的安装步骤。答:安装CCS的步骤:1)将CCS2安装光盘插入CD-ROM驱动器中,运行光盘根目录下的setup.exe,左键单击CodeComposerStudio图标,以开始CCS的安装。2)点击Next按钮。3)选择同意接受条款,然后单击Next按钮。4)继续单击Next按钮。5)首先选择SelectAll,然后单击Next按钮。6)选择NewInstsllation,可以通过单击DestinationFolder区域的Browse按钮选择安装路径,默认安装路径为c:\ti。7)单击Next按钮。8)提示安装路径,单击确定按钮。9)出现安装完成界面,单击Finish按钮,完成CCS2的安装。3、简述CCS开发环境的配置步骤。答:CCS配置步骤:1)CCS软件仿真器(Simulator)的配置过程。双击桌面上的“SetupCC2(’C5000)”图标,从AvailableBoards列表中选取用户平台类型,单击Import按钮,然后点击Close按钮即可。2)CCS硬件仿真器(Emulator)的配置过程。(1)双击桌面上的“SetupCCS2.0(C5000)”图标。根据DSP的型号选择相应的TI原始驱动程序,在此以C5416为例,选择C5416XDS510Emulator项。然后单击Import按钮,最后单击Close按钮,关闭对话框。(2)选中C5416XDS510Emulator,右键单击,在弹出的快捷菜单中选择Properties项。(3)在弹出的对话框中选择下拉菜单“Auto-Generateboarddatafilewithextraconfigurationfile”,指定变量配置文件的路径和名称。(4)在步骤3所示的对话框中单击Browse按钮,在弹出的对话框中,选中Drivers目录下的Seedusb2.cfg文件,同时打开。(5)选择文件后,返回BoardProperties对话框,单击NEXT按钮。(6)I/OPort的值设为0x240(即不改变初值即可),单击Next按钮。(7)根据CPU的个数,单击CPU选择“AddSingle”,多CPU选择“AddMultiple”添加相应的DSP。设置完成后,单击Next按钮。(8)在StartupGEL栏中选择与开发板上DSP芯片型号匹配的GEL文件(如选择c5416.gel),单击Finish按钮,完成配置。(9)最后,保存设置,退出SetupCCS2.0程序。4、简述CCS开发环境的菜单和工具栏的主要功能。答:1)主菜单(1)File(文件)File菜单提供了与文件相关的各种命令,包括:文件管理,载入执行程序、符号和数据、文件输入输出等。(2)Edit(编辑)Edit菜单提供了文字及变量的编辑命令。如剪切操作、字符串查找替换、内存变量和寄存器编辑。(3)View(查看)View菜单提供了工具条显示设置,内存、寄存器和图形显示等命令。(4)Project(工程)Project菜单负责工程管理及编译。(5)Dehug(调试)Debug菜单显示断点、探针设置,单步运行、复位等常用的调试命令。(6)GEL(扩展功能)工程窗口中的GEL文件已被添加到GEL菜单项中,按照GEL文件的配置,可在其二级下拉菜单中选择DSP复位或初始化以及调整变量等操作。(7)Option(选项)Option菜单提供了一些选项设置,通过该菜单可以设置字体、颜色、键盘属性、动画速度、内存映射等。(8)Profile(性能)Profile菜单提供了程序代码特定区域的执行统计,使用户可以方便地测试并优化程序性能。包括时钟和性能断点设置等。(9)Tools(工具)Tools菜单包括管脚连接、端口连接、命令窗口、连接配置等在内的常用工具。(10)DSP/BIOS(实时跟踪分析)利用DSP/BIOS可以测试目标板上的DSP程序,对程序进行实时的跟踪和分析。同时,也可为嵌入式应用提供基本的运用服务。(11)Windows(窗口)Windows菜单提供窗口管理命令,包括窗口排列、列表等。(12)Help(帮助)Help菜单提供各种帮助文件,包括用户手册、入门指南、资料查询等。2)工具栏功能(l)标准工具栏:创建新文件、打开已有的文件、保存当前窗口的文件、剪切文本,将标记文本放入剪切板、复制文本、粘贴文本,将剪切板中的文本粘贴在光标处、撤消最后的编辑活动、显示撤消操作的历史、恢复最后撤消的活动、显示恢复操作的历史、查找光标所在处下一个要搜索的字符串、查找光标所在处前一个要搜索的字符串、将加亮显示的文本段作为搜索文本、在多个文件或指定的文本中搜索、打印当前窗口源文件、为用户提供上下文相关的帮助。(2)编辑工具栏:设置括号标志、设置查找下一个开括号、查找匹配、查找下一个开括号、左移制表位、右移制表位、设置或取消标签、查找下一个标签、查找上一个标签、标签属性设置、外部编辑器使能。(3)工程工具栏:编译文件、增量构建工程、全部重新构建、停止构建、设置断点、删除所有断点、设置探测点、删除所有探测点。(4)调试工具栏:单步进入、单步执行、单步跳出、单步进入(汇编)、单步执行(汇编)、执行到光标处、将PC转到当前光标所在位置、运行程序、暂停程序、动画执行、寄存器观察、内存观察、堆栈观察、反汇编。5、CCS开发环境提供了哪些图形显示功能,如何使用?答:CCS可以提供4类图形显示,即时域/频域图、星座图、眼图和图像显示。在CCS菜单栏中选择View→Graph命令,弹出一个图形类型选择级联菜单,选择图像显示类型并输入相关信息即可使用。6、简述CCS数据文件的格式。答:CCS外部数据文件由文件头和数据两部分组成。CCS数据文件头的格式为:文件类型数据类型起始地址数据页号数据长度文件头各字段的含义分列如下。1)文件类型:固定为1651。2)数据类型:取值为1~4,分别对应为十六进制数、整数、长整数和浮点数。3)起始地址:存放数据内存区的首地址,十六进制数。4)数据页号:表明数据空间位置。0为程序存储空间,1为数据存储空间,2为I/O空间。5)数据长度:指明数据块长度,以字(16位)为单位,十六进制数。数据部分从第二行开始,并且每行有且仅有一个数据。7、简述数据载入/导出的方法。答:1)载入数据:(1)建立外部数据文件。新建一个记事本,并更改后缀为.dat,然后设定数据文件的名字,如example.dat。(2)打开源文件和反汇编文件,设置探测点。用来定义程序执行到何时进行外部文件的输入/输出数据;(3)在菜单“File”中,选择“FileI/O(文件输入/输出)”命令,显示“FileI/O(文件输入/输出)”对话框,在此对话框中,选择“FileInput(文件输入)”标签;(4)单击“AddFile”按钮,浏览工程文件夹,选择所需的数据文件,假定为C:\ti\myprojects\test\example.dat;(5)在“Page”下拉菜单中选择欲将外数据保存的存储空间类型;(6)在“Address”和“Length”栏中分别填写欲保存的单元首地址及长度;(7)单击“AddProbePoint”按钮,弹出Break/ProbePoints对话框,根据探针点的设置方法,将探针点与输入数据文件example.dat相关联;(8)探针点和外部输入数据关联后,弹出的输入数据控制对话框用进度条的形式显示外部数据载入的进度。在对话框的下方设置有开始、停止、后退到数据文件起点和快进等按钮,以方便控制文件载入数据的进程;(9)当程序运行到探针点位置时,CCS将暂停程序的运行,从外部数据文件载入数据至相关存储空间。数据传送完毕后,程序才继续运行。载入的数据可以通过查看内存的方法加以显示。2)导出数据。(1)打开源文件和反汇编文件,设置探测点。用来定义程序执行到何时进行外部文件的输入/输出数据;(2)在菜单“File”中,选择“FileI/O(文件输入/输出)”命令,显示“FileI/O(文件输入/输出)”对话框,在此对话框中,选择“FileOutput(文件输入)”标签;(3)单击“AddFile”按钮,在弹出的FileOutput对话框的文件名中输入outdata,选择“打开”按钮,返回到FileI/O对话框;(4)在“Page”下拉菜单中选择欲输出数据所在的存储空间类型;(5)在“Address”和“Length”栏中分别填写欲保存的单元首地址及长度;(6)单击“AddProbePoint”按钮,弹出Break/ProbePoints对话框,根据探针点的设置方法,将探针点与刚才选择加入的数据文件outdata.dat相关联;(7)当程序运行到探针点位置时,CCS将暂停程序的运行,将内存中的数据载入外部数据文件。数据传送完毕后,程序才继续运行。载入的数据可以通过记事本等工具加以查看。(8)弹出的输出数据控制对话框用进度条的形式显示外部数据载入的进度。在对话框的下方设置有开始、停止、后退到数据文件起点和快进等按钮,以方便控制文件载入数据的进程;8、若有10个十六进制数:0x0000、0x0001、0x0002、0x0003、0x0004、0x0005、0x0006、0x0007、0x0008、0x0009,来源于起始地址为0x0100的程序存储器单元,请写出相应的CCS数据文件。答: 165111000A0x00000x00010x00020x00030x00040x00050x00060x00070x00080x00099、简述开销估计的概念及使用方法。答:开销估计(Profiling)可以用来减少定位和消除性能瓶颈的时间。Proliler会分析程序的执行过程并显示耗费时间的代码段。对每个“.out”文件的Profile分析都需要启动一个新任务(Session)。选择Profiler→StartNewSession,在弹出的窗口中输入对话的名称后单击OK。窗口底部就会出现一个ProfileView窗口,以便进行开销估计。若只是需要统计一下程序运行的时间,可以点击Profile→Clock,然后,单击Enable,使其前面加上对钩。再单击ClockSetup,在出现的对话框中设置相关选项后,单击ViewClock,在主窗口下部就会出现Clock窗口。如果此时窗口中的值非零,则可以通过双击Clock窗口使Clock的值变为零,然后可以单步执行计时,也可以运行一段或全部程序计时,单位为CPU周期。10、简述通用扩展语言的功能。答:通用扩展语言(GeneralExtentionLanguage,GEL)属于解释性语言,是一种交互式的命令,它是解释执行的,即不能被编译成可执行文件。用户可以使用该语言创建GEL函数,而一系列GEL函数就构成了GEL文件,其后缀名为.gel。用户通过创建(或修改)GEL文件,并将其加载到CCS中,就可以实现定制用户工作区、程序调试的自动测试等功能,从而达到扩展CCS集成开发环境功能的目的。GEL语言的重要性在于针对计算机模拟环境的用户,使用GEL文件可以为其准备一个虚拟的DSP仿真环境,但也不是非用不可的。11、在CCS环境下运行例2-2提供的代码,验证其功能。答:参考配套光盘中“例2-2创建GEL菜单”的程序源代码,其结果可参考教材例2-2的结果。第三章 TMS320C54x软件开发过程思考题解答1、简述DSP程序调试的三种常用方法。答:1)利用软件仿真器进行调试。这种方式不需要目标硬件,只需在PC机上就可以运行。它可以仿真C54xDSP芯片包括中断以及输入/输出在内的各种功能,从而可以在非实时条件下完成对用户程序的调试。2)利用硬件仿真器进行调试。这种方式需要用户提供带C54xDSP芯片的系统级目标板。C54x的硬件扫描仿真器采用JTAGIEEE1149.1标准,仿真插头共有14个引脚,扫描仿真器通过仿真头将PC机中的用户程序代码下载到目标系统的存储器中,并在目标系统内实时运行,这给程序调试带来了很大的方便。3)利用评价模块进行调试C54x评价模块(EVM板)是一种带有DSP芯片的PC机ISA插卡。卡上还配置有一定数量的硬件资源,用户建立的程序,可以在EVM板上运行。通过运行,可以评价DSP芯片的性能,以确定DSP芯片是否满足应用要求。2、简述汇编伪指令的种类和作用。答:汇编伪指令是汇编语言程序的一个重要组成部分,一个汇编语言程序中,可能包含多种汇编伪指令,其作用是为程序提供数据,并且控制汇编的过程。根据其功能可分为如下8种伪指令:1)段定义伪指令;2)常数初始化伪指令;3)段程序计数器(SPC)定位伪指令;4)输出列表格式伪指令;5)引用其他文件的伪指令;6)条件汇编伪指令;7)汇编时符号定义伪指令;8)其他汇编伪指令。3、简述汇编宏指令的功能以及使用宏的过程。答:编译器支持宏语言,允许用户利用宏来创建自己的指令。宏语言的主要功能包括:1)定义自己的宏和重新定义已存在的宏;2)简化较长的或较复杂的汇编代码;3)访问归档器创建的宏库;4)处理一个宏中的字符串;5)控制宏扩展列表。使用一个宏分3个过程:定义宏、调用宏和扩展宏。4、试简述COFF的概念。答:汇编器和链接器建立的目标文件,是一个可以在TMS320C54x器件上执行的文件。这些目标文件的格式称之为公共目标文件格式,即COFF(CommonObjectFileFormat)格式。5、什么是段,段的作用是什么?答:所谓段,是指连续的占有存储空间的一个数据或代码块。汇编语言源程序按段组织,每行汇编语句都从属于一个段,并由段汇编伪指令表明该段的属性。一个目标文件中的每一个段都是分开的和各不相同的。段(Sections)是COFF格式目标文件中最重要的概念,也是目标文件中的最小单位。每个目标文件都分成若干个段。6、汇编程序中,系统默认段有哪些?各段的具体作用是什么?答:所有的COFF格式目标文件都至少包含以下3种形式的默认段:.text段通常包含可执行代码;.data段通常包含初始化数据;.bss段通常为未初始化变量保留存储空间。7、自定义段、子段的含义是什么,如何编写和定义?答:自定义段也叫做命名段,是由.sect和.usect命令建立,需要自己定义段名的段。它们除了被分开汇编外,其它方面和默认的.text、.data和.bss段在使用上相同。另外,不能用不同的伪指令处理名字相同的段。子段是大段中的小段。子段可以通过.sect和.usect伪指令产生。子段命名的句法为:基段名:子段名当汇编器在基段名后面发现冒号,则紧跟其后的段名就是子段名。子段的定位方法和段相同,既可以单独为其分配存储单元,也可以在相同的基段名下与其他段组合在一起。子段也有2种类型:用.sect命令建立的初始化段和用.usect命令建立的段是未初始化段。8、汇编器对段是如何处理的?答:汇编器的任务是在汇编过程中,根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。汇编器对段的处理功能主要是根据段名,确定汇编语言程序中的各部分属于哪个特定的段,最终形成几个独立的段。其功能包含两层含义:(1)相同段名放在连续空间;(2)不同段名各自独立。9、链接器对段是如何处理的?答:链接器在处理段的时候,有如下两个主要任务:1)把一个或多个COFF目标文件(.obj文件)中的各种段作为链接器的输入段,经链接后在一个可执行的COFF输出模块中建立各个输出段。2)在程序装入时对其重新定位,为各个输出段选定存储器地址。为完成如上任务,链接器提供了两条命令支持,即:1)MEMORY命令。此条命令用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度;2)SECTIONS命令。此命令告诉链接器如何将输入段组合成输出段,以及将输出段在存储器中的什么位置。10、链接命令文件主要内容是什么?答:链接器命令文件主要包含如下内容:(1)输入文件名,就是要链接的目标文件和文档库文件,或者是其它的命令文件。如果要调用另一个命令文件作为输入文件,此句一定要放在本命令文件的最后,因为链接器不能从新调用的命令文件返回。(2)链接器选项。这些选项既可以用在链接器命令行,也可以编在命令文件中。它们在命令文件中的使用方法与在命令行中相同。(3)MEMORY和SECTIONS都是链接器命令,用来指定目标存储器结构和地址分配。如果链接命令文件中没有MEMORY和SECTIONS命令(默认情况),则链接器就从地址0080h一个段接着一个段进行配置。11、根据如下如下链接命令文件,试回答:1)输出可执行文件的文件名是什么;2).text段分配到哪个存储空间,首地址是什么;3).data段和.text段的存放顺序如何;4)数据存储空间的0080H~00FFH单元存放的是哪个段的内容。-ovictory.outMEMORY{PAGE0:PRAM0:org=1000h,len=1000hPAGE1:SPRAM:org=0080h,len=80h}SECTIONS{.text:>PRAM0PAGE0.data:>PRAM0PAGE0.bss:>SPRAMPAGE1}答:1)输出可执行文件(.out文件)的文件名是victory.out;2).text段分配到程序存储空间,首地址是1000H;3)先存放.text段然后.data段紧接着.text段存放;4)数据存储空间的0080H~00FFH单元存放的是.bss段的内容。12、简述混合编程的三种主要方法。答:(l)独立编写C程序和汇编程序,分开编译或汇编形成各自的目标代码模块,然后用链接器将C模块和汇编模块链接起来(2)在C语言程序中使用汇编程序的变量和常数及函数(3)直接在C语言程序的相应位置嵌入汇编语句。第四章 TMS320C54x的汇编指令系统思考题解答1、简述汇编语句有哪两种格式。答:汇编语句有两种格式,一种是常见的助记符格式,另一种是代数指令格式。1)助记符格式[标号] [:] 操作码助记符 [操作数列表] [;注释]2)代数指令格式[标号] [:] 代数指令 [;注释]2、助记符格式的汇编语句有哪几部分构成?答:由标号域、操作码助记符域、操作数域和注释域组成。3、汇编语句对标号的使用有何要求?答:C54x汇编语言对于标号的使用规则如下。1)使用标号时,必须从源语句的第一列开始,即标号前不能有空格、Tab等字符。2)一个标号最多允许有32个字符,可使用的字符有:A~Z、a~z、0~9、_和$,但第一个字符不能是数字。3)标号对大小写敏感,即:引用标号时,标号的大小写必须一致。如果在启动连接器时,用到了-c选项,则标号对大小写不敏感。4)标号后可跟一个冒号“:”,也可不跟。5)如果不用标号,则第一列上必须是空格“”、分号“;”或星号“*”号。6)标号值和它所指向语句所在的地址单元的值是相同的,标号的值就是段程序计数器SPC的值。4、如何确定操作数是地址还是立即数或间接地址?答:汇编器允许在操作数前使用前缀来指定操作数(常数、符号或表达式)是地址还是立即数或间接地址。1)前缀#。操作数作为立即数。即使操作数是寄存器或地址,也当作立即数处理。此时,汇编器将地址处理为一个值,而不当做地址处理。2)前缀*。操作数作为间接地址。汇编器将此操作数作为间接地址对待,它将操作数中的内容作为地址;3)前缀@。表示其后的操作数是采用直接寻址或绝对地址寻址的地址。在代数指令中不能省略,但是在助记符指令中可以省略。5、上机练习本章所有例题。答:略。第五章 TMS320C54x寻址方式思考题解答1、简述单条DSP指令的执行过程。答:单条指令的执行过程如下所述:1)指令周期开始。DSP首先从程序计数器中获取要执行指令的存储地址。然后,将该地址输出到程序地址总线。最后,获取相应指令。2)获取操作数。DSP根据指令要求从相应位置(寄存器、存储器等)获取操作数。3)进行运算并保存。根据指令功能,将操作数送到相应的运算单元进行相关运算。然后,将运算结果送入指定的位置(寄存器、存储器等)。4)调整程序计数器的值。根据本条指令是否需要程序计数器(PC)跳转,更新程序计数器的值,为程序执行下一条指令做好准备。2、TMS320C5000提供了哪几种数据寻址模式?答:C5000共有7种有效的数据寻址方式。1)立即寻址:指令中嵌有固定的数,主要用于初始化。2)绝对寻址:利用16位地址寻址存储单元。3)累加器寻址:把累加器的内容作为地址。4)直接寻址:利用数据存储器页指针和堆栈指针寻址。5)间接寻址:利用辅助寄存器作为地址指针。6)存储器映像寄存器寻址:修改映射像存器中的值,不影响当前数据存储器页指针和堆栈指针的值。7)堆栈寻址:用来管理系统堆栈中的操作,即把数据压入和弹出系统堆栈。由标号域、操作码助记符域、操作数域和注释域组成。3、什么是立即寻址,什么是绝对寻址,二者的区别是什么?答:所谓立即寻址,就是指令中包含了立即操作数,操作数紧随操作码存放在程序存储器中的寻址方式。如果指令中包含的是寻找操作数的16位单元地址,那么称这种寻址方式为绝对寻址。二者区别是:立即寻址的操作数随操作码存放在程序存储器中,故在执行时没有寻找数据地址的过程,因此运行速度快,而绝对寻址需要根据操作数地址来寻址操作数,故运行速度慢;立即寻址的操作数需要占用程序存储空间,而绝对寻址则不需要;立即寻址的操作数不能改变,常用于表示常数和初始化寄存器,而绝对寻址的操作数可以任意改变,常用于非实时的场合。4、什么是累加器寻址?可以用累加器B进行累加器寻址吗?累加器寻址的作用是什么?答:所谓累加器寻址,就是将累加器的内容作为地址去访问程序存储单元。也就是将累加器中的内容作为地址,用来对存放数据的程序存储器寻址。采用累加器寻址方式时,只能使用累加器A而不能使用累加器B。累加器寻址可以用来对存放数据的程序存储器寻址。常用于完成程序存储空间与数据存储空间之间的数据传输。5、什么是直接寻址,直接寻址如何形成16位数据单元地址?答:直接寻址就是利用数据页指针DP或堆栈指针SP寻址。CPL=0时,处理器将DP的9位基地址与指令中的7位偏移地址连接起来,形成16位的数据存储空间存储单元的地址。CPL=1时,选择SP的16位基地址加上指令中的7位偏移地址,形成16位的数据存储空间存储单元的地址。6、什么是间接寻址,间接寻址有哪些句法?答:间接寻址就是利用辅助寄存器(AR0~AR7)作为地址指针进行寻址。间接寻址可分为单操作数间接寻址和双操作数间接寻址,具体句法参见表5-2和表5-4。表5-2单操作数间接寻址句法功能说明*ARxaddr=ARxARx包含数据存储区地址*ARx-addr=ARxARx=ARx-1访问完成后,ARx中的地址递减‡*ARx+addr=ARxARx=ARx+1访问完成后,ARx中的地址递增‡*+ARxaddr=ARx+1ARx=ARx+1访问之前,ARx中的地址递增‡§#*ARx-0Baddr=ARxARx=B(ARx-AR0)访问完成后,ARx减去AR0的值并进行位反转*AR-0addr=ARxARx=ARx-AR0访问完成后,ARx减去AR0的值*ARx+0addr=ARxARx=ARx+AR0访问完成后,ARx加上AR0的值*ARx+0Baddr=ARxARx=B(ARx+AR0)访问完成后,ARx加上AR0的值并进行位反转*ARx-%addr=ARxARx=circ(ARx-1)访问完成后,ARx中的地址按循环寻址方式递减‡*ARx-0%addr=ARxARx=circ(ARx-AR0)访问完成后,ARx减去AR0的值并进行循环寻址*ARx+%addr=ARxARx=circ(ARx+1)访问完成后,ARx中的地址按循环寻址方式递增‡*ARx+0%addr=ARxARx=circ(ARx+AR0)访问完成后,ARx加上AR0的值并进行循环寻址*ARx(lk)addr=ARx+lkARx=ARxARx与16位长偏移lk之和作为数据存储区地址,ARx不变*+ARx(lk)addr=ARx+lkARx=ARx+lk访问前,有符号的16位长偏移lk加到ARx中,然后新的ARx作为数据存储区地址§*+ARx(lk)%addr=circ(ARx+lk)ARx=circ(ARx+lk)访问前,有符号的16位长偏移lk加到ARx中,再循环寻址后存入ARx,然后新的ARx作为数据存储区地址§*(lk)addr=lk16位无符号偏移量lk作为数据存储区的绝对地址§表5-4双操作数寻址Xmod或Ymod操作码功能说明00*ARx地址=ARxARx中的内容是数据存储器地址01*ARx-地址=ARxARx=ARx-1寻址后,ARx的地址减110*ARx+地址=ARxARx=ARx+1寻址后,ARx的地址加111*ARx+0%地址=ARxARx=circ(ARx+AR0)寻址后,AR0以循环寻址方式加到ARx中去7、简述循环寻址的主要参数和算法。答:主要参数包括:长度寄存器(BK)、有效基地址(EFB)和尾地址(EOB)。1)长度寄存器(BK)定义了循环缓冲区的大小R。要求循环缓冲区地址始于最低N位为零的地址,且R值满足,R值必须要放入BK。2)循环缓冲区的有效基地址(EFB)定义了缓冲区的起始地址,也就是辅助寄存器(ARx)低N位设为0后的值。3)循环缓冲区的尾地址(EOB)定义了缓冲区的底部地址,它通过用BK的低N位代替ARx的低N位得到。循环寻址的算法为:if0≤index+step<BK;index=index+step;elseifindex+step≥BK;index=index+step-BK;elseifindex+step<0;index=index+step+BK;注:循环缓冲区的偏移量index就是当前ARx的低N位数值,步长step就是一次加到辅助寄存器或从辅助寄存器中减去的值。8、简述位反转寻址的用法及作用。答:用法:AR0存放的整数值为FFT点数的一半,另一个辅助寄存器ARx指向存放数据的单元。位反转寻址将AR0加到辅助寄存器中,地址以位反转方式产生。也就是说,两者相加时,进位是从左向右反向传播的,而不是通常加法中的从右向左。位反转寻址主要用于FFT算法中,这种寻址方式可以显著提高程序的执行速度和存储区的利用效率。9、何为堆栈寻址,数据进出堆栈的顺序如何,堆栈寻址有何作用?答:所谓堆栈寻址,就是利用堆栈指针按照先进后出的原则来寻址。当进栈操作时,SP先减小,然后数据进入堆栈;当出栈操作时,数据先出栈,然后SP增加。所以,SP始终指向堆栈中所存放的最后一个数据(即栈顶数据)。发生中断或子程序调用时,堆栈用来自动地保存程序计数器(PC)中的数值,也可以用来保护现场或传送参数。也就是说当产生一个中断或者调用子程序时,返回地址会自动压入堆栈顶部。中断或子程序返回时,返回地址从堆栈中弹出,并赋值给PC。10、影响程序计数器PC和扩展程序计数器XPC地址加载的因素有哪些?答:加载地址到PC的几种途径如下表所示。操作加载到PC的地址复位PC=FF80H顺序执行指令PC=PC+1分支转移用紧跟在分支转移指令后面的16位立即数加载PC由累加器分支转移用累加器A或B的低16位立即数加载PC块重复循环假如ST1中的块重复有效位BRAF=1,当PC+1等于块重复结束地址(REA)+1时,将块重复起始地址(RSA)加载PC子程序调用将返回地址(PC+2)压入堆栈,并用紧跟在调用指令后面的16位立即数或标号加载PC。返回指令将返回地址从栈顶弹出至PC,回到原先的程序处继续执行。从累加器调用子程序将PC+1压入椎栈,用累加器A或B的低16位加载PC。返回指令将栈顶弹出至PC,回到原先的程序处继续执行。硬件中断或软件中断将PC压入堆栈,用适当的中断向量地址加载PC。中断返回时,将栈顶弹出至PC,继续执行被中断了的子程序。加载XPC的几种途径如下表所示。操作加载到XPC的地址复位XPC=0顺序执行指令XPC保持不变长转移长立即数的16-22位加载XPC由累加器长转移累加器的16-22位加载XPC子程序长调用XPC压入栈顶,调用指令中的立即数的16-22位加载XPC从累加器长调用子程序XPC压入栈顶,调用累加器的16-22位加载XPC长返回栈顶弹出并加载XPC11、C54x的中断分为哪几类?答:总体来说,C54x中断可以分成可屏蔽中断和非屏蔽中断两大类。第一类:可屏蔽中断。这些都是可以用软件来屏蔽或开放的中断。第二类:非屏蔽中断。这些中断是不能够屏蔽的。C54x对这一类中断总是响应的,并及时从主程序转移到中断服务程序。C54x的非屏蔽中断包括所有的软件中断以及两个外部硬件中断(复位)和(也可以用软件进行和中断)。12、C54x的可屏蔽中断如何实现中断屏蔽与解屏蔽?答:1)中断屏蔽:ST1寄存器中的INTM=l,所有可屏蔽中断被禁止。2)中断开放:(以下两个条件需要同时满足)(1)ST1寄存器中的INTM=0,所有可屏蔽中断开放;(2)当中断屏蔽寄存器(IMR)的任何一位为l就会开放相应的中断。13、C54x的中断向量地址如何形成?答:在C54x中,中断向量地址是由处理器工作方式寄存器PMST中的IPTR(中断向量指针,9位)和左移2位后的中断向量序号(中断向量序号为0~31,即5位,左移2位后编程7位)组成。14、简述CPU处理中断的流程。答:如果申请的是一个可屏蔽中断:1)IFR中相应位被置位。2)测试确认条件:INTM=0,IMR相应位为1,当前中断优先级最高。如果条件为真,CPU就确认中断,产生一个信号;否则,CPU忽略该中断,继续执行主程序。3)当中断被确认以后,它在IFR中相应的标志位被清零,并且INTM位被置l(以禁止其他的可屏蔽中断)。4)PC值存入堆栈。5)CPU跳转去执行中断服务程序(ISR)。6)ISR以返回指令结束,返回指令将返回地址弹出堆栈。7)CPU继续执行主程序。如果申请的是一个非屏蔽中断:1)CPU立即确认该中断,产生一个信号。2)如果中断是由RS、NMI或INTR指令申请的,那么INTM位设置为1,以禁止可屏蔽硬件中断。3)如果INTR指令已经申请了一个可屏蔽中断,那么相应的标志位清零。4)PC存入堆栈。5)CPU跳转去执行ISR。6)ISR以返回指令结束,返回指令将返回地址弹出堆栈。7)CPU继续执行主程序。15、编写中断向量表vector.asm,其中,复位中断的中断服务函数为_c_int00,外部中断2的中断服务函数为_wb2,HPI中断的中断服务函数为_hp。答: .sect".vector" .ref _c_int00 .ref _wb2 .ref _hp .mmregsIV_RESET: BD _c_int00 ;复位中断,跳转到程序的入口 NOP NOP IV_NMI: RETE ;NMI中断,开中断返回 NOP NOP NOPIV_SINT17: RETE ;软件中断#17,开中断返回 NOP NOP NOPIV_SINT18: RETE ;软件中断#18,开中断返回 NOP NOP NOPIV_SINT19: RETE ;软件中断#19,开中断返回 NOP NOP NOPIV_SINT20: RETE ;软件中断#20,开中断返回 NOP NOP NOPIV_SINT21: RETE ;软件中断#21,开中断返回 NOP NOP NOPIV_SINT22: RETE ;软件中断#22,开中断返回 NOP NOP NOPIV_SINT23: RETE ;软件中断#23,开中断返回 NOP NOP NOPIV_SINT24: RETE ;软件中断#24,开中断返回 NOP NOP NOPIV_SINT25: RETE ;软件中断#25,开中断返回 NOP NOP NOPIV_SINT26: RETE ;软件中断#26,开中断返回 NOP NOP NOPIV_SINT27: RETE ;软件中断#27,开中断返回 NOP NOP NOPIV_SINT28: RETE ;软件中断#28,开中断返回 NOP NOP NOPIV_SINT29: RETE ;软件中断#29,开中断返回 NOP NOP NOPIV_SINT30: RETE ;软件中断#30,开中断返回 NOP NOP NOPIV_INT0:RETE NOP NOP NOPIV_INT1: RETE NOP NOP NOPIV_INT2: BD_wb2 NOP NOP NOPIV_TINT:RETE NOP NOPIV_RINT0:RETE NOP NOP NOPIV_XINT0:RETE NOP NOP NOPIV_RINT2:RETE NOP NOP NOPIV_XINT2:RETE NOP NOP NOPIV_INT3: RETE NOP NOP NOPIV_HINT: BD_hp NOP NOP NOPIV_RINT1: RETE NOP NOP NOPIV_XINT1: RETE NOP NOP NOPIV_DMAC4: RETE NOP NOP NOPIV_DMAC5: RETE NOP NOP NOP .end第六章 TMS320C54x基本结构思考题解答1、简述TMS320C54x芯片的CPU组成。答:TMS320C54x芯片的CPU主要由以下7部分组成:1)一个40位的算术逻辑单元(ALU);2)一个乘法器/加法器单元(MAC);3)两个40位的累加器(A和B);4)一个桶形移位寄存器(BarrelShifter);5)一个比较、选择和存储单元(CompareSelectandStoreUnit,CSSU);6)一个指数编码器(EXPEncoder);7)一套CPU状态和控制寄存器。2、简述TMS320C54x芯片的内部总线结构及各总线的功能。答:TMS320C54x芯片采用改进的哈佛结构并具有八条16位的总线,其独立的程序总线(1条)和数据总线(3条)以及4条相应的地址总线允许同时读取指令和操作数,实现高度的并行操作。1)1条程序总线(PB):用于从程序存储区提取指令和常数,其中存放在程序存储区中的常数叫做立即操作数。2)3条数据总线(CB、DB和EB):连接各个组成部分,例如CPU、数据地址产生逻辑(DAGEN)、程序地址产生逻辑(PAGEN)、片上外设和数据存储器等。(1)CB和DB传送从数据存储器读出的操作数;(2)EB总线传送要写入到存储器中的数据或指令;3)4条地址总线(PAB、CAB、DAB和EAB):传送执行指令所用的地址。3、何为符号位扩展,符号位扩展有何作用,如需进行符号位扩展,应如何设置?答:所谓符号位扩展就是当一个字长小的数放到一个字长大的累加器中进行运算时,将数的符号位扩展到累加器左边的高位。进行符号位扩展可以避免有符号数因符号位的变化而发生数值由负数变为正数的重大错误。采用下面的指令就可以设置符号位是否扩展:SSBXSXM ;SXM=1,设置符号位扩展模式RSBXSXM ;SXM=0,设置符号位不扩展模式4、何为溢出?简述溢出保护的作用和设置方法。答:由于定点数的表示范围是一定的,因此在进行定点数的加法和减法运算时,其结果就有可能出现超过数值表示范围的情况,这种现象称为溢出。所谓上溢出,就是超过了ALU的上限,下溢出就是超出了ALU的下限。溢出保护的作用就是防止出现因数值计算结果超出定点数的表示范围而导致的灾难性后果。在溢出保护功能设置后,当发生溢出时,DSP芯片自动将结果饱和设置为最大正数或最小负数,从而达到溢出保护的作用。溢出保护设置方法:采用如下指令设置状态寄存器ST1中的OVM位,从而确定是否采取溢出保护:SSBXOVM;OVM=1,设置溢出保护模式RSBXOVM;OVM=0,设置溢出不保护模式5、简述累加器的作用、累加器与普通寄存器的区别以及累加器A和累加器B的区别。答:累加器用于存放算术逻辑单元(ALU)或其他运算逻辑单元的运算结果,同时作为一些运算逻辑单元的输入,以提供一个中继的功能。累加器与普通寄存器的区别:一般的寄存器位宽度通常与DSP的内部数据总线一样;而累加器位宽度一般远大于内部总线的位宽度。累加器A和累加器B的唯一区别在于累加器A的(31-16)位可以用作乘法器的一个输入。6、何为数的定标,有何作用?答:所谓数的定标就是程序员确定一个数的“小数点”处于整型数的哪一位,这就是数的定标。对定点DSP芯片而言,参与数值运算的数就是16位的整型数。但在许多情况下,数学运算过程中的数不一定都是整数。而通过设定“小数点”在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。7、如何进行数的转换?答:浮点数与定点数的转换关系可表示为:浮点数(x)转换为定点数(xq):xq=(int)x×2Q (6.4)定点数(xq)转换为浮点数(x):x=(float)xq×2-Q (6.5)为了最大限度地保持数的精度,在将浮点数转换为定点数时,可以采取“四舍五入”的方法,即在取整运算前,先加上0.5:浮点数(x)转换为定点数(xq):xq=(int)[x×2Q+0.5] (6.6)8、简述乘累加单元中乘法器的三种工作方式及FRCT位的作用。答:TMS320C54x系列DSP芯片中,乘法器依据不同情况作以下三种处理:1)如果是两个有符号数相乘,则16位的乘数与被乘数先进行符号扩展,在最高位前添加l个符号位(其值由最高位决定),扩展为17位有符号数后再相乘;2)如果是无符号数乘以无符号数,则在两个操作数的最高位前面添加“0”,扩展为17位的操作数再相乘;3)如果是有符号数与无符号数相乘,有符号数在最高位前添加1个符号位(其值由最高位决定),无符号数在最高位前面添加“0”,然后两个操作数相乘。由于两个16位的二进制补码相乘会产生两个符号位,为了提高计算精度,在状态寄存器ST1中设置小数模式位FRCT为1,乘法器结果就会自动左移1位而去掉1个多余的符号位,相应的定标值加1。9、何为舍入算法?简述舍入算法的作用。答:所谓舍入算法就是将目标累加器的值加上,然后将累加器的低16位清零。为了将32位的计算结果表示为16位,一种方法是直接将低16位截尾,保留高16位,作为计算结果。另一种方法就是在截尾之前进行舍入处理。方法就是在低位字的最高位加1(相当于加215=32768),然后将低16位去除,将高16位作为计算结果。显然,进行舍入运算后,能够最大程度地保持16位结果的精度。10、简述TMS320C54x芯片中的比较、选择和存储单元(CSSU)的作用和工作流程。答:比较、选择和存储单元(CSSU)是专门为Viterbi蝶形算法设计的、进行加法/比较/选择运算的硬件单元。其工作过程如下:①比较电路COMP将累加器A或B的高阶位与低阶位进行比较;②比较结果分别送入状态转移寄存器TRN和状态寄存器ST0的状态位TC中,记录比较结果以便程序调试;③比较结果输出至写选择电路,选择较大的数据;④将选择的数据通过总线EB存入指定的存储单元。11、简述指数编码器的作用及如何确定指数值。答:指数编码器也是CPU的一个专用硬件,用于实现定点数到浮点数的转换时,求累加器中数据的指数值。累加器中数据的指数值按如下方式求得:指数值=冗余符号位数-8。12、TMS320C54x的CPU状态和控制寄存器有哪几个,其主要功能是什么?答:TMS320C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为:状态寄存器0(ST0)、状态寄存器1(ST1)和工作方式状态寄存器(PMST)。ST0和ST1主要包含CPU各种工作条件和工作方式的状态,PMST包含存储器的设置状态和其他控制信息。1)状态寄存器0(ST0)主要反映处理器的寻址要求和计算机的运行状态;2)状态寄存器1(ST1)主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等;3)处理器工作方式寄存器(PMST)主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。13、DSP芯片的片上存储器有哪些类型?答:片内存储器由DSP芯片内部所提供,主要有ROM、RAM和Flash等类型。其中,RAM又可以分为单访问RAM(SARAM)和双访问RAM(DARAM)两种类型。14、简述TMS320C54x的存储器空间种类及其作用。答:TMS320C54x的总存储空间为192K字,分为三个可以选择配置的存储空间:64K字的程序空间、64K字的数据空间和64K字的I/O空间。程序存储器空间主要用于存储程序指令和执行程序时所用到的系数表。数据存储器空间主要用于存储执行指令所用到的数据。I/O存储器空间可与存储器映像外围设备接口相连接,也可以作为附加的数据空间使用。15、简述TMS320C54x芯片的两种工作模式。答:DSP芯片一般具有两种工作模式:微计算机模式和微处理器模式。工作模式是由PMST寄存器中的MP/MC位(微计算机/微处理器工作方式位)决定。若MP/MC=0,则DSP芯片工作于微计算机模式;若MP/MC=1,则DSP芯片工作于微处理器模式。可通过设置MP/MC引脚的逻辑电平来设置工作模式,也可通过软件修改PMST的MP/MC位来改变。1)微计算机模式:片内ROM映射到程序空间。复位后程序跳转至固定起始地址〔如TMS320VC5416的FF80H),再根据存放在片内的中断矢量表跳转至片内存放引导程序的地址,开始运行片内引导程序。2)微处理器模式:片内ROM被禁止。复位后程序跳至固定起始地址,再根据存放在片外存储器的中断矢量表跳转至相应地址开始运行用户程序。16、简述Bootloader的作用。答:引导装载程序-Bootloader:Bootloader是一段芯片出厂时固化在ROM中的程序代码,其主要功能是将用户的程序代码从外部装入到片内RAM或扩展的RAM中,以便高速运行。BOOTLOADER一般支持多种程序传递方式,如并行EPROM、串行EPROM、串口、HPI等等,不同型号的DSP,Bootloader不同。第七章 TMS320C54x片内外设思考题解答1、TMS320C54x提供哪几个专用的通用I/O口?简述其功能。答:C54xDSP提供了两个由软件控制的专用通用I/O引脚:分支转移控制输入引脚()和外部标志输出引脚(XF)。分支转移控制输入引脚()可以用于监控外部设备的状态。外部标志输出引脚(XF)可以用来为外部设备提供输出信号。2、简述TMS320C54x时钟发生器外部参考时钟的两种提供方式。答:TMS320C54x的外部参考时钟输入可以用如下两种方式提供:1)与内部振荡器共同构成时钟振荡电路将晶体跨接于TMS320C54x的两个时钟输入引脚X1与X2/CLKIN之间,构成内部振荡器的反馈电路。2)直接利用外部时钟将一个外部时钟信号直接连接到X2/CLKIN引脚,X1引脚悬空,此时内部振荡器不起作用。3、简述TMS320C54x芯片时钟发生器锁相环的配置方法。答:锁相环PLL的配置分为硬件和软件两种,下面分别加以阐述。1)硬件配置PLL所谓硬件配置PLL,就是通过设定C54x的3个引脚CLKMD1、CLKMD2和CLKM3的状态而选定时钟模式的,具体配置方法如表7-2所示。表7-2硬件时钟配置方法引脚状态时钟模式CLKMD1CLKMD2CLKMD3选择方案1选择方案2000外部时钟源,PLL×3外部时钟源,PLL×5110外部时钟源,PLL×2外部时钟源,PLL×4100内部振荡器,PLL×3内部振荡器,PLL×5010外部时钟源,PLL×1.5外部时钟源,PLL×4.5001外部时钟源,频率除以2外部时钟源,频率除以2111内部振荡器,频率除以2内部振荡器,频率除以2101外部时钟源,PLL×1外部时钟源,PLL×1011停止模式停止模式2)软件可编程PLL通过软件编程,可以选用以下两种时钟方式中的一种:(1)PLL模式:输入时钟乘以从0.25~15共31档比例系数之一;(2)DIV(分频)模式:输入时钟CLKIN的2分频或4分频。当采用DIV方式时,所有的电路(包括PLL电路)都关断,以使功耗最小。4、简述TMS320C54x芯片定时器的组成及其工作原理。答:定时器主要由3个存储器映象寄存器组成:TIM、PRD和TCR,另外还包括由三个或门和一个与门所组成的逻辑控制电路。PSC由CPU提供时钟信号(CPUclock,周期为TCLKOUT),每个CPU时钟信号将使PSC减1,当PSC减计数到0时,TDDR的内容加载到PSC。当系统复位或者定时器单独复位时,TDDR的内容也重新加载到PSC。TIM由预定标器PSC提供时钟,每个来自预定标块的输出时钟使TIM减l。当TIM减计数到0后产生一个借位,此时,TIM向主机发出中断申请信号TINT,同时引脚TOUT输出信号,并将PRD中的内容自动地加载到TIM,从而完成定时工作的一个基本过程。5、简述定时器的主要作用及定时周期的计算方法。答:定时周期为:其中,为CPU时钟周期;TDDR和PRD分别为定时器的分频系数和时间常数。定时器的主要作用之一是用于定时控制、延时及外部事件的计数等。另外,定时器还可产生外围电路所需的采样时钟信号。采样时钟信号的产生方法有二:一种方法是直接利用TOUT信号;另一种方法是利用中断,周期地读一个寄存器。6、简述定时器的编程过程。答:在定时器的应用编程中,有三个问题需要解决:计算计数初值、初始化定时器和配置定时器中断。1)计算计数初值在CLKOUT和定时周期已知的情况下,有两个技术初值TDDR和PRD需要计算。TDDR的取值范围为0~15,PRD的取值范围是0~65535,一般应该先指定一个TDDR值,然后根据定时中断的周期公式求得PRD的值。2)初始化定时器初始化定时器可采用如下步骤:1)将TCR中的TSS位置1,以停止定时器。2)加载PRD。将第1步中计算得到的定时器周期寄存器的计数初值加载至PRD寄存器。3)加载定时器控制寄存器(TCR),以重新启动定时器。(1)用第1步中指定的定时器分频系数加载TDDR。(2)设置TSS=0,以启动定时器。(3)设置TRB=1,以便将定时器分频系数(TDDR)和定时器周期寄存器(PRD)的数值分别加载至定时器预定标计数器(PSC)和定时器寄存器(TIM)。3)使能内部定时器中断使能定时器中断的操作步骤如下(假定INTM=1):(1)向中断标志寄存器IFR中的TINT位写0或1,以清除尚未处理完(挂起)的内部定时中断。(2)将IMR中的TINT位置l,使能内部定时中断。(3)将ST1中的INTM位清0,使能全局中断。7、C54x的HPI有何作用?答:主机接口是C54xDSP系列定点芯片内部具有的一种并行接口部件,主要用于DSP与其他总线或CPU进行连接。HPI只需要很少或不需要外部逻辑就能和很多不同的主机设备相连。外部主机是HPI的主控者,它可以通过HPI直接访问CPU的存储空间,包括存储器映像寄存器。8、简述HPI的主要组成部分及其作用。答:HPI主要由五个部分组成:1)HPI存储器(DARAM):用于TMS320C54x与主机间传送数据,也可以用作通用的双寻址数据RAM或程序RAM。2)HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元的地址。3)HPI数据锁存器(HPID):由主机对其直接访问,存放当前进行读/写的数据。4)HPI控制寄存器(HPIC):TMS320C54x和主机都能对其直接访问,用于主处理器与DSP相互握手,实现相互中断请求。5)HPI控制逻辑:用于处理HPI与主机之间的接口信号。9、简述HPI的工作模式。答:HPI具有两种工作模式:1)共用访问模式(SAM)。这是常用的操作模式。在该模式下,主机和C54xDSP都能访问HPI存储器。异步的主机访问可以在HPI内部重新得到同步。如果C54xDSP与主机的周期(两个访问同时是读或写)发生冲突,则主机具有访问优先权,C54xDSP等待一个周期。2)仅仅主机访问模式(HOM)。在该模式下,只有主机可以访问HPI存储器,C54xDSP则处于复位状态或者处在所有内部和外部时钟都停止工作的IDLE2空闲状态(最小功耗)。因此主机可以访问HPIRAM,而C54xDSP则处于最小功耗配置。10、简述SP的主要组成部分及其作用。答:串行口由16位数据接收寄存器(DRR)、数据发送寄存器(DXR)、接收移位寄存器(RSR)、发送移位寄存器(XSR)、两个装载控制逻辑电路和两个字节/字控制计数器所组成。标准同步串行口各部分的功能如下:1)数据接收寄存器DRR16位的存储器映像数据接收寄存器,用来保存来自RSR寄存器并将要写到数据总线的输入数据。复位时,DRR被清除。2)数据发送寄存器DXR16位的存储器映像数据发送寄存器,用来保存来自数据总线并将要加载到XSR的外部串行数据。复位时,DXR被清除。3)数据接收移位寄存器RSR16位的数据接收移位寄存器,用来保存来自串行数据接收(DR)引脚的输入数据,并控制数据到DRR的传输。4)数据发送移位寄存器XSR16位数据发送移位寄存器,用来控制来自DXR的外部数据的传输,并保存将要发送到串行数据发送引脚的数据。5)串行接口控制寄存器SPC(图中未标出)16位的存储器映像串行接口控制寄存器,用来保存串行接口的模式控制和状态位。6)控制电路用于控制串行口协调工作,分为:(1)装载控制电路:完成接收和发送数据的装载;(2)字节/字控制计数器:完成字节/字传输控制。11、简述SP数据传输的工作过程。答:在发送数据时,先将要发送的数写到DXR。若XSR是空的(上一字已串行传送到DX引脚),则自动将DXR中的数据复制到XSR。在FSX和CLKX的作用下,将XSR中的数据移到DX引脚输出。当DXR中的数据复制到XSR后,就可以将另一个数据写到DXR。在发送期间,DXR中的数据复制到XSR后,串行口控制寄存器(SPC)中的发送准备好(XRDY)位由0变为1,随后产生一个串行口发送中断(XINT)信号,通知CPU可以对DXR重新加载。接收数据时,来自DR引脚的数据在FSR和CLKR的作用下,移位至RSR,然后复制到DRR,CPU从DRR中读出数据。当RSR的数据复制到DRR后,SPC中的接收数据准备好(RRDY)位由0变为l,随后产生一个串行口接收中断(RINT)信号,通知CPU可以从DRR中读取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涤纶poy行业研究报告
- 沉浸式作业 实践研究报告
- 城市道路照明与充电桩建设项目合同04
- 池州小区整改方案
- 池塘填土预算方案
- 此刻时期货研究报告
- 橱柜衣柜公司管理方案
- 二零二四年度影视作品改编权转让及独家授权合同
- 经营管理合同范本
- 美业加盟合同协议书模板
- 医生进修汇报
- 医疗救护柴油供应协议
- 用户体验度量模型
- 道德与法治七年级情绪的管理课件
- 《客舱安全与应急处置》-课件:应急撤离的基础知识
- 2023-2024学年北京版三年级上册期中模拟检测数学试卷(含答案解析)
- 养老家庭照护床位服务意向书、综合评估表、适老化改造和老年用品配置清单、养老家庭照护床位服务协议(范本)
- 围手术期液体管理
- 《冬季常见病预防》课件
- 新生儿胃出血个案护理
- 大学生生涯规划程
评论
0/150
提交评论