基于S3C2440的存储器接口设计与初始化分析_第1页
基于S3C2440的存储器接口设计与初始化分析_第2页
基于S3C2440的存储器接口设计与初始化分析_第3页
基于S3C2440的存储器接口设计与初始化分析_第4页
基于S3C2440的存储器接口设计与初始化分析_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于s3c2440的存储器接口设计与初始化分析    黄飞翔蔡启仲【摘 要】在嵌入式系统设计中,sdram的工作原理、控制时序及相关寄存器配置方法,相对较难。本文基于三星公司的s3c2440微处理器,设计外接美光内存芯片mt48lc16m16a2,并详细分析了初始化代码,目的是加深初学者对sdram的基础知识的了解,能有助于今后的嵌入式学习以及设计提供参考。【关键词】sdram;存储器;s3c24400 引言制造商所生产的mcu片内存储器空间往往不可能完全满足所有的嵌入式系统应用设计,例如,at89s51单片机的内部ram大小为128字节。因此,

2、对于需要较大片内存储空间的应用设计来说,扩展片内存储器空间是非常重要的。1 硬件设计1.1 三星s3c2440微处理器1.1.1 s3c2440硬件资源s3c2440是三星公司开发的一款基于arm920t内核的16/32位risc微处理器,集成的系统外设和接口有:1.8v内核电压,3.3v存储电压,3.3v i/o电压;16kb的指令高速缓存、16kb的数据高速缓存和存储管理单元;外部的存储控制器(sdram控制器和片选逻辑);lcd控制器,包括一个lcd dma;4个带外部请求管脚的dma;3个uart,2个spi;1个i2c总线控制器,1个i2s-bus控制器;sd主机接口;4个pwm时钟

3、和1个内部时钟;看门狗时钟;117个gpio,24个外部中断源; 8路10位 adc和触摸屏接口;带alarm功能的rtc;带pll的片上时钟发生器;nand flash控制器。1.1.2 存储器系统arm存储器系统由各种类型的存储器按照一定的层次结构组合成3,如图1所示。sdram在存储结构中用做程序的运行空间,它在响应控制输入前会等待一个时钟周期,将cpu和ram之间的速度进行匹配,加快了数据传输速度。1.1.3 s3c2440的地址空间s3c2440是一款具有32位的地址总线和数据总线宽度的cpu,实际上只指引出了27根地址线,最大寻址空间为128mb。8个bank分别对应s3c2440

4、的8个片选信号线ngcs0 ngcs7相互区别,可以做到总的寻址空间为8*128mb=1gb。s3c2440地址空间4如图2所示,sdram需接在s3c2440的bank6或bank7上。1.2 sdram存储器mt48lc16m16a21.2.1 mt48lc16m16a2概述及特性5mt48lc16m16a2是一款256mb高速cmos sdram,容量为256mb,结构为4 x 4m x 16bits,16位位宽,兼容pc100、pc133,3.3v供电电压,自动预充电,刷新时间为8192/64ms。1.2.2 sdram读写时序s3c2440对sdram的基本读操作和写操作均需要控制线

5、与地址线相互配合。sdram基本读操作过程如下:(1)发出bank激活命令(必须大于ras到cas的延迟指标trcd),并锁存响应bank的行地址与列地址;(2)cl(cas延迟值)个时钟周期后,先指定行地址再指定列地址数据即可出现在数据总线上;(3)向sdram预充电命令(prechareg)以关闭激活页,等待trp时间,即可进行下一次读、写操作。sdram基本写操作过程如下:(1)发出bank激活命令(要求同前),并锁存响应bank的行地址与列地址;(2)写入数据依次出现在数据总线上;(3)写入最后一数据后延时twr时间,向sdram预充电命令(prechareg)以关闭激活页,等待trp

6、时间后即可进行下一次读、写操作。1.3 接口电路设计采用两片mt48lc16m16a2并联组成32位的位宽,它们与s3c2440的接口电路设计如图3所示。2 寄存器配置及sdram初始化分析2.1 寄存器配置bank7不仅可以像bank0bank5一样支持rom和sram,还可以外接sdram,因此除了需要像bank0bank5一样设置相应的总线带宽等待控制寄存器bwscon和总线控制寄存器bankcon7外,还需要根据mt48lc16m16a2数据手册中的参数(例如trp、trc、trcd和trp等)来对刷新控制寄存器、存储块大小控制寄存器和模式设置寄存器的相应位进行配置,从而使得内存控制器

7、可以产生相应的时序。假设系统的hclk为100mhz(即时钟周期为10ns),则各寄存器概述及根据sdram芯片时序的配置(未配置的位保持默认)如下:(1)总线带宽等待控制寄存器(bwscon)各位如下:st 启动/禁止sdram的数据掩码引脚,对于sdram,该位置0;ws 是否使用存储器的wait信号,通常置0为不使用;dw 两位,设置位宽(00=8bit、01=16bit、10=32bit、11=保留)。(2)总线控制寄存器bankcon7各位如下:mt(16:15):配置为0x03将bank7映射的物理内存为sdram;trcd(3:2):行地址到列地址的延迟时间设置为0x0,因为tr

8、cd5=20ns(即2倍时钟周期);scan(1:0):sdram列地址位数设置为0x01,因为本设计所采用mt48lc16m16a2的列地址数为9。(3)刷新控制寄存器refresh refen(23)设置为1,即启用sdram刷新功能;trefmd(22)设置为0,即选用自刷新模式;trp(21:20)根据trp5=20ns设置为0x00,即两个时钟周期;tsrc19:18(sdram半行周期运行时间),sdram的行周期运行时间满足trc=tsrc+trp,因为trp5=20ns(2个时钟周期),trc5=66ns(7个时钟周期),所以tsrc为5个时钟周期,即将tsr(19:18)设置

9、为0x01;mt48lc16m16a2刷新8192行的总时间为64ms,则单行刷新时间为7.81s(64ms/8192),再由公式(单行刷新时间=211-sdram工作频率(mhz)×刷新计数器值+1)计算得refresh counter(10:0)=0x4f4。(4)存储块大小控制寄存器banksizebk76map(2:0)配置为0x001,因为本设计外接64mb的sdram。(5)sdram模式设置寄存器mrsrb7cl6:4 配置为0x011,因为tcl5=2.5ns(需3倍时钟周期)。2.2 设计并分析sdram启动代码首先在xxx.inc文件中对下列常量进行定义。其次,初始化文件中包含了xxx.inc文件,就可以在其中使用上述变量了,如下:通过以上部分代码,即可完成对sdram存储器的初始化。3 总结本次设计介绍了s3c2440与sdram硬件接口的设计及相关寄存器的配置过程,为嵌入式系统设计提供了一定的学习和设计参考。【参考文献】1王波波,王琤,等.arm完全学习手册m.北京:化学工业出版社,2012.2黄智伟,邓月明,王彦.arm9嵌入式系统设计基础教程m.北京航空航天大学出版社,2008.3奚海蛟,谌利,吕铁军.arm体系结构与外设接口实战开发m.北京航空航天大学出版

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论