- 前言
- 实验须知
- 概述
- 实验一 TMS320LF2407 DSP 实验开发系统及CC软件应用
- 实验二 常用指令操作实验
- 实验三 追灯式电路控制
- 实验四 按键计数器
- 实验五 键盘和 LED 发光二极管显示电路
- 实验六 模/数转换器 ADC 应用
- 实验七 串行外围接口 SPI 的应用
- 实验八 串行通信接口模块(SCI)
- 实验九 TMS320LF2407 与图形液晶显示模块接口及应用
- 实验十 I2C 串行日历时钟与 TMS320LF2407 的接口应用
- 附录一 DSP 器件仿真开发技术基础
- 附录二 TMS320LF2407 DSP 实验开发系统
- 附录三 TMS320LF2407 DSP 器件简介
- 附录四 XDS510 仿真开发系统的基本操作技术
- 附录五 程序开发平台 Code Composer
- 参考文献
附录三 TMS320LF2407 DSP 器件简介
TMS320LF240X系列包括:定点、浮点、多处理器数字信号处理器和定点DSP控制器。TMS320LF240X系列DSP的体系结构专为实时信号处理所要求的特定运算而设计,该系列DSP控制器将实时处理能力和控制器外设功能集于一身。因此,DSP与单片机相比较,具有比较特殊的运算器结构和内部总路线结构。从应用的角度看,DSP器件与单片机具有完全相同的外部硬件条件。
由此可知,从总体上看,DSP器件的应用设计技术与单片机的应用设计技术完全相同。从具体开发技术上看,由于DSP器件采用了与单片机不同的内部总线和运算功能电路以及DSP处理所需要的算法比较复杂。因此,DSP器件的寻址方式和指令系统要比一般的8位单片机复杂。
了解和掌握DSP器件的基本结构和特性,是设计数字信号处理应用系统的基础。尽管不同厂家针对不同用途设计的DSP器件各不相同(主要的原因就是要达到最好的性能价格比),但都具有哈佛结构和硬件乘法电路等基本特征,而且同一系列各型号的DSP器件所采用的CPU是基本相同的。所以,了解和掌握了一种DSP器件就基本上可以很快地学会其它不同DSP器件的应用方法。本实验室选用TMS320LF2407 DSP器件作为学习其它DSP器件的基础。TMS320LF2407 芯片的结构与性能可概述如下:
1.TMS320LF2407 的结构
TMS320LF2407 内部可分为六大部分,它们分别是:
存储器:包括数据存储器和程序存储器(RAM及ROM);
中央算术逻辑单元CALU:它由算术逻辑单元ALU、累加器ACC(ACCH、ACCL)、乘法器MULI及相应的移位寄存器所组成;
与寻址和数据有关的辅助寄存器:包括辅助寄存器AR0~AR7、辅助寄存器单元ARAU,为辅助寄存器配合使用的指针寄存器ARP、缓冲器ARB及数据存储器页指针寄存器DP等;
和指令操作有关的寄存器:包括下一条程序地址寄存器NPAR、程序计数器PC、程序地址寄存器PAR、微堆栈MSTACK及堆栈Stack等;
特殊用途的寄存器:有14个,分别用于控制、状态及外界通信等,其中DRR,DXR,TIM,PRD,IMR及GREG并不是单独的器件,而是利用了数据存储器B2块的前六个单元,故称为“存储器映射寄存器”;
程序总线和数据总线:两总线中间有局部的交叉通路。
2.TMS320LF2407 的结构特点
TMS320LF2407 DSP器件的硬件结构及指令集都是努力朝着适应DSP的需要而设计的,如:
•高速运算能力:DSP在实际应用中的一个最突出问题是实时实现问题,即在下一个抽样数据到来之前必须对上一个抽样数据完成所需的所有运算。
•适合于DSP特点的硬件结构及指令系统:信号处理中存在着大量的乘和累加的重复运算,DSP的硬件及软件指令为这一主要运算提供了方便。DSP中另一个常用的运算是循环移位,如循环卷积运算。TMS320LF2407中的16位移位寄存器即是一个适于这一特点的桶形态(barrel)移位器;
•较强的数据通信能力:信号处理必然要和输入、输出数据打交道,即涉及较大的数据吞吐量。TMS320LF2407为此提供了DMA(直接存储器寻址)通信方式、串行及并行通信方式;
•可编程性:TMS320LF2407片内有32K的FLASH程序存储器,可将用户已调试完备的程序写入。片内、片外的RAM为用户编程提供了方便。TMS320LF240X系列的软件可由该系列的汇编语言编写,也可由C语言编写。
总之,DSP微处理器都在高速、高精度、方便编程、易于开发及努力适应DSP的特点方面不断努力。
3.TMS320LF2407 的存储器组织
TMS320LF2407支持192K字的存储空间的管理,存储空间由三个相互独立的可选择的空间组成:64K字的程序存储器空间,64K字的数据存储器空间、64K字的I/O 寻址空间。程序存储器空间用来存放程序(要执行的指令);数据存储器空间用来保存执行指令所使用的数据(需要处理的数据或数据处理的中间结果);I/O 寻址空间则提供了与外部存储器映射的接口,并能够作为外部数据存储空间。这些存储空间的任何一个(例如RAM、ROM、EEPROM或存储器映射外设)都能够驻留在片上或片外。因此TMS320LF2407的存储器结构具有相当大的灵活性。TMS320LF2407采用了增强的哈佛结构,有三组并行总线:程序总线PB、数据总线DB――写数据总线DWEB、读数据总线DRDB,因此CPU具有同时访问程序空间和数据空间的能力,以实现不同的器件的操作,还可进行双操作数读操作、32位的双字读和并行的单字数据读/写能力。
为了增强访问内存能力,TMS320LF2407 中的片内RAM被划分为更小的块进行管理,以避免器件内外的大量数据交换,以保证系统高速特性。片内RAM为544个字,分为三块:块B1有256个字,块B2有32个字,为数据RAM。而256个字的块B0即可作为数据RAM,也可作为程序RAM,由指令指定。如:指令CLRC CNF能把B0定义为数据RAM,而SETC CNF能把B0定义为程序RAM。由于这样的划分,CPU就可以在一个周期内从一个块的DARAM存储单元中读数据,而同时向另一个块的DARAM存储单元中写数据。
TMS320LF2407有两条地址总线,用于提供执行指令所需地址的地址总线。利用辅助寄存器算术单元ARAU可在每个周期产生两个数据存储器地址。程序存储器和数据存储器的地址安排为:
数据存储器每128个字分为一页,以便直接寻址,所以,64K字可分成512页。当把B0看作数据存储器(即执行CLRC CNF指令)时,B2块在第0页,前6个单元为专用寄存器,B0在第4、第5页,B1在第6、第7页。即片内数据RAM都安排在低位地址处。中间保留的单元用户无法访问。从0400H至0FFFH为片外扩展数据RAM。
当CNF位为0(即把B0块确认为数据存储器)时,且MP/MC引脚为0时,器件被配置为微控制器方式,片上可寻址ROM或FLASH;当MP/MC引脚1时,器件被配置为微处理器方式,这时寻址空间都是片外程序RAM,总计64K字。
当CNF位为1(即把B0块视为程序存储器)时,这时在数据存储区的0200H~02FFH(原B0处)不再存在。B0块被移至程序区的高地址,即0FE00H~0FFFFH,并视为片上程序RAM。
当允许使用片上ROM时,复位后将执行ROM中的程序对器件进行引导操作。尽管MP/MC引脚只在复位时取样,但仍然可以通过软件设置或清除PMST寄存器中的MP/MC位来禁止或允许片上ROM。
TMS320LF2407有几种片内存储器:双端口存取RAM(DARAM)、单存取RAM(SARAM)和ROM、FLASH程序存储器。ROM和FLASH的速度较慢,而DSP片内的RAM很快,片外的RAM也较快,为了使DSP充分发挥它的能力,根据用户的设置可将程序代码放在RAM中运行,以提高DSP的速度。
由以上的讨论可以看出,TMS320LF2407有三个独立的寻址空间。这三种不同形式的寻址是由信号线DS,PS和IS来区分的。这三个信号线只是在对片外总线寻址时才起作用,对片内寻址时它们皆呈高阻状态。实际上,在对片外总线寻址时,任两个不可同时有效。
TMS320LF2407的寻址方式分为数据寻址方式和程序寻址方式,数据寻址方式有:
•立即数寻址:即在指令中直接包含了所需要的操作数。
•绝对寻址:即在指令中包含所要寻址的存储单元的地址。
•累加器寻址:即用累加器的数值作为地址来读取数据。
•直接寻址:指令中包含数据存储器地址的低7位,而高9位地址由页面指针DP提供(由ST0中的DP来决定)。
•间接寻址:根据辅助寄存器(AR0 AR7)的内容来寻找存储器映射寄存器地址,地址的低7位来自指令或某个辅助寄存器的低7位,高9位设置为0。
•堆栈寻址:地址来自堆栈指针SP。
4.TMS320LF2407 的状态寄存器
TMS320LF2407 芯片有两个状态寄存器,即ST0和ST1,各是16位,它们保存着芯片工作时的各种状态和模式,并与指令有着密切的关系。因为这两个寄存器是存储器寻址,所以可以把这两个寄存器的内容存入数据存储器并能从数据存储器读出。这就提供了系统保存和恢复的功能,存储器的状态能够在子程序和中断服务程序中保存和恢复。其详细内容参见教课书。
5.TMS320LF2407的工作过程简述
当由TMS320LF2407构成的DSP系统上电复位后,指令计数器(寄存器)PC自动指向程序存储区的0000H单元。在程序存储区的0000H~001FH这32个单元中放置的是中断服务程序的入口地址,因此,实际的程序要避开这些单元。一般在0000H设置一跳转指令,PC按此跳转指令转移到程序的入口地址。
指令计数器PC中总是存放下一条要执行的指令的地址。一旦PC指向该指令的地址,地址单元内的指令被取出并送入指令寄存器IR中,在其中完成指令的译码与执行。与此同时,预取指令计数器PFC中又会有下一条欲取的指令的地址,该地址单元的内容(即指令)被存入预取指令寄存器QIR中。这时PC自动加1,QIR的内容也自动放入IR中。这样,实现了取指、译指及执指的流水线操作。PC的值要么自动加1,要么按指令跳转。在程序执行时,不可避免地会出现跳转、中断及调用子程序操作,为保证正确的返回,原PC值保存于堆栈Stack中。
在预取指令的过程中,有时会遇到指令BLKD/BLKP(数据区和程序区之间数据块移动)、TBLR/TBLW(数据区和程序区之间单个字的移动)和MAC/MACD(数据区某一单元的值和程序某一单元的值相乘),这三组指令都涉及到两个存储区,须要将其指令代码存放于微堆栈MSTACK中。
在TMS320LF2407中有两个算术逻辑单元,即CALU和ARAU,CALU内的ALU及乘法器MULT、累加器ACC及T寄存器、移位寄存器等完成DSP所需要的主要运算,而辅助寄存器算术逻辑单元ARAU主要用以完成寻址所需要的地址运算,并可用以完成循环运算时的循环计数。正由于两个算术单元的相对独立的存在,缩短了指令的执行时间,从而提高了运算速度。
TMS320LF2407是16位定点微处理器,但乘积寄存器PR是32位的,累加器ACC也是32位的(分成高16位、低16位两部分),从而减少了中间过程的舍入误差,提高了运算的精度。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论