《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種高速數字視頻信號記錄裝置關鍵技術研究
一種高速數字視頻信號記錄裝置關鍵技術研究
2015年電子技術應用第4期
曹翱翔1,2,張會新1,2,劉文怡1,2,丑修建1,2
1.中北大學電子測試技術國家重點實驗室,山西 太原030051; 2.中北大學儀器科學與動態(tài)測試教育部重點實驗室,山西 太原030051
摘要: 針對數字視頻信號傳輸速度快、數據量龐大的特點,結合航天遙測系統(tǒng)對儀器設備可靠性和穩(wěn)定性的實際要求,設計了一種專用的數據記錄裝置。從圖像完整采集、高速數據存儲和圖像準確回傳三個方面介紹了程序編碼算法,使用異步FIFO解決了模塊間跨時鐘域的問題,選擇Flash交叉雙平面的工作方式并提出一種“無效塊動態(tài)管理算法”以保障高速存儲,最后使用檢測設備現場模擬系統(tǒng)前端攝像機和終端計算機,驗證了程序編碼算法的有效性。
中圖分類號: TP274
文獻標識碼: 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 引言

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

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

1 設計思路

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

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

2 關鍵技術

  2.1 圖像采集


001.jpg

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

002.jpg

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

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

  ---寫FIFO時鐘

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

  ′1′ & image_data;

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

  2.2 數據存儲

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

003.jpg

007.jpg

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

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

  DWY[VPCL1[8CXA1E$UAFQ4C.png

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

004.jpg

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

005.jpg

  2.3 圖像回傳

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

006.jpg

3 系統(tǒng)驗證

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

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

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

4 結束語

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

  參考文獻

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

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

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

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

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

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

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


此內容為AET網站原創(chuàng),未經授權禁止轉載。