下面是小编为大家整理的2022DSP原理及应用大作业,供大家参考。希望对大家写作有帮助!
DSP原理及应用大作业4篇
【篇1】DSP原理及应用大作业
《DSP原理与应用》课程教学大纲
一、课程与任课教师基本信息
二、课程简介
《DSP原理与应用》是电子信息工程的专业课。DSP数字信号处理理器是一种特别适合于进行数字信号处理运算的微处理器,具有高速实时、高精度等优点,主要应用于高、中端电子系统中。通过本课程的学习,培养学生掌握数字信号处理器的体系结构、接口与硬件设计、汇编语言程序设计与CCS集成开发环境。该课程是在C语言程序设计、数模电子技术、单片机原理等课程的基础上进一步深入学习高端微控制器的原理与应用。
三、课程目标
结合专业培养目标,提出本课程要达到的目标。这些目标包括:
1、知识与技能目标:
1)知识目标:掌握DSP系统的基本概念、体系结构、软硬件特征、编程格式与指令系统;
熟悉DSP系统设计流程、应用领域和发展趋势;
掌握CCS集成开发环境的配置和使用方法;
学会用C语言和汇编语言进行简单的单元接口电路程序设计方法;
了解CCS集成开发环境操作系统的基本工作原理。
2)能力目标:培养学生具有运用各种手段查阅文献资料、获取信息的能力;
具有自主学习专业新技术、新知识的能力;
具有使用流行的TI德州仪器公司C54XX系列DSP处理器构建实用系统能力;
比较熟练地使用CCS集成开发环境用C语言和汇编语言设计各种接口驱动程序和应用程序的能力;
提高综合运用电路理论和计算机程序设计能力。
2、过程与方法目标:通过课前预习、课堂听课、课后复习、作业完成及实验设计和实例设计等环节过程的实施,使得学生能够根据系统开发的要求,能正确选用DSP处理器、接口芯片,搭建实用系统,编制应用程序;
能为今后初步胜任电子信息工程、遥感遥测、通信、自动化仪表、控制、航天航空、生物医学等电领域的工程应用开发实际工作中打下良好的技术技能基础。培养学生认真、严谨、求实、敬业、创新的工作能力和学习态度。
3、情感、态度与价值观发展目标:在课堂学习和实验过程中,除了专业知识的学习外,还应注重情感、态度、价值观的培养,加强系统学习和严格操作的科学精神、与人交往和为人处事的人文精神、对公物爱护的社会责任感,对实验数码一丝不苟的职业道德等的学习,使自己能够得到全方位的熏陶和锻炼。
四、与前后课程的联系
先修课程: C语言程序设计、模拟电路、数字电路和数字信号处理
后续课程:综合设计和毕业设计等
五、教材选用与参考书
1、选用教材:
DSP原理及应用,邹彦等编,电子工业出版社,2005
2、参考书:
DSP芯片的原理与开发应用(第四版),张雄伟,电子工业出版社,2009.3.
C/C++语言硬件程序设计—基于TMS320C5000系列DSP, 张勇等编,西安电子科技大学出版社,2004
TMS320C5000系列DSP汇编语言程序设计, 张勇等编,西安电子科技大学出版社,2004
六、课程进度表
七、教学方法
本课程以多媒体课堂教学为主、采用验证式上机实验方法和学习板自学相结合,重在实践。通过多媒体手段,提高教学效率,通过实验、学习板学习、课程设计练习巩固所学知识、提高实践动手能力,提高学生分析问题和解决问题的能力,从而使学生全面了解DSP系统在强弱电工程领域的应用,提高工程实践能力。
八、对学生的学习要求
1、学习本课程的方法、策略及教育资源的利用。
认真听课,按时完成作业,及时答疑,认真做实验,对学习板认真的练习和操作。针对具体案例,利用网络资源,查阅相关材料。
2、学生必须阅读的论著,建议学生阅读的论著。
必须阅读的论著:老师的上课内容、教材、参考书,学习板和实验的内容和一些具体实例的操作和原理。
3、学生完成本课程每周须耗费的时间。
课内与课外花费时间比例:1:1
4、学生的上课、实验、讨论、答疑、提交作业(论文)单元测试、期末考试的等方面的要求。
认真听课,按时完成作业,及时答疑,认真做实验。期末考试不划重点,考试不作弊。
5、学生参与教学评价要求。
实事求是,客观评价。
九、成绩评定方法及标准
十、院(系)教学委员会审查意见
九、学生反馈信息
————————————学生沿此线剪下交任课教师——————————————
【篇2】DSP原理及应用大作业
DSP系统设计大作业
学 院:
电子工程学院
专 业:
信息对抗技术
班 级:
021231
姓 名:
学 号:
02123
指导教师:
秦国栋
1、比较DSP,FPGA,ARM三类芯片的优缺点? 答:DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数 字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外 部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的 空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度 。另外还允许在程 序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其 他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器, 是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用 软件编程具有高度7的灵活性,因此为从事各种复杂的应用提供了一条有效途径。
根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与痛用微处理器相比,DSP芯片的其他通用功能相对较弱些。 FPGA是英文Field Programmable Gate (现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基 础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(Logic Cell )这样一个 新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB (Input Output Block)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高 性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由 的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电 路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的, 因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM 中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA 编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可 以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很 多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。 ARM(Advanced RISC Machines /microprocessor)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
它们的区别是什么呢?DSP主要是用来计算的,比如进行加密解 密、调制解调等,优势是强大的数据处理能力和较高的运行速度。ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面;
而FPGA可以用VHDL来编程,灵活性强,由于能够进行编程、除错、 再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。
2、给出DSP设计实例,并用框图详细解释。
DSP设计实例题目:基于DSP的纸币号码识别系统
(1)、概要
近年来,钱币、特别是纸币被抢劫事件不断发生,严重影响了社会治安,也使银行在经济上受到了严重的损失。如果被抢劫的钱币不能在市场上流通,将从一个方面抑制银行抢劫事件的发生。其中一种解决方案是记录每一捆纸币的号码,将被抢劫的纸币号码建立一个数据库。在货币流通市场提供一种纸币号码自动识别装置,比如说与点钞机结合,将货币号码识别数据与被抢劫号码数据库比较,一旦有相同号码出现,便可确认目前流通的钱币为被抢劫的钱币,从而限制其流通,同时也有利于抢劫案件的侦破。另外,由于纸币号码的唯一性,通过识别纸币上的号码,可以帮助识别假币。国外有一种验钞打号机,可以对典型的纸币,比如美元、英镑等进行自动识别和号码打印,这种装置的典型识别速度为1张/秒。不过还没有点钞机附带号码自动识别装置的文献报道。
近些年,国内也有一些单位研制开发纸币号码自动识别装置,例如南京航空航天大学开发了一种基于单片机的纸币号码识别系统[3],利用线阵CCD实现纸币图象的采集,利用单片机实现号码的定位与识别。其主要问题是难以提高号码的识别速度。哈尔滨工业大学开发了一种基于DSP的纸币号码识别系统[4],其识别速度为8张/秒,但该速度为在PC机上的仿真结果,实际样机没有实现。此外,该系统采用CIS(即接触式线型图象传感器)获得纸币图像信号,存在传感器磨损问题。
针对以上情况,本文给出一种基于DSP的纸币号码识别系统,利用面阵CCD摄象机采集纸币号码图象,即每秒采集25幅图象,而目前的点钞机点钞速度为每秒十几张左右,从而可以实现与点钞机的配合使用。
该系统由以下几个部分组成:
(1)、利用Philip公司专业视频解码器SAA7113实现纸币号码图像的数字化;
(2)、利用TI公司的数字信号处理器TMS320VC5410实现数字纸币号码图像的采集和处理;
(3)、利用TI公司的异步串行接口芯片TL16C550完成整个系统与PC机之间的通信。
(2)、设计原理及框图
基于DSP的纸币号码识别系统的工作原理:从面阵CCD摄像头摄取的纸币模拟视频图像,经专业视频解码器转换为数字图像。数字视频信号经图像缓存FIFO存入DSP的数据空间,作为后续图像识别的数据来源。视频解码器同时分离出行场同步信号和象素时钟参考信号,作为图像缓存模块的控制信号。为了保存和记录号码,经识别后的纸币号码数据存储在快速闪烁存储器FLASH中,或根据需要通过异步串口传送给PC机。复杂可编程逻辑器件CPLD在整个系统中起到全局逻辑控制和对采集的纸币图像实现开窗处理的作用。系统的总体结构框图如图1所示。
(3)、图像采集模块
3.1 视频解码芯片SAA7113在系统中的应用
SAA7113是一种高集成度并且支持隔行扫描、多种数据输出格式的视频解码器,内置的I2C界面提供了简单的对芯片内部电路的控制功能。对SAA7113的控制主要包括对输入模拟信号的预处理、色度和亮度的控制,输出数据格式及输出图象同步信号的选择控制等。
在整个系统中对图象的识别处理主要是针对灰度图像进行的,在SAA7113所提供的多种数据输出格式中,RAW格式在8位输出管脚上直接输出与象素时钟相对应的象素灰度值,此种数据格式与其它格式相比对灰度图像的采集将更直接。
SAA7113的输出RTS0和RTS1是多功能复用管脚,通过对子地址寄存器SA12写入不同的控制字,可将两输出管脚配置为行同步、帧同步、奇偶场同步等不同的信号。在本系统中将RTS0设置为行同步信号,RTS1设置为场同步信号,同时SAA7113还输出象素时钟的同步参考信号LLC。
通过I2C总线协议对SAA7113的各个控制寄存器进行设置,使其满足系统要求。由于DSP芯片是处理型的器件,它的控制能力比较弱,通用I/O口比较少,而单片机具有很好的控制功能,因此对SAA7113的初始化工作使用AT89C51单片机来完成。AT89C51单片机内部无硬件I2C总线接口,在此将单片机的P1.0口设置为串行数据线SDA,P1.1设置为串行时钟线SCL,通过软件模拟I2C总线,对视频解码器SAA7113进行初始化,其硬件原理如图2所示。
3.2 使用CPLD实现对图像的开窗处理
利用象素时钟LLC2和行同步信号HS实现行截取的VHDL程序: process(LLC2,HS)
variable temp: std_logic_vector(10 downto 0);
begin
if(LLC2"event and LLC2="1") then
if(HS="1" ) then temp:=temp+"1";
if(temp>80 and temp
【篇3】DSP原理及应用大作业
通信系《DSP原理及应用》期末考试题(答案)
姓名:
学号:
班级:
分数:
考试时间:15:40~17:30 考试方式:开卷;
注意:所有答案必须写在答题纸上,试卷上的答案无效!
一、 填空题(每空2分,共20分)
1、
2、在C语言和C55x汇编语言的混合程序设计中,C函数的参数和返回值传递到C55x的寄存器中。在函数“long func(int *p1, int i2, int i3, int i4)”中,*p1传递到 AR0 寄存器,i2传递到 T0 寄存器,i4传递到 AR1 寄存器,返回值由 AC0 寄存器传递。
3、
4、汇编语言“mov *AR0,AC0”使用的寻址方式是 间接寻址模式 ,“mov #0x3,DPH”使用的寻址方式是 直接寻址模式 ,“mov *(#0x011234),T2”使用的寻址方式是 绝对寻址模式 。
5、
6、“AND #0x7f, AC0”,执行之后,AC0的值是 0000000078 。
7、
8、C55x 的链接器命令文件中,SECTIONS命令的主要作用是 告诉链接器如何将输入段组合成输出段,以及在存储器何处存放输出 。MEMORY命令的主要作用是 定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始地址和长度 。
二、简述题(共40分)
1、
2、根据你的理解,试列举 DSP 芯片的特点?(5分)
答:哈佛结构;
多总线结构;
指令系统的流水线操作;
专用的硬件乘法器;
特殊的DSP指令;
快速的指令周期;
丰富的外设
3、
4、TMS320C55x 芯片的总线结构有何特点,主要包括哪些总线?它们的功能是什么?(6分)
答:TMS320C55x DSP采用先进的哈佛结构并具有十二组总线,其独立的程序总线和数据总线允许同时读取指令和操作数,实现高度的并行操作。
采用各自分开的数据总线分别用于读数据和写数据,允许CPU在同一个机器周期内进行两次读操作数和一次写操作数。独立的程序总线和数据总线允许CPU同时访问程序指令和数据。
包括12条总线,分别是:PAB和PB、BAB和BB、CAB和CB、DAB和DB、EAB和EB、FAB和FB。
功能:
5、
6、DSP 为了降低功耗采取了哪些措施?(6分)
答:双电压供电;
多种工作模式
7、
8、TMS320C55x 的总存储空间为多少?可分为哪 3 类,它们的大小是多少?存储器空间的各自作用是什么?(6分)
答:程序空间16M Byte;
I/O空间64K Words;
数据空间8M Words
9、
10、TMS320C55x有哪些寻址方式,它们是如何寻址的?试为每种寻址方式列举一条指令(6分)
答:直接寻址模式,mov #K16,DP;
间接寻址模式,mov *AR0,AC0;
绝对寻址模式,mov *(#0x011234),T2;
MMR寻址模式,mov *abs16(#AR2), T2;
寄存器位寻址模式,btstp @30, AC1;
圆形寻址模式。
11、
12、将C源程序转换成可执行文件需要经过哪些步骤?(6分)
答:创建C源文件;
创建工程文件;
创建连接器命令文件;
编译整个工程文件;
链接;
生成可执行文件
13、
14、常用的TMS320C55x汇编命令有哪些,它们的作用是什么?(5分)
三、程序设计题(共40分)
1、
2、用C55x汇编语言实现计算 8b3adc9d7717ffc74fbe2a946ca29a2e.png 的程序。(10分)
答:mpym *AR0+, *AR1+, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
mpym *AR0+, *AR1+, AC1
add AC1, AC0
或者:
mpym *AR0+, *AR1+, AC0
||rpt #2
macm *AR0+, *AR1+, AC0
3、
4、用C55x汇编语言实现计算 0d5bed187ed832d06b85aca57a6adc27.pngd41d8cd98f00b204e9800998ecf8427e.png的程序。(10分)
答:mpym *AR0+, *AR1+, AC3
masm *AR0+, *AR1+, AC3
5、
6、以8点的FFT为例,用C55x的汇编语言实现FFT的算法,并且解释该算法的实现方法。(20分)
答:
.sect "fft_code"
_fft:
aadd #(ARGS-Size+1),SP ; Adjust stack for local vars
mov mmap(ST1_55),AR2 ; Save ST1,ST3
mov mmap(ST3_55),AR3
mov AR2,
mov AR3,
btst @#0,T1,TC1 ; Check SCALE flag set
mov #0x6340,mmap(ST1_55) ; Set CPL,XF,SATD,SXAM,FRCT (SCALE=1)
mov #0x1f22,mmap(ST3_55) ; Set: HINT,SATA,SMUL
xcc do_scale,TC1
mov #0x6300,mmap(ST1_55) ; Set CPL,XF,SATD,SXAM (SCALE=2)
do_scale
mov T2, ; Save T2
|| mov #1,AC0
mov AC0, ; Initialize L=1
|| sfts AC0,T0 ; T0=EXP
mov AC0, ; N=10 ; End of outer-loop
mov ,AR2 ; Restore ST1,ST3,T2
mov ,AR3
mov AR2,mmap(ST1_55)
mov AR3,mmap(ST3_55)
mov ,T2
aadd #(Size-ARGS-1),SP ; Reset SP
ret
.end
【篇4】DSP原理及应用大作业
一、填空题
1、累加器A分为三个部分,分别为 AG、AH、AL ;
2、TMS320VC5402型DSP的内部采用 8 条 16 位的多总线结构;
3、TMS320VC5402型DSP采用 哈佛 总线结构对程序存储器和数据存储器进行控制;
4、TMS320VC5402型DSP有 8 个辅助工作寄存器;
5、DSP处理器TMS320VC5402中DARM的容量是 16K 字;
6、TI公司的DSP处理器TMS320VC5402PGE100有 2 个定时器;
7、在连接器命令文件中,PAGE 1 通常指 数据 存储空间;
8、C54x的中断系统的中断源分为 硬件中断和 软件 中断;
9、TI公司DSP处理器的软件开发环境是 CCS(Code Composer Studio);
10、DSP处理器TMS320VC5402外部有 20根 地址线;
11、直接寻址中从页指针的位置可以偏移寻址 128 个单元;
12、在链接器命令文件中,PAGE 0通常指 程序 存储空间;
13、C54x系列DSP处理器中,实现时钟频率倍频或分频的部件是 锁相环PLL ;
14、TMS320C54x系列DSP处理器上电复位后,程序从指定存储地址 FF80H 单元开始工作;
15、TMS320C54x系列DSP处理器有 2 个通用I/O引脚,分别是 BIO和XF;
16、DSP处理器按数据格式分为两类,分别是定点DSP和浮点DSP ;
17、TMS329VC5402型DSP的ST1寄存器中,INTM位的功能是 开放/关闭所有可屏蔽中断 ;
18、MS320C54X DSP主机接口HPI是 8 位并行口;
19、在C54X系列中,按流水线工作方式,分支转移指令的分为哪两种类型:
无延迟分支转移、 延迟分值转移 ;
20、C54x的程序中,“.bss”段主要用于 为变量保留存储空间 ;
21、从数据总线的宽度来说,TMS320VC5402PGE100是 16 位的DSP存储器;
22、TMS320VC5402型DSP处理器的内核供电电压 1.8V ;
23、TMS320C5402系列DSP处理器最大的数据存储空间为 64K 字;
24、在链接器命令文件中,PAGE 0通常指 程序 存储空间;
25、DSP技术是利用专用或通用数字信号处理芯片,通过 数值运算 的方法对信号进行处理;
26、C54x的程序中,“.text”段是 文本段 ,主要包含 可执行文本 ;
27、C54x系列DSP上电复位后的工作频率是由片外3个管脚 CLKMD1、CLKMD2、CLKMD3 来决定的;
28、DSP处理器TMS320C5402最大的程序存储空间为1M字;
29、从应用领域来说,MCU(单片机)主要用于 控制领域 ;
DSP处理器主要应用于 信号处理 ;
30、TMS320C54X DSP提供一个用16位堆栈指针(SP)寻址的软件堆栈。当向堆栈中压入数据时,堆栈是从 高 地址向 低 地址方向填入;
31、TMS320C54X DSP软硬件复位时,复位中断向量的地址为程序空间的FF08H;
32、TMS320C54X可编程定时器的定时周期 =(时钟周期)*(分频系数TDDR+1)*(PRD +1);
33、DSP处理器的英文全称 Digital Signal Processor ;
34、DSP处理器TMS320VC5402的IO管脚供电电压为 3,3V ;
35、C54x的程序中,“.data”段是 数据段 ,主要应用于 通常包含初始化数据 ;
36、DSP处理器TMS320C5402的I/O空间为 64K 字;
37、TMS320VC5402型DSP的累加器是 40 位;
38、TMS329VC5402型DSP的MP/MC管脚的功能是 微计算机或是微处理器工作模式 ;
39、TMS320VC5402型DSP的CPU采用 桶形移位寄存器 作为专用硬件实现移位功能;
40、汇编语句“STL A,@y”中“@y”表示 直接寻址方式 ;
41、TMS320VC5402型DSP的ST1寄存器中,CPL位的功能是指示 直接寻址采用何种指针 ;
42、解释汇编语句“READA *AR1”的功能:以累加器A的内容作为地址读取程序存储单元,将读取的数据存入以AR1的内容作为地址的数据存储单元中 ;
43、TMS320C54X具有两个通用I/O口, BIO 勇于输入外设的的状态;
XF 用于输出外设的控制信号;
二、判断题
1、DSP 处理器TMS320VC5402的供电电压为5V。(×)
2、DSP的工作频率只能是外部晶体振荡器的频率。(×)
3、TMS320C54X DSP是浮点型处理器。(×)
4、TMS320C54X DSP的汇编语言中有除法指令。(×)
5、TMS320VC5402型DSP内部有8K字的ROM,用于存放自举引导程序、u律和A律扩展表、sin函数表以及中断向量表。(×)
6、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。(×)
7、TMS320C54X 系列DSP外部程序存储器的分页扩展受DROM位控制。(×)
8、TMS320C54X DSP是浮点型处理器。(×)
9、DSP的工作频率只能是外部晶体振荡器的频率。(×)
10、TMS320C54X DSP的汇编语言中有除法指令。(×)
11、汇编伪指令可以用大写表示。(×)
12、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。(×)
13、TMS320VC5402型DSP汇编指令READA的寻址范围为64K字。(×)
14、TMS320VC5402型DSP可以通过设置DROM位实现数据存储空间和程序存储空间共享片内DARAM。(×)
15、TMS320C54X系列DSP可以通过设置OVLY位实现数据存储空间和程序存储空间共享片内ROM。(×)
16、TMS320VC5402型DSP汇编语言的伪指令也是一种指令,同样占用存储空间。(×)
17、TMS320VC5402型DSP的工作频率是由外部晶振唯一确定的。(×)
18、DSP 处理器TMS320VC5402的中断向量表位置是固定的。(×)
19、TMS320VC5402型DSP可以通过设置DROM位实现数据存储空间和程序存储空间的共享片内DARAM。(×)
20、TMS320C54X 系列DSP可以通过设置OVLY位实现数据存储空间和程序存储空间的共享片内ROM。(×)
21、TMS320VC5402型DSP汇编语言的伪指令也是一种指令,同样占用存储空间。(×)
22、DSP 处理器TMS320VC5402内部含有SARAM存储器。(×)
23、3.3V的TTL电平器件可以直接驱动5V的CMOS器件。(×)
24、DSP的流水线冲突产生的原因是由于DSP运行速度还不够快。(×)
25、C54X系列DSP 处理器的累加器A,B是32位的。(×)
26、DSP 处理器TMS320VC5402有不止一种串行口。(×)
27、DSP处理器TMS320VC5402在微型计算机工作模式时,上电复位后程序从片外存储器的FF80h单元开始执行。(×)
28、DSP处理器TMS320VC5402的中断向量表位置是固定的。(×)
29、DSP处理器TMS320VC5402的程序存储空间只有64K字。(×)
30、MEMORY伪指令用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置。(√)
31、TMS320C54X DSP汇编语言源程序中,标号是可选项,若使用标号,则标号必须从第一列开始。(√)
32、DSP 处理器的中断请求可以由软件产生。(√)
33、哈佛结构的特点是数据总线和程序总线分开。(√)
34、DSP和MCU属于软件可编程微处理器,用软件实现数据处理;
而不带CPU软核的FPGA属于硬件可编程器件,用硬件实现数据处理。(√)
35、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。(√)
36、在C54x系列DSP中断向量表的最大长度只能128字。(√)
37、DSP对程序存储空间、数据存储空间和I/O空间的选择分别是由三根片选线PS、DS、IS独立选择的。(√)
38、C54x系列DSP的CPU寄存器及片内外设寄存器映射在数据存储空间的0000h-0080h中。(√)
39、单片机通过HPI接口可以访问TMS320VC5402的全部64K字数据存储空间。(√)
40、在DSP处理器汇编程序中,标号区分大小写。(√)
41、DSP处理器TMS320VC5402的堆栈是向低地址方向生长的。(√)
42、DSP 处理器TMS320VC5402的中断向量表位置是固定的。(√)
43、当TMS320C54X DSP处于微处理器模式时,DSP上电复位之后从片外程序存储器的FF80H开始运行。(√)
44、在TMS320VC5402型DSP所有中断向量中,只有硬件复位向量不能被重定位,即硬件复位向量总是指向程序空间的0FF80H位置。(√)
45、DSP和MCU属于软件可编程微处理器,用软件实现数据处理;
而不带CPU软核的FPGA属于硬件可编程器件,用硬件实现数据处理。(√)
46、在DSP处理器汇编程序中,标号区分大小写。(√)
47、DSP 处理器TMS320VC5402的软件中断是不可屏蔽的中断。(√)
48、链接器命令文件是用来规定程序段的存放位置的。(√)
49、DSP处理器TMS320VC5402的堆栈是向低地址方向生长的。(√)
50、C54x系列DSP只有两个通用的I/O引脚。(√)
51、在C54x系列DSP的寻址方式中,使用DP作为直接寻址的偏移寻址范围只有128个字。(√)
52、DSP的流水线冲突可以通过改变编程方法或者添加nop语句来消除。(√)
53、TMS320VC5402型DSP汇编语言的寻址方式可以实现FFT算法中的位倒序寻址方式。(√)
54、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。(√)
55、如果OVLY=1,程序存储空间可以使用内部RAM,此时,不论XPC为何值,扩展程序存储空间的所有低32K字都被映像到内部RAM中。(√)
56、在DSP的编程中可以将程序中不同的段放置在不同的存储器中。(√)
57、C54x系列DSP的寻址方式中,用DP作为直接寻址的偏移寻址范围只有128个字。(√)
58、在C54x系列DSP中断向量表中,每个中断向量的入口地址间隔4个字。(√)
59、DSP对程序存储空间、数据存储空间和I/O空间的选择分别是由三根片选线PS、DS、IS独立选择的。(√)
60、DSP的流水线冲突可以通过改变编程方法或者添加nop语句来消除。(√)
61、TMS320C54X系列DSP的汇编语言中分支转移指令执行需要4个机器周期。(√)
62、DSP 处理器TMS320VC5402的定时器可以构成20位的定时器。(√)
63、DSP 处理器TMS320VC5402的软件中断是不可屏蔽的中断。(√)
64、DSP 处理器TMS320VC5402可以计算浮点小数运算。(√)
65、TMS320VC5402型DSP汇编语言的寻址方式可以实现FFT算法中的位倒序寻址方式。(√)
66、在DSP的编程中可以将程序中不同的段放置在不同的存储器中。(√)
67、TMS320C54X 系列DSP的汇编指令WRITA可以寻址1M字的程序空间。(√)
68、DSP 处理器TMS320VC5402内部没有专用的除法指令。(√)
69、定点DSP 处理器TMS320VC5402可以计算浮点小数运算。(√)
70、DSP 处理器TMS320VC5402的定时器可以构成20位的定时器(√)
71、DSP 处理器TMS320VC5402的软件中断是不可屏蔽的中断。(√)
72、DSP 处理器TMS320VC5402支持流水线的指令运行方式。(√)
73、DSP处理器TMS320VC5402内部没有专用的除法指令。(√)
74、定点DSP处理器TMS320VC5402可以计算浮点小数运算。(√)
75、CCS软件开发系统支持C语言程序编程。(√)
76、DSP处理器C54x的软件中断是不可屏蔽的中断。(√)
77、DSP处理器C54x支持流水线的指令运行方式。(√)
78、DSP处理器C54x的堆栈是向低地址方向生长的。(√)
79、DSP处理器C54x的汇编程序是由许多“段”组成的。(√)
三、程序阅读题
1、阅读下面的程序片断,写出运行结果
.mmregs
bei_hua .set 18
LD # bei_hua,A
问题:(1)“.mmregs”的作用是什么?
(2)运行此段程序后,累加器A的结果是多少?
答:
(1)定义存储器映像寄存器的符号名称
(2)A的结果是18
2、阅读下面的程序,回答问题。
.bss x, 8
LD #0001H,16,B
STM #7,BRC
STM #x,AR4
RPTB next-1
ADD *AR4,16,B,A
STH A,*AR4+
next: LD #0,B
问题:(1)、寄存器“BRC”的功能是什么?
(2)汇编语句“ADD *AR4,16,B,A”执行了多少次?
(3)执行语句“LD #0001H,16,B”后,累加器B的内容是多少?
答:(1)寄存器“BRC”的功能是暂存块循环的次数
(2)8次
(3)B=0x0100H;
3、阅读程序,回答后面的问题
STM #6,AR4
begin: STM #9,BRC
RPTB next-1
nop
next: LD #0,B
banz begin,*AR4-
问题:
(1)BRC寄存器是做什么用途?
(2)语句“banz begin,*AR4-”的作用是什么?
(3)其中的“nop”语句被执行了多少次?
答:
(1)BRC保存着RPTB指令的循环次数
(2)判断AR4的内容是否为零,若不为零,跳转到标号begin。
(3)70次
4、阅读下面的程序,回答问题。
MEMORY
{PAGE0: PROG: origin = 0x2000, length = 0x1000
PAGE 1: DATA: origin = 0x4000, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
STACK: {} > DATA PAGE 1
}
汇编程序
size .set 0x0120
stack .usect “STACK”,size
.text
STM #stack+size,SP
问题:
(1)指令“stack .usect “STACK”,size”的作用是什么?
(2)标号“stack”的存储器地址是多少?
(3)执行这段代码之后,SP寄存器的内容是多少?
答:
(1)定义一个未初始化段,段名为”STACK”,目的是为变量stack保留size个单元的存储空间。
(2)stack的存储空间为0x4000;
(3)SP=0x4120;
5、阅读下面的命令连接文件(简称CMD文件)和程序文件:
CMD文件:
MEMORY
{PAGE 0: PROG: origin = 0x1000, length = 0x1000
PAGE 1: DATA: origin = 0x2000, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
.data: {} > DATA PAGE 1
}
.data
table: .word 1,2,3,4 ; 变量初始化
.text
start:STM # 0,SWWSR ; 插入0个等待状态
问:
(1)MEMORY和SECTIONS的作用各是什么?
(2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间?
答:
(1)MEMORY和SECTIONS链接伪指令,用来指定目标存储器结构和地址分配。
(2)标号table:1000h(程序空间)、标号start:2000h(数据空间)
6、已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=111,外部晶振=10MHz,参数设置表:
CLKMD1
CLKMD2
CLKMD3
CLKMD复位值
时钟方式
0
0
0
E007H
PLL×15
0
0
1
9007H
PLL×10
0
1
0
4007H
PLL×5
1
0
0
1007H
PLL×2
1
1
0
F007H
PLL×1
1
1
1
0000H
2分频
1
0
1
F000H
4分频
STM #00H,CLKMD
Status:LDM CLKMD,A
AND #01H,A
BC Status,ANEQ
STM #9007H,CLKMD
问题:
(1)DSP复位后,DSP的工作时钟是多少?
(2)执行上面的程序片段后,DSP的工作时钟是多少?
答:
(1)5MHz
(2)100MHz
7、阅读下面的程序片断,写出运行结果
.mmregs
DAT0 .SET 60H
LD #004h,DP
ST #0345h,DAT0
STM #0002h,T
MPY DAT0,A
NOP
问题:
(1)寄存器T的作用是什么?
(2)执行“MPY DAT0,A”后,累加器A的内容是什么?
答:
(1)寄存器T的作用是暂存被乘数。
(2)累加器A的内容为0x68A或68Ah
8、阅读下面的程序:
.mmregs
DAT0 .SET 60H
DAT1 .SET 61H
DAT2 .SET 62H
DAT3 .SET 63H
add3 .macro P1,P2,P3,ADDRP
LD P1,A
ADD P2,A
ADD P3,A
STL A,ADDRP
.endm
ST #0034h,DAT0
ST #0243h,DAT1
ST #1230h,DAT2
ADD3 DAT0,DAT1,DAT2,DAT3
问题:
(1)语句“.mmregs”的含义。
(2)语句“ADD3 DAT0,DAT1,DAT2,DAT3”是一条什么类型的语句?作用是什么?
(3)执行此段程序后,存储单元(DAT3)的运行结果多少?
答:
(1)定义存储器映像寄存器的符号名称。
(2)宏调用。执行三个数相加。
(3)14A7H
9、阅读下面的程序,回答问题。
.sect ".vectors"
rst: B _c_int00 ;复位中断向量的入口
NOP
NOP
.space 18*4*16
tint: B timeout ;定时器0的中断向量的入口
NOP
NOP
问:(1)“.sect”伪指令的作用是什么?
(2)标号“rst”的地址为6000H,请问标号“tint”的地址是多少?
答:
(1)定义一个自定义段名的程序段
(2)604Ch
10、阅读下面的程序片段,写出运行结果
.mmregs
DAT0 .SET 60H
LD #004h,DP
ST #0345h,DAT0
STM #0002h,T
MPY DAT0,A
NOP
NOP
问题:
(1)寄存器T的作用是什么?
(2)执行“MPY DAT0,A”后,累加器A的内容是什么?
答:(1)寄存器T的作用是暂存被乘数,
(2)累加器A的内容为0x68A或68Ah
11、阅读下面的程序,回答问题。
MEMORY
{PAGE 0:PROM:org=0E000h,len=100h
VECS:org=0FF80h,len=04h
PAGE 1:SPRAM: org=0060h,len=20h
DARAM:org=0080h,len=100h
}
SECTIONS
{.text :>EPROM PAGE 0
.data :>EPROM PAGE 0
.bss :>SPRAM PAGE 1
STACK :>DARAM PAGE 1
vectors :>VECS PAGE 0
}
问题:
(1)该文件是如何配置程序空间和数据空间的?
(2)该文件中出现了几个段?哪些是初始化段?哪些是未初始化段?各段是如何分配的?
答:
(1)该文件使用MEMORY伪指令将程序空间划分为两个小区间:名为PROM的区间其起始地址为0E000h,长度为100h字;
名为VECS的区间其起始地址为0FF80h,长度为4字。将数据空间也分为了两个小区间: 名为SPRAM的区间其起始地址为0060h,长度为20h字;
名为DARAM的区间其起始地址为0080h,长度为100h字。
(2)出现了5个段,.text,.data和vectors是初始化段,.bss和STACK段是未初始化段。
.text和.data分配到程序空间的EPROM区间;
.bss分配到数据空间SPRAM区间;
STACK段分配到数据空间的DARAM区间;
vectors段分配到程序空间的VECS区间。
12、阅读下面的程序,回答问题。
MEMORY
{PAGE 0: PROG: origin = 0x2000, length = 0x1000
PAGE 1: DATA: origin = 0x3000, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
.bss: {} > DATA PAGE 1
}
汇编程序:
.bss a,4
.bss x,4
.bss y,1
STM #a, AR3
STM #x, AR4
RPTZ A, #3
MAC *AR3+,*AR4+,A
STL A,*(y)
问题:
(1)指令“STM #a, AR3”的作用是什么?执行此句指令后,寄存器AR3的内容是多少?
(2)指令“MAC *AR3+,*AR4+,A”执行了几次?每执行一次寄存器AR3和AR4的内容如何变化?
(3)这段代码的功能是什么?
答:(1)将标号a的地址赋给辅助工作寄存器AR3,AR3=3000h。
(2)执行了4次,每执行一次辅助工作寄存器AR3和AR4的内容增一。
(3)
13、已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=101,外部晶振=10MHz,参数设置表:
CLKMD1
CLKMD2
CLKMD3
CLKMD复位值
时钟方式
0
0
0
E007H
PLL×15
0
0
1
9007H
PLL×10
0
1
0
4007H
PLL×5
1
0
0
1007H
PLL×2
1
1
0
F007H
PLL×1
1
1
1
0000H
2分频
1
0
1
F000H
4分频
STM #00H,CLKMD
Status:LDM CLKMD,A
AND #01H,A
BC Status,ANEQ
STM #9087H,CLKMD
问题: (1)DSP复位后,DSP的工作时钟是多少?
(2)执行上面的程序片段后,DSP的工作时钟是多少?
答:
(1)2.5MHz
(2)100MHz
14、阅读下面的程序片断,回答下面的问题
DAT0 .SET 60H
DAT1 .SET 61H
DAT2 .SET 62H
DAT3 .SET 63H
LD #004h,DP
ST #83h,DAT0
ST #0041h,DAT1
RSBX SXM
LD DAT0,A
RPT #15
SUBC DAT1,A
STL A,DAT2
STH A,DAT3
问:在CPL=0的情况下,
(1)语句“STL A,DAT2”,其中DAT2所指的地址是多少?
(2)存储单元(DAT2)和(DAT3)的内容是多少?
答:
(1)0262h
(2)(DAT2)=02H (DAT3)=01H
15、阅读程序,回答后面的问题
STM #9,AR4
begin: STM #7,BRC
RPTB next-1
nop
next: LD #0,B
banz begin,*AR4-
问题:
(1)BRC寄存器是做什么用途?
(2)其中的“nop”语句被执行了多少次?
答:(1)BRC保存着RPTB指令的循环次数
(2)80次
16、阅读下面的程序,回答后面的问题
.bss x,10
.bss y,1
STM #x,AR1
STM #9,AR2
LD #0,A
loop: ADD *AR1+,A
BANZ loop,*AR2-
STL A, * (y)
问:
(1)解释语句“.bss x,10”的含义。
(2)解释语句“STL A, * (y)”的含义。
(3)这一段程序实现什么功能?
答:
(1)给x保留10个空间
(2)将累加器A的低16位数据存储到变量y中。
(3)
17、阅读下面的程序片段,回答后面的问题
.sect ".vectors"
rst: B _c_int00
NOP
NOP
.space 18*4*16
tint: B timeout
NOP
NOP
问:
(1)“.sect”伪指令的作用是什么?
(2)标号“rst”的地址为6000H,请问标号“tint”的地址是多少?
1.答:
(1)定义存储器映像寄存器的符号名称
(2)A的结果是18
18、已知DSP的三个时钟引脚状态CLKMD1-CLKMD3=110,外部晶振=10MHz,参数设置表:
CLKMD1
CLKMD2
CLKMD3
CLKMD复位值
时钟方式
0
0
0
E007H
PLL×15
0
0
1
9007H
PLL×10
0
1
0
4007H
PLL×5
1
0
0
1007H
PLL×2
1
1
0
F007H
PLL×1
1
1
1
0000H
2分频
1
0
1
F000H
4分频
STM #00H,CLKMD
Status:
LDM CLKMD,A
AND #01H,A
BC Status,ANEQ
STM #4087H,CLKMD
问题:
(1)DSP复位后,DSP的工作时钟是多少?
(2)执行上面的程序片段后,DSP的工作时钟是多少?
答:
(1)10 MHz
(2)50 MHz
19、阅读下面的命令连接文件(简称CMD文件)和程序文件:
CMD文件:
MEMORY
{ PAGE 0: PROG: origin = 0x1000, length = 0x1000
PAGE 1: DATA: origin = 0x2000, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
.data: {} > DATA PAGE 1
}
程序文件:
.data
table: .word 1,2,3,4 ; 变量初始化
.text
start: STM # 0,SWWSR ; 插入0个等待状态
问题:
(1)MEMORY和SECTIONS的作用各是什么?
(2)标号“table”和“start”的地址分别是什么,分别位于程序空间还是数据空间?
答:(1)定义一个自定义段名的程序段
(2)604Ch
20、阅读下面的程序,回答问题。
MEMORY
{PAGE 0: PROG: origin = 0x2000, length = 0x1000
PAGE 1: DATA: origin = 0x3000, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
STACK: {} > DATA PAGE 1
}
汇编程序
size .set 0x0120
stack .usect “STACK”,size
.text
STM #stack+size,SP
问题:
(1)指令“stack .usect “STACK”,size”的作用是什么?
(2)标号“stack”的存储器地址是多少?
(3)执行这段代码之后,SP寄存器的内容是多少?
答:
(1)定义一个未初始化段,段名为”STACK”,目的是为变量stack保留size个单元的存储空间。
(2)stack的存储空间为0x4000;
(3)SP=0x4120;
21、阅读下面的程序,回答问题。
MEMORY
{PAGE 0: PROG: origin = 0x2000, length = 0x1000
PAGE 1:DATA: origin = 0x3100, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
.bss: {} > DATA PAGE 1
}
汇编程序:
.bss x,16
.bss y,16
.text
STM #x,AR2
STM #y,AR3
RPT #15
MVDD AR2+,*AR3+
问题:
(1)变量“x”的存储器地址是多少?位于哪个存储空间(程序还是数据存储空间)。
(2)语句“STM #x,AR2”的作用是什么?执行此句指令后,寄存器AR2的内容是多少?
(3)语句“MVDD AR2+,*AR3+”的执行了多少次?每执行一次寄存器AR2和AR3的内容如何变化?
(4)此段代码的功能是多少?
答:(1)变量“x”的存储器地址是0x3100;位于数据存储空间
(2)将变量“x”的地址赋给辅助工作寄存器AR2,AR2=3100h。
(3)执行了16次,每执行一次辅助工作寄存器AR2和AR3的内容增一。
(4)将数组变量“x”的数据传送到数组变量“y”中。
22、阅读下面的程序,回答问题。
MEMORY
{PAGE 0: PROG: origin = 0x2000, length = 0x1000
PAGE 1:DATA: origin = 0x3100, length = 0x1000
}
SECTIONS
{ .text: {} > PROG PAGE 0
.bss: {} > DATA PAGE 1
}
汇编程序:
.bss x,16
.bss y,16
.text
STM #x,AR2
STM #y,AR3
RPT #15
MVDD AR2+,*AR3+
问题:
(1)变量“x”的存储器地址是多少?位于哪个存储空间(程序还是数据存储空间)。
(2)语句“STM #x,AR2”的作用是什么?执行此句指令后,寄存器AR2的内容是多少?
(3)语句“MVDD AR2+,*AR3+”的执行了多少次?每执行一次寄存器AR2和AR3的内容如何变化?
(4)此段代码的功能是多少?
答:(1)变量“x”的存储器地址是0x3100;位于数据存储空间
(2)将变量“x”的地址赋给辅助工作寄存器AR2,AR2=3100h。
(3)执行了16次,每执行一次辅助工作寄存器AR2和AR3的内容增一。
(4)将数组变量“x”的数据传送到数组变量“y”中。
四、简答题
1、在C54x的汇编语言中,使用“#”、 “*”、 “@”符号作为操作数的前缀各表示什么意思?
答:使用“#”号作为前缀,汇编器将操作数作为立即数处理。即使操作数是寄存器或地址,也将作为立即数。
使用“*”符号作为前缀,汇编器将操作数作为间接地址,即把操作数的内容作为地址。
使用“@”符号作为前缀,汇编器将操作数作为直接地址,即操作数由直接地址码赋值。
2、已知DSP的工作时钟为20MHZ,现需要用定时器定时10ms,请问PRD和TDDR寄存器的初始值如何确定?
答:(PRD)=19999,(TDDR)=9;
或(PRD)=49999,(TDDR)=4
3、TMS320C54X指令系统的寻址方式各有哪些?各寻址方式举一例说明。
答:
寻址方式
用途
举例
指令含义
立即寻址
主要用于初始化
LD #10,A
立即数10 -> A
绝对寻址
利用16位地址寻址存储单元
STL A,*(y)
将AL内容存入y所在的存储单元
累加器寻址
将累加器中的内容作为地址
READA x
将A的内容作为地址读程序存储器,并存入x存储单元
直接寻址
利用数据页指针和堆栈指针寻址
LD @x,A
(DP+x的低7位地址) ® A
间接寻址
利用辅助寄存器作为地址指针
LD *AR1,A
((AR1)) -> A
存储器映像寄存器寻址
快速寻址存储器映象寄存器
LDM ST1,B
(ST1) -> B
堆栈寻址
压入/弹出数据存储器和存储器映像寄存器MMR
PSHM AG
(SP)-1->SP,(AG) -> (SP)
4、简述COFF文件中“ 段”的概念,有哪些常用的段?
答:段是COFF文件中最重要的概念。每个目标文件都分成若干段。段——是存储器中占据相邻空间的代码或数据块。一个目标文件中的每个段都是分开的和各不相同的。
.text 段(文本段),通常包含可执行代码;
.data 段(数据段),通常包含初始化数据;
.sect段——已初始化段,由汇编器伪指令建立的自定义段。
.bss段——未初始化段;
.usect段——未初始化段,由汇编命令建立的命名段(自定义段)。
5、一个典型的DSP系统通常由哪些部分组成?画出框图.
答:DSP芯片及DSP基本系统、程序和数据存储器、数/模和模/数转换器、模拟控制与处理电路、各种控制口和通信口、电源处理电路和同步电路等。
6、在C54x的程序中,“.text”和“.sect”段有什么区别?
答:在程序中,所有的“.text”段在编译时合并为一个“.text”段,并将其定位在一个连续的存储空间中。
在“.sect”定义的段中,由于不同的段均有不同的段名,因此不同段名的“.sect”段不会合并为一个段,而且可以分别定位在程序存储空间的不同位置。
7、简述C54x系列DSP的定时器工作过程。
答:①定时分频系数和周期数分别装入TCD和PRC寄存器中;
②每来一个定时脉冲CLKOUT,计数器PSC减1;
③当PSC减至0时,PSC产生借位信号;
④在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;
⑤当TIM减到0时,定时时间到,由借位产生定时中断TINT和定时输出TOUT,并将PRD中的时间常数重新装入TIM。
8、数字信号处理技术及算法在工程实践中常见的实现方法有哪些?
答:数字信号处理技术及算法在工程实践中常见的实现方法有:
①在通用计算机(PC机)上用软件(如Fortran、C语言)实现
② 在通用计算机系统中加入专用的加速处理机实现
③用单片机实现
④用通用的可编程DSP芯片实现
⑤用专用的DSP芯片实现,可用在要求信号处理速度极快的特殊场合,如专用于FFT、数字滤波、卷积、相关算法的DSP芯片
⑥用基于通用DSP核的ASIC芯片实现。
9、简述冯·诺依曼结构、哈佛结构和改进的哈佛结构之间的区别。
答:冯·诺伊曼(Von Neuman)结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
哈佛(Harvard)结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
改进型的哈佛结构是采用双存储空间和数条总线,即一条程序总线和多条数据总线。允许在程序空间和数据空间之间相互传送数据,使这些数据可以由算术运算指令直接调用,增强芯片的灵活性;
提供了存储指令的高速缓冲器(cache)和相应的指令,当重复执行这些指令时,只需读入一次就可连续使用,不需要再次从程序存储器中读出,从而减少了指令执行作需要的时间。
10、简述链接器命令文件中MEMORY和SECTIONS两条指令的作用。
答:MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。
SECTIONS伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。
11、简述链接命令文件(·cmd文件)的功能。
答:链接命令文件(·cmd文件)指定存储器的结构和段的定位,有MEMORY和SECTIONS两条指令。
MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。
SECTIONS伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。
12、简述DSP处理器中断系统分为几种中断,如何清除中断标志?
答:硬件中断:由片外管脚和片内外设引起的中断,又分为可屏蔽中断和非屏蔽中断。
软件中断:软件中断是由程序指令产生的中断请求,
有三种情况将清除中断标志:
(1)软件和硬件复位,即’C54x的复位引脚RS=0;
(2)相应的IFR标志位置1;
(3)使用相应的中断号响应该中断,即使用INTR #K指令。
13、简述C54x系列DSP定时器的组成部分、各部分分别起什么作用?
答:定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR及相应的逻辑控制电路组成。定时周期寄存器PRD用来存放定时时间,定时寄存器TIM为16位减1计数器,定时控制寄存器TCR存放定时器的控制位和状态位,逻辑控制电路用来控制定时器协调工作。
14、简述DSP处理器TMS320VC5402在微计算机工作模式中上电启动的过程。
答:DSP上电复位后,程序PC指针跳转到0xff80位置,在芯片的0xff80这个单元中存储着跳转指令、程序自动跳转到0xF800,开始执行自举装载程序,自举装载程序将片外存储器的程序搬运到DSP程序存储空间的某个地方,自举装载程序的最后一条指令是跳转指令,程序接着跳转到刚才搬运在程序存储空间的某个地址,从而开始程序的自动运行。
15、宏指令与子程序有哪些区别?
答:⑴宏指令和子程序都可以被多次调用,但是把子程序汇编成目标代码的过程只进行一次,而在用到宏指令的每个地方都要对宏指令中的语句逐条地进行汇编。
⑵在调用前,由于子程序不使用参数,故子程序所需要的寄存器等都必须事先设置好;
而对于宏指令来说,由于可以使用参数,调用时只要直接代入参数就行了。
16、简述TI公司C2000, C5000, C6000系列处理器的应用范围。
答:C2x、C24x称为C2000系列,主要用于数字控制系统;
C54x、C55x称为C5000系列,主要用于功耗低、便于携带的通信终端;
C62x、C64x和C67x称为C6000系列,主要用于高性能复杂的通信系统,如移动通信基站。
17、简述链接命令文件(.cmd文件)的功能。
答:链接命令文件(.cmd文件)指定存储器的结构和段的定位,有MEMORY和SECTIONS两条指令。
MEMORY伪指令——用来定义目标系统的存储器配置空间,包括对存储器各部分命名,以及规定它们的起始地址和长度。
SECTIONS伪指令——用来指定链接器将输入段组合成输出段方式,以及输出段在存储器中的位置,也可用于指定子段。
18、简述PMST寄存器中IPTR的作用。
答:C54x的中断向量地址是由PMST寄存器中的IPTR(9位中断向量指针)和左移2位后的中断向量序号所组成。
中断向量地址=IPTR+(左移2位的中断向量序号)
19、简述PMST寄存器中IPTR的作用。
答:C54x的中断向量地址是由PMST寄存器中的IPTR(9位中断向量指针)和左移2位后的中断向量序号所组成。
中断向量地址=IPTR+(左移2位的中断向量序号)
20、TMS320C54X DSP的程序代码或数据以段的形式装载于存储器中,段可分为哪两种基本类型?有哪5条伪指令来建立和管理各种各样的段?并指明各伪指令的功能。
答:段分为初始化段和未初始化段。
.text 段(文本段),通常包含可执行代码;
.data 段(数据段),通常包含初始化数据;
.sect段——已初始化段,由汇编器伪指令建立的自定义段。
.bss段——未初始化段;
.usect段——未初始化段,由汇编命令建立的命名段(自定义段)。
21、如何实现DSP由一种工作频率切换到另外一种工作频率?
答:步骤1:复位PLLNDIV,选择DIV方式;
步骤2:检测PLL的状态,读PLLSTATUS位;
步骤3:根据所要切换的倍频,确定乘系数;
步骤4:由所需要的牵引时间,设置PLLCOUNT的当前值;
步骤5:设定CLKMD寄存器。
22、简述DSP处理器中断系统分为几种中断,如何清除中断标志?
答:硬件中断:由片外管脚和片内外设引起的中断,又分为可屏蔽中断和非屏蔽中断。
软件中断:软件中断是由程序指令产生的中断请求,
有三种情况将清除中断标志:
(1)软件和硬件复位,即’C54x的复位引脚RS=0;
(2)相应的IFR标志位置1;
(3)使用相应的中断号响应该中断,即使用INTR #K指令。
推荐访问:作业 原理 DSP DSP原理及应用大作业 DSP原理及应用大作业 DSP作业