首页 > 范文大全 > 正文

PowerPC嵌入式系统中的SDRAM接口设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇PowerPC嵌入式系统中的SDRAM接口设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:嵌入式微处理器的高速性及其实时嵌入式操作系统的实时性、多任务性等,决定了嵌入式系统发展的前景。系统以目前应用广泛的powerpc G4处理器MPC7410作为核心处理器,以Tsi107作为北桥芯片搭建嵌入式系统的硬件平台。详细介绍Tsi107芯片组中与SDRAM相关的寄存器的配置,讨论SDRAM接口的VxWorks BSP开发设计。

关键词:PowerPC;Tsi107芯片组;SDRAM;BSP

中图分类号:TP368.4 文献标识码:B 文章编号:1004-373X(2008)02-007-03

SDRAM Interface Design in Embedded System Based on PowerPC

LIU Lijun,HE Zhanzhuang,LI Hao

(Xi′an Microelectronics Technology Institute,Xi′an,710054,China)オ

Abstract:The high processing speed of microprocessor and the real-time,multitask characteristics of embedded operating system decide the embedded system will have a good future.The system uses MPC7410 of PowerPC G4 processor which has been used widely as the core processor,Tsi107 as north bridge chip design an embedded system′s hardware platform.Introduc[CD*4]ing the setting of register related to SDRAM in the Tsi107 chip in detail.Discussing the design of SDRAM interface in the VxWorks BSP.

Keywords:PowerPC;Tsi107 chip;SDRAM;BSPオ

MPC7410是新一代G4处理器,具有高性能和低功耗的特点。通过加入A1tiVec技术,处理能力达到了4 G FLOPS。而1.8 V的低电压操作大大降低了芯片的功耗,提高了系统的稳定性[1]。系统采用Tundra公司为PowerPC专门设计的桥芯片/存储器控制器Tsi107的memory控制器管理SDRAM。SDRAM在嵌入式系统中占据着非常重要的地位,必须使SDRAM 能够正常访问。文中介绍了SDRAM接口的VxWorks BSP的开发。

1 基于PowerPC的硬件电路设计

整个电路的硬件设计如图1所示。系统中使用了MPC7410作为核心处理器,外接一个2 MB L2 CACHE作为二级缓存,以提高运算速度。Tsi107作为北桥芯片,利用60X总线和MPC7410相接,用以把60X总线信号转化为PCI总线信号,并管理FLASH和SDRAM[2]。SDRAM用于存放用户的数据和代码,为程序的运行和保存临时文件提供空间。SDRAM 的管理由Tsi107的Memory控制器来实现,数据宽度配置为64 b。Tsi107的SDRAM接口有以下特点:SDRAM器件必须与SDRAM的JEDEC规范兼容,32位和64位数据可选宽度,支持页面式访问,支持8个物理bank,最大支持1 GB的存储容量[3]。设计中采用5片MT48L32M16A2作为SDRAM,其中的一片用于校验数据,sdram的总容量为256 MB,总线时钟是100 MHz。

在布线时应注意SDRAM各个时钟信号线必须等长。如果SDRAM的地址线和控制线采用星型布线难度会很大,因而设计中把5片SDRAM中的必2片放在顶层,剩下的3片放在底层,使5片SDRAM基本平行的放在Tsi107芯片组的Memory控制引脚周围。芯片组的Memory地址线和控制线与中间的1个SDRAM器件相连,然后其他的SDRAM器件与中间的SDRAM器件采用链的方式相接。SDRAM器件数据线的连接要尽量等长。由于SDRAM的频率较高,需要注意布线的长度和路径,以保证信号的完整性。

2 SDRAM的VxWorks BSP的开发

BSP即Board Support Package,板级支持包,是对目标系统的底层支持软件。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义的接口进行交互。BSP是所有与硬件相关的代码体的集合,是介于底层硬件和上层操作系统之间一层,主要目的是为了支持操作系统,使之能够更好地运行于硬件系统。

对SDRAM的BSP的开发主要是对Tsi107芯片组中与SDRAM相关的一些寄存器的设置。这些寄存器包括:Memory边界寄存器、Memory bank使能寄存器、Memory页面方式寄存器、Memory控制配置寄存器。

2.1 Memory边界寄存器

扩展开始地址寄存器(EMSAR1和EMSAR2)和开始地址寄存器(MSAR1和MSAR2)为每个memory bank定义低地址边界,计算公式如下:

bankn低边界=0b00||||||0x0_0000。

扩展结束地址寄存器(EMEAR1和EMEAR2)和结束地址寄存器(MEAR1和MEAR2)为每个memory bank定义高地址边界,计算公式如下:

bankn高边界=0b00||||||0xF_FFFF。

Tsi107提供了8个片选信号CS[0:7],每个片选信号控制1个物理bank,每个物理bank的大小和类型可不相同,每个bank的大小可配置为1~512 MB。因设计中SDRAM的总容量为256 MB,故只使用1个bank0,该物理bank由CS[0]控制。SDRAM的开始地址为0x0000_0000,结束地址为0x0FFF_FFFF。bank1~bank7都映射到0x3FF0_0000~0x3FFF_FFFF。在设置memory bank使能寄存器时将会关闭bank1~bank7。memory边界寄存器将分别设置为:

MSAR1:0xFFFF_FF00;MSAR2:0xFFFF_FFFF;EMSAR1:0x0303_0300; EMSAR2:0x0303_0303; MEAR1:0xFFFF_FFFF; MEAR2:0xFFFF_FFFF;

EMEAR1:0x0303_0300; EMEAR2:0x0303_0303。

2.2 memory bank使能寄存器

该寄存器的大小为1个字节,用于使能各个Memory bank,寄存器的每一位用于使能一个Memory bank,如果只使能bank0,则寄存器被设置为00000001。

2.3 memory页面模式寄存器

该寄存器的大小也是1个字节,包含的PGMAX参数控制Tsi107访问当前页面的时间。PGMAX定义了从激活到预先加电的时间间隔,也称作tRAS。PGMAX参数值乘以64产生实际时间间隔的周期数。当PGMAX被设置为0x00,页模式不被使能。

PGMAX的值与使用的SDRAM,ROM系统和Tsi107的频率有关。当PGMAX定义的时间间隔到达,Tsi107需使用一个预先加电命令关闭当前页面;在进行memory访问时,如果PGMAX时间到达,Tsi107须等到访问完成再对SDRAM进行预先加电;如果ROM连接在memory总线上,则潜在的延迟一个预先加电命令的最长操作是对ROM的突发读操作;如果ROM连接在PCI总线上,则最长的Memory访问是对SDRAM的突发读操作;Tsi107发送一个预先加电命令到SDRAM器件需要两个时钟周期[3]。于是,PGMAX的计算公式为:

PGMAX

2.4 Memory控制配置寄存器

Memory控制配置寄存器包含4个32位寄存器(MCCRs),用于设置所有的RAM和ROM参数。在所有的Memory配置参数设置完后,初始化软件使用MCCR1中的MEMGO位启动Memory接口。首次向MCCR1,2,3和4中写时,先不设置MEMGO位,然后执行一个read-modify-write操作设置MEMGO[3]。

[BT4]2.4.1 Memory控制配置寄存器1

下面只介绍和SDRAM有关的一些重要寄存器位的设置:

SREN位设置为0,表示在睡眠模式时禁止SDRAM的self 刷新。RAM_TYRE位设置为0,表明RAM类型是SDRAM。MCCR1[15:0]用于bank0~bank7的行参数的设置,其表明每一个bank的行地址位多少。因为只使用bank0,所以只设置MCCR[1:0],MCCR[15:2]使用默认值即可。对于器件MT48L32M16A2使用了13个行地址位,4个逻辑bank[4],故MCCR[1:0]设置为10。

[BT4]2.4.2 Memory控制配置寄存器2

INLINE_PAR_NOT_ECC: In-line奇偶校验――不是ECC。执行Memory读时在in-line数据通路的ECC和奇偶校验/纠正装置中选择其一,该位置0。INLINE_WR_EN:使能In-line奇偶校验错误报告。控制在向Memory写时是否Tsi107使用in-line奇偶校验电路报告60X总线上的奇偶校验错误,该位置1。INLINE_RD_EN: In-line读操作奇偶或ECC校验/纠正使能。控制是否Tsi107在in-line数据通路使用ECC/奇偶校验和/或纠正电路报告Memory系统读操作时的ECC或奇偶校验错误,该位置1。

