- 相關(guān)推薦
Flash存儲器在TMS320C3x系統(tǒng)中的應用
摘要:以基于TMS320C32 DSP開發(fā)的故障錄波裝置為模型,介紹AMD公司的Flash存儲器Am29F040的原理和應用;利用它操作過程實現(xiàn)斷電后仍然可以將子程序保存在Flash存儲器內(nèi)的特性,結(jié)合TMS320C3x提出實現(xiàn)DSP系統(tǒng)上電后用戶程序的自動引導的方法。引言
在對電力系統(tǒng)斷路器的狀態(tài)監(jiān)測過程中,需要對故障數(shù)據(jù)進行保存,以便于查撲克;在則故障期間難免會出現(xiàn)停機的現(xiàn)象,因此,如何在斷電的狀態(tài)下保存數(shù)據(jù),就成為一個關(guān)鍵問題。對于故障出現(xiàn)的監(jiān)測裝置必須滿足兩個基本的特性——實時性和快速性。這兩種特性都需要以快速處理大量的數(shù)據(jù)信息為基礎(chǔ),所以我們采用數(shù)據(jù)信號處理DSP來滿足這方面的要求,F(xiàn)在,閃存(Flash Memory)已經(jīng)成為DSP系統(tǒng)的一個基本的配置。
這里Flash存儲器主要用來存放用戶程序代碼。一般來說,將用戶需要的程序代碼裝入Flash存儲器有三種方法:一種是在存儲器出廠前將數(shù)據(jù)寫入;一種是用戶使用編程器自己編程;最后一種是將存儲器安裝在用戶電路板后進行編程。隨著芯片制造工藝的提高,芯片的集成度也越來越高,使Flash存儲器正在向小型化、帖片式方向發(fā)展。本文結(jié)合TMS320C3x系列的DSP上電引導表產(chǎn)生方法,討論AMD公司生產(chǎn)的Am29F040閃存在系統(tǒng)中的編程方法。
1 Flash存儲器Am29F040
Am29F040是AMD公司生產(chǎn)的Flash存儲器,主要作用是固化程序和保存歷史數(shù)據(jù),也就是開機后執(zhí)行閃存的程序,并在程序執(zhí)行的過程中實時地保存或修改其內(nèi)部的數(shù)據(jù)單元。
下面首先介紹Am29F040的特點和操作。
Am29F040是采用5V單電源供電的可編程只讀存儲器,是一種電可擦除與重新編程的器件。該器件由8個獨立的64K字節(jié)塊組成,訪問速度為55~150ns。片內(nèi)的狀態(tài)機編程和擦除器件、嵌入式字節(jié)編程與區(qū)段/芯片擦除功能是全自動的。內(nèi)部結(jié)構(gòu)框圖如圖1所示。
A0~A18:地址線。其中A8~A18提供存儲區(qū)地址,行地址確定所在扇區(qū);A0~A7選定其扇區(qū)的一個字節(jié),扇區(qū)容量是256字節(jié)。
DQ0~DQ7:數(shù)據(jù)輸入/輸出。在讀周期輸出數(shù)據(jù);
在寫周期接收數(shù)據(jù)。寫過程中寫入的數(shù)據(jù)被內(nèi)部鎖存。
CE:輸入,芯片使能,低電平時選中該器件。
OE:輸入,輸出使能,低電平時打開數(shù)據(jù)輸出緩沖區(qū),允許讀操作。
WE:輸入,寫使能,低電平時允許寫操作。
Vcc為5V電源。Vss為地。
工用方式有讀方式、待機方式、輸出禁止及算法選擇。
例如,對于寫操作的編程命令,如表1所列。
其中:RA為被讀出的存儲單元地址;
PA為被編程的存儲單元地址;
RD為所選地址單元被讀出的數(shù)據(jù);
PD為所選地址單元被編程的數(shù)據(jù)。
除編程地址、區(qū)段地址和讀地址之外的所有總線周期地址,地址引腳A18、A17、A16、A15為高或低。
下面以命令表的編程命令為例。簡要介紹字節(jié)編程。表1所列命令是一個4總線周期指令。首先,在地址5555H寫入數(shù)據(jù)0AAH,地址2AAAH寫入數(shù)據(jù)055H,再在地址5555H寫入數(shù)據(jù)A0H,最后是編程的地址和數(shù)據(jù)。
表1 軟件命令簡表
對于芯片擦除功能,自動地提供編程和電擦除之前,校驗所有存儲單元所需的電壓和時序,然后自動擦除并校驗單元界限。利用數(shù)據(jù)輪詢(datapolling)特性,可以監(jiān)視自動芯片擦除操作期間器件的狀態(tài),以檢驗操作是否完成。
程序如下:
int Chip_Erase()
{
(int)0x00005555=0xAAAAAAAA; /*寫芯片擦除命令部分*/
*(int *)0x00002AAA=0x55555555;
*(int *)0x00005555=0x80808080;
*(int)0x00005555=0xAAAAAAAA;
*(int *)0x00002AAA=0x55555555;
*(int *)0x00005555=0x10101010;
while((*int)0x00005555
【Flash存儲器在TMS320C3x系統(tǒng)中的應用】相關(guān)文章:
高性能FLASH存儲器在DSP電機智能保護中的應用03-18
鐵電存儲器在新型語音電子門鎖系統(tǒng)中的應用03-19
鐵電存儲器FM18L08在DSP系統(tǒng)中的應用03-21
鐵電存儲器在儀表中的應用03-18
嵌入式系統(tǒng)中的線性Flash文件系統(tǒng)設(shè)計03-21