999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

51內(nèi)核單片機(jī)管理NAND FLASH的方法

2014-04-12 00:00:00石險(xiǎn)峰翁斌
物聯(lián)網(wǎng)技術(shù) 2014年1期

摘 要:闡述了NAND FLASH的工作原理和訪問(wèn)方式,提出了一種基于51內(nèi)核單片機(jī)存儲(chǔ)、讀取NAND FLASH的實(shí)現(xiàn)方法,給出了K9F2G08UXA與單片機(jī)的接口電路,同時(shí)給出了對(duì)K9F2GO8UXA芯片進(jìn)行讀操作、頁(yè)編程和塊擦除等軟件操作的響應(yīng)例程。

關(guān)鍵詞:51內(nèi)核;NAND FLASH;塊擦除;頁(yè)編程

中圖分類號(hào):TP39 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)01-0063-03

0 引 言

閃速存儲(chǔ)器(Flash Memory) 是一種不揮發(fā)性Non-Volatile內(nèi)存,在沒(méi)有電流供應(yīng)的條件下也能夠長(zhǎng)久地保持?jǐn)?shù)據(jù),其存儲(chǔ)特性相當(dāng)于硬盤(pán),同時(shí)其還具有低功耗、密度高、體積小等優(yōu)點(diǎn),這些特性正使得閃存成為各類便攜型數(shù)字設(shè)備的存儲(chǔ)介質(zhì)的基礎(chǔ),而超大容量的閃存芯片更是受到了廣大開(kāi)發(fā)者的青睞。NOR和NAND是現(xiàn)在市場(chǎng)上兩種主要的非易失閃存技術(shù),NOR FLASH帶有SRAM接口,有足夠的地址引腳來(lái)尋址,可以很容易地存取其內(nèi)部的每一個(gè)字節(jié);NAND器件使用復(fù)雜的I/O口來(lái)串行地存取數(shù)據(jù),各個(gè)產(chǎn)品或廠商的方法可能各不相同,8個(gè)引腳用來(lái)傳送控制、地址和數(shù)據(jù)信息。51內(nèi)核的單片機(jī)因受尋址能力的限制,在進(jìn)行大容量存儲(chǔ)應(yīng)用時(shí),都會(huì)選擇NAND FLASH來(lái)作為存儲(chǔ)器件。

1 K9F2G08UXA Flash Memory簡(jiǎn)介

K9F2G08UXA是韓國(guó)三星公司生產(chǎn)的256 M×8 b,并帶有8 M×8位后備區(qū)域的NAND(“與非”)閃速存儲(chǔ)器。NAND FLASH結(jié)構(gòu)具有快速重寫(xiě)、高存儲(chǔ)容量、回寫(xiě)速度快以及芯片面積小等特點(diǎn),因此是高數(shù)據(jù)存儲(chǔ)密度的理想解決方案。NAND FLASH型的單元排列是串行的,存儲(chǔ)單元被分成頁(yè),由頁(yè)組成塊。根據(jù)不同容量,塊和頁(yè)的大小有所不同,而組成塊的頁(yè)的數(shù)量也會(huì)不同。應(yīng)用NAND的困難在于FLASH的管理和需要特殊的系統(tǒng)接口。K9F2G08UXA就是具有這些特點(diǎn)的FLASH Memory,它的典型編程時(shí)間為200 μs/頁(yè)(2 048 B /頁(yè)),擦除時(shí)間為1.5 ms/塊(64頁(yè)/塊=128 KB/塊)。頁(yè)順序讀取時(shí)間最小為25 ns,隨機(jī)讀取時(shí)間最小為25 μs;其地址復(fù)用8個(gè)I/O引腳,作為地址輸入、輸出口和命令輸入;片內(nèi)的寫(xiě)控制器自動(dòng)完成編程/擦除功能,包括所需的脈沖循環(huán)重復(fù)、內(nèi)部校驗(yàn)及數(shù)據(jù)的加注。

2 硬件原理

2.1 K9F2G08UXA的結(jié)構(gòu)特點(diǎn)

