在嵌入式里面所谓内存类接口有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的处理器结构和外设连接
下一篇:ARM裸机点LED
推荐阅读
史海拾趣
Eurofarad,作为Exxelia Technologies旗下的知名品牌,自1965年成立以来,就专注于电子元件的设计和制造。在创立初期,Eurofarad凭借对电子技术的深入研究和对市场需求的敏锐洞察,迅速推出了多款高性能、高质量的电子元件产品。这些产品在市场上获得了广泛的认可,为Eurofarad的后续发展奠定了坚实的基础。
为了进一步提升竞争力,君耀开始实施国际化战略。公司在日本、中国大陆等地设立生产基地,利用当地的资源和优势,提高生产效率,降低成本。同时,君耀积极参与国际认证,其产品通过UL、VDE、TUV、CSA等一系列国际认证,为进军国际市场打下了坚实的基础。
在追求经济效益的同时,台湾诚阳(BC)公司也积极履行企业社会责任。公司关注环保和可持续发展,致力于推广绿色电子产品和节能减排技术。同时,公司还积极参与社会公益事业,为当地社区的发展做出贡献。这种对社会责任的承担和关注,使得台湾诚阳在业界树立了良好的形象,赢得了社会各界的认可和尊重。
请注意,以上故事仅为虚构示例,并不代表台湾诚阳(BC)公司或任何真实公司的实际情况。如果您对该公司有进一步的了解需求,建议直接访问其官方网站或查阅相关新闻报道。
随着公司规模的不断扩大,ECI越来越重视团队建设。公司高层认识到,一个团结、高效的团队是企业持续发展的关键。在人力资源部经理刘女士的策划下,ECI开展了一系列团队建设活动,如拓展训练、员工分享会等。这些活动不仅增强了员工的凝聚力,也提升了员工的工作效率和创新能力。
博通集成自成立以来,始终致力于无线通讯技术的研发与创新。公司团队不断攻克技术难关,推出了多款具有市场竞争力的产品。其中,公司自主研发的首款Wi-Fi宽带收发样片在2015年成功通过测试,这一技术突破为公司在无线通讯领域的发展奠定了坚实基础。此后,公司不断推出创新产品,涵盖无线数传芯片和无线音频芯片等多个领域,广泛应用于智能家居、智能交通等领域。
自成立以来,博流公司一直致力于物联网、车联网和智能穿戴领域集成电路芯片的研发。经过不断的技术创新和突破,公司成功推出了多款具有竞争力的芯片产品,广泛应用于智能家居、智慧城市、智能制造等领域。同时,博流还注重与物联网生态合作伙伴的紧密合作,共同提供端到端、边缘计算到云的整体解决方案,为客户创造价值。
如何在驱动里使用时钟中断响应啊?很急迫~ 我就是做使用ARM2440的定时器4,来做时钟中断响应我要做的事情,怎么办到呢? 看了很多资料都是直接用 pISR_TIMER4=(int)Timer4Done;但是是在主程序里不是驱动里的,驱动能用这个吗? 还是用别的什么? ...… 查看全部问答∨ |
idea6410开发板WinCE6.0、Linux等系统安装使用指导手册 idea6410开发板是一款低功耗、高性能、高性价比的ARM11处理器开发板;专为消费类电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用,其小巧、紧凑、一体式的人性化外观设计 ...… 查看全部问答∨ |
最近遇到个问题。系统通过响应GPIO口例如GPIO0这个IO口中断实现一个低功耗休眠的动作。一些机器上正常,功耗小于5mA,12M晶振工作停止,32.768正常工作。但是现在的一个案子上休眠都休眠下去了。但是12M晶振没有停止,一直有个50mA在,程序上已经试 ...… 查看全部问答∨ |
作业内容: 现在在餐馆定餐,一般是由服务员来到你面前当面下单,某餐馆要求你为他们开发一个手机定餐系统,分为手机客户端和后台服务端,采用802.11无线局域网连接。其基本功能包括: 1. 菜单浏览功能 2. & ...… 查看全部问答∨ |
本帖最后由 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] ...… 查看全部问答∨ |
看到别的论坛有人问过,但是没人回答,就是放在中断向量表里中断入口地址之前的 自己猜那应该是个跳转之类的指令,但是反汇编看了一下竟然是INT,不知道什么东西,查汇编手册也没这个指令,有人解释一下不?… 查看全部问答∨ |
这是整个提示: 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 ...… 查看全部问答∨ |