曹 勛,趙冬娥,李致成,張 斌
(中北大學儀器科學與動態測試教育部重點實驗室,太原030051)
?
提高測速系統存儲速率及可靠性的方法*
曹勛,趙冬娥*,李致成,張斌
(中北大學儀器科學與動態測試教育部重點實驗室,太原030051)
摘要:針對破片測速系統對數據存儲速率快、可靠性高的要求,提出了基于流水線設計的數據快速存儲方案和基于FPGA片內建立虛擬存儲器來管理FLASH壞塊列表的方法。該方法有效降低存儲系統的平均響應時間,將數據流的存儲速率提高了近2倍;并且有效地屏蔽FLASH的壞塊,保證了破片數據存儲的可靠性。測試結果表明:數據存儲速率提高到2.4 Mbyte/s,為原始速率的3倍。數據存儲的可靠性為100%。該方法能有效提高測速系統的存儲速率和可靠性。
關鍵詞:存儲測試;存儲速率;流水線設計;壞塊管理
項目來源:教育部科學技術研究重點項目(211027);山西省研究生優秀創新項目(20143080)
在高速多目標(破片)的動態測速試驗中,由于戰斗部爆炸時造成的測試環境惡劣,測速儀器能否采集到完整可靠的試驗數據是本次試驗的關鍵。因此,研究實現數據高速、可靠的存儲方法具有迫切性和實際意義。近年來,NAND Flash以其大容量、掉電非易失性、可反復擦除等特點在動態測試領域得到廣泛應用。但其存儲速率不高,出現壞塊時造成數據丟失的問題急需解決。前人采用FIFO緩存數據流的方法只能有限的緩解數據溢滿的問題,而提出建立壞塊列表以提高數據存儲可靠性的方法則存在耗費大量硬件資源或軟件編程復雜的不足[1-3]。為此,采用流水線設計來提高存儲速率,通過建立FLASH壞塊列表方法解決數據丟失問題,保證存儲系統的可靠性。
該存儲系統采用模塊化設計,由3個主要部分構成(不計電源等輔助模塊):以FPGA作為主控設備,SRAM作為數據緩存單元,NAND Flash作為最終數據存儲單元。系統設計思路如下:
(1)FPGA內的I/O接口不僅數量豐富,而且可通過軟件配置,滿足不同電氣特性的接口標準,特定的I/O單元的數據傳輸速率高達1Gbit/s以上,滿足存儲系統對I/O單元的數量和更快傳輸速率的雙重要求。此外,FPGA內部的可配置邏輯單元(CLB)可配置為分布式RAM,這一特點滿足設計者的小量數據的緩存,該存儲系統基于配置的分布式RAM,建立片內存儲器,實現對Flash塊列表的存儲,并將該列表備份到NAND Flash。
(2)SRAM作為數據緩存單元,在數據采集存儲系統中必不可少。因為FPGA將接收到的數據寫入Flash的速率遠快于NAND Flash對讀寫操作的響應速率,因此,在FPGA和Flash的數據流傳輸之間,增加SRAM用作數據的緩沖。FPGA可以快速的將數據寫入SRAM,并以合適的速率把數據從SRAM中讀出,寫入到NAND Flash里,實現了兩種不同時鐘工作頻率的統一。
(3)NAND Flash以其大容量、高集成度、掉電非易失性等優點,成為現今存儲數據器件的首選。在動態測試系統中,待采集的數據量大,SRAM容量小、體積大,無法滿足大容量數據的存儲,且掉電數據丟失。因此,該存儲系統選用NAND Flash來存儲采集到的數據。存儲系統整體設計框圖見圖1。

圖1 存儲系統整體框圖
2.1流水線設計
該存儲系統整個數據處理過程是單向的,上一個步驟從SRAM讀出的數據作為輸出,即是下個步驟向NAND Flash寫入數據操作的輸入。此時,采用流水線設計的方案就可以間接加快系統的工作頻率,將存儲系統的數據流的存儲速率提高了近2倍。流水線設計是將原本一個規模較大、層次較多的組合邏輯電路分割為幾個級,上一級的輸出即是下一級的輸入而無反饋回路。當上一個時鐘周期完成上一級的輸出,此時下一級的輸入在該時鐘上升沿的作用下準備就緒;同理,當下一個時鐘周期完成下一級的輸出時,上一級的輸出準備就緒,如此循環操作,就可以用一個時鐘周期時間同時完成原本需要兩個時鐘周期數據流操作,因此數據流的存儲速率成倍遞增。且電路的規模越大、級數越多,流水線設計的優勢越發明顯。流水線設計示意圖見圖2。

