<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 大容量NAND Flash TC58DVG02A1FT00在嵌入式系統中

大容量NAND Flash TC58DVG02A1FT00在嵌入式系統中

作者: 時(shí)間:2005-02-22 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:隨著(zhù)嵌入式系統產(chǎn)品的發(fā)展,對存儲設備的要求也日益增強。文章以東芝的 E2PROM器件TC58DVG1F00為例,闡述了 的基本結構和使用方法,對比了和NOR 的異同,介紹了容量NAND 在嵌入式系統中的應用方法,以及如何在Linux操作系統中加入對NAND Flash的支持。

關(guān)鍵詞:嵌入式 NAND Flash Linux 內核 TC58DVG1F00

1 NAND和NOR flash

目前市場(chǎng)上的flash從結構上大體可以分為AND、NAND、NOR和DiNOR等幾種。其中NOR和DiNOR的特點(diǎn)為相對電壓低、隨機讀取快、功耗低、穩定性高,而NAND和AND的特點(diǎn)為容量大、回寫(xiě)速度快、芯片面積小?,F在,NOR和NAND FLASH的應用最為廣泛,在CompactFlash、Secure Digital、PC Cards、MMC存儲卡以及USB閃盤(pán)存儲器市場(chǎng)都占用較大的份額。

NOR的特點(diǎn)是可在芯片內執行(XIP,eXecute In Place),這樣應該程序可以直接在flash內存內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,但寫(xiě)入和探險速度較低。而NAND結構能提供極高的單元密度,并且寫(xiě)入和擦除的速度也很快,是高數據存儲密度的最佳選擇。這兩種結構性能上的異同步如下:

*NOR的讀速度比NAND稍快一些。

*NAND的寫(xiě)入速度比NOR快很多。

*NAND的擦除速度遠比NOR快。

*NAND的擦除單元更小,相應的擦除電路也更加簡(jiǎn)單。

*NAND閃存中每個(gè)塊的最大擦寫(xiě)次數量否萬(wàn)次,而NOR的擦寫(xiě)次數是十萬(wàn)次。

此外,NAND的實(shí)際應用方式要比NOR復雜得多。NOR可以直接使用,并在上面直接運行代碼。而NAND需要I/O接口,因此使用時(shí)需要驅動(dòng)程序。不過(guò)當今流行的操作系統對NAND Flash都有支持,如風(fēng)河(擁有VxWorks系統)、微軟(擁有WinCE系統)等公司都采用了TrueFFS驅動(dòng),此外,Linux內核也提供了對NAND Flash的支持。

2 大容量存儲器TC58DCG00

2.1 引腳排列和功能

TC58DVG02A 00是Toshiba公司生產(chǎn)的1Gbit(128M8Bit)CMOS NAND E2PROM,它的工作電壓為3.3V,內部存儲結構為528 bytes32pages8192blocks。而大小為528字節,塊大小為(16k+512)字節。其管腳排列如圖1所示。各主要引腳如下:

I/O1~I/O8:8個(gè)I/O口;

CE:片選信號,低電平有效;

WE:寫(xiě)使能信號,低電平有效;

RE:讀使能信號,低電平有效;

CLE:命令使能信號;

ALE:地址使能信號;

WP:寫(xiě)保護信號,低電平有效;

RY/BY:高電平時(shí)為READY信號,低電平時(shí)為BUSY信號。

2.2 與ARM處理器的連接

當前嵌入式領(lǐng)域的主流處理器當屬ARM。圖2是以ARM7處理器為例給出的NAND Flash與ARM處理器的一般連接方法。如前所述,與NOR Flash不同,NAND Flash需要驅動(dòng)程序才能正常工作。

圖中PB4,PB5,PB6是ARM處理器的GPIO口,可用來(lái)控制NAND Flash的片選信號。CS1是處理器的片選信號,低電平有效。IORD、IOWR分別是處理器的讀、寫(xiě)信號,低電平有效。寫(xiě)保護信號在本電路中沒(méi)有連接。

2.3 具體操作

地址輸入,命令輸入以及數據的輸入輸出,都是通過(guò)NAND Flash的CLE、ALE、CE、WE、RE引腳控制的。具體方式如表1所列。

表1 邏輯表

 CLEALECEWERE
命令輸入100時(shí)鐘上升沿1
數據輸入000時(shí)鐘上升沿1
地址輸入010時(shí)鐘上升沿1
串行數據輸出0001時(shí)鐘下降沿
待機狀態(tài)XX1XX

