[發明專利]一種基于單片機的NAND-FLASH寫操作方法在審
| 申請號: | 201410440206.6 | 申請日: | 2014-09-02 |
| 公開(公告)號: | CN104166627A | 公開(公告)日: | 2014-11-26 |
| 發明(設計)人: | 田星星;何剛;焦來賓 | 申請(專利權)人: | 科大智能電氣技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02;G06F12/16 |
| 代理公司: | 合肥天明專利事務所 34115 | 代理人: | 奚華保 |
| 地址: | 230088 安徽*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 單片機 nand flash 操作方法 | ||
技術領域
本發明涉及數據存儲器寫操作的技術領域,具體涉及一種基于單片機的NAND-FLASH寫操作方法。
?
背景技術
單片機因其體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,而廣泛應用于儀器儀表中。單片機結合不同類型的傳感器,可實現諸如電壓、電流、功率、頻率、濕度、溫度等物理量的測量。采用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起采用電子或數字電路更加強大。
NAND-FLASH因其體積小、非易失性、多次可擦除性、更快的寫入和擦除速度以及更低廉的每比特價格等特點在電子產品市場得到了迅猛的發展。NAND-FLASH以頁為單位讀寫數據,而以塊為單位擦除數據。若只針對塊中的某頁數據進行更新,現有的方法是先把頁所處的整塊內容讀到緩存器中,把塊擦除;再結合要寫的頁數據和原塊中的數據,生成新的塊數據;最后寫到塊中?,F有的方法雖能完成寫操作,但至少需要分配NAND-FLASH一塊大小的緩存,對于RAM較少的單片機而言無法使用此方法操作NAND-FLASH。此外,NAND-FLASH在產品出廠時會做一次壞塊標定。在使用過程中對NAND-FLASH的反復擦除與寫入也可能導致壞塊產生,導致存儲數據的不可靠或丟失。
????
發明內容
本發明的目的在于提供一種基于單片機的NAND-FLASH寫操作方法,該方法不僅能夠實現在RAM較少的單片機上使用NAND-FLASH,還通過采用壞塊管理來提高NAND-FLASH寫操作的穩定性及可靠性。
為實現上述目的,本發明采用了以下技術方案:
一種基于單片機的NAND-FLASH寫操作方法,該方法包括以下步驟:
(1)將NAND-FLASH劃分為壞塊映射信息區、塊交換區、數據使用區和壞塊替換區。
壞塊映射信息區、塊交換區、數據使用區和壞塊替換區在NAND-FLASH中的位置,可以根據設計需求來進行設定。所述的壞塊映射區,用于存儲壞塊映射信息。當NAND-FLASH的塊交換區、數據使用區或壞塊替換區的某個塊在進行寫操作沒有成功時,會將該壞塊的信息實時更新至壞塊映射信息區的壞塊映射表中。所述的塊交換區,用于在對NAND-FLASH進行寫操作時,暫時性的存儲目的塊中的數據。所述的數據使用區,作為NAND-FLASH的數據存儲單元。所述的壞塊替換區,用于在數據使用區進行寫操作出現壞塊時,根據壞塊映射信息區的壞塊映射表,將數據使用區的壞塊替換為壞塊替換區中的塊。
(2)遍歷壞塊映射信息區,并根據遍歷結果,在塊交換區查找可以使用的交換塊,在數據使用區或壞塊替換區查找寫操作真實的目的塊。所述的可以使用的交換塊,是因為塊交換區內可能存在壞塊,壞塊是無法使用的。而在本步驟中要查找的交換塊,是要拿來暫存數據用的,因此,就要在塊交換區內逐個查找可以使用的交換塊,直至找到為止。所述的寫操作真實的目的塊,是因為若給出的目的塊A是壞塊,就需要根據壞塊映射表調出該壞塊在壞塊替換區中相對應的塊B,用塊B來代替塊A來存儲數據。因此,寫操作真實的目的塊,就是指寫操作最終實際的執行對象。
(3)擦除交換塊。
(4)復制目的塊到交換塊。
(5)擦除目的塊。
(6)結合交換塊的數據和要寫入的數據生成新的數據,逐頁寫入到目的塊。具體地說,先將目的地址所在頁的數據從交換塊讀取到單片機緩存器RAM中,并將除該頁之外的其他數據采用頁搬移命令從交換塊搬回目的塊。然后,用新數據覆蓋RAM中存儲的數據。最后,將RAM中更新之后的數據,寫入到目的塊中的目的地址所在頁,完成NAND-FLASH的寫操作。從這個步驟可以看出,本發明只需要將目的地址所在頁的數據存儲到單片機的RAM中,所以能夠在RAM空間較小的單片機上穩定的使用。
進一步的,NAND-FLASH在產品出廠時,會做一次壞塊標定。但由于在使用過程中對NAND-FLASH的反復擦除與寫入,還可能會導致新的壞塊的產生,使存儲的數據不可靠或丟失。因此,在步驟(4)至步驟(6)操作過程中,都會同步檢查是否存在壞塊,以保證存儲數據的可靠性。??
具體地說,在步驟(4)所述的復制目的塊到交換塊的過程中,同時檢查寫操作是否成功,若不成功,則記錄壞塊,更新壞塊映射表,返回步驟(2)。
在步驟(5)所述的擦除目的塊的過程中,同時檢查寫操作是否成功,若不成功,則記錄壞塊,更新壞塊映射表,返回步驟(2)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于科大智能電氣技術有限公司,未經科大智能電氣技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410440206.6/2.html,轉載請聲明來源鉆瓜專利網。





