《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種高速數(shù)字視頻信號(hào)記錄裝置關(guān)鍵技術(shù)研究
一種高速數(shù)字視頻信號(hào)記錄裝置關(guān)鍵技術(shù)研究
2015年電子技術(shù)應(yīng)用第4期
曹翱翔1,2,張會(huì)新1,2,劉文怡1,2,丑修建1,2
1.中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051; 2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)數(shù)字視頻信號(hào)傳輸速度快、數(shù)據(jù)量龐大的特點(diǎn),結(jié)合航天遙測(cè)系統(tǒng)對(duì)儀器設(shè)備可靠性和穩(wěn)定性的實(shí)際要求,設(shè)計(jì)了一種專用的數(shù)據(jù)記錄裝置。從圖像完整采集、高速數(shù)據(jù)存儲(chǔ)和圖像準(zhǔn)確回傳三個(gè)方面介紹了程序編碼算法,使用異步FIFO解決了模塊間跨時(shí)鐘域的問(wèn)題,選擇Flash交叉雙平面的工作方式并提出一種“無(wú)效塊動(dòng)態(tài)管理算法”以保障高速存儲(chǔ),最后使用檢測(cè)設(shè)備現(xiàn)場(chǎng)模擬系統(tǒng)前端攝像機(jī)和終端計(jì)算機(jī),驗(yàn)證了程序編碼算法的有效性。
中圖分類號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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)用于航天遙測(cè)中的視頻攝像技術(shù)可以真實(shí)地還原航天器的飛行狀態(tài)、動(dòng)作和現(xiàn)場(chǎng)環(huán)境等多項(xiàng)關(guān)鍵指標(biāo)。航天器的飛行試驗(yàn)要求圖像具有較高的空間分辨率和時(shí)間分辨率,才不致丟失重要細(xì)節(jié),通常使用高速攝像機(jī)作為采集系統(tǒng)前端。在該領(lǐng)域,現(xiàn)場(chǎng)的場(chǎng)景必須完整、真實(shí)地還原出來(lái),而航天器有時(shí)可能不在地面監(jiān)測(cè)范圍之內(nèi),一些在軌試驗(yàn)數(shù)據(jù)只能先存入記錄器中,進(jìn)入監(jiān)測(cè)范圍內(nèi)再將數(shù)據(jù)回傳。記錄裝置的容量、帶寬以及其可靠性和穩(wěn)定性等因素都將影響數(shù)據(jù)能否準(zhǔn)確保存,并關(guān)系到整個(gè)試驗(yàn)的成敗[1]。

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

1 設(shè)計(jì)思路

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

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

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

  2.1 圖像采集


001.jpg

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

002.jpg

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

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

  ---寫(xiě)FIFO時(shí)鐘

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

  ′1′ & image_data;

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

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

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

003.jpg

007.jpg

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

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

  DWY[VPCL1[8CXA1E$UAFQ4C.png

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

004.jpg

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

005.jpg

  2.3 圖像回傳

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

006.jpg

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

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

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

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

4 結(jié)束語(yǔ)

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

  參考文獻(xiàn)

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

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

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

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

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

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

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


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