APP下载

PowerPC werPC平台中SDRAM SDRAM的应用与故障分析

2015-03-30蔡亮亮

河南科技 2015年6期
关键词:拷贝寄存器代码

蔡亮亮

(国电南京自动化股份有限公司,江苏南京 210003)

PowerPC werPC平台中SDRAM SDRAM的应用与故障分析

蔡亮亮

(国电南京自动化股份有限公司,江苏南京 210003)

PowerPC处理器以其良好的稳定性和出色的性能在工业控制领域具有非常广泛的应用,以该处理器为核心的控制系统需具备基本的SDRAM、FLASH等外设和相关外围电路。一般情况下底层驱动及应用代码均在SDRAM中运行,因此SDRAM在整个控制系统的设计中占有很关键的地位。本文就PowerPC系统构架中SDRAM的应用和故障分析进行探讨。

PowerPC处理器;SDRAM;应用;故障分析

随着工业化和现代化的发展,电气自动化控制系统在整个发展过程中的使用越来越广泛。SDRAM作为绝大部分控制系统的重要组成部分起着关键的作用,关乎系统运行的稳定性。SDRAM的软件驱动设计及硬件电路设计是否合理直接影响整个系统的品质。本文以工业控制中使用广泛且成熟的PowerPC处理器为硬件平台,基于VxWorks操作系统分析SDRAM在该嵌入式系统中的配置、初始化及常见的故障分析方法[1-2]。

1 PowerPC处理器、VxWorks系统及SDRAM芯片简述

本文选用PowerPC工业用量较大的一款处理器MPC8272,该处理器是一款使用灵活的通讯处理芯片,它在片上集成了高性能的PowerPC RISC微处理器,采用603E内核,在603内核的基础上升级了存储器管理单元MMU。MPC8272包含多个存储控制器,其中的SDRAM控制器会在本文作重点介绍,它为SDRAM芯片的驱动提供了无缝连接。该芯片核心处理器的工作频率可达400MHz,外部总线的工作频率可以达到100MHz。其地址总线支持32位地址寻址,数据总线支持64位数据位宽操作。另外其通讯处理模块集中有FCC、SMC、SCC、USB、PCI等多个通讯接口,非常适合自动控制领域的应用。

VxWorks系统作为一种嵌入式实时操作系统,它具有高性能、可裁剪等特点。它广泛应用于航空航天、精密仪器等高精尖、高实时性的领域,有着卓越的可靠性。此外该系统还是一个多任务系统,其多任务环境使得每一个任务都能够独立运行,通过各自的优先级来获取时间片和系统资源。该系统利用信号量、消息队列、管道等工具来实现多任务间的协调运行。VxWorks实时操作系统由多个单独的功能模块组成,开发人员可以根据系统设计的需要来选择恰当的模块进行系统配置,提高了系统的可靠性和效率。

SDRAM的选型为IS42S32800D,该芯片为高速COMS芯片,工作电源为3.3V,其数据位为32位,具有12根地址线,2根BANK地址线。共分为4个存储BANK,每个BANK容量为2M*32bit总容量为256Mbit,行地址12位,列地址9位。

2 MPC8272存储控制器及其相关参数配置

MPC8272的存储控制器最多支持8个存储模块片选,其控制机制主要分为3种:同步DRAM(SDRAM)机制,通用片选机制(GPCM)和用户可编程机制(UPM)。因此,该控制器可支持SDRAM、SRAM、FLASH EPROM、常规DRAM设备和其他一些外部设备的最小粘结逻辑接口。控制器具有外部地址锁存信号(LALE)、允许数据和地址信号复用,减少了管脚数量。该存储控制器还具备多重数据保护和校验功能,例如数据的奇偶校验、数据写保护功能。

本文结合SDRAM芯片的选型使用了SDRAM存储控制机制,该机制向符合JEDEC标准的SDRAM设备提供了完善的控制功能和信号。支持每个存储设备并发打开4个页面,支持8位、16位和32位端口的SDRAM芯片。使用SDRAM控制器的关键是要在MPC8272中正确配置其存储控制器的寄存器,在配置中重点需要注意的寄存器有:基址寄存器BRx、可选寄存器ORx、状态寄存器PSDMR。针对SDRAM芯片的选型,下面介绍各寄存器中关键参数的配置。

