當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]以Samsung NAND Flash器件K9F1208為例,對比NAND Flash和NOR Flash的異同;介紹大容量NAND Flash在uPSD3234A增強型單片機系統(tǒng)中的應(yīng)用,完成了硬件接口設(shè)計和軟件設(shè)計,并給出硬件連接圖和部分程序代碼。

摘要 以Samsung NAND Flash器件K9F1208為例,對比NAND Flash和NOR Flash的異同;介紹大容量NAND Flash在uPSD3234A增強型單片機系統(tǒng)中的應(yīng)用,完成了硬件接口設(shè)計和軟件設(shè)計,并給出硬件連接圖和部分程序代碼。
關(guān)鍵詞 NAND Flash uPSD3234A單片機嵌入式系統(tǒng)


1 NAND Flash和NOR Flash
   
閃存(Flash Memory)由于其具有非易失性、電可擦除性、可重復(fù)編程以及高密度、低功耗等特點,被廣泛地應(yīng)用于手機、MP3、數(shù)碼相機、筆記本電腦等數(shù)據(jù)存儲設(shè)備中。NAND Flash和NOR Flash是目前市場上兩種主要的非易失閃存芯片。與NOR F1ash相比,NAND Flash在容量、功耗、使用壽命等方面的優(yōu)勢使其成為高數(shù)據(jù)存儲密度的理想解決方案。NOR Flash的傳輸效率很高,但寫入和擦除速度較低;而NAND Flash以容量大、寫速度快、芯片面積小、單元密度高、擦除速度快、成本低等特點,在非易失性類存儲設(shè)備中顯現(xiàn)出強勁的市場競爭力。
    結(jié)構(gòu):NOR Flash為并行,NAND Flash為串行。
    總線:NOR Flash為分離的地址線和數(shù)據(jù)線,而NANDFlash為復(fù)用的。
    尺寸:典型的NAND Flash尺寸為NOR Flash尺寸的1/8。
    壞塊:NAND器件中的壞塊是隨機分布的,需要對介質(zhì)進行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標記為不可用。
    位交換:NAND Flash中發(fā)生的次數(shù)要比NOR Flash多,建議使用NAND閃存時,同時使用EDC/ECC算法。
    使用方法:NOR Flash是可在芯片內(nèi)執(zhí)行(XIP,eXecute In Place),應(yīng)用程序可以直接在Flash閃存內(nèi)運行,不必再把代碼讀到系統(tǒng)RAM中;而NAND Flash則需I/O接口,因此使用時需要寫入驅(qū)動程序。
    通過以上的分析和比較,NAND Flash更適合于大容量數(shù)據(jù)存儲的嵌入式系統(tǒng)。本設(shè)計選用Samsung公司生產(chǎn)的NAND Flash存儲器芯片K9F1208作為存儲介質(zhì),并應(yīng)用在基于uPSD3234A增強型8051單片機的嵌入式系統(tǒng)中。


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

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

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

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

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

5.2 軟件部分
   
本設(shè)計的驅(qū)動程序包括基本的操作函數(shù)和Flash操作API函數(shù)?;镜牟僮骱瘮?shù)包括輸入命令值、輸入地址值、輸入數(shù)據(jù)值、讀取數(shù)據(jù)值和讀取狀態(tài)等函數(shù)。由于K9F1208是無地址的,故先定義一個外部存儲器的空地址來對它進行空寫和空讀。定義的語句為:


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


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

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

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

    程序說明:只是讀取P4_6的狀態(tài),以判斷K9F1208是否“忙”。如果P4_6為高電平,則表示K9F1208不忙,返回高電平;如果P4_6為低電平,則表示K9Fl208“忙”,返回高電平。
    為了臺理地操作K9F1208,還添加了不選中K9F1208的函數(shù),以便在頁讀取和頁編程操作后,使K9F1208不工作。程序只是讓P4_5、P4_4、P4_3為低電平,從而使得K9F1208的片選信號、命令允許信號、地址允許信號無效。
宏定義語句如下:
    #define flash_inactive(){P4_5=0;P4_4=0;P4_3=0;}
    Flash操作API函數(shù)包括復(fù)位K9F1208、驗證K9F1208的ID號、擦除K9F1208某一扇區(qū)、讀取K9F1208某一扇區(qū)數(shù)據(jù)和寫入K9F1208某一扇區(qū)數(shù)據(jù)等函數(shù)。因為篇幅關(guān)系,只介紹頁讀取和頁編程函數(shù)。
    圖6是讀取K9F1208某一扇區(qū)或某一頁的數(shù)據(jù)流程圖。首先,開始向K9F1208發(fā)送頁讀取命令字Ox00,使得K9F1208的命令寄存器接收到命令字;然后取得要讀取扇區(qū)的地址,連續(xù)向K9F1208發(fā)送4個地址數(shù)據(jù),發(fā)送完后讀取K9F1208的R/B引腳的狀態(tài),直到K9F1208不忙(表示地址數(shù)據(jù)已接收完畢);K9F1208開始讀取該地址所指的扇區(qū),并向數(shù)據(jù)總線發(fā)送一個扇區(qū)的數(shù)據(jù),此時讀取K9F1208的數(shù)據(jù)總線,直到整頁結(jié)束。

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

結(jié)語
    本文介紹了Samsung公司K9F1208芯片特點,并在此基礎(chǔ)上設(shè)計了基于uPSD3234A的驅(qū)動設(shè)計。該方法對其他相關(guān)SoC中實現(xiàn)NAND Flash的控制方法設(shè)計有直接的參考意義,可廣泛應(yīng)用于需要大存儲容量的低端設(shè)備中。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