嵌入式作业

发布 2022-10-21 04:59:28 阅读 8136

嵌入式系统及应用作业。

学院: 信息工程学院

专业: 信号与信息处理。

姓名: 唐雄辉。

学号: 2009124022

详述sdram的内部结构以及读写与刷新的过程,并解释结构的改进的优势。

sdram 为 dram (dynamic random access memory : 动态随机存取记忆体 ) 的一型, 其主要特徵在于「同步 (synchronous )」即藉由记忆体模组上的微型处理器,使得记忆体运作时脉与 cpu 取得同步, 让资料传送更加流畅迅速;而「动态 (dynamic) 」指的是存在于记忆体中的资料,会因关机或当机,导致记忆体无电力持续**而流失,而在 acpi 中的 str (suspend to ram, s3 模式 ) 就是将系统目前的状态保留在 ram 中 , 此时周边设备的电源几乎已经关闭 , 而 ram 的电源仍开着 , 所以可以保存着资料 , 此时如果不幸断电 , 则 ram 中的资料就消失了 , 待重新开机後 , 亦不会回到之前 str 的状态 . 而 sdram 目前的规格有 pc100 及 pc133, 所谓的 100 及 133 就是指记忆体的时脉为 100mhz 及 133mhz.

目前 sdram 有分成两种记忆体模组 : 168 pin (3.3volt) 及 144 pin(3.

3volt) 168 pin 的记忆模组是给 desktop 用的 , 而 144 pin 为 notebook 用

1、芯片初始化。

可能很多人都想象不到,在sdram芯片内部还有一个逻辑控制单元,并且有一个模式寄存器为其提供控制参数。因此,每次开机时sdram都要先对这个控制逻辑核心进行初始化。有关预充电和刷新的含义在下文有讲述,关键的阶段就在于模式寄存器(mr,mode register)的设置,简称mrs(mr set),这一工作由北桥芯片在bios的控制下进行,寄存器的信息由地址线来提供。

sdram在开机时的初始化过程。

sdram模式寄存器所控制的操作参数:地址线提供不同的0/1信号来获得不同的参数。在设置到mr之后,就开始了进入正常的工作状态,图中相关参数将结合下文具体讲述。

2、行有效。

初始化完成后,要想对一个l-bank中的阵列进行寻址,首先就要确定行(row),使之处于活动状态(active),然后再确定列。虽然之前要进行片选和l-bank的定址,但它们与行有效可以同时进行。

行有效时序。

在cs#、l-bank定址的同时,ras(row address strobe,行地址选通脉冲)也处于有效状态。此时an地址线则发送具体的行地址。如图中是a0-a11,共有12个地址线,由于是二进制表示法,所以共有4096个行(212=4096),a0-a11的不同数值就确定了具体的行地址。

由于行有效的同时也是相应l-bank有效,所以行有效也可称为l-bank有效。

3、列读写。

行地址确定之后,就要对列地址进行寻址了。但是,地址线仍然是行地址所用的a0-a11(本例)。没错,在sdram中,行地址与列地址线是共用的。

不过,读/写的命令是怎么发出的呢?其实没有一个信号是发送读或写的明确命令的,而是通过芯片的可写状态的控制来达到读/写的目的。显然we#信号就是一个关键。

we#无效时,当然就是读取命令。

sdram基本操作命令(上表可点击放大), 通过各种控制/地址信号的组合来完成(h代表高电平,l代表低电平,x表示高低电平均没有影响)。此表中,除了自刷新命令外,所有命令都是默认cke有效。对于自刷新命令,下文有详解。

列寻址信号与读写命令是同时发出的。虽然地址线与行寻址共用,但cas(column address strobe,列地址选通脉冲)信号则可以区分开行与列寻址的不同,配合a0-a9,a11(本例)来确定具体的列地址。

读写操作示意图,读取命令与列地址一块发出(当we#为低电平是即为写命令)

然而,在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为trcd,即ras to cas delay(ras至cas延迟),大家也可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。trcd是sdram的一个重要时序参数,可以通过主板bios经过北桥芯片进行调整,但不能超过厂商的预定范围。广义的trcd以时钟周期(tck,clock time)数为单位,比如trcd=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于pc100 sdram,trcd=2,代表20ns的延迟,对于pc133则为15ns。

上文我们已经了解了sdram所用到的基本信号线路,下面就看看它们在sdram芯片内部是怎么“布置”的,并从这里开始深入了解内存的基本操作与过程,在这一节中我们将接触到有天书之称的时序图,但不要害怕,根据文中的指导慢慢理解,您肯定可以看懂它。首先,我们先认识一下sdram的内部结构,然后再开始具体的讲述。

1 sdram的主要控制信号和基本命令。

sdram的主要控制信号为。

cs:片选使能信号,低电平有效。

ras:行地址选通信号,低电平有效。

cas:列地址选通信号,低电平有效。

we:写使能信号,低电平有效。

sdram的基本命令及主要控制信号见表1

表1 sdram基本操作及控制信号。

所有的操作控制信号、输入输出数据都与外部时钟同步。

2 接口电路对sdram的主要操作路径及操作过程。

一个完备的sdram接口很复杂。由于本文的sdram接口应用于解复用,处理的事件相对来说比较简单,因而可以简化设计而不影响性能。接口电路sdram的主要操作可以分为:

初始化操作、读操作、写操作、自动刷新操作。

1)初始化操作。

