基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其中包括可編程控制器,用以根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序;程序閃存;嵌入式處理器,用以根據(jù)與所述的閃存芯片數(shù)據(jù)恢復(fù)程序讀取閃存芯片的原始數(shù)據(jù)并將原始數(shù)據(jù)恢復(fù)成為可被操作系統(tǒng)識(shí)別的數(shù)據(jù);活動(dòng)芯片安裝底座連接器;程序內(nèi)存,本發(fā)明還涉及一種基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法。采用該種結(jié)構(gòu)的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法,可以實(shí)現(xiàn)快速恢復(fù)閃存芯片內(nèi)的數(shù)據(jù)信息和快速查找恢復(fù)的數(shù)據(jù),根據(jù)不同類(lèi)型的閃存芯片更改內(nèi)部數(shù)據(jù)恢復(fù)的控制邏輯,不需要更換設(shè)備就可以適用于各種類(lèi)型的閃存芯片,具有更廣泛的應(yīng)用范圍。
【專(zhuān)利說(shuō)明】基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)處理領(lǐng)域,尤其涉及閃存芯片數(shù)據(jù)恢復(fù)領(lǐng)域,具體是指一種基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法。
【背景技術(shù)】
[0002]目前,閃存芯片已經(jīng)是十分普及的存儲(chǔ)設(shè)備,廣泛的應(yīng)用于移動(dòng)電子設(shè)備、嵌入式電子設(shè)備以及其他各類(lèi)電子設(shè)備中。
[0003]現(xiàn)有技術(shù)中,閃存芯片里的數(shù)據(jù)讀取完全依賴(lài)于原有的系統(tǒng),原有系統(tǒng)中控制和連接設(shè)備的損壞比例往往大于閃存芯片本身的損壞,而原有系統(tǒng)一旦出現(xiàn)問(wèn)題,即使閃存芯片完好也難以實(shí)現(xiàn)閃存芯片中的數(shù)據(jù)恢復(fù)。
[0004]雖然ONFI接口標(biāo)準(zhǔn)規(guī)定了大部分閃存芯片的讀取時(shí)序,可以實(shí)現(xiàn)方便地讀取閃存芯片的邏輯,但仍然有部分未在標(biāo)準(zhǔn)中規(guī)定的閃存芯片需要特別的讀取方法進(jìn)行數(shù)據(jù)恢復(fù)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點(diǎn),提供了一種能夠?qū)崿F(xiàn)直接從閃存芯片中讀取和恢復(fù)存儲(chǔ)數(shù)據(jù)、根據(jù)不同類(lèi)型的閃存芯片更改內(nèi)部數(shù)據(jù)恢復(fù)的控制邏輯、適用于各種閃存芯片、具有更廣泛應(yīng)用范圍的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法具有如下構(gòu)成:
[0007]該基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其主要特點(diǎn)是,所述的系統(tǒng)包括:
[0008]可編程控制器,用以根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序;
[0009]程序閃存,用以實(shí)時(shí)存放所述的可編程控制器動(dòng)態(tài)修改的閃存芯片數(shù)據(jù)恢復(fù)程序;
[0010]嵌入式處理器,用以根據(jù)與所述的閃存芯片數(shù)據(jù)恢復(fù)程序讀取閃存芯片的原始數(shù)據(jù)并將原始數(shù)據(jù)恢復(fù)成為可被操作系統(tǒng)識(shí)別的數(shù)據(jù);
[0011]活動(dòng)芯片安裝底座連接器,連接于封裝的各種類(lèi)型的閃存芯片和所述的嵌入式處理器之間;
[0012]程序內(nèi)存,用以存放所述的嵌入式處理器在處理過(guò)程中的動(dòng)態(tài)數(shù)據(jù)。
[0013]較佳地,所述的系統(tǒng)還包括USB連接控制器,所述的USB連接控制器連接于上位處理設(shè)備與所述的嵌入式處理器之間。
[0014]更佳地,所述的上位處理設(shè)備為U盤(pán)、固態(tài)硬盤(pán)或上位機(jī)。
[0015]較佳地,所述的系統(tǒng)還包括觸摸屏,所述的觸摸屏與所述的嵌入式處理器相連接。
[0016]較佳地,所述的嵌入式處理器為基于ARM內(nèi)核的主控處理器。[0017]較佳地,所述的可編程控制器為現(xiàn)場(chǎng)可編程門(mén)陣列。
[0018]本發(fā)明還涉及一種通過(guò)所述的系統(tǒng)基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法,其主要特點(diǎn)是,所述的方法包括以下步驟:
[0019](I)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序;
[0020](2)所述的嵌入式處理器根據(jù)所述的閃存芯片數(shù)據(jù)恢復(fù)程序通過(guò)所述的活動(dòng)芯片安裝底座連接器讀取閃存芯片中的原始數(shù)據(jù);
[0021](3)所述的嵌入式處理器將所述的閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù)。
[0022]較佳地,所述的系統(tǒng)還包括USB連接控制器,所述的步驟(3)之后,還包括以下步驟:
[0023](4)所述的嵌入式處理器將可被操作系統(tǒng)識(shí)別的數(shù)據(jù)通過(guò)所述的USB連接控制器傳輸?shù)缴衔惶幚碓O(shè)備。
[0024]較佳地,所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序,包括以下步驟:
[0025]( 11)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型重新編程來(lái)修改硬件IP信號(hào)邏輯;
[0026](12)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型進(jìn)行控制器內(nèi)軟核的編程來(lái)修改數(shù)據(jù)讀取協(xié)議。
[0027]較佳地,將所述的閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù),包括以下步驟:
[0028](31)確定閃存芯片的數(shù)據(jù)存儲(chǔ)塊和數(shù)據(jù)存儲(chǔ)頁(yè)的大?。?br>
[0029](32)讀取閃存芯片的數(shù)據(jù)存儲(chǔ)頁(yè)備用區(qū)中的元數(shù)據(jù);
[0030](33)計(jì)算所述的元數(shù)據(jù)的分布頻率表;
[0031](34)計(jì)算數(shù)據(jù)的邏輯地址與物理地址的轉(zhuǎn)換公式;
[0032](35)將數(shù)據(jù)重組成可被操作系統(tǒng)識(shí)別的數(shù)據(jù)。
[0033]采用了該發(fā)明中的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法,可以實(shí)現(xiàn)在不連接PC的情況下,直接從閃存芯片中讀取和恢復(fù)存儲(chǔ)數(shù)據(jù),快速恢復(fù)閃存芯片內(nèi)的數(shù)據(jù)信息和快速查找恢復(fù)的數(shù)據(jù),根據(jù)不同類(lèi)型的閃存芯片更改內(nèi)部數(shù)據(jù)恢復(fù)的控制邏輯,不需要更換設(shè)備就可以適用于各種類(lèi)型的閃存芯片,具有更廣泛的應(yīng)用范圍。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034]圖1為本發(fā)明的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)的結(jié)構(gòu)示意圖。
[0035]圖2為本發(fā)明的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法的流程圖。
[0036]圖3為本發(fā)明的將閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù)的流程圖。
【具體實(shí)施方式】
[0037]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實(shí)施例來(lái)進(jìn)行進(jìn)一步的描述。
[0038]本發(fā)明可以在不連接PC的情況下,快速恢復(fù)芯片內(nèi)的數(shù)據(jù)信息和快速查找恢復(fù)的數(shù)據(jù)。
[0039]本發(fā)明可以通過(guò)可編程控制器動(dòng)態(tài)的改變與閃存芯片的連接時(shí)序,從而不需要更換設(shè)備就可以讀取更多類(lèi)型的閃存芯片。恢復(fù)后的數(shù)據(jù)可以通過(guò)USB接口連接上位主機(jī)。
[0040]如圖1所示,本發(fā)明的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)包括:
[0041]程序閃存DISK (磁盤(pán)):主要組成部分有:操作系統(tǒng)(Operating System, OS)、用戶(hù)交互的⑶I (Graphical User Interface,圖形用戶(hù)界面)、芯片數(shù)據(jù)恢復(fù)程序和可編程控制器內(nèi)核系統(tǒng)動(dòng)態(tài)更新程序。
[0042]程序內(nèi)存RAM (Random Access Memory,隨機(jī)存儲(chǔ)器):操作系統(tǒng)使用,用以存放嵌入式處理器的動(dòng)態(tài)數(shù)據(jù)。
[0043]嵌入式處理器SOC (System on a chip,片上系統(tǒng)):基于ARM內(nèi)核的主控處理器,帶有豐富的高速總線(xiàn)和低速總線(xiàn),可以連接可編程控制器和輸入輸出設(shè)備。
[0044]可編程控制器FPGA (Field Programmable Gata Array,現(xiàn)場(chǎng)可編程門(mén)陣列):基于微型軟核uCore+uC/OS操作系統(tǒng),內(nèi)部uC/OS可以通過(guò)軟件動(dòng)態(tài)更新,這樣可以修改連接Nand Flash的時(shí)序從而適應(yīng)多種芯片的讀取。
[0045]USB連接控制器(USB host/client):用來(lái)連接U盤(pán)、SSD或上位機(jī)等上位處理設(shè)備來(lái)恢復(fù)原始的文件系統(tǒng)。
[0046]活動(dòng)芯片安裝底座連接器(Adapter):用來(lái)連接各種封裝的Nand Flash芯片。
[0047]如圖2所示為本發(fā)明的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法的流程圖,該方法包括以下步驟:
[0048](I)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序;
[0049]通過(guò)可編程控制器可以動(dòng)態(tài)的調(diào)整讀取閃存芯片的時(shí)序和協(xié)議,具體就是,根據(jù)Nand Flash的型號(hào)來(lái)調(diào)整FPGA的硬IP的邏輯來(lái)實(shí)現(xiàn)信號(hào)時(shí)序的匹配,調(diào)整FPGA的軟核程序來(lái)調(diào)整讀取數(shù)據(jù)協(xié)議。
[0050]ONFI接口標(biāo)準(zhǔn)是一個(gè)讀取Nand Flash的協(xié)議和時(shí)序標(biāo)準(zhǔn),本發(fā)明設(shè)計(jì)的方案不僅可以滿(mǎn)足ONFI的標(biāo)準(zhǔn),也可以提供ONFI標(biāo)準(zhǔn)以外的更加靈活的動(dòng)態(tài)讀取接口。
[0051]通過(guò)可編程控制器動(dòng)態(tài)地改變連接內(nèi)存連接時(shí)序,包括如下步驟:
[0052](11)通過(guò)對(duì)FPGA重新編程來(lái)修改硬件IP信號(hào)邏輯;
[0053](12)通過(guò)對(duì)FPGA內(nèi)軟核的編程來(lái)修改數(shù)據(jù)議。
[0054](2)所述的嵌入式處理器根據(jù)所述的閃存芯片數(shù)據(jù)恢復(fù)程序通過(guò)所述的活動(dòng)芯片安裝底座連接器讀取閃存芯片中的原始數(shù)據(jù);
[0055](3)所述的嵌入式處理器將所述的閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù);
[0056](4)所述的嵌入式處理器將可被操作系統(tǒng)識(shí)別的數(shù)據(jù)通過(guò)所述的USB連接控制器傳輸?shù)缴衔惶幚碓O(shè)備。
[0057]其中第三步數(shù)據(jù)恢復(fù)的過(guò)程,包括以下子步驟,如圖3所示:
[0058](31)確定Nand Flash芯片的數(shù)據(jù)存儲(chǔ)塊(block)和數(shù)據(jù)存儲(chǔ)頁(yè)(page)的大小;[0059](32)讀取元數(shù)據(jù)meta data (spare area備用區(qū))的數(shù)據(jù);
[0060](33)計(jì)算meta data的分布頻率表;
[0061 ] (34)計(jì)算LBN邏輯地址與PBN物理地址的轉(zhuǎn)換公式;
[0062](35)加入?yún)?shù)重建文件系統(tǒng);
[0063](36)文件系統(tǒng)正確性測(cè)試。
[0064]采用了該發(fā)明中的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng)及方法,可以實(shí)現(xiàn)在不連接PC的情況下,直接從閃存芯片中讀取和恢復(fù)存儲(chǔ)數(shù)據(jù),快速恢復(fù)閃存芯片內(nèi)的數(shù)據(jù)信息和快速查找恢復(fù)的數(shù)據(jù),根據(jù)不同類(lèi)型的閃存芯片更改內(nèi)部數(shù)據(jù)恢復(fù)的控制邏輯,不需要更換設(shè)備就可以適用于各種類(lèi)型的閃存芯片,具有更廣泛的應(yīng)用范圍。
[0065]在此說(shuō)明書(shū)中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說(shuō)明書(shū)和附圖應(yīng)被認(rèn)為是說(shuō)明性的而非限制性的。
【權(quán)利要求】
1.一種基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的系統(tǒng)包括: 可編程控制器,用以根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序; 程序閃存,用以實(shí)時(shí)存放所述的可編程控制器動(dòng)態(tài)修改的閃存芯片數(shù)據(jù)恢復(fù)程序;嵌入式處理器,用以根據(jù)與所述的閃存芯片數(shù)據(jù)恢復(fù)程序讀取閃存芯片的原始數(shù)據(jù)并將原始數(shù)據(jù)恢復(fù)成為可被操作系統(tǒng)識(shí)別的數(shù)據(jù); 活動(dòng)芯片安裝底座連接器,連接于封裝的各種類(lèi)型的閃存芯片和所述的嵌入式處理器之間; 程序內(nèi)存,用以存放所述的嵌入式處理器在處理過(guò)程中的動(dòng)態(tài)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的系統(tǒng)還包括USB連接控制器,所述的USB連接控制器連接于上位處理設(shè)備與所述的嵌入式處理器之間。
3.根據(jù)權(quán)利要求2所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的上位處理設(shè)備為U盤(pán)、固態(tài)硬盤(pán)或上位機(jī)。
4.根據(jù)權(quán)利要求1所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的系統(tǒng)還包括觸摸屏,所述的觸摸屏與所述的嵌入式處理器相連接。
5.根據(jù)權(quán)利要求1所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的嵌入式處理器為基于ARM內(nèi)核的主控處理器。
6.根據(jù)權(quán)利要求1所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的系統(tǒng),其特征在于,所述的可編程控制器為現(xiàn)場(chǎng)可編程門(mén)陣列。
7.—種通過(guò)權(quán)利要求1所述的系統(tǒng)基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法,其特征在于,所述的方法包括以下步驟: (1)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序; (2)所述的嵌入式處理器根據(jù)所述的閃存芯片數(shù)據(jù)恢復(fù)程序通過(guò)所述的活動(dòng)芯片安裝底座連接器讀取閃存芯片中的原始數(shù)據(jù); (3)所述的嵌入式處理器將所述的閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法,其特征在于,所述的系統(tǒng)還包括USB連接控制器,所述的步驟(3)之后,還包括以下步驟: (4)所述的嵌入式處理器將可被操作系統(tǒng)識(shí)別的數(shù)據(jù)通過(guò)所述的USB連接控制器傳輸?shù)缴衔惶幚碓O(shè)備。
9.根據(jù)權(quán)利要求7所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法,其特征在于,所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型修改閃存芯片數(shù)據(jù)恢復(fù)程序,包括以下步驟: (11)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型重新編程來(lái)修改硬件IP信號(hào)邏輯; (12)所述的可編程控制器根據(jù)所述的閃存芯片的類(lèi)型進(jìn)行控制器內(nèi)軟核的編程來(lái)修改數(shù)據(jù)讀取協(xié)議。
10.根據(jù)權(quán)利要求7所述的基于可編程控制器實(shí)現(xiàn)閃存芯片數(shù)據(jù)恢復(fù)的方法,其特征在于,將所述的閃存芯片中的原始數(shù)據(jù)轉(zhuǎn)換成可被操作系統(tǒng)識(shí)別的數(shù)據(jù),包括以下步驟: (31)確定閃存芯片的數(shù)據(jù)存儲(chǔ)塊和數(shù)據(jù)存儲(chǔ)頁(yè)的大??; (32)讀取閃存芯片的數(shù)據(jù)存儲(chǔ)頁(yè)備用區(qū)中的元數(shù)據(jù); (33)計(jì)算所述的元數(shù)據(jù)的分布頻率表; (34)計(jì)算數(shù)據(jù)的邏輯地址與物理地址的轉(zhuǎn)換公式; (35)將數(shù)據(jù)重組成可被操作系統(tǒng)識(shí)別的數(shù)據(jù)。
【文檔編號(hào)】G06F11/14GK103544079SQ201310518047
【公開(kāi)日】2014年1月29日 申請(qǐng)日期:2013年10月28日 優(yōu)先權(quán)日:2013年10月28日
【發(fā)明者】何俊峰, 吳松洋, 王旭鵬, 其他發(fā)明人請(qǐng)求不公開(kāi)姓名 申請(qǐng)人:公安部第三研究所