欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JZ2440内存接口

程序员文章站 2022-06-08 21:35:16
...

三类接口

1、GPIO / 门电路

2、协议类接口:UART 、I2C、I2S、SPI

内存控制器

CPU --->addr --->内存控制器--->根据addr选不同模块--->data-->模块
											<---     <--

CPU 将地址给内存控制器,内存控制器会对得到相应的地址,选择不同的模块进行收发数据

3、内存接口(Nor 、网卡、内存)

CPU -->data -->模块

CPU发出的数据直接给模块

也就是地址总线和数据总线直接连接到模块上面

?SDRAM、网卡、Nor公用地址总线和数据总线他们是如何做到互不干扰的

引入了片选引脚,对于2440只有当某个模块的片选引脚输出低电平的时候,某个模块才被选中,CPU才会和这个模块进行通信

CPU是如何控制片选引脚的,也是通过内存控制器

总结:内存控制器根据不同的地址发出不同的片选信号,使得被选中片选引脚对于的模块进行通信,其他没有被选中的片选引脚对应的模块就像不存在一样。

                          CPU发出的地址和片选引脚的关系图

JZ2440内存接口

片选引脚(chip select)

百度百科片选概念
片选是一个单片机学科词汇,可以理解成选片。片选信号一般是在划分地址空间时,由逻辑电路产生的。在数字电路设计中,一般开路输入管脚呈现为高电平,因此片选信号绝大多数情况下是一个低电平。

JZ2440内存接口

每个片选信号选择的地址空间为128M = 2^ 7 * 2^20
= 2^27
至少需要A0、A1、、、A26共27条线

CPU统一编制和不是CPU统一编制

地址总线不是从CPU直接连接到模块上,不是CPU统一编制

ldr r0,=addr
str r1,[r0]
ldr r1,[r0]

上面命令让CPU 发出32位的addr 给内存控制器,让其发出片选信号,同时发出addr0,addr1,addr26发给外面的设备

总结:虽然CPU发出的是32位addr但是内存控制器能力有限只有用到了27位