第一文秘网    > 先进事迹

嵌入式微处理器与SDRAM的接口设计与实现

作者:jnscsh   时间:2022-04-15 08:42:14   浏览次数:

摘 要:嵌入式微处理器与SDRAM存储器的接口设计是嵌入式开发系统中非常重要的一个环节。为了实现ARM与SDRAM的数据控制与传输,设计了以基于ARM920T内核的EP9315芯片与MT48LC4M32B2TG接口,具体介绍了接口电路设计,EP9315对SDRAM的寻址逻辑,编程初始化SDRAM的实现,最后在硬件平台上调试成功。

关键词:嵌入式系统;ARM920T;SDRAM存储器;接口设计

中图分类号:TP3681文献标识码:A

文章编号:1004-373X(2010)02-191-04

Design and Implementation of SDRAM Interface for Embedded Mircoprocessor

CHEN Xueli,QIU Zhaokun,CHEN Zhiyong

(National University of Defence Technology,Changsha,410073,China)

Abstract:The design of interface between embedded microprocessors and SDRAM memory is a very important process in the development of the whole embedded system.In order to control and transfer the data between ARM and SDRAM,using EP9315 with a ARM920T core and MT48LC4M32B2TG,the design of interface circuit,the addressing logic from EP9315 to SDRAM,the program implementation of SDRAM initialization,and the interface works correctly and successfully in the platform of EP9315 are introduced.

Keywords:embedded system;ARM920T;SDRAM;interface design

0 引 言

随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的任何一个角落。对于人们来说,需要的不仅是那种通用计算机,任何一个人都可能拥有从小到大的各种使用嵌入式技术的电器产品;小到MP3,PDA、信息家电等消费数码产品,大到网络通信、车载电器、工业控制、国防武器等设备,这些设备正悄悄改变着人们生活的节奏,并把便利和高效带给了这个时代。ARM9是基于RISC的32位微处理器,具有高性能、低成本、低功耗的特点,广泛应用于各类嵌入式产品中。在一个嵌入式系统中,为了满足不同的功能工作要求,会用到各种不同类型的存储器,如主要用于装载代码的具有掉电非易失性NOR FLASH,装载数据的NAND FLASH,一般用作程序执行的SDRAM等等。

SDRAM是同步动态存储器的缩写,它具有动态刷新,读/写速度快的特点。在嵌入式系统中,微处理器上电启动后都会将非易失性的存储器件中的代码加载到SDRAM中进行运行,而系统及用户数据、堆栈均位于SDRAM中。嵌入式微处理器ARM9芯片与SDRAM的接口电路设计是整个嵌入式系统设计中关键的一环,其稳定性是对系统正常工作的保障,也是发挥嵌入式系统高性能的前提。

1 硬件资源及接口设计

1.1 EP9315的内部结构及资源

EP9315是Cirrus Logic公司生产的一款基于ARM920T核的片上系统,是EP93XX的旗舰产品,200 MHz的微处理器核,丰富的外围电路使其成为消费和工业电子产品的理想选择。它的内核拥有:16 KB指令的CACHE、16 KB数据的CACHE、内嵌MMU支持Linux,Wince等嵌入式操作系统,支持100 MHz的系统总线频率。它的外围资源主要包括:多达四组的32 b SDRAM接口,32/16/8位的SRAM/FLASH/ROM接口,串行E2PROM,1/10/100 Mb/s以太网控制器,三路UART,三路USB 2.0全速(12 Mb/s)主口,红外接口,二路EIDE接口,最多六通道的I2S接口,8×8键盘扫描接口,SPI接口,二通道16 b PWM输出,PCMCIA接口,带ADC的触摸屏接口,带图像加速器的LCD与光栅(Raster)接口。

EP9315的内部结构如图1所示。

图1 EP9315内部结构

1.2 EP9315的存储器映射

EP9315的启动有异步模式和同步模式,对于不同的启动模式,存储器的映射地址也不相同。图2介绍了两种启动模式下不同的地址映射。

图2 EP9315的地址映射

