摘 "要: 由于目前采用的串口和USB 2.0檢測壞塊、實(shí)現(xiàn)數(shù)據(jù)讀取的方法存在數(shù)據(jù)讀取慢以及數(shù)據(jù)穩(wěn)定性低的問題,而在高速大容量存儲裝置設(shè)計(jì)中,存儲器通常采用NAND FLASH,故提出一種基于USB 3.0總線的NAND FLASH數(shù)據(jù)存儲設(shè)計(jì)。采用FPGA作為邏輯主控單元,選用USB 3.0芯片CYUSB3014作為FPGA與上位機(jī)的通信橋梁,并在FPGA軟件上設(shè)計(jì)ECC數(shù)據(jù)校驗(yàn)糾錯以及NAND FLASH的壞塊管理。用戶可通過上位機(jī)實(shí)現(xiàn)數(shù)據(jù)讀取、擦除以及分析。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)系統(tǒng)可通過USB 3.0接口將NAND FLASH中存儲的數(shù)據(jù)傳輸?shù)缴衔粰C(jī),傳輸速度實(shí)際可達(dá)39 MB/s。
關(guān)鍵詞: 數(shù)據(jù)存儲; NAND FLASH; FPGA; USB 3.0; 壞塊管理; 數(shù)據(jù)校驗(yàn); 高速數(shù)據(jù)處理; 上位機(jī)
中圖分類號: TN791?34; TP391 " " " " " " " " " 文獻(xiàn)標(biāo)識碼: A " " " " " " " " " " "文章編號: 1004?373X(2024)18?0101?06
Design of NAND FLASH data storage based on USB 3.0
BAI Haoyu, YU Hongying, NIU Yankun
(School of Electrical and Control Engineering, North University of China, Taiyuan 030051, China)
Abstract: In allusion to the problems of slow data reading and low data stability in the current serial port and USB 2.0 methods for detecting bad blocks and implementing data reading, NAND FLASH is commonly used in the design of high?speed and high?capacity storage devices. A NAND FLASH data storage design based on the USB 3.0 bus is designed. FPGA is used as the logic control unit, the USB 3.0 chip CYUSB3014 is used as the communication bridge between FPGA and upper computer, and ECC data verification and error correction as well as bad block management for NAND FLASH are designed on FPGA software. Users can read, erase, and analyze data by means of the upper computer. The experimental results show that the designed system can transfer the data stored in NAND FLASH to the upper computer by means of the USB 3.0 interface, and the actual transmission speed can reach 39 MB/s.
Keywords: data storage; NAND FLASH; FPGA; USB 3.0; bad block management; data verification; high?speed data processing; upper computer
0 "引 "言
NAND FLASH數(shù)據(jù)存儲廣泛應(yīng)用于航空航天的高速數(shù)據(jù)采集存儲設(shè)備中[1]。在進(jìn)行數(shù)據(jù)分析時,F(xiàn)PGA向計(jì)算機(jī)高速傳輸數(shù)據(jù),最常用的數(shù)據(jù)連接方式有串口、USB 2.0或千兆以太網(wǎng)等[2]。文獻(xiàn)[3]中采用千兆以太網(wǎng)的方式,其理論速度為125 MB/s,速度較慢,且開發(fā)周期長。文獻(xiàn)[4]中則建議采用USB 2.0總線方法,讀出8 MB的數(shù)據(jù)不足1 s。雖然可以使用上位機(jī)進(jìn)行實(shí)時的壞塊管理,但缺乏數(shù)據(jù)校驗(yàn),且傳輸速度較慢。
針對以上總線傳輸以及NAND FLASH控制等問題,選用USB 3.0總線作為FPGA與上位機(jī)的通信接口,其理論通信速度為5 Gb/s。較為常用的USB 3.0方案為Cypress Semiconductor(賽普拉斯半導(dǎo)體)的CYUSB3014、TI(德州儀器)的TUSB1310、FDTI的FT600等[5]。其中,TUSB1310沒有USB 3.0通信協(xié)議控制器,需要加入外部控制,或直接由主控芯片控制,軟件驅(qū)動程序以及開發(fā)資源較少,開發(fā)時間較長;FT600芯片相較于其他芯片成本較高,可自主編程性較低,不適合自主開發(fā);CYUSB3014內(nèi)置一個ARM9內(nèi)核處理器,集成了USB 3.0通信協(xié)議控制器,可依據(jù)用戶自身需求設(shè)計(jì)不同的固件程序進(jìn)行燒寫。芯片公司提供豐富的軟件開發(fā)工具和套件,簡化了開發(fā)過程;并且針對NAND FLASH數(shù)據(jù)存儲的問題,設(shè)計(jì)ECC數(shù)據(jù)校驗(yàn)糾錯和NAND FLASH壞塊管理,保證在高速數(shù)據(jù)記錄中,數(shù)據(jù)能夠高速穩(wěn)定傳輸,為高速大容量數(shù)據(jù)采集和存儲提供技術(shù)保障。本文選用CYUSB3014芯片作為USB 3.0通信的主控芯片,選用ALTERA(阿爾特拉)公司的EP4CE10F17C8N作為主控芯片,其具有傳輸速度快、硬件設(shè)計(jì)簡單、可自主開發(fā)、USB 3.0適用場景多等優(yōu)點(diǎn)。針對NAND FLASH的固有數(shù)據(jù)存儲問題,在FPGA軟件系統(tǒng)中設(shè)計(jì)數(shù)據(jù)校驗(yàn)和壞塊管理,保證實(shí)驗(yàn)數(shù)據(jù)存儲的準(zhǔn)確性。
1 "總體方案設(shè)計(jì)
基于USB 3.0總線NAND FLASH的控制總體設(shè)計(jì)方案由USB 3.0通信單元、FPGA主控單元和上位機(jī)單元組成,如圖1所示。選用CYUSB3014芯片實(shí)現(xiàn)FPGA主控單元與PC之間的通信。以FPGA為主控單元設(shè)計(jì)通用I/O口,并合理利用FPGA中的存儲單元,實(shí)現(xiàn)對于NAND FLASH的讀、寫、擦、數(shù)據(jù)校驗(yàn)以及壞塊管理等工作。設(shè)計(jì)上位機(jī)通過USB 3.0通信單元與FPGA主控單元完成數(shù)據(jù)交互、命令傳輸以及數(shù)據(jù)分析等工作。選擇K9WBG08U1M型NAND FLASH作為數(shù)據(jù)存儲單元。
2 "USB 3.0硬件及固件程序設(shè)計(jì)
選擇賽普拉斯(CYPRESS)公司的FX3USB 3.0芯片CYUSB3014,相較于USB 2.0,解決了USB 2.0的帶寬限制和單獨(dú)開發(fā)USB協(xié)議困難等難題[6]。賽普拉斯公司把這代USB 3.0芯片CYUSB3014稱為EZ?USB FX3。在使用此芯片時只需下載固件庫進(jìn)行開發(fā),具有高靈活性。
USB 3.0芯片工作的目的是實(shí)現(xiàn)PC機(jī)和FPGA信息交流、數(shù)據(jù)傳輸以及命令傳輸。USB 3.0與FPGA連接的接口為GPIF Ⅱ接口。EZ?USB FX3的GPIF Ⅱ接口可完美實(shí)現(xiàn)USB 2.0的GPIF接口以及Slave FIFO接口的功能。GPIF Ⅱ支持32位并行數(shù)據(jù)總線,接口時鐘的傳輸頻率最大為100 MHz。
采用GPIF Ⅱ接口將EZ?USB FX3配置為SLAVE FIFO模式,CYUSB3014與FPGA的接口如圖2所示。選擇FPGA作為EZ?USB FX3的控制器,通過GPIF Ⅱ接口進(jìn)行數(shù)據(jù)讀取,實(shí)現(xiàn)FPGA與上位機(jī)之間的數(shù)據(jù)通信[7],具體接口信號如表1所示。EZ?USB FX3通過Micro?B接口與計(jì)算機(jī)連接,完成數(shù)據(jù)傳輸以及固件程序的燒寫。24LC256為一個E2PROM為EZ?USB FX3的儲存固件程序。
通過Cypress官方提供的SDK軟件進(jìn)行具體的固件程序配置,首先配置兩個SLAVE FIFO,F(xiàn)LAGB為FIFO寫滿標(biāo)志,為FPGA向計(jì)算機(jī)發(fā)送的數(shù)據(jù)緩沖區(qū),為線程0;FLAGC為FIFO讀空標(biāo)志,為計(jì)算機(jī)向FPGA發(fā)送命令或數(shù)據(jù)的緩沖區(qū),為線程1。FX3_IFCLK接口時鐘通過FPGA向GPIF Ⅱ接口提供。FX3_SLWR和FX3_SLRD根據(jù)FLAGB與FLAGC信號進(jìn)行驅(qū)動,數(shù)據(jù)通信總線[8?9]為32位。將固件程序配置好之后,燒寫入EZ?USB FX3,完成USB 3.0固件設(shè)計(jì)。
3 "FPGA軟件設(shè)計(jì)
Altera公司的EP4CE10F17C8N使用Verilog語言在Quartus Ⅱ開發(fā)環(huán)境下進(jìn)行軟件開發(fā)。FPGA內(nèi)部邏輯結(jié)構(gòu)如圖3所示。FPGA內(nèi)部結(jié)構(gòu)主要包括USB 3.0通信模塊、NAND FLASH控制模塊、數(shù)據(jù)校驗(yàn)?zāi)K以及壞塊管理模塊等。
3.1 "USB 3.0通信
USB 3.0通信模塊主要功能有兩個,一是接收來自NAND FLASH中讀出的數(shù)據(jù),通過SLAVE FIFO將該數(shù)據(jù)打包發(fā)送至EZ?USB FX3芯片,實(shí)現(xiàn)數(shù)據(jù)發(fā)送;二是把EZ?USB FX3芯片收到的上位機(jī)命令進(jìn)行進(jìn)一步解析,來控制NAND FLASH完成數(shù)據(jù)讀寫。
整個USB通信模塊使用狀態(tài)機(jī)實(shí)現(xiàn),如圖4所示。上電時進(jìn)入復(fù)位狀態(tài)FX3_RESET,在FX3_RESET之后的一個時鐘進(jìn)入下一個狀態(tài)。
在FX3_IDLE狀態(tài),此時等待上位機(jī)發(fā)送命令,當(dāng)收到命令后,進(jìn)入下一個狀態(tài)FX3_WAIT狀態(tài),分析上位機(jī)傳來的數(shù)據(jù),獲得NAND FLASH讀取的目標(biāo)片、塊地址和頁地址,然后判斷FLAGB是否為1,若不為1,則進(jìn)入下一狀態(tài),F(xiàn)X3_WRITE從NAND FLASH的目標(biāo)片、目標(biāo)塊和頁中讀數(shù)據(jù)寫入到SLAVE FIFO端口中;否則返回FX3_BUSY狀態(tài),等待SLAVE FIFO可寫入數(shù)據(jù)時,進(jìn)入FX3_WRITE狀態(tài)。當(dāng)數(shù)據(jù)寫完成后進(jìn)入FX3_BUSY,然后返回FX3_IDLE等待下一個命令接收。綜上所述,這樣就完成了FPGA通過EZ?USB FX3實(shí)現(xiàn)與上位機(jī)的通信。
因FX3與FPGA數(shù)據(jù)總線為32位并行接口,且NAND FLASH為8位接口,在數(shù)據(jù)讀取時,在FPGA將8位數(shù)據(jù)拼成32位數(shù)據(jù)后賦給FIFO,進(jìn)而寫入EZ?USB FX3的SLAVE FIFO接口。
3.2 "ECC校驗(yàn)算法設(shè)計(jì)
漢明碼是ECC編碼中最簡單且使用最廣泛的編碼方式。漢明碼編碼的實(shí)際應(yīng)用可理解為異或以及二分法。如在4 096個數(shù)據(jù)作為數(shù)據(jù)校驗(yàn)單元進(jìn)行數(shù)據(jù)校驗(yàn)時,本文把4 096個數(shù)據(jù)劃分為8列4 096行,每個字節(jié)中的每1位為1列,每1字節(jié)數(shù)據(jù)代表1行;然后對行和列的每1位進(jìn)行異或,得到6個列校驗(yàn)值以及24個行校驗(yàn)值[10?11]。具體編碼流程如圖5所示。
圖5中,CP0~CP5為列校驗(yàn)結(jié)果。將4 096個數(shù)據(jù)按照輸入的位進(jìn)行異或,如CP0為Bit0、Bit2、Bit4和Bit6異或的結(jié)果,以此類推可得到剩下的CP。具體計(jì)算公式如下:
[CP0=Bit0⊕Bit2⊕Bit4⊕Bit6CP1=Bit1⊕Bit3⊕Bit5⊕Bit7CP2=Bit0⊕Bit1⊕Bit4⊕Bit5CP3=Bit2⊕Bit3⊕Bit6⊕Bit7CP4=Bit0⊕Bit1⊕Bit2⊕Bit3CP5=Bit4⊕Bit5⊕Bit6⊕Bit7]
LP0~LP23為行校驗(yàn)結(jié)果,選擇以n(n=0,1,2,…,11)為最小單位進(jìn)行分組。奇數(shù)行和偶數(shù)行分別作為組別,對于每一組別的數(shù)據(jù)按位異或,得到LP0~LP23共24位的校驗(yàn)值。將LP0所對應(yīng)的偶數(shù)行組別的數(shù)據(jù)(Byte 0,Byte 2,Byte 4,…,Byte 4 092,Byte 4 094)按位異或得出每一個字節(jié)的異或結(jié)果,進(jìn)而把這2 048個異或結(jié)果進(jìn)行異或得出LP0。將LP2所對應(yīng)的偶數(shù)行組別的數(shù)據(jù)(Byte 0,Byte 2,Byte 4,…,Byte 4 092,Byte 4 094)按位異或得出每一個字節(jié)的異或結(jié)果,進(jìn)而把這2 048個異或結(jié)果進(jìn)行異或得出LP2。由上文可推導(dǎo)4 096個8位數(shù)據(jù)的校驗(yàn)碼為30位的校驗(yàn)值(6位列校驗(yàn)值,24位行校驗(yàn)值),按照表2將這30位校驗(yàn)值拼接成4個字節(jié)的校驗(yàn)數(shù)據(jù)。
3.2.1 "數(shù)據(jù)驗(yàn)證
首先將FLASH存儲的4 096個字節(jié)的數(shù)據(jù)讀出,將讀出的數(shù)據(jù)進(jìn)行一次新的漢明碼編碼,得到新的30位(CP0~CP5、LP0~LP23)校驗(yàn)碼。將新得到的數(shù)據(jù)校驗(yàn)碼與寫入數(shù)據(jù)時的數(shù)據(jù)校驗(yàn)碼按位異或,得到30位數(shù)據(jù)校驗(yàn)結(jié)果N。若N的30位數(shù)據(jù)全為0時,說明數(shù)據(jù)正確;N的30位數(shù)據(jù)每兩位相異或再將異或的結(jié)果相與,若結(jié)果為1時說明有一位數(shù)據(jù)錯誤;若N的數(shù)據(jù)不為以上兩種情況,說明數(shù)據(jù)有2位或2位以上發(fā)生錯誤。
3.2.2 "錯誤糾正
如上文發(fā)現(xiàn)1位數(shù)據(jù)錯誤時,選擇漢明碼解碼的形式對錯誤的單位數(shù)據(jù)進(jìn)行地址尋址。將數(shù)據(jù)存入和讀取之后的校驗(yàn)碼排序,得到兩組數(shù)據(jù),進(jìn)而對于兩組數(shù)據(jù)進(jìn)行按位異或,得到15位數(shù)據(jù)C。
錯誤的位置在總共4 096個字節(jié)中的第C[14:3]字節(jié),并且錯誤數(shù)據(jù)的位是該字節(jié)數(shù)據(jù)的第C[2:0]位,將該位的數(shù)據(jù)取反,完成錯誤糾正。
3.3 "NAND FLASH控制
NAND FALSH使用前,需識別初始化無效塊并建立壞塊表。在之后存儲數(shù)據(jù)時,如果出現(xiàn)了使用壞塊應(yīng)及時更新壞塊表以保證數(shù)據(jù)存儲的可靠性。出現(xiàn)使用壞塊有三種情況。
1) 頁編程結(jié)束后,讀取編程狀態(tài),如果編程失敗標(biāo)記為使用壞塊。
2) 塊擦除結(jié)束后,讀取擦除狀態(tài),如果擦除失敗標(biāo)記為使用壞塊。
3) 頁讀取結(jié)束后,使用ECC校驗(yàn)發(fā)現(xiàn)讀取過程中出現(xiàn)的位反轉(zhuǎn)錯誤,若發(fā)生位反轉(zhuǎn)錯誤,不標(biāo)記為壞塊。
標(biāo)記為壞塊的塊不會再進(jìn)行頁編程、塊擦除和頁讀取操作[12?13]。在以上思路的基礎(chǔ)上,本文設(shè)計(jì)了一種基于ECC校驗(yàn)算法的NAND FLASH可靠數(shù)據(jù)管理方法,流程如下[14]。
3.3.1 "識別初始化無效塊
根據(jù)使用的芯片官方手冊,芯片出廠時會在出廠之前除了帶有初始無效塊信息的位置沒有被擦除,其余所有位置都會被擦除。初始無效塊的狀態(tài)記錄在備用空間的第1 B。芯片廠家保證在初始無效塊的第1頁和第2頁的第2 048 B地址上的數(shù)據(jù)不是FFh。由于初始無效塊也是能被擦除的,而且一旦擦除就不可恢復(fù),因此系統(tǒng)必須在第一次使用之前通過隨機(jī)讀指令識別出初始無效塊。
3.3.2 "建立壞塊表
識別初始無效塊后,根據(jù)初始無效塊建立一張壞塊表。該壞塊表一共有2 KB數(shù)據(jù),其中每一個bit代表一個塊的好壞(0表示好塊,1表示壞塊),前1 KB數(shù)據(jù)代表芯片第一片的 8 192個塊,后1 KB數(shù)據(jù)代表芯片第二片的8 192個塊。將壞塊表建立完成之后,由于芯片廠家保證第1個塊,也就是塊地址為00h的塊一定是有效塊,因此將壞塊表經(jīng)過ECC編碼后存入第1片第1塊的第1頁中。
3.3.3 "擦除塊
由于NAND FLASH的特性,在每個塊寫入數(shù)據(jù)之前,都要確保該塊已經(jīng)被擦除成功。使用的NAND FLASH芯片有一個狀態(tài)寄存器,可以通過讀取這個狀態(tài)寄存器來判斷是否已完成編程和擦除操作以及這兩種操作已經(jīng)成功完成。
擦除塊之前要先從NAND FLASH中讀出存儲在第1片第1塊的第1頁中的壞塊表并保存在FPGA的RAM中。擦除時根據(jù)壞塊表只對好塊進(jìn)行擦除,在塊擦除操作完成后,讀取狀態(tài)寄存器,如果寄存器顯示擦除失敗,則將該塊在壞塊表中的對應(yīng)位置寫為1。全部塊擦除完成后將更新的壞塊表重新寫入到NAND FLASH中。
3.3.4 "頁編程
頁編程是往NAND FLASH中寫入數(shù)據(jù)。與擦除塊一樣,在頁編程之前要將壞塊表讀到FPGA的RAM中。頁編程時要跳過壞塊并且要對每頁數(shù)據(jù)進(jìn)行ECC編碼,將存儲數(shù)據(jù)和校驗(yàn)數(shù)據(jù)分別放在NAND FLASH的數(shù)據(jù)存儲區(qū)和數(shù)據(jù)備用區(qū)中。頁編程的具體操作以頁為基本單位,當(dāng)命令輸入完成判斷芯片是否完成頁編程,當(dāng)該頁頁編程完成后讀取狀態(tài)寄存器,如果頁編程失敗,將正在執(zhí)行頁編程的塊更新到壞塊表中,并且將該塊數(shù)據(jù)復(fù)制到下一個好塊中。同樣在頁編程完成后將更新的壞塊表重新寫入到NAND FLASH中。
3.3.5 "讀數(shù)據(jù)
在讀數(shù)據(jù)之前將壞塊表讀到FPGA的RAM中,讀出數(shù)據(jù)后在FPGA中進(jìn)行漢明碼譯碼和糾錯,最后發(fā)送給上位機(jī)。如果漢明碼譯碼過程中發(fā)現(xiàn)位反轉(zhuǎn),則將該頁所在塊標(biāo)定為壞塊,更新到壞塊表中。在讀數(shù)據(jù)完成后將更新的壞塊表重新寫入到NAND FLASH中[15]。
4 "FPGA驗(yàn)證
4.1 "ECC校驗(yàn)算法驗(yàn)證
ECC編碼模塊每4 096 B數(shù)據(jù)生成4 B校驗(yàn)碼,編碼模塊設(shè)計(jì)為并行接口,實(shí)現(xiàn)了對NAND FLASH整頁數(shù)據(jù)進(jìn)行編碼。漢明碼編碼結(jié)果仿真如圖6所示。圖中,data_in為寫入數(shù)據(jù);data_out為編碼得到的校驗(yàn)碼;“i”表示第幾個周期,如第0個數(shù)據(jù)為0x80,第1個數(shù)據(jù)為0x2A。經(jīng)過4 096個周期,漢明碼編碼完成,漢明碼編碼為256A569A。
將剛才編碼中的第4 095個數(shù)據(jù)0xD1更改為0xD0。如圖7所示,譯碼模塊檢測出數(shù)據(jù)的第data_ram_addr_n個字節(jié)出現(xiàn)錯誤,對應(yīng)為這個字節(jié)數(shù)據(jù)的第data_ram_data_n位出現(xiàn)位翻轉(zhuǎn)。由仿真結(jié)果看出,該ECC校驗(yàn)算法成功實(shí)現(xiàn)了對4 096個字節(jié)的校驗(yàn)和糾錯。
4.2 "數(shù)據(jù)讀取速度實(shí)測結(jié)果
經(jīng)過多次重復(fù)的數(shù)據(jù)讀取速度測試,接口速度基本穩(wěn)定在39 MB/s。速度測試結(jié)果如圖8所示。
4.3 "數(shù)據(jù)讀取實(shí)測結(jié)果
利用數(shù)字信號發(fā)生器產(chǎn)生一路周期為10 Hz、峰峰值為488 mV的正弦信號,如圖9所示。通過A/D轉(zhuǎn)換模塊采集該信號并存儲在NAND FLASH中。通過連接上位機(jī)讀出數(shù)據(jù)并將數(shù)據(jù)顯示成波形,如圖10所示。實(shí)驗(yàn)結(jié)果證明,該系統(tǒng)可以對模擬信號實(shí)現(xiàn)精確顯示,并且存儲性能完好。
4.4 "測試結(jié)果分析
根據(jù)第4.1~4.3節(jié)的各種測試結(jié)果可得,在NAND FLASH數(shù)據(jù)傳輸?shù)接?jì)算機(jī)的過程中,數(shù)據(jù)傳輸穩(wěn)定有效,沒有數(shù)據(jù)的丟失或錯誤。相較于USB 2.0和串口的數(shù)據(jù)傳輸方式,NAND FLASH數(shù)據(jù)存儲的速度有較大提升,且對于NAND FLASH的一些存儲可靠性問題,本文設(shè)計(jì)了數(shù)據(jù)校驗(yàn)和壞塊管理模塊。
5 "結(jié) "論
本文設(shè)計(jì)一個基于USB 3.0的NAND FLASH數(shù)據(jù)存儲系統(tǒng),選用CYUSB3014 USB 3.0芯片作為上位機(jī)與FPGA的通信模塊,提升了數(shù)據(jù)與命令傳輸速度;并且設(shè)計(jì)了NAND FLASH讀寫、數(shù)據(jù)校驗(yàn)和壞塊管理來保證數(shù)據(jù)存儲的準(zhǔn)確性。經(jīng)過FPGA實(shí)際驗(yàn)證,數(shù)據(jù)傳輸速度達(dá)到39 MB/s,且根據(jù)上位機(jī)的數(shù)據(jù)分析,通過原數(shù)據(jù)和存儲數(shù)據(jù)的比較,后者具有較高的穩(wěn)定性。綜上,所設(shè)計(jì)的NAND FLASH數(shù)據(jù)存儲系統(tǒng)有效解決了實(shí)驗(yàn)數(shù)據(jù)傳輸速度較慢的問題。
參考文獻(xiàn)
[1] 喬立巖,李元亨,王戈,等.一種NAND FLASH壞塊管理優(yōu)化方法的實(shí)現(xiàn)[J].電子測量技術(shù),2015,38(7):19?21.
[2] 馬賢.基于FPGA的高速數(shù)據(jù)傳輸接口設(shè)計(jì)[D].桂林:桂林電子科技大學(xué),2023.
[3] 喬衛(wèi)東,李躍,郭梁.航空航天相機(jī)成像性能測試系統(tǒng)研究[J].電子測量與儀器學(xué)報(bào),2020,34(9):9?16.
[4] 申曉敏,錢禮華,杜劍英,等.基于USB 2.0總線的NAND FLASH檢測及控制方法[J].電子技術(shù)應(yīng)用,2023,49(6):44?48.
[5] 李錦明,鄭志旺.基于LVDS和USB 3.0的高速數(shù)據(jù)傳輸接口的設(shè)計(jì)[J].電子測量技術(shù),2021,44(7):1?6.
[6] 鄭芳芳,牛廣越,易亮,等.基于USB 3.0的多通道葉尖間隙數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2023,36(6):874?880.
[7] 陳松.基于USB 3.0的高速數(shù)據(jù)傳輸系統(tǒng)的研究與設(shè)計(jì)[D].成都:電子科技大學(xué),2014.
[8] 劉林仙,喬楠楠,童強(qiáng),等.基于FPGA的USB 3.0通信接口設(shè)計(jì)[J].測試技術(shù)學(xué)報(bào),2021,35(3):261?265.
[9] 華嘉駿.基于AXI總線的USB 3.0控制器的設(shè)計(jì)與驗(yàn)證[D].西安:西安電子科技大學(xué),2021.
[10] 趙寬.基于同步FLASH的高速數(shù)據(jù)記錄儀的設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2021.
[11] 朱金瑞,王代華,蘇尚恩,等.存儲式彈載數(shù)據(jù)記錄儀存儲可靠性技術(shù)研究[J].兵器裝備工程學(xué)報(bào),2019,40(1):159?162.
[12] 文豐,王雨婷,薛志超,等.某記錄器存儲模塊關(guān)鍵技術(shù)的研究[J].電子測量技術(shù),2020,43(22):137?141.
[13] 寧飛.大容量存儲中NAND FLASH壞塊的管理方法[J].電子測試,2010(12):64?68.
[14] LI X, NIU Y, YU J, et al. A bad block management design based on space?borne nand FLASH parallel storage system [C]// 2022 14th International Conference on Communication Software and Networks (ICCSN). Chongqing: IEEE, 2022: 114?118.
[15] 張朗,張建華,王鳴濤,等.適用于FPGA與NAND FLASH陣列星載固態(tài)存儲器的壞塊管理方法[J].空間電子技術(shù),2023,20(4):98?103.