專利名稱:一種快速燒寫NAND flash的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于一種存儲(chǔ)器燒寫方法和裝置,特別涉及一種NAND flash的 燒寫方法和裝置。
背景技術(shù):
NANDf lash在嵌入式系統(tǒng)中的應(yīng)用越來越廣泛,因?yàn)镹ANDflas具有高 容量、高穩(wěn)定性和快速的讀寫的優(yōu)點(diǎn),所以在ARM9時(shí)代,NANDflash已經(jīng) 成為主流的介質(zhì),但是由于嵌入式的設(shè)計(jì)已經(jīng)介入了 linux和WINCE兩大操 作系統(tǒng),使整個(gè)文件變的龐大起來,所以將文件燒寫到NANDflash中就遇到 了燒寫瓶頸。以往NANDflash的燒寫,都是第一步用JTAG燒寫bootloader, 使最小系統(tǒng)加載bootloader后初始化各通信口后(如串口 ,網(wǎng)卡等),再由 串口下載linux的內(nèi)核,乂人而建立文件系統(tǒng),然后通過網(wǎng)卡下載linux應(yīng)用 程序?qū)崿F(xiàn)。而JTAG和串口由于是串行輸入,同時(shí)也受到本身相關(guān)芯片速率 的影響(MAX2 32芯片的速度比起NAND的讀寫,速度慢多了 ),雖然boot loader + linux內(nèi)核文件只有應(yīng)用程序內(nèi)容的1/8,但是造成燒寫總時(shí)間卻是應(yīng)用 程序時(shí)間8倍之多的局面,4吏整個(gè)燒寫Nandflash的時(shí)間無比漫長;而在 bootloader沒有燒寫之前,串口和網(wǎng)口是不能與電腦主才幾通信的,而在沒 有燒寫linux內(nèi)核的前提下,網(wǎng)口雖然是可以與主機(jī)通信,但是由于未通過 文件系統(tǒng)的排列,而使整個(gè)系統(tǒng)的引導(dǎo)文件未存在指定的位置上,造成不能 啟動(dòng)linux的情況出現(xiàn)。如果使用多串口與電腦通信的方法,表面上是一個(gè) 不錯(cuò)的選擇,但是一臺(tái)電腦只有2個(gè)串口,如果將一串口擴(kuò)展成多個(gè)串口, 可能造成下位機(jī)對(duì)上位機(jī)的反饋信號(hào)錯(cuò)誤(可能一臺(tái)下位機(jī)已經(jīng)好了 ,但是 還有一臺(tái)沒有寫完,反饋給上位機(jī)卻是燒寫好的),所以此方法也行不通。所以創(chuàng)造出一種其它的方法解決NANDflash的燒寫速度,成了唯一的出口 。
發(fā)明內(nèi)容
本發(fā)明針對(duì)NANDflash燒寫速度慢的缺陷,發(fā)明了一種能快速燒寫 NANDflash的方法和裝置。
本發(fā)明的技術(shù)方案如下 一種快速燒寫NAND flash的方法,該方法用 已經(jīng)燒寫好所需程序的NANDflash作為母盤以及未寫入所需程序的 NANDflash作為子盤,將母盤和子盤插在NAND flash燒寫裝置主控制器的 1/0接口上,通過NAND flash燒寫裝置的主控制器執(zhí)行對(duì)NAND f lash的燒 寫,該方法包括以下步驟
(l)對(duì)NANDflash母盤讀ID進(jìn)行連接^^測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;
(2 )對(duì)NANDflash子盤讀ID進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;
(3) 對(duì)NANDflash母盤進(jìn)行;險(xiǎn)測,得到母盤的使用塊數(shù);
(4) 對(duì)NANDflash子盤進(jìn)行擦除,在擦除每一塊時(shí),判斷此塊是否是 壞塊,如果是,則將此塊標(biāo)記并在內(nèi)存中建立相應(yīng)的壞塊列表;
(5 )將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中,在拷貝時(shí) 若遇到子盤中標(biāo)記的壞塊,則跳過此塊,將母盤中的內(nèi)容拷貝到下一塊中;
(6) 對(duì)NANDflash子盤進(jìn)行檢測,得到子盤的使用塊數(shù);
(7) 將NANDflash母盤和子盤的使用量進(jìn)行對(duì)比;若兩者使用量相等, 則燒寫成功。
作為優(yōu)選,所述主控制器在將NANDflash母盤中的內(nèi)容拷貝到 NANDflash子盤中時(shí),如果讀取到母盤中的某一塊內(nèi)容是空的,則跳過此塊,即不拷貝此塊的內(nèi)容,直接塊地址加1進(jìn)入下一塊內(nèi)容的讀取拷貝;這樣將
母盤中空白的內(nèi)容跳過不拷,節(jié)省了拷貝時(shí)間。
作為優(yōu)選,所述主控制器在對(duì)NANDflash母盤進(jìn)行檢測,得到母盤的使 用塊數(shù)時(shí),從母盤的最后一塊開始掃描,直到發(fā)現(xiàn)有數(shù)據(jù)存在的塊后,記錄 下此塊的位置;確定了母盤中最后一塊的位置,拷貝的時(shí)候只需要拷貝完此 塊的數(shù)據(jù)就停止,后面的塊就不必再去讀取,節(jié)省了拷貝的時(shí)間。
作為優(yōu)選,所述主控制器在將NANDflash母盤中的內(nèi)容拷貝到 NANDflash子盤中時(shí),從母盤中讀取一塊后向子盤中寫入,直到母盤中記錄 下的最后 一塊有數(shù)據(jù)的塊后停止。
作為優(yōu)選,所述主控制器在對(duì)NANDflash母盤和子盤的使用塊數(shù)進(jìn)行一全 測時(shí),只要對(duì)每一塊的第一頁進(jìn)行檢測,如果第一頁沒有數(shù)據(jù),那這一塊就 沒有數(shù)據(jù);這樣不必對(duì)塊中的每一頁進(jìn)行檢測,進(jìn)一步節(jié)省了掃描讀取的時(shí) 間。
一種快速燒寫NAND flash的裝置,包括電源和主控制器,將已經(jīng)燒寫 好所需程序的NANDf lash作為母盤以及未寫入所需程序的NANDflash作為子 盤,所述的主控制器上有用于插接NANDflash母盤和NANDflash子盤的I/O 接口,為了完成對(duì)NANDflash快速燒寫的功能,所述的主控制器執(zhí)行如下步 驟
(1 )對(duì)NANDflash母盤讀ID進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;
(2 )對(duì)NANDflash子盤讀ID進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;
(3)對(duì)NANDflash母盤進(jìn)行檢測,得到母盤的使用塊數(shù);(4)對(duì)NANDflash子盤進(jìn)行擦除,在擦除每一塊時(shí),判斷此塊是否是 壞塊,如果是,則將此塊標(biāo)記并在內(nèi)存中建立相應(yīng)的壞塊列表;
(5 )將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中,在拷貝時(shí) 若遇到子盤中標(biāo)記的壞塊,則跳過此塊,將母盤中的內(nèi)容拷貝到下一塊中;
(6)對(duì)NANDflash子盤進(jìn)行檢測,得到子盤的使用塊數(shù);
(7 )將NANDflash母盤和子盤的使用量進(jìn)行對(duì)比;若兩者使用量相等, 則燒寫成功。
作為優(yōu)選,所述主控制器在將NANDflash母盤中的內(nèi)容拷貝到 NANDflash子盤中時(shí),如果讀取到母盤中的某一塊內(nèi)容是空的,則跳過此塊, 即不拷貝此塊的內(nèi)容,直接塊地址加1進(jìn)入下一塊內(nèi)容的讀取拷貝
作為優(yōu)選,所述的主控制器還接有液晶面板和兩個(gè)按鍵, 一個(gè)按鍵為菜 單鍵,另一個(gè)按鍵為確認(rèn)鍵;菜單鍵用于選擇不同.的功能菜單,確認(rèn)鍵用于 確認(rèn)執(zhí)行選中的功能菜單的功能,液晶面板用于顯示功能菜單的信息。
作為優(yōu)選,所述的菜單鍵選擇的不同功能菜單執(zhí)行不同的功能,包括 自動(dòng)執(zhí)行功能,用于自動(dòng)執(zhí)行整個(gè)的燒寫步驟; 子盤識(shí)別功能,用于執(zhí)行對(duì)子盤進(jìn)行連接檢測和使用塊數(shù)的檢測; 檢測母盤功能,用于執(zhí)行對(duì)母盤進(jìn)行連接檢測和使用塊數(shù)的檢測; 拷貝克隆功能,用于執(zhí)行將母盤中的內(nèi)容拷貝到子盤中; 版本信息功能,用于顯示燒寫芯片的型號(hào)、燒寫軟件的版本信息。 作為優(yōu)選,所述的主控制器采用ARM7 (S3C44B0X)系列芯片。
本發(fā)明的快速燒寫NANDflash的方法和裝置采用子盤拷貝母盤的方式, 直接將母盤中的程序移植到子盤中,可非??焖俚膶?duì)NANDflash進(jìn)行程序燒 寫;特別是每一個(gè)燒寫好程序的子盤又可以作為母盤使用,當(dāng)大批量的進(jìn)行N ANDfl a s h程序的燒寫時(shí),使用多臺(tái)本發(fā)明的燒寫裝置可以使產(chǎn)能成幾何級(jí)
數(shù)的增長。
圖1為本發(fā)明的快速燒寫NANDflash的裝置硬件框圖; 圖2為本發(fā)明的快速燒寫NANDflash的裝置結(jié)構(gòu)示意圖; 圖3為本發(fā)明的快速燒寫NANDflash的方法的流程圖; 圖4為圖3中將母盤中的內(nèi)容拷貝到子盤步驟的流程圖。
具體實(shí)施例方式
如圖1、 2所示, 一種快速燒寫NANDflash的裝置,包括電源和主控制 器,主控制器采用ARM7 (S3C44B0X)系列芯片,將已經(jīng)燒寫好所需程序的 NANDflash作為母盤以及未寫入所需程序的NANDflash作為子盤,所述的主 控制器上有用于插接NANDflash母盤和NANDflash子盤的母盤I/O接口 4 和子盤I/0接口 5,所述的主控制器還可以接有液晶面板1和兩個(gè)按鍵,一 個(gè)按鍵為菜單鍵2,另一個(gè)按鍵為確認(rèn)鍵3;菜單鍵2用于選擇不同的功能 菜單,確認(rèn)鍵3用于確認(rèn)執(zhí)行選中的功能菜單的功能,液晶面板l用于顯示 功能菜單的信息。所述的菜單鍵2選擇的不同功能菜單執(zhí)行不同的功能,包 括
自動(dòng)執(zhí)行功能,用于自動(dòng)執(zhí)行整個(gè)的燒寫步驟,選定此功能執(zhí)行后可以 直接完成NANDflash的整個(gè)燒寫過程,方4更用戶;
子盤識(shí)別功能,用于執(zhí)行對(duì)子盤進(jìn)行連接檢測和使用塊數(shù)的檢測,并在 液晶面板上將檢測結(jié)果顯示出來;
檢測母盤功能,用于執(zhí)行對(duì)母盤進(jìn)行連接檢測和使用塊數(shù)的檢測,并在 液晶面板上將檢測結(jié)果顯示出來;擦除子盤功能,用于執(zhí)行將子盤中的內(nèi)容進(jìn)行擦除,并檢測子盤中的壞
塊,并將檢測結(jié)果在液晶面板上顯示出來;
拷貝克隆功能,用于執(zhí)行將母盤中的內(nèi)容拷貝到子盤中; 版本信息功能,用于顯示燒寫芯片的型號(hào)、燒寫軟件的版本信息。 自動(dòng)執(zhí)行功能可以方便的直接完成NANDflash的整個(gè)燒寫過程;子盤識(shí) 別功能,檢測母盤功能,擦除子盤功能,拷貝克隆功能,可以分步完成燒寫 過程,掌握燒寫過程中每一步的情況,出現(xiàn)錯(cuò)誤可以有針對(duì)性的檢查。
如圖3為快速燒寫NANDflash的方法的流程圖,用已經(jīng)燒寫好所需程序 的NANDflash作為母盤以及未寫入所需程序的NANDflash作為子盤,將母盤 和子盤插在NAND flash燒寫裝置主控制器的I/O接口上,對(duì)NAND flash 燒寫裝置上電后,主控制器首先對(duì)NANDflash母盤讀ID,即讀耳又母盤的身 份識(shí)別信息,進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下一步驟,若連接出錯(cuò) 則進(jìn)行提示;然后對(duì)NANDflash子盤讀ID進(jìn)行連接檢測判斷,若連接正常 則進(jìn)入下一步驟,若連接出錯(cuò)則進(jìn)行提示;
在對(duì)母盤和子盤進(jìn)行連接檢測后,主控制器對(duì)NANDflash母盤進(jìn)行掃描 檢測以得到母盤的使用塊數(shù);在對(duì)母盤進(jìn)行掃描檢測時(shí),可以從母盤的最后 一塊開始掃描,直到發(fā)現(xiàn)有數(shù)據(jù)存在的塊后,記錄下此塊的位置,然后從母 盤的最前端開始掃描一直到剛才記錄下的存在數(shù)據(jù)的最后一塊為止,就得到 了母盤的使用塊數(shù);在進(jìn)行檢測掃描時(shí)只要對(duì)每一塊的第一頁進(jìn)行檢測,如 果第一頁沒有數(shù)據(jù),那這一塊就沒有數(shù)據(jù),此塊即為空;
在得到母盤的使用塊數(shù)后,對(duì)NANDflash子盤進(jìn)行擦除,在擦除子盤的 每一塊時(shí),判斷此塊是否是壞塊,如果是,則將此塊標(biāo)記并在內(nèi)存中建立相 應(yīng)的壞塊列表;在對(duì)子盤進(jìn)行4察除后,就將NANDflash母盤中的內(nèi)容拷貝到NANDflash 子盤中,如圖4所示,在拷貝的時(shí)候,首先進(jìn)行讀母盤操作,讀母盤時(shí)先向 母盤輸入讀命令,再輸入要讀取的地址,檢測一下母盤是否忙,若母盤忙則 等待,若不忙則讀取母盤中此塊的內(nèi)容;在這里若讀取的塊內(nèi)容為空,則母 盤的塊地址加l,直接讀取下一塊的內(nèi)容;若不為空則進(jìn)行寫子盤操作,寫 子盤時(shí)先向子盤輸入?yún)^(qū)命令,即要寫入到哪個(gè)區(qū),再輸入寫命令,然后輸入 要寫入的地址,最后將內(nèi)容寫入到此塊中;寫子盤操作完成后,通過子盤狀 態(tài)寄存器確認(rèn)是否寫成功,若沒有寫成功,說明此塊為壞塊,則子盤塊地址 加l后再進(jìn)行寫操作,即將母盤中此塊的內(nèi)容寫入到子盤的下一塊中,若確 認(rèn)寫成功了,母盤、子盤的塊地址都加l,然后再從頭開始讀取母盤的下一 塊內(nèi)容并寫入到子盤的下一塊中,直到讀取到母盤的最后一塊有數(shù)據(jù)的塊為 止,即將母盤的內(nèi)容全部拷貝到子盤后結(jié)束。
在將NANDflash母盤的內(nèi)容全部拷貝到子盤后,對(duì)子盤進(jìn)行數(shù)據(jù)判斷檢 測,從子盤的第一塊開始掃描一直掃到最后一塊有數(shù)據(jù)的塊停止,得到子盤 的使用塊數(shù),進(jìn)行子盤檢測掃描時(shí)只要對(duì)每一塊的第 一 頁進(jìn)行檢測,如果第 一頁沒有數(shù)據(jù),那這一塊就沒有數(shù)據(jù),此塊即為空;
最后將NANDflash母盤和子盤的使用量在液晶面板上顯示出來進(jìn)行對(duì) 比;若母盤的使用塊數(shù)與子盤的使用塊數(shù)相同說明母盤中的內(nèi)容已經(jīng)完整的 拷貝到子盤中,則說明此次燒寫成功,此子盤可以使用;若母盤與子盤的使 用塊數(shù)不同說明拷貝過程中發(fā)生了錯(cuò)誤,母盤的內(nèi)容沒有完全拷貝到子盤 中,則說明此次燒寫失敗,此子盤不能使用。
權(quán)利要求
1、一種快速燒寫NAND flash的方法,該方法用已經(jīng)燒寫好所需程序的NANDflash作為母盤以及未寫入所需程序的NANDflash作為子盤,將母盤和子盤插在NAND flash燒寫裝置主控制器的I/O接口上,通過NAND flash燒寫裝置的主控制器執(zhí)行對(duì)NAND flash的燒寫,該方法包括以下步驟(1)對(duì)NANDflash母盤讀ID進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下一步驟,若連接出錯(cuò)則進(jìn)行提示;(2)對(duì)NANDflash子盤讀ID進(jìn)行連接檢測判斷,若連接正常則進(jìn)入下一步驟,若連接出錯(cuò)則進(jìn)行提示;(3)對(duì)NANDflash母盤進(jìn)行檢測,得到母盤的使用塊數(shù);(4)對(duì)NANDflash子盤進(jìn)行擦除,在擦除每一塊時(shí),判斷此塊是否是壞塊,如果是,則將此塊標(biāo)記并在內(nèi)存中建立相應(yīng)的壞塊列表;(5)將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中,在拷貝時(shí)若遇到子盤中標(biāo)記的壞塊,則跳過此塊,將母盤中的內(nèi)容拷貝到下一塊中;(6)對(duì)NANDflash子盤進(jìn)行檢測,得到子盤的使用塊數(shù);(7)將NANDflash母盤和子盤的使用量進(jìn)行對(duì)比;若兩者使用量相等,則燒寫成功。
2、 根據(jù)權(quán)利要求1所述的一種快速燒寫NAND flash的方法,其特征在于, 在將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中時(shí),如果讀取到母盤 中的某一塊內(nèi)容是空的,則跳過此塊,即不拷貝此塊的內(nèi)容,直接塊地址加 1進(jìn)入下一塊內(nèi)容的讀取拷貝。
3、 根據(jù)權(quán)利要求1或2所述的一種快速燒寫NAND flash的方法,其特征在 于,在對(duì)NANDflash母盤進(jìn)行;險(xiǎn)測,得到母盤的使用塊數(shù)時(shí),/人母盤的最后 一塊開始掃描,直到發(fā)現(xiàn)有數(shù)據(jù)存在的塊后,記錄下此塊的位置。
4、 根據(jù)權(quán)利要求3所述的一種快速燒寫NAND flash的方法,其特征在于, 在將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中時(shí),/人母盤中讀取一 塊后向子盤中寫入,直到母盤中記錄下的最后一塊有數(shù)據(jù)的塊后停止。
5、 根據(jù)權(quán)利要求1或2所述的一種快速燒寫NAND flash的方法,其特征在 于,在對(duì)N緒Df lash母盤和子盤的使用塊數(shù)進(jìn)行檢測時(shí),只要對(duì)每一塊的第 一頁進(jìn)行檢測,如果第一頁沒有數(shù)據(jù),那這一塊就沒有數(shù)據(jù)。
6、 一種快速燒寫NAND flash的裝置,包括電源和主控制器,其特征在于, 將已經(jīng)燒寫好所需程序的NANDflash作為母盤以及未寫入所需程序的 NANDflash作為子盤,所述的主控制器上有用于插接N緒Dflash母盤和 NANDflash子盤的1/(U姿口 ,為了完成對(duì)NANDflash快速燒寫的功能,所述 的主控制器執(zhí)行如下步驟(1 )對(duì)NANDflash母盤讀ID進(jìn)行連接;險(xiǎn)測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;(2 )對(duì)NANDflash子盤讀ID進(jìn)行連接;險(xiǎn)測判斷,若連接正常則進(jìn)入下 一步驟,若連接出錯(cuò)則進(jìn)行提示;(3) 對(duì)NANDflash母盤進(jìn)行檢測,得到母盤的使用塊數(shù);(4) 對(duì)NANDflash子盤進(jìn)行擦除,在擦除每一塊時(shí),判斷此塊是否是 壞塊,如果是,則將此塊標(biāo)記并在內(nèi)存中建立相應(yīng)的壞塊列表;(5) 將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中,在拷貝時(shí) 若遇到子盤中標(biāo)記的壞塊,則跳過此塊,將母盤中的內(nèi)容拷貝到下一塊中;(6 )對(duì)NANDflash子盤進(jìn)行檢測,得到子盤的使用塊數(shù); (7)將NANDflash母盤和子盤的使用量進(jìn)行對(duì)比;若兩者使用量相等, 則燒寫成功。
7、 根據(jù)權(quán)利要求6所述的一種快速燒寫NAND flash的裝置,其特征在于, 所述主控制器在將NANDflash母盤中的內(nèi)容拷貝到NANDflash子盤中時(shí),如 果讀取到母盤中的某一塊內(nèi)容是空的,則跳過此塊,即不拷貝此塊的內(nèi)容, 直接塊地址加1進(jìn)入下一塊內(nèi)容的讀取拷貝。
8、 根據(jù)權(quán)利要求6或7所述的一種快速燒寫NAND flash的裝置,其特征在 于,所述的主控制器還接有液晶面板和兩個(gè)按鍵, 一個(gè)按鍵為菜單鍵,另一 個(gè)按鍵為確認(rèn)鍵;菜單鍵用于選擇不同的功能菜單,確認(rèn)鍵用于確認(rèn)執(zhí)行選 中的功能菜單的功能,液晶面板用于顯示功能菜單的信息。
9、 根據(jù)權(quán)利要求6或7所述的一種快速燒寫NAND flash的裝置,其特征在 于,所述的菜單鍵選擇的不同功能菜單執(zhí)行不同的功能,包括自動(dòng)執(zhí)行功能,用于自動(dòng)執(zhí)行整個(gè)的燒寫步驟; 子盤識(shí)別功能,用于執(zhí)行對(duì)子盤進(jìn)行連接檢測和使用塊數(shù)的檢測; 檢測母盤功能,用于執(zhí)行對(duì)母盤進(jìn)行連接檢測和使用塊數(shù)的檢測; 擦除子盤功能,用于執(zhí)行將子盤中的內(nèi)容進(jìn)行擦除,并檢測子盤中的壞塊;拷貝克隆功能,用于執(zhí)行將母盤中的內(nèi)容拷貝到子盤中; 版本信息功能,用于顯示燒寫芯片的型號(hào)、燒寫軟件的版本信息。
10、 根據(jù)4又利要求6或7所述的一種快速燒寫NAND flash的裝置,其特征 在于,所述的主控制器采用ARM7系列芯片。
全文摘要
本發(fā)明涉及一種存儲(chǔ)器燒寫方法和裝置,特別涉及一種NAND flash的燒寫方法和裝置。本發(fā)明采用子盤拷貝母盤的方式,直接將母盤中的程序移植到子盤中,可非??焖俚膶?duì)NAND flash進(jìn)行程序燒寫;特別是每一個(gè)燒寫好程序的子盤又可以作為母盤使用,當(dāng)大批量的進(jìn)行NAND flash程序的燒寫時(shí),使用多臺(tái)本發(fā)明的燒寫裝置可以使產(chǎn)能成幾何級(jí)數(shù)的增長。
文檔編號(hào)G11C7/00GK101527161SQ200910097909
公開日2009年9月9日 申請(qǐng)日期2009年4月23日 優(yōu)先權(quán)日2009年4月23日
發(fā)明者張根林, 徐旭斌 申請(qǐng)人:浙江正原電氣股份有限公司