蔡亮亮
(國電南京自動化股份有限公司,江蘇南京 210003)
PowerPC werPC平臺中SDRAM SDRAM的應(yīng)用與故障分析
蔡亮亮
(國電南京自動化股份有限公司,江蘇南京 210003)
PowerPC處理器以其良好的穩(wěn)定性和出色的性能在工業(yè)控制領(lǐng)域具有非常廣泛的應(yīng)用,以該處理器為核心的控制系統(tǒng)需具備基本的SDRAM、FLASH等外設(shè)和相關(guān)外圍電路。一般情況下底層驅(qū)動及應(yīng)用代碼均在SDRAM中運(yùn)行,因此SDRAM在整個(gè)控制系統(tǒng)的設(shè)計(jì)中占有很關(guān)鍵的地位。本文就PowerPC系統(tǒng)構(gòu)架中SDRAM的應(yīng)用和故障分析進(jìn)行探討。
PowerPC處理器;SDRAM;應(yīng)用;故障分析
隨著工業(yè)化和現(xiàn)代化的發(fā)展,電氣自動化控制系統(tǒng)在整個(gè)發(fā)展過程中的使用越來越廣泛。SDRAM作為絕大部分控制系統(tǒng)的重要組成部分起著關(guān)鍵的作用,關(guān)乎系統(tǒng)運(yùn)行的穩(wěn)定性。SDRAM的軟件驅(qū)動設(shè)計(jì)及硬件電路設(shè)計(jì)是否合理直接影響整個(gè)系統(tǒng)的品質(zhì)。本文以工業(yè)控制中使用廣泛且成熟的PowerPC處理器為硬件平臺,基于VxWorks操作系統(tǒng)分析SDRAM在該嵌入式系統(tǒng)中的配置、初始化及常見的故障分析方法[1-2]。
本文選用PowerPC工業(yè)用量較大的一款處理器MPC8272,該處理器是一款使用靈活的通訊處理芯片,它在片上集成了高性能的PowerPC RISC微處理器,采用603E內(nèi)核,在603內(nèi)核的基礎(chǔ)上升級了存儲器管理單元MMU。MPC8272包含多個(gè)存儲控制器,其中的SDRAM控制器會在本文作重點(diǎn)介紹,它為SDRAM芯片的驅(qū)動提供了無縫連接。該芯片核心處理器的工作頻率可達(dá)400MHz,外部總線的工作頻率可以達(dá)到100MHz。其地址總線支持32位地址尋址,數(shù)據(jù)總線支持64位數(shù)據(jù)位寬操作。另外其通訊處理模塊集中有FCC、SMC、SCC、USB、PCI等多個(gè)通訊接口,非常適合自動控制領(lǐng)域的應(yīng)用。
VxWorks系統(tǒng)作為一種嵌入式實(shí)時(shí)操作系統(tǒng),它具有高性能、可裁剪等特點(diǎn)。它廣泛應(yīng)用于航空航天、精密儀器等高精尖、高實(shí)時(shí)性的領(lǐng)域,有著卓越的可靠性。此外該系統(tǒng)還是一個(gè)多任務(wù)系統(tǒng),其多任務(wù)環(huán)境使得每一個(gè)任務(wù)都能夠獨(dú)立運(yùn)行,通過各自的優(yōu)先級來獲取時(shí)間片和系統(tǒng)資源。該系統(tǒng)利用信號量、消息隊(duì)列、管道等工具來實(shí)現(xiàn)多任務(wù)間的協(xié)調(diào)運(yùn)行。VxWorks實(shí)時(shí)操作系統(tǒng)由多個(gè)單獨(dú)的功能模塊組成,開發(fā)人員可以根據(jù)系統(tǒng)設(shè)計(jì)的需要來選擇恰當(dāng)?shù)哪K進(jìn)行系統(tǒng)配置,提高了系統(tǒng)的可靠性和效率。
SDRAM的選型為IS42S32800D,該芯片為高速COMS芯片,工作電源為3.3V,其數(shù)據(jù)位為32位,具有12根地址線,2根BANK地址線。共分為4個(gè)存儲BANK,每個(gè)BANK容量為2M*32bit總?cè)萘繛?56Mbit,行地址12位,列地址9位。
MPC8272的存儲控制器最多支持8個(gè)存儲模塊片選,其控制機(jī)制主要分為3種:同步DRAM(SDRAM)機(jī)制,通用片選機(jī)制(GPCM)和用戶可編程機(jī)制(UPM)。因此,該控制器可支持SDRAM、SRAM、FLASH EPROM、常規(guī)DRAM設(shè)備和其他一些外部設(shè)備的最小粘結(jié)邏輯接口。控制器具有外部地址鎖存信號(LALE)、允許數(shù)據(jù)和地址信號復(fù)用,減少了管腳數(shù)量。該存儲控制器還具備多重?cái)?shù)據(jù)保護(hù)和校驗(yàn)功能,例如數(shù)據(jù)的奇偶校驗(yàn)、數(shù)據(jù)寫保護(hù)功能。
本文結(jié)合SDRAM芯片的選型使用了SDRAM存儲控制機(jī)制,該機(jī)制向符合JEDEC標(biāo)準(zhǔn)的SDRAM設(shè)備提供了完善的控制功能和信號。支持每個(gè)存儲設(shè)備并發(fā)打開4個(gè)頁面,支持8位、16位和32位端口的SDRAM芯片。使用SDRAM控制器的關(guān)鍵是要在MPC8272中正確配置其存儲控制器的寄存器,在配置中重點(diǎn)需要注意的寄存器有:基址寄存器BRx、可選寄存器ORx、狀態(tài)寄存器PSDMR。針對SDRAM芯片的選型,下面介紹各寄存器中關(guān)鍵參數(shù)的配置。
基寄存器BRx中含有每個(gè)存儲器的基址和地址類型配置,存儲控制器利用該配置數(shù)據(jù)將地址總線值與當(dāng)前被訪問的地址進(jìn)行對比。每個(gè)寄存器都具有一個(gè)存儲器屬性配置,并為存儲器操作選擇對應(yīng)的處理機(jī)制?;刂芳拇嫫髦饕渲糜幸韵聨醉?xiàng):基地址BRx[BA]的配置一般與地址掩碼ORx[SDAM]配合,每個(gè)基址寄存器的高17位用來和地址總線上的地址相比較,以決定總線主設(shè)備是否正在訪問由存貯控制器控制的存貯體。如BRx[BA]=0000 0000 0000 0000 0,ORx[SDAM]=1111 1110 0000,那么SDRAM的尋址范圍則為0x01000000~0x01FFFFFF。由于SDRAM的數(shù)據(jù)位為32位,因此需要在寄存器中指定當(dāng)前存儲器的數(shù)據(jù)位寬,BRx[PS]=11(32-bit)。本系統(tǒng)中選用的存儲控制器為SDRAM機(jī)制,所以在配置MS時(shí)使BRx[MS]=010(SDRAM)。
可選寄存器ORx主要配置有以下幾項(xiàng):地址掩碼ORx[SDAM],此配置用來屏蔽對應(yīng)的BRx位。單獨(dú)屏蔽地址位則可以對應(yīng)地使用不同大小地址范圍的外部存儲設(shè)備,若系統(tǒng)使用32Mbyte的SDRAM芯片,那么根據(jù)數(shù)據(jù)手冊就需要對應(yīng)地將ORx[SDAM]配置為1111 1110 0000,通過改變字段中的地址屏蔽位就可以對應(yīng)地改變映射的地址區(qū)域。BANK個(gè)數(shù)配置ORx[BPD]=01(4BANKS),根據(jù)本文中所用系統(tǒng)的配置,行地址行起始地址位配置ORx[ROWST]=0111(A7),行地址數(shù)配置ORx[NUMR]=011(12行)。
狀態(tài)寄存器PSDMR主要配置有以下幾項(xiàng):BANK選擇地址配置PSDMR[BSMA]=010,(A14:A15),A10控制配置PSDMR[SDA10]=010(A8),在實(shí)際使用時(shí)要注意地址復(fù)用的因素。另一個(gè)重要過程是SDRAM初始化的過程中對PSDMR[OP]的配置,這部分內(nèi)容見后續(xù)分析。
VxWorks系統(tǒng)映像分為三種:基于ROM的映像、可加載的映像和駐留ROM的映像。本文采用了基于ROM的映像,這種方式也是一般控制系統(tǒng)所常用的方式,它將引導(dǎo)程序和VxWorks系統(tǒng)映像均燒錄在FLASH中,系統(tǒng)上電后首先運(yùn)行引導(dǎo)程序,將整個(gè)VxWorks系統(tǒng)映像拷貝到SDRAM中的RAM_LOW_ADRS地址處,之后跳轉(zhuǎn)到該處執(zhí)行入口函數(shù)usrInit()。后續(xù)的初始化包括安裝異常向量、啟動異常處理程序、設(shè)置數(shù)據(jù)CACHE和代碼CACHE的工作模式、硬件初始化、操作系統(tǒng)內(nèi)核初始化等等[3-5]。
系統(tǒng)上電復(fù)位后,底層驅(qū)動代碼首先要配置對應(yīng)的存儲寄存器(ORn,BRn和PSDMR)中的可編程參數(shù)。在參數(shù)配置結(jié)束后,驅(qū)動代碼會為每一個(gè)SDRAM器件進(jìn)行如下初始化步驟:
①發(fā)出1個(gè)PRECHARGE-ALL-BANK命令;
②發(fā)出8個(gè)AUTO-REFRESH命令;
③發(fā)出1個(gè)MODE-SET命令初始化模式寄存器。
執(zhí)行這些初始化命令,需要設(shè)置LSDMR[OP],上述步驟在底層驅(qū)動代碼設(shè)計(jì)中體現(xiàn)為:進(jìn)行1次“PSDMR[OP]=101”賦值操作、進(jìn)行8次“PSDMR[OP]=001”賦值操作、進(jìn)行1次“PSDMR[OP]=011”賦值操作。
整個(gè)操作系統(tǒng)的初始化包括上層應(yīng)用代碼的運(yùn)行均是在SDRAM中進(jìn)行的,所以SDRAM的穩(wěn)定性對整個(gè)系統(tǒng)而言至關(guān)重要,也是系統(tǒng)設(shè)計(jì)和調(diào)試過程中不可忽視的一部分。
通常對于開發(fā)中的程序都會使用仿真器來進(jìn)行調(diào)試,在系統(tǒng)開發(fā)過程中使用了WINDRIVER公司提供的WindRiver PROBE系列JTAG仿真器以及相應(yīng)的Win?dRiver Workbench仿真軟件進(jìn)行調(diào)試。在調(diào)試的過程中可以利用設(shè)置斷點(diǎn)和單步運(yùn)行等方式來對設(shè)計(jì)好的代碼進(jìn)行有針對性的調(diào)試,可以通過相應(yīng)的對話框?qū)崟r(shí)觀察系統(tǒng)的各類參數(shù)[6]。在一般調(diào)試過程中主要關(guān)注各寄存器中的值和內(nèi)存地址中的值是否和代碼設(shè)計(jì)中一致,代碼之間的跳轉(zhuǎn)邏輯是否正確,條件判斷邏輯是否正常等等。在SDRAM的調(diào)試過程中,可以通過該仿真軟件直接對SDRAM空間的值進(jìn)行更改,來確認(rèn)數(shù)據(jù)是否能夠被正確寫入。
SDRAM在系統(tǒng)上電后的首要任務(wù)就是接收FLASH中拷貝過來的數(shù)據(jù),這里我們簡單地以VxWorks系統(tǒng)映像拷貝為例進(jìn)行分析[7]。在系統(tǒng)上電后,首先會運(yùn)行一段匯編代碼配置一些基本的寄存器,在配置結(jié)束后則開始從FLASH中拷VxWorks系統(tǒng)映像,由于VxWorks系統(tǒng)映像一般較大,所以利用了循環(huán)拷貝邏輯。反映在底層匯編語言中就如下圖1所示,是一段循環(huán)跳轉(zhuǎn)的匯編代碼,直到數(shù)據(jù)拷貝結(jié)束跳出循環(huán)邏輯。圖2在這段拷貝代碼執(zhí)行過程中通用寄存器的值。
圖1 匯編代碼
圖2 通用寄存器值
上圖1顯示的匯編代碼的任務(wù)是將r3寄存器所指地址的內(nèi)容拷貝到r4寄存器所指的地址,r3寄存器所指地址為0xFFF00100,在本系統(tǒng)中該地址是分配給FLASH來存在系統(tǒng)映像的,r4寄存器所指地址為0x00E00100,由上述參數(shù)配置可知該地址是分配給SDRAM的,系統(tǒng)中將此地址配置為RAM_LOW_ADRS,將系統(tǒng)映像拷貝到該地址,然后跳轉(zhuǎn)到該地址執(zhí)行。
在系統(tǒng)映像拷貝的過程中曾經(jīng)出現(xiàn)數(shù)據(jù)無法拷貝或者拷貝的數(shù)據(jù)出現(xiàn)了錯(cuò)亂的現(xiàn)象,此時(shí)首先在寄存器窗口中確認(rèn)BRx、ORx、PSDMR寄存器中的數(shù)據(jù)是否正確寫入,進(jìn)一步檢查設(shè)計(jì)圖中數(shù)據(jù)線、地址線、控制線等等是否與參數(shù)配置相符合,最后檢查硬件電路中處理器與SDRAM相連的各管腳是否出現(xiàn)了虛焊,電阻電容等元器件的值是否正確。一般情況下通過上述處理措施都能夠排除故障。
SDRAM芯片在當(dāng)今的工業(yè)自動化控制系統(tǒng)中有著必不可少的地位,對于該芯片的設(shè)計(jì)和調(diào)試影響著整個(gè)系統(tǒng)的穩(wěn)定,本文以MPC8272處理器為例,分析了SDRAM芯片的配置和調(diào)試過程中的關(guān)鍵之處,提出了SDRAM的簡要故障分析方法,為SDRAM的穩(wěn)定應(yīng)用提供了設(shè)計(jì)基礎(chǔ)。
[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]孔祥營,柏桂枝.嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks及其開發(fā)環(huán)境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,F(xiàn)LASH 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-),男,碩士,工程師,研究方向:電力設(shè)備智能化。