暢琳 沈小林 劉長明
【摘要】該數(shù)據(jù)記錄設備的存儲系統(tǒng)采用FPGA為控制核心,存儲介質(zhì)選用NAND FLASH 存儲芯片,采用乒乓工作思想,利用并行處理技術(shù)和流水線技術(shù)實現(xiàn)了多片低速FLASH時高速數(shù)據(jù)的存儲,提高了整個系統(tǒng)的存儲容量和存儲速度。
【關(guān)鍵詞】并行處理;流水線思想;NAND;FLASH;FPGA
Abstract:In the recording system of the data recording device, FPGA is taken as the control core and NAND FLASH as the storage medium. The application of parallel processing technology and pipeline technology makes high speed data storage achieved by several low speed flash , which improves the storage capacity and speed of whole system.
Keywords:parallel processing technology;pipeline technology;NAND;FLASH;FPGA
數(shù)據(jù)記錄設備由于它使用半導體存儲芯片作為存儲介質(zhì),所以其存儲密度高、無轉(zhuǎn)動部件、可靠性高、體積小、重量輕,因而逐漸成為車載的數(shù)據(jù)記錄器的主流方案。閃速存儲器(簡稱閃存)作為一種新興的半導體存儲器件,以其獨有的特點得到了迅猛的發(fā)展,具有非易失、可靠性高、功耗小、壽命長、密度大、成本低、適應惡劣的環(huán)境,具有抗震動、抗沖擊、溫度適應范圍寬等特點。
1.高速大容量存儲系統(tǒng)設計
本設計采用高速大容量存儲卡的組成機制和系統(tǒng)實現(xiàn)方案采用固態(tài)FLASH(存為存儲介質(zhì),F(xiàn)PGA(現(xiàn)場可編程門陣列)為存儲陣列的控制核心,針對外部高速數(shù)據(jù)的輸入,實現(xiàn)用高密度、相對低速的FLASH存儲器對高速數(shù)據(jù)的可靠存儲。要實現(xiàn)數(shù)據(jù)的正常常通信,需要一個控制核心來控制眾多的FLASH芯片,以便將接口和FLASH陣列內(nèi)部的數(shù)據(jù)實現(xiàn)互傳。它主要包括接口電路、中心邏輯控制電路FPGA、FLASH存儲器、電壓穩(wěn)壓模塊電路等。
存儲系統(tǒng)將采樣的數(shù)據(jù)傳給FLASH存儲卡保存,完成數(shù)據(jù)的存儲。FLASH存儲卡有一個高速的USB2.0接口,可以方便的和計算機之間進行數(shù)據(jù)交換。我們對存儲卡的控制也都是通過USB接口實現(xiàn)的。存儲系統(tǒng)的結(jié)構(gòu)示意圖如圖1.1所示:
圖1.1 存儲系統(tǒng)結(jié)構(gòu)示意圖
設計將采用三星公司的K9WBG08U1M存儲芯片。該芯片為NAND FLASH芯片,工作在2.7V-3.6V電壓下,有4GB的存儲容量,內(nèi)部由2個2GB的FLASH構(gòu)成,每片F(xiàn)LASH由8192個塊組成,每塊有64頁,每頁能存儲(4096+128)個字節(jié)的數(shù)據(jù),頁編程時間為200us,塊擦除時間為1.5ms。
要實現(xiàn)低速模塊對高速數(shù)據(jù)的處理,一般采用的是乒乓工作的原理。所謂乒乓處理,是指當設計的時序要求很高,低速器件滿足不了高速輸入的傳輸要求時,通過將數(shù)據(jù)進行串并轉(zhuǎn)換,用多個操作模塊并行處理、乒乓工作,從而達到多個低速器件共同完成對高速輸入的分流。
按照操作FLASH的傳統(tǒng)方法,存儲完一片F(xiàn)LASH后,再進行下一片F(xiàn)LASH的操作,這樣最高存儲速度也只是單片F(xiàn)LASH的存儲速度即5.1MB/s,顯然無法適用于高速數(shù)據(jù)傳輸存儲的場合。通過并行處理技術(shù)可以很直觀的提高存儲速度,具體實現(xiàn)方法是:將N片低速FLASH芯片并聯(lián)起來,使用相同的控制線、片選線和讀寫信號線,構(gòu)成一個多位寬的FLASH組。這樣N片F(xiàn)LASH并行工作,進行相同的操作,存儲量可達到單片F(xiàn)LASH的N倍,所以理論上存儲速度也是單片F(xiàn)LASH的N倍。
流水工作思想是一種控制FLASH陣列的結(jié)構(gòu)示意、FLASH存儲陣列、FLASH共享數(shù)據(jù)總線。借鑒這種技術(shù)在進行FLASH存儲時,可以大大節(jié)省存儲時間,提高存儲速度。FLASH每頁數(shù)據(jù)的加載時間和編程時間是器件本身所決定的,當加載完一頁數(shù)據(jù)后,F(xiàn)LASH就進入忙狀態(tài),此時需要等待加載的數(shù)據(jù)自動編程,即將數(shù)據(jù)從寄存器中寫入存儲單元內(nèi),這期間不能進行其余的操作,當編程結(jié)束后,F(xiàn)LASH才恢復空閑狀態(tài),此后才能進行下一頁數(shù)據(jù)的加載,然后再進行編程。因此如果可以善加利用編程時間,使FLASH在進行本頁數(shù)據(jù)編程的同時去執(zhí)行下一頁數(shù)據(jù)的加載,這樣便可節(jié)省存儲時間,提高速度。加載完一頁數(shù)據(jù)的時間約為102.5μs,最大編程時間為700μs,這樣在每頁的編程時間內(nèi)可以完成7次的FLASH加載操作(700/102.5≈7)。
2.主機與存儲板的通信橋梁
為了增強板卡使用的通用性,我們同時使用USB和CPCI總線接口做為主機和存儲板之間的通信橋梁,以便在不同的使用環(huán)境下都能和主機實現(xiàn)有效的數(shù)據(jù)通信。
CY7C68013芯片提供了兩種和外部交換數(shù)據(jù)的方式:可編程接口GPIF(General Programmable Interface)和Slave FIFOS,通過配置芯片的寄存器就可以選擇其中一種方式。因為如果選用主方式,CY7C68013片內(nèi)RAM太小,無法下載固件代碼,還需另外設置片外擴展EPROM,增加了電路的復雜度,而且由于我們可以用FPGA來控制USB芯片,因此我們選擇從方式工作訪問比較靈活簡單。
該系統(tǒng)需要兩個驅(qū)動程序,即通用驅(qū)動和下載固件的驅(qū)動。通用驅(qū)動完成與外設和用戶程序的通信及控制。而下載固件的驅(qū)動則只負責在外設連接USB總線后把特定的固件程序下載到FX2的RAM中。
3.存儲板的電路設計
3.1 電源設計
底板可以提供3.3V、5V、+12V、-12V和接地引腳。12V、-12V電源插針只有一根,只能為每塊板卡提供500mA的電流。由于FLASH、USB芯片都工作在3.3V,相應FPGA上的大部分I/0電壓也為3.3V,因此我們通過J1接插頭選擇底板3.3V供電。FPGA內(nèi)核的電壓為1.2V,需要把3.3V電壓轉(zhuǎn)換成1.2V。電源模塊電路圖如圖3.1所示。
圖3.1 電源模塊電路
此電源模塊可以為系統(tǒng)提供3.3V電壓標準電壓,從而為系統(tǒng)正常運行提供保障。
3.2 FPGA和外部ROM的配置電路
FPGA是基于SRAM的可編程器件,掉電后FPGA上的配置信息全部丟失,所以FPGA構(gòu)造的存儲系統(tǒng)在每次上電后都依賴于外部存儲器來配置才能實現(xiàn)對系統(tǒng)的控制,本課題采用XCF01SVO20作為外部ROM。配置電路圖如圖3.2所示。
3.3 高速存儲芯片陣列電路
本課題采用流水線設計思想,對單片K9WBG08U1M FLASH芯片而言,存儲速度最高可達5.1MB/s,4片速度可達20MB/s以上,完全滿足設計要求。并行總線電路圖連接如圖3.3所示。
參考文獻
[1]朱知博.基于NAND FLASH的高速大容量存儲系統(tǒng)設計[J].現(xiàn)代電子技術(shù),2011(08):170-173.
[2]劉成明,李新娥,張艷兵.基于FPGA 的存儲測試系統(tǒng)的設計[J].山西電子技術(shù),2011(4):1-2.
[3]楊海濤,蘇濤.基于FPGA的高速大容量固態(tài)存儲設備設計[J].國外電子元器件,2007(5):1-2.
作者簡介:
暢琳(1989—),女,山西太原人,碩士研究生,研究方向:控制工程。
沈小林,男,副教授,碩士生導師,研究方向:控制理論與控制工程,導航、制導與控制,檢測技術(shù)與自動化裝置。
劉長明,男,講師,研究方向:控制理論與控制工程。