K9F2G08UXA是由131 072行×2 112列組成的2112Mb存儲(chǔ)器,其中64 Mb位的后備區(qū)域的列地址范圍是2 048~2 111。2 112 B的數(shù)據(jù)寄存器連接著存儲(chǔ)器單元陣列,在頁(yè)讀和頁(yè)編程期間提供了I/O緩沖和內(nèi)存之間的傳送。存儲(chǔ)器陣列由以串行方式連接成NAND結(jié)構(gòu)的32個(gè)單元構(gòu)成,每塊中有1 081 344個(gè)這樣的結(jié)構(gòu)。這些單元均駐留在不同的頁(yè)上。塊是由2個(gè)NAND結(jié)構(gòu)形成的64頁(yè)組成,共有2 048個(gè)分立的可擦寫(xiě)的128 KB塊。

閃存芯片的主要命令操作有讀、編程和擦除,其中讀、編程操作以頁(yè)為基礎(chǔ),擦除必須以塊為單位進(jìn)行,且不允許逐位擦除。FLASH操作大都需要2個(gè)總線周期,如塊擦除需要2個(gè)總線周期,一個(gè)周期是擦除建立,另一個(gè)周期是在塊地址裝入后執(zhí)行擦除命令。256 MB的物理空間需要29位地址線,因此需要5個(gè)周期的字節(jié)尋址,其順序是:低位列地址、高位列地址、低位行地址、中位行地址、高位行地址。 頁(yè)讀和頁(yè)編程在命令輸入后都跟著同樣的5個(gè)地址周期。由于擦除是以塊(1塊有64頁(yè))為單位的,所以在塊擦除操作中僅需要3個(gè)行地址周期。以上的操作都是通過(guò)寫(xiě)特殊的命令到命令寄存器中。特殊命令集定義如表l所列。

K9F2G08UXA芯片內(nèi)有1個(gè)狀態(tài)寄存器,命令70 h就是讀這個(gè)狀態(tài)寄存器的。通過(guò)它可以查詢編程或擦除操作是否完成,以及查看這些操作完成的正確與否。在寫(xiě)70 h命令到命令寄存器中后,且在/CE或/RE的下降沿時(shí),狀態(tài)寄存器的內(nèi)容就可以在1個(gè)讀周期內(nèi)輸出到I/O引腳上。讀狀態(tài)寄存器的定義如表2所列。

表1 特殊命令集

功能第一周期第二周期在忙態(tài)時(shí)可接受命令

讀00 h30 h

讀后備區(qū)域00 h35 h

讀 ID90 h-

復(fù)位FF h-ο

頁(yè)編程80 h10 h

塊擦除60 hD0 h

讀狀態(tài)70 h ο

表2 讀狀態(tài)寄存器定義

I/O狀態(tài)定義

I/O.0編程/擦除0:編程/擦除成功

1:編程/擦除錯(cuò)誤

I/O.1預(yù)留0

I/O.2 0

I/O.3 0

I/O.4 0

I/O.5 0

I/O.6芯片操作0:忙;1:準(zhǔn)備好

I/O.7寫(xiě)保護(hù)0:保護(hù);1:不保護(hù)

2.2 K9F2G08UXA各引腳功能

K9F2G08UXA的各引腳功能如下:

I/O0~I(xiàn)/O7:用于輸入命令、地址和數(shù)據(jù)。在讀操作時(shí)輸出數(shù)據(jù),當(dāng)未選中芯片或輸出禁止時(shí)浮空為高阻。

CLE:地址鎖存使能。為高時(shí),命令在/WE的上升沿通過(guò)I/O口鎖存在命令寄存器中。

ALE:地址鎖存使能。當(dāng)為高時(shí),地址在/WE的上升沿被鎖存在地址寄存器中 。

/CE:芯片使能。在讀操作期間,/CE為高時(shí)芯片返回standby模式。但是當(dāng)在編程或擦除時(shí)處于忙狀態(tài)時(shí),則不理睬/CE,芯片也不返回standby模式。

