展讯平台-SDRAM驱动(一)

来源:互联网 发布:python快速入门 编辑:程序博客网 时间:2024/05/16 09:45

    驱动者,三分硬件,三分格式,四分软件。

   很多驱动人员对memory这一块不是很敏感,就像我。从单片机转过来的少年伤不起啊伤不起!这里我们来补一补SDRAM方面的知识,同样是以展讯平台为背景。老规矩i,先看看硬件。

    一、SDRAM的结构
    要了解SDRAM的结构就要知道页式管理,你可以把他想象成一个表格,由M行N列组成的一个内存表,这样的一个表我们称为是一个bank,由于技术和成本问题,一块SDRAM不可能做成一个bank,更重要的是一个bank会带来寻址的困难,所以一般来说,一块SDRAM有4个bank,由两根bank线来控制我们在操作的是哪个bank(就像地址线的高2位)。

    二、SDRAM的接口
    首先,数据总线,SDRAM的数据总线和我们以前用的RAM ROM等数据线一样,可以分为32位,16位, 8位的都有。
    然后,地址总线,SDRAM的寻址因为他的内部结构的特殊性导致地址总线不同于以前我们接触的RAM,首先bank线是已经选好的,在每个bank上只要给定行列的值那么顺理成章就涨到了对应地址的数据,并且不会产生冲突。所以地址总线上会分两次传输行地址线和列地址线。比如说,展讯平台上的SDRAM经常是留出来14根地址线,不管是256b,还是512b,还是1gb的都不用更换接口。我们可以这样计算,地址线是14的SDRAM最大寻址空间是 2 ^2(bank) * 2 ^14(row) * 2 ^14(rank) * 2 ^5(最大32位) = 32gbit(4GB)。完全能够满足挂的所有SDRAM。
    最后,是一些控制信号

·CS:片选使能信号,低电平有效;
·RAS:行地址选通信号,低电平有效;
·CAS:列地址选通信号,低电平有效;
·WE:写使能信号,低电平有效。
·SCLK:时钟
·SCLKE:时钟使能

    三、SDRAM的工作原理

    既然是DRAM,就一定要刷新才能保证数据的常驻。但是这个时间是多少呢?目前大家公认的大约是64ms。

  我们在DADASHEET中,经常会看到4096 Refresh Cycles/64ms或8192 RefreshCycles/64ms的标识,这里的4096与8192就代表这个芯片中每个Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,1/1000毫秒),8192行时就为7.8125μs。HY57V561620为8192 refresh cycles / 64ms。

   硬件上了解到这我感觉也差不多了,当然,读写的时序图要会读,这个是基础!

原创粉丝点击