新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用FPGA實現高速大圖像采集系統

        用FPGA實現高速大圖像采集系統

        ——
        作者:劉斌兵 劉云海 汪燮彬 時間:2007-01-26 來源:《電子技術》 收藏

        隨著各種高速長時間物理實驗要求的不斷提高,系統對高速的數據采集模塊的需求也越來越高,在許多特殊應用的場合中,系統也需要對大量突發的數據進行采集處理,用fpga實現的高刷新率高分辨率圖像采集系統,用于船載雷達圖像記錄。該系統由ad、fpga、sdram組成,ad芯片把雷達提供的以vga接口方式給出的圖像信號轉換成數字信號,fpga控制時序通過整頁突發的模式寫入sdram中,并提供了后續處理的接口。

        中國船級社規定從2004年開始,在國內和國際航行的船舶中都必須安裝船載航行數據記錄儀,其中船載雷達圖像記錄儀是很重要的一部分,船載雷達圖像按vga圖像標準輸出,其分辨率在640×480-1280×1024之間,刷新率在60-85hz之間。目前常見的圖像采集系統多是針對復合視頻信號的采集,或者是針對ccd圖像信號的采集。這些圖像采集系統并不能滿足雷達圖像采集的要求,即使少數針對高分辨率高刷新率圖像的采集系統也是以計算機板卡的形式出現,運行時需要一臺計算機。

        本文引用地址:http://www.104case.com/article/20693.htm

        目前一些速度高達1gsps的基于vme總線的數據采集系統,通過4路,每路采集速度高達250mhz的系統實現1gsps速度的數據采集。但由于該類系統中沒有大容量的數據緩存,因此并不能實現高速長時間的數據采集。另外一些系統采用一種基于fpga,使用多sdram作為數據緩存的采集系統。該類系統解決了長時間高速采集的問題,可以對頻率為100mhz,16bit位寬的數據進行采集。但是由于它采用了多個fifo來降低sdram的工作頻率,使得該類系統應用在需要嚴格的數據同步的高速圖像采集系統中會出現一些數據難以同步的問題,還有一種pc板卡形式的高分辨率圖像采集卡,該系統直接對圖像進行壓縮后存儲,并通過pci接口提供給pc,這種形式既不適合船舶上狹小的空間,也不能滿足船舶失事時對數據的保護要求。

        本文提出一種高分辨率高刷新率圖像采集系統。該系統使用于嵌入式系統中,不僅體積小,還解決了數據保護的問題,可用于船載雷達圖像記錄系統。該系統可支持對多達4路8bit位寬最高采樣率達120mhz的數據通道,或者一路vga圖像信號,可對采集數據進行長時間采集存儲。具體的連續采集時間根據系統所采用的sdram容量大小有所變化。該系統還為數據的后續處理提供了asram接口,使得用于緩存數據的sdram也可作為后續處理cpu的系統內存。這樣既可以提高數據的處理速度,方便后續針對雷達圖像的壓縮或者識別處理,也節省了資源。

        采集系統設計

        系統分析及芯片選擇

        首先確定系統要求。目前標準規定的vga分辨率從640×480-1280×1024之間可調,刷新率為60-80hz可調。系統應能接受最高情況為分辨率1280×1024,刷新率60hz。在這種情況下,圖像像素點頻率為:1280×1024×60=75mhz。

        vga是用于給顯示器等模擬設備提供圖像信號的模擬接口。它有rgb3個模擬信號分量以及行場同步信號,其中行場同步信號是符合ttl電平的脈沖信號。由于模擬的vga信號中包含有場同步時間和行同步時間及消隱時間,因此當圖像為1280×1024@60hz的情況下,ad轉換后像素點頻率要比實際算出來的75mhz還高。這么高的采樣率對于ad提出了很高的要求。因此采用analog device公司的芯片。ad芯片具有3路采樣精度為8bit的通道,最高采樣率為140msps,具有300m的模擬帶寬,并且專門對計算機及工作站圖像接口進行了優化,最高可滿足對分辨率為1280×1024,刷新率為75hz的視頻進行采樣。

        由于ad的采樣率比較高,相應的輸出數據率很也高。在系統要求的最高情況下,象素點頻率為108mhz,相應的數據率為324mbit/s(rgb3個分量,每個分量8bit)。同時,由于采集的是圖像數據,因此系統對行同步要求比較高,因為如果在某一行的圖像數據中丟失了某一個或多個點的數據,整個圖像就會產生傾斜,如圖1所示。圖a為正確采集后得圖像,沒有發生傾斜;圖b為行采集數據小于顯示的水平分辨率;圖c為行采集數據大于顯示的水平分辨率。因此需要對每行的數據進行突發存儲,保證數據不丟失。突發的長度為圖像的水平分辨率。

        從上面的分析可知,ad后數據的及時存儲要求很高,在極端條件下系統必須以110mhz左右的頻率進行突發長度為1280×3byte的存儲。傳統的通過dsp把數據存儲到sdram的方法不能滿足這么高的速度和這么長的突發長度。因此我們采用fpga直接控制sdram存儲的方式進行??紤]到圖像數據的頻率和大小,我們采用工作在133mhz的sdram。

        由于原始的圖像數據量很大,需要占用比較大的存儲空間,因此對采集到的圖像數據還要進行后續處理。所以fpga除了接收ad轉換后的數據和控制sdram之外,還需要為圖像的后續處理提供接口。

        綜上所述fpga需要實現如下功能:同步接收ad采集的數據;讀寫sdram;提供后續圖像處理接口;提供控制接口。

        設計中采用altera公司cyclone系列的fpga ep1c6。ep1c6具有2個鎖相環,包含5980個邏輯單元,相當于12萬門的規模,同時還包含了最高頻率200mhz,92160bit的內部ram。該芯片的頻率和引腳io等資源都能很好的滿足本系統的要求。

        總體設計

        采集系統總體框圖如圖2所示。

        采集系統由ad、fpga、sdram和主cpu組成。整個系統由cpu控制。進行采集時,首先cpu根據行場同步信號判斷圖像的分辨率和刷新率,并對ad和fpga進行相應的設置。其次,cpu使能fpga進行采集。待采集一幀結束后,cpu即可對圖像數據進行處理。

        ad模塊能夠采集多種vga圖像格式,但卻不能自動檢測圖像格式,必須通過它提供的iic接口進行設置,我們在主cpu中實現對圖像格式的自動檢測,并對ad模塊進行設置,另外,不同格式的vga圖像中場同步信號的有效脈沖電平沒有統一,ad模塊可以對輸入的場同步信號極性進行自動檢測并表示在內部寄存器中,通過讀取該寄存器可以判斷輸入vga信號場同步的極性。ad模塊輸出的場同步信號可以實現對輸入場同步信號的反相。fpga內部的同步邏輯只支持一種有效電平的場同步信號,因此在采集前需要通過讀取ad內部的寄存器判斷當前輸入同步信號的極性,以確定是否需要設置ad芯片對場同步信號進行反相處理。

        為了方便主cpu對fpga的控制,fpga提供了iic接口。主cpu可以通過與ad模塊一樣的iic接口控制fpga。設置采集圖像的大小,圖像存儲起始地址,消隱時間長短等信息,從而保證采集圖像大小精確、完整,同時為了方便主cpu對圖像進行后續的處理,fpga把存儲圖像的sdram轉換成asram接口提供給cpu處理,從而把存儲圖像的空間直接映射到了cpu的尋址空間。cpu可以通過dma快速的對圖像數據進行讀取和處理,提高系統效率。

        fpga內部設計

        fpga內部模塊如圖3所示。

        fpga內部由主控制、sdram控制器、ad接口、fifo、asram接口、iic等模塊組成。主控制模塊負責接收cpu的控制信號和協調各個模塊之間的工作,sdram控制模塊實現對sdram的操作邏輯。ad接口模塊接收ad模塊輸出的數據和同步信號并保證圖像數據的行場同步,asram接口模塊轉換cpu對asram的操作為對sdram的操作指令,iic邏輯模塊接收cpu對fpga采集系統的各種參數設置和控制。

        系統fpga主要時鐘頻率有sdram工作頻率133mhz,由ep1c6自帶的pll倍頻產生;ad模塊輸出的像素時鐘,由ad芯片內部pll產生,iic模塊中的時鐘,由cpu產生。其中ad芯片輸出的時鐘根據不同的輸入圖像格式有比較大的變動范圍,從25-108mhz,而sdram的讀寫時鐘固定為133mhz。因此在這兩個不同頻率的時鐘之間必須加fifo來同步,fifo使用quartusii軟件中提供的免費ip核,通過使用fpga內部高速ram來實現。

        ad模塊負責與ad芯片的接口邏輯。前面已經分析了圖像采集中同步的重要性,如果圖像中的某一行數據不完整,那么將影響到整個圖像。ad模塊通過ad芯片輸出的行場同步信號來實現圖像數據的同步,以ad芯片輸出點頻作為fifo模塊的寫時鐘,行場同步信號的組合邏輯組成fifo的寫使能。另外,由于模擬的vga接口存在有行、場同步時間和行、場消隱時間,為了保證圖像采集的精度和完整,ad芯片要求把點頻設置為比實際有效點頻大20%-30%,因為在ad轉換后的圖像中行幅和場幅往往比實際圖像大,造成圖像有比較大的黑邊。如圖4所示。為了獲得準確的圖像數據,ad模塊設置了計數器可以過濾圖像起始的黑邊。其計數值可以通過iic接口進行設置。

        sdram有多種不同長度的突發模式。在本設計中由于ad輸出的頻率最高接近110mhz,突發存儲的長度比較長,為了能保證數據能夠及時存儲,工作頻率為133mhz的sdram必須工作在整頁突發的模式,以達到最高的數據吞吐率。

        為了提高通用性,本設計中把sdram接口轉換成asram接口提供給主cpu,避免了sdram工作頻率和cpu外部時鐘不同時造成的sdram控制權切換的麻煩,提高對各種cpu的兼容性。asram接口邏輯實現對cpu地址到sdram地址的映射及操作時序的轉換。主控制模塊產生相應的sdram控制指令,控制sdram讀寫。sdram的操作對于cpu來說是透明的。

        該采集系統也可對4路8bit的ad通道進行采集,因為fpga內部的ad邏輯模塊提供了32bit的接口,vga采集方式只用了其中24bit。采用4路8bit模式時只需把前端ad部分做一些調整。

        實際應用

        在中國船級社對船載航行數據記錄儀的性能要求中,要求船載航行數據記錄儀應能連接到欲記錄其圖像的雷達顯示器的視頻緩存輸出,通過專用的雷達緩存輸出接口,數據記錄儀需記錄一系列單個和整屏的視頻幀。該要求設計的顯示器的分辨率應在640×350到1280×1024之間,刷新率在60-85hz之間。采用本設計可以完整實現該要求。

        圖5所示為完整的雷達圖像記錄系統框圖。

        總體上系統由本地端系統和遠程系統兩大部分組成。本地端負責對雷達圖像的采集壓縮和存儲備份。遠程系統保存雷達圖像的副本。本地系統由采集、處理、存儲傳輸3大部分組成。采集部分就是前文所述的以fpga為核心的雷達圖像采集系統。處理部分采用ti公司c6000系列dsp作為系統的cpu。存儲傳輸部分主芯片則采用了samsung公司的soc芯片s3c2410。存儲體則采用了多片大容量的nand flash。

        遠程系統與本地系統中的存儲和傳輸部分一樣。它只負責對雷達圖像的存儲。

        本地系統和遠程系統通過485或者以太網相互通信。同時,本地系統和遠程系統都提供了usb接口。在計算機上可以通過usb接口讀取設備中存儲的圖像,并對設備參數進行設置。

        本文介紹的高速圖像采集系統完整實現了預期的功能,能夠對最高分辨率為1280×1024刷新率為60hz的雷達圖像進行采集,并通過asram接口把圖像數據提供給cpu進行后續處理。

        該采集系統適用于嵌入式系統中,成功應用于船載雷達數據記錄儀中,實現對雷達圖像的采集,通過了實際測驗。主要性能如下:采集圖像分辨率從640×350到1280×1024可調,刷新率從60-85hz可調,在15s采集一次的情況下可以保存24小時的雷達圖像,并可以通過usb接口在計算機上重現雷達圖像。

        此外,本采集系統實現了對高速突發長度長的數據的采集,并提供了相對通用的控制和存取接口,使得該系統的應用不僅僅局限于雷達圖像的采集。通過修改前端的ad模塊,該系統還能同時對4路位寬為8bit,采樣率最高位120mhz的ad通道進行數據采集,使它適用于其他需要高速采集的場合中。具有較強的通用性。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武宣县| 邢台市| 永安市| 章丘市| 灵山县| 郴州市| 顺义区| 江北区| 关岭| 昌邑市| 中卫市| 黑龙江省| 新蔡县| 调兵山市| 苗栗县| 温州市| 邳州市| 开平市| 兴山县| 宜丰县| 淮北市| 安新县| 图们市| 肇源县| 伊通| 铜梁县| 富顺县| 乾安县| 贵德县| 祁阳县| 巴彦淖尔市| 峡江县| 手游| 彩票| 舞阳县| 双桥区| 萝北县| 将乐县| 桂林市| 曲阳县| 海宁市|