/RE:讀使能,低電平有效。有效時(shí)把數(shù)據(jù)驅(qū)動(dòng)到I/O總線上,在/RE的下降沿后tREA處數(shù)據(jù)有效,并使內(nèi)部列地址計(jì)數(shù)器加1 。

/WE:寫(xiě)使能,低電平有效。命令、地址和數(shù)據(jù)均是在/WE上升沿鎖存。

/WP:寫(xiě)保護(hù),低電平有效。在上電時(shí),它提供寫(xiě)擦除保護(hù),有效時(shí),內(nèi)部高電壓產(chǎn)生器被復(fù)位。

R/B:準(zhǔn)備好/忙輸出,反映芯片的操作狀態(tài)。為低時(shí),表示正在進(jìn)行編程、擦除或隨機(jī)讀操作,完成后返回高狀態(tài)。若是開(kāi)漏輸出,當(dāng)未選中芯片或輸出禁止時(shí)不浮空為高阻態(tài)。

2.3 K9F2G08UXA與單片機(jī)的接口電路

由于K9F2GO8UXA的I/O引腳為8位,因此可以很方便地選取51系列8位單片機(jī)。因51系列8位單片機(jī)的工作電壓為5 V,圖1中用VCC表示,K9F2GO8UXA閃存芯片的工作電壓為3.3 V,所以單片機(jī)與閃存間不能直接相連,中間必須增加電平轉(zhuǎn)換芯片進(jìn)行隔離,如圖1中74LVC4245。將K9F2GO8UXA的8位I/O引腳通過(guò)電平轉(zhuǎn)換芯片與單片機(jī)的數(shù)據(jù)總線端口D0~D8位相連。K9F2GO8UXA的讀使能(/RE)、寫(xiě)使能(/WE)則分別通過(guò)電平轉(zhuǎn)換芯片與單片機(jī)的P3.6(/RD)和P3.5(/WE)相連, 其他控制信號(hào)如CLE、/CE、R/B等則通過(guò)電平轉(zhuǎn)換芯片與單片機(jī)的P1口相連,并通過(guò)軟件編程來(lái)完成對(duì)這些信號(hào)的控制。閃速存儲(chǔ)芯片與單片機(jī)的連接電路如圖1所示。

3 軟件編程

3.1 讀操作

閃速存儲(chǔ)器上電后就處于讀存儲(chǔ)單元狀態(tài),K9F2GO8UXA芯片默認(rèn)為讀模式,也可以直接寫(xiě)00H到命令寄存器中完成該存儲(chǔ)單元操作。讀操作有3種類型:隨機(jī)讀、串行頁(yè)讀和連續(xù)行讀。當(dāng)改變頁(yè)地址時(shí),使能隨機(jī)讀模式。被選中的頁(yè)在l0 μs內(nèi)就傳送到數(shù)據(jù)寄存器中,系統(tǒng)控制器可以通過(guò)R/B引腳監(jiān)測(cè)數(shù)據(jù)傳送的完成與否。一旦頁(yè)中的數(shù)據(jù)被裝入到寄存器中,數(shù)據(jù)就可以在60 ns的周期內(nèi),在連續(xù)的/RE脈沖讀出。讀操作流程如圖2所示。

3.2 頁(yè)編程

編程操作以頁(yè)為單位,但它允許在1個(gè)頁(yè)編程周期內(nèi)進(jìn)行1個(gè)字節(jié)或連續(xù)的直到2 112字節(jié)的多分頁(yè)編程。在沒(méi)有阻礙擦除操作的同一頁(yè)內(nèi),連續(xù)分頁(yè)編程操作的個(gè)數(shù)主陣列不能超過(guò) 2個(gè),后備陣列不能超過(guò)3個(gè)。數(shù)據(jù)裝入階段開(kāi)始于數(shù)據(jù)輸入命令(80 h),接著是4個(gè)周期的地址輸入和數(shù)據(jù)裝入,非編程字節(jié)不需要裝入。一旦編程操作開(kāi)始,且/RE和/WE為低時(shí),就可以讀狀態(tài)寄存器中的狀態(tài)位(I/O6)。系統(tǒng)控制器也可以通過(guò)R/B引腳輸出來(lái)監(jiān)測(cè)編程操作周期的完成與否。在編程過(guò)程中只有讀狀態(tài)命令和復(fù)位命令有效。頁(yè)編程操作完成后,可以查看狀態(tài)位(I/O0),為“0”表明編程成功;為“1”則編程出錯(cuò)。頁(yè)編程流程如圖3所示。

