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