圖2 流水線設計示意圖
該存儲系統的操作分為3個步驟:步驟1為SRAM輸入,即FPGA通過I/O總線將數據寫入到SRAM里;步驟2為SRAM輸出,即FPGA從SRAM里讀出數據,準備將讀出的數據寫入Flash里;步驟3 為Flash輸入,即FPGA通過I/O總線將數據寫入到Flash里。由圖2可知,在3clk以后,每個時鐘周期內都會完成數據流從SRAM的輸入到輸出給Flash的轉換。換言之,該流水線設計方案只在開始階段需要3個時鐘周期的建立時間,之后就會不斷的輸入輸出數據,從而極大地提高數據流的存儲速率。如果不采用流水線設計方案,那么完成數據從輸入到輸出需要3個周期時間,因此采用流水線設計則能將數據流的存儲速率提高了近2倍。在某高速多目標(破片)的動態測試系統中,使用12位轉換精度、2MHz采樣率的AD采集模塊進行數據采集,該存儲系統能實現將采集到的數據實時存儲。
2.2Flash的壞塊管理
壞塊的產生是由于在NAND Flash的生產和使用過程中均有一定概率產生壞塊。當往壞塊里存儲數據時,會導致操作錯誤,造成存儲的數據丟失,因此建立一套簡便可靠的壞塊列表必不可少。
目前常見的壞塊管理方法有以下3種:(1)在FPGA內調用IP核,利用FPGA內部資源建立小容量RAM來存儲檢測到的壞塊列表。該方法的缺點是不僅加大了軟件設計復雜性,而且因RAM掉電易失性的特點會造成壞塊列表在系統斷電時已經丟失,系統下次工作時需要重新建立,從而造成系統工作重復性;(2)利用FPGA內部資源建立for循環函數來檢測和屏蔽壞塊的方法。但for循環函數在程序編譯時是對相同功能的電路單元的復制,大量占用FPGA內部有限的邏輯資源,造成FPGA邏輯資源的極大浪費;(3)利用FAT文件系統來檢測和屏蔽壞塊。該方法在文件級解決壞塊對相關知識有較高要求,不符合簡單易行原則[4-5]。
于此,提出在FPGA片內通過軟件編程的方法,自定義一個寄存器類型的虛擬存儲器用于存儲壞塊列表,其格式為reg[wordsize-1:0]memory[memsize-1:0]。系統把檢測到的壞塊對應的地址寫入到該寄存器里。該方法的具體設計流程圖見圖3所示。

圖3 壞塊管理程序設計流程圖
該方法設計思路:先對各寄存器進行初始化操作,系統狀態機復位;然后建立寬度為1、深度為1024的虛擬存儲器,并從首塊開始檢測,芯片出廠時設定每塊的第一頁和第二頁的第2048列地址里存儲的字節為判斷塊好壞與否的標志,該字節均為“FF”時,判定為好塊,否則為壞塊。當檢測為好塊時,存儲器里對應地址存儲的值置“0”,壞塊置“1”。不斷循環檢測,更新壞塊列表。當檢測完最末塊,壞塊列表建立完成,并將該表寫入到Flash指定的好塊中作為備份,在系統斷電后壞塊列表也不會丟失。
該方法的優點如下:(1)只需建立一個虛擬存儲器來存儲壞塊列表,而無需調用集成的RAM IP核,極大的降低了程序設計的復雜性。(2)當采用多片大容量NAND Flash進行級聯存儲時,可以將多個存儲器進行拼接,增大存儲器的容量,從而可以同時存儲多個壞塊列表,簡單易行;(3)該存儲系統應用于戰斗部爆炸試驗,工作環境惡劣,將壞塊列表備份在Flash里可以保證遇到系統突發斷電時,依舊可從Flash里調出壞塊列表,從而保證所讀出數據的正確性。綜上,該方法簡便了壞塊列表的管理,而且確保了系統存儲數據的可靠性。
3.1Flash壞塊列表的測試結果
存儲系統選用的Flash芯片共有1024個塊。由上文可知,當被檢測的塊為好塊時,存儲器中對應地址的值設置為“0”,壞塊設置為“1”。實驗總共得到1024個檢測數據。壞塊列表的測試結果見圖4(上位機以十六進制顯示)。

