历史上的今天

今天是:2024年09月18日(星期三)

正在发生

2021年09月18日 | s3c2440内存类设备访问原理

发布者:SparkStar22 来源: eefocus关键字:s3c2440 手机看文章 扫描二维码
随时随地手机看文章

在嵌入式里面所谓内存类接口有SDRAM接口,NORFLASH接口,DM9000网卡接口等 ,他们都有一个共同点就是可以直接连S3C2440内存控制器,数据总线,地址总线;这三者缺一不可。


内存类接口可以通过地址直接访问内部数据,当然他们都有自己的一段可访问的地址范围。S3C2440将其1G地址空间划分为8个bank,每个bank有128M,所以芯片提供了8个片选信号线,每个片选信号线对应一个bank,一个片选信号连接一个设备,所以每个设备可访问的地址的范围是128M空间,128M=2的27次方个字节,所以芯片上面的地址线只有27跟,最大只能到A26。理论上32位的CPU应该有32跟地址线,因为最大可以到0xffffffff=2的32次方=4G,但S3C2440的设计只有1G的地址空间,其他的都保留了,这1G的空间又被砍成了8块,所以每块就只能分得128M=27跟地址线的操作空间,也可以以这么理解:这8个片选信号在芯片内部通过A27-A29这三根地址信号经过3-8译码器译码所得。


S3C2440有两种启动方式:NOR和NAND方式;

如果是NOR启动,那么NORFLASH的片选必须接CS0片选,因为系统启动是从0地址开始执行的;这种方式下里面的内部4K sram可用作其他用途,其起始地址为0x40000000。

如果是NAND启动,那么CS0片选则不能接其他设备,因为这个时候BANK0的地址已经被SRAM映射了。


再来看BANK67,这两个块芯片规定给内存使用的,每个可以放128M,连起来最多可以放256M的内存,而且BANK6跟BANK7的内存大小必须一样,因为扩充一个BANK,芯片内部必须加一根地址线去访问,所以内存必须是相同的。


其他的BANK1-5都随便放什么设备了,比如网卡。


当我们需要操作在某个bank里面的地址空间的时候,内存控制器对这个bank对应的cs信号线自动使能的,不需要软件单独去使能的(不像操作IIC总线外设的CS信号)。

这里以SDRAM为例讲讲原理:


这里有两个芯片,有数据总线,地址总线和存储控制信号线;

先看数据总线可以知道,每个芯片占16BIT,所以可以知道他们分别存放32BIT数据的低16位和高16位。


再来看地址线,控制器的A2地址接存储芯片的A0地址,为什么存在这种不对应性?

因为CPU认为1个地址对应1个字节,而这个图里面的一个SDRAM 1个地址对应的是16BIT,两个SDRAM加起来就是32BIT,所以一个地址对应4个字节;从图上可以看出2440地址最小接A2,所以每加一个地址就可以滚动4个字节,而存储器上前面分析了每加一个地址滚动4个字节,这样才能对应起来。所以32BIT设备的最小操作单位是4个字节,不管是读还是写,但是SDRAM不同于其他设备,他通过DQM信号线的控制,DQM就是掩码控制位,在sdram中每个DQM控制8bit Data,在读操作的时候没什么大的影响,比如读32位的sdram module,但只要其中低8bit的数据,没有关系,只要读出32bit数据,再在软件里将高24位bit和0“与”就可以了,有没有DQM关系不大,但在执行写操作时如果没有DQM就麻烦了,可能在软件上是写一个8bit数据,但实际上32根数据线是物理上连接到SDRAM的,只要WR信号一出现,这32位就会写sdram中去,高24bit数据就会被覆盖。通过使用DQM就可以将其对应的8bit屏蔽,不会因为写操作而覆盖数据了。这样就达到读写一个字节数据的目的了。而NORFLASH就没有这样的接口,所以他不能像SDRAM一样写数据,要写数据必须先读出来,再修改,再写进去。


再来看下为什么BA0与BA1为什么接CPU A24,25?

可以直接去看S3C2440的芯片手册告诉我们怎么接,但原理都是一样的;这个SDRAM的大小是32M,前面分析了一个BANK是128M,最大地址线可到A26,那么A25是64M,A24是32M,依此类推,我们这里挂了两块SDRAM,总大小64M,所以最大地址线是A25,然后是A24,连上BA0,BA1刚好对应这两根地址线的00 01 10 11可以控制SDRAM的4个块(最大单位),其他行列信号由低位地址线去控制了,行列地址线是共用的,通过RAS与CAS区别。


如果我们知道了行列的地址线宽,是否能算出SDRAM的存储大小?


我们使用的是16MX16的SDRAM,所以行地址有13跟,列地址有9跟,共22跟,这里2的22次方=4M 字节,然后还有A24与A25两根控制4个块,就有4Mx4=16M地址空间,再看数据总线16BIT,一个地址访问两个字节,所以就有16MX2个字节=32M 字节。