EP9315一个BANK划分的大小为256 MB,不同的片选管脚对应不同的BANK选择,其中nCS0~nCS3,nCS6,nCS7可以选择6个异步存储器的BANK,可以是NOR FLASH,也可以是NAND FLASH,nSDCE0~nSDCE3可以选择四组SDRAM,每组存储器的最大为256 MB。在此选取nSDCE0作为MT48LC4M32B2TG的片选,并选取同步启动模式,它的地址映射起始地址为0xC0000000,而MT48LC4M32B2TG中各个BANK对应的EP9315地址空间的分布还和EP9315的SDRAM控制器的配置及MT48LC4M32B2TG的大小有关系。

1.3 SDRAM存储器MT48LC4M32B2TG

MT48LC4M32B2TG是Micron公司开发的一款32 b SDRAM芯片。SDRAM的内部结构如图3所示。它内部包括2根BANK选择线,12根行选择线和8根列地址线,可以实现对4×4 K×256 B的存储单元的寻址,因为它的最小存储单元为32 b大小,所以MT48LC4M32B2TG的大小为128 Mb。它的列地址线是复用行地址线的,所以MT48LC4M32B2TG用到的地址线为12根行线和2根BANK选择线。另外它的6根控制线CKE,CLK,CE,WE,RAS,CAS和DQM0~3分别对应的10根控制线,作用分别为时钟使能、时钟、片选、写选通、行选通、列选通和控制4个字节的数据掩码。

图3 MT48LC4M32B2TG内部结构

从图3可以看出SDRAM内部包含一个模式寄存器,在SDRAM的初始化步骤里要对模式寄存器进行写入,设定SDRAM的各个工作参数,包括SDRAM的操作模式、CAS潜伏期、突发传输模式和突发长度\。模式寄存器的写入是SDRAM初始化关键的一步,其写入的操作数是对SDRAM各参数的设定,这些参数又决定了SDRAM工作性能的发挥,各参数的具体意义本文中不做讨论。

1.4 接口设计

硬件电路接口设计的稳定性是实现设计目的的前提,这里提出的EP9315与MT48LC4M32B2TG的接口设计方案如图4所示,并已在自己制作的EP9315开发板中调试成功。

图4 接口设计原理图

2 EP9315对SDRAM的寻址逻辑

MT48LC4M32B2TG大小为128 Mb,为行列复用选址,可以实现32 MB寻址。而如图4所示,EP9315用A15和A14作为SDRAM的BANK选择线,A0~A11作为SDRAM的行地址线,同时A0~A7又复用为SDRAM的列地址线。如果EP9315对SDRAM采取简单的线性地址译码,则加上2根BANK选择线,EP9315最多可实现214=16 KB的寻址,要达到32 MB的寻址,EP9315内部必须有更复杂的译码规则,图5为几种不同EP9315工作模式下对SDRAM的地址译码逻辑。其中AD0_AD15指代SDRAM外部的真实地址管脚,A0~A27为EP9315地址操作数的数值,比如对于代码“ldr r0,=0xc0008000 Str r1,\”,这里要将r1寄存器里的值写到0xc0008000这个地址空间里去,首先就必须先找到0xc0008000这个地址操作数所对应的SDRAM的真实存储位置。其中最高位字节“c”确定了EP9315要寻址的外部存储块为片选“SDCS0”所确定的块,也正是设计中所选择的MT48LC4M32B2TG的位置。假定EP9315选择“SDRAM 32 b”这样一个模式,则对外部SDRAM寻址时,在外部地址管脚上,会先产生BANK选择地址AD15~AD14为“00”,它等于译码后A27~A26的值;行地址AD11~AD0为“000000100000”,它等于译码后A21~A10的值;然后产生列地址AD7~AD0为“00000000”,它等于译码后A9~A2的值,A2对应AD0的值是因为32位位宽下要实现字对齐需要从A2位开始,16位的则从A1位开始。

从整体地址映射空间来看,MT48LC4M32B2TG内部有4个BANK,一个BANK大小为8 MB,选择“SDRAM 32 b”模式,则EP9315的外部映射空间0xc0000000~0xc03fffff对应BANK0,0xc4000000~0xc43fffff对应BANK1,0xc8000000~0xc83fffff对应BANK2,0xcc000000~0xcc3fffff对应BANK3。另外,因为A25~A22处的译码不会对SDRAM的寻址产生影响,所以EP9315的外部映射有24=16个译码地址对应同一个SDRAM的实际存储位置。

