异步存储器接口类型是最常见的,也是我们最熟知的,MCU一般均采用此类接口。相应的存储器有:SRAM、Flash、NvRAM……等,另外许多以并行方式接口的模拟/数字I/O器件,如A/D、D/A、开入/开出等,也采用异步存储器接口形式实现。 同步存储接口相对比较陌生,一般用于高档的微处理器中,TI DSP中只有C55x和C6000系列DSP包含同步存储器接口。相应的存储器有:同步静态存储器:SBSRAM和ZBTSRAM,同步动态存储器:SDRAM,同步FIFO等。SDRAM可能是我们最熟知的同步存储器件,它被广泛用作PC机的内存。
C2000、C3x、C54x系列DSP只提供异步存储器接口,所以它们只能与异步存储器直接接口,如果想要与同步存储器接口,则必须外加相应的存储器控制器,从电路的复杂性和成本的考虑,一般不这么做。C55x、C6000系列DSP不仅提供了异步存储器接口,为配合其性能还提供了同步存储器接口。 C55x和C6000系列DSP的异步存储器接口主要用于扩展Flash和模拟/数字I/O,Flash主要用于存放程序,系统上电后将Flash中的程序加载到DSP片内或片外的高速RAM中,这一过程我们称为BootLoader同步存储器接口主要用于扩展外部高速数据或程序RAM,如SBSRAM、 ZBTSRAM或SDRAM等。
如何设计DSP系统的外部存储器电路,即DSP如何正确地与各种类型的存储器芯片接口。是存储器设计中的难点。另外,在DSP外部存储器电路设计中经常会遇到下列一些问题:
1. DSP提供的外部存储器接口信号与存储器芯片所需要的接口信号不完全一致,某些DSP支持多种数据宽度的访问,如8/16/32位数据宽度等,存储器电路中如何实现?
2. 数据线、地址线在PCB布线时,为了走线方便,经常会进行等效交换,哪些存储器可以作等效交换、哪些不行?
异步存储器:Flash
对于flash,读操作与SRAM相同,擦除和写入操作以命令序列形式给出,厂商不同,命令序列可能稍有不同写入命令序列后,Flash自动执行相应操作,直到完成,随后自动转为读状态。在完成相应操作前,读Flash得到操作是否完成的状态信息,而非存储单元数据.
对于flash,因为擦除跟写入操作以命令序列形式给出,可以对进行编程,包括两种方式:
1、在线,load2段程序,把要烧写的程序当作文件写入到Flash中。
2、离线,通过JTAG烧写。
3.3V、16位宽度的、工业标准Flash有4种,它们的引脚兼容,均为48引脚的TSOP封装。在PCB布线时,以最大容量1M×16位Flash布线,则可根据容量需要安装任何一种Flash。Flash的数据线和地址线不可以等效交换。考虑BootLoader,Flash应定位于特殊的位置,设计时应参考相应器件的数据手册。
1、VC33,Flash应定位在PAGE0的1000H、或PAGE1的400000H、或PAGE3的FFF000H,可支持8/16/32位数据宽度。
2、C54x系列DSP,Flash应定位在数据存储空间的8000H~FFFFH,可支持8/16位数据宽度
3、C55x系列DSP,Flash应定位在CE1存储空间的200000H,C5509只支持16位宽度,而C5510可支持8/16/32位数据宽度。
4、C620x/C670x系列DSP,Flash应定位在CE1存储空间,大小为64K字节,支持8/16/32位数据宽度,只能是Little Endian格式。
5、C621x/C671x系列DSP,Flash应定位在CE1存储空间,大小为1K字节,支持8/16/32位数据宽度,可以是Little Endian格式,也可以是Big Endian格式。
6、C64x系列DSP,Flash应定位在EMIFB的CE1存储空间,大小为1K字节,仅支持8位数据宽度,可以是Little Endian格式,也可以是Big Endian格式。
常用的Flash:SST39VF400A-70-4C-EK,256K×16位、3.3V、70ns。
SDRAM
SDRAM,即Synchronous DRAM(同步动态随机存储器),曾经是PC电脑上最为广泛应用的一种内存类型,即便在今天SDRAM仍旧还在市场占有一席之地。既然是“同步动态随机存储器”,那就代表着它的工作速度是与系统总线速度同步的。SDRAM内存又分为PC66、PC100、PC133等不同规格,而规格后面的数字就代表着该内存最大所能正常工作系统总线速度,比如PC100,那就说明此内存可以在系统总线为100MHz的电脑中同步工作。与系统总线速度同步,也就是与系统时钟同步,这样就避免了不必要的等待周期,减少数据存储时间。同步还使存储控制器知道在哪一个时钟脉冲周期有数据请求使用,因此数据可在脉冲上升期便开始传输。SDRAM采用3.3伏工作电压,168Pin的DIMM接口,带宽为64位。SDRAM不仅应用在内存上,在显存上也较为常见。
SDRAM工作过程:
1. 上电稳定后经过8个刷新周期,进入模式寄存器设置(MRS),确定芯片的工作模式,CL,BL,突发传输方式。
2. 行有效,同时进行了片选和BANK选择工作。CS RAS有效 CAS WE无效,地址线和BA上选择相应的BANK和行(有些文档中将这两种都归为地址线,BA为地址的最高位)。
3. 列读写,当行有效后,选择需要的列进行读或写操作,CAS有效,RAS无效,地址线上为列地址,WE信号决定了究竟是读还是写操作。
SDRAM中的一些重要知识:
1. tRCD,RAS到CAS的延迟,也就是说当行有效后不能在下一个时钟周期就进行读写操作,而是要等待一定的时间,这个时间就是tRCD,一般为2个或3个时钟周期。
2. CL,读取潜伏期,读取过程中当CAS到达后并不能马上将数据输出到IO总线上,而是要经过一定的时间,这个时间就是CL,它是由于信号要经过放大等处理造成的,它的数值可以在MRS中改变,单位是芯片时钟周期。
3. 写入操作是没有任何延迟的,在CAS发出后数据就可以发出SDRAM
4. 利用设置BL可以连续传送一组数据而不需要给出相应的地址只要给出第一个数据的地址就可以了。
5. 预充电过程,当选择同一BANK的不同行的时候就要进行预充电操作,一般为2个时钟周期。
6. 刷新过程分两种,一种是自动刷新还有一种是自刷新。提高SDRAM效率必须要尽量减少以上提到的各种时间造成数据的延迟。 |