|
|
摘要】介绍如何用通用并行EPROM芯片与TMS320VC5402芯片接口,实现并口启动装载。给出了此方案的硬件电路图、电路原理及相关源代码,叙述了如何将5402编译器生成的输出文件转换成可以写入EPROM的文件格式及写入时的注意事项。
关键词:启动装载 速度匹配 工作频率
对于DSP应用系统来说性价比是关键,在众多的DSP厂家和芯片型号中,德州仪器(TI)公司的TMS32 0VC5402芯片(以下简称5402)就是一款性价比很好的DSP芯片。该芯片每秒钟可处理1亿次指令,千片的公开报价为5.98美元,现在有几种流行的MP3随身听和手机就采用了该款DSP芯片。
在设计以5402为核心的独立系统时,必须解决5402的启动装载问题。TI公司技术文档中有专门介绍5402启动装载的文章,但对并口启动装载方案没有作充分的说明,本文就是对此的一个补充。那么,什么是5402的启动装载呢?启动装载就是在系统启动时将5402的运行程序从外部媒体装载到其内部SRAM或扩展的SRAM中,从而使系统能够按照预定的程序运行的过程。为什么5402必须要有启动装载呢?因为54 02芯片内部没有提供FLASH或EPROM空间来保存它的运行程序,所以,要让5402系统独立运行,就必须从外部装载程序。
5402提供了五种启动装载的方式:HPI端口启动模式、标准串口启动模式、I/O启动模式、串口EEPROM启动模式和并口启动模式。我们认为并口启动装载方案是以5402为核心的独立系统的最佳方案。因为前三种方式适用于多处理器系统中由其它处理器为5402提供运行代码的情况,无法适应以5402为核心的独立系统的要求,后两种方法都可以用在以5402为核心的独立系统上,但串口EEPROM启动模式中只支持SPI端口的EEPROM,这种EEPROM市场上较少见,价格偏高,而并口启动模式可以采用多种型号的并行EPR OM、并行EEPROM和并行FLASH(以下用EPROM代表),其可选器件种类较多,能够选择价格较低的型号与5402这种低价位的DSP芯片搭配,因而充分体现系统的性价比优势。
5402的并行启动装载方案的关键是:解决5402与EPROM的速度匹配问题。
5402一般要求在100M的工作频率下,才能达到每秒种处理1亿次指令的性能,而并口装载时100M的频率(速度为10ns)几乎是所有的EPROM都无法承受的,因此5402提供了装载时的总线时钟延时功能。该延时功能最多能延时7倍,就是只能与速度高于或等于70ns的EPROM和FLASH接口,但能满足这一要求的EPROM和FLASH价格很高。
为解决该问题,需利用5402的另外一个特性,即5402的工作频率可以小于或等于100M,并能用硬件和软件两种方式设定。因此,我们可以在硬件电路中设定5402刚加电时的工作频率很低(比如为5M),利用这个频率来和EPROM接口。然后,在所装载程序的开始部分,用软件设定的方法将工作频率更改为100M,使5402达到最大的工作效率。
下面具体讲述硬件和软件的实现方法。
1 5402并行启动装载方案的硬件原理
5402芯片采用10M的晶振。图1为电路连接图,图中用一个8位宽的容量为32K的EPROM(27C256)与5402接口。
1.1 硬件设定工作频率
我们将5402的CLKMD1~3三个脚都连到高电平上,这样5402芯片开始加电时的工作频率被硬件设定为二分频,即5M,在这种频率下进行的启动装载几乎可以和所有速度指标的EPROM接口。
1.2 XF的作用
图1中EPROM被映射到5402的数据区(有效地址为8000H~FFFFH),这样将占用5402的数据区空间。为了让5402在启动代码装载完后仍能使用这段数据区空间,必须让EPROM在程序装载后让出总线。此时将5402的通用输出脚XF的倒相接到EPROM的片选脚(CE)上,就可以实现这一功能。其工作原理为:在5402刚加电时XF为高电平,这时EPROM片选将软件程序装载到5402的SRAM中,然后在程序的开始部分将XF置低,使EPROM不工作让出占用的数据空间。
1.3 采用16位的EPROM
如采用16位的EPPOM,只需对接好高8位数据位,其它同图1。
![]()
2 5402并行启动装载方案的软件代码
为配合硬件电路,要用软件来控制XF并更改5402的工作频率。代码如下:
RSBX XF;控制XF, 将其电平置为低.,关闭EPROM,让出数据区空间。
STM #0,58h ;将CLKMD寄存器(数据空间地址为58H)置为0, 即为二分频状态,此时倍频电路不工作 。
wait—pll: ;如下循环判断是为了等待5402二分频状态设置成功。
LDM 58h,A ;读入CLKMD的值到累加器A中。
AND #1,A ;取CLKMD的值中最低位.。
BC wait—pll,ANEQ ;如最低位为1则跳转到wait—pll继续等待, 为0则退出循环。
STM #97ffh,58h ;将CLKMD寄存器写为97FFH,即设置为10倍频状态,则其相应的工作频率更改为100M 。 RPT #100 ;循环执行100次空语句, 等待5402的工作频率稳定在100M。
nop
3 将软件正确写到EPROM中
5402的软件编译后需要写入EPROM中。5402软件编译后生成扩展名为out的输出文件,这种文件格式不能直接写入EPROM中,必须经过格式的转换,而且写入时也要注意一些问题。
3.1 文件格式的转换
绝大多数EPROM或FLASH的烧写器都支持hex格式的文件,这里就介绍将out文件转成hex文件的方法。在转换过程中,要用到5402编译环境中的hex500.exe工具。
首先,要建立一个保存转换选项的文件,一般存为扩展名cmd。转换选项须根据具体情况修改,否则转换的文件无法正常使用。例如我们保存了一个名为rom.cmd的文件,文件的内容和说明如下:
main.out
-e 0080h
-i
-memwidth 8
-boot
-bootorg PARALLEL
-o main.hex
说明:main.out是输入文件名,即5402软件编译生成的out格式文件的名字。
-e选项是程序的中断向量表的入口点,在这个例子中我们的软件的向量表放到了数据空间的0080H的位置。
-i选项决定输出文件的格式为hex格式。
-memwidth选项使用了EPROM的位宽度,如果是8位的ERPOM则为8,如果是16位的EPROM则为16。
-boot选项用来说明将out文件中的所有程序段都转成hex格式。
-bootorg选项说明输出的文件是为并行的EPROM提供的,要由hex500.exe加入并行的一些控制信息。
-o选项后面是输出文件的文件名。
然后,直接在DOS下写入如下一行命令,调用hex500.exe实现格式的转换:hex500 rom.cmd
3.2 烧写EPROM时要注意的问题
转换生成的hex文件在由烧写器的烧写软件读入时,一定要计算好文件的放置位置。5402的并行启动装载方式要求8位的EPROM在数据空间的FFFFH和FFFEH中要放入程序代码的起始地址(地址高位放FFFEH中,地址低位放在FFFFH中),16位的EOPROM要在FFFFH中放入代码起始地址。
例如:用一个32K*8bit的EPROM作为5402的启动装载媒体,将它映射到5402数据空间的8000H-FFFFH之间。如果我们将程序代码对齐该EPROM的起始位置烧写,那么程序代码的起始地址应为8000H,因此我们还要在EPROM中的FFFEH位置烧入80H,在FFFFH位置烧入00H数据。这样才能保证程序顺利装载。
参考文献
1 Ruber D. Perez.TMS320VC5402 and TMS320UC5402 Bootloader. February 2000
2 TMS320C54x DSP Reference Set (Volume 1-5).Texas Instruments Incorporated. June 1999
[/td]
[/tr]
|
|