国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

NAND Flash芯片K9F1208在uPSD3234A上的應(yīng)用

發(fā)布時(shí)間:2010-8-1 13:02    發(fā)布者:lavida
關(guān)鍵詞: Flash , K9F1208 , NAND , uPSD3234A
1 NAND FlaSh和NOR Flash

閃存(FLash Memory)由于其具有非易失性、電可擦除性、可重復(fù)編程以及高密度、低功耗等特點(diǎn),被廣泛地應(yīng)用于手機(jī)、MP3、數(shù)碼相機(jī)、筆記本電腦等數(shù)據(jù)存儲(chǔ)設(shè)備中。NAND Flash和NOR Flash是目前市場(chǎng)上兩種主要的非易失閃存芯片。與NOR Flash相比,NAND Flash在容量、功耗、使用壽命等方面的優(yōu)勢(shì)使其成為高數(shù)據(jù)存儲(chǔ)密度的理想解決方案。NOR Flash的傳輸效率很高,但寫入和擦除速度較低;而NAND Flash以容量大、寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點(diǎn),在非易失性類存儲(chǔ)設(shè)備中顯現(xiàn)出強(qiáng)勁的市場(chǎng)競(jìng)爭(zhēng)力。

結(jié)構(gòu):NOR Flash為并行,NAND Flash為串行。  
總線:NOR Flash為分離的地址線和數(shù)據(jù)線,而NANDFlash為復(fù)用的。  
尺寸:典型的NAND Flash尺寸為NOR Flash尺寸的1/8。  
壞塊:NAND器件中的壞塊是隨機(jī)分布的,需要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。  
位交換:NAND Flash中發(fā)生的次數(shù)要比NOR Flash多,建議使用NAND閃存時(shí),同時(shí)使用EDC/ECC算法。  
使用方法:NOR Flash是可在芯片內(nèi)執(zhí)行(XIP,eXecute In Place),應(yīng)用程序可以直接在FIash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中;而NAND Flash則需I/O接口,因此使用時(shí)需要寫入驅(qū)動(dòng)程序。  

通過以上的分析和比較,NAND Flash更適合于大容量數(shù)據(jù)存儲(chǔ)的嵌入式系統(tǒng)。本設(shè)計(jì)選用Samsung公司生產(chǎn)的NAND Flash存儲(chǔ)器芯片K9F1208作為存儲(chǔ)介質(zhì),并應(yīng)用在基于uPSD3234A增強(qiáng)型8051單片機(jī)的嵌入式系統(tǒng)中。  

2 uPSD3234A簡(jiǎn)介  

uPSD3234A是由意法半導(dǎo)體公司生產(chǎn)的一款基于8052內(nèi)核的增強(qiáng)型Flash單片機(jī),其結(jié)構(gòu)如圖1所示。該單片機(jī)包含1個(gè)帶8032微控制器的Flash PSD、2塊Flash存儲(chǔ)器、SRAM、通用I/O口可編程邏輯、管理監(jiān)控功能,并可實(shí)現(xiàn)USB、I2C、ADCDACPWM功能。其中,片內(nèi)8032微控制器,帶有2個(gè)標(biāo)準(zhǔn)異步通信口、3個(gè)16位定時(shí)/計(jì)數(shù)器、1個(gè)外部中斷以及JTAG ISP接口(用于在系統(tǒng)編程),一般應(yīng)用于手持設(shè)備、家用電器等領(lǐng)域中。  


  
3 K9F1208介紹  

K9F1208是Samsung公司生產(chǎn)的512 Mb(64M×8位)NAND Flash存儲(chǔ)器。該存儲(chǔ)器的工作電壓為2.7~3.6 V,內(nèi)部存儲(chǔ)結(jié)構(gòu)為528字節(jié)×32頁×4 096塊,頁大小為528字節(jié),塊大小為(16 KB+512字節(jié));可實(shí)現(xiàn)程序自動(dòng)擦寫、頁程序、塊擦除、智能的讀/寫和擦除操作,一次可以讀/寫或者擦除4頁或者塊的內(nèi)容,內(nèi)部有命令寄存器。如圖2所示,該器件按功能可以劃分為:存儲(chǔ)陣列、輸入/輸出緩沖、命令寄存器、地址譯碼寄存器和控制邏輯產(chǎn)生。其中,命令寄存器用來確定外部設(shè)備對(duì)存儲(chǔ)器進(jìn)行操作的類型;地址譯碼寄存器用于保存被訪問的地址并產(chǎn)生相應(yīng)的譯碼選通信號(hào)。主設(shè)備通過8位I/O端口分時(shí)復(fù)用訪問器件命令、地址和數(shù)據(jù)寄存器,完成對(duì)芯片內(nèi)存儲(chǔ)器的訪問。  


  
4 K9F1208讀/寫和擦除操作的實(shí)現(xiàn)  

