内存控制器和SDRAM

一、CPU如何与不同设备传输数据?
在这里插入图片描述

  1. 内存控制器根据CPU发出的地址,选择不同的设备进行数据传输;在这里插入图片描述
  2. CPU通过寄存器访问GPIO_CON、UART_CON等内部设备;
    在这里插入图片描述
  3. CPU通过总线(数据总线、地址总线)访问SDRAM、NOR、DM9000等外部设备;在这里插入图片描述
  4. 内存控制器根据CPU发出的地址,通过片选信号nGCSn选择不同的外部设备;在这里插入图片描述
  5. 内部设备与外部设备统一编址,在CPU眼中无差别,都是通过发送地址传输数据;在这里插入图片描述
  6. NandFlash并不属于统一编址,而是通过NandFlash控制器来控制NandFlash。(详见《NandFlash详解》)。

二、CPU与不同位宽设备传输数据?

  1. 内存接口与8bit设备连接,CPU的A0地址总线与设备的A0地址总线相连;在这里插入图片描述
  2. 内存接口与16bit设备连接,CPU的A1地址总线与设备的A0地址总线相连;在这里插入图片描述
  3. 内存接口与32bit设备连接,CPU的A2地址总线与设备的A0地址总线相连;在这里插入图片描述
  4. CPU发出地址信号,不同的位宽设备得到不同的地址信息在这里插入图片描述
  5. 如:MOV R0, #3;LDRB R1, [R0];即从地址为3的内存中读取1个byte数据在这里插入图片描述

三、如何确定芯片的访问地址?

  1. 根据nGCS片选信号确定访问设备的基地址在这里插入图片描述
  2. 根据设备的地址总线算出设备的存储范围
    在这里插入图片描述
    Nor Flash 使用的是片选0(nGCS0),基地址为0,用到A20,A19……A1,A0共21条地址线,所以地址范围为0x00000000 ~ 0x1FFFFF也就是2M的空间大小。

四、内存设备的时序图分析——以NorFlash为例

  1. CPU与内存设备之间的连接有多条线,每条线都代表不同含义,当需要传输数据时,内存控制器会控制设备上的不同线路有先后顺序的发出工作信号,相互配合完成数据传输工作;在这里插入图片描述
  2. 内存控制器可以根据不同的内存设备型号,来修改线路不同线路上信号发出的时间间隔,可以通过结合相关型号内存设备的芯片手册来修改时序图的时间间隔,以此提高设备的访问效率;
    在这里插入图片描述2440中NorFlash时序图在这里插入图片描述MX29LV160DBTI款的NorFlash时序图
  3. 分析时序图来提高NorFlash的访问效率
    在这里插入图片描述在这里插入图片描述

五、SDRAM传输数据

  1. SDRAM是由n个bank和格子组成,每个格子16位数据;
    在这里插入图片描述
  2. CPU发出地址后,内存控制器片选SDRAM,再同时发出bank信号和行信号,再发出列信号,依次来确定具体的内存格子;
  3. 内存控制器通过控制LADDR24和LADDR25来确定选择的bank,通过LnSRAS和LnSCAS来区分行和列信号,可以通过设置寄存器来设置bank、行、列的具体数量,以此来确定内存控制器的发出信号。在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值