自己学驱动12——存储控制器
来源:互联网 发布:阿里云邮件客户端 编辑:程序博客网 时间:2024/05/18 00:24
1.2440的BANK
2440一共提供给外部8个BANK(BANK0~BANK7),每个BANK均为128MB的地址空间,一共1GB地址空间。2440对外引出了27根地址线ADDR0~ADDR26,这27根地址线的访问地址大小为128MB,2440对外还引出了8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,当访问BANKx的地址空间时,nGCSx引脚输出低电平,27根地址线与8根片选信号(相当于多出3根地址线)共同完成1GB空间的访问操作。
2440作为32位的CPU,可以使用的地址范围理论上为4GB,除去上述用于连接外设的1GB的地址空间外,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。
2.2440为SDRAM提供的信号
BANK0~BANK5的连接方式都是相似的,BANK6连接SDRAM时复杂一点,2440提供了一组用于SDRAM的信号如下:
>> SDRAM时钟有效信号SCKE;
>> SDRAM时钟信号SCLK0/SCLK1;
>> 数据掩码信号DQM0/DQM1/DQM2/DQM3;
>> SDRAM片选信号nSCS0(它与nGCS6是同一引脚的两个功能);
>> SDRAM行地址选通脉冲信号nSRAS;
>> SDRAM列地址选通脉冲信号nSCAS;
>> 写允许信号nWE(这个信号并非专用于SDRAM)。
3.SDRAM内部存储结构
SDRAM内部是一个存储阵列,阵列就如同表格一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是SDRAM寻址的基本原理。这个单元格被称为存储单元,这个存储矩阵就是逻辑Bank(以下简称L-Bank),SDRAM一般含有4个L-Bank。
4.SDRAM的访问步骤
(1)CPU发出片选信号nSCS0有效,选中SDRAM芯片。
(2)SDRAM中有4个L-Bank,需要两根地址信号来选中其中一个,假设为ADDR24、ADDR25作为L-Bank的选择信号。
(3)对被选中的芯片进行统一的行/列寻址。
根据SDRAM芯片的列地址线数目设置CPU的相关寄存器之后,CPU就会从32位地址中自动分出L-Bank选择信号、行地址信号以及列地址信号,然后先后发出行地址信号和列地址信号。L-Bank选择信号在发出行地址信号的同时发出,并维持到列地址信号结束。
32位宽度时2440的ADDR0与ADDR1均不使用,2440的ADDR2连接SDRAM的ADDR0,实现4字节对齐访问。
(4)找到存储单元之后,被选中的芯片就要进行统一的数据传输。
5.存储控制器的相关寄存器
(1)位宽和等待控制寄存器BWSCON
(2)BANK控制寄存器BANKCONx(x为0~5)
用来控制BANK0~BANK5外接设备的访问时序。
(3)BANK控制寄存器BANKCONx(x为6~7)
用来控制BANK6~BANK7外接设备的访问时序。
(4)刷新控制寄存器REFRESH
(5)BANKSIZE寄存器
(6)SDRAM模式设置寄存器MRSRBx(x为6~7)
2440一共提供给外部8个BANK(BANK0~BANK7),每个BANK均为128MB的地址空间,一共1GB地址空间。2440对外引出了27根地址线ADDR0~ADDR26,这27根地址线的访问地址大小为128MB,2440对外还引出了8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,当访问BANKx的地址空间时,nGCSx引脚输出低电平,27根地址线与8根片选信号(相当于多出3根地址线)共同完成1GB空间的访问操作。
2440作为32位的CPU,可以使用的地址范围理论上为4GB,除去上述用于连接外设的1GB的地址空间外,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。
2.2440为SDRAM提供的信号
BANK0~BANK5的连接方式都是相似的,BANK6连接SDRAM时复杂一点,2440提供了一组用于SDRAM的信号如下:
>> SDRAM时钟有效信号SCKE;
>> SDRAM时钟信号SCLK0/SCLK1;
>> 数据掩码信号DQM0/DQM1/DQM2/DQM3;
>> SDRAM片选信号nSCS0(它与nGCS6是同一引脚的两个功能);
>> SDRAM行地址选通脉冲信号nSRAS;
>> SDRAM列地址选通脉冲信号nSCAS;
>> 写允许信号nWE(这个信号并非专用于SDRAM)。
3.SDRAM内部存储结构
SDRAM内部是一个存储阵列,阵列就如同表格一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是SDRAM寻址的基本原理。这个单元格被称为存储单元,这个存储矩阵就是逻辑Bank(以下简称L-Bank),SDRAM一般含有4个L-Bank。
4.SDRAM的访问步骤
(1)CPU发出片选信号nSCS0有效,选中SDRAM芯片。
(2)SDRAM中有4个L-Bank,需要两根地址信号来选中其中一个,假设为ADDR24、ADDR25作为L-Bank的选择信号。
(3)对被选中的芯片进行统一的行/列寻址。
根据SDRAM芯片的列地址线数目设置CPU的相关寄存器之后,CPU就会从32位地址中自动分出L-Bank选择信号、行地址信号以及列地址信号,然后先后发出行地址信号和列地址信号。L-Bank选择信号在发出行地址信号的同时发出,并维持到列地址信号结束。
32位宽度时2440的ADDR0与ADDR1均不使用,2440的ADDR2连接SDRAM的ADDR0,实现4字节对齐访问。
(4)找到存储单元之后,被选中的芯片就要进行统一的数据传输。
5.存储控制器的相关寄存器
(1)位宽和等待控制寄存器BWSCON
(2)BANK控制寄存器BANKCONx(x为0~5)
用来控制BANK0~BANK5外接设备的访问时序。
(3)BANK控制寄存器BANKCONx(x为6~7)
用来控制BANK6~BANK7外接设备的访问时序。
(4)刷新控制寄存器REFRESH
(5)BANKSIZE寄存器
(6)SDRAM模式设置寄存器MRSRBx(x为6~7)
0 0
- 自己学驱动12——存储控制器
- 自己学驱动15——Cache
- 自己学驱动18——中断
- 自己学驱动2——ARM汇编
- 自己学驱动4——SourceInsight代码阅读工具
- 自己学驱动10——arm-linux-选项
- 自己学驱动11——简单GPIO操作
- 自己学驱动16——NAND Flash
- 自己学驱动1——基本命令和链接文件
- 自己学驱动3——ARM-THUMB子程序调用规则ATPCS
- 自己学驱动5——uboot&linux源代码目录结构
- 自己学驱动6——uboot代码阅读一(start.S)
- 自己学驱动7——uboot代码阅读二(start.S)
- 自己学驱动8——uboot代码阅读三(start.S)
- 自己学驱动9——uboot代码阅读四(start_armboot函数)
- 自己学驱动13——内存管理单元MMU(虚拟地址和物理地址)
- 自己学驱动17——ARM工作模式和ARM9寄存器
- 自己学驱动14——内存管理单元MMU(内存访问权限检查和TLB)
- ubantu安装相关文章收集
- js中数组的操作
- COM组件编程—IUnknown的三个接口函数
- 主要发达国家大数据政策比较研究
- spring jdbcTemplate 插入对象返回主键值
- 自己学驱动12——存储控制器
- mysql table is marked as crashed and last (automatic?) repair failed
- kernel打印开关
- 测试爱好
- 深入理解Linux网络技术内幕——虚拟设备初始化小结
- powerdesigner配置mysql数据源小记
- Windows7导航窗口自动跳转到当前目录
- Project 1 :创建链表与显示链表
- ccv:一个现代的开源计算机视觉函数库