REFINT:Tsi107的Memory接口为SDRAM提供CBR刷新,该位表明了CBR刷新周期之间的时钟周期数。REFINT的值与使用的RAM器件和Tsi107的操作频率有关。当REFINT时间到达且Memory总线空闲,Tsi107向SDRAM发送一个预先加电命令和一个刷新命令。当Memory总线正忙,刷新请求将不被执行,一个内部的、4位、未执行刷新计数器将加1,刷新间隔计时器恢复到REFINT中的值,被中断的操作将继续进行。当REFINT时间到达并且总线空闲,Tsi107将执行所有的未执行的刷新操作,未执行刷新计数器将清零。如果未执行的刷新次数超过16,计数器溢出并产生一个刷新溢出错误[3]。REFINT值通过下面的公式计算可得:[HJ1]

[JZ]REFINT

上式中,器件的刷新周期数RP=每一个bank的刷新周期×bank的数量×Memory的频率,n=(每个bank的行数×每个器件的bank数)/16,ROH=2×同时打开的bank数+PRETOACT+4+1,TWACC是Memory总线上最慢的设备被访问时所占用的时间。对于器件MT48L32M16A2,计算可得REFINT

2.4.3 Memory控制配置寄存器3

BSTOPRE[2~5]:该参数与BSTOPRE[0~1](MCCR4中的19~18位)和BSTOPRE[6~9]( MCCR4中的3~0位)控制页面打开的时间间隔。在每次访问页面时,BSTOPRE[0~9] 的值加载到计数器,当计数器的值到达,则发送一个SDRAM预先加电命令关闭此打开的页面。该参数置为0111。REFREC:从SDRAM刷新命令到可以发送SDRAM激活命令的时间间隔。SDRAM器件的参数tRC表明了最小的刷新――激活的时间间隔。MT48L32M16A2的tRC=66 ns,Memory总线的频率为100 MHz时,REFREC=66 ns×100 MHz=6.6,向上取整得7,因而该参数置为0111。RDLAT:从SDRAM读命令到可从数据总线上获得第一个数据的时间间隔。RDLAT的值不能大于6个时钟周期,该参数置为0100。

2.4.4 Memory控制配置寄存器4

PRETOACT:从SDRAM预先加电命令到允许发送一个SDRAM激活命令的时间间隔。该值由SDRAM器件的tRP参数决定,MT48L32M16A2的tRP=20 ns,Memory总线的频率为100 MHz时,PRETOACT =20 ns×100 MHz=2,因而该参数置为0010。ACTOPRE:从SDRAM激活命令到允许发送一个SDRAM预先加电命令的时间间隔。该值由SDRAM器件的tRAS参数决定,计算方法类似于PRETOACT,该参数置为0101。ACTORW:从SDRAM激活命令到允许一个SDRAM读或写命令的时钟周期。该值由SDRAM器件的tRCD参数决定,该参数置为0010。

最后,MCCR1~MCCR4的设置如下:MCCR1:0x16600002(MEMGO为0);MCCR2:0x661C0B95;MCCR3:0x77400000;MCCR4:0x25402225;MCCR1:0x16680002(MEMGO为1)。

3 配置寄存器的访问

Tsi107中的32位配置寄存器地址是0x8000_00nn,nn是寄存器的相对偏移地址。对配置寄存器的访问采用间接方式,将配置寄存器的地址写到CONFIG_ADDR端口,则配置寄存器的内容将在CONFIG_DATA端口获得。CONFIG_ADDR端口的地址为:0xFEC0_0000~0xFEDF_FFFC,CONFIG_DATA端口的地址为0xFEE0_0000~0xFEEF_FFFF[3]。

4 结 语

以MPC7410为核心处理器搭建嵌入式系统硬件平台,重点介绍Tsi107中和SDRAM相关的一些寄存器,阐述SDRAM接口的VxWorks BSP的设计,使SDRAM在系统中能被正常访问。

参 考 文 献

[1]Freescale Semiconductor.MPC7410 RISC Microprocessor User′s Manual [EB/OL],2002.

[2]单惠平,杨树元,唐志峰.PowerPC主机处理器的SDRAM接口设计开发[J].计算机工程,2006,32(6):263-265.[3]Tundra Semiconductor Corporation.Tsi107 PowerPC Host Bridge User Manual[EB/OL],2006.

[4]Micron Semiconductor.MT48L32M16A2 Datasheet [EB/OL]/dramds,2006.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。