圖4 壞塊列表測試結果圖
由上述壞塊列表的測試結果可知,被檢測的NAND Flash芯片的1024個存儲塊全部完好,沒有壞塊出現。此外,在每次使用時不斷更新壞塊列表,屏蔽新產生的壞塊,確保采集到的數據存儲到好塊中,保證了存儲系統的可靠性。
3.2系統存儲速率和可靠性的測試結果
破片測速試驗中,當戰斗部爆炸產生的高速飛行的破片穿過激光光幕時,探測器會產生一個脈沖信號,即為破片過靶信號[6-8]。破片信號經AD轉換后將數據存儲到Flash里,然后讀出數據傳輸到上位機進行顯示。此外,系統觸發后開始存儲數據,計時器開始計時,計時指示燈點亮,當破片數據存儲完畢后,計時指示燈熄滅并停止計時,從而算得系統存儲全部數據所需時間。破片過靶波形見圖5、系統存儲數據完畢所需時間的測試結果見表1。

圖5 系統采集到破片過靶波形

表1 系統存儲速率的測試結果
由圖5可知,系統存儲的數據在上位機顯示結果:采集到的兩個破片的脈沖信號完整,小尺寸破片脈沖信號幅值小,為1.4 V;大尺寸破片脈沖信號幅值大,為1.9 V,圖中其他無規律的小幅值振動信號為噪聲信號。此波形結果與理論分析相同,證實了該系統存儲的數據正確性和可靠性。由表1可知,基于流水線設計的改進后存儲系統在存儲8 Mbyte數據的5次測試中,平均存儲速率提高為原始速率的3倍,達到2.4 Mbyte/s。
提出了基于流水線設計的數據快速存儲方案和基于FPGA片內建立虛擬存儲器來管理FLASH壞塊列表的方法。文中首先詳述流水線設計的具體工作流程,進而驗證該方法將系統數據存儲速率提高到2.4 Mbyte/s,約為原始系統的3倍;然后詳細闡述基于FPGA片內建立虛擬存儲器的新方法管理Flash壞塊列表的優越性,從而保證了系統存儲數據的可靠性;最后給出實際試驗的測試結果驗證了該方法的可行性。今后擬在存儲系統的數據傳輸安全性上作進一步研究。
參考文獻:
[1]劉瑞,黃魯,陳楠.基于FLASH的高速大容量固態存儲系統設計[J].測控技術,2009,(04):1-3.
[2]張雯,崔建杰,張新.一種多通道nand flash陣列的壞塊管理方案[J].電子器件,2014,37(5):816-821.
[3]徐永剛,任國強,吳欽章,等. NAND Fash圖像記錄系統壞塊管理關鍵技術[J].紅外與激光工程,2012,41(4):1101-1106.
[4]吳鵬.高速實時Flash陣列數據采集系統研究與實現[D].南京:南京理工大學,2007.
[5]舒文麗,吳云峰,趙啟義,等. NAND Flash存儲的壞塊管理方法[J].電子器件,2011,34(4):580-583.
[6]鄧均,周漢昌,趙冬娥.大面積平行光幕彈著點測試系統[J].光電工程,2010,(03):18-23.
[7]Donge Zhao,Hanchang Zhou,Ji Liu,et al. High-Precision Veloci?ty Measuring System for Projectiles Based on Retro- Reflective Screen[J]. Optic,2013,124:544-548.
[8]趙冬娥,周漢昌.基于大面積激光光幕的彈丸速度測試技術研究[J].測試技術學報,2005(4),19:416-419.
曹勛(1990-),男,湖北黃岡人,中北大學碩士研究生,主要研究方向為存儲測試技術,caoheqichun@163.com;

趙冬娥(1970-),女,山西侯馬人,中北大學教授,主要研究方向為光電探測技術,zhaodonge@nuc.edu.cn。

Design of Network Video Conference System Based on Embedded System*
CHEN Zhangrong1*,JIA juncheng2,YAN Jianfeng1
(1.Suzhou High Vocational and Technical School,Car Networking Institute,Soochow University,Suzhou Jiangsu 215008,China;2.Institute of Suzhou University,Vehicle Networking,Suzhou Jiangsu 215008,China)
Abstract:In order to solve the problems existing in traditional video conferencing,a kind of network video confer?ence system based on embedded technology is proposed.The system using Linux system and S3C2440 controller as the core,using WiFi technology for audio,video data transmission,UVC camera to capture video data,audio acqui?sition chip for acquisition to the voice data are compressed and transmitted. The receiving end can receive continu?ous frame images and audio information of the synchronization,and can synchronize the local audio and video data to the transmitting end. The results show that the video conference system is stable are reliable;audio and video da?ta are real-time and accurate.
Key words:embedded technology;network video conferencing system;UVC camera;audio acquisition chip;WIFI technology
doi:EEACC:6210D;6430J10.3969/j.issn.1005-9490.2016.01.032
收稿日期:2015-03-11修改日期:2015-04-15
中圖分類號:TP06
文獻標識碼:A
文章編號:1005-9490(2016)01-0152-04