趙冬青,李治華,甄國涌,劉東海,楊文豪
(中北大學(xué)電子測試技術(shù)國家重點實驗室,太原 030051)
遙測記錄裝置高速數(shù)據(jù)存儲系統(tǒng)設(shè)計*
趙冬青,李治華,甄國涌,劉東海,楊文豪
(中北大學(xué)電子測試技術(shù)國家重點實驗室,太原 030051)
針對遙測系統(tǒng)數(shù)據(jù)記錄裝置中,高速數(shù)據(jù)傳輸速率和存儲速率不匹配問題,提出了一種基于FPGA控制的NAND FLASH陣列實現(xiàn)一種高速流水線式存儲方案。在邏輯設(shè)計上,采用交替雙平面交叉編程的分時加操作技術(shù)、基于FPGA的二級緩存技術(shù),平均存儲速率不低于59 MB/S;在硬件電路上,采用均衡加重技術(shù),提高信號的傳輸質(zhì)量,保證數(shù)據(jù)的可靠性;該系統(tǒng)已成功應(yīng)用于某導(dǎo)彈發(fā)射回收試驗,其可靠性和可行性已在工程實踐中得到驗證。
NAND FLASH,F(xiàn)PGA,高速存儲,雙端口RAM,可靠性
隨著數(shù)據(jù)存儲被廣泛應(yīng)用于工業(yè)自動化、航天航空系統(tǒng),對實時高速大容量存儲要求越來越高。遙測數(shù)據(jù)記錄裝置是記錄飛行器在飛行過程中狀態(tài)參數(shù),接受采編設(shè)備采集的數(shù)據(jù)并實時存儲,由于數(shù)據(jù)傳輸實際速率高于單個存儲單元的存儲速率,因此,采用多個存儲單元并行存儲,如果不能很好地匹配數(shù)據(jù)傳輸與存儲控制的時序與速率,會導(dǎo)致存儲的數(shù)據(jù)出現(xiàn)錯誤。因此,需要進(jìn)行綜合設(shè)計。
在工程應(yīng)用中,要求LVDS接口有效數(shù)據(jù)傳輸速率不高于59 MB/S,設(shè)計要求存儲器能夠正確可靠地存儲LVDS有效數(shù)據(jù),且存儲容量不低于8 GB。
總體設(shè)計框圖如下頁圖1所示,作為存儲器的核心組成部分,存儲模塊有LVDS接口電路、備份接口電路、串并轉(zhuǎn)化芯片SN65LV1224、并串轉(zhuǎn)化芯片SN65LV1023、配置芯片PROM、邏輯控制芯片F(xiàn)PGA、供配電模塊、60M晶振以及存儲芯片F(xiàn)LASH組成。
接口模塊一方面通過均衡器及解串器將采編設(shè)備的數(shù)據(jù)轉(zhuǎn)化成并行數(shù)據(jù)給FPGA,F(xiàn)PGA通過緩存,分組,再打包,最后寫入FLASH芯片;另一方面接受測試臺的指令并下發(fā)給FPGA實現(xiàn)對FLASH的操作。測試臺也可通過備用讀數(shù)接口直接讀取存儲的數(shù)據(jù)。
圖1 總體設(shè)計框圖
根據(jù)設(shè)計要求,LVDS有效數(shù)據(jù)傳輸不高于59 Mb/s,為了實現(xiàn)數(shù)據(jù)正確可靠的傳輸,則要求存儲器存儲速率不低59 MB/s。在本設(shè)計中,選用Micron Flash MT29F32G08AFAAA作為存儲芯片,存儲容量為4 G。高速存儲陣列設(shè)計以兩片NAND FLASH芯片作為存儲芯片,通過FPGA控制FLASH的使能引腳CE1和CE2實現(xiàn)對FLASH的(CE1)LUN0、(CE1)LUN1、(CE2)LUN0、(CE2)LUN1 邏輯控制。
由于FLASH是基于頁編程和塊擦除操作,其中頁編程分為加載過程和自動編程過程,加載過程主要完成地址及命令的下發(fā),自動編程則完成數(shù)據(jù)的存儲[1]。FLASH每次頁編程所需時間約為350 us~560 us,而在此期間不響應(yīng)其他任何指令,這就嚴(yán)重制約了數(shù)據(jù)的持續(xù)寫入,為此可充分利用LUN0和LUN1互不影響、獨立操作的特性,采用流水線式操作方式實現(xiàn)時間的復(fù)用,即若LUN0進(jìn)入頁編程操作時,可以對剩下的3個LUN進(jìn)行寫入頁寄存器操作,反之亦然,從而提高數(shù)據(jù)的吞吐量[2]。由于FLASH結(jié)構(gòu)的特殊性,不同的操作方式會影響數(shù)據(jù)的存儲速率,可分為以下3種:
(1)單平面編程方式:該方式是在同一時刻只對FLASH A或者FLASH B進(jìn)行頁編程操作,無法復(fù)用頁編程時間,造成因為等待而浪費時間,其操作流程圖如圖2所示。
(2)交替頁編程方式:該方式是在對其中一個FLASH A完成加載,并進(jìn)入頁編程時刻,對FLASH B進(jìn)行加載,實現(xiàn)了時間上的復(fù)用,有效避免了因為等待而浪費時間,其操作流程圖如圖3:
圖2 單平面編程操作流程圖
圖3 交替頁編程操作流程圖
(3)交替雙平面編程方式:存儲器內(nèi)部存儲空間有4個plane,每個plane有2 048個塊以及4 k的頁寄存器組成,能夠單獨執(zhí)行頁編程和塊擦除操作。在執(zhí)行交替雙平面編程時,可以充分利用不同plane相互獨立的特性,選擇兩個plane同時操作。假如FLASH A的LUN0為第1組plane,LUN1為第2組plane,F(xiàn)LASH B的 LUN0為第3組plane,LUN1為第4組plane。采用如圖所示的流水線式操作技術(shù),連續(xù)加載和頁編程,大幅度地提高數(shù)據(jù)存儲的速率,其操作流程圖如圖4所示:
圖4 交替雙平面編程操作流程圖
首先對第1組plane執(zhí)行加載操作,加載時間約為200 us,加載完成后,依次對第2組~第4組進(jìn)行加載,總加載時間 t={2(4KB×t+7t)+tdbsy}×3=823.2us>200 us,其中t=1/30 MB/s,tdbsy=1 us,因此,當(dāng)?shù)?組完成了加載后,第1組已完成頁編程,可以繼續(xù)加載。當(dāng)4組全部寫完所用時間約為t={2(4KB×t+7t)+tdbsy}×3=1097.6us,因此,采用兩片F(xiàn)LASH的存儲速率約為 4 096×8×2 B/1 097.6 us=59.7 MB/s,可滿足設(shè)計要求,但也因此對邏輯控制提出了更高的要求。
針對數(shù)據(jù)總線擴展帶來的邏輯控制問題,設(shè)計中充分利用FPGA豐富的內(nèi)存資源和VHDL硬件語言的靈活性和可操作性,在FPGA內(nèi)部構(gòu)造雙端口FIFO[3],實現(xiàn)數(shù)據(jù)緩存,提出兩種解決方案:
方案1:利用FPGA構(gòu)造一個8 K的FIFO。如圖5為邏輯控制示意圖。當(dāng)存儲器采集有效信號并進(jìn)入存儲狀態(tài)時,寫入FIFO的速率約為60 MB/s,當(dāng)寫入的數(shù)據(jù)量為4 096個Byte時,以30 MB/s的速率寫到存儲器(FLASH A)中,然后繼續(xù)判斷FIFO中緩存的數(shù)據(jù)量是否大于4 096,若大于,則以30 MB/s的速率寫到存儲器(FLASH B)中,依次循環(huán)判斷,把有效數(shù)據(jù)寫到存儲器中。
圖5 一級緩存邏輯控制流程圖
對該方案反復(fù)測試發(fā)現(xiàn),存儲器在回讀數(shù)據(jù)后,在某一位置發(fā)現(xiàn)前4 096 Byte的數(shù)據(jù)的幀計數(shù)與后4 096 Byte的幀計數(shù)出現(xiàn)顛倒,經(jīng)分析發(fā)現(xiàn)是由于雙端口的RAM為異步操作造成地址補償信號offset值的誤判引起的[4]。雙向端口的RAM的讀寫時鐘是異步時鐘,寫時鐘是由LVDS解串器解串出來的恢復(fù)時鐘,而讀時鐘則為存儲模塊120 MHz時鐘。在邏輯設(shè)計中,回收讀數(shù)是在滿足地址補償信號offset的情況下執(zhí)行的,而地址補償信號則是在120 MHz時鐘下判斷操作,此時地址補償信號則可能正在發(fā)生變化導(dǎo)致寫地址的值不穩(wěn)定,offset誤判,從而出現(xiàn)幀計數(shù)顛倒的現(xiàn)象。
方案2:FPGA內(nèi)部采用兩級緩存,采用流水線式操作實現(xiàn)60 MB/s的數(shù)據(jù)可靠存儲。設(shè)計中前一級采用8 K的RAM構(gòu)成緩存,以60 MB/s的速率寫入前一級;后一級的緩存采用兩個4 K的FIFO進(jìn)行緩存,以30 MB/s的速率寫入存儲器。如圖為兩級緩存數(shù)據(jù)流程圖。其中一/二級數(shù)據(jù)緩存切換模塊采用flag標(biāo)志來判斷8 KRAM是否有有7 100個數(shù)據(jù),當(dāng)flag為1則二級緩存(A)可以60 MB/s的速率連續(xù)從一級緩存取出4 096個數(shù),當(dāng)寫入二級緩存的數(shù)據(jù)大于100個數(shù)后,以30 MB/s的速率寫到FLASH A中。同時繼續(xù)判斷flag是否為1,如果是則二級緩存(B)同樣以60 MB/s的速率連續(xù)讀取4 096個數(shù)據(jù),當(dāng)讀取的數(shù)據(jù)大于100時,以30 MB/s的速率寫到FLASH B中。依次循環(huán)判斷,將LVDS有效數(shù)據(jù)正確可靠地交替寫入到FLASH A和FLASH B中。
圖6 二級緩存邏輯控制流程圖
方案2的設(shè)計,是通過擴展數(shù)據(jù)總線和采用二級緩存的方法實現(xiàn)數(shù)據(jù)傳輸速率與存儲速率的匹配。單個FLASH的存儲速率是30 MB/s,擴展后兩個FLASH的存儲速率則為60 MB/s,在該方案中,既有效地避免了地址補償信號的誤判造成幀計數(shù)顛倒,又提高了存儲速率,實現(xiàn)了數(shù)據(jù)高速可靠地存儲。
存儲模塊一/二級緩存時序圖如下頁圖7所示,8k_rdclk是一級緩存的讀時鐘,8k_data表示一級緩存數(shù)據(jù)讀出的數(shù)據(jù)量,8k_addr表示一級緩存的地址;a4k_rdclk是二級緩存的寫時鐘,a4k_addr表示二級緩存的寫地址;b4k_rdclk是二級緩存的寫時鐘b4k_addr表示二級緩存的寫地址。
圖7 存儲模塊一/二級緩存時序圖
在遠(yuǎn)距離傳輸高速數(shù)據(jù)時,高速信號在傳輸介質(zhì)中的衰減是存儲數(shù)據(jù)產(chǎn)生誤碼的原因之一[5-6]。因此,在高速數(shù)據(jù)進(jìn)行遠(yuǎn)距離傳輸時,為保證其傳輸質(zhì)量,通常采用信號調(diào)理技術(shù)來針對特定數(shù)據(jù)速率和傳輸介質(zhì),LVDS傳輸時通常采用均衡加重技術(shù)。對此,可以在信號發(fā)送端采用信號驅(qū)動器,接收端采用信號均衡器,以實現(xiàn)信號的長距離穩(wěn)定傳輸。
圖8是利用雙絞線和電纜延展芯片組進(jìn)行高速數(shù)據(jù)傳輸原理圖。LMH0001SQ和LMH0074SQ電纜延展器芯片組可以通過雙絞線驅(qū)動來自FPGA芯片的串行數(shù)據(jù)流。LMH0001SQ是一種高速差分緩存器,可以用于電纜驅(qū)動,信號緩沖和轉(zhuǎn)發(fā)等功能;LMH0074SQ是一種自適應(yīng)均衡器,可以優(yōu)化在雙絞線電纜中傳輸數(shù)據(jù)的均衡性,速度可達(dá)125 MB/s至540 MB/s。電纜終端驅(qū)動器的信號幅值決定了自動均衡電路LMH0074SQ的性能,100 Ω差分電纜(雙絞線電纜)的最佳發(fā)射幅值是±400 mv(800 Vp-p)。LMH0074SQ的能量檢測電路能夠?qū)斎氲男盘柲芰窟M(jìn)行量化,并將其反饋給自動均衡控制電路。自動均衡控制電路對原始信號和反饋信號進(jìn)行比較,并根據(jù)比較結(jié)果來控制均衡濾波器,使信號的高頻分量獲得增益。
圖8 雙絞線延長傳輸原理圖
對改進(jìn)后的存儲器進(jìn)行功能測試。為了模擬惡劣環(huán)境,將存儲器、采編器放在高低溫箱中,并通過測試電纜連接到測試臺。測試臺下發(fā)不同幅值和頻率的模擬信號以及數(shù)字信號模擬飛行狀態(tài)。在數(shù)據(jù)回收后,由上位機對數(shù)據(jù)進(jìn)行分解處理。通過備用讀數(shù)接口和采編存儲數(shù)據(jù)接口回讀,經(jīng)大量重復(fù)測試,兩者數(shù)據(jù)完全一致,證明了該設(shè)計能夠正確可靠地采集、存儲、回收讀數(shù),測試結(jié)果如圖9所示:
圖9 存儲器A/B測試結(jié)果截圖
本設(shè)計中,采用交替雙平面并行存儲和二級緩存技術(shù),大大提高了數(shù)據(jù)存儲速率,同時采用均衡加重技術(shù)提高信號的傳輸質(zhì)量,保證數(shù)據(jù)的可靠性和完整性,在數(shù)據(jù)高速存儲和可靠回收方面有廣泛的應(yīng)用前景。
[1]張凱華,任勇峰,賈興中,等.基于FPGA的高速數(shù)據(jù)存儲系統(tǒng)優(yōu)化設(shè)計[J].電子技術(shù)應(yīng)用,2014,40(9):37-40.
[2]郭柳柳,甄國涌,劉東海,等.基于FPGA高速圖像數(shù)據(jù)的存儲及顯示設(shè)計 [J]. 電子技術(shù)應(yīng)用,2014,40(11):75-77.
[3]劉小杰,李明輝,樊立云,等.風(fēng)電廠遠(yuǎn)程集控中心的設(shè)計與應(yīng)用[J].內(nèi)蒙古電力科技,2011,29(2):41-44.
[4]劉飛.小型高速圖像存儲系統(tǒng)的設(shè)計[D].西安:西安電子科技大學(xué),2009.
[5]陸浩,王振占.高速大容量固態(tài)存儲器設(shè)計[J].計算機工程,2011,37(15):226-231.
[6]馬游春,張濤,李錦明.FPGA集成FIFO在過載存儲測試系 統(tǒng) 中 的 應(yīng) 用 [J]. 儀 器 儀 表 學(xué) 報 2006,27(6):2350-2351.
High-speed Data Storage System Design of Telemetering Recording Device
ZHAO Dong-qing,LI Zhi-hua,ZHEN Guo-yong,LIU Dong-hai,YANG Wen-hao
(National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China)
Focused on the problem that high speed data transmission rate and storage rate does not match well in data recording device of the telemetry system,a high-speed line type storage solution of NAND FLASH array based on FPGA is proposed.On the logic design,by using the alternating biplanar cross programmed load sharing technical operations and FPGA-based secondary cache technology,the average rate of data storage is better than 59 MB/S.On the hardware circuit design,the use of balanced compound technology improves the quality of signal transmission,and ensures the data reliability.The system has been successfully applied to certain missile launch recovery test,so the reliability and feasibility has been verified in practice.
NAND FLASH,F(xiàn)PGA,high-speed storage,dual port RAM,reliability
1002-0640(2017)10-0129-04
TP302
A
10.3969/j.issn.1002-0640.2017.10.027
2016-09-08
2016-10-07
國家自然科學(xué)基金資助項目(51275492)
趙冬青(1975- ),男,山西晉中人,副教授,碩士生導(dǎo)師。研究方向:高速數(shù)據(jù)采集存儲及處理、應(yīng)用軟件開發(fā)。