最新版基于DSP最小应用系统设计实现本科毕业设计文档格式.docx
《最新版基于DSP最小应用系统设计实现本科毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《最新版基于DSP最小应用系统设计实现本科毕业设计文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
其中C54xx以其低廉的价格,低功耗和高性能等特点被广泛应用到通信和个人消费电子领域。
而以C54xx系列内核为基础的新一代DSP器件TMS320C5402不仅继承了上述优点,而且存储器被组织进三个独立的可选择的空间:
程序存储空间、数据存储空间和IO空间。
大小都是64K,总共是192K大小。
包括随机存储器(RAM)和只读存储器(RAM)。
其中,5402所采用的RAM是双存取访问RAM(DARAM)。
片上双存取访问RAM(DARAM)被组织在一些块上,因为每个DARAM块能够在每个机器周期中被访问两次,结合并行的体系结构,使得5402得以在一个指定的周期内完成四个并发的存储器操作:
一个取指令操作、两个数据读操作和一个数据写操作。
DARAM总是被映射到数据存储空间上,也可被映射进程序存储空间用于保存程序代码。
5402的26个CPU寄存器和片上外设寄存器被映射在数据存储空间[2]。
所以,TMS320C5402是54系列芯片的典型代表,也是目前国内DSP教材上介绍最多的芯片。
1.1.2数字信号处理的实现方法
数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。
数字信号处理在理论上的发展推动了其应用的发展。
反过来,数字信号处理的应用又促进了其理论的提高。
而数字信号处理的实现则是理论和应用的桥梁。
数字信号处理的实现方法一般有以下几种[1]:
1、在通用的计算机(如PC机)上用软件(如Fortran,C语言)实现。
2、在通用的计算机系统中加上专用的加速片来实现。
在此类系统中的加速片上带有智能芯片DSP,加速片在计算机系统中充当处理器的角色,通用计算机仅充当没有实时要求的管理者角色,而不参与实时的数字信号处理。
DSP与通用计算机的数据交流及控制可以通过PCI等扩展槽完成。
3、用通用的单片机(如MCS-51,96系列等)实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制等。
4、用专用DSP芯片来实现。
国际上已经推出了不少专用于FFT、FIR滤波、卷积、相关等算法的专用芯片,如,TDCl028可以实现FIR滤波器和相关运算。
Motorola公司的DSP56200,Zoron公司的ZR34881,也都属于专用型DSP芯片。
在专用的DSP芯片中,其软件算法已经在芯片内部用硬件实现,无需进行编程。
使用者给出输入数据,经过简单的组合即可在输出端得到结果。
这一般用于对速度要求很高的场合。
这种方案的缺点是灵活性差,并且开发工具还不完善。
5、用通用的可编程DSP芯片实现。
同其它智能芯片相比,通用DSP有更适合于数字信号处理的优点。
如采用改进的哈佛总线结构、内部有硬件乘法器、累加器、使用流水线结构、具有良好的并行特性、并设计有专门用于数字信号处理的指令系统等。
目前市场上的DSP芯片以美国德州仪器(TI)的系列芯片为主流。
1.2本论文目的及意义
DSP最小系统是DSP应用系统的最核心部分,本课题设计基于TMS320VC5402DSP芯片,构建了TMS320VC5402DSP最小系统,并通过IO口电路测试了DSP最小系统板的可用性,为以后的学习提供了最核心的电路模块。
1.3本论文的主要内容
本论文的主要内容有:
(1)基于TMS320VC5402的结构和功能,结合TMS320VC54X系列DSP实验教学的内容和要求,对DSP最小系统进行总体设计。
(2)基于TMS320VC5402的DSP最小系统的设计,包括电源电路、时钟和复位电路、片外存储器电路以及JTAG仿真电路的设计。
(3)在CCS集成开发环境下,实现系统自举加载和IO口电路测试实验。
第二章系统总体设计
本章介绍了TMS320VC5402芯片的结构和功能,在此基础上对DSP最小系统的功能方框图进行了规划,并对整个系统的设计方法进行了介绍。
2.1TMS320VC5402简介
TMS320VC54X是为实现低功耗、高性能而设计的定点DSP芯片,主要应用在通信系统方面。
该芯片的内部结构及指令系统都是全新设计的,它的主要特点是[3][4][5]:
CPU特点:
⏹先进的多总线结构。
⏹40位算术逻辑运算单元(ALU)。
⏹17位x17位并行乘法器与40位专用加法器相连。
⏹比较、选择、存储单元(CSSU)。
⏹指数编码器可以在单个周期内计算40位累加器中数值的指数。
⏹双地址生成器包括8个辅助寄存器和两个辅助寄存器算术运算单元(ARAU)。
存储器特点:
⏹64K字程序存储器、64K字数据存储器以及64K字IO空间。
指令系统特点:
⏹单指令重复和块指令重复操作。
⏹块存储器传送指令。
⏹32位长操作数指令。
⏹同时读入两个或3个操作数的指令。
⏹并行存储和并行加载的算术指令。
⏹条件存储指令。
⏹从中断快速返回指令。
在片外围电路特点:
⏹软件可编程等待状态发生器。
⏹可编程分区转换逻辑电路。
⏹带有内部振荡器。
⏹外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
⏹数据总线具有总线保持特性。
⏹可编程定时器。
电源特点:
⏹可用IDLEl、IDLE2和IDLE3指令控制功耗,以工作在省电方式。
⏹可以控制关断CLKOUT输出信号。
在片仿真接口特点:
⏹具有符合IEEEll49.1标准的在片仿真接口(JTAG)。
2.2系统功能方框图
基于TMS320VC5402DSP最小系统的设计,此最小系统主要由时钟及复位电路、电源电路、JTAG仿真接口电路以及片外存储器电路等构成。
系统框图如图2-1所示[6]。
图2-1TMS320VC5402最小系统框图
2.3系统的设计方法
本系统设计以模块电路为基础,主要采用实验和仿真的设计方法对各模块电路硬件和软件展开设计。
整个系统设计的大致步骤如图2-2所示。
软件部分的设计步骤为:
(1)根据需要用汇编语言或C语言编写程序。
(2)将程序转化成DSP汇编,并送到编译器进行编译,生成目标文件。
(3)将目标文件送链接器进行链接,得到可执行文件。
(4)将可执行文件调入调试器进行调试,检查运行结果是否正确。
如果正确继续,否则返回修改。
(5)进行代码转换,将代码写入FLASH,并脱离仿真器运行程序,检查结果是否正确。
硬件部分设计步骤为:
(1)设计硬件实现方案,即根据性能指标、功能要求等确定最优硬件实现方案,并画出其硬件系统框图。
(2)进行器件选型,根据功能、成本和使用经验等要求确定系统中的主要器件,最重要的是根据需要选择系统中主要芯片型号。
(3)设计原理图,在原理图的设计时必须熟悉系统的工作原理和器件的使用方法,对于一些关键的环节有必要进行一定的实验或仿真,原理图设计的成功与否是DSP系统能否正常工作的一个最重要因素。
图2-2实验开发系统的设计步骤
第三章系统硬件设计
最小系统是使得DSP芯片TMS320VC5402能够工作的最精简模块,它主要包括电源电路、复位电路、时钟电路、片外存储器接口电路和JTAG仿真接口电路。
DSP最小系统原理图见附录一。
3.1电源电路
本系统中除了DSP以外其它器件工作电压为3.3V,所以我们采用5V电源供电。
VC5402所要的工作电压分别是1.8V内核电压(CVDD)和3.3VIO电压(DVDD),并且DSP对这两种电源加电次序也有要求,理想情况下两个电源同时加电,但是一般场合很难做到,这时应先对CVDD加电,然后对DVDD上电。
讲究供电次序的原因在于:
如果只有CPU内核获得供电,周边IO没有供电,对芯片是不会产生任何损害的,只是没有输入输出能力而已;
如果反过来,周边IO得到供电而CPU内核没有供电。
那么芯片缓冲驱动部分的三极管在一个未知状态下工作,这是非常危险的[7]。
我们通过TI公司提供的DSP专用电源芯片TPS73HD318来构建电源电路,实现5V向3.3V和1.8V的电压转换,同时也避免了上电次序的问题。
图3-1为根据TPS73HD318芯片性能设计实现双电压输出的电源电路方案,具体分析如下[8]:
(1)TPS73HD318芯片可以提供最高750mA的电流,为了适应较大的电流输出场合,该芯片输入和输出的管脚都采用两个管脚,这样可以提高电流的通过率并有利于芯片散热。
(2)1.8V稳压器输入部分为1IN两个管脚,输入+5V的VCC,用10pF的电容对输入电源滤波;
输出部分为1OUT两个管脚,以提供高稳定性的1.8V输出。
(3)3.3V稳压器输入部分为2IN两个管脚,输入+5V的VCC,用10pF的电容对输入电源滤波;
输出部分为两个20UT管脚,以提供高稳定性的3.3V输出。
(4)系统的电源输入为+5V,同时设计电源指示灯LED,用来指示电源的通断。
图3-1电源电路
3.2复位电路
C5402的复位输入引脚RS为处理器提供了一种硬件初始化的方法,它是一种不可屏蔽的外部中断,可在任何时候对C54x进行复位。
当系统上电后,RS引脚应至少保持5个时钟周期稳定的低电平,以确保数据、地址和控制线的正确配置。
复位后,CPU从程序存储器的FF80H单元取指,并开始执行程序。
C5402的复位分为软件复位和硬件复位,软件复位是通过执行指令实现芯片的复位,硬件复位是通过硬件电路实现芯片的复位,硬件复位有上电复位、手动复位和自动复位三种[9]。
在DSP最小系统中采用手动复位方式。
手动复位电路是通过上电或按钮两种方式对芯片进行复位,如图3-2所示。
当按钮闭合时,电容C5通过按钮和R9进行放电,使电容C5上的电压降为0;
当按钮断开时,对电容C5进行充电,从而实现手动复位。
图3-2手动复位电路
3.3时钟电路
时钟电路用来为C5402芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过芯片内部的晶体振荡器或外部的时钟电路驱动。
C5402时钟信号的产生有两种方法:
使用外部时钟源、使用芯片内部的振荡器。
若使用外部时钟源,只要将外部时钟信号直接加到DSP芯片的X2CLKIN引脚,而X1引脚悬空;
若使用芯片内部的振荡器,只要在芯片的X1和X2CLKIN引脚之间接入一个晶体,用于启动内部振荡器。
本系统采用内部振荡器,在管脚X1和X2CLKOUT之间连接一个10MHz晶体来启动内部振荡器,如图3-3所示[10]。
为了实现DSP系统实时处理信号的效果,希望系统频率越快越好。
C5402最高可达100MHz工作频率,如果仍采用传统的2分频或4分频的方式,势必要求外部频率很高,这里我们采用了更加灵活的可编程PLL(ProgrammablePhase—LockedLoop)方式。
C5402内部具有一个可编程锁相环(PLL),它可以配置为以下两种模式:
(1)PLL模式,输入时钟乘以一个l~31之间的常数。
(2)DIV模式,输入时钟除以2或40。
PLL有倍频的功能,其输出信号的频率是输入信号的频率乘上一个倍数,正是PLL把外部基准频率变成多种频率提供给不同的具体系统,以满足各种应用的需要。
PLL受存储器映射的时钟模式寄存器CLKMD控制,复位后CLKMD的值根据DSP芯片三根输入引脚CLKMD1~CLKMD3确定,从而确定DSP的工作时钟。
本方案中,外接晶体频率为10MHz,为了得到倍频系数10,需设置时钟模式寄存器CLKMD的值为9007h,引脚CLKMDl~CLKMD3设计成001,则复位后C5402的工作频率是10×
1O=1OOMHz。
图3-3时钟电路
3.4片外存储器
C5402的存储空间可达192K×
16bits,64K程序空间,64K数据空间,64KIO空间。
C5402片内具有4K×
16bits的ROM和16K×
16bits的RAM。
片内ROM和RAM可以根据PMST寄存器中的DROM、OVLY来灵活设置,使其映像在程序空间和数据空间。
程序空间和数据空间未被映像的部分和64K的IO空间全部在片外,用片外存储器来补充。
在实际的应用中,应该根据程序量的大小来选择作为片外空间的存储芯片的容量,以免造成不必要的浪费,本文选择IS61LV25616AL(256K×
16bits)作为程序存储器的片外存储芯片,选择SST39LF200A(128K×
16bits)的Flash作为数据存储器的片外存储芯片,以实现自举加载,使C5402自成独立系统,图3-4为硬件连接图[11]。
图3-4外部存储器扩展电路图
IS61LV25616AL的工作电压为3V~3.6V,可以直接与TMS320C5402接口连接,而不必再使用电压接口芯片进行转接,使硬件电路更为简单。
SST39LF200A是SST公司生产的Flash存储器,其主要特点有:
3V~3.6V单电源供电,可使内部产生高电压进行编程和擦除操作;
支持JEDEC单电源Flash存储器标准;
只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;
可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据[12]。
访问存储空间时,当地址落在片内存储区域内,自动对这些区域进行访问;
当地址落在片外区域,自动访问外部存储器。
使用片内存储器有三个优点:
高速执行(不需要等待),低开销,低功耗,所以我们应尽量使用片内存储器。
3.5JTAG仿真接口电路
在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到C5402芯片上,实现在线调试DSP硬件和软件。
仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型,另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,其硬件连接如图3-5所示[13]。
图3-5JTAG接口电路
第四章系统软件设计
本章介绍系统软件的实现方法。
主要介绍了自举加载器的设计。
4.1软件开发工具介绍
C5402的开发工具包括代码生成和代码调试工具两大类。
代码生成工具是将源程序进行编译、汇编并链接成可执行程序。
代码调试工具是对可执行程序进行调试,使其能够达到预计目标。
CCS(CodeComposerStudio)是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,能完成DSP系统开发过程的各个环节,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。
CCS有两种工作模式,即:
软件仿真器模式和硬件在线编程模式;
前者可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试;
后者可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。
CCS运行时的主窗口如图4-1所示[2]。
图4-1CCS运行界面
4.1.1CCS的组成
CCS的开发系统主要由以下组件构成:
①TMS320VC54X集成代码产生工具;
②CCS集成开发环境;
③DSPBIOS实时内核插件及其应用程序接口API;
④实时数据交换的RTDX插件以及相应的程序接口API;
⑤由TI公司以外的第三方提供的各种应用模块插件。
4.1.2CCS的主要功能
CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持CC++和汇编的混合编程,其主要功能如下:
1)具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文件等;
2)含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编辑、编译、链接和调试等诸多功能集成到一个软件环境中;
3)高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;
4)工程项目管理工具可对用户程序实行项目管理。
在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;
5)基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;
6)断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点的设置;
7)探测点工具,可用于算法的仿真,数据的实时监视等;
8)分析工具,包括模拟器和仿真器分析,可用于模拟和监视硬件的功能、评价代码执行的时钟;
9)数据的图形显示工具,可以将运算结果用图形显示,包括显示时域频域波形、眼图、星座图、图像等,并能进行自动刷新;
10)提供GEL工具,利用GEL扩展语言,用户可以编写自己的控制面板菜单,设置GEL菜单选项,方便直观地修改变量,配置参数等;
11)支持多DSP的调试;
12)支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换;
13)提供DSPBIOS工具,增强对代码的实时分析能力。
4.2系统自举加载器的设计
TI公司的DSP芯片出厂时,在片内ROM中固化有引导装载程序Bootloader,其主要功能就是将外部的程序装载到片内RAM中运行,以提高系统的运行速度。
TMS320VC5402的Bootloader程序位于片内ROM的0F800H~OFBFFH空间。
系统上电时,DSP将检查外部引脚MPMC的状态,如果该引脚为高电平,则DSP按微处理器模式启动,从片外OFF80H地址处开始执行程序;
如果该引脚为低电平,则DSP按微计算机模式启动,系统从片内OFF80H地址处开始执行程序,片内OFF80H~OFFFFH是固化的中断矢量表,此处有一条跳转指令。
因此,如果系统上电时MPMC的状态为低电平,DSP复位后将从FF80H处跳转到0F800H开始执行Bootloader自动装载程序。
在装载程序之前,先自动进行如下初始化工作:
INTM=1(使中断无效),OVLY=1(内部RAM映像程序数据存储器),对程序和数据区均设置7个等待状态等。
然后,选择有效的自举方式进行自举加载程序。
4.2.1选择自举方式
Bootloader能提供许多种引导方式以适配不同的系统设备,包括两种并行总线方式、串口方式以及主机口方式(HPI),还可以支持8bits和16bits的模式,具有很强的系统灵活性。
在判断前面的引导方式无效后,Bootloader会进入并行引导装载模式,Bootloader首先读取地址为OFFFFH的IO空间单元,并将该单元的值作为引导表的首地址。
在数据地址空间中读取引导表的第一个字,来判断是8bits引导模式还是16bits引导模式[14]。
在本设计中,引导表的首地址是存放在数据存储器OFFFFH单元,Bootloader从IO地址空间中读取的引导表首地址所对应的引导表中得不到正确的引导信息,于是Bootloader会自动转向数据空间,从数据空间的OFFFFH地址再去读一个字作为引导表首地址,进而再从引导表首地址读取一个字。
如果该字为1OAAH,则立即进入16bits引导模式,否则,将按8bits方式处理:
从OFFFFH读取一字节作为引导表首地址的低字节,从OFFFEH读取一字节作为引导首地址的高字节,再从引导表首地址读取一个值,如果低字节为08H,则再读引导表的下一个值,如果为AAH,则说明外部存储器是8bits宽度,进入8bits引导装载模式。
由于在本设计中是采用的16bits引导模式,Bootloader不会进入8bits模式和后面的串行口引导方式。
其选择流程图如图4-2所示。
图4-2TMS320VC540216bits并行Bootloader选择图
4.2.2FLASH的数据组织
自举表内容包括Boot表头和欲加载的应用程序代码。
Boot表头包括欲加载的应用程序代码长度、代码段存放的目标地址、程序入口地址等信息。
若要完成自举引导功能,必须建立正确的自举表,如表4-1[15]。
自举表可以由hex500格式转换器自动生成,也可以手动建立自举表,就是把被烧写的程序直接放在烧写程序中,根据被烧写程序的相关信息手动建立自举表。
表4-1自举表
第五章IO电路的测试
通过构建基于TMS320VC5402的DSP最小系统,为DSP开发系统版提供最核心硬件模块。
通过基本IO电路测试了最小系统版的可行性[16][17]。
5.1CCS环境下通用IO电路测试实验
一、实验目的
TMS320VC5402的XF管脚外接LED,通过程序控制LED灯的闪烁,测试通用IO口。
二、实验设备
计算机、仿真器、DSP最小系统板
三、实验原理
1.实验流程图
程序框图如图5-1所示。
图5-1程序流程图
2.主要程序代码
asm(“rsbxxf”)将状态寄存器指定为xf复位xf=0;
asm(“ssbxxf”)将状态寄存器指定为xf置位xf=1;
通过把XF位置位和复位来控制LED灯的亮灭。
源程序见附录三。
四、实验现象
DSP最小系统版上IO