基于DDR NAND閃存的高性能嵌入式接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了一種最新DDR NAND閃存技術(shù),它突破了傳統(tǒng)NAND Flash 50 MHz的讀寫(xiě)頻率限制,提供更好的讀寫(xiě)速度,以適應(yīng)高清播放和高清監(jiān)控等高存儲(chǔ)要求的應(yīng)用。分析該新型閃存軟硬件接口的設(shè)計(jì)方法。
關(guān)鍵詞:DDR NAND;NAND Flash;1080P;嵌入式接口
隨著Android手持多媒體電子消費(fèi)產(chǎn)品的風(fēng)行,高畫(huà)質(zhì)監(jiān)控系統(tǒng)的普及,1080P全高清支持已成為各種多媒體設(shè)備未來(lái)占領(lǐng)市場(chǎng)的必備武器,目前許多產(chǎn)品對(duì)1080P實(shí)時(shí)解碼已突破并實(shí)現(xiàn),但在1080P實(shí)時(shí)編碼方面還是寥寥無(wú)幾,其中一個(gè)重要因素是帶寬太大,當(dāng)今流行的嵌入式存儲(chǔ)設(shè)備NAND Flash已以達(dá)到要求。在此情況下,存儲(chǔ)器生產(chǎn)商開(kāi)發(fā)出新一代閃存設(shè)備DDR NAND。
1 DDR NAND閃存的特性
與傳統(tǒng)的48腳NAND Flash引腳定義不同,DDRNAND閃存不再分別劃分讀時(shí)鐘(RE#)和寫(xiě)時(shí)鐘(WE#),而是將讀寫(xiě)合為1個(gè)時(shí)鐘,即CLK,而用W/R引腳的高低來(lái)區(qū)分這次是讀操作還是寫(xiě)操作,如圖1所示。數(shù)據(jù)I/O接口也改為正負(fù)雙沿采集的DQ數(shù)據(jù)線。如圖1中DDR NAND閃存部分所示,各引腳功能說(shuō)明如下:
CE1#~CE4#:片選信號(hào),低為使能。一個(gè)48腳的物理NAND Flash片子最多能同時(shí)包含(封裝)4個(gè)NAND Flash。
CLE:命令鎖存使能信號(hào),高為使能。
ALE:地址鎖存使能信號(hào),高為使能
CLK:時(shí)鐘信號(hào)。
W/R#:區(qū)分讀寫(xiě)操作信號(hào),高為寫(xiě),低為讀。
DQ0~DQ7:數(shù)據(jù)/地址/命令復(fù)用數(shù)據(jù)線。
R/B1#~R/B4#:NAND狀態(tài)信號(hào)線。
VCC,VCCQ:接電源。
VSS,VSSQ:接地。
R:無(wú)定義。
[!--empirenews.page--]
2 對(duì)DDR NAND閃存的軟件驅(qū)動(dòng)操作
DDR NAND與普通NAND Flash一樣,遵從ONFI協(xié)議的命令集合,如表1所示。其中,O/M項(xiàng)為M的必選,為O的可選,也就是說(shuō)標(biāo)有M的命令所有NAND Flash都支持,而標(biāo)有O的命令則為部分支持部分不支持。
下面分別以NAND Flash最重要最為常用的驅(qū)動(dòng)接口:讀,寫(xiě),擦為例,分別說(shuō)明DDR NAND的操作流程。[!--empirenews.page--]
2.1 讀操作
DDR NAND的讀操作和寫(xiě)操作一般都是以頁(yè)為單位操作的,與傳統(tǒng)的NAND Flash一樣,它允許在1個(gè)頁(yè)讀寫(xiě)周期內(nèi)讀取1 Byte到data區(qū)與spare區(qū)大小之和這么多字節(jié)。讀取數(shù)據(jù)過(guò)程為:(1)先向DDRNAND發(fā)送讀命令00h。(2)然后接著發(fā)送需要讀取的DDR NAND的位置row地址和column地址。(3)接著發(fā)送讀確認(rèn)命令30 Hz,DDR NAND收到這個(gè)命令后會(huì)拉低RB信號(hào)線,然后開(kāi)始工作,將相應(yīng)的一頁(yè)數(shù)據(jù)讀取到DDR NAND里的頁(yè)緩沖,讀完后把RB信號(hào)線拉高,產(chǎn)生一個(gè)RB中斷。(4)主控程序接收到RB中斷后,發(fā)送同步時(shí)鐘準(zhǔn)備信號(hào),即CLE和ALE同時(shí)產(chǎn)生一個(gè)cycle。(5)接著就可以發(fā)送讀數(shù)據(jù)的clock cycle,每發(fā)送一個(gè)clock cycle就會(huì)在DDR NAND的頁(yè)緩沖FIFO中送出2 Byte數(shù)據(jù),上升沿一個(gè),下降沿一個(gè),因?yàn)镈DR NAND是雙沿采數(shù)的,同時(shí)DDR NAND也會(huì)控制DQS信號(hào)線與data同步。(6)主控程序發(fā)送完讀數(shù)據(jù)的clock,讀操作結(jié)
束。如圖2所示。
2.2 寫(xiě)操作
在DDR NAND中,寫(xiě)操作也叫編程。寫(xiě)操作的單位也是頁(yè),它的操作過(guò)程如下:(1)先向DDRNAND發(fā)送寫(xiě)命令80 Hz。(2)然后接著發(fā)送需要寫(xiě)入的DDR NAND的位置row地址和column地址。(3)發(fā)送同步時(shí)鐘準(zhǔn)備信號(hào),即CLE和ALE同時(shí)產(chǎn)生一個(gè)cycle。(4)接著就可以發(fā)送讀數(shù)據(jù),發(fā)送數(shù)據(jù)是根據(jù)clock產(chǎn)生DQS信號(hào),在DQS信號(hào)上下沿分別發(fā)送數(shù)據(jù)到DDR NAND。(5)發(fā)完一個(gè)page的數(shù)據(jù)后,接著發(fā)送寫(xiě)確認(rèn)命令10 Hz,DDR NAND收到這個(gè)命令后會(huì)拉低RB信號(hào)線,然后開(kāi)始工作,將相應(yīng)的一頁(yè)數(shù)據(jù)從DDR NAND里的頁(yè)緩沖中正式編程到DDR NAND中,待編程完畢后把RB信號(hào)線拉高,產(chǎn)生一個(gè)RB中斷,如圖3所示,此時(shí)寫(xiě)操作已完成。
2.3 擦除操作
DDR NAND的擦除操作單位為block,擦操作比較特殊,它不涉及任何數(shù)據(jù),沒(méi)有用雙沿操作的地方,所以它的操作過(guò)程和時(shí)序跟普通NAND Flash是一樣的,操作過(guò)程如下:(1)先向DDR NAND發(fā)送擦命令60 Hz。(2)接著發(fā)送需要擦除的DDR NAND的位置,3 Byte的row地址。(3)發(fā)送擦確認(rèn)命令d0h,DDR NAND收到這個(gè)命令后會(huì)拉低RB信號(hào)線,然后開(kāi)始工作,待擦除完畢后再把RB信號(hào)線拉高,產(chǎn)生一個(gè)RB中斷,一個(gè)block擦除完畢。
3 結(jié)束語(yǔ)
從市場(chǎng)方面了解到DDR NAND這種雙沿采數(shù)的新型NAND Flash有逐步取代原高端16 bit NANDFlash之勢(shì),成為新的高端閃存。它具有更高的讀寫(xiě)速率,不需要優(yōu)化代碼就能輕松突破存儲(chǔ)速度的瓶頸限制。