数据收集处理技能是现代信号处理的根底,广泛使用于雷达、声纳、软件无线电、瞬态信号测验等范畴。跟着信息科学的飞速发展,人们面临的信号处理使命越来越深重,对数据收集处理体系的要求也越来越高。近年来杂乱可编程逻辑器件(Complex Programable Logic Dev ice,CPLD)由于其规划灵活性、更强的适应性及可重构性,结合同步动态随机拜访存储器(Synchronous Dynamic Random Access Memory,SDRAM)的高速、大容量、价格优势,在规划高速实时数据收集体系时遭到了广泛的重视。SDRAM(同步动态随机拜访存储器)具有价格低廉、密度高、数据读写速度快的长处,然后成为数据缓存的首选存储介质。
1 SDRAM的根本操作
SDRAM称为同步动态随机存储器,同步是指其时钟频率与CPU前端总线的体系时钟频率相同,SDRAM能够使一切的输入输出信号坚持与体系时钟同步,而且内部的指令的发送与数据的传输都以它为基准;动态是指存储阵列需求不断改写来确保数据不丢掉;随机是指数据不是线性顺次存储,而是自在指定地址进行数据的读写。由于SDRAM为了进步存储容量,选用硅片电容来存储信息,跟着时间的推移,有必要给电容从头充电和改写来坚持电容里的数据信息。
在对SDRAM进行存取数据操作之前,首要要对其初始化,即设置SDRAM的一般形式存放器和扩展形式存放器,确认SDRAM的作业方法,这些设置包括突发长度、突发类型、CAS潜伏期和作业形式的设置。在SDRAM芯片内部有一个逻辑操控单元,而且有一个形式存放器为其供给操控参数。因而,每次开机时SDRAM都要先对这个操控逻辑中心进行初始化。初始化进程如图1所示。
1.1 形式存放器的设置
Mode Register Set:形式存放器设置,是指对SDRAM的作业方法做一界说,对存放器的设置,能够在每次体系启动时,也能够在每次存取之间进行,当SDRAM掉电时,体系从头启动后有必要重写形式存放器。其空间组织如下表1所示:
Burst Length:决议当接遭到一个读写信号时能够读取的最大的列数目,关于接连读取形式,其值能够为1,2,4,8或整页(full page),当为隔行读取形式是,其值为1,2,4,8。
Burst Type:决议读取形式为接连方法仍是隔行方法。
CAS Latency:决议当一个读信号有用到第一个数值在数据线上有用时之间的距离推迟时间,推迟时间能够设定为1,2或3个时钟周期。例如:假如推迟时间为m,读信号在n时间有用,那么数据将在第m+n个时钟信号有用,假如相应的读取时间适宜的话,而在m+n-1时间数据线传送数据。
Operation Mode:A7-A8表明操作的形式。
Write Burst Mode:当A9=0时,有A0-A2决议的Burst Length适宜于读和写两种操作。而当A9=1时,Write只能读取单一的单元,而不能支撑块操作。
Reserved:A10,A11是保存位,为今后的扩展运用。
1.2 预充电
由于SDRAM的寻址具有独占性,所以在进行完读写操作后,假如要对同一L-Bank的另一行进行寻址,就要将本来有用(作业)的行封闭,从头发送别/列地址。L-Bank封闭现有作业行,预备翻开新行的操作便是预充电(Precharge)。预充电能够经过指令操控,也能够经过辅佐设定让芯片在每次读写操作之后主动进行预充电。实际上,预充电是一种对作业行中一切存储体进行数据重写,并对行地址进行复位,一起开释S-AMP(从头加入比较电压,一般是电容电压的1/2,以协助判别读取数据的逻辑电平,由于S-AMP是经过一个参阅电压与存储体位线电压的比较来判别逻辑值的),以预备新行的作业。详细而言,便是将S-AMP中的数据回写,即使是没有作业过的存储体也会因行选通而使存储电容遭到搅扰,所以也需求S-AMP进行读后重写。此刻,电容的电量(或许说其发生的电压)将是判别逻辑状况的依据(读取时也需求),为此要设定一个临界值,一般为电容电量的1/2,超越它的为逻辑1,进行重写,否则为逻辑0,不进行重写(等于放电)。为此,现在根本都将电容的另一端接入一个指定的电压(即1/2电容电压),而不是接地,以协助重写时的比较与判别。
1.3 改写
SDRAM之所以称为同步动态随机存储器,便是由于它要不断进行改写(Refresh)才干保存住数据,因而它是SDRAM最重要的操作。改写操作与预充电中重写的操作相同,都是用S-AMP先读再写。进行预充电操作还要进行改写的原因:由于预充电是对一个或一切L-Bank中的作业行操作,而且是不定期的,而改写则是有固定的周期,顺次对一切行进行操作,以保存那些久久没阅历重写的存储体中的数据。但与一切L-Bank预充电不同的是,这儿的行是指一切L-Bank中地址相同的行,而预充电中各L-Bank中的作业行地址并不是一定是相同的。
现在公认的标准是,存储体中%&&&&&%的数据有用保存期上限是64 ms,也便是说每一行改写的循环周期是64 ms,这样改写速度便是:行数量/64 ms。内存标准有4096Refresh Cyeles/64 ms或8192 Refresh Cycles/64 ms的标识,这儿的4096与8192就代表这个芯片中每个L-Bank的行数。改写指令一次对一行有用,发送距离也是随总行数而改变,4096行时为0.625 ps,8192行时就为7.812 5 ps。改写操作分为两种:主动改写(Auto Refresh,简称AR)与自改写(Self Refresh,简称SR)。不论是何种改写方法,都不需求外部供给行地址信息,由于这是一个内部的主动操作。
2 体系硬件规划
移动SDRAM接口规划包括四个首要模块,如图2所示,即操控接口模块、CAS推迟、突发长度以及地址生成器。下面临这些模块进行扼要介绍。
2.1 操控接口模块
操控接口模块内部是有限状况机(Finite-State Machine,FSM),有限状况机解说来自微处理器的输入,把相应的指令和契合时序要求的地址发送给移动SDRAM设备,然后,移动SDRAM设备进入相应的状况,履行指令。
有限状况机会归纳考虑存储器的时序要求,以正确的次序发生各种操作指令,在宣布操作指令之前,操控器首要会给出一个读取使能信号,从数据输入输出缓存模块的地址指令中读取地址指令。操控接口模块解码并存放主机发送的指令,把解码后的闲暇、写、读、改写、充电和形式设置指令和地址信号送给指令模块。状况机的状况转化如图3所示。
2.2 CAS推迟模块
CAS推迟经过形式存放器装备,CAS推迟模块的本质是2位递加计数器,这一计数器监督CAS延时时钟周期数。它表明读指令和第一个输出数据之间推迟的时钟周期数,延时时钟周期数能够是二或三个时钟周期。图4别离给出CAS=3时的数据输出时序。
2位递加计数器的输入输出如下:
clk是输入的时钟信号来自微操控器,reset输入的异步复位信号,count_en输入的计数使能信号,count输出的CAS推迟数。体系不复位的状况下在计数使能有用时当时钟上升沿到来CAS推迟添加。
2.3 突发长度模块
突发长度也使在形式存放器中设置的,它的内部本质是4位递加计数器,这一计数器监督读写突发作业时的时钟周期数,原理与2位递加计数器相同。
突发长度能够是1、2、4或许8,突发(Burst)是指在同一行中相邻的存储单元接连进行数据传输的方法,接连传输所涉及到存储单元(列)的数量便是突发长度。
2.4 地址转化模块
地址发生器将微处理器供给的地址依照要求的格局映射到移动SDRAM设备上。指令模块接纳操控接口模块输入的解码后的指令和改写操控单元宣布的改写恳求指令,发生适宜的SDRAM操作指令。
该模块包括一个简略的裁定逻辑单元,裁定主接口和改写单元宣布的指令,改写恳求的优先级最高。当改写单元和主接口一起宣布指令时,裁定单元挂起主接口的指令直到改写操作履行结束;若主接口宣布的指令正在履行时,裁定单元挂起改写指令直至正在处理的操作履行结束。裁定单元接纳操控接口模块宣布的指令后,指令发生单元依据接纳到的指令发生适宜的SDRAM操控信号。指令发生单元依据三个移位存放器发生正确的时序:第一个存放器操控SDRAM激活指令的时序;第二个存放器操控SDRAM读写时的时序;第3个用于发生指令延时,以便决议所恳求的指令是否履行结束。它依据状况别离发生块和队伍地址,并传送到移动SDRAM设备上。
地址发生器的输入输出如下:
clk是体系的主时钟输入,addr是输入的地址信号,pr_state是输入的当时状况,这3个信号均由微操控器供给。地址发生器接纳来自微操控器的指令,把指令转化成SDRAM能够了解的状况信号,地址发生器依据状况信号发生相应的地址挑选SDRAM的行或列进行操作。
3 体系的规划与完成
挑选ALTERA公司MAXⅡ系列的EPM1240芯片,用CPLD方法完成SDRAM接口。接口仿真时序图如图5所示。
SDRAM接口仿真波形图如图5所示,其间sd_clk_97为操作SDRAM的时钟,sd_cke_98,sd_csn_99,sd_casn_103,sd_rasn_105,sd_wen_106别离为时钟使能信号,片选信号,列选通信号,行选通信号和读写使能信号。sd_ba是SDRAM的2位Bank地址线,sd_a_是SDRAM的13根地址线。data为SDRAM的16位输入/输出双向数据线。
4 定论
在SDRAM的接口规划中,改写的完成一直是一个关键问题。选用CPLD发生操控SDRAM的时序,完成对SDRAM的各种操作。使用Verilog语言和QuartusⅡ软件完成了SDRAM的接口规划,在QuartusⅡ软件环境下模拟了STM32系列单片机对SDRAM的读写操作时序,读写速度到达100MHz,能够在STM32系列单片机扩展64 MBit的SDRAM,其间SDRAM的地址线为13根(行地址线13根,列地址线9根),Bank地址线2根,数据线16根。