314446737d274344a57db1b3680d2a27.docx
- 文档编号:14593334
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:21
- 大小:139.84KB
314446737d274344a57db1b3680d2a27.docx
《314446737d274344a57db1b3680d2a27.docx》由会员分享,可在线阅读,更多相关《314446737d274344a57db1b3680d2a27.docx(21页珍藏版)》请在冰点文库上搜索。
314446737d274344a57db1b3680d2a27
目录
第一部分TMS320LF2407DSP控制器和存储器
第二部分寻址方式、指令和汇编程序的
第三部分外设接口
第一部分TMS320LF2407DSP控制器和存储器
一、知识要点
1、DSP芯片的结构?
答:
DSP是改进的哈佛结构(80C51是哈佛结构)。
冯.诺依曼结构与哈佛结构的区别是地址空间和数据空间分开与否。
冯诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。
哈佛结构的特点:
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
改进的哈佛结构,其结构特点为:
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输,改进的哈佛结构在哈佛结构的基础上又加以改进,即使得程序代码和数据存储空间之间也可以进行数据的传送。
TMS320LF2407A采用改进的哈佛结构,芯片内部具有六条16位总线,即程序地址总线(PAB)、数据读地址总线(DRAB)、数据写地址总线(DWAB)、程序读总线(PRDB)、数据读总线(DRDB)、数据写总线(DWEB),其程序存储器总线和数据存储器总线相互独立,支持并行的程序和操作数寻址,因此CPU的读/写可在同一周期内进行,这种高速运算能力使自适应控制、卡尔曼滤波、神经网络、遗传算法等复杂控制算法得以实现。
结构示意图如下:
2、什么是流水线技术?
DSP是不是具有流水线技术(pipeline)?
答:
流水线技术是将各指令的各个步骤重叠起来执行,而不是一条指令执行完成之后,才开始执行下一条指令。
计算机在执行一条指令时,总要经过取指、译码、取数、执行运算等步骤,需要若干个指令周期才能完成。
流水线技术是将各指令的各个步骤重叠起来执行,而不是一条指令执行完成之后,才开始执行下一条指令。
即第一条指令取指后,在译码时,第二条指令就取指;第一条指令取数时,第二条指令译码,而第三条指令就开始取指,……,依次类推,如图所示。
使用流水线技术后,尽管每一条指令的执行仍然要经过这些步骤,需要同样的指令周期数,但将一个指令段综合起来看,其中的每一条指令的执行就都是在一个指令周期内完成的。
DSP处理器所采用的将程序存储空间和数据存储空间的地址与数据总线分开的哈佛结构,为采用流水线技术提供了很大的方便。
DSP2407采用四级流水线技术,结构如下:
(3)什么是DSP2407的多处理单元?
答:
DSP内部一般包括多个处理单元,如算术逻辑运算单元(ALU)、辅助寄存器运算单元(ARAU)、累加器(ACC)及硬件乘法器(MUL)等。
它们可以在一个指令周期内同时进行运算。
例如,在执行一次乘法和累加运算的同时,辅助寄存器单元已经完成了下一个地址的寻址工作,为下一次乘法和累加运算做好了充分准备。
因此,DSP在进行连续的乘加运算时,每一次乘加运算都是单周期的。
DSP的这种多处理单元结构,特别适用于大量乘加操作的矩阵运算、滤波、FFT、Viterbi译码等。
许多DSP的处理单元结构还可以将一些特殊的算法,例如FFT的位码倒置寻址和取模运算等,在芯片内部用硬件实现,以提高运行速度。
多处理单元结构,特别适用于大量乘加操作的矩阵运算、滤波、FFT、Viterbi译码等。
(4)DSP240x系列芯片的指令周期是多少?
答:
采用4μmNMOS制造工艺,早期DSP的指令周期约400ns,运算速度为5MIPS。
采用高性能CMOS制造工艺,其运行速度更快。
TMS320LF240x运行速度可达30MIPS,使得指令周期缩短到30MHz。
TMS320C54x运行速度可达100MIPS。
TMS320C6203的时钟为300MHz,运行速度达到2400MIPS。
DSP指令功能强大,一条特殊指令可完成十分复杂的功能。
如:
TMS320C54x中的FIRS和LMS指令,分别用于系数对称的FIR滤波器和LMS算法。
(5)2407DSP芯片的运算精度高如何?
答:
早期DSP的字长为8位,后来逐步提高到16位、24位、32位。
为防止运算过程中溢出,有的累加器达到40位。
浮点DSP提供了更大的动态范围,如TMS320C3x、TMS320C4x等。
(6)TMS320LF2407DSP芯片的外设接口有那些?
答:
新一代DSP的接口功能越来越强,片内具有主机接口(HPI),直接存储器访问控制器(DMAC),外部存储器扩展口,A/D接口,串行通信口,中断处理器,定时器,锁相环时钟产生器以及实现在片仿真符合IEEE1149.1标准的测绘访问口,更易于完成系统设计。
(7)TMS320LF2407DSP芯片的功耗如何?
答:
许多DSP芯片都可以工作在省电方式,使系统功耗降低。
一般芯片为0.5~4W,而采用低功耗技术的DSP芯片只有0.1W,可用电池供电。
如TMS3205510仅0.25mW,特别适用于便携式数字终端。
(8)TMS320LF2407DSP的乘法功能是如何实现的?
答:
通用微处理器中的乘法指令往往需要多个指令周期,而由于DSP芯片具有专用的硬件乘法器,使得乘法可在一个指令周期内完成,还可以与加法并行进行,即完成一个乘法和加法只需一个指令周期。
可见,高速的乘法指令和并行操作大大提高了DSP处理器的性能。
(9)TMS320C2407系列芯片的组成?
答:
(1)CPU
(2)存储器(3)片上外设
DSP最重要的特点:
特殊的内部结构、强大的信息处理能力及较高的运行速度。
(10)DSP芯片如何进行分类?
答:
(1)按用途分类:
通用型DSP芯片(本课程主要讨论的芯片),一般指可以用指令编程的DSP芯片,适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。
专用型DSP芯片,为特定的DSP运算而设计,如数字滤波、卷积和FFT等,通过加载数据、控制参数或在管脚上加控制信号的方法使其具有有限的可编程能力。
如Motorola公司的DSP56200。
(2)按数据格式分
定点DSP:
数据以定点格式工作的DSP芯片称为定点DSP芯片,该芯片简单、
成本较低。
两种基本表示方法:
•整数表示方法:
主要用于控制操作、地址计算和其他非信号处理的应用。
•小数表示方法:
主要用于数字和各种信号处理算法的计算中。
定点表示并不意味着一定是整数表示。
浮点DSP:
数据以浮点格式工作的DSP芯片称为浮点DSP芯片,该芯片运
算精度高、运行速度快。
浮点数在运算中,表示数的范围由于其指数可自动调节,因此可避免数的规格化和溢出等问题。
但浮点DSP一般比定点DSP复杂,成本较高。
(3)TI公司DSP芯片简介
•第一代:
TMS32010及其系列产品(1982年)
•第二代:
TMS32020、TMS320C25/C26/C28
•第三代:
TMS320C30/C31/C32,
•第四代:
TMS320C40/C44,
•第五代:
TMS320C50/C51/C52/C53/C54和集多个DSP于一体的高性能DSP芯片TMS320C80/C82等
•第六代:
TMS320C62x/C67x等。
其中•C2x系列DSP控制器,具有很好的性能,集成了Flash存储器、高速A/D、CAN模块等。
•C2x系列DSP芯片价格低,具有较高的性能和适用于数字化控制领域的功能。
因此在工业自动化、电动机控制、家用电器和消费电子等领域得到广泛应用。
(4)TMS320LF2407DSP的引脚分布,具有144个引脚
1、选择题
(1)TMS320LF2407系列DSP是A芯片。
A.定点16位B.浮点16C.定点32位D.浮点32位
(2)当SXM=1时候,当输入定标移位器的输入为97F3h,左移4位后,其结果为B。
A.000097F3hB.FFF97F30hC.00097F3hD.FF97F300h
(3)当SXM=0时候,当输入定标移位器的输入为97F3h,左移4位后,其结果为C。
A.000097F3hB.FFF97F30hC.00097F30hD.FF97F300h
(4)乘积定标移位器PSCALE可对乘积结果采用4种移位方式,下列说法不正确的是D。
A.PM=00,乘积结果不移位,直接送到CALU单元
B.PM=01,乘积结果左移1位
C.PM=10,乘积结果左移4位
D.PM=11,乘积结果左移6位
(5)在程序,若需指定下一个辅助寄存器为AR5,则装载ST0后,STO的结果应为C。
A.0604hB.B604hC.A604hhD.8064h
(6)在系统控制和状态寄存器2中,
可设置为微处理器和微控制器方式,以下说法不正确的是C。
A.
=0,器件设为微控制器方式,程序地址范围从0000-7FFFh被映射到片内
B.
=1,器件设为微处理器方式,程序地址范围从0000-7FFFh被映射到片外
C.
=0,器件设为微处理器方式,程序地址范围从0000-7FFFh被映射到片内
D.复位后,可以通过软件来改变
以动态映射存储器到片内或片外
2、判断题
1、为清除CPU中断标志寄存器(IFR),必须向其写1,而不是0。
(√)
2、LF240x内核提供了一个不可屏蔽的中断NMI和6个按优先级获得服务的可屏蔽中断INT1至INT6。
(√)
3、当状态寄存器ST1中CNF=0,可配置的双口RAM被映射到数据存储空间;CNF=1,可配置的双口RAM被映射到程序存储空间。
(√)
4、TMS320LF2407系列DSP芯片可供用户使用的程序空间有32K片内FLASH和256字节的ROM。
(ⅹ)
5、TMS320LF2407系列DSP芯片共8个辅助寄存器算术单元,提供了强大而灵活的间接寻址能力。
(√)
6、在加载STO的过程,可以采用SECT指令和CLRC指令,将寄存器的每一位单独置位或清0;同时也可以使用LST将数据写入STO,但是INTM位不受LST指令的影响。
(√)
7、TMS320LF2407系列DSP芯片采用的改进哈佛结构,而且具有四级流水线操作。
(√)
8、中断的矢量地址位于DARAM中。
(ⅹ)
3、判断题
1、术逻辑部分主要组成包括:
中央算术逻辑单元,32位累加器,输出移位器。
2、TMS320LF240x系列DSP芯片的地址映像被组织位3个可独立选择的空间:
程序存储器空间(64K字),数据存储器空间(64K字);输入/输出(I/O)空间(64K字)。
3、数据存储器空间有3个片内的DARAM块,分别为B0,B1,B2,0块既可配置为数据存储器,也可配置为程序存储器。
CNF=0,DARAMB0被映射到程序存储空间;CNF=1,DARAMB0被映射到数据存储空间。
复位时,B0被映射到数据存储空间。
4、TMS320LF2407系列DSP芯片,系统复位后程序指针指向0000h处,程序从该处开始执行,一般要在该处加一条跳转指令使CPU自动转入用户程序的入口。
0000h-003Fh用于存储系统的中断向量表,当有中断请求信号时,CPU从该处取出中断子程序的入口地址。
5、0060h-007Fh为双口存储器DARAM(B2),为用户数据区。
0200h-02FFh为双口存储器DARAM(B0),当CNF=0时为用户数据区。
0300h-03FFh为双口存储器DARAM(B1),用户数据区。
0800h-0FFFh为2K字的单口存储器SARAM,为用户数据区。
6、在使用数据存储器时,将数据存储器空间一共分为512页,每一页由128个字组成。
在程序编写用指令LDP,可加载数据页范围为0-511,使用该指令后,将影响ST0的低9位。
7、中断屏蔽寄存器和中断标志寄存器存放在数据存储器的第0页,其地址分别为:
0004h和0006h。
8、要访问I/O空间,可以IN和OUT两条指令。
第二部分寻址方式、指令和汇编程序的编写
1、选择题
1、TMS320LF240x系列DSP的寻址方式说法有误的是A。
A.TMS320LF240xDSP的立即寻址方式中,只有长立即数寻址,没有短立即数寻址
B.TMS320LF240xDSP的寻址方式有:
立即寻址方式,直接寻址方式,间接寻址方式
C.TMS320LF240xDSP的直接寻址方式在改变数据页后,必须重新装载
D.TMS320LF240xDSP的间接寻址是通过8个16位的辅助寄存器来访问数据空间的
2、下列关于汇编语言程序编写的格式说法错误的是C。
A.语句必须以标号、空格、星号或分号开始,而且每部分必须由1个或多个空格分开
B.开始于第1列的注释须用星号(*)或分号(;)标示,但在其他列开始的注释前面只能用分号
C.若使用标号,则必须从第1列开始。
标号长度最多为32个字符,由A-Z、a-z、0-9、#,*和$等组成,但第1个字符不能为数字。
标号后可以跟一个冒号(:
),但并不作为标号的一部分。
D.指令一定不能从第1列开始,否则将被视为标号。
指令包括助记符指令、汇编伪指令(如.data,.set)、宏伪指令(如.macro)和宏调用。
3、下列关于2407段定义的说法错误的是A。
A..usect表示在初始化命名段保留空间,.usect伪指令和.bss伪指令相类似
B..text定义段内代码部分,一般用于包含程序主代码,.data定义初始化的数据命名段,.end表示终止汇编,它应当是书写的程序的最后一条语句
C.MEMORY,程序和数据区的分配指令;SECTIONS,指定的程序段和数据单元的分配。
把这两个指令结合使用,就可以正确分配DSP2407的存储空间
D..ref识别在当前模块中使用但在其他模块中定义的符号
2、判断题
1、采用直接寻址时候,不必每条指令前都要设置数据页。
如果一段代码的所有直接寻址指令都访问通一个数据页,则只需在该段代码的最前面装载一次DP值。
总之,必须保证在访问新的数据页之前要改变DP。
(√)
2、头文件是用来定义系统内用到的一些寄存器的映射地址,以及用户自定义的一些变量和寄存器。
该文件的扩展名为.H,它只在程序编译的过程中使用,不占用程序存储单元。
(√)
3、.def。
用于定义在当前程序模块中定义的、在其他程序模块中可以使用的符号。
(√)
4、命令文件又称系统配置文件,用于实现对程序存储空间和数据存储空间的分配,具体地讲就是定义用户的汇编程序放在程序存储器中的位置,定义用户程序中自定义的变量在所使用的数据存储器中的确定位置。
命令文件的扩展名为.CMD。
(√)
5、MEMORY,该伪指令对目标系统中可以被使用的或将要被使用的程序和数据区间进行定义,包括定义其名称、属性、起始地址和地址长度。
(√)
6、SECTIONS,该指令定义汇编语言文件中的程序代码存放在由MEMORY所指定的程序存储器的哪个区间内,或者定义汇编语言文件中所定义的变量、缓冲区及数据区存放在由MEMORY所定义的哪个特定的数据区间中。
(√)
7、TMS320LF240x系列DSP芯片属于定点芯片,所谓的定点是指参与操作数据的小数点的位置是确定的。
(√)
8、由于TMS320LF240x芯片只能处理整型数。
然而参与数学运算的数不一定都是整型数,还有小数,这就涉及到如何用一个16位的整型数来表示一个小数的问题,这就是数据的定标问题。
(√)
9、在DSP汇编语言中没有相应的除法指令,但除法运算可通过一系列的定点减法和移位运算来实现。
(√)
10、
3、填空题
1、TMS320LF240x系列DSP的寻址方式有:
立即寻址方式,直接寻址方式,间接寻址方式。
2、在寻址方式中,立即操作数都是以符号#为前缀。
3、在DSP程序中,直接寻址通常是将指令中的数据页指针DP和操作数合并起来作为被访问的地址。
4、LDP#4;数据页设为4(0200h~027Fh)。
ADD9H,5;将数据地址0209h处的内容左移5位后加至累加器。
5、通过向状态寄存器ST0中的3位辅助寄存器指针(ARP)装入0~7,可以选择特定的辅助寄存器。
ARP可由MAR指令、LST指令来装载。
执行过程中,当前AR中的内容用作被访问数据存储器的地址。
6、汇编语句格式一般包含4部分:
标号、指令、操作数和注释。
7、TMS320LF240x的汇编语言共86条,分为6大类,分别是累加器、算术和逻辑指令;
辅助寄存器和数据页指针指令;TREG、PREG和乘法指令;跳转指令;控制指令;I/O和存储器操作指令。
8、在DSP软件进行调试之前,一般需要书写3种格式的文件:
汇编语言文件、头文件和命令文件。
9、数据的定标一般采用Q表示法,Q值的大小表示小数点后的位数,如Q15表示小数点后有15位数,Q0表示小数点后没有数据。
通常Q值越大,表示的数据范围就越小,数据的精度也就越高;Q值越小,表示的数据范围就越大,数据的精度也就越低。
10、在查表法中,将函数的自变量在其定义域范围内进行离散化处理,得到具有一定分辨率的离散点,通过计算得到与其对应的函数输出离散点,然后将这些离散点按对应关系制作成一张表格,并将这个表格存储在程序存储区间。
4、阅读程序题
1、填写下列程序运行后的结果:
LDP#6;DP=6:
地址0300h-037Fh
ADD1,1
执行后:
C=0,(ACC)=40h
2、ADDC0;DP=6:
地址0300h-037Fh
运行后:
C=0,(ACC)=18h
3、请写出在执行下列程序后,各单元的内容。
.include"F2407REGS.H";引用头部文件
.def_c_int0
.text
_c_int0:
;相当于主程序的入口
LACC#1234h
LACC#12h,4
MAR*,AR3
LARAR3,#3490h
LARAR4,#2082h
LARAR5,#12h
LDP#4;指向0200h~027Fh区
SPLK#04,4
SPLK#01AH,6
SPLK#02BH,8
.end
程序执行后:
(ACC)=0120h
(AR3)=3490h
(AR4)=2082h
(AR5)=12h
(0204h)=04h
(0206h)=01Ah
(0208h)=02Bh
4、请写出在执行下列程序后,下面指定各单元的内容。
.include"F2407REGS.H";引用头部文件
.def_c_int0
.text
_c_int0:
;相当于主程序的入口
LDP#4;指向0200h~027Fh区
SPLK#10,0
SPLK#11,1
SPLK#12,2
SPLK#13,3
SPLK#14,4
SPLK#15,5
SPLK#16,6
SPLK#17,7
SPLK#18,8
SPLK#19,9
MAR*,AR0
LARAR1,#09h
LARAR0,#200h
LACC#0
PGM191:
ADD*+,AR1
BANZPGM191,AR0
.end
运行后:
(0204h)=14
(0206h)=16
(0208h)=18
(AR0)=020Ah
(AR1)=0
(ACC)=91h
5、请写出执行后,各指定单元的内容。
;W=5X+10Y-3Z,X=8,Y=4,Z=10
.include"F2407REGS.H";引用头部文件
.def_c_int0
.text;建立一个段为.text的代码段
_c_int0:
;相当于主程序的入口
LDP#6;指向0300h~037Fh区
SPLK#8,2h;给(0302h)赋初值8
SPLK#4,4h;给(0304h)赋初值4
SPLK#10,7h;给(0307h)赋初值10
SPM0;设置PREG输出的移位模式
MAR*,AR2;AR2为当前AR
LARAR2,#0302h;x的地址
LT*;T←x
MPY#5;P←5x
LARAR2,#0304h;y的地址
LTP*;y→T,P→ACC
MPY#10;P←10y
LARAR2,#0307h;z的地址
LTA*;z→T,ACC+P→ACC
MPY#3;P←3z
SPAC;(5X+10Y)-3Z累加,累加器减乘积寄存器
LARAR2,#030Ah;W的地址
SACL*+;ACC低16位复制到指定的数据存储单元030Ah
SACH*
.end
运行后:
(0302h)=8h
(0304h)=4h
(0307h)=0Ah
(030Ah)=32h
(AR2)=020Ah
(TREG)=0Ah
(PREG)=1Eh
(ACC)=32h
5、编写程序题
对数据空间采用直接寻址和间接寻址两种方式进行访问。
在文件的链接过程中,需要用到命令文件(.cmd)。
请按如下参数设计一个命令文件,其参数为:
中断向量表起始地址为7600h,长度为8000h;
源程序代码在中断向量之后;
初始化数据起始地址为1F10h,长度为4000h;
未初始化数据在初始化数据之后。
.cmd文件编写的参考格式如下:
MEMORY
{
PAGE0:
VECSorigin=0000h,length=0040h
FLASH:
origin=100h,length=7F00h
SARAM_P:
origin=8000h,length=7ffh
PAGE1:
B2:
origin=0060h,length=020h
B0:
origin=200h,length=100h
B1:
origin=300h,length=100h
SARAM_D:
origin=8000h,length=8000h
}
SECTIONS
{
vectors:
>VECSPAGE0
.text:
>FLASHPAGE0
.cinit:
>FLASHPAGE0
.switch:
>FLASHPAGE0
.bss:
>SARAM_DPAGE1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 314446737 d274344a57db1b3680d2a27
![提示](https://static.bingdoc.com/images/bang_tan.gif)