关键字:s3c2440 引用地址:s3c2440内存类设备访问原理

上一篇:s3c2440的处理器结构和外设连接
下一篇:ARM裸机点LED

推荐阅读

   昨日晚间美国总统特朗普宣布,再对2000亿美元的中国大陆进口产品加征10%关税。对此,今日商务部官网回应称,中国在世贸组织追加起诉美国301调查项下对华2000亿美元输美产品实施的征税措施。同时,今日商务部新闻发言人也回应表示,美方不顾国际国内绝大多数意见反对,宣布自9月24日起对2000亿美元中国输美产品加征10%的关税,进而还要采取其他关税升...
9月11日15时,随着第5标段跨越500千伏蒙沂线、蒙照Ⅰ线导线展放完成,国网山东省电力公司建管的1000千伏山东—河北环网特高压工程临沂—枣庄段架通。 临沂—枣庄段特高压线路工程是1000千伏山东—河北环网特高压工程的重要组成部分。该段工程东起1000千伏高乡站,西至1000千伏枣庄站,全长181.5千米,同塔双回路架设,途经日照、临沂、枣庄3市9县区,...
首先建立一个公共点H文件,加入通用代码如下typedef union{ struct { unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned ch...
步进电机使用过程中的异常处理在需要低成本实现位置、角度等控制目标的应用场景。步进电机是最常见的应用器件。在使用步进电机的过程中,有哪些需要注意的问题点?1、无接线图情况下如何连接驱动器与步进电机?——可以使用万用表的通断档,测量电机任意两线间的通断。若测得两线导通,则说明此为电机的一个绕组,应接入驱动器对应的同一输出,如A+,A-两...

史海拾趣

问答坊 | AI 解惑

DEC和DSK的区别

看了好长时间,没分清楚这两个有啥区别,知道的兄弟们解释一下,谢谢啦…

查看全部问答∨

求征摄像头控制

想找一个会设计摄像机程序的,要求是多个摄像头在一块板子上,然后各自监控各自的目标,能做到自动调焦,能与微型话筒相连,同时录下声音,大体上就这些 …

查看全部问答∨

如何在驱动里使用时钟中断响应啊?很急迫~

如何在驱动里使用时钟中断响应啊?很急迫~ 我就是做使用ARM2440的定时器4,来做时钟中断响应我要做的事情,怎么办到呢? 看了很多资料都是直接用 pISR_TIMER4=(int)Timer4Done;但是是在主程序里不是驱动里的,驱动能用这个吗? 还是用别的什么? ...…

查看全部问答∨

idea6410开发板WinCE6.0、Linux等系统安装使用指导手册

idea6410开发板是一款低功耗、高性能、高性价比的ARM11处理器开发板;专为消费类电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用,其小巧、紧凑、一体式的人性化外观设计 ...…

查看全部问答∨

【散分提问】12M晶振使能问题

最近遇到个问题。系统通过响应GPIO口例如GPIO0这个IO口中断实现一个低功耗休眠的动作。一些机器上正常,功耗小于5mA,12M晶振工作停止,32.768正常工作。但是现在的一个案子上休眠都休眠下去了。但是12M晶振没有停止,一直有个50mA在,程序上已经试 ...…

查看全部问答∨

最近的一个作业,还没有头绪,请大家指点一下!

作业内容: 现在在餐馆定餐,一般是由服务员来到你面前当面下单,某餐馆要求你为他们开发一个手机定餐系统,分为手机客户端和后台服务端,采用802.11无线局域网连接。其基本功能包括: 1.        菜单浏览功能 2.  & ...…

查看全部问答∨

multisim仿真电气规则检查的错误报告

本帖最后由 dontium 于 2015-1-23 13:09 编辑 Multisim  -  2010-12-27 09:04:58 ERC [AGV_2_1]  <2010-12-27 09:05:06>   错误: 正在连接 \'Power 到 Bidirectional\';   [VCC 引脚 VCC, AGV_2_1]  ...…

查看全部问答∨

STM8的0x82(INT)是什么指令

看到别的论坛有人问过,但是没人回答,就是放在中断向量表里中断入口地址之前的 自己猜那应该是个跳转之类的指令,但是反汇编看了一下竟然是INT,不知道什么东西,查汇编手册也没这个指令,有人解释一下不?…

查看全部问答∨

LPC1114 中断优先级

1114中断有优先级吗?如果有的话,优先级顺序是怎么样的?…

查看全部问答∨

以前好好的,今天调试ADuCM360就出了问题

这是整个提示: Sat Jun 01, 2013 19:05:48: Loaded macro file: C:\\Program Files\\IAR Systems\\Embedded Workbench 6.4\\arm\\config\\flashloader\\AnalogDevices\\FlashADUCM3xx.mac Sat Jun 01, 2013 19:05:48: JLINK command: ProjectFi ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved