《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種高速數(shù)字視頻信號記錄裝置關(guān)鍵技術(shù)研究
一種高速數(shù)字視頻信號記錄裝置關(guān)鍵技術(shù)研究
2015年電子技術(shù)應(yīng)用第4期
曹翱翔1,2,張會新1,2,劉文怡1,2,丑修建1,2
1.中北大學(xué)電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051; 2.中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對數(shù)字視頻信號傳輸速度快、數(shù)據(jù)量龐大的特點(diǎn),結(jié)合航天遙測系統(tǒng)對儀器設(shè)備可靠性和穩(wěn)定性的實(shí)際要求,設(shè)計了一種專用的數(shù)據(jù)記錄裝置。從圖像完整采集、高速數(shù)據(jù)存儲和圖像準(zhǔn)確回傳三個方面介紹了程序編碼算法,使用異步FIFO解決了模塊間跨時鐘域的問題,選擇Flash交叉雙平面的工作方式并提出一種“無效塊動態(tài)管理算法”以保障高速存儲,最后使用檢測設(shè)備現(xiàn)場模擬系統(tǒng)前端攝像機(jī)和終端計算機(jī),驗(yàn)證了程序編碼算法的有效性。
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)04-0087-04
Key technology research of a high-speed digital video signal recorder
Cao Aoxiang1,2,Zhang Huixin1,2,Liu Wenyi1,2,Chou Xiujian1,2
1.Key Laboratory of Instrumentation Science & Dynamic Measurement, Ministry of Education, North University of China,Taiyuan 030051,China; 2.Education Science and Technology on Electronic Test & Measurement Laboratory, Taiyuan 030051,China
Abstract: For the image data, whose characteristics is high-speed and huge amount, combined with the actual requirements of Aerospace telemetry system on reliability and stability of the equipment, a dedicated image data recorder is designed. Focusing on three aspects, including image acquisition, storage and restoration, the paper presents several kinds of program coding algorithms. Use asynchronous FIFO to solve inter-module clock crossing issues ,select the interleave two-plane work of Flash and propose a " dynamic management algorithm of invalid block " to ensure high-speed storage .After verification of the test equipment,the recorder runs stable and reliable, and has a degree of practicality.
Key words : high-speed image data;image acquisition;data recorder;Flash

  

0 引言

  應(yīng)用于航天遙測中的視頻攝像技術(shù)可以真實(shí)地還原航天器的飛行狀態(tài)、動作和現(xiàn)場環(huán)境等多項(xiàng)關(guān)鍵指標(biāo)。航天器的飛行試驗(yàn)要求圖像具有較高的空間分辨率和時間分辨率,才不致丟失重要細(xì)節(jié),通常使用高速攝像機(jī)作為采集系統(tǒng)前端。在該領(lǐng)域,現(xiàn)場的場景必須完整、真實(shí)地還原出來,而航天器有時可能不在地面監(jiān)測范圍之內(nèi),一些在軌試驗(yàn)數(shù)據(jù)只能先存入記錄器中,進(jìn)入監(jiān)測范圍內(nèi)再將數(shù)據(jù)回傳。記錄裝置的容量、帶寬以及其可靠性和穩(wěn)定性等因素都將影響數(shù)據(jù)能否準(zhǔn)確保存,并關(guān)系到整個試驗(yàn)的成敗[1]。

  數(shù)據(jù)存儲技術(shù)的進(jìn)步主要體現(xiàn)在存儲介質(zhì)的發(fā)展和各種通信總線的應(yīng)用上。存儲介質(zhì)從磁帶到硬盤再到半導(dǎo)體器件,逐漸向微小型化、低功耗、高集成度和密集化發(fā)展,而半導(dǎo)體存儲器件已廣泛應(yīng)用于航天遙測領(lǐng)域。隨著1553B、光纖接口、以太網(wǎng)接口等高速總線的應(yīng)用,存儲帶寬也得以提高。LVDS接口憑借其低噪聲、低功耗和極高的傳輸效率等特點(diǎn)在測試計量、圖像處理方面發(fā)揮重要作用。本文旨在設(shè)計一種高可靠性的數(shù)據(jù)記錄器以實(shí)現(xiàn)對高速數(shù)字視頻信號的采集、存儲和回傳。

1 設(shè)計思路

  結(jié)合當(dāng)前數(shù)據(jù)記錄器的研究現(xiàn)狀和發(fā)展趨勢,采用FPGA作為數(shù)據(jù)記錄裝置的中控邏輯單元,用Flash作為核心存儲芯片,使用LVDS作為數(shù)據(jù)傳輸接口,特點(diǎn)是功耗低、可控性高,并且數(shù)據(jù)不易丟失。設(shè)計時,采用自上而下的設(shè)計思想,分成多個模塊進(jìn)行編碼和調(diào)試。

  已知數(shù)字視頻信號參數(shù):畫面分辨率為VGA(640×480),幀率100 f/s,采樣位數(shù)為8 bit,采樣頻率為40 MHz。經(jīng)計算得出接口處的數(shù)據(jù)流為30.72 Mb/s。應(yīng)用于航天遙測的精密儀器對設(shè)備出現(xiàn)誤碼、數(shù)據(jù)丟失等情況有嚴(yán)格的限制,其可靠性和穩(wěn)定性應(yīng)得到保證。確保設(shè)備研制成功的關(guān)鍵技術(shù)有三:一是數(shù)字視頻信號的完整采集,二是選擇合理的Flash工作方式并嚴(yán)格控制其時序約束,三是準(zhǔn)確高效地回傳混有幀標(biāo)記的圖像。

2 關(guān)鍵技術(shù)

  2.1 圖像采集


001.jpg

  攝像機(jī)輸出的數(shù)字視頻信號的時序如圖1所示。垂直同步信號vsync是實(shí)現(xiàn)圖像幀同步的標(biāo)志,當(dāng)vsync為1時,攝像頭有數(shù)據(jù)輸出,vsync上升沿是獲取一幀數(shù)據(jù)的初始時刻;當(dāng)vsync為0時,無數(shù)據(jù)輸出,可以利用這段時間在一幀圖像采集完成后加入其他信息,如時標(biāo)、幀計數(shù)和幀標(biāo)記等。水平同步信號hsync的上升沿為采集每一行的初始時刻,當(dāng)hsync為1時,完成此行640個像素點(diǎn)的采集。重復(fù)操作480次,即可獲取一幀完整的圖像。數(shù)據(jù)采集流程如圖2所示。

002.jpg

  在高速數(shù)據(jù)處理過程中,不同模塊在各自的同步時鐘下工作,為解決跨時鐘域問題,要在數(shù)據(jù)交換接口處添加異步FIFO,以匹配不同傳輸速率的數(shù)據(jù)流。由圖1可知,在一個水平同步周期(18.75 s)內(nèi),采集并寫入FIFO的數(shù)據(jù)量為640字節(jié),若以33 MHz的速率讀FIFO,則在這一時間內(nèi),流出FIFO的數(shù)據(jù)量為618.75字節(jié)。數(shù)據(jù)差值將在Vsync下降沿時達(dá)到最大,為10 200字節(jié),若采用半滿即讀的方式,則FIFO容量應(yīng)大于20 400字節(jié),否則就可能溢出。攝像機(jī)在時鐘上升沿發(fā)數(shù),記錄器用時鐘下降沿取數(shù)。存到記錄器中的數(shù)據(jù)是圖像和信息的組合,為了區(qū)分兩種類型的數(shù)據(jù),采用9位的FIFO緩存數(shù)據(jù),低8位用以寫入數(shù)據(jù)流,最高位(MSB)用來標(biāo)識數(shù)據(jù)類型。部分代碼如下:

  writeclk<=((not clk) and hsync) and vsync);

  ---寫FIFO時鐘

  fifo_in<=′0′ & information when vsync=′0′ else

  ′1′ & image_data;

  ---加 ′0′表示信息,加 ′1′表示圖像

  2.2 數(shù)據(jù)存儲

  Nand Flash有多種編程方式,如頁編程(Page Program)、雙平面頁編程(Two-plane Page Program)和交叉雙平面頁編程(Interleave Two-plane Page Program),如圖3所示。這三種工作方式最終導(dǎo)致Flash寫入數(shù)據(jù)的速度不同[2]。

003.jpg

007.jpg

  由表1可以看出,影響Flash編程時間的主要因素為tPRO。前兩種方式都花費(fèi)了大量的時間用在tPRO上,tPRO會隨著工作電壓和溫度的不同而變化。寫完一整頁需要i個命令字周期、j個尋址周期和m個數(shù)據(jù)周期。

  在三種工作方式下,若不考慮其他影響因素,F(xiàn)lash的持續(xù)寫入速率計算如下:

  DWY[VPCL1[8CXA1E$UAFQ4C.png

  事實(shí)上,在出廠時芯片就存在無效塊,而且在使用過程中還會產(chǎn)生新的無效塊。無效塊的存在一定程度上影響了Flash的寫入速度,按照“判一塊寫一塊”的方法顯然是行不通的。為此,本文采用一種“無效塊動態(tài)管理算法”,即:在執(zhí)行寫操作前對無效塊進(jìn)行檢測,在RAM中建立無效塊地址列表;寫入數(shù)據(jù)時,將當(dāng)前塊地址與列表中的無效塊地址按順序?qū)Ρ扰袛啵蝗粢恢?,則認(rèn)為當(dāng)前塊無效,繼續(xù)判斷下一塊;否則,認(rèn)為當(dāng)前塊有效,可以進(jìn)行寫操作[3]。讀取RAM無效塊列表的時間與無效塊檢測的時間相比微乎其微,在理論上和實(shí)際應(yīng)用中都得到了驗(yàn)證。

004.jpg

  Flash的編程編碼算法本身并不復(fù)雜,但如果不對其做任何處理,一旦數(shù)據(jù)產(chǎn)生誤碼或丟失,在圖像回傳時,可能導(dǎo)致后續(xù)圖像紊亂影響全局。因此,有必要對Flash存儲空間進(jìn)行特殊配置,以空間地址來記錄幀結(jié)構(gòu)。Flash每個Device存儲空間結(jié)構(gòu)如圖4所示,用A13~A31指定頁地址, 總共524 288頁,2個Device共1 048 576頁[4]。一幀圖像數(shù)據(jù)為307 200字節(jié),占用75頁,若按試驗(yàn)要求,飛行器每次工作記錄的5 000幀圖像數(shù)據(jù)僅占用了全空間的36%,有足夠的空間來配置地址,甚至完成地址的選擇和跳躍??臻g地址配置方式如圖5所示:白、灰兩色背景分別表示一幀數(shù)據(jù),圖像數(shù)據(jù)累計寫滿75頁,緊跟在第76頁寫入信息,這樣就完整地記錄了一幀數(shù)據(jù),其中,代表信息的一頁用黑色加粗邊框標(biāo)出。采用交叉雙平面頁編程的工作模式,寫入順序如黑色箭頭方向所示。Flash每一行有8個塊,每塊有64頁,共512頁,每行可以完整寫入6幀數(shù)據(jù),然后跳過56頁進(jìn)入下一行繼續(xù)按照以上方法寫數(shù)[5]。以此類推,每連續(xù)6個數(shù)據(jù)幀就有了統(tǒng)一的存儲結(jié)構(gòu),便于對圖像的恢復(fù)。這樣做的另一個優(yōu)點(diǎn)是可以實(shí)現(xiàn)數(shù)據(jù)的檢錯和糾錯:數(shù)據(jù)從FIFO中流出被寫入Flash時,假若最高位為0,而計數(shù)器并非76,說明傳輸時有數(shù)據(jù)丟失,則在寫完信息數(shù)據(jù)后,直接跳到指定位置寫下一幀,將錯誤限制在一幀內(nèi),而不影響后序數(shù)據(jù)幀[6]。

005.jpg

  2.3 圖像回傳

  圖像回傳的本質(zhì)就是按照圖1的時序?qū)lash存儲的圖像數(shù)據(jù)通過LVDS接口發(fā)出。由于每幀數(shù)據(jù)的附帶信息并非回傳所需,因此可以將第76頁直接跳過;但這樣做的缺點(diǎn)是回傳讀數(shù)和普通讀數(shù)要被分為兩個不同的進(jìn)程,增加了程序占用的資源。因此,可以合并這兩個進(jìn)程,由后續(xù)模塊提取圖像數(shù)據(jù)[7]。這個過程將包括兩部分:一是按照圖5所示黑色箭頭方向讀取數(shù)據(jù)并寫入FIFO低8位,同時根據(jù)存儲空間地址判斷數(shù)據(jù)是圖像還是信息,用FIFO的最高位加以區(qū)分。二是FIFO非空即讀,若為圖像則合理產(chǎn)生vsync、hsync和clk信號,并在clk上升沿時推送數(shù)據(jù);否則將vsync、hsync和clk信號全部置為低電平,且不把數(shù)據(jù)推送至LVDS接口處。過程一相對比較簡單,這里不再敘述;過程二的工作流程如圖6所示。

