基于I2C總線的NAND Flash存儲方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于存儲通信技術(shù)領(lǐng)域,涉及一種存儲方法,特別是涉及一種基于I2C總線的NAND Flash存儲方法及系統(tǒng)。
【背景技術(shù)】
[0002]NAND Flash內(nèi)存是flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實現(xiàn)提供了廉價有效的解決方案。NAND Flash存儲器具有容量較大,改寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,因而在業(yè)界得到了越來越廣泛的應(yīng)用,如嵌入式產(chǎn)品中包括數(shù)碼相機、MP3隨身聽記憶卡、體積小巧的U盤等。
[0003]NAND Flash是現(xiàn)在市場上主要的非易失閃存技術(shù)之一。Inter公司在1988年首先開發(fā)出NOR Flash技術(shù),徹底改變了原先有EPROM和EEPROM—統(tǒng)天下的局面。1989年東芝公司發(fā)表了 NAND Flash結(jié)構(gòu),強調(diào)降低每比特的成本,有更高的性能,并且像磁盤一樣可以通過接口輕松升級。
[0004]NAND Flash的結(jié)構(gòu)能提高極高的單元密度,可以達到高存儲密度,可以做到G bit級別,并且寫入和擦除的速度也很快,同時也具有成本上的優(yōu)勢。應(yīng)用NAND Flash的困難在于其Flash管理需要特殊的系統(tǒng)接口,且引腳數(shù)量較多,如圖1所示的三星的一款4Gbit的NAND Flash,用于1和控制/狀態(tài)的引腳有15個。
[0005]I2C(Inter — Integrated Circuit)總線是一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。由于其簡單、靈活、硬件管腳資源少等優(yōu)點,在器件與器件之間的通信中有著廣泛的應(yīng)用。
[0006]I2C總線中的器件被分為主機和從機。主機是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸?shù)臅r鐘信號的器件。此時,任何被尋址的器件都被認為是從機。每個從機一般均有一個唯一的地址,主機可以通過該地址,配置和管理相應(yīng)的從機。
[0007]在標(biāo)準(zhǔn)的I2C總線協(xié)議中,物理鏈路分別是一條串行數(shù)據(jù)線(SDA)和一條串行時鐘線(SCL) ο但是I2C的EEPROM的容量只有幾十K Byte甚至幾K Byte0
[0008]12C總線是一種兩線式串行總線,在微控制器與其外圍電路的連接中有極其廣泛的應(yīng)用,但是EEPROM的容量太小,只有幾十K Byte甚至幾K Byte0如圖2所示的艾特梅爾的一款I(lǐng)2C EEPR0M,其存儲容量也只有8KByte。
[0009]那么,在實際應(yīng)用中,如何既能利用I2C接口的便利性和易用性,又能發(fā)揮NANDFlash大存儲容量的功能,是本發(fā)明急需解決的技術(shù)問題。
【發(fā)明內(nèi)容】
[0010]鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種基于I2C總線的NANDFlash存儲方法及系統(tǒng),用于解決現(xiàn)有NAND Flash的系統(tǒng)接口復(fù)雜,以及I2C EEPROM存儲容量太小的問題。
[0011]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種基于I2C總線的NAND Flash存儲方法,所述基于I2C總線的NAND Flash數(shù)據(jù)存取方法包括:通過I2C總線接收來自CPU的存取指令;解析所述存取指令,獲取指示內(nèi)容;生成執(zhí)行所述指示內(nèi)容的控制信號;利用所述控制信號對所述NAND Flash進行相關(guān)信息的存取。
[0012]可選地,當(dāng)所述指示內(nèi)容為讀取NAND Flash中的數(shù)據(jù)或狀態(tài)時,所述生成執(zhí)行所述指示內(nèi)容的控制信號的實現(xiàn)過程包括:利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生讀取NAND Flash的邏輯電平。
[0013]可選地,當(dāng)所述指示內(nèi)容為讀取NAND Flash中的數(shù)據(jù)或狀態(tài)時,所述利用所述控制信號對所述NAND Flash進行相關(guān)信息的存取的實現(xiàn)過程包括:根據(jù)所述NAND Flash的時序要求和所述讀取NAND Flash的邏輯電平,從所述NAND Flash中讀取相應(yīng)的數(shù)據(jù)或狀態(tài),并將讀取的相應(yīng)的數(shù)據(jù)或狀態(tài)通過所述I2C總線傳給所述CPU。
[0014]可選地,當(dāng)所述指示內(nèi)容為向NAND Flash中寫入數(shù)據(jù)或命令時,所述生成執(zhí)行所述指示內(nèi)容的控制信號的實現(xiàn)過程包括:利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生寫入NAND Flash的邏輯電平。
[0015]可選地,當(dāng)所述指示內(nèi)容為向NAND Flash中寫入數(shù)據(jù)或命令時,所述利用所述控制信號對所述NAND Flash進行相關(guān)信息的存取的實現(xiàn)過程包括:根據(jù)所述NAND Flash的時序要求和所述寫入NAND Flash的邏輯電平,向所述NAND Flash中寫入相應(yīng)的數(shù)據(jù)或命令。
[0016]本發(fā)明還提供一種基于I2C總線的NAND Flash數(shù)據(jù)存取系統(tǒng),所述基于I2C總線的NAND Flash數(shù)據(jù)存取系統(tǒng)包括:指令接收模塊,通過I2C總線接收來自CPU的存取指令;指令解析模塊,與所述指令接收模塊相連,解析所述存取指令,獲取指示內(nèi)容;指令執(zhí)行模塊,與所述指令解析模塊相連,生成執(zhí)行所述指示內(nèi)容的控制信號;信息存取模塊,與所述指令執(zhí)行模塊相連,利用所述控制信號對所述NAND Flash進行相關(guān)信息的存取。
[0017]可選地,所述指令執(zhí)行模塊包括:讀取控制單元,利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生讀取NAND Flash的邏輯電平;寫入控制單元,利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生寫入NAND Flash的邏輯電平。
[0018]可選地,所述信息存取模塊包括:讀取單元,與所述讀取控制單元相連,根據(jù)所述NAND Flash的時序要求和所述讀取NAND Flash的邏輯電平,從所述NAND Flash中讀取相應(yīng)的數(shù)據(jù)或狀態(tài);寫入單元,與所述寫入控制單元相連,根據(jù)所述NAND Flash的時序要求和所述寫入NAND Flash的邏輯電平,向所述NAND Flash中寫入相應(yīng)的數(shù)據(jù)或命令。
[0019]可選地,所述讀取控制單元將讀取的相應(yīng)的數(shù)據(jù)或狀態(tài)通過所述I2C總線傳給所述 CPU。
[0020]可選地,所述指令接收模塊,指令解析模塊,指令執(zhí)行模塊和信息存取模塊由CPLD實現(xiàn);所述CPULD的10_98 口與所述CPU的SCK引腳相連,所述CPULD的10_97 口與所述CPU的SDA引腳相連;所述CPULD的10_71 口至10_50 口分別與所述NAND Flash對應(yīng)的1口和控制狀態(tài)引腳相連。
[0021]如上所述,本發(fā)明的基于I2C總線的NAND Flash存儲方法及系統(tǒng),具有以下有益效果:
[0022]本發(fā)明利用I2C總線通過CPLD讀寫NAND Flash,不僅充分利用了 I2C接口的便利性和易用性,又充分發(fā)揮了 NAND Flash大存儲容量的功能,解決了 I2C EEPROM容量小和 NAND Flash的接口較復(fù)雜的問題,同時也極大地控制了成本。
【附圖說明】
[0023]圖1顯示為三星的一款4Gbit的NAND Flash的芯片引腳結(jié)構(gòu)示意圖。
[0024]圖2顯示為艾特梅爾的一款I(lǐng)2C EEPROM的芯片引腳結(jié)構(gòu)示意圖。
[0025]圖3顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲方法的一種實現(xiàn)流程示意圖。
[0026]圖4顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲方法的一種具體實現(xiàn)流程示意圖。
[0027]圖5顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲系統(tǒng)的一種實現(xiàn)結(jié)構(gòu)示意圖。
[0028]圖6顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲系統(tǒng)的另一種實現(xiàn)結(jié)構(gòu)示意圖。
[0029]圖7顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲系統(tǒng)的一種實現(xiàn)結(jié)構(gòu)框圖。
[0030]圖8顯示為本發(fā)明實施例所述的基于I2C總線的NAND Flash存儲系統(tǒng)的一種具體實現(xiàn)結(jié)構(gòu)示意圖。
[0031]元件標(biāo)號說明
[0032]100基于I2C總線的NAND Flash數(shù)據(jù)存取系統(tǒng)
[0033]110指令接收模塊
[0034]120指令解析模塊
[0035]130指令執(zhí)行模塊
[0036]131讀取控制單元
[0037]132寫入控制單元
[0038]140信息存取模塊
[0039]141讀取單元
[0040]142寫入單元
[0041]Sll ?S14 步驟
【具體實施方式】
[0042]以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應(yīng)用,本說明書中的各項細節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0043]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0044]請參閱圖3,本發(fā)明提供一種基于I2C總線的NAND Flash數(shù)據(jù)存取方法,所述基于I2C總線的NAND Flash數(shù)據(jù)存取方法包括:
[0045]SI I,通過I2C總線接收來自CPU的存取指令。本步驟通過I2C總線的SCL/SDA信號線接到CPU的1 口,接收CPU發(fā)出的指令。
[0046]S12,解析所述存取指令,獲取指示內(nèi)容。本步驟負責(zé)解析I2C總線送過來的讀寫命令(即存取指令)。
[0047]S13,生成執(zhí)行所述指示內(nèi)容的控制信號。本步驟負責(zé)產(chǎn)生NAND Flash的各種控制信號,并接收NAND Flash的狀態(tài)信號。
[0048]進一步,參見圖4所示,當(dāng)所述指示內(nèi)容為讀取NAND Flash中的數(shù)據(jù)或狀態(tài)時,步驟S13所述的生成執(zhí)行所述指示內(nèi)容的控制信號的實現(xiàn)過程包括:利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生讀取NAND Flash的邏輯電平。
[0049]當(dāng)所述指示內(nèi)容為向NAND Flash中寫入數(shù)據(jù)或命令時,所述生成執(zhí)行所述指示內(nèi)容的控制信號的實現(xiàn)過程包括:利用所述NAND Flash的數(shù)據(jù)/控制/狀態(tài)引腳產(chǎn)生寫入NAND Flash的邏輯電平。
[0050]S14,利用所述控制信號對所述NAND Flash進行相關(guān)信息的存取。本發(fā)明所述的基于I2C總線的NAND Flash數(shù)據(jù)存取方法可以由CPLD實現(xiàn),本步驟通過CPLD的1 口與NAND Flash的地址線、數(shù)據(jù)線、控制線、和狀態(tài)線相接,進而實現(xiàn)對所述NAND Flash進行相關(guān)信息的存取。
[0051 ] 如果CPU需要讀取NAND Flash的數(shù)據(jù)或狀態(tài),則CPLD與NAND Flash相連的數(shù)據(jù)/控制/狀態(tài)引腳會產(chǎn)生相應(yīng)的邏輯電平,并滿足NAND Flash的時序要求,從NAND Flash中讀取相應(yīng)的數(shù)據(jù)或狀態(tài),并通過I2C總線傳給CPU。
[0052]如果CPU需要向NAND Flash中寫入數(shù)據(jù)或命令,則CPLD與NAND Flash相連的數(shù)據(jù)/控制/狀態(tài)引腳會產(chǎn)生相應(yīng)的邏輯