用DSP软件编程实现的引导装载系统设计
1 概述
DSP系统的引导装载是指在系统加电后,系统自行将一段存储在外部非易失性存储器中的代码移植到内部DSP的高速RAM中并执行的过程。因此,在引导装载系统中,外部非易失性存储器和DSP的性能显得尤为重要。FLASH存储器是一种高密度、非易失性的电可擦写存储器,而且单位存储比特的价格比传统的EPROM要低,所以十分适合于作为外扩存储器。在系统加电之前,必须先将引导程序和用户程序写入FLASH中。编程时,除了可以利用专用的硬件编程器实现对FLASH的编程之外,FLASH通常还支持DSP软件编程以实现同样的功能。当系统加电之后,一般首先在FLASH中运行引导程序,并由其自行完成对用户程序的移植操作,然后再由DSP高速运行移人到DSP片内的用户程序。本文介绍了TI公司的TMS320VC5410定点DSP和ST公司的M29W400T FLASH存储器的基本特点和主要结构,给出了通过DSP对FLASH进行软件编程的具体方法,同时介绍了实现一个完整的引导装载系统的实现方案。
2 硬件描述
2.1器件简介
TMS320VC5410数字信号处理器是美国TI公司推出的TMS320VC54x系列定点DSP中的一种,它具有144管脚的LQFP封装,采用3.3V的I/O电压和2.5V的核电压供电方式,具有3个独立的16位数据总线和1个程序总线的多总线并行结构,其低功耗和高速度适用于便携式系统的开发。由于本文涉及到DSP对FLASH的存储器地址操作;因此,在此对相关内容加以介绍。
DSP的存储空间包括程序空间和数据空间,它们均划分为64k X l6位的页面。其中DSP片内存储资源包括16k X l6位的可掩膜ROM以及可高速运行的4个2k X 16位的DARAM和7个8k X l6位的SARAM。DSP有两种工作模式:微处理器模式和微计算机模式,分别对应MP/MC=1和0。本系统中采用的是加电后从外扩的FLASH中启动,即采用微处理器模式,所以没有用到DSP内部ROM中固化的引导程序,而是采用早先写入FLASH中的自行设计的引导程序。
TMS320VC5410的存储空间映射如图1所示,它最大可支持128个存储页面,寻址空间为8Mb。在图1中,当MP/MC=1时,程序空间的第0和第1页面对应于图中最左边的两列,数据空间的第0页面对应于图中最右边的一列,其中的外部空间(External)即对应外扩的FLASH,只有这部分FLASH存储空间才可以被DSP访问到。由此可知,DSP对FLASH进行读写操作的前提是,FLASH在DSP存储空间中至少是可见的。
M29W400系列是ST公司推出的FLASH存储器,该系列器件十分适合于用作外扩存储器。M29W400T是该系列中的一种,它采用3V单电源供电,并采用TSOP封装形式。
M29W400T存储器的容量为4MB,分为11个不同大小的块结构,它支持8位或16位操作模式。本文采用16位操作模式。M29W400T的外形封装如图2所示,管脚功能见表1所列。M29W400T最重要特点就是无需额外提供高电压即可通过一些特殊的命令字序列实现对各个块的读写和擦除,并且可重复进行十万次以上。这样使得通过DSP软件编程实现对M29W400T的读写操作成为可能,并十分适合于系统的调试和开发。
2.2系统连接
本系统由TMS320VC5410和M29W400T以及相关的电源管理单元等构成,具体的连接电路如图3所示。图中,DSP与FLASH是主从关系,由DSP的相关输出管脚来控制FLASH的擦除和读写。其中A0-A17为地址线,DO-D15为数据线,MSTRB为存储选通信号,R/W是读写脉冲信号,OE和WE分别为读使能和写使能,CE为片使能,BYTE为8位或16位数据模式选择(图3中BYTE接高电压为16位模式)。当系统按如图3所示进行连接后,DSP的前一半4MB地址空间数与FLASH的4MB地址空间一一对应,因此,FLASH中的地址值即为DSP中的地址值,这样,对地址的操作就变得极为方便。
FLASH中用于存放引导程序段和用户代码段,由DSP软件编程写入。当系统脱机加电时,DSP首先从外部FLASH指定的引导程序段的起始位置处开始执行引导装载,即将原先存储在FLASH中的用户代码移植到DSP片内的RAM中,然后将程序指针设置为用户程序的起始地址,接下来便可利用DSP资源去高速执行用户程序。
2.3 DSP对FLASH的操作
对照图1的地址映射关系,如果采用的是微处理器模式(MP/MC=1),并且设置寄存器OVLY=I,那么由于连接的关系使得FLASH的起始地址0x0000和DSP的起始地址0x0000重合,在DSP第0页程序空间中可见的FLASH的地址范围应为0x8000-0xFFFF。
在擦除或读写FLASH之前,必须先执行相应的命令字序列,即在指定的FLASH地址处写入指定的指令代码,M29W400T的命令字序列如表2所示。
表2中的某些FLASH地址空间对照图1恰好对应于DSP的内部地址空间,即对DSP而言是不可见的,所以需要考虑地址
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)