攻克存储4S3C2440存储系统设计与思考.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
攻克存储4S3C2440存储系统设计与思考

前面几篇文章分别讲述了存储系统的地址线连接方法、存储芯片的写屏蔽、存储系统的扩展,以及SDRAM/DDR的结构和寻址,本文将以ARM芯片s3c2440为例,从整体上描述一个同时包含有SDRAM、Nor Flash、Nand Flash的存储系统的设计、工作原理和注意事项。 ? ? 下面这幅原理图就是这样一个完整的存储系统,主控芯片是三星公司的ARM芯片s3c2440(未画出,但相关引脚都在图中的导线上的标号标出),该存储系统包含了一个SDRAM(HY57V561620),一个Nor Flash(Am29LV160DB)一个Nand Flash(K9F1208)。 ? ??由该存储系统原理图,我们提出以下几个问题,并一一解答: ? ?(1)SDRAM芯片和 Nor Flash芯片都连接了ARM芯片的地址线,他们各自在存储系统中的地址范围是多少?由什么决定当前访问的是哪一个存储器 ? ? ?(2)如果希望再扩展一个ROM存储器,如何连线,地址范围如何确定? ? ?(3)Nand Flash芯片并没有连接到ARM芯片的地址线,如何寻址?怎样选中它? ? ?(4)ARM芯片如何知道外接存储器的位宽,即8位、16位还是32位? ? ?(5)程序代码可能存储在Nor Flash中,或者 Nand Flash中,系统启动时如何知道从哪个存储器中读代码?? ? 1. 首先回答第一个问题,存储芯片地址范围的确定。 ? ? 参考s3c2440的datasheet,我们可以找到该芯片的内存映射表(Memory Map),如下图: ? ? 根据OM[1]和OM[0]引脚的不同,内存映射的方式有细微差别(具体原理在本文后面讲述)。但基本可以看出,决定外接存储器的存储地址范围的因素主要是一组引脚 nGCS0[0]~nGCS[7] 。 ? ? s3c2440芯片把存储系统分为了8个Bank,由nGCS0[0]~nGCS[7] 这8根引脚决定当前访问的是哪一个Bank对应的存储器。其中,前6个Bank用于连接ROM或者SRAM(或者类似SRAM接口的存储器,如Nor Flash)(图中由SROM标识),而第7和第8个Bank用于连接SDRAM,并且规定由第7个Bank地址作为SDRAM的起始地址(即0。 ? ? 原理图中,我已经将决定存储芯片起始地址的nGCS0x引脚用特殊的亮红色标记出来了。我们可以看到,SDRAM芯片被连接到第6个Bank中,起始地址为0而Nor Flash被连接到了第0个Bank,起始地址为0x0000000 2. 再回答第二个问题,如何添加新的存储芯片? ? ? 其实,由第一个问题的解释,我们基本上就知道该怎么回答这个问题了。如果添加的是SRAM或者ROM芯片,则自然是将ARM的地址线对应着芯片的地址线进行连接(连接方法在本系列第一篇文章中讲过),然后由 nGCS0[0]~nGCS[5] 这6根引脚中,任选一个尚未使用到的Bank,连接到新添加的芯片上,以决定其地址起始。例如下图,外接一个8位的ROM芯片,片选信号使用 nGCS1,查上面给出的内存映射得知,其起始地址为 0 3. ?然后解决第三个问题,Nand Flash芯片是如何选中和访问的? ? ? 首先要了解Nand Flash的芯片原理,它不是直接通过地址线来寻址和访问的,而是有一套自己的读写擦除机制。该原理的介绍网上文章很多,这里不再赘述。这里需要说明的是,Nand Flash芯片虽然不需要连接ARM的地址线来寻址,但是额外需要其他的一些引脚来控制对其的访问,例如图中的Nand Flash相关的控制引脚说明如下: ? ? 对应的,ARM端(s3c2440)也为Nand Flash的访问单独提供这些引脚,正好对应连接,例如Nand Flash片选信号nCE连接到了ARM端的Nand Flash片选引脚nFCE上。当ARM需要访问Nand Flash时,就会使能这些相关的引脚,比如使能片选(nFCE),这样就选中了对应的Nand Flash芯片,然后进行读写擦除等操作。 4. ?下面回答第四个问题,如何配置外接存储器的位宽? ? ? 从s3c2440的datasheet可以找到,有一个寄存器是专门用于配置各个Bank外接存储器的位宽的,并且配置了该外接存储器是否使用写屏蔽(即写时序中是否分高字节和低字节)(在本系列第2篇文章中有描述),该寄存器说明如下: ? ??那么,加问一句,为什么需要配置这个位宽呢? ? ? 举个例子来说明这个问题吧。 ? ? 假设 ARM 扩展了两片16MB的SRAM芯片,每片SRAM芯片为16位,扩展后,存储系统为32位,两片SRAM片选引脚均连接的是ARM芯片的 nGCS1。 ? ? 由于每

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档