對(duì)于K9F1208的操作主要有頁讀取和頁編程操作。圖3是NAND Flash的標(biāo)準(zhǔn)頁讀取時(shí)序圖。具體的頁讀取操作如下:發(fā)命令階段,在片選信號(hào)CE有效的情況下,首先命令允許信號(hào)CLE有效,此時(shí)寫入信號(hào)WE有效,芯片準(zhǔn)備好信號(hào)R/B置高,表示準(zhǔn)備好;同時(shí)向I/O口發(fā)送讀操作命令(0x00或0x01),表示是讀操作。發(fā)地址階段,此時(shí)片選有效,地址允許信號(hào)ALE有效,寫入信號(hào)WE保持有效,連續(xù)發(fā)送4個(gè)地址字;K9F1208的地址寄存器接收到地址值后,R/B信號(hào)將維持“忙”一段時(shí)間,此后R/B變?yōu)闇?zhǔn)備好狀態(tài)。最后是數(shù)據(jù)輸出階段,每次讀有效信號(hào)置低有效時(shí),將會(huì)輸出一組數(shù)據(jù)。如此往復(fù)直到所有數(shù)據(jù)輸出完畢。  


  
圖4是NAND FLash的標(biāo)準(zhǔn)頁編程時(shí)序圖。具體的頁編程操作如下:發(fā)命令階段,向I/O口發(fā)送頁編程操作第一個(gè)命令字(0x80),表示是頁編程操作。發(fā)地址階段,連續(xù)發(fā)送4個(gè)地址字,K9F1208的地址寄存器接收到地址值后,等待接收數(shù)據(jù);當(dāng)數(shù)據(jù)總線發(fā)送數(shù)據(jù)后,K9F1208連續(xù)接收數(shù)據(jù),直到接收到頁編程的第二個(gè)命令字(0x10),即結(jié)束等待接收數(shù)據(jù)的狀態(tài);R/B信號(hào)將維持“忙”一段時(shí)間,此后R/B變?yōu)闇?zhǔn)備好狀態(tài)。最后總線上發(fā)出讀狀態(tài)命令字(0x70),則K9F1208的命令寄存器接收并響應(yīng)該命令,向I/O口發(fā)送表示操作成功的狀態(tài)數(shù)據(jù)(0x00)或表示操作失敗的狀態(tài)數(shù)據(jù)(0X01)。  


  
5 uPSD3234A與K9F1208的連接  

5.1 硬件部分  

uPSD3234A的數(shù)據(jù)總線DATA0~7直接連接到K9F1208的數(shù)據(jù)線上。K9F1208的讀/寫信號(hào)是直接通過uPSD3234A的讀/寫信號(hào)驅(qū)動(dòng)的,K9F1208的ALE地址允許信號(hào)、CLE命令允許信號(hào)、片選使能信號(hào)分別由uPSD3234A的P43、P44、P45來控制,而K9F1208的R/B狀態(tài)輸出信號(hào)由uPSD3234A的P46來讀取。硬件連接如圖5所示。根據(jù)該硬件連接的情況,在驅(qū)動(dòng)過程中,可以在uPSD3234A中定義一個(gè)無效地址,通過對(duì)該無效地址進(jìn)行讀寫來控制WR和RD信號(hào)。  


  
5.2 軟件部分  

本設(shè)計(jì)的驅(qū)動(dòng)程序包括基本的操作函數(shù)和Flash操作API函數(shù)。基本的操作函數(shù)包括輸入命令值、輸入地址值、輸入數(shù)據(jù)值、讀取數(shù)據(jù)值和讀取狀態(tài)等函數(shù)。由于K9F1208是無地址的,故先定義一個(gè)外部存儲(chǔ)器的空地址來對(duì)它進(jìn)行空寫和空讀。定義的語句為:  

