《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP的Flash存儲器壞塊自動(dòng)檢測系統(tǒng)
基于DSP的Flash存儲器壞塊自動(dòng)檢測系統(tǒng)
電子發(fā)燒友
摘要: 隨著電子技術(shù)飛速發(fā)展,,智能電子產(chǎn)品隨處可見,,如PC機(jī),、移動(dòng)電話、PDA,、數(shù)碼相機(jī)、游戲機(jī),、數(shù)字電視等,,而諸如此類的電子產(chǎn)品的核心器件往往離不開存儲器。無論是從存儲器的物理結(jié)構(gòu),、存儲容量,、數(shù)據(jù)讀寫速度、可靠性,、耐用性,,還是產(chǎn)品的實(shí)用性方面。其種類繁多,。然而由于種種原因,,越來越多的電子產(chǎn)品采用數(shù)據(jù)傳輸快、容量大的NAND型Flash存儲器,。雖然NAND型Flash具有許多優(yōu)點(diǎn),,但其有隨機(jī)產(chǎn)生不可避免的壞塊,如果不能很好解決該壞塊將導(dǎo)致高故障率,。因此,,這里提出一種基于DSP的Flash存儲器壞塊自動(dòng)檢測系統(tǒng)。1系統(tǒng)設(shè)計(jì)方案圖l為Flash存儲器壞塊自動(dòng)檢測系統(tǒng)結(jié)構(gòu)框圖,。本系統(tǒng)設(shè)計(jì)采用AT89C51自動(dòng)檢測NAND型Flash存儲器的無效塊,,獲取Flash存儲器的壞塊信息,為后續(xù)數(shù)據(jù)存儲做準(zhǔn)備,。本系統(tǒng)設(shè)計(jì)包括硬件電路和配套軟件設(shè)計(jì)2部分,。其硬件電路主要由單片機(jī),、控制、顯示和存儲器4部分組成,,其中單片機(jī)部分采用常規(guī)的最小系統(tǒng)電路,;控制部分由按鍵和單片機(jī)的外部中斷組成,按鈕通過電阻與接地端相連,,而復(fù)位鍵則與電源端相連,;顯示部分采用單片機(jī)的P0和P1端口控制8位七段共陽極數(shù)碼管,位選通端由P2端口控制數(shù)據(jù)端由Pl控制,;存儲
關(guān)鍵詞: DSP Flash 自動(dòng)檢測 AT89C51
Abstract:
Key words :

隨著電子技術(shù)飛速發(fā)展,,智能電子產(chǎn)品隨處可見,如PC機(jī),、移動(dòng)電話,、PDA、數(shù)碼相機(jī),、游戲機(jī),、數(shù)字電視等,而諸如此類的電子產(chǎn)品的核心器件往往離不開存儲器,。無論是從存儲器的物理結(jié)構(gòu),、存儲容量、數(shù)據(jù)讀寫速度,、可靠性,、耐用性,還是產(chǎn)品的實(shí)用性方面,。其種類繁多,。然而由于種種原因,越來越多的電子產(chǎn)品采用數(shù)據(jù)傳輸快,、容量大的NAND型Flash存儲器,。雖然NAND型Flash具有許多優(yōu)點(diǎn),但其有隨機(jī)產(chǎn)生不可避免的壞塊,,如果不能很好解決該壞塊將導(dǎo)致高故障率,。因此,這里提出一種基于DSPFlash存儲器壞塊自動(dòng)檢測系統(tǒng),。

1 系統(tǒng)設(shè)計(jì)方案

圖l為Flash存儲器壞塊自動(dòng)檢測系統(tǒng)結(jié)構(gòu)框圖,。
 


本系統(tǒng)設(shè)計(jì)采用AT89C51自動(dòng)檢測NAND型Flash存儲器的無效塊,獲取Flash存儲器的壞塊信息,,為后續(xù)數(shù)據(jù)存儲做準(zhǔn)備,。本系統(tǒng)設(shè)計(jì)包括硬件電路和配套軟件設(shè)計(jì)2部分。其硬件電路主要由單片機(jī),、控制,、顯示和存儲器4部分組成,,其中單片機(jī)部分采用常規(guī)的最小系統(tǒng)電路;控制部分由按鍵和單片機(jī)的外部中斷組成,,按鈕通過電阻與接地端相連,,而復(fù)位鍵則與電源端相連;顯示部分采用單片機(jī)的P0和P1端口控制8位七段共陽極數(shù)碼管,,位選通端由P2端口控制數(shù)據(jù)端由Pl控制,;存儲器部分與單片機(jī)相連,由于存在電平差異,,所以需加電平轉(zhuǎn)換器74LVX42-45,可將由單片機(jī)輸出的5 V電壓轉(zhuǎn)到3 V,,并將由Flash輸出的3 V電壓轉(zhuǎn)到5 V,,其轉(zhuǎn)換方向便于控制。而軟件設(shè)計(jì)部分采用單片機(jī)C語言編寫程序,,當(dāng)數(shù)據(jù)存儲到單片機(jī)后,,用一個(gè)循環(huán)語句將其放到數(shù)組里,這樣可以通過改變某一變量實(shí)現(xiàn)上下查詢,。則將這個(gè)變量的改變放在外部中斷程序中,。

2 硬件電路設(shè)計(jì)

硬件電路設(shè)計(jì)由于選用的51單片機(jī)是TTL器件,而所要檢測的NAND型Flash存儲器是CMOS器件,,這2種類型器件的電平不相匹配,,因此需增加電平轉(zhuǎn)換器74154245,從而實(shí)現(xiàn)電壓的5 V與3 V的雙向轉(zhuǎn)換,。

