基于DSP系统的自举设计讲述_dsp系统的自举设计
基于DSP系统的自举设计讲述由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“dsp系统的自举设计”。
设计任务书
题目:基于DSP系统的自举设计
要求:
(1)将目标代码生成可执行的COFF格式文件(.out文件)(2)使用Hex转换工具将.out文件转换为Hex文件。
(3)采用C语言编写FLASH烧写程序,通过DSP将Hex格式的目标,程序写入FLASH,实现系统在线编程。
(4)实现ICETEK–F2812-AE评估板的上电自举运行。(5)完成硬件电路原理图设计、软件系统程序设计及其仿真。
摘 要
本设计是基于DSP(2812)最小系统设计的自举设计,DSP是一门涉及许多学科而又广泛应用于许多领域的新兴学科。DSP指的是数字信号处理器。数字信号处理器是一种适合完成数字信号处理运算的处理器。
该设计是针对TI公司TMSF2812系列DSP处理器独立运行实现的程序自举设计的问题,利用CCS软件编程实现DSP通过SPI串行EEPROM完成程序代码自举的方法设计,以下设计内容给出了相应的硬件设计和软件编程思路,及以该方法实现DSP自举的设计。实现将实验箱电源关闭,拔掉仿真电缆(黑色的),让仿真器和计算机脱开,重新打开实验箱电源,观察板上指示灯闪烁;表明烧入的程序正在运行,按一下板上复位按钮,程序将重新运行。
基于DSP的自举设计方法硬件设计简单、成本低,而软件两次编程设计又方便DSP系统的在线编程调试和软件升级,可广泛用于程序代码不超过64K字节的DSP系统中。
关键词 DSP系统,自举设计,TMSF2812系列
目录
第1章 绪论..................................................3 第2章 系统总体设计..............................................4
2.1设计平台.....................................................4 2.2系统框架设计.................................................4 第3章 硬件设计...............................................5
3.1最小系统设计.................................................5
3.1.1 电源模块...............................................5 3.1.2 复位电路...............................................6 3.1.3 时钟电路...............................................7 3.1.4 JTAG仿真电路..........................................7 3.2 LED显示电路设计.............................................7 第4章 软件设计...............................................8 4.1 自举的程序结构设计...........................................8 4.2 LED显示程序结构设计........................................9 第5章 软件及硬件测试............................................10 5.1 CCS集成开发环境............................................10 5.2 TMS320F2812A DSP片内Flash的烧写过程.......................10 5.3 LED电路测试................................................11 结论.........................................................12 参考文献.....................................................13 附录.........................................................14 附录1自举设计电路图...........................................14 附录2自举程序代码.............................错误!未定义书签。附录3LED显示电路程序代码......................错误!未定义书签。
第1章 绪论
对于一个DSP系统,当用户程序通过JTAG仿真调试完毕后,为使DSP目标系统成为可独立脱机运行的系统,就必须对DSP系统进行自举设计。所谓“自举”是指DSP系统在满足一定工作条件下,DSP芯片内的程序引导装载器,在DSP系统上电后,将自动的把存储在DSP芯片外部非掉电易失存储器内的用户程序代码搬移到DSP芯片中高速的片内RAM或系统中的扩展存储器内,搬移成功后自动执行代码,完成DSP系统上电后的自启动。程序自举是开发DSP系统的关键技术之一,自举从本质上说就是在DSP启动后通过某种方式从外部获取运行代码并装载到其程序区内全速运行。在深入分析了各种加载方法之后,结合本DSP系统的特点,采用了单片机来实现DSP的主机接口方式的自举加载。
第2章 系统总体设计
2.1设计平台
该自举设计是基于CCS集成开发环境。在DSP集成开发环境CCS中,用C语言或汇编语言编写好源程序,进行编译、汇编、链接,最后生成的是.out文件,该文件的格式不利用被单片机识别,通过一个批处理文件把.out文件转化为易于单片机识别的.h文件,最终使用DSP实现该自举的功能实现。
2.2 系统的框架设计
本设计DSP硬件系统是以德州仪器公司(TI)的TMS320F2812为核心处理器,辅以CPLD、Flash存储器、SRAM存储器、USB接口芯片等。512KB的Flash芯片用来存储应用程序和初始化数据。数据存储器SRAM的存储容量为64KB。逻辑控制电路采用CPLD实现,Flash页选控制、读写控制、程序空间和数据空间大的切换控制完全由CPLD控制。逻辑控制电路设计图如下:
图2.1逻辑控制电路设计图 第3章 硬件设计
3.1 最小系统设计
3.1.1 电源转换模块
DSP最小系统仅有5V电源供电,由于DSP芯片供电电压只能是3.3V,所以在设计电路时,需要将5V电源转换为3.3V给CPU供电,因此使用了TI公司的5V/3V的TPS7333Q高性能稳压芯片,并可提供上电复位信号,该信号/RS—DSP接到DSP的复位引脚上。该芯片最大输出电流500mA。TPS7333Q输出后的10μf和100μf的电容不能省略,否则得不到稳定的3.3V电压。
图3.1电源转换电路原理图
3.1.2 复位电路
基于TMS320F2812的数字I/O口复用寄存器和数据、方向寄存器,可应用到指示灯的点亮上。因为用发光二极管作为指示是控制系统中常用的方法。而且接口电路简单,编程方便而且直观。
图3.2复位电路原理图
3.1.3 时钟电路
TMS320 F2812 DSP的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。本文采用的是外部有源时钟方式,直接选择一个3.3V供电的30MHz有源晶振实现。
图3.3内部震荡电路
图3.4外部时钟电路
3.1.4 JTAG仿真电路
几乎所有的高速控制器和可编程器件都配有标准仿真接口JTAG,F2812也不例外。JTAG扫描逻辑电路用于仿真和测试,采用JTAG可实现在线仿真,同时也是调试过程装载数据、代码的唯一通道。通过JTAG接口可将仿真器与目标系统相连接。为了与仿真器通信,DSP控制板必须带有14引脚的双排直插管座。
图3.5 JTAG仿真电路原理图
3.2 LED显示电路设计
基于TMS320F2812的数字I/O口复用寄存器和数据、方向寄存器,可应用到指示灯的点亮上。因为用发光二极管作为指示是控制系统中常用的方法。而且接口电路简单,编程方便而且直观。
图3.6LED显示电路原理图
第4章 软件设计
4.1 自举的程序结构设计
该设计是基于TMSF2812DSP实现ICETEK–F2812-AE评估板的上电自举运行设计。首先进行初始化CPU然后关中断,再进行初始化PIE寄存器,禁止所有中断,再进行初始化PIE向量表。实现的自举程序流程图如下:
图4.1自举程序流程图4.2 LED显示程序结构设计
该自举程序实现的功能为LED灯交替显示点亮,实现自举程序后,关闭电源,让仿真器和计算机脱开,后接通电源,复位DSP实现LED逐个闪烁自启的现象。具体的LED显示程序结构流程图如下:
图4.2LED显示结构程序流程图
第5章 软件及硬件测试
5.1 CCS集成开发环境
软件设计是基于CCS开发环境的。CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。它采用Windows风格界面,提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
图5.1为CCS集成开发环境界面
5.2 TMS320F2812A DSP 片内 Flash 的烧写过程
我们课程设计参考的是实验所用的瑞泰DSP教学实验系统自带的教学案例自举程序,首先在工程文件目录下打开工程文件,然后编译程序,单击Tools菜单,查看“F28xx On-chip Flash Programmer”选项,这就是烧写 flash 的将程序写入Flash-启动烧写插件:单击菜单“Tools”、“F28xx On-chip Flash Programmer。
图5.2TMS320F2812A DSP 片内 Flash 的烧写过程界面
5.3 LED电路测试
监测系统输入和输出工作电压后,监测上电复位及手动复位电路工作情况。利用DSP仿真器进行硬件仿真,进入CCS坏境,识别目标器件,表明硬件基本正常。实现将实验箱电源关闭,拔掉仿真电缆(黑色的),让仿真器和计算机脱开,重新打开实验箱电源,观察板上指示灯闪烁;表明烧入的程序正在运行,按一下板上复位按钮,程序将重新运行。
图5.3LED电路测试实现图 结论
本设计通过Flash在DSP系统设计中的应用,详细介绍 了DSP系统自启动的软硬件设计方法。采用本文方法所设计的TMSF2812系列DSP系统很好地实现了上电的自启动。并且分析了TMSF2812系列DSP的引导过程,给出了一种利用单片机控制TMSF2812 DSP的HPI口进行程序自举的硬件连接电路图和软件设计方案,并给出了部分核心代码。这种方法省掉了DSP的EPROM、使DSP只使用片内RAM、实现简便、附加硬件少、成本低,可为设计DSP系统的程序自举提供一定的参考。最终在DSP实验指示板上实现ICETEK–F2812-AE评估板的上电自举运行设计。实验现象通过对指示灯的闪烁,在调用自举函数,进行自举操作后,实现断开实验箱电源后,上电自举,复位后指示灯闪烁实现原来的程序设定现象。参考文献
[1] 张雄伟.DSP芯片的原理与开发应用电子工业出版社[M],2009.3,(2):25-29.[2] 赵红怡.F2812 DSP原理与应用实例,电子工业出版社[M],2009.2,(5):45-48.[3] 孙洪波.DSP技术与应用实例(第2版),电子工业出版社,2008.1,(6):47-52.[4] 田明,王群生.实时有效的OSD系统结构的建立与分析[J].电视技术,2003,(9):56-58.[5] 杨兆选,杨同实.OSD芯片uPD6450及其应用[J].电 子技术应用,2005,23(4):50-51.[6] 甘亮,余松煜.数字电视监控系统中的OSD实现[J].计算机 仿真,2009,17(6):28-30.[7] 马延珂.基于数字机顶盒的OSD设计[J].北京广播学院学报(自然科学版),2003,10(4):52-57.[8] 朱勇.在屏显示器件MC141541及其接口技术[J].国外电子 元器件,2002,(3):18-22.[9]陶锐,周学军1数字信号处理器(DSP)自举加载技术的应用[J]1电子测量技术,2006,29(3):67-69.[10]鹿宝生,陈启美1TMS320DM642DSP自动引导的方法和编程实现[J]1微计算机应用,2007,28(6):657-660.附录
附录1:自举设计电路图附录2:自举程序代码
#include “DSP28_Device.h” #include “DSP28_Globalprototypes.h”
// Prototype statements for functions found within this file.// interrupt void ISRTimer2(void);void delay_loop(void);void Gpio_select(void);
unsigned int var1 = 0x4000;unsigned int var2 = 0;unsigned int var3 = 0;unsigned int var4 = 0;unsigned int var5 = 0;
#define led *(int *)0xc0000 #define key *(int *)0xc0001
void main(void){ int i;
InitSysCtrl();//初始化cpu DINT;//关中断
InitPieCtrl();//初始化pie寄存器
IER = 0x0000;//禁止所有的中断 IFR = 0x0000;InitPieVectTable();//初始化pie中断向量表
while(1){ for(;;){ i=key;i=i&0xff;led=i;} } } 附录3:LED显示电路的程序代码
#include “DSP281x_Device.h” // DSP281x Headerfile Include File #include “DSP281x_Examples.h” // DSP281x Examples Include File #include “f2812a.h” // 定义指示灯寄存器地址和寄存器类型 #define LBDS(*((unsigned int *)0xc0000))// 子程序接口
void Delay(unsigned int nDelay);// 延时子程序 main(){
{ int ii,jj,kk=0;
} } } for(ii=0;ii
{ LBDS=uLED[i];Delay(256);
// 送控制字 // 延时}}}
// 初始化DSP运行时钟
for(i=0;i