北邮DSP应用与设计期末论文.docx
- 文档编号:18150212
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:23
- 大小:634.50KB
北邮DSP应用与设计期末论文.docx
《北邮DSP应用与设计期末论文.docx》由会员分享,可在线阅读,更多相关《北邮DSP应用与设计期末论文.docx(23页珍藏版)》请在冰点文库上搜索。
北邮DSP应用与设计期末论文
DSP设计及应用课程设计报告
基于DSP最小应用系统设计实现
学院:
电子工程学院
姓名:
刘博闻
学号:
2013211049
班级:
2013211209
2016年1月2日
摘要
DSP最小系统是DSP应用系统的最核心部分,本设计基于TMS320VC5402DSP芯片,构建了TMS320VC5402DSP最小系统,并通过I/O口电路测试了DSP最小系统板的可用性,为以后的学习提供了最核心的电路模块。
本设计基于TMS320VC5402的结构和功能,结合TMS320VC54X系列DSP实验教学的容和要求,对DSP最小系统进行总体设计。
基于TMS320VC5402的DSP最小系统的设计,包括电源电路、时钟和复位电路、片外存储器电路以及JTAG仿真电路的设计。
在CCS集成开发环境下,实现系统自举加载和I/O口电路测试实验。
关键词:
TMS320VC5402,电路仿真设计,系统自举加载,I/O口电路测设
一、引言
DSP(DigitalSignalProcessing)也称数字信号处理器,是一种具有特殊结构的微处理器,是建立在数字信号处理的各种理论和算法基础上,专门完成各种实时数字信息处理的芯片。
与单片机相比,DSP有着更适合数字信号处理的优点。
芯片部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,具有良好的并行特性,提供特殊的DSP指令,可以快速地实现各种数字信号处理算法[1]。
随着信息技术的飞速发展,数字信号处理技术已经发展成为一门关键的技术学科,而DSP芯片的出现则为数字信号处理算法的实现提供了可能,这一方面促进了数字信号处理技术的进一步发展,也使数字信号处理的应用领域得到了极大的拓展。
在近20年里,DSP芯片已经在通信和家用电器等领域得到了广泛的应用。
二、系统方案
1.系统功能方框图
基于TMS320VC5402DSP最小系统的设计,此最小系统主要由时钟及复位电路、电源电路、JTAG仿真接口电路以及片外存储器电路等构成。
系统框图如图1所示[6]。
图1TMS320VC5402最小系统框图
2.系统的设计方法
本系统设计以模块电路为基础,主要采用实验和仿真的设计方法对各模块电路硬件和软件展开设计。
整个系统设计的大致步骤如图2所示。
软件部分的设计步骤为:
a)根据需要用汇编语言或C语言编写程序。
b)将程序转化成DSP汇编,并送到编译器进行编译,生成目标文件。
c)将目标文件送器进行,得到可执行文件。
d)将可执行文件调入调试器进行调试,检查运行结果是否正确。
如果正确继续,否则返回修改。
e)进行代码转换,将代码写入FLASH,并脱离仿真器运行程序,检查结果是否正确。
硬件部分设计步骤为:
a)设计硬件实现方案,即根据性能指标、功能要求等确定最优硬件实现方案,并画出其硬件系统框图。
b)进行器件选型,根据功能、成本和使用经验等要求确定系统中的主要器件,最重要的是根据需要选择系统中主要芯片型号。
c)设计原理图,在原理图的设计时必须熟悉系统的工作原理和器件的使用方法,对于一些关键的环节有必要进行一定的实验或仿真,原理图设计的成功与否是DSP系统能否正常工作的一个最重要因素。
图2实验开发系统的设计步骤
三、硬件设计
最小系统是使得DSP芯片TMS320VC5402能够工作的最精简模块,它主要包括电源电路、复位电路、时钟电路、片外存储器接口电路和JTAG仿真接口电路。
DSP最小系统原理图见附录一。
1.电源电路
本系统中除了DSP以外其它器件工作电压为3.3V,所以我们采用5V电源供电。
VC5402所要的工作电压分别是1.8V核电压(CVDD)和3.3VI/O电压(DVDD),并且DSP对这两种电源加电次序也有要求,理想情况下两个电源同时加电,但是一般场合很难做到,这时应先对CVDD加电,然后对DVDD上电。
讲究供电次序的原因在于:
如果只有CPU核获得供电,周边I/O没有供电,对芯片是不会产生任何损害的,只是没有输入/输出能力而已;如果反过来,周边I/O得到供电而CPU核没有供电。
那么芯片缓冲/驱动部分的三极管在一个未知状态下工作,这是非常危险的[7]。
我们通过TI公司提供的DSP专用电源芯片TPS73HD318来构建电源电路,实现5V向3.3V和1.8V的电压转换,同时也避免了上电次序的问题。
图3为根据TPS73HD318芯片性能设计实现双电压输出的电源电路方案,具体分析如下[8]:
a)TPS73HD318芯片可以提供最高750mA的电流,为了适应较大的电流输出场合,该芯片输入和输出的管脚都采用两个管脚,这样可以提高电流的通过率并有利于芯片散热。
b)1.8V稳压器输入部分为1IN两个管脚,输入+5V的VCC,用10pF的电容对输入电源滤波;输出部分为1OUT两个管脚,以提供高稳定性的1.8V输出。
c)3.3V稳压器输入部分为2IN两个管脚,输入+5V的VCC,用10pF的电容对输入电源滤波;输出部分为两个20UT管脚,以提供高稳定性的3.3V输出。
d)系统的电源输入为+5V,同时设计电源指示灯LED,用来指示电源的通断。
图3电源电路
2.复位电路
C5402的复位输入引脚RS为处理器提供了一种硬件初始化的方法,它是一种不可屏蔽的外部中断,可在任何时候对C54x进行复位。
当系统上电后,RS引脚应至少保持5个时钟周期稳定的低电平,以确保数据、地址和控制线的正确配置。
复位后,CPU从程序存储器的FF80H单元取指,并开始执行程序。
C5402的复位分为软件复位和硬件复位,软件复位是通过执行指令实现芯片的复位,硬件复位是通过硬件电路实现芯片的复位,硬件复位有上电复位、手动复位和自动复位三种[9]。
在DSP最小系统中采用手动复位方式。
手动复位电路是通过上电或按钮两种方式对芯片进行复位,如图4所示。
当按钮闭合时,电容C5通过按钮和R9进行放电,使电容C5上的电压降为0;当按钮断开时,对电容C5进行充电,从而实现手动复位。
图4手动复位电路
3.时钟电路
时钟电路用来为C5402芯片提供时钟信号,由一个部振荡器和一个锁相环PLL组成,可通过芯片部的晶体振荡器或外部的时钟电路驱动。
C5402时钟信号的产生有两种方法:
使用外部时钟源、使用芯片部的振荡器。
若使用外部时钟源,只要将外部时钟信号直接加到DSP芯片的X2/CLKIN引脚,而X1引脚悬空;若使用芯片部的振荡器,只要在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动部振荡器。
本系统采用部振荡器,在管脚X1和X2/CLKOUT之间连接一个10MHz晶体来启动部振荡器,如图5所示[10]。
为了实现DSP系统实时处理信号的效果,希望系统频率越快越好。
C5402最高可达100MHz工作频率,如果仍采用传统的2分频或4分频的方式,势必要求外部频率很高,这里我们采用了更加灵活的可编程PLL(ProgrammablePhase—LockedLoop)方式。
C5402部具有一个可编程锁相环(PLL),它可以配置为以下两种模式:
a)PLL模式,输入时钟乘以一个l~31之间的常数。
b)DIV模式,输入时钟除以2或40。
PLL有倍频的功能,其输出信号的频率是输入信号的频率乘上一个倍数,正是PLL把外部基准频率变成多种频率提供给不同的具体系统,以满足各种应用的需要。
PLL受存储器映射的时钟模式寄存器CLKMD控制,复位后CLKMD的值根据DSP芯片三根输入引脚CLKMD1~CLKMD3确定,从而确定DSP的工作时钟。
本方案中,外接晶体频率为10MHz,为了得到倍频系数10,需设置时钟模式寄存器CLKMD的值为9007h,引脚CLKMDl~CLKMD3设计成001,则复位后C5402的工作频率是10×1O=1OOMHz。
图5时钟电路
4.片外存储器
C5402的存储空间可达192K×16bits,64K程序空间,64K数据空间,64KI/O空间。
C5402片具有4K×16bits的ROM和16K×16bits的RAM。
片ROM和RAM可以根据PMST寄存器中的DROM、OVLY来灵活设置,使其映像在程序空间和数据空间。
程序空间和数据空间未被映像的部分和64K的I/O空间全部在片外,用片外存储器来补充。
在实际的应用中,应该根据程序量的大小来选择作为片外空间的存储芯片的容量,以免造成不必要的浪费,本文选择IS61LV25616AL(256K×16bits)作为程序存储器的片外存储芯片,选择SST39LF200A(128K×16bits)的Flash作为数据存储器的片外存储芯片,以实现自举加载,使C5402自成独立系统,图6为硬件连接图[11]。
图6外部存储器扩展电路图
IS61LV25616AL的工作电压为3V~3.6V,可以直接与TMS320C5402接口连接,而不必再使用电压接口芯片进行转接,使硬件电路更为简单。
SST39LF200A是SST公司生产的Flash存储器,其主要特点有:
3V~3.6V单电源供电,可使部产生高电压进行编程和擦除操作;支持JEDEC单电源Flash存储器标准;只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成;可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据[12]。
访问存储空间时,当地址落在片存储区域,自动对这些区域进行访问;当地址落在片外区域,自动访问外部存储器。
使用片存储器有三个优点:
高速执行(不需要等待),低开销,低功耗,所以我们应尽量使用片存储器。
5.仿真接口电路
在做实验时,需要一个DSP仿真器,把在计算机上编译并生成的执行代码下载到C5402芯片上,实现在线调试DSP硬件和软件。
仿真器有两端接口,其中一端与计算机的并行口或USB口相连,这取决于仿真器的类型,另一端与DSP芯片的JTAG接口相连,这是一个14针的接口,其硬件连接如图7所示[13]。
图7JTAG接口电路
四、自举加载器的设计
TI公司的DSP芯片出厂时,在片ROM中固化有引导装载程序Bootloader,其主要功能就是将外部的程序装载到片RAM中运行,以提高系统的运行速度。
TMS320VC5402的Bootloader程序位于片ROM的0F800H~OFBFFH空间。
系统上电时,DSP将检查外部引脚MP/MC的状态,如果该引脚为高电平,则DSP按微处理器模式启动,从片外OFF80H地址处开始执行程序;如果该引脚为低电平,则DSP按微计算机模式启动,系统从片OFF80H地址处开始执行程序,片OFF80H~OFFFFH是固化的中断矢量表,此处有一条跳转指令。
因此,如果系统上电时MP/MC的状态为低电平,DSP复位后将从FF80H处跳转到0F800H开始执行Bootloader自动装载程序。
在装载程序之前,先自动进行如下初始化工作:
INTM=1(使中断无效),OVLY=1(部RAM映像程序/数据存储器),对程序和数据区均设置7个等待状态等。
然后,选择有效的自举方式进行自举加载程序。
1.选择自举方式
Bootloader能提供许多种引导方式以适配不同的系统设备,包括两种并行总线方式、串口方式以及主机口方式(HPI),还可以支持8bits和16bits的模式,具有很强的系统灵活性。
在判断前面的引导方式无效后,Bootloader会进入并行引导装载模式,Bootloader首先读取地址为OFFFFH的I/O空间单元,并将该单元的值作为引导表的首地址。
在数据地址空间中读取引导表的第一个字,来判断是8bits引导模式还是16bits引导模式[14]。
在本设计中,引导表的首地址是存放在数据存储器OFFFFH单元,Bootloader从I/O地址空间中读取的引导表首地址所对应的引导表中得不到正确的引导信息,于是Bootloader会自动转向数据空间,从数据空间的OFFFFH地址再去读一个字作为引导表首地址,进而再从引导表首地址读取一个字。
如果该字为1OAAH,则立即进入16bits引导模式,否则,将按8bits方式处理:
从OFFFFH读取一字节作为引导表首地址的低字节,从OFFFEH读取一字节作为引导首地址的高字节,再从引导表首地址读取一个值,如果低字节为08H,则再读引导表的下一个值,如果为AAH,则说明外部存储器是8bits宽度,进入8bits引导装载模式。
由于在本设计中是采用的16bits引导模式,Bootloader不会进入8bits模式和后面的串行口引导方式。
其选择流程图如图8所示。
图8TMS320VC540216bits并行Bootloader选择图
2.FLASH的数据组织
自举表容包括Boot表头和欲加载的应用程序代码。
Boot表头包括欲加载的应用程序代码长度、代码段存放的目标地址、程序入口地址等信息。
若要完成自举引导功能,必须建立正确的自举表,如表1[15]。
自举表可以由hex500格式转换器自动生成,也可以手动建立自举表,就是把被烧写的程序直接放在烧写程序中,根据被烧写程序的相关信息手动建立自举表。
表1自举表
五、I/O电路的测试
通过构建基于TMS320VC5402的DSP最小系统,为DSP开发系统版提供最核心硬件模块。
通过基本I/O电路测试了最小系统版的可行性[16][17]。
1.CCS环境下通用I/O电路测试实验
a)实验目的
TMS320VC5402的XF管脚外接LED,通过程序控制LED灯的闪烁,测试通用I/O口。
b)实验设备
计算机、仿真器、DSP最小系统板
c)实验原理
d)实验流程图
图9程序流程图
e)主要程序代码
asm(“rsbxxf”)//将状态寄存器指定为xf复位xf=0;
asm(“ssbxxf”)//将状态寄存器指定为xf置位xf=1;
通过把XF位置位和复位来控制LED灯的亮灭。
源程序见附录三。
f)实验现象
DSP最小系统版上I/O电路XF连接的LED灯以一定的频率间隔闪烁。
通过调整程序参数“for(i=0;i<30000;i++)for(j=0;j<10;j++)”为“for(i=0;i<30000;i++)for(j=0;j<100;j++)”,LED灯的闪烁频率减小,LED灯闪烁变慢。
1.
2.基本I/O电路测试实验
a)实验目的
通过实验学习使用C5402DSP的扩展端口控制外围设备的方法,测试基于TMS320VC5402DSP最小系统的基本I/O口。
b)实验设备
计算机、仿真器、DSP最小系统板
c)程序框图
开始
CPU初始化
读取数据空间0Xaaaa的内容
将读取的数值写入0xaaaa单元
结束
图10程序流程
d)主要程序代码
#defineLBDS(*((unsignedint*)0xaaaa))
//定义指示灯寄存器地址和寄存器类型;
for(i=0;i<8;i++)
{LBDS=uLED[i];
Delay(256);}
//向指示灯寄存器写数据。
源程序见附录二。
e)实验现象
数据口D0—D3连接LED灯后,LED灯以BCD码的规律从全灭显示到全亮,当4个LED灯全亮后,又以BCD码的规律从全亮减小到LED灯全灭,并循环显示。
六、总结
本课题的研究工作是以TI公司TMS320VC5402芯片为核心,以模块电路为基础,构建DSP实验开发系统。
本文从系统方案制定、模块电路软硬件实现、CCS环境下实验验证等方面,系统的阐述其设计过程。
主要完成了以下容:
1.参考了DSP技术的应用,分析信号信息处理的特点,制定了基于TMS320VC5402芯片的最小系统设计的总体方案。
2.完成了系统各模块电路的软硬件设计。
完成了电源、晶振、复位电路、JTAG接口电路、SRAM接口电路、FLASH接口电路的设计。
3.在模块电路电路的基础上,采用层次原理图的设计方法,完成了系统原理图的绘制和PCB布线制版。
4.在CCS环境下测试了基于TMS320VC5402最小系统的基本I/O电路。
通过课题的设计,使我进一步掌握了DSP基本理论,对DSP技术及DSP技术的应用有了更深刻的认识,并使自己所学的各种知识得到了全面的应用,提高了分析问题解决问题的能力。
由于初次进行基于TMS320VC5402的最小系统设计,缺少实际经验以及个人水平和实践的问题,要使系统更加实用化、完善化还需要做大量的探索和试验。
在本文设计的实验系统的基础上,硬件资源还可以进一步扩展,软件功能也可进一步改进。
参考文献
[1]启宗.TMS320VC54X实用教程[C].:
电子科技大学,2000
[2]利.DSP原理及应用[C].:
中国水利水电,2004
[3]哲英,骆丽,元盛.DSP基础理论与应用技术[C].:
航空航天大学,2002
[4]TMS320VC5402Fixed-PointDigitalSignalProcessorDatasheet,2000
[5]TMS320VC54xDSPCPUandPeripheralsReferenceSet,1999
[6]梁晓雯,裴小平,玉虎.TMS320C54X系列DSP的CPU与外设[C].:
清华大学,2006
[7]雄伟,亮,徐光辉.DSP芯片的原理与开发应用[C].:
电子工业,2003
[8]TPS73HD318Datasheet.TexasInstruments,1999
[9]邹彦,唐冬,宁志刚.DSP原理及应用[C].:
电子工业,2005
[10]财明.基于TMS320C5402的客流统计系统[D].:
大学,2005
[11]静.基于DSP的嵌入式实时操作系统平台及其应用[D].:
大学,2005
[12]IS61LV25616ALDatasheet.IntegratedSilionSolutionInc,2003
[13]汪安明.TMS320C54XXDSP应用技术[C].:
清华大学,2002
[14]琰.TMS320VC54028位并行自举引导方案[J].电脑知识与技术,2006
[15]吴晓春.用C语言设计TMS320VC54X系列DSP的用户bootloader程序[J].计算机与网络,2009
[16]汪烈军,贾振红.电子综合设计与实验[C].:
交通大学,2010
[17]汪安平,程昱.DSP应用开发实用子程序[C].:
人民邮电,2005
附录
附录一系统原理图
DSP最小系统原理图
PCB布线图
DXP仿真DSP最小系统版
附录二基本I/O电路测试实验
主程序:
#include"DspRegDefine.h"//VC5402寄存器定义
#include"stdio.h"
#include"e300_codec.h"
//定义指示灯寄存器地址和寄存器类型
#defineLBDS(*((unsignedint*)0xaaaa))
//子程序接口
voidDelay(unsignedintnDelay);//延时子程序
voidmain()
{
unsignedintuLED[9]={0,1,2,3,4,5,6,7,8};//控制字,逐位置1inti;
cpu_init();//初始化DSP运行时钟
while
(1)
{
for(;;)
{
for(i=0;i<8;i++)
{
LBDS=uLED[i];//正向顺序送控制字
Delay(256);//延时
}
for(i=8;i>=0;i--)
{
LBDS=uLED[i];//反向顺序送控制字
Delay(256);//延时
}
}
}
}
voidDelay(unsignedintnDelay)//延时子程序
{
unsignedinti,j;
for(i=0;i<4000;i++)
for(j=0;j } CPU初始化程序: #include"DspRegDefine.h"//VC5402寄存器定义 #include"e300_codec.h" voidcpu_init(void) { asm("nop"); asm("nop"); asm("nop"); *(unsignedint*)CLKMD=0x0;//switchtoDIVmodeclkout=1/2clkin while(((*(unsignedint*)CLKMD)&01)! =0); *(unsignedint*)CLKMD=0x07ff;//switchtoPLLX1mode *(unsignedint*)PMST=0x3FFA; *(unsignedint*)SWWSR=0x7fff; *(unsignedint*)SWCR=0x0001; *(unsignedint*)BSCR=0xf800; asm("ssbxintm");//Disableallmaskinterrupts *(unsignedint*)IMR=0x0; *(unsignedint*)IFR=0xffff; asm("nop"); asm("nop"); asm("nop"); } 附录三CCS环境下通用I/O电路测试实验 #include #definepi3.1415926 #defineN500 voidmain() { inti,j; int*p; intx[500]; for(i=0;i x[i]=0; for(i=0;i { x[i]=(int)1000*sin(2*pi*i/125); } p=(int*)0x1000; for(i=0;i { *p=x[i]; p++; } for(;;) { asm("rsbxxf"); for(i=0;i<30000;i++) for(j=0;j<10;j++) { asm("nop"); asm("nop"); } asm("ssbxxf"); for(i=0;i<30000;i++) for(j=0;j<10;j++) { asm("nop"); asm("nop"); } } } 致 经过几个月的学习,课程顺利完成。 在本报告完成之际,我要感我的老师焦继超老师。 他讲课轻松的风格和考察简约的方式,都帮我们减轻了本学期十分繁重的课业压力。 我从他的身上不仅学到了应该掌握的专业技能,更重要的是学到了解决问题的方法。 他渊博的知识、严谨的治学态度和热忱待人的品格都使我受益匪浅,在此谨向焦老师表示由衷的感。 于此同时,我也深深的迷上了生活大爆炸这部轻松搞笑的美剧,也希望焦老师可以给予我一个较好的成绩,帮助我申请一个较好的国外大学。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮 DSP 应用 设计 期末 论文