基寄存器BRx中含有每个存储器的基址和地址类型配置,存储控制器利用该配置数据将地址总线值与当前被访问的地址进行对比。每个寄存器都具有一个存储器属性配置,并为存储器操作选择对应的处理机制。基地址寄存器主要配置有以下几项:基地址BRx[BA]的配置一般与地址掩码ORx[SDAM]配合,每个基址寄存器的高17位用来和地址总线上的地址相比较,以决定总线主设备是否正在访问由存贮控制器控制的存贮体。如BRx[BA]=0000 0000 0000 0000 0,ORx[SDAM]=1111 1110 0000,那么SDRAM的寻址范围则为0x01000000~0x01FFFFFF。由于SDRAM的数据位为32位,因此需要在寄存器中指定当前存储器的数据位宽,BRx[PS]=11(32-bit)。本系统中选用的存储控制器为SDRAM机制,所以在配置MS时使BRx[MS]=010(SDRAM)。

可选寄存器ORx主要配置有以下几项:地址掩码ORx[SDAM],此配置用来屏蔽对应的BRx位。单独屏蔽地址位则可以对应地使用不同大小地址范围的外部存储设备,若系统使用32Mbyte的SDRAM芯片,那么根据数据手册就需要对应地将ORx[SDAM]配置为1111 1110 0000,通过改变字段中的地址屏蔽位就可以对应地改变映射的地址区域。BANK个数配置ORx[BPD]=01(4BANKS),根据本文中所用系统的配置,行地址行起始地址位配置ORx[ROWST]=0111(A7),行地址数配置ORx[NUMR]=011(12行)。

状态寄存器PSDMR主要配置有以下几项:BANK选择地址配置PSDMR[BSMA]=010,(A14:A15),A10控制配置PSDMR[SDA10]=010(A8),在实际使用时要注意地址复用的因素。另一个重要过程是SDRAM初始化的过程中对PSDMR[OP]的配置,这部分内容见后续分析。

3 VxWorks系统及SDRAM的初始化

VxWorks系统映像分为三种:基于ROM的映像、可加载的映像和驻留ROM的映像。本文采用了基于ROM的映像,这种方式也是一般控制系统所常用的方式,它将引导程序和VxWorks系统映像均烧录在FLASH中,系统上电后首先运行引导程序,将整个VxWorks系统映像拷贝到SDRAM中的RAM_LOW_ADRS地址处,之后跳转到该处执行入口函数usrInit()。后续的初始化包括安装异常向量、启动异常处理程序、设置数据CACHE和代码CACHE的工作模式、硬件初始化、操作系统内核初始化等等[3-5]。

系统上电复位后,底层驱动代码首先要配置对应的存储寄存器(ORn,BRn和PSDMR)中的可编程参数。在参数配置结束后,驱动代码会为每一个SDRAM器件进行如下初始化步骤:

①发出1个PRECHARGE-ALL-BANK命令;

②发出8个AUTO-REFRESH命令;

③发出1个MODE-SET命令初始化模式寄存器。

执行这些初始化命令,需要设置LSDMR[OP],上述步骤在底层驱动代码设计中体现为:进行1次“PSDMR[OP]=101”赋值操作、进行8次“PSDMR[OP]=001”赋值操作、进行1次“PSDMR[OP]=011”赋值操作。

整个操作系统的初始化包括上层应用代码的运行均是在SDRAM中进行的,所以SDRAM的稳定性对整个系统而言至关重要,也是系统设计和调试过程中不可忽视的一部分。

4 SDRAM的调试及常见故障分析

通常对于开发中的程序都会使用仿真器来进行调试,在系统开发过程中使用了WINDRIVER公司提供的WindRiver PROBE系列JTAG仿真器以及相应的Win⁃dRiver Workbench仿真软件进行调试。在调试的过程中可以利用设置断点和单步运行等方式来对设计好的代码进行有针对性的调试,可以通过相应的对话框实时观察系统的各类参数[6]。在一般调试过程中主要关注各寄存器中的值和内存地址中的值是否和代码设计中一致,代码之间的跳转逻辑是否正确,条件判断逻辑是否正常等等。在SDRAM的调试过程中,可以通过该仿真软件直接对SDRAM空间的值进行更改,来确认数据是否能够被正确写入。