3.3 塊擦除

任何FLASH器件的寫(xiě)入操作都只能在空的或已擦除的單元內(nèi)進(jìn)行。所以大多數(shù)情況下, 當(dāng)新數(shù)據(jù)寫(xiě)入一個(gè)扇區(qū)時(shí),F(xiàn)LASH都必須進(jìn)行擦除。擦除操作以塊為單位,流程如下:首先啟動(dòng)塊擦除建立命令(60 h);接著裝入需要3個(gè)周期完成的塊地址,其中只有A18~A28地址有效,而忽略A0~A17地址;最后是擦除確認(rèn)命令(D0h),至此完成內(nèi)部擦除過(guò)程。在輸入擦除確認(rèn)命令后的/WE的上升沿,內(nèi)部寫(xiě)控制器進(jìn)行擦除操作和擦除校驗(yàn)。當(dāng)擦除操作完成后可以校驗(yàn)寫(xiě)狀態(tài)位(I/O0)。塊擦除操作流程如圖4所示。

圖3 頁(yè)編程流程圖 圖4 塊擦除流程圖

3.4 程序?qū)嵗?/p>

下面的程序是用Keil C51編寫(xiě)的讀操作程序。其他操作如塊擦除、頁(yè)編程均可參照文中介紹的流程圖進(jìn)行編程。但應(yīng)注意根據(jù)閃速存儲(chǔ)的時(shí)間參數(shù)來(lái)調(diào)整這些操作的時(shí)間。

#include

#include

#include

#include

#include

#include

#include

#define FLASH_BLOCK_ERASE_1ST 0x60

#define FLASH_BLOCK_ERASE_2ND 0xD0

unsigned char bdata outregister_2;

sbit flash_cle =outregister_2^5;

sbit flash_ale =outregister_2^6;

sbit flash_wp =outregister_2^7;

void flash_read_commond(void); //FLASH進(jìn)入讀模式(輸入指令)

void flash_read_address(void); //FLASH進(jìn)入讀模式(輸入地址)

void flash_write_commond(void); //FLASH進(jìn)入寫(xiě)模式(輸入指令)

void flash_write_address(void); //FLASH進(jìn)入寫(xiě)模式(輸入地址)

void flash_data_in(void); //FLASH進(jìn)入數(shù)據(jù)輸入模式

void flash_data_out(void); //FLASH進(jìn)入數(shù)據(jù)輸出模式

void flash_inefficacy(void); //FLASH進(jìn)入寫(xiě)保護(hù)狀態(tài)

void flash_write_data_in(unsigned char data_in); //向FLASH中寫(xiě)入數(shù)據(jù)

unsigned char flash_read_data_out(void); //從FLASH中讀出數(shù)據(jù)

void flash_setup_address_5cycle(void); //設(shè)置5周期地址

void flash_setup_block_address_3cycle(void); //設(shè)置3周期地址(塊地址)

void flash_block_erase_handle(unsigned int temp_int); //塊擦除操作

// FLASH塊擦除子函數(shù)

// 入口參數(shù):unsigned int temp_int 塊地址

void flash_block_erase_handle(unsigned int temp_int){

flash_page_address=0;

flash_block_address=temp_int; //要擦除塊的地址

flash_write_commond(); //FLASH進(jìn)入寫(xiě)模式(輸入指令)

flash_write_data_in(FLASH_BLOCK_ERASE_1ST); //輸入0x60h

flash_write_address(); //FLASH進(jìn)入寫(xiě)模式(輸入地址)

flash_setup_block_address_3cycle(); //輸入要擦除塊的地址

flash_write_commond(); //FLASH進(jìn)入寫(xiě)模式(輸入指令)

flash_write_data_in(FLASH_BLOCK_ERASE_2ND); //輸入0xD0h

while(!RBOUT); //等待擦除完成

flash_inefficacy(); //FLASH進(jìn)入寫(xiě)保護(hù)狀態(tài)

}