006.jpg

3 系統(tǒng)驗(yàn)證

  為了驗(yàn)證本文設(shè)計的記錄器的整體性能和可靠性,專門設(shè)計了一套檢測設(shè)備,包括硬件平臺和測試軟件。該設(shè)備的主要功能有:(1)模擬前端攝像機(jī),輸出垂直同步信號、水平同步信號、時鐘信號和8位位寬的數(shù)據(jù)流;(2)接收記錄器回傳的圖像;(3)測試軟件可以直接讀取記錄器中的完整數(shù)據(jù)(稱為“長線讀數(shù)”),也可以讀取回傳至測試設(shè)備中的圖像數(shù)據(jù)(稱為“備用讀數(shù)”);(4)判定幀結(jié)構(gòu)是否完整,檢測數(shù)據(jù)是否正確;(5)顯示圖像。

  由于一幀圖像數(shù)據(jù)有300 KB,若采用遞增模式的信號源,模擬攝像機(jī)輸出的數(shù)據(jù)格式為:1 200個“00h~FFh”+8字節(jié)的附加信息(“14 92”+幀計數(shù)+時標(biāo)+狀態(tài)信息)。

  計算機(jī)軟件執(zhí)行“長線讀數(shù)”或“備用讀數(shù)”命令后,將在線讀取完整數(shù)據(jù)或圖像數(shù)據(jù),存入一個后綴名為.dat的文件,經(jīng)多次考查,記錄裝置存儲的數(shù)據(jù)與檢測設(shè)備發(fā)送的數(shù)字量一致,符合設(shè)計要求。

4 結(jié)束語

  本文主要介紹一種高速數(shù)字視頻信號記錄裝置,從程序編碼方面入手,選擇了穩(wěn)健、高效能的算法,重點(diǎn)介紹了圖像采集、存儲和回傳三項(xiàng)關(guān)鍵技術(shù),并設(shè)計了一套專用的檢測平臺。經(jīng)單機(jī)測試,設(shè)備穩(wěn)定性良好、功能齊備、滿足任務(wù)要求。由于采用的Flash芯片所限,本文所提出的編碼算法僅適用于碼率在40 Mb/s以下的數(shù)據(jù)存儲。

  參考文獻(xiàn)

  [1] 洪應(yīng)平.高速圖像數(shù)據(jù)固態(tài)存儲器的研制[D].太原:中北大學(xué),2011.

  [2] 謝民.NAND型Flash在大容量存儲回放系統(tǒng)中的應(yīng)用[J].集成電路應(yīng)用,2006,3(4):94~98.

  [3] SAMSUNG Electronics.K9WBGU1M Flash Memory:10-13.

  [4] 孟令軍,嚴(yán)帥,龔敬,等.基于FPGA的高速圖像采集存儲系統(tǒng)設(shè)計[J].自動化與儀表,2011,9(26):40-42.

  [5] 常璐.基于NAND Flash陣列的數(shù)據(jù)存儲技術(shù)研究[D].太原:中北大學(xué),2011.

  [6] 齊亞軍,趙鳳軍.一種專用高速數(shù)據(jù)記錄器的設(shè)計與實(shí)現(xiàn)[J].微計算機(jī)信息,2007,23(1):107-109.

  [7] 王小艷,張會新,孫永生.Camera Link協(xié)議和FPGA的數(shù)字圖像信號源設(shè)計[J].國外電子元器件,2008(7):59-61.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。