EP9315工作在“SDRAM 32 b”模式下并不能实现对MT48LC4M32B2TG的连续寻址,而选择“SROM looklike 32 b”模式(对于模式的选取通过EP9315的SDRAM的控制寄存器配置来设定)。如图5所示,则0xc0000000~0xc03fffff对应BANK0,0xc0400000~0xc07fffff对应BANK1,0xc0800000~0xc0bfffff对应BANK2,BANK3的地址映射为0xc0c00000~0xc0ffffff,实现地址连续映射,但也同时有16个译码地址对应同一个SDRAM实际存储位置。

图5 EP9315对SDRAM的译码逻辑

3 SDRAM初始化的编程实现

EP9315对SDRAM的初始化的基本流程如图6所示。

图6 SDRAM初始化基本流程

该设计中SDRAM初始化的相关代码如下:

ldr r2,=0x4e20;延迟100 μs

2 subs r2,r2,#1

bne %b2

ldr r0,=rSDRAM_DCFG0 ;设置SDRAM控制寄存器

ldr r1,=0x210008

str r1,

ldr r0,=rSDRAM_GCG

ldr r1,=0x80000002

str r1,

ldr r0,

ldr r0,=rSDRAM_GCG;产生nop命令

ldr r1,=0x80000003

str r1,

ldr r2,=0x9c40;延迟200 μs

10 subs r2,r2,#1

bne %b10

ldr r0,=rSDRAM_GCG

ldr r1,=0x80000001;预充电

str r1,

ldr r1,=0xf

ldr r0,=rSDRAM_RT;暂时设置刷新时间为15circle

str r1,

ldr r2,=0xb0;延迟176个SDRAM工作周期

7 subs r2,r2,#1

bne %b7

ldr r0,=rSDRAM_RT

ldr r1,=0x61b;设定新的刷新频率

str r1,

ldr r3,=0xc0008800

ldr r0,=rSDRAM_GCG

ldr r1,=0x80000002;使能模式寄存器通道并写入模式寄存器

str r1,

ldr r2,

ldr r0,=rSDRAM_DCFG0;设置SDRAM控制寄存器

ldr r1,=0x210008

str r1,

ldr r0,=rSDRAM_GCG

ldr r1,=0x80000000;进入正常操作

str r1,

初始化中SDRAM控制寄存器控制字、SDRAM模式寄存器的写入字\、刷新频率值\的设定都会影响到SDRAM的工作状态,寻址方式和性能的发挥。

4 结 语

在嵌入式系统的开发设计中,SDRAM的接口设计是很重要的步骤,其稳定性影响着系统的稳定性,它的优越性体现着系统的优越性。该设计成功地实现了SDRAM的接口设计及初始化,为接下来的底层驱动开发、操作系统移植、应用程序开发提供了可靠保障。

参考文献

[1]赵效民.高手进阶,终极内存技术指南\..

[2]EP93xx_Users_Guide_UM1.Datasheet of EP93XX.

[3]128 Mb SDRAMx32.Datasheet of MT48LC4M32B2TG.

[4]王成.基于ARM9处理器的嵌入式开发平台的设计与实现\.大连:大连理工大学,2006.

[5]江俊辉.基于ARM的嵌入式系统硬件设计\.微计算机信息,2005,21(Z):120-122.

[6]窦振中.嵌入式处理器ARM技术及芯片\.世界电子元器件,2002(3):15-16.

[7]赵梅,胡宏平.基于ARM的嵌入式系统在温控仪表中的应用\.自动化仪表,2007,28(11):32-34.

[8]姜磊.基于ARM的嵌入式系统在无线视频传输中的应用\.哈尔滨:哈尔滨工业大学,2006.

[9]段星光,黄强.基于ARM+DSP的小型地面移动机器人控制系统\.伺服控制,2006(5):10-12.

[10]李赣平,杜红彬,邵惠鹤.基于ARM的流量计大容量存储功能的实现\.自动化仪表,2005,26(4):25-26.

[11]朱连柱.基于ARM嵌入式系统的M2M终端平台研究\.大连:大连理工大学,2006.

[12]祁小钰.基于ARM的数据处理终端设计\.南京:南京理工大学,2006.

[13]王根义,马德宝,杨黎斌.基于ARM的嵌入式最小系统架构研究\.微计算机信息,2008,24(2):68-71.

推荐访问:微处理器 嵌入式 接口 设计 SDRAM