类似内存的接口

一、如何访问        

常见的如SDRAM、NOR、网卡等都是这样的接口。它们既有数据线也有地址线,并且地址线和数据线共用。这样的话地址线和数据线接有众多设备,正是因为每一个设备都有单独的片选引脚,访问它之前先设置片选引脚为低电平,从而保证其他片选引脚为高电平,才能只访问一个而不影响其他。

       访问某个地址时,CPU发出地址信号给内存控制器,内存控制器根据该地址决定让哪一个片选引脚输出低电平,只要所发出的地址信号在想访问设备的地址范围(具体要看地址映射图中所分配的地址范围了)之内就可以访问到。

二、实例

        上述中每一个片选引脚所对应的地址空间称为一个BANK,不同的BANK大小在不同的SoC中是不同的。例如对于早期的S3C2440对外引出的27根地址线ADDRO~ADDR26的访问空间是I28MB(这里说的128M指的只是1BANK大小),CPU对外还引出了8片选信号nGCSO~nGCS7,对应于BANK0~BANK7,当访问BANKx的地址空间时,nGCSx引脚输出低电平用来选中外接的设备。这样,每个nGCSx对应128MB地址空间,8个nGCSx信号总共就对 应了1GB的地址空间。这8个BANK的地址空间如下图所示。其中左边对应不使用NANDFlash作为启动设备(单板上不接NAND_BOOT跳线)时的地址空间布局,右边对应使用NANDFlash作为启动设各(单板上接NAND_BOOT 跳线)时的地址空间布局。

       然而S3C2440作为32位的CPU(前27位作为地址线供外设使用。多外引出多少条地址线由内存控制器决定),可以使用的地址范围理论上达到4GB.除去上述用于连接外设的1GB外,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。S3C2440的寄存器地址范范围都处于0x4800000~0x5FFFFFFF,各功能部件的寄 存器大体相同,如下表所示。

三、那么对于不同位宽的外设,接线方式又是如何的呢?

       我们可以看到很多开发板原理图上地址线接到16位的NOR flash时,地址线是从ADDR1开始的,ADDR0没有用,这是什么原因呢?因为CPU认为一个地址对应一个人字节;而NOR flash则认为一个地址对应二个字节(它的每一个地址单元为2个字节);因此假如CPU想访问地址3,那么对于NOR flash来说,是访问它的第1个地址单元。那么之间的这个矛盾怎么协调的呢?对于地址3,即00000011,只需要将00000011的从第二位开始接到NOR flash就可以了(把最低的那位空出来)。同理若CPU想访问地址2(000010),同样也可以访问到正确的NOR flash地址。这样保证接线正确后,读出这个16位的数据后供内存控制器会把他们分离出来给CPU。

四、内存控制器的设置

 

 

 

 

 

  

转载于:https://www.cnblogs.com/zhangshuaifeng/p/10631228.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值