專利名稱::一種與非快閃記憶體狀態(tài)檢測裝置、系統(tǒng)及電子設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于電子
技術(shù)領(lǐng)域:
,尤其涉及一種與非快閃記憶體狀態(tài)檢測裝置、系統(tǒng)、電子設(shè)備及方法。
背景技術(shù):
:現(xiàn)有的CPU大多支持與非快閃記憶體(NANDFlash)啟動模式,機器上電后能從NANDFlash中讀取啟動執(zhí)行代碼到內(nèi)存執(zhí)行,完成系統(tǒng)鎖相環(huán)、時鐘、內(nèi)存、外設(shè)等初始化,這就要求在CPU上電時就可以對啟動代碼的存儲器進行讀寫_|乘作。NANDFlash按容量區(qū)分有小容量(SmallBlock)和大容量(LargeBlock)兩種類型,一般定義容量大于等于1Gbytes的NANDFlash為大容量NANDFlash,容量小于1Gbytes的NANDFlash為小容量NANDFlash。針對不同容量的NANDFlash對尋址長度有不同需求,對于小容量NANDFlash,讀寫時需要釆用四個循環(huán)(Circle)尋址命令來尋址,而對于大容量NANDFlash,讀寫時需要采用五個循環(huán)尋址命令來尋址。針對不同容量的NANDFlash,先試4笨發(fā)出32位的4個循環(huán)尋址命令,如果是小容量NANDFlash,才企測到Flash處于準備就緒(Ready)狀態(tài)就可以讀寫;如果是大容量NANDFlash,由于尋址未完成,CPU延后發(fā)出8位的第5個循環(huán)尋址命令,NANDFlash在檢測到正確的尋址命令后,通知CPU其處于Ready狀態(tài),可以讀寫。并且,NANDBoot啟動方式是系統(tǒng)通過NandFlash上的引導(dǎo)程序?qū)崿F(xiàn)上電啟動的一種啟動方式,NANDBoot的尋址命令是固化到CPU里面的,由CPU端來控制第5個循環(huán)尋址命令的發(fā)出,CPU會通過檢測NANDFlash是否處于4Ready狀態(tài)來決定第5個循環(huán)尋址命令發(fā)出的時序。而隨著Flash工藝的進步,F(xiàn)lash對于尋址命令的判斷也日趨嚴格,對于一些小容量NANDFlash,它在完成讀寫準備后如果意外收到第5個循環(huán)尋址命令,會自動中斷讀寫,導(dǎo)致CPU無法讀取NANDFlash中的數(shù)據(jù),系統(tǒng)啟動失敗。這樣一來,CPU的NANDBoot功能就依賴于Flash廠商自身的檢測約束,導(dǎo)致Flash選型局限到某種批次的Flash才能使用。當(dāng)前,新工藝的NANDFlash已經(jīng)成為市場主流,原有批次的NANDFlash都'f曼'f曼退出市場,例如市面上主流的三星和現(xiàn)z氏的NANDFlash都會出現(xiàn)此類不兼容。另外,由于CPU和NANDFlash的控制操作流程都是固化到芯片內(nèi)部,一旦兩者出現(xiàn)不兼容,對于使用此類硬件方案的開發(fā)商是無法逾越的缺陷,替換任意一種硬件都可能導(dǎo)致方案的重大修改。而這種缺陷往往都是平臺開發(fā)后期才暴露出來的,會導(dǎo)致整個平臺設(shè)計方案面臨重新設(shè)計的局面。綜上所述,現(xiàn)有基于NANDFlash的系統(tǒng)啟動方法不能兼容兩種不同容量的NANDFlash,對石更件平臺使用的局限性較大、不便擴展。
發(fā)明內(nèi)容本發(fā)明實施例的目的在于提供一種基于NANDFlash的系統(tǒng)啟動方法,旨在解決現(xiàn)有基于NANDFlash的系統(tǒng)啟動方法對硬件平臺使用的局限性較大、不便擴展的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種與非快閃記憶體狀態(tài)檢測裝置,包括CPU,所述CPU包括狀態(tài)檢測引腳、BOOT0引腳和BOOT1引腳,所述CPU配置為大容量與非快閃記憶體^^式,將所述CPU的狀態(tài)檢測引腳置為準備就緒狀態(tài),所述CPU還包括檢測單元,用于通過狀態(tài)查詢命令檢測小容量與非快閃記憶體的工作狀態(tài);和/或?qū)⑺鯟PU的狀態(tài)檢測引腳與外部的大容量與非快閃記憶體連接,檢測所述大容量與非快閃記憶體的工作狀態(tài)。本發(fā)明實施例的另一目的在于提供一種包含上述與非快閃記憶體狀態(tài)檢測裝置的基于與非快閃記憶體啟動的系統(tǒng),所述系統(tǒng)還包括與非快閃記憶體;在所述與非快閃記憶體為大容量與非快閃記憶體時,所述CPU的狀態(tài)檢測引腳經(jīng)第二電阻R2接所述與非快閃記憶體的狀態(tài)檢測引腳;在所述與非快閃記憶體為小容量與非快閃記憶體時,將所述CPU的狀態(tài)檢測引腳置為準備就緒狀態(tài),所述CPU還包括檢測單元,用于通過狀態(tài)查詢命令檢測所述與非快閃記憶體的工作狀態(tài);所述CPU通過狀態(tài)檢測引腳檢測到與非快閃記憶體處于準備就緒時,向所述與非快閃記憶體發(fā)送地址,讀取所述與非快閃記憶體中存儲的數(shù)據(jù)以啟動系統(tǒng)。所述與非快閃記憶體,用于存儲系統(tǒng)啟動所需的數(shù)據(jù),根據(jù)接收到的地址讀取存儲的數(shù)據(jù),并向所述CPU返回讀取到的數(shù)據(jù)。本發(fā)明實施例的另一目的在于提供一種包含上述基于與非快閃記憶體啟動的系統(tǒng)的電子設(shè)備。本發(fā)明實施例的另一目的在于提供一種小容量與非快閃記憶體狀態(tài)檢測方法,所述方法包括下述步驟發(fā)送查詢小容量與非快閃記憶體工作狀態(tài)的查詢命令;接收返回的狀態(tài)值;根據(jù)接收到的狀態(tài)值判斷小容量與非快閃記憶體的工作狀態(tài);在判斷所述小容量與非快閃記憶體的工作狀態(tài)為忙碌時,延時預(yù)設(shè)的時間。在本發(fā)明實施例中,CPU通過檢測狀態(tài)4全測引腳或者通過狀態(tài)查詢命令得到與非快閃記憶體的工作狀態(tài),實現(xiàn)了一種與非快閃記憶體狀態(tài)檢測裝置,對于不同容量的NANDFlash,硬件設(shè)計改動小,并且無需修改CPU端內(nèi)嵌的硬件平臺使用的局限性較小、便于擴展。圖1是本發(fā)明實施例提供的NANDFlash狀態(tài);險測裝置的結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例提供的管腳電平示意圖3是本發(fā)明實施例提供的基于與非快閃記憶體啟動的系統(tǒng)的結(jié)構(gòu)示意圖4是本發(fā)明實施例提供的與非快閃記憶體狀態(tài)檢測方法的實現(xiàn)流程圖。具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,CPU通過檢測狀態(tài)檢測引腳或者通過狀態(tài)查詢命令得到與非快閃記憶體的工作狀態(tài)。圖1示出了本發(fā)明實施例提供的NANDFlash狀態(tài)檢測裝置的結(jié)構(gòu),為了便于說明僅示出了與本發(fā)明實施例相關(guān)的部分。該裝置可以用于基于NANDFlash啟動的系統(tǒng),也可以用于電子設(shè)備,例如移動終端、個人凄丈碼助理(PersonalDigitalAssistant,PDA)、Y更攜導(dǎo)4元設(shè)備(PortableNavigationDevices,PND)等,可以是運行于這些電子設(shè)備內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨立的掛件集成到這些電子設(shè)備中或者運行于這些電子設(shè)備的應(yīng)用系統(tǒng)中,其中CPU101配置為大容量NANDFlash模式。在本發(fā)明實施例中,CPU101的BOOTl引腳經(jīng)電容C接地,BOOT0引腳經(jīng)第一電阻Rl接工作電壓。對于大容量NANDFlash,CPU101的狀態(tài)檢測引腳與外部的大容量與非快閃記憶體連接,檢測外部大容量NANDFlash的工作狀態(tài)。在本發(fā)明實施例中,CPU101的狀態(tài)檢測引腳,即應(yīng)#引腳,接第二電阻R2。在使用時,第二電阻R2的另一端接外部大容量NandFlash的R/B弁引腳,CPU101通過檢測R/B弁引腳的電壓得到大容量NANDFlash的工作狀態(tài),在檢測到大容量NANDFlash為ready狀態(tài)時,對大容量NANDFlash進行相應(yīng)的讀、寫操作。其中,工作電壓為3.3V,電容C為0.01-0.1微法,第一電阻R1可以為IOK歐姆,第二電阻R2為0-10歐姆。當(dāng)然,電容C、第一電阻R1和第二電阻R2的取值還可以根據(jù)實際情況進行修改、選擇。對于小容量NANDFlash,將CPU101的狀態(tài)檢測引腳置為準備就緒狀態(tài),即CPU101的R/B弁引腳懸空或者接上拉電阻到電源,并且,CPU101還包括檢測單元1011,通過狀態(tài)查詢命令檢測外部小容量NANDFlash的工作狀態(tài)。其中,4企測單元1011包括命令發(fā)送才莫塊10111,發(fā)送NANDFlash狀態(tài)查詢命令。在本發(fā)明實施例中,CPU101將狀態(tài)查詢命令發(fā)送到命令端口,該命令端口為內(nèi)嵌到CPU中的NANDFlash控制器的CMD端口。狀態(tài)判斷才莫塊10112,判斷查詢到的NANDFlash的工作狀態(tài)。狀態(tài)處理模塊10113,在狀態(tài)判斷模塊10112判斷NANDFlash的工作狀態(tài)為忙碌(busy)時,延時預(yù)設(shè)的時間,并控制命令發(fā)送模塊10111繼續(xù)檢測;在狀態(tài)判斷才莫塊10112判斷NANDFlash的工作狀態(tài)為ready時,結(jié)束檢測。在本發(fā)明實施例中,命令發(fā)送模塊10111將狀態(tài)查詢命令(即0x70)發(fā)送到命令端口,NANDFlash接收到狀態(tài)查詢命令后響應(yīng)該命令,查詢其自身的狀態(tài),并通過數(shù)據(jù)線向CPU101返回送查詢到的狀態(tài)值。然后,狀態(tài)判斷模塊10112通過數(shù)據(jù)端口保存接收到的狀態(tài)值,并判斷該狀態(tài)值的第6位是否為0,若為0則判斷NANDFlash為Busy狀態(tài),狀態(tài)處理才莫塊10113延時50ps,返回步驟1繼續(xù)查詢;若為1則判斷NANDFlash為Ready狀態(tài),狀態(tài)處理模塊10113結(jié)束檢測,CPU101可以對NANDFlash進行相應(yīng)讀、寫操作。當(dāng)然,在檢測到NANDFlash為Busy狀態(tài)時,狀態(tài)處理模塊10113的延時時間可以根據(jù)NANDFlash數(shù)據(jù)讀寫的實際耗時精度來確定,一般為微秒單位,例如可以為830-100微秒。從而使得本實施例提供的與非快閃記憶體狀態(tài)檢測裝置可無需更換硬件設(shè)計、無需修改CPU101端內(nèi)嵌的NANDBoot啟動代碼就可以對工藝升級后NANDFlash進行相應(yīng)讀寫操作。另夕卜,CPU101通過狀態(tài)查詢命令^r測NANDFlash的工作狀態(tài)時,NANDFlash查詢其自身狀態(tài)的時間間隔需要達到微秒級別,需要修改NANDFlash驅(qū)動程序中對于狀態(tài)監(jiān)測部分的代碼,以通過^t秒級的單位去查詢其自身狀態(tài)。這樣,CPU101才能獲得正確的時序,以對NANDFlash進行正常讀、寫操作。其中,NANDFlash的驅(qū)動程序可以由開發(fā)人員任意{務(wù)改或替換,所以實現(xiàn)起來比4交方j(luò)更。圖2示出了對于小容量NANDFlash,管腳電平示意圖,由上可知,對于小容量NANDFlash,隔斷開CPU101R/B弁引腳與小容量NANDFlashR/B弁引腳間的連接,保持CPU101P7B弁引腳的上拉狀態(tài),CPU101會認為小容量NANDFlash—直都處于Ready狀態(tài),那么CPU101的WE弁引腳會緊隨前4個循環(huán)尋址命令發(fā)送第5個循環(huán)尋址命令,CPU101發(fā)送的前4個循環(huán)尋址命令如圖2中WE^引腳對應(yīng)的實線橢圓中的時序,第5個循環(huán)尋址命令如圖2中WE弁引腳對應(yīng)的虛線橢圓中的時序。由于小容量NANDFlash接收到CPU101發(fā)送的前4個循環(huán)尋址命令后處理數(shù)據(jù)需要耗時,那么在CPU101發(fā)送第5個循環(huán)尋址命令時,小容量NANDFlash實際處于Busy狀態(tài)。這樣,小容量NANDFlash就不會響應(yīng)接收到的第5個循環(huán)尋址命令,因此不會中斷讀寫操作,待小容量NANDFlash端完成正常的數(shù)據(jù)準備延時后,通過IO引腳正確送出數(shù)據(jù),避免了其在接收到第5個循環(huán)尋址命令時自動中斷讀寫而導(dǎo)致系統(tǒng)啟動失敗。圖3示出了基于NANDFlash啟動的系統(tǒng)的結(jié)構(gòu),為了便于說明僅示出了與本發(fā)明實施例相關(guān)的部分。其中,基于NANDFlash啟動的系統(tǒng)包含上述NANDFlash狀態(tài)檢測裝置和NANDFlash102。在NANDFlash102為大容量NANDFlash時,CPU101的R/B弁引腳接經(jīng)第二電阻R2接NANDFlash102的R/B弁引腳,CPU101通過沖企測R/B弁引腳的電壓得到NANSFlash的工作狀態(tài)。在NANDFlash102為小容量NANDFlash時,CPU101的R/B弁引腳與NANDFlash102的R/B弁引腳之間斷開,將CPU101的R/B弁引腳置為ready狀態(tài),可以將CPU101的R/B弁引腳懸空或者接上拉電阻到電源。并且,CPU101還包括斗企測單元1011,通過狀態(tài)查詢命令4企測NANDFlash102的工作狀態(tài)。其中,4企測單元1011包括命令發(fā)送才莫塊10111,發(fā)送NANDFlash狀態(tài)查詢命令。在本發(fā)明實施例中,CPUIOI將狀態(tài)查詢命令發(fā)送到命令端口,其實現(xiàn)方式如上所述,不再贅述。狀態(tài)判斷^^莫塊10112,判斷查詢到的NANDFlash的工作狀態(tài),其實現(xiàn)方式如上所述,不再贅述。狀態(tài)處理斗莫塊10113,在狀態(tài)判斷才莫塊10112判斷NANDFlash102的工作狀態(tài)為忙碌(busy)時,延時預(yù)設(shè)的時間,并控制命令發(fā)送模塊10111繼續(xù)檢測;在狀態(tài)判斷才莫塊10112判斷NANDFlash102的工作狀態(tài)為ready時,結(jié)束檢測,其實現(xiàn)方式如上所述,不再贅述。另外,對于小容量NANDFlash102,還需要修改其驅(qū)動程序中對于狀態(tài)監(jiān)測部分的代碼,以使小容量NANDFlash102查詢其自身狀態(tài)的頻率為微秒級的單位。CPU101通過R/B#1腳檢測到NANDFlash102處于準備就緒時,向NANDFlash102發(fā)送地址,讀取NANDFlash102中存儲的數(shù)據(jù)以啟動系統(tǒng)。NANDFlash102中存儲系統(tǒng)啟動所需的數(shù)據(jù),根據(jù)接收到的地址讀取存儲的數(shù)據(jù),并向CPU101返回讀取到的數(shù)據(jù)。圖4示出了本發(fā)明實施例提供的與非快閃記憶體狀態(tài)檢測方法的實現(xiàn)流程,詳述如下在步驟S401中,發(fā)送查詢與非快閃記憶體工作狀態(tài)的查詢命令;在步驟S402中,接收返回的狀態(tài)值;在步驟S403中,根據(jù)接收到的狀態(tài)值判斷與非快閃記憶體的工作狀態(tài);在步驟S404中,在判斷與非快閃記憶體的工作狀態(tài)為忙碌時,延時預(yù)設(shè)的時間。在本發(fā)明實施例中,通過命令端口將狀態(tài)查詢命令(即0x70)發(fā)送給相應(yīng)NANDFlash,并接收相應(yīng)NANDFlash返回的狀態(tài)值。然后,判斷該狀態(tài)值的第6位是否為0,若為0則判斷相應(yīng)NANDFlash為Busy狀態(tài),延時50)iis后返回步驟S401繼續(xù)查詢;若為1則判斷相應(yīng)NANDFlash為Ready狀態(tài),結(jié)束檢測。延時時間可以根據(jù)相應(yīng)NANDFlash數(shù)據(jù)讀寫的實際耗時精度來確定,一般為微秒單位,例如可以為30-100微秒。在本發(fā)明實施例中,CPU通過檢測狀態(tài)^r測引腳或者通過狀態(tài)查詢命令得到與非快閃記憶體的工作狀態(tài),實現(xiàn)了一種NANDFlash狀態(tài);險測裝置,對于不同容量的NANDFlash,硬件設(shè)計改動小,并且無需修改CPU端內(nèi)嵌的NAND臺使用的局限性較小、便于擴展。本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的石更件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如ROM/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種與非快閃記憶體狀態(tài)檢測裝置,包括CPU,所述CPU包括狀態(tài)檢測引腳、BOOT0引腳和BOOT1引腳,所述CPU配置為大容量與非快閃記憶體模式,其特征在于,將所述CPU的狀態(tài)檢測引腳置為準備就緒狀態(tài),所述CPU還包括檢測單元,用于通過狀態(tài)查詢命令檢測外部小容量與非快閃記憶體的工作狀態(tài);和/或?qū)⑺鯟PU的狀態(tài)檢測引腳與外部的大容量與非快閃記憶體連接,檢測所述大容量與非快閃記憶體的工作狀態(tài)。2、如權(quán)利要求l所述的裝置,其特征在于,所述CPU配置為大容量與非快閃記憶體模式為將所述CPU的BOOT0引腳經(jīng)第一電阻接工作電壓,將所述CPU的BOOT1引腳經(jīng)電容接地。3、如權(quán)利要求l所述的裝置,其特征在于,所述CPU的狀態(tài)檢測引腳經(jīng)第二電阻與外部的大容量與非快閃記憶體連接4、如權(quán)利要求l所述的裝置,其特征在于,所述檢測單元包括命令發(fā)送模塊,用于發(fā)送與非快閃記憶體狀態(tài)查詢命令;狀態(tài)判斷模塊,用于判斷查詢到的與非快閃記憶體的工作狀態(tài);以及狀態(tài)處理模塊,用于在所述狀態(tài)判斷模塊判斷與非快閃記憶體的工作狀態(tài)為忙碌時,延時預(yù)設(shè)的時間,并控制所述命令發(fā)送模塊繼續(xù)檢測。5、如權(quán)利要求4所述的裝置,其特征在于,所述預(yù)設(shè)的時間為30-100微秒。6、一種包含權(quán)利要求1至5任一項所述與非快閃記憶體狀態(tài)檢測裝置的基于與非快閃記憶體啟動的系統(tǒng),其特征在于,所述系統(tǒng)還包括與非快閃記憶體;在所述與非快閃記憶體為大容量與非快閃記憶體時,所述CPU的狀態(tài)檢測引腳經(jīng)第二電阻R2接所述與非快閃記憶體的狀態(tài)檢測引腳;在所述與非快閃記憶體為小容量與非快閃記憶體時,將所述CPU的狀態(tài)檢測引腳置為準備就緒狀態(tài),所述CPU還包括檢測單元,用于通過狀態(tài)查詢命令檢測所述與非快閃記憶體的工作狀態(tài);所述CPU通過狀態(tài)檢測引腳檢測到與非快閃記憶體處于準備就緒狀態(tài)時,向所述與非快閃記憶體發(fā)送地址,讀取所述與非快閃記憶體中存儲的數(shù)據(jù)以啟動系統(tǒng)。所述與非快閃記憶體,用于存儲系統(tǒng)啟動所需的數(shù)據(jù),根據(jù)接收到的地址讀取存儲的數(shù)據(jù),并向所述CPU返回讀取到的數(shù)據(jù)。7、如權(quán)利要求6所述的系統(tǒng),其特征在于,所述小容量與非快閃記憶體查詢其自身狀態(tài)的頻率為微秒級。8、一種包含權(quán)利要求6或7任一項所述基于與非快閃記憶體啟動的系統(tǒng)的電子設(shè)備。9、一種小容量與非快閃記憶體狀態(tài)檢測方法,其特征在于,所述方法包括下述步驟發(fā)送查詢小容量與非快閃記憶體工作狀態(tài)的查詢命令;接收返回的狀態(tài)值;根據(jù)接收到的狀態(tài)值判斷小容量與非快閃記憶體的工作狀態(tài);在判斷所述小容量與非快閃記憶體的工作狀態(tài)為忙碌時,延時預(yù)設(shè)的時間。10、如權(quán)利要求9所述的方法,其特征在于,所述預(yù)設(shè)的時間為30-100微秒。全文摘要本發(fā)明適用于電子
技術(shù)領(lǐng)域:
,提供了一種與非快閃記憶體狀態(tài)檢測裝置、系統(tǒng)及電子設(shè)備,所述與非快閃記憶體狀態(tài)檢測裝置包括CPU,所述CPU包括狀態(tài)檢測引腳、BOOT0引腳和BOOT1引腳,所述CPU配置為大容量與非快閃記憶體模式,將所述CPU的狀態(tài)檢測引腳置為準備就緒狀態(tài),所述CPU還包括檢測單元,用于通過狀態(tài)查詢命令檢測小容量與非快閃記憶體的工作狀態(tài);和/或?qū)⑺鯟PU的狀態(tài)檢測引腳與外部的大容量與非快閃記憶體連接,檢測所述大容量與非快閃記憶體的工作狀態(tài)。在本發(fā)明中,CPU通過檢測狀態(tài)檢測引腳或者通過狀態(tài)查詢命令得到與非快閃記憶體的工作狀態(tài),對硬件平臺使用的局限性較小、便于擴展。文檔編號G11C29/56GK101477838SQ200810241769公開日2009年7月8日申請日期2008年12月31日優(yōu)先權(quán)日2008年12月31日發(fā)明者王世勇申請人:深圳市同洲電子股份有限公司