《TMS320VC5402的并行引导装载方案的研究与设计.doc》由会员分享,可在线阅读,更多相关《TMS320VC5402的并行引导装载方案的研究与设计.doc(13页珍藏版)》请在三一办公上搜索。
1、目录1.绪论12. TMS320VC5402的Bootloader原理23.16位Flash并行引导模式分析34.系统硬件电路设计44.1闪烁存储器SST39VF200A简介44. 2系统硬件电路54.3硬件系统工作原理65 系统软件设计75.1程序的编写75.2引导表95.3引导实现106.总结117.参考文献121.绪论作为计算机接口之一的USB(Universal Serial Bus)口具有势插拔、速度快(包括低、中、高模式)和外设容量大(理论上可挂接127个设备)的特性,使其成为PC机的外围设备扩展中应用日益广泛的接口标准。基于DSP的USB口数据采集分析系统,该系统的DSP负责数据
2、的采集和运算处理,处理结果通过USB口送计算机显示分析,其结构如下图1所示。Flash图1 USB口数据采集分析系统TMS320VC5402为脱机运行提供了五种启动装载模式:HPI端口启动模式、标准串口启动模式、I/O口启动模式、串口EEPROM启动模式和并行启动方式。对于以C5402为核心的独立系统中,并口加载方案被认为是最佳的。因为前三种方案只适用于由其它处理器为C5402提供运行代码的多处理器系统中,后两种方案虽然都可以适应以C5402为核心的独立系统,但是串口EEPROM启动模式中只支持价格偏高的SPI端口EEPROM,而并口启动模式却可以采用EPROM,而且并行EPROM和FLASH
3、种类很多,有的价格较低,因而可以充分体现系统的性价比优势。2. TMS320VC5402的Bootloader原理图2Bootloader并行引导流程图 TMS320VC5402的Bootloader在系统加电时把外部源程序传送到内部存储器或内部程序空间。它允许程序被存放在外部慢速的存储器中,并调到高速的存储器中运行。这可大大减小TMS320VC5402内部RAM掩模的需要,降低电路设计的成本。C5402的内部ROM中有固化好的加载程序。如果DSP的MP/MC管脚接低,在DSP加电RESET时,程序就从内部ROM的FF80H地址开始行运行。在FF80H处,有一条跳转到BOOT程序的指令,执行内
4、部固化好的BOOT程序。BOOT程序在运行搬移程序之前,首先进行初始化,工作包括关闭中断、将内部RAM映射在程序/数据空间,以及为访问数据和程序空间设置的七个软件等待等;然后根据设计完成不同方式下程序的搬移。C5402共有上面讲述的5种加载方式。这里只讨论并口加载方案的设计,其流程如图1所示。在判断前几种加载方式无效后,Bootloader从I/O空间0FFFFH处读取一个16位的程序起始地址。然后根据这个地址从外部数据区读入一个字,判断是否为10AAH。如果是,就采用16位的搬移方式;否则,就判断读入的字的低位字节和下一个地址读入的字的低字节组成的16位字。如果是08AAH,就采用8位并行加
5、载方式;否则,就在外部数据空间的0FFFFH读取一个16位的程序起始地址,然后重复上面的检测方法。本文采用在外部数据空间0FFFFH处存放程序起始地址的方案。3.16位Flash并行引导模式分析 片内并行引导方式前半部分是I/O空间并行引导方式。Bootloader首先从I/O空间地址FFFFH处读取一个字的数据,并将该数据做为自举表在数据空间的真实地址。我们不采用这种方式,程序继续运行直到从数据空间FFFFH地址读入一个地址数据,此数据为用户自举表的入口地址。这时,片内引导程序开始执行Flash中的用户自举表。若自举表的第一个字是10AAH,则表示是16位并行引导方式;如果bootloade
6、r在自举表的起始地址没有得到上述关键字,则会转到数据空间0FFFH处,再去读取一个字的数据,继续尝试通过该起始地址去读上述关键字。其处理流程如图3所示。图2 Bootloader模式选择流程4.系统硬件电路设计4.1闪烁存储器SST39VF200A简介闪烁存储器(Flash Memory)是可以在线电擦写、掉电后信息不丢失的存储器。SST39VF200A是SST公司推出的128K16位产品,可以直接与DSP相接,具有以下主要特点:(1)可直接与3.3v的高性能DSP接口,简化了系统的电源要求;(2)最快的存取速度高达90ns,CMOS工艺,具有100000次写入/擦写寿命;(3)低功耗;(4)
7、灵活的块结构支持整片擦除、块擦除、段擦除;(5)块保护功能。具有防止对任何区段进行编程或擦除的硬件保护机制;(6)与JEDEC标准兼容,引脚分布和命令集与单电源Flash相兼容。表1 FLASH中的数据结构4. 2系统硬件电路系统硬件电路如图3所示,其中使用IS61LV6416型SRAM作为系统上电运行时程序和数据公用的存储区。使用LATTTCE公司的isp320VE-110LT44型CPLD实现C5402与FLASH和SRAM之间的逻辑转换,其内部逻辑编程如图4所示。图3 硬件系统的原理图 图4 2032VE型CPLD的内部逻辑编程4.3硬件系统工作原理 编程SST39VF200A时,在程序
8、中设置XF为高电平,C5402所寻址数据区的低32K(0000H-7FFFH)对应于DSP片内DRAM(0000H-3FFFH)和外部SRAM(4000H-7FFFFH)区,高32K(08000H-0FFFFH)对应于FLASH(08000H-0FFFFH),此时,可以将C5402所寻址的低32K数据编程烧到FLASH中。 C5402上电复位装载时,由于bootloader程序在初始化时设置XF为高电平,在系统进入并行引导装载模式后,C5402从数据寻址为0FFFFH单元(A15=1,选中FLASH)中读取将要载入的程序存储区首地址,再按表1所示的格式开始载入数据(表1假设程序存储区首地址为0
9、8000H)。此时,C5402可以将SST39VF200A中的地址08000H-0FFFFH单元中的数据读到C5402对于与0000H-7FFFH寻址区的片内DRAM和片外SRAM。 Bootloader程序结束后,在这个系统中,用户程序的第一条语句为RSBX XF,即置XF为低电平,此时,无论A15为何电平,C5402所寻址的程序和数据区间(0000H-0FFFFH)始终对于片内DRAM(0000H-3FFFH)和片外SRAM(4000H-0FFFFH),FLASH始终不选通。这样,SRAM的32K区域(08000H-0FFFFH)被释放出来,可以作为DSP系统运行时的数据区或程序区使用。5
10、 系统软件设计5.1程序的编写由于Bootloader需要完成的是系统的脱机运行,因此可用一个简单可靠的测试程序验证硬件是否已经协调工作。下面是一个可行的方法,通过设置XF的电平高低,让XF输出不同频率的方波,或者在XF管脚外接一个发光二极管,就可以直观的看到系统有没有协调工作。主程序和FLASH存储器编程子程序如下;Main:SSBX INTM;禁止中断STM 7FFFH,SWWSR;设置7个等待周期STM 70H,SP;设置堆栈指针NOP CALL erase;调用擦除子程序CALL program;调用编程子程序Here:B hereProgram: STM 1FH,AR5 STM 40
11、00H,AR3 STM 3000H,AR4 STM 4000H+555H,AR1 STM 4000H+2AAH,AR2LOOP2: STM #0AAH,AL;周期1,解锁 STL A,*AR1 STM #55H,AL; 周期2,解锁 STL A,*AR1 STM #0A0H,AL; 周期3,建立 STL A,*AR1 MVDD *AR4+,*AR3+;周期4,编程 CALL delay;延时BANZ loop2, *AR5-STM #0FFFFH,AR4STM #4000H+555H,AR1STM #4000H+2AAH,AR2STM #0AAH,ALSTL A,*AR1STM #55H,AL
12、STL A,*AR2STM #0A0H,ALSTL A,*AR1ST 4000H,*AR4;引导表起始地址4000H存入FLASH的FFFFH单元RET5.2引导表引导表结构如图5所示:10AA(并行寻址格式)SWWSR寄存器的初始值BSCR寄存器的初始值用户程序入口的XPC用户程序入口的地址PC用户程序的长度用户程序起始地址XPC用户程序起始地址PC用户程序代码0000(表示引导结束)5.3引导实现将引导表烧写到FLASH存储器中,并下载到C5402中。烧写引导表前,首先将数据文件exp.dat中的引导表存入DSP从3000H开始的数据空间中。具体做法:在主程序中指令STM 70H,SP下方
13、NOP处设置探测点,再将探测点与文件exp.dat关联起来。去掉PC机与C5402仿真器的数据连线,关闭C5402电源,置C5402的MP/MC=0后再上电,C5402片内ROM中固化的引导装载程序就能把FLASH存储器中的用户程序引导到C5402片内程序空间从地址00100开始的RAM中,然后执行此程序,实现16位并行引导。6.总结从上面的分析可以看出,方案实现方便可靠。但是采用外部并行BOOT方式时,BOOT的寻址区是在数据区,最大的程序代码长度仅为48K字。如果程序超过了48K字,只能采用另外的替代方法。这是在一些电路方案论证时需要考虑的问题。7.参考文献1张冠男,张坤 基于FLASH编程技术的DSP并行引导装载模式的设计J.2005.32陈红梅,陈健 TMS320V5402的FLASH并行bootloader技术J.2003.113罗剑,胡荣强 DSP并行引导多种方法实现的研究J.2007.34赵鹏飞 TMS5402DSP的并行引导加载J2006.55刘小伟,吴谨 DSP并行引导加载方法的研究J20086李国辉,刘立新,杨宏 TMS320VC5402并行引导装载方法的研究与设计J2006.3