2.1 單片機(jī)的連接

為了方便讀圖,,該系統(tǒng)設(shè)計(jì)的電路原理圖中的許多導(dǎo)線連接都采用網(wǎng)絡(luò)標(biāo)號的方法,而標(biāo)號的命名基本采用引腳名稱,。單片機(jī)的P1端口的位操作控制Flash的控制端,,P0端口作為單片機(jī)和Flash的地址和數(shù)據(jù)傳輸端口。其中數(shù)據(jù)的流向采用P1.6和P1.7控制,,要讀取Flash的數(shù)據(jù)時(shí),,如讀ID時(shí),先對單片機(jī)的P1端口位操作,,依照時(shí)序設(shè)置控制字,,接著由單片機(jī)的PO端口輸出讀取ID的命令,然后設(shè)置寫地址的控制字,,輸入地址00H,。讀狀態(tài)時(shí),連續(xù)的RE脈沖可輸出ID代碼,。頁讀取操作與此類似,。圖2為單片機(jī)電路連接圖,。


2.2 Flash存儲器的連接

K9K8G08UOM是采用NAND技術(shù)的1 GB大容量、高可靠,、非易失性Flash存儲器,,具有高密度、高性能特點(diǎn),。其無效塊定義為包含有一個(gè)或更多無效字節(jié),,且其可靠性不能被保證,則無效塊中的信息稱為無效塊信息,。和所有的有效塊一樣,,它具有相同的AC和DC參數(shù),一個(gè)無效塊不會影響有效塊的運(yùn)行,,因?yàn)樗邢鄳?yīng)獨(dú)立的指令資源依靠選擇晶體管,,該系統(tǒng)設(shè)計(jì)必須通過地址掩蓋其無效塊。第l塊(地址是OOh)為了保證是有效塊,,不要求糾錯(cuò)l K編程/擦除周期,。

除了先裝載好的無效塊信息,所有器件的存儲單元都被擦除,,無效塊狀態(tài)定義在空余區(qū)域的第1個(gè)字節(jié),。在每塊第1頁2 048字節(jié)的列地址中沒有FFh。很多情況下,,無效塊信息也是能擦除的,,一旦擦除,它不可能恢復(fù)其原有信息,。因此,,系統(tǒng)必須在原來無效塊的信息基礎(chǔ)上認(rèn)識無效塊。該系統(tǒng)設(shè)計(jì)就是通過讀每塊的第1頁判定該塊是否為無效塊,。

依據(jù)該Flash器件數(shù)據(jù)資料中各個(gè)引腳的功能,,設(shè)計(jì)Flash的電路連接,圖3只給出K9K8G08UOM部分所用引腳,,電路中Flash的控制端經(jīng)電平轉(zhuǎn)換器后與單片機(jī)的Pl端口相連,,而I/O端口經(jīng)電平轉(zhuǎn)換器與單片機(jī)的P0端口相連。
 


2.3 74LVX4245電平轉(zhuǎn)換器

74LVX4245提供5 V和3 V之間轉(zhuǎn)換的8位雙向電平轉(zhuǎn)換器,。該器件的T/R引腳控制數(shù)據(jù)流向,。發(fā)射端使數(shù)據(jù)由A端到B端,而接收端使數(shù)據(jù)由B端到A端,。A端接5 V總線,,而B端接3 V總線,如圖4所示。
 


2.4 數(shù)碼管

采用共陽極數(shù)碼管動(dòng)態(tài)顯示方式,。為了提高驅(qū)動(dòng)能力,,采用三極管驅(qū)動(dòng),用P2端口的低電平對數(shù)碼管進(jìn)行位點(diǎn)亮,,P0端口輸入要顯示的字符,。本系統(tǒng)設(shè)計(jì)時(shí),第l位和第2位顯示第幾個(gè)壞塊,,后3位顯示無效塊地址,。

3 系統(tǒng)軟件設(shè)計(jì)

采用μVision2集成開發(fā)環(huán)境,μVision2支持8051的所有Keil工具包,,其中包括C編輯器,、宏匯編器、鏈接器,,定位器和目標(biāo)文件至HEX格式的轉(zhuǎn)換器,。系統(tǒng)軟件設(shè)計(jì),即單片機(jī)代碼設(shè)計(jì)通??刹捎脜R編語言或C語言。圖5是無效塊判斷的主要流程,。
 


本設(shè)計(jì)中軟件核心部分是存儲器的頁讀取函數(shù),。函數(shù)中定義無符號整型變量賦值2 048,依據(jù)頁讀取的時(shí)序,,先將讀指令00H由函數(shù)Writ-eCommand寫入Flash的命令寄存器,,接著由WriteAddress函數(shù)將4個(gè)周期的地址寫入Flash的地址寄存器,再由WriteCommand函數(shù)將讀命令30H寫入Flash指令寄存器,,延時(shí)后讀狀態(tài)的控制字的設(shè)置,,在2 048個(gè)讀信號脈沖中讀取緩存數(shù)據(jù)。該函數(shù)完整源程序代碼如下:
 


4 結(jié)論

本設(shè)計(jì)滿足系統(tǒng)設(shè)計(jì)要求,,能夠?qū)崿F(xiàn)對Flash存儲器的ID號的讀取,,準(zhǔn)確讀取存儲器無效塊的數(shù)目和相應(yīng)的物理地址,通過功能按鈕實(shí)現(xiàn)對無效塊地址的上下查詢,。將存儲器換成fLash后可以很好地檢測器件的無效塊的分布情況,。可以成為選擇性能更好的器件工具,,同時(shí)還可準(zhǔn)確獲取無效塊地址,,為以后數(shù)據(jù)存儲打好基礎(chǔ)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。