NAND Flash芯片的各種工作模式,如讀、復位、編程等,都是通過(guò)命令字來(lái)進(jìn)行 控制的。部分命令如表2所列。

表2 命令表

 第一周期(Hex)第二周期(Hex)
串行數據輸入80無(wú)
讀模式100無(wú)
讀模式201無(wú)
讀模式350無(wú)
復位FF無(wú)
自動(dòng)編程(真)10無(wú)
自動(dòng)編程(假)11無(wú)
自動(dòng)塊刪除60D0
狀態(tài)讀取170無(wú)
狀態(tài)讀取271無(wú)
ID讀取190無(wú)
ID讀取291無(wú)

串行數據輸入的命令80表示向芯片的IO8、IO7、IO6、IO5、IO4、IO3、IO2、IO1口發(fā)送0x80,此時(shí)除IO8為1外,其余IO口均為低電平。

2.4 時(shí)序分析及驅動(dòng)程序

下面以表2中的讀模式1為例分析該芯片的工作時(shí)序。由圖3可知,CLE信號有效時(shí)通過(guò)IO口向命令寄存器發(fā)送命令00H。此時(shí)NAND Flash處于寫(xiě)狀態(tài),因此WE有鏟,RE無(wú)效。發(fā)送命令后,接著(zhù)發(fā)送要讀的地址,該操作將占用WE的1、2、3、4個(gè)周期。注意,此時(shí)發(fā)送的是地址信息,因此CLE為低,而ALE為高電平。當信息發(fā)送完畢后,不能立刻讀取數據,因為芯片此時(shí)處于BUSY(忙)狀態(tài),需要等待2~20ms。之后,才能開(kāi)始真正的數據讀取。此時(shí)WE為高電平而處于無(wú)效狀態(tài),同時(shí)CE片選信號也始終為低以表明選中該芯片。

這段時(shí)序的偽代碼如下:

Read_func(cmd,addr)

{

RE=1;

ALE=0;

CLE=1;

WE=0;

CE=0;

Send_cmd(cmd);//發(fā)送命令,由參數決定,這里為00

WE=1; //上升沿取走命令

CE=1;

CLE=0; //發(fā)送命令結束

ALE=1; //開(kāi)始發(fā)送地址

For(i=0;i4;i++)

{

WE=0;

CE=0;

Send_add(addr);//發(fā)送地址

WE=1; /上升沿取走地址

CE=1;

}

//所有數據發(fā)送結束,等待讀取數據

CE=0;

WE=1;

ALE=0;

Delay(2ms);

While(BUSY)

Wait;//如果還忙則繼續等待

Read_data(buf);//開(kāi)始讀取數據

}

3 Linux系統對NAND Flash的支持

Linux操作系統雖然已經(jīng)支持NAND Flash,但要使用NAND Flash設備,還必須先對內核進(jìn)行設置方法如下:

(1)在/usr/src/(內核路徑名)目錄中輸入make menuconfig命令,再打開(kāi)主菜單,進(jìn)入Memory Technology Devices(MTD)選項,選中MTD支持。

(2)進(jìn)入NAND Flash Device Drivers選項,NAND設備進(jìn)行配置。不過(guò)此時(shí)對NAND的支持僅限于Linux內核自帶的驅勸程序,沒(méi)有包含本文介紹的Toshiba芯片,為此需要對Linux內核進(jìn)行修改,方法如下:

(1)修改內核代碼的drivers.in文件,添加下面一行:

dep-tristate 'Toshiba NAND Device Support'CONFIG-MTD-TOSHIBA $CONFIG-MTD

其中CONFIG-MTD-TOSHIBA是該設備的名稱(chēng),將在Makefile文件中用到。

$CONFIG-MTD的意思是只有選有$CONFIG-MTD時(shí),該菜單才會(huì )出現,即依賴(lài)于$CONFIG-MTD選項。宋,Toshiba的NAND設備將被加入Linux系統內核菜單中。

(2)修改相應的Makefile文件,以便編譯內核時(shí)能加入該設備的驅動(dòng)程序。

obj-$(CONFIG-MTD-TOSHIBA)+=toshiba.o

此行語(yǔ)句的意思是如果選擇了該設備,編譯內核時(shí)加入toshiba.o(假設驅動(dòng)程序是toshiba.o),反之不編譯進(jìn)內核。



關(guān)鍵詞: Flash NAND 02A 1FT

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>