在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      關(guān) 閉

      新聞中心

      EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 大容量NAND Flash TC58DVG02A1FT00在嵌入式系統(tǒng)中

      大容量NAND Flash TC58DVG02A1FT00在嵌入式系統(tǒng)中

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

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

      1 NAND和NOR flash

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

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

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

      *NAND的寫入速度比NOR快很多。

      *NAND的擦除速度遠(yuǎn)比NOR快。

      *NAND的擦除單元更小,相應(yīng)的擦除電路也更加簡單。

      *NAND閃存中每個塊的最大擦寫次數(shù)量否萬次,而NOR的擦寫次數(shù)是十萬次。

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

      2 大容量存儲器TC58DCG00

      2.1 引腳排列和功能

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

      I/O1~I/O8:8個I/O口;

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

      WE:寫使能信號,低電平有效;

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

      CLE:命令使能信號;

      ALE:地址使能信號;

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

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

      2.2 與ARM處理器的連接

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

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

      2.3 具體操作

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

      表1 邏輯表

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

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

      表2 命令表

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

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

      2.4 時序分析及驅(qū)動程序

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

      這段時序的偽代碼如下:

      Read_func(cmd,addr)

      {

      RE=1;

      ALE=0;

      CLE=1;

      WE=0;

      CE=0;

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

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

      CE=1;

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

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

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

      {

      WE=0;

      CE=0;

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

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

      CE=1;

      }

      //所有數(shù)據(jù)發(fā)送結(jié)束,等待讀取數(shù)據(jù)

      CE=0;

      WE=1;

      ALE=0;

      Delay(2ms);

      While(BUSY)

      Wait;//如果還忙則繼續(xù)等待

      Read_data(buf);//開始讀取數(shù)據(jù)

      }

      3 Linux系統(tǒng)對NAND Flash的支持

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

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

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

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

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

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

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

      (2)修改相應(yīng)的Makefile文件,以便編譯內(nèi)核時能加入該設(shè)備的驅(qū)動程序。

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

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



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

      評論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