蔡亮亮
(國電南京自動化股份有限公司,江蘇南京 210003)
PowerPC werPC平臺中SDRAM SDRAM的應用與故障分析
蔡亮亮
(國電南京自動化股份有限公司,江蘇南京 210003)
PowerPC處理器以其良好的穩定性和出色的性能在工業控制領域具有非常廣泛的應用,以該處理器為核心的控制系統需具備基本的SDRAM、FLASH等外設和相關外圍電路。一般情況下底層驅動及應用代碼均在SDRAM中運行,因此SDRAM在整個控制系統的設計中占有很關鍵的地位。本文就PowerPC系統構架中SDRAM的應用和故障分析進行探討。
PowerPC處理器;SDRAM;應用;故障分析
隨著工業化和現代化的發展,電氣自動化控制系統在整個發展過程中的使用越來越廣泛。SDRAM作為絕大部分控制系統的重要組成部分起著關鍵的作用,關乎系統運行的穩定性。SDRAM的軟件驅動設計及硬件電路設計是否合理直接影響整個系統的品質。本文以工業控制中使用廣泛且成熟的PowerPC處理器為硬件平臺,基于VxWorks操作系統分析SDRAM在該嵌入式系統中的配置、初始化及常見的故障分析方法[1-2]。
本文選用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位。
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]的配置,這部分內容見后續分析。
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的穩定性對整個系統而言至關重要,也是系統設計和調試過程中不可忽視的一部分。
通常對于開發中的程序都會使用仿真器來進行調試,在系統開發過程中使用了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相連的各管腳是否出現了虛焊,電阻電容等元器件的值是否正確。一般情況下通過上述處理措施都能夠排除故障。
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-),男,碩士,工程師,研究方向:電力設備智能化。