4 結(jié) 語(yǔ)

本文介紹一種51內(nèi)核管理NAND FLASH的方法,并給出基于該方法硬件實(shí)現(xiàn)和C語(yǔ)言源代碼,該硬件電路和軟件代碼已經(jīng)在筆者參與研制的總線式消防電話系統(tǒng)中得到成功應(yīng)用,實(shí)現(xiàn)了對(duì)語(yǔ)音信息的長(zhǎng)時(shí)間存儲(chǔ)功能,工作穩(wěn)定、可靠。

參 考 文 獻(xiàn)

[l] SAMSUNG Electronics Corp. K9F2GO8UXA flash memory [R]. Revision No. 1.3. Korea: SAMSUNG, 2007.

[2] NXP Semiconductors Corp. P89V51RB2/RC2/RD2 Product data [R]. Revision No. 0.3. Germany: NXP, 2004.

[3] 馬忠梅,籍順心,張凱,等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1999.

[4] GB16806-2006:消防聯(lián)動(dòng)系統(tǒng)[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2007.

[5] 劉芳,趙振華.NAND FLASH芯片K9F1208在uPSD3234A上的應(yīng)用[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2007(3): 43-46.

主站蜘蛛池模板: 伊人久久综在合线亚洲2019| 亚洲第一页在线观看| 亚洲 欧美 日韩综合一区| 97精品久久久大香线焦| 亚洲天堂首页| 亚洲无码37.| 午夜性刺激在线观看免费| 欧美成人午夜视频免看| аⅴ资源中文在线天堂| 国产亚洲男人的天堂在线观看| 亚洲精品成人片在线观看| 日韩精品成人在线| 99视频国产精品| 欧美成一级| 97超爽成人免费视频在线播放| 青青青国产视频| 国产精品片在线观看手机版| 亚洲不卡影院| 久久综合婷婷| 日韩人妻精品一区| 久久综合色视频| 国产欧美精品午夜在线播放| 少妇精品网站| 好吊色妇女免费视频免费| 婷婷99视频精品全部在线观看| 内射人妻无码色AV天堂| 国产精品手机视频一区二区| 青青网在线国产| 欧美亚洲香蕉| 国产成人综合亚洲网址| 国产中文在线亚洲精品官网| 亚洲男女天堂| 亚洲男人天堂2018| 国产精品亚洲欧美日韩久久| 99久久精品免费看国产电影| 四虎精品黑人视频| 国产精品吹潮在线观看中文| 第九色区aⅴ天堂久久香| 日韩二区三区| 精品黑人一区二区三区| 亚洲AV无码不卡无码| 日韩精品欧美国产在线| 色老二精品视频在线观看| 四虎永久免费地址| 在线国产91| 亚洲精品无码久久久久苍井空| 亚洲日韩AV无码一区二区三区人| 福利国产微拍广场一区视频在线| 91国内视频在线观看| 国产一二三区视频| 国产一级毛片yw| 一级毛片在线免费视频| 欧美激情一区二区三区成人| 亚洲一级毛片免费观看| 精品人妻系列无码专区久久| 久久性妇女精品免费| 亚洲精品麻豆| 91最新精品视频发布页| 欧美日韩午夜| 青草午夜精品视频在线观看| 日韩成人免费网站| 国产主播喷水| 国产精品亚洲专区一区| 国产欧美又粗又猛又爽老| 久久这里只有精品国产99| 日韩国产高清无码| 亚洲清纯自偷自拍另类专区| 1024国产在线| a级高清毛片| 久久香蕉国产线| 一级毛片免费不卡在线| 中国黄色一级视频| 国产在线专区| 一级毛片不卡片免费观看| 国产成人av一区二区三区| 欧美成a人片在线观看| 啪啪永久免费av| 热久久这里是精品6免费观看| 午夜精品福利影院| 日韩国产一区二区三区无码| 成人毛片免费观看| 成人午夜视频免费看欧美|