自己学驱动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)
0 0
原创粉丝点击