xdata unsigned char rK9Fl208DATA _at_0x5000000;  

根據(jù)硬件連接圖,基本API函數(shù)的程序?yàn)椋?nbsp; 

(1) 輸入命令值函數(shù)  


  
程序說明:賦予P4_5為0,使得CE信號(hào)成低電平,從而片選K9F1208有效;賦予P4_4為1,使得CLE信號(hào)成高電平,從而使K9F1208的命令允許信號(hào)有效;賦予P4_3為0,使得ALE信號(hào)成低電平,從而使K9F1208的地址允許信號(hào)無效;最后對(duì)rK9F1208DATA進(jìn)行空寫命令字,使得WE信號(hào)成低電平,K9F1208的命令寄存器從數(shù)據(jù)總線接收到命令字,并執(zhí)行相應(yīng)的操作。  

(2) 輸入地址值函數(shù)  


  
程序說明:賦予P4_5為0,使得CE信號(hào)成低電平,從而片選K9F1208有效;賦予P4_4為0,使得CLE信號(hào)成低電平,從而使K9F1208的命令允許信號(hào)無效;賦予P4_3為1,使得ALE信號(hào)成高電平,從而K9F1208的地址允許信號(hào)有效;最后對(duì)rK9F1208DATA進(jìn)行空寫地址字,使得WE的信號(hào)成低電平,K9F1208從數(shù)據(jù)總線接收到地址字,并鎖存到地址鎖存器中。  

(3) 輸入數(shù)據(jù)值函數(shù)  


  
程序說明:賦予P4_5為0,使得CE信號(hào)成低電平,從而片選K9F1208有效;賦予P4_4為0,使得CLE信號(hào)成低電平,從而使K9F1208的命令允許信號(hào)無效;賦予P4_3為0,使得ALE信號(hào)成低電平,從而使K9F1208的地址允許信號(hào)無效;最后對(duì)rK9F1208DATA進(jìn)行空寫數(shù)據(jù),使得WE的信號(hào)成低電平,K9F1208從數(shù)據(jù)總線接收到數(shù)據(jù),并根據(jù)命令寄存器和地址鎖存器來處理接收到的數(shù)據(jù)。  

(4) 讀取數(shù)據(jù)值函數(shù)


  
程序說明:賦予P4_5為0,使得CE信號(hào)成低電平,從而片選K9F1208有效;賦予P4_4為0,使得CLE信號(hào)成低電平,從而K9F1208的命令允許信號(hào)無效;賦予P4_3為0,使得ALE信號(hào)成低電平,從而使K9F1208的地址允許信號(hào)無效;最后對(duì)rK9F1208DATA進(jìn)行空讀數(shù)據(jù),使得RE的信號(hào)成低電平,K9F1208會(huì)根據(jù)命令寄存器和地址鎖存器來向數(shù)據(jù)總線發(fā)送相應(yīng)的數(shù)據(jù)。  

(5) 讀取狀態(tài)函數(shù)  



程序說明:只是讀取P4_6的狀態(tài),以判斷K9F1208是否“忙”。如果P4_6為高電平,則表示K9F1208不忙,返回高電平;如果P4_6為低電平,則表示K9F1208“忙”,返回高電平。  

為了合理地操作K9F1208,還添加了不選中K9F1208的函數(shù),以便在頁讀取和頁編程操作后,使K9F1208不工作。程序只是讓P4_5、P4_4、P4_3為低電平,從而使得K9F1208的片選信號(hào)、命令允許信號(hào)、地址允許信號(hào)無效。宏定義語句如下:  

#define flash_inactive( ){P4_5=0;P4_4=0;P4_3=0;)  

Flash操作API函數(shù)包括復(fù)位K9F1208、驗(yàn)證K9F1208的ID號(hào)、擦除K9F1208某一扇區(qū)、湊取K9F1208某一扇區(qū)數(shù)據(jù)和寫入K9F1208某一扇區(qū)數(shù)據(jù)等函數(shù)。因?yàn)槠P(guān)系,只介紹頁讀取和頁編程函數(shù)。  

