曹 勛,趙冬娥,李致成,張 斌
(中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
?
提高測速系統(tǒng)存儲(chǔ)速率及可靠性的方法*
曹勛,趙冬娥*,李致成,張斌
(中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,太原030051)
摘要:針對(duì)破片測速系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)速率快、可靠性高的要求,提出了基于流水線設(shè)計(jì)的數(shù)據(jù)快速存儲(chǔ)方案和基于FPGA片內(nèi)建立虛擬存儲(chǔ)器來管理FLASH壞塊列表的方法。該方法有效降低存儲(chǔ)系統(tǒng)的平均響應(yīng)時(shí)間,將數(shù)據(jù)流的存儲(chǔ)速率提高了近2倍;并且有效地屏蔽FLASH的壞塊,保證了破片數(shù)據(jù)存儲(chǔ)的可靠性。測試結(jié)果表明:數(shù)據(jù)存儲(chǔ)速率提高到2.4 Mbyte/s,為原始速率的3倍。數(shù)據(jù)存儲(chǔ)的可靠性為100%。該方法能有效提高測速系統(tǒng)的存儲(chǔ)速率和可靠性。
關(guān)鍵詞:存儲(chǔ)測試;存儲(chǔ)速率;流水線設(shè)計(jì);壞塊管理
項(xiàng)目來源:教育部科學(xué)技術(shù)研究重點(diǎn)項(xiàng)目(211027);山西省研究生優(yōu)秀創(chuàng)新項(xiàng)目(20143080)
在高速多目標(biāo)(破片)的動(dòng)態(tài)測速試驗(yàn)中,由于戰(zhàn)斗部爆炸時(shí)造成的測試環(huán)境惡劣,測速儀器能否采集到完整可靠的試驗(yàn)數(shù)據(jù)是本次試驗(yàn)的關(guān)鍵。因此,研究實(shí)現(xiàn)數(shù)據(jù)高速、可靠的存儲(chǔ)方法具有迫切性和實(shí)際意義。近年來,NAND Flash以其大容量、掉電非易失性、可反復(fù)擦除等特點(diǎn)在動(dòng)態(tài)測試領(lǐng)域得到廣泛應(yīng)用。但其存儲(chǔ)速率不高,出現(xiàn)壞塊時(shí)造成數(shù)據(jù)丟失的問題急需解決。前人采用FIFO緩存數(shù)據(jù)流的方法只能有限的緩解數(shù)據(jù)溢滿的問題,而提出建立壞塊列表以提高數(shù)據(jù)存儲(chǔ)可靠性的方法則存在耗費(fèi)大量硬件資源或軟件編程復(fù)雜的不足[1-3]。為此,采用流水線設(shè)計(jì)來提高存儲(chǔ)速率,通過建立FLASH壞塊列表方法解決數(shù)據(jù)丟失問題,保證存儲(chǔ)系統(tǒng)的可靠性。
該存儲(chǔ)系統(tǒng)采用模塊化設(shè)計(jì),由3個(gè)主要部分構(gòu)成(不計(jì)電源等輔助模塊):以FPGA作為主控設(shè)備,SRAM作為數(shù)據(jù)緩存單元,NAND Flash作為最終數(shù)據(jù)存儲(chǔ)單元。系統(tǒng)設(shè)計(jì)思路如下:
(1)FPGA內(nèi)的I/O接口不僅數(shù)量豐富,而且可通過軟件配置,滿足不同電氣特性的接口標(biāo)準(zhǔn),特定的I/O單元的數(shù)據(jù)傳輸速率高達(dá)1Gbit/s以上,滿足存儲(chǔ)系統(tǒng)對(duì)I/O單元的數(shù)量和更快傳輸速率的雙重要求。此外,F(xiàn)PGA內(nèi)部的可配置邏輯單元(CLB)可配置為分布式RAM,這一特點(diǎn)滿足設(shè)計(jì)者的小量數(shù)據(jù)的緩存,該存儲(chǔ)系統(tǒng)基于配置的分布式RAM,建立片內(nèi)存儲(chǔ)器,實(shí)現(xiàn)對(duì)Flash塊列表的存儲(chǔ),并將該列表備份到NAND Flash。
(2)SRAM作為數(shù)據(jù)緩存單元,在數(shù)據(jù)采集存儲(chǔ)系統(tǒng)中必不可少。因?yàn)镕PGA將接收到的數(shù)據(jù)寫入Flash的速率遠(yuǎn)快于NAND Flash對(duì)讀寫操作的響應(yīng)速率,因此,在FPGA和Flash的數(shù)據(jù)流傳輸之間,增加SRAM用作數(shù)據(jù)的緩沖。FPGA可以快速的將數(shù)據(jù)寫入SRAM,并以合適的速率把數(shù)據(jù)從SRAM中讀出,寫入到NAND Flash里,實(shí)現(xiàn)了兩種不同時(shí)鐘工作頻率的統(tǒng)一。
(3)NAND Flash以其大容量、高集成度、掉電非易失性等優(yōu)點(diǎn),成為現(xiàn)今存儲(chǔ)數(shù)據(jù)器件的首選。在動(dòng)態(tài)測試系統(tǒng)中,待采集的數(shù)據(jù)量大,SRAM容量小、體積大,無法滿足大容量數(shù)據(jù)的存儲(chǔ),且掉電數(shù)據(jù)丟失。因此,該存儲(chǔ)系統(tǒng)選用NAND Flash來存儲(chǔ)采集到的數(shù)據(jù)。存儲(chǔ)系統(tǒng)整體設(shè)計(jì)框圖見圖1。
圖1 存儲(chǔ)系統(tǒng)整體框圖
2.1流水線設(shè)計(jì)
該存儲(chǔ)系統(tǒng)整個(gè)數(shù)據(jù)處理過程是單向的,上一個(gè)步驟從SRAM讀出的數(shù)據(jù)作為輸出,即是下個(gè)步驟向NAND Flash寫入數(shù)據(jù)操作的輸入。此時(shí),采用流水線設(shè)計(jì)的方案就可以間接加快系統(tǒng)的工作頻率,將存儲(chǔ)系統(tǒng)的數(shù)據(jù)流的存儲(chǔ)速率提高了近2倍。流水線設(shè)計(jì)是將原本一個(gè)規(guī)模較大、層次較多的組合邏輯電路分割為幾個(gè)級(jí),上一級(jí)的輸出即是下一級(jí)的輸入而無反饋回路。當(dāng)上一個(gè)時(shí)鐘周期完成上一級(jí)的輸出,此時(shí)下一級(jí)的輸入在該時(shí)鐘上升沿的作用下準(zhǔn)備就緒;同理,當(dāng)下一個(gè)時(shí)鐘周期完成下一級(jí)的輸出時(shí),上一級(jí)的輸出準(zhǔn)備就緒,如此循環(huán)操作,就可以用一個(gè)時(shí)鐘周期時(shí)間同時(shí)完成原本需要兩個(gè)時(shí)鐘周期數(shù)據(jù)流操作,因此數(shù)據(jù)流的存儲(chǔ)速率成倍遞增。且電路的規(guī)模越大、級(jí)數(shù)越多,流水線設(shè)計(jì)的優(yōu)勢越發(fā)明顯。流水線設(shè)計(jì)示意圖見圖2。
圖2 流水線設(shè)計(jì)示意圖
該存儲(chǔ)系統(tǒng)的操作分為3個(gè)步驟:步驟1為SRAM輸入,即FPGA通過I/O總線將數(shù)據(jù)寫入到SRAM里;步驟2為SRAM輸出,即FPGA從SRAM里讀出數(shù)據(jù),準(zhǔn)備將讀出的數(shù)據(jù)寫入Flash里;步驟3 為Flash輸入,即FPGA通過I/O總線將數(shù)據(jù)寫入到Flash里。由圖2可知,在3clk以后,每個(gè)時(shí)鐘周期內(nèi)都會(huì)完成數(shù)據(jù)流從SRAM的輸入到輸出給Flash的轉(zhuǎn)換。換言之,該流水線設(shè)計(jì)方案只在開始階段需要3個(gè)時(shí)鐘周期的建立時(shí)間,之后就會(huì)不斷的輸入輸出數(shù)據(jù),從而極大地提高數(shù)據(jù)流的存儲(chǔ)速率。如果不采用流水線設(shè)計(jì)方案,那么完成數(shù)據(jù)從輸入到輸出需要3個(gè)周期時(shí)間,因此采用流水線設(shè)計(jì)則能將數(shù)據(jù)流的存儲(chǔ)速率提高了近2倍。在某高速多目標(biāo)(破片)的動(dòng)態(tài)測試系統(tǒng)中,使用12位轉(zhuǎn)換精度、2MHz采樣率的AD采集模塊進(jìn)行數(shù)據(jù)采集,該存儲(chǔ)系統(tǒng)能實(shí)現(xiàn)將采集到的數(shù)據(jù)實(shí)時(shí)存儲(chǔ)。
2.2Flash的壞塊管理
壞塊的產(chǎn)生是由于在NAND Flash的生產(chǎn)和使用過程中均有一定概率產(chǎn)生壞塊。當(dāng)往壞塊里存儲(chǔ)數(shù)據(jù)時(shí),會(huì)導(dǎo)致操作錯(cuò)誤,造成存儲(chǔ)的數(shù)據(jù)丟失,因此建立一套簡便可靠的壞塊列表必不可少。
目前常見的壞塊管理方法有以下3種:(1)在FPGA內(nèi)調(diào)用IP核,利用FPGA內(nèi)部資源建立小容量RAM來存儲(chǔ)檢測到的壞塊列表。該方法的缺點(diǎn)是不僅加大了軟件設(shè)計(jì)復(fù)雜性,而且因RAM掉電易失性的特點(diǎn)會(huì)造成壞塊列表在系統(tǒng)斷電時(shí)已經(jīng)丟失,系統(tǒng)下次工作時(shí)需要重新建立,從而造成系統(tǒng)工作重復(fù)性;(2)利用FPGA內(nèi)部資源建立for循環(huán)函數(shù)來檢測和屏蔽壞塊的方法。但for循環(huán)函數(shù)在程序編譯時(shí)是對(duì)相同功能的電路單元的復(fù)制,大量占用FPGA內(nèi)部有限的邏輯資源,造成FPGA邏輯資源的極大浪費(fèi);(3)利用FAT文件系統(tǒng)來檢測和屏蔽壞塊。該方法在文件級(jí)解決壞塊對(duì)相關(guān)知識(shí)有較高要求,不符合簡單易行原則[4-5]。
于此,提出在FPGA片內(nèi)通過軟件編程的方法,自定義一個(gè)寄存器類型的虛擬存儲(chǔ)器用于存儲(chǔ)壞塊列表,其格式為reg[wordsize-1:0]memory[memsize-1:0]。系統(tǒng)把檢測到的壞塊對(duì)應(yīng)的地址寫入到該寄存器里。該方法的具體設(shè)計(jì)流程圖見圖3所示。
圖3 壞塊管理程序設(shè)計(jì)流程圖
該方法設(shè)計(jì)思路:先對(duì)各寄存器進(jìn)行初始化操作,系統(tǒng)狀態(tài)機(jī)復(fù)位;然后建立寬度為1、深度為1024的虛擬存儲(chǔ)器,并從首塊開始檢測,芯片出廠時(shí)設(shè)定每塊的第一頁和第二頁的第2048列地址里存儲(chǔ)的字節(jié)為判斷塊好壞與否的標(biāo)志,該字節(jié)均為“FF”時(shí),判定為好塊,否則為壞塊。當(dāng)檢測為好塊時(shí),存儲(chǔ)器里對(duì)應(yīng)地址存儲(chǔ)的值置“0”,壞塊置“1”。不斷循環(huán)檢測,更新壞塊列表。當(dāng)檢測完最末塊,壞塊列表建立完成,并將該表寫入到Flash指定的好塊中作為備份,在系統(tǒng)斷電后壞塊列表也不會(huì)丟失。
該方法的優(yōu)點(diǎn)如下:(1)只需建立一個(gè)虛擬存儲(chǔ)器來存儲(chǔ)壞塊列表,而無需調(diào)用集成的RAM IP核,極大的降低了程序設(shè)計(jì)的復(fù)雜性。(2)當(dāng)采用多片大容量NAND Flash進(jìn)行級(jí)聯(lián)存儲(chǔ)時(shí),可以將多個(gè)存儲(chǔ)器進(jìn)行拼接,增大存儲(chǔ)器的容量,從而可以同時(shí)存儲(chǔ)多個(gè)壞塊列表,簡單易行;(3)該存儲(chǔ)系統(tǒng)應(yīng)用于戰(zhàn)斗部爆炸試驗(yàn),工作環(huán)境惡劣,將壞塊列表備份在Flash里可以保證遇到系統(tǒng)突發(fā)斷電時(shí),依舊可從Flash里調(diào)出壞塊列表,從而保證所讀出數(shù)據(jù)的正確性。綜上,該方法簡便了壞塊列表的管理,而且確保了系統(tǒng)存儲(chǔ)數(shù)據(jù)的可靠性。
3.1Flash壞塊列表的測試結(jié)果
存儲(chǔ)系統(tǒng)選用的Flash芯片共有1024個(gè)塊。由上文可知,當(dāng)被檢測的塊為好塊時(shí),存儲(chǔ)器中對(duì)應(yīng)地址的值設(shè)置為“0”,壞塊設(shè)置為“1”。實(shí)驗(yàn)總共得到1024個(gè)檢測數(shù)據(jù)。壞塊列表的測試結(jié)果見圖4(上位機(jī)以十六進(jìn)制顯示)。
圖4 壞塊列表測試結(jié)果圖
由上述壞塊列表的測試結(jié)果可知,被檢測的NAND Flash芯片的1024個(gè)存儲(chǔ)塊全部完好,沒有壞塊出現(xiàn)。此外,在每次使用時(shí)不斷更新壞塊列表,屏蔽新產(chǎn)生的壞塊,確保采集到的數(shù)據(jù)存儲(chǔ)到好塊中,保證了存儲(chǔ)系統(tǒng)的可靠性。
3.2系統(tǒng)存儲(chǔ)速率和可靠性的測試結(jié)果
破片測速試驗(yàn)中,當(dāng)戰(zhàn)斗部爆炸產(chǎn)生的高速飛行的破片穿過激光光幕時(shí),探測器會(huì)產(chǎn)生一個(gè)脈沖信號(hào),即為破片過靶信號(hào)[6-8]。破片信號(hào)經(jīng)AD轉(zhuǎn)換后將數(shù)據(jù)存儲(chǔ)到Flash里,然后讀出數(shù)據(jù)傳輸?shù)缴衔粰C(jī)進(jìn)行顯示。此外,系統(tǒng)觸發(fā)后開始存儲(chǔ)數(shù)據(jù),計(jì)時(shí)器開始計(jì)時(shí),計(jì)時(shí)指示燈點(diǎn)亮,當(dāng)破片數(shù)據(jù)存儲(chǔ)完畢后,計(jì)時(shí)指示燈熄滅并停止計(jì)時(shí),從而算得系統(tǒng)存儲(chǔ)全部數(shù)據(jù)所需時(shí)間。破片過靶波形見圖5、系統(tǒng)存儲(chǔ)數(shù)據(jù)完畢所需時(shí)間的測試結(jié)果見表1。
圖5 系統(tǒng)采集到破片過靶波形
表1 系統(tǒng)存儲(chǔ)速率的測試結(jié)果
由圖5可知,系統(tǒng)存儲(chǔ)的數(shù)據(jù)在上位機(jī)顯示結(jié)果:采集到的兩個(gè)破片的脈沖信號(hào)完整,小尺寸破片脈沖信號(hào)幅值小,為1.4 V;大尺寸破片脈沖信號(hào)幅值大,為1.9 V,圖中其他無規(guī)律的小幅值振動(dòng)信號(hào)為噪聲信號(hào)。此波形結(jié)果與理論分析相同,證實(shí)了該系統(tǒng)存儲(chǔ)的數(shù)據(jù)正確性和可靠性。由表1可知,基于流水線設(shè)計(jì)的改進(jìn)后存儲(chǔ)系統(tǒng)在存儲(chǔ)8 Mbyte數(shù)據(jù)的5次測試中,平均存儲(chǔ)速率提高為原始速率的3倍,達(dá)到2.4 Mbyte/s。
提出了基于流水線設(shè)計(jì)的數(shù)據(jù)快速存儲(chǔ)方案和基于FPGA片內(nèi)建立虛擬存儲(chǔ)器來管理FLASH壞塊列表的方法。文中首先詳述流水線設(shè)計(jì)的具體工作流程,進(jìn)而驗(yàn)證該方法將系統(tǒng)數(shù)據(jù)存儲(chǔ)速率提高到2.4 Mbyte/s,約為原始系統(tǒng)的3倍;然后詳細(xì)闡述基于FPGA片內(nèi)建立虛擬存儲(chǔ)器的新方法管理Flash壞塊列表的優(yōu)越性,從而保證了系統(tǒng)存儲(chǔ)數(shù)據(jù)的可靠性;最后給出實(shí)際試驗(yàn)的測試結(jié)果驗(yàn)證了該方法的可行性。今后擬在存儲(chǔ)系統(tǒng)的數(shù)據(jù)傳輸安全性上作進(jìn)一步研究。
參考文獻(xiàn):
[1]劉瑞,黃魯,陳楠.基于FLASH的高速大容量固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].測控技術(shù),2009,(04):1-3.
[2]張雯,崔建杰,張新.一種多通道nand flash陣列的壞塊管理方案[J].電子器件,2014,37(5):816-821.
[3]徐永剛,任國強(qiáng),吳欽章,等. NAND Fash圖像記錄系統(tǒng)壞塊管理關(guān)鍵技術(shù)[J].紅外與激光工程,2012,41(4):1101-1106.
[4]吳鵬.高速實(shí)時(shí)Flash陣列數(shù)據(jù)采集系統(tǒng)研究與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2007.
[5]舒文麗,吳云峰,趙啟義,等. NAND Flash存儲(chǔ)的壞塊管理方法[J].電子器件,2011,34(4):580-583.
[6]鄧均,周漢昌,趙冬娥.大面積平行光幕彈著點(diǎn)測試系統(tǒng)[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]趙冬娥,周漢昌.基于大面積激光光幕的彈丸速度測試技術(shù)研究[J].測試技術(shù)學(xué)報(bào),2005(4),19:416-419.
曹勛(1990-),男,湖北黃岡人,中北大學(xué)碩士研究生,主要研究方向?yàn)榇鎯?chǔ)測試技術(shù),caoheqichun@163.com;
趙冬娥(1970-),女,山西侯馬人,中北大學(xué)教授,主要研究方向?yàn)楣怆娞綔y技術(shù),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
中圖分類號(hào):TP06
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1005-9490(2016)01-0152-04