sdram上电一段时间后,经过初始化操作才可以进入正常工作过程。初始化主要完成预充电、自动刷新模式寄存器的配置。操作过程如图1所示。

2)读写操作。

读写操作主要完成与sdram的数据交换。读操作过程如图2所示,写操作过程如图3所示。

3)刷新操作。

动态存储器(dynamic ram)都存在刷新问题。这里主要采用自动刷新方式,每隔一段时间向sdram发一条刷新命令。刷新过程如图4所示。

3 接口电路的设计。

1)解复用电路。

本解复用电路主要完成将1路高速数据流解复用为4路数据流,其结构框图如图5所示。1路数据流进入解复用器后,经过sdram缓冲,解复用为4路数据流。

由于要解复用为4路数据流,为了充分利用时隙,满足高速的要求,采用4个bank的sdram,各路数据缓冲对应不同的bank。为简化设计,数据流1的缓冲区定为bank0,数据流2的缓冲区定为bank1,数据流3的缓冲区定为bank2数据流4的缓冲区定为bank3。对于每路数据实际上是以高速率集中写入,然后以低速率均匀读出。

由于进行的是解复用,因此写入的数据只有1路,但是有可能4路数据同时都要读出。 所以对于4路数据流,其读写地址和读写使能信号是分开的。

2)sdram接口电路的时序控制。

高速数据流的速率为3m字节/秒,采用的系统时钟为20倍的字节时钟。送入sdram的时钟为60mhz系统时钟。在一个字节时钟内对sdram的操作最多有5次(1次读,4次写),而且为了满足刷新的要求,每个字节时钟进行一次刷新操作。

根据sdram的时序要求,这样的操作是难以实现的。因而要通过多bank操作,尽量做到时分复用来实现。图6给出了在一个字节时钟周期的内数据流1进行读写操作,其它3路数据进行读操作的命令排序时序图。

可以看出通过多bank操作,时分复用,在20个系统时钟节拍内所需的读写操作命令刚好很紧凑地排开。

一个字节时钟内对sdram读写操作是随机的,这与数据流的复用比例有在。为了满足时序,根据上面的说明,需要把一个字节时钟周期内对sdram的命令合理排序,然后按照排好的顺序执行命令。这样就需要把一个字节时钟周期内对sdram的操作进行缓存,然后在下一个字节时钟周期内进行排序、与sdram命令相对应、将命令译码产生相应的控制信号线,完成操作。

缓存排序过程如图7所示。

3)sdram接口电路。

sdram接口电路中需要专门操作缓冲区存储一个字节时钟周期内的操作,以备下一字节时钟的排序。为了方便处理,对每路数据的缓冲操作内容(或读或写)放在一个缓冲区。由于数据流的连续性,排序的同时仍然会有操作要求,因此每路的操作内容缓冲区分为两块。

对一块缓冲区写入时,读出另一块缓冲区中的操作内容,进行排序、译码、执行。根据字节时钟切换对缓冲区的读写,从而避免冲突。对于从sdram读出的数据,每路数据写入相应的读出数据缓冲区。

同样每路的读出数据缓冲区也分为两块,根据字节时钟切换读写。

嵌入式作业

电力设备测控系统中的总线通讯协议实现。程俊 200910302013 一 程序实现的功能 嵌入式系统作为测控系统主机,依次每隔30秒获取设备数据,发送给各个传感器。1 程序实现是通个定义的一个数组,然后数组中分别放入 起始标记aa 设备类型 设备编号 数据发送请求55 校验位这里采用求和校验,而将第...

嵌入式作业

专业 电子信息工程班级 电信10 1 任课教师 姓名 学号成绩。题目 查阅相关资料,你认为选用哪一种硬件 芯片 和软件比较适合本专业的要求?为什么?答 个人觉得选用三星的6410芯片更适合本专业的要求,6410对比与2440不会更容易被淘汰,而且现在6410有很多开发板可以供我们自学,比如飞凌的ok...

嵌入式作业

include 基本系统数据类型。include 提供socket函数及数据结构。include 标准输入输出。include 标准库。include 提供错误号errno的定义,用于错误处理。include 字符串函数定义。include read函数 write函数和getpid函数等头文件。i...