S3C2440-裸机篇-07 | S3C2440内存控制器(Memory Controller)

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S3C2440-裸机篇-07 | S3C2440内存控制器(Memory Controller)相关的知识,希望对你有一定的参考价值。

1. 作用

S3C2440的内存控制器作用是:负责向外部扩展的存储类设备提供控制信号

内存控制器支持的外部扩展存储类设备有:

  • SRAM
  • SDRAM
  • Nor Flash
  • 网卡DMA 9000(类存储设备)

内存控制器不支持nand flash,S3C2440提供了独立的nand flash控制器。

2. 内存控制器拓扑结构

CPU、内存控制器、外部扩展存储器三者的拓扑结构如下:
=

其中这四种信号的意义如下:

  • 地址信号(总线):作为存储器,其中的每个存储空间肯定有地址,地址总线用来传输地址;
  • 数据信号(总线):用来传输某个地址处的写入数据或者读出数据;
  • 读/写选择信号(控制信号):用来控制向地址处写入数据还是从地址处读出数据;
  • 片选信号(控制信号):所有存储器全部共用一个地址总线和数据总线,所以用片选信号控制选择哪个设备工作,哪个设备不工作;

片选信号每个设备用一根线就可以搞定,读写选择信号每个设备用1-2根线就可以搞定,那么,数据总线和地址总线有多少条呢

数据总线宽度

数据总线的最大宽度由CPU字长决定,S3C2440 CPU的字长为32位,所以数据总线的最大宽度为32条。

具体使用多少条数据总线,由存储设备决定

地址总线宽度

地址总线的最大总线宽度由内存控制器寻址能力决定

S3C2440内存控制器的地址映射图如下:一共有8个bank,每个bank的大小为128MB,即 128 M B = 2 7 ∗ 220 B y t e 128MB=2^7∗220Byte 128MB=27220Byte,所以内存控制器的每个bank使用27条地址线寻址,也就是A0-A26,8个bank复用这27条地址线,具体使用多少条地址线,怎么接,留给用户决定。

数据手册中给出的示例接法

  • ROM类芯片接法

扩展一个8bit的ROM类存储芯片的接法:

使用两个8bit的ROM类存储芯片组合成16bit的存储芯片的接法:

使用四个8bit存储芯片扩展成32bit存储芯片的接法:

  • SRAM接法示例

扩展一个16bit SRAM芯片的接法如下:

  • SDRAM接法

使用两个16bit SDRAM芯片组成为一个32bit的存储芯片(从CPU的角度)的接法如下:

3. JZ2440开发板的存储设备

JZ2440开发板扩展一个16bit的Nor Flash芯片的原理图如下:

使用两个16bit的SDRAM芯片组合扩展为一个32bit的SDRAM的原理图如下:

JZ2440扩展DM9000网卡的原理图如下:

以上是关于S3C2440-裸机篇-07 | S3C2440内存控制器(Memory Controller)的主要内容,如果未能解决你的问题,请参考以下文章

S3C2440-裸机篇-10 | 使用S3C2440操作Nand Flash

S3C2440-裸机篇-09 | 使用S3C2440操作Nor Flash

S3C2440-裸机篇-08 | 使用S3C2440操作SDRAM(配置内存控制器)

_Embedded-System专栏文章导航与优秀笔记整理(2021.08.08更新)

s3c2440裸机-LCD编程(实现显示功能)

S3C2440-裸机篇-01 | JZ2440开发板快速上手