SDRAM在系统上电后的首要任务就是接收FLASH中拷贝过来的数据,这里我们简单地以VxWorks系统映像拷贝为例进行分析[7]。在系统上电后,首先会运行一段汇编代码配置一些基本的寄存器,在配置结束后则开始从FLASH中拷VxWorks系统映像,由于VxWorks系统映像一般较大,所以利用了循环拷贝逻辑。反映在底层汇编语言中就如下图1所示,是一段循环跳转的汇编代码,直到数据拷贝结束跳出循环逻辑。图2在这段拷贝代码执行过程中通用寄存器的值。

图1 汇编代码

图2 通用寄存器值

上图1显示的汇编代码的任务是将r3寄存器所指地址的内容拷贝到r4寄存器所指的地址,r3寄存器所指地址为0xFFF00100,在本系统中该地址是分配给FLASH来存在系统映像的,r4寄存器所指地址为0x00E00100,由上述参数配置可知该地址是分配给SDRAM的,系统中将此地址配置为RAM_LOW_ADRS,将系统映像拷贝到该地址,然后跳转到该地址执行。

在系统映像拷贝的过程中曾经出现数据无法拷贝或者拷贝的数据出现了错乱的现象,此时首先在寄存器窗口中确认BRx、ORx、PSDMR寄存器中的数据是否正确写入,进一步检查设计图中数据线、地址线、控制线等等是否与参数配置相符合,最后检查硬件电路中处理器与SDRAM相连的各管脚是否出现了虚焊,电阻电容等元器件的值是否正确。一般情况下通过上述处理措施都能够排除故障。

5 结语

SDRAM芯片在当今的工业自动化控制系统中有着必不可少的地位,对于该芯片的设计和调试影响着整个系统的稳定,本文以MPC8272处理器为例,分析了SDRAM芯片的配置和调试过程中的关键之处,提出了SDRAM的简要故障分析方法,为SDRAM的稳定应用提供了设计基础。

[1]Wind River System Inc.VxWorks 6.0 BSP Developer’s Guide[Z].2005.

[2]W ind River System Inc.VxWorks 6.0 Device Driver Deve-loper′s Guide[Z].2004.

[3]Wind River System Inc.VxWorks 6.0 Hardware Con⁃sidera-tions Guide[Z].2004.

[4]Wind River System Inc.Wind River Workbench User’s Guide[Z].2005.

[5]Wind River System Inc.TrueFFS for Tornado Program⁃mer’s Guide[Z].1999.

[6]Freescale Semiconductor.MPC8272 PowerQUICCIIFam⁃ily Reference Manual,Rev.2.

[7]孔祥营,柏桂枝.嵌入式实时操作系统VxWorks及其开发环境Tornado[M].北京:中国电力出版社,2001.

Application and Fault Analysisof SDRAM in PowerPC Platform

Cai Liangliang
(Guodian Nanjing Automation Co.,Ltd,Nanjing Jiangsu 210003)

PowerPC processor is widely used in the field of industrial control because of its high performance and good stability.One control system based on this processor needsbasic peripherals like SDRAM,FLASH and relevant assistant circuits.Inmost cases the drive code and application code are both running in the SDRAM,so SDRAM isa key factor in the design of thewhole controlsystem.The application and faultanalysisof SDRAM in the framework of PowerPC system willbe discussed in thispaper.

PowerPCprocessor;SDRAM;application;faultanalysis

TP274

码:A

:1003-5168(2015)03-0036-3

2015-2-28

蔡亮亮(1986.11-),男,硕士,工程师,研究方向:电力设备智能化。

猜你喜欢

拷贝寄存器代码
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
唐氏综合征是因为“拷贝”走样了
创世代码
创世代码
创世代码
创世代码
文化拷贝应该如何“拷”
高速数模转换器AD9779/AD9788的应用
基于硬盘还原卡的数据传送技术在高校网络机房中的应用