魏 敏,劉文怡,王金陵
(中北大學a.電子測試技術國家重點實驗室;b.儀器科學與動態測試教育部重點實驗室,山西 太原 030051)
責任編輯:薛 京
在飛速發展的信息時代,人們對高速信息的需求日益增強,在衛星通信、雷達通信、信號測量等領域,信息的采集、存儲與分析一直都是人們面臨的重要課題[1]。然而,由于圖像數據傳輸速度快、信息量大,對采集存儲技術提出了更高的要求[2],因此,需要設計出一種具有采集與存儲速度快、容量大、體積小、抗干擾能力強、可靠性高的圖像數據采集存儲系統。常用的頁編程和雙平面頁編程技術已經無法滿足要求,而利用平均速度為22.8 Mbyte/s的交叉雙平面頁編程技術[3],為高速、大容量圖像數據的采集、存儲提供了全新的設計方案。
本文介紹的采集存儲系統主要是為了完成對圖像信息的采集、編碼及存儲。系統采用模塊化設計的思路,各個模塊既相互獨立又相互配合構成了整個系統。本系統主要由電源轉化單元、圖像采集單元、FPGA邏輯控制單元、圖像存儲單元和USB接口單元組成。其中圖像采集單元選用LVDS接口作為數據輸入接口,滿足圖像信息高速傳輸的要求。FPGA邏輯控制單元采用Xilinx公司生產的Spartan-3系列中的XC3S400芯片作為邏輯控制芯片,實現系統對硬件電路高集成度的要求。圖像存儲單元則選用三星公司容量為4 Gbyte的NAND型Flash芯片K9WBG08U1M,并利用交叉雙平面頁編程技術對Flash進行寫操作。而USB接口單元采用Cypress公司EZ-USB FX2系列CY7C68013-128AXC,該芯片采用GPIF數據傳輸方式提高讀數效率。系統總體框圖如圖1所示。

圖1 系統總體框圖
本系統接收的圖像信息包括兩種,一種為圖像數據,另一種為測量數據。兩種數據由LVDS接口接入并分別通過FPGA控制的圖像解碼模塊和測量信息接收模塊對其采集、解碼。由于測量數據傳輸速度快,在數據存儲之前,將數據通過FGPA內部的FIFO進行緩存。當FPGA中的Flash寫控制信號監測到內部FIFO半滿信號和圖像數據接收完成信號,則將兩種數據按照交叉雙平面頁編程技術寫入到圖像存儲器Flash中,最后數據通過USB接口發送至計算機顯示。在此過程中,系統命令的下發均通過計算機中的上位機完成。同時,FPGA芯片及其他芯片所需的3.3 V和2.5 V電壓均由電壓轉化模塊提供。
電壓轉化單元主要包括EMI濾波模塊、電源模塊、電壓轉換模塊3個部分。28 V輸入電壓通過EMI濾波模塊及DC/DC隔離變換器產生5 V電壓,再由電壓轉換芯片TPS70358將5 V電壓轉化為所需的3.3 V和2.5 V。選用的電壓轉化芯片TPS70358是一種具有雙端口電壓輸出、低噪聲的線性穩壓器[4],其硬件電路圖如圖2所示。

圖2 電壓轉換模塊硬件電路圖
EMI濾波模塊對系統輸入的28 V電壓進行EMI濾波處理,這不但能夠抑制系統自身產生的EMI噪聲,同時可以為FPGA及其他系統芯片提供無衰減的直流輸入電壓,濾除由電網進來的各種干擾信號,使設備不受EMI噪聲干擾[4]。
本系統的圖像數據和80包的測量信息均經過LVDS接口接收,LVDS接口芯片采用10位低壓差分信號解串器DS92LV1224,它能將接收到的LVDS差分數據流轉換為10位的并行數據,同時又可以重建并行時鐘(RCLK)[5]。LVDS傳輸模式接收電路設計如圖3所示。

圖3 LVDS接收電路
由于經LVDS接口接收的兩種數據傳輸碼率不一樣,圖像數據的像素時鐘為15 MHz,測量數據發送的波特率為115 200 bit/s,FPGA邏輯控制單元無法直接對這兩種數據進行混合編幀,這時需要將兩種數據先存進FPGA內部FIFO進行緩存,經時序匹配后,將信息存入FPGA內部建立的寫Flash緩沖器中,當FPGA中的Flash控制模塊監測到寫Flash緩沖器半滿信號時,則開始將信息存入Flash。
圖像信息由LVDS接口接入,經解串器DS92LV1224解碼后轉化為4路圖像數據信號,1路幀同步信號、1路行同步信號、1路像素時鐘和1路測量數據。
對于圖像數據而言,幀同步信號的頻率為100 Hz,高電平有效,每一幀有289行有效數據,行同步信號的頻率為31 250 Hz,高電平有效,每一行有384個有效像素,像素時鐘為15 MHz,上升沿時數據發生改變。幀同步信號高低電平時間、行同步信號高低電平時間計算為其中,式(1)為幀同步信號高電平時間;式(2)為幀同步信號低電平時間;式(3)為行同步信號高電平時間;式(4)為行同步信號低電平時間。接口信號時序如圖4所示。