圖6是讀取K9F1208某一扇區(qū)或某一頁的數(shù)據(jù)流程圖。首先,開始向K9F1208發(fā)送頁讀取命令字0x00,使得K9F1208的命令寄存器接收到命令字;然后取得要讀取扇區(qū)的地址,連續(xù)向K9F1208發(fā)送4個(gè)地址數(shù)據(jù),發(fā)送完后讀取K9F1208的R/B引腳的狀態(tài),直到K9F1208不忙(表示地址數(shù)據(jù)已接收完畢);K9F1208開始讀取該地址所指的扇區(qū),并向數(shù)據(jù)總線發(fā)送一個(gè)扇區(qū)的數(shù)據(jù),此時(shí)讀取K9F1208的數(shù)據(jù)總線,直到整頁結(jié)束。  


  
圖7是寫入K9F1208某一扇區(qū)或一頁的數(shù)據(jù)流程圖。首先向K9F1208發(fā)送頁編程的命令字0x80,使得K9F1208的命令寄存器接收到命令字;然后取得要寫入扇區(qū)的地址,連續(xù)向K9F1208發(fā)送4個(gè)地址數(shù)據(jù),發(fā)送完后讀取K9F1208的R/B引腳的狀態(tài),直到K9F1208不忙(表示地址數(shù)據(jù)已接收完畢);K9F1208準(zhǔn)備從數(shù)據(jù)總線接收一個(gè)扇區(qū)的數(shù)據(jù),此時(shí)向K9F1208的數(shù)據(jù)總線發(fā)送一個(gè)扇區(qū)的數(shù)據(jù),讓K9F1208接收數(shù)據(jù),并存到相應(yīng)的頁或扇區(qū)中;待發(fā)送的數(shù)據(jù)結(jié)束后,向K9F1208發(fā)送0x10 命令,使得K9F1208結(jié)束頁編程的操作;最后向K9F1208發(fā)送查詢狀態(tài)的命令字0x70,K9F1208接收到命令字后,就會(huì)向數(shù)據(jù)總線發(fā)送一個(gè)字節(jié)的數(shù)據(jù),這時(shí)讀取K9F1208的數(shù)據(jù)總線,若收到字節(jié)0x00,則表示操作成功,若收到字節(jié)0x01,則表示操作失敗。  


  
結(jié) 語  

本文介紹了Samsung公司K9F1208芯片特點(diǎn),并在此基礎(chǔ)上設(shè)計(jì)了基于uPSD3234A的驅(qū)動(dòng)設(shè)計(jì)。該方法對(duì)其他相關(guān)SoC中實(shí)現(xiàn)NAND Flash的控制方法設(shè)計(jì)有直接的參考意義,可廣泛應(yīng)用于需要大存儲(chǔ)容量的低端設(shè)備中。
本文地址:http://www.qingdxww.cn/thread-18290-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 18视频免费网站 | 九九热观看视频 | 日韩网站免费 | 国产99久久精品一区二区 | 亚洲日韩中文字幕在线播放 | 花季传媒v3084下载入口 | 欧美天天视频 | 免费观看动漫的网站 | 无人视频完整免费版视频观看下载 | 四虎永久在线精品884aa下载 | 日韩精品成人免费观看 | 天天操操操操操 | 在线精品播放 | 毛片在线免费观看网站 | 狠狠色依依成人婷婷九月 | 欧美不卡网 | 人人狠狠综合久久亚洲婷婷 | 亚洲伦理中文字幕 | 青青国产成人精品视频 | 久久香蕉国产精品一区二区三 | 亚洲成a人片在线观看中文动漫 | 国产精品亚洲欧美日韩一区在线 | 日本欧美一区二区 | 国内自拍视频在线观看 | 欧美日韩在线视频观看 | 在线亚洲一区二区 | 欧美综合亚洲图片综合区 | 一级片视频播放 | 91精品久久久久久久久中文字幕 | 麻豆久久婷婷综合五月国产 | 成年人视频免费在线观看 | 亚洲ay| 欧美一区亚洲 | 4虎 影视 免费 | 日韩欧美中文字幕出 | 日韩精品专区 | 国产中字 | 菊花综合网 | 欧美日韩国产欧美 | 99在线视频网站 | 国产综合成人亚洲区 |