DSP与海量存储器的接口技术
内容导读:
DSP与海量存储器的接口技术 长沙国防科技大学刘国福张王己张连超 摘要在分析DSP芯片TMS320F206存储结构的基础上,解决TMS320F206与海量SRAM、FLASH和DRAM的接口设计问题;比较三种海量存储器在DSP系统中应用的优缺点,并给出一个应用实例。 关键词TMS320F206海量存储器接口 TMS320F206是美国TI(德州仪器)公司继TMS320C2X和TMS320C5X之后推出的一种低价格、高性能的16位定点运算DSP。其CPU接近于TMS320C25,但时钟速率提高、指令集更为丰富和优化、片内外设向TMS320C5X靠拢\[1\]。TMS320F206(以下简称F206)的性价比极高,目前已成为高档单片机的理想替代品,在通信、语音/语言、军事、仪器仪表、图像处理、工业控制等领域得到了广泛的应用。尽管F206可以满足许多实际系统对DSP芯片的性能要求,但由于其地址总线只有16根,故寻址空间仅为64K,因而远远满足不了需要大容量数据存储系统的需要。本文就是在分析F206的存储结构的基础上,通过借用I/O空间来扩展存储空间,解决了TMS320F206与海量SRAM、FLASH和DRAM的接口设计问题。读者在设计实际DSP应用系统过程中,可根据需要来选择合适的海量存储器。 一、 F206的存储结构 表1给出了F206的存储结构分布。从表1可以看出,F206拥有独立的程序空间、数据空间和I/O空间,每个空间的大小均为64KB。在程序空间,F206利用FLASH存储器来存储程序,不仅降低了成本,减小了体积,同时系统升级也比较方便;F206片内的32KB FLASH存储器也几乎能满足大多数DSP系统的要求,不用再外接其它非易失性存储器。在I/O空间,除了256字节的高端I/O空间由F206保留或作为外设寄存器使用外,其余的I/O空间皆可为用户使用;但对于需要频繁对数据进行读写操作的数据空间,F206留给用户的只有从1800H到FFFFH大约58KB的范围,这对于需要海量数据存储的场合是远远不能满足的。目前应用在DSP系统中的海量存储器主要有三种:SRAM、FLASH和DRAM。它们的存储容量一般都在64KB以上,因而如果只依靠数据空间是不可能实现F206与这些海量存储器间的接口的。但仔细观察表1可以发现,F206有大量的I/O空间闲置不用,这就自然地启发我们能否借用I/O空间来扩展数据空间呢?如果将I/O空间的每个I/O地址看作是“页”,每“页”的大小是用户的58KB数据空间,则F206的整个扩展的数据空间将达到(64K-256)×58K≈3700M。根据上述设想,作者设计了F206与IS61C1024(SRAM,128KB)、AM29F040B(FLASH,512KB)的接口电路。DRAM由于其地址线分时复用为行地址和列地址,因而它的地址线少,可以和F206直接接口,但需解决分时传送行列地址和周期刷新的问题,故F206与DRAM的接口设计比SRAM和FLASH复杂,实际DSP系统中也很少使用。 表1F206的存储结构 程序空间〖〗数据空间〖〗I/O空间地址〖〗说明〖〗地址〖〗说明〖〗地址〖〗说明0000H 7FFFH〖〗片内32KB FLASH8000H FFFFH〖〗外部扩展程 序空间使用〖〗0000H 07FFH〖〗片内RAM 及保留空间〖〗0000H FEFFH〖〗外部I/O 空间0800H 17FFH[]片内4KB RAM[]FF00H FF0FH[]保留1800H FFFFH[]外部扩展数 据空间使用[]FF10H FFFFH[]片内I/O外 设寄存器二、 F206与海量SRAM的接口电路设计 图1示出了F206与海量SRAM、FLASH和图1F206与SRAM、FLASH和DRAM接口的译码电路DRAM接口的译码电路。U2将F206的I/O空间选择信号IS、数据空间选择信号DS、读信号RD和写信号WE译码生成I/O空间读写信号IOR和IOW、存储空间读写信号MEMRD和MEMWE;U3将U2译码生成的I/O空间读写信号与F206的地址信号译码,从而得到具体的I/O地址;U4则译图2F206与IS61C1024的接口电路码生成海量FLASH、DRAM的片选信号,同时还得到了对DRAM操作的三个信号:读写方式选择信号、行地址选通信号RAS和列地址选通信号CAS。图1所示电路是实现F206与海量存储器接口的前提。 IS61C1024为128KB的SRAM,地址线有17根。设计F206与其接口的关键是将IS61C1024的高位地址线(图2中为A14、A15和A16,可根据分页的多少和页面的大小而定)通过八D锁存器74HC574的输出保持,其余地址线直接连到F206的地址总线上。如图2所示,IS61C1024的128KB空间被分成8页,每页为16KB。这16KB的空间被定位在F206数据空间的哪一个范围则是由信号线CSRAM决定的。在对SRAM操作时,先要通过74HC574选择页面,然后便可对当前页面的16KB数据空间读写。 三、 F206与海量FLASH的接口电路设计 AM29F040B是AMD公司生产的CMOS型FLASH,存储容量为512KB,使用单5V电源进行按扇区的擦除和按字节的写入操作。其引脚输出与工业标准的EPROM、E2PROM完全兼容,在电路设计时非常方便\[2\]。图3示出了F206与AM29F040B的接口电路,它将512KB的数据空间分成32页,每页16KB。图3与图2设计原理相同,这里不再赘述。与SRAM不同,对FLASH的操作是通过一系列命令来实现的。表2给出了AM29F040B的主要命令定义(其中XXX表示任意地址;RA表示要读的存储地址,RD表示要读的数据;PA表示编程地址,PD表示编程数据;SA表示扇区地址A18~A16)。从表2可以看出,读FLASH只需要1个时钟周期,而写入一个字节则需要4个时钟周期,因此FLASH的读写速度比SRAM慢。但FLASH比相同容量的SRAM便宜得多,工作可靠性高,因而FLASH非常适用于需要大容量、非易失性、重复编程存储的场合。 图3F206与AM29F040B的接口电路表2AM29F040B的主要命令 命令 描述〖〗时钟 周期〖〗总线周期1〖〗2〖〗3〖〗4〖〗5〖〗6地址〖〗数据〖〗地址〖〗数据〖〗地址〖〗数据〖〗地址〖〗数据〖〗地址〖〗数据〖〗地址〖〗数据读〖〗1〖〗RA〖〗RD复位〖〗1〖〗XXX〖〗F0编程〖〗4〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗A0〖〗PA〖〗PD片擦除〖〗6〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗80〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗10扇区擦除〖〗6〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗80〖〗555〖〗AA〖〗2AA〖〗55〖〗SA〖〗30四、 F206与海量DRAM的接口电路设计 1. DRAM芯片KM416C简介 KM416C是三星公司生产的DRAM芯片,其容量为1M×16bit,结构是行4096×列256个单元,每个单元表示16bit,即一个字\[3\]。图4示出了KM416C的引脚及其与F206的接口电路。图4中DRAM芯片的三个控制读写信号、CAS和RAS均来自图1中U4的译码。由于KM416C的地图4F206与KM416C的接口电路址线是分时复用的,故地址线少,只有12根,因而外接电路不再需要锁存器。在讨论图4是如何实现F206对KM416C进行读写操作和刷新操作前,首先介绍其引脚功能如下。 RAS:行地址选通信号,其下降沿将行地址锁存。 UCAS和LCAS:用来对高8位和低8位数据引脚进行单独控制。LCAS控制低8位,UCAS控制高8位。 OE:控制DQ的输出阻抗。当CAS、RAS都为低,为高时,即对芯片进行读操作时,OE选通时,数据输出端DQ有效;而OE为高时,DQ呈高阻态。 :用于选择读和写方式。为高时,表示读操作;为低时,写操作。读操作时,数据输入被禁止。当在CAS之前变低时(早写操作),数据输出在整个周期,处于高阻态,这就允许有独立于OE的写操作,即可以在OE接地的情况下进行写操作。 A0~A11:12位地址线。由于该DRAM是4096行、256列,因此,送行地址时,12位全部有效;送列地址时,仅低8位有效。 DQ0~DQ15:16位I/O数据线。可由UCAS和LCAS分别对高8位和低8位选通。 2. 接口电路说明 图4中OE接地,这是因为读操作时,OE为低时输出使能;而DRAM早写操作又可独立于OE进行。由于F206是16位定点DSP,因此它与DRAM接口时,不需要高8位低8位分别操作,可一次性进行16位操作,因而电路中将LCAS和UCAS相连,使用同一信号同时选通高低8位。F206还具有对数据存储器操作的选通信号DS,即对存储器操作时,该信号为低。读写选择信号R/,当DSP写操作时为低,读操作时为高,因此可用来作信号的译码信号。 3. 对DRAM的操作 DRAM的操作分为读、写和刷新操作。其中写操作包含早写操作和一般的写操作,两者的区别就在于对OE的要求:早写操作对OE无要求,而一般的写操作需OE为高电平。由于DRAM是靠场效应管的栅极电容来存储数据的,因此,要保持数据需要定时对DRAM进行刷新操作。本系统所使用的芯片,需要至少每64ms刷新一次,即每64ms要对每一行进行一次读或写操作。这里限于篇幅,仅讨论F206对DRAM的读操作,其时序如图5所示。 图5读操作时序对于所有的操作来说,最关键的是行列地址的输入要正确。从时序图可以看出,当RAS下降沿时,将行地址锁存;而当CAS下降沿时,将列地址锁存,同时进行相应单元的读写操作。 但是RAS需要在整个操作周期都处于低电平状态,如果用单指令分别送行列地址,则难以保证这个条件,因为用单指令对存储器操作之后,DS总是会回到高电平状态,由DS译码的RAS信号不会整个操作周期处于低电平。但注意到F206对数据块操作时,用重复指令RPT可使DS在整个重复操作期间一直保持为低,所以我们使用该指令并配合寄存器变址间接寻址指令进行数据块转移(实际上每次只转移一个数据,但可以使不同的地址来译码产生RAS和CAS信号)。 在读操作中,使用指令 RPT#2 ;将下一条指令重复2 +1次 BLDD*0-,#1001H;将从当前辅助寄存器指向的单元读 ;出到1001H,从(当前寄存器-AR0)所指向的单元读出 ;到1002H;从(当前寄存器-2AR0)所指向的单元读出 ;到1003H 配合读操作的时序图看出,重复三次BLDD指令:第一次将、RAS和CAS都置高;第二次将RAS置低,和CAS保持为高,同时将行地址锁存;第三次将CAS置低,RAS保持为高,为高,同时将列地址锁存,得到有效的数据输出,保存到1003H中。第一次和第二次读指令,是为了产生RAS和CAS的时序,实际的物理地址并不存在,因此读出的是FFFFH。 从上面F206对DRAM的读操作过程可知,与SRAM、FLASH需要I/O空间来确定页面地址不同,F206实际上是通过行地址来确定当前页地址,通过列地址来寻址每页中的具体存储单元的。因此KM416C被分成4K页,每页256字。 小结 在实际的DSP系统应用中,SRAM、FLASH和DRAM各有其优缺点。SRAM与F206接口最简单,软件设计也最容易,读写速度最快;然而由于价格因素,成本也最高。FLASH与F206的接口比较容易,数据读出速度较快,只是写入速度稍慢;但其价格适中,可靠性高,数据可永久保存。DRAM与F206的硬件接口简单,软件设计却非常繁琐,故在实际应用中一般都需要DRAM控制器。在DSP系统中很少单独使用DRAM芯片。 在作者设计的DSP与海量存储器的接口系统中,由于需要DSP对声卡进行DMA采集和播放语音信号,因而选择存储器时还要看其是否能满足DMA操作的要求。由于DMA只对存储器读写操作一个总线周期,故SRAM能DMA读写;FLASH可DMA读,不能写;DRAM不能DMA读或写。 综上所述,作者在实际的DSP系统中使用了1片IS61C1024和2片AM29F040B。它们与F206的接口电路可参阅图1、图2和图3。整个系统的58KB用户数据空间的地址分配如表3所列。 表3一个DSP系统数据空间分配表 芯片〖〗容量〖〗地址范围〖〗分页大小IS61C1024〖〗128KB〖〗2000H~5FFFH,16KB〖〗8页A片:AM29F040B〖〗512KB〖〗8000H~BFFFH,16KB〖〗32页B片:AM29F040B〖〗512KB〖〗C000H~FFFFH,16KB〖〗32页MES 参考文献 1TMS320C2xx数字信号处理器用户指南.武汉力源电子股份有限公司,1998 2AMD公司FLASH数据手册 3三星公司DRAM数据手册
标签:
来源:单片机与嵌入式系统应用 作者:长沙国防科技大学 刘国福 张王己 张连超 时间:2006/2/12 0:00:00