圖4 接口信號時序圖
對于測量數據而言,每接收一幀圖像數據就串行接收80包的測量數據,其中每一包測量數據包含10位,串行傳輸的碼率為1 152 000 bit/s,因此接收80包數據所需時間為

由此可知,接收80包測量數據是可以在圖像數據幀同步信號高電平時間內完成的。在FPGA內部構建一個256×8 bit的片內異步FIFO,設寫FIFO時鐘為29.5 MHz,因此80包測量數據寫FIFO的時間經計算為

則可在圖像數據的幀同步信號高電平接收80包數據,低電平將測量數據寫入FIFO。當一幀圖像數據接收完成后,將80包測量數據和一幀圖像數據進行混合編幀后,傳輸至Flash存儲單元。
由于圖像傳輸速度快,因此選用交叉雙平面頁編程方式,選用的Flash芯片K9WBG08U1M的內部平面結構圖如圖5所示。

圖5 K9WBG08U1M內部平面結構圖
定義chip#1的plane0和plane1為第0組、plane2和plane3為第1組,chip#2的 plane0和plane1為第2組、plane2和plane3為第3組。當對第0組進行操作時,也可對其他3組分別執行寫命令操作、寫地址操作和寫數據操作。交叉雙平面頁編程時序如圖6所示。

圖6 交叉雙平面頁編程時序(截圖)
在VHDL程序中定義信號choose(2:0)對8個plane進行控制。choose(0)為0表示選擇平面組中的偶平面,為1表示選擇平面組中的奇平面;choose(1)為0表示操作第0組和第2組,即Flash的前4 096塊,為1時表示操作第1組和第3組,即Flash的后4 096塊;choose(2)為0操作chip#1,為1操作chip#2。將2片Flash的R/B1和R/B2信號進行相與,得到判斷整個Flash的工作信號。該信號可以表示交叉雙平面技術寫Flash的4種狀態,如圖6所示,其中A狀態表示對第1片進行頁編程,同時第2片Flash已準備好;B狀態表示兩片Flash都在頁編程;C狀態表示第1片Flash已完成頁編程,第2片Flash正在執行頁編程;D狀態表示兩片Flash均完成頁編程,并均做好下一輪頁編程準備。
本設計以采集存儲系統為主體,配合地面測試臺以及上位機軟件完成閉環自檢試驗[6]。系統上電后,地面測試臺對系統發送特定幀結構的圖像數據和80包的測量信息。圖像數據每幀為289×384 byte,記錄時間要求大于300 s,傳輸幀率為100 f/s(幀/s),因此圖像存儲器的容量為:(289×384 byte)×(300 s÷10 ms)≈3.1 Gbyte。利用交叉雙平面頁編程技術有效提高Flash的存儲速度,經多次反復測試,本系統Flash的寫入速度達到30 Mbyte/s。上位機軟件操作界面如圖7所示,上位機軟件對第2 845幀圖像數據還原的圖像如圖8所示。測試設備發送的原始數據如圖9所示。



圖9 圖像原始數據(截圖)
基于交叉雙平面技術的圖像采集存儲系統實現了對高速、大容量圖像數據的采集、存儲功能。該系統針對圖像信號傳輸的高速、大容量數據特征,設計了電源轉化單元、圖像采集單元、FPGA邏輯控制單元、圖像存儲單元和USB接口單元,可以將圖像信號實時采集接收并完整準確送入Flash進行存儲,并在之后將存儲數據回讀至計算機還原圖像。該設計充分利用了交叉雙平面頁編程技術,為圖像信息的采集存儲提供了一種全新的實現手段。
[1]劉蘊才.無線電遙測遙控[M].北京:國防工業出版社,2001:7-8.
[2]楊立宏.基于Flash的紅外相機數據高速存儲[D].長春:長春理工大學,2009.
[3]朱巖.基于閃存的星載高速大容量存儲技術的研究[D].北京:中國科學院研究生院,2006.
[4]韋斯頓.電磁兼容原理及應用[M].楊自佑,王守三,譯.2版.北京:機械工業出版社,2006:601-660.
[5]張健,吳曉冰.LVDS技術原理和設計簡介[J].電子技術應用,2000(5):59-61.
[6]郭錚,劉文怡,馮妮.基于FPGA多通道高速數據采集存儲器設計[J].電視技術,2012,36(17):55-57.