用FPGA實(shí)現(xiàn)高速大圖像采集系統(tǒng)
隨著各種高速長(zhǎng)時(shí)間物理實(shí)驗(yàn)要求的不斷提高,系統(tǒng)對(duì)高速的數(shù)據(jù)采集模塊的需求也越來(lái)越高,在許多特殊應(yīng)用的場(chǎng)合中,系統(tǒng)也需要對(duì)大量突發(fā)的數(shù)據(jù)進(jìn)行采集處理,用fpga實(shí)現(xiàn)的高刷新率高分辨率圖像采集系統(tǒng),用于船載雷達(dá)圖像記錄。該系統(tǒng)由ad、fpga、sdram組成,ad芯片把雷達(dá)提供的以vga接口方式給出的圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),fpga控制時(shí)序通過(guò)整頁(yè)突發(fā)的模式寫(xiě)入sdram中,并提供了后續(xù)處理的接口。
中國(guó)船級(jí)社規(guī)定從2004年開(kāi)始,在國(guó)內(nèi)和國(guó)際航行的船舶中都必須安裝船載航行數(shù)據(jù)記錄儀,其中船載雷達(dá)圖像記錄儀是很重要的一部分,船載雷達(dá)圖像按vga圖像標(biāo)準(zhǔn)輸出,其分辨率在640×480-1280×1024之間,刷新率在60-85hz之間。目前常見(jiàn)的圖像采集系統(tǒng)多是針對(duì)復(fù)合視頻信號(hào)的采集,或者是針對(duì)ccd圖像信號(hào)的采集。這些圖像采集系統(tǒng)并不能滿足雷達(dá)圖像采集的要求,即使少數(shù)針對(duì)高分辨率高刷新率圖像的采集系統(tǒng)也是以計(jì)算機(jī)板卡的形式出現(xiàn),運(yùn)行時(shí)需要一臺(tái)計(jì)算機(jī)。
本文引用地址:http://www.ex-cimer.com/article/20693.htm目前一些速度高達(dá)1gsps的基于vme總線的數(shù)據(jù)采集系統(tǒng),通過(guò)4路,每路采集速度高達(dá)250mhz的系統(tǒng)實(shí)現(xiàn)1gsps速度的數(shù)據(jù)采集。但由于該類系統(tǒng)中沒(méi)有大容量的數(shù)據(jù)緩存,因此并不能實(shí)現(xiàn)高速長(zhǎng)時(shí)間的數(shù)據(jù)采集。另外一些系統(tǒng)采用一種基于fpga,使用多sdram作為數(shù)據(jù)緩存的采集系統(tǒng)。該類系統(tǒng)解決了長(zhǎng)時(shí)間高速采集的問(wèn)題,可以對(duì)頻率為100mhz,16bit位寬的數(shù)據(jù)進(jìn)行采集。但是由于它采用了多個(gè)fifo來(lái)降低sdram的工作頻率,使得該類系統(tǒng)應(yīng)用在需要嚴(yán)格的數(shù)據(jù)同步的高速圖像采集系統(tǒng)中會(huì)出現(xiàn)一些數(shù)據(jù)難以同步的問(wèn)題,還有一種pc板卡形式的高分辨率圖像采集卡,該系統(tǒng)直接對(duì)圖像進(jìn)行壓縮后存儲(chǔ),并通過(guò)pci接口提供給pc,這種形式既不適合船舶上狹小的空間,也不能滿足船舶失事時(shí)對(duì)數(shù)據(jù)的保護(hù)要求。
本文提出一種高分辨率高刷新率圖像采集系統(tǒng)。該系統(tǒng)使用于嵌入式系統(tǒng)中,不僅體積小,還解決了數(shù)據(jù)保護(hù)的問(wèn)題,可用于船載雷達(dá)圖像記錄系統(tǒng)。該系統(tǒng)可支持對(duì)多達(dá)4路8bit位寬最高采樣率達(dá)120mhz的數(shù)據(jù)通道,或者一路vga圖像信號(hào),可對(duì)采集數(shù)據(jù)進(jìn)行長(zhǎng)時(shí)間采集存儲(chǔ)。具體的連續(xù)采集時(shí)間根據(jù)系統(tǒng)所采用的sdram容量大小有所變化。該系統(tǒng)還為數(shù)據(jù)的后續(xù)處理提供了asram接口,使得用于緩存數(shù)據(jù)的sdram也可作為后續(xù)處理cpu的系統(tǒng)內(nèi)存。這樣既可以提高數(shù)據(jù)的處理速度,方便后續(xù)針對(duì)雷達(dá)圖像的壓縮或者識(shí)別處理,也節(jié)省了資源。
采集系統(tǒng)設(shè)計(jì)
系統(tǒng)分析及芯片選擇
首先確定系統(tǒng)要求。目前標(biāo)準(zhǔn)規(guī)定的vga分辨率從640×480-1280×1024之間可調(diào),刷新率為60-80hz可調(diào)。系統(tǒng)應(yīng)能接受最高情況為分辨率1280×1024,刷新率60hz。在這種情況下,圖像像素點(diǎn)頻率為:1280×1024×60=75mhz。
vga是用于給顯示器等模擬設(shè)備提供圖像信號(hào)的模擬接口。它有rgb3個(gè)模擬信號(hào)分量以及行場(chǎng)同步信號(hào),其中行場(chǎng)同步信號(hào)是符合ttl電平的脈沖信號(hào)。由于模擬的vga信號(hào)中包含有場(chǎng)同步時(shí)間和行同步時(shí)間及消隱時(shí)間,因此當(dāng)圖像為1280×1024@60hz的情況下,ad轉(zhuǎn)換后像素點(diǎn)頻率要比實(shí)際算出來(lái)的75mhz還高。這么高的采樣率對(duì)于ad提出了很高的要求。因此采用analog device公司的芯片。ad芯片具有3路采樣精度為8bit的通道,最高采樣率為140msps,具有300m的模擬帶寬,并且專門(mén)對(duì)計(jì)算機(jī)及工作站圖像接口進(jìn)行了優(yōu)化,最高可滿足對(duì)分辨率為1280×1024,刷新率為75hz的視頻進(jìn)行采樣。
由于ad的采樣率比較高,相應(yīng)的輸出數(shù)據(jù)率很也高。在系統(tǒng)要求的最高情況下,象素點(diǎn)頻率為108mhz,相應(yīng)的數(shù)據(jù)率為324mbit/s(rgb3個(gè)分量,每個(gè)分量8bit)。同時(shí),由于采集的是圖像數(shù)據(jù),因此系統(tǒng)對(duì)行同步要求比較高,因?yàn)槿绻谀骋恍械膱D像數(shù)據(jù)中丟失了某一個(gè)或多個(gè)點(diǎn)的數(shù)據(jù),整個(gè)圖像就會(huì)產(chǎn)生傾斜,如圖1所示。圖a為正確采集后得圖像,沒(méi)有發(fā)生傾斜;圖b為行采集數(shù)據(jù)小于顯示的水平分辨率;圖c為行采集數(shù)據(jù)大于顯示的水平分辨率。因此需要對(duì)每行的數(shù)據(jù)進(jìn)行突發(fā)存儲(chǔ),保證數(shù)據(jù)不丟失。突發(fā)的長(zhǎng)度為圖像的水平分辨率。
從上面的分析可知,ad后數(shù)據(jù)的及時(shí)存儲(chǔ)要求很高,在極端條件下系統(tǒng)必須以110mhz左右的頻率進(jìn)行突發(fā)長(zhǎng)度為1280×3byte的存儲(chǔ)。傳統(tǒng)的通過(guò)dsp把數(shù)據(jù)存儲(chǔ)到sdram的方法不能滿足這么高的速度和這么長(zhǎng)的突發(fā)長(zhǎng)度。因此我們采用fpga直接控制sdram存儲(chǔ)的方式進(jìn)行??紤]到圖像數(shù)據(jù)的頻率和大小,我們采用工作在133mhz的sdram。
由于原始的圖像數(shù)據(jù)量很大,需要占用比較大的存儲(chǔ)空間,因此對(duì)采集到的圖像數(shù)據(jù)還要進(jìn)行后續(xù)處理。所以fpga除了接收ad轉(zhuǎn)換后的數(shù)據(jù)和控制sdram之外,還需要為圖像的后續(xù)處理提供接口。
綜上所述fpga需要實(shí)現(xiàn)如下功能:同步接收ad采集的數(shù)據(jù);讀寫(xiě)sdram;提供后續(xù)圖像處理接口;提供控制接口。
設(shè)計(jì)中采用altera公司cyclone系列的fpga ep1c6。ep1c6具有2個(gè)鎖相環(huán),包含5980個(gè)邏輯單元,相當(dāng)于12萬(wàn)門(mén)的規(guī)模,同時(shí)還包含了最高頻率200mhz,92160bit的內(nèi)部ram。該芯片的頻率和引腳io等資源都能很好的滿足本系統(tǒng)的要求。
總體設(shè)計(jì)
采集系統(tǒng)總體框圖如圖2所示。
采集系統(tǒng)由ad、fpga、sdram和主cpu組成。整個(gè)系統(tǒng)由cpu控制。進(jìn)行采集時(shí),首先cpu根據(jù)行場(chǎng)同步信號(hào)判斷圖像的分辨率和刷新率,并對(duì)ad和fpga進(jìn)行相應(yīng)的設(shè)置。其次,cpu使能fpga進(jìn)行采集。待采集一幀結(jié)束后,cpu即可對(duì)圖像數(shù)據(jù)進(jìn)行處理。
ad模塊能夠采集多種vga圖像格式,但卻不能自動(dòng)檢測(cè)圖像格式,必須通過(guò)它提供的iic接口進(jìn)行設(shè)置,我們?cè)谥鱟pu中實(shí)現(xiàn)對(duì)圖像格式的自動(dòng)檢測(cè),并對(duì)ad模塊進(jìn)行設(shè)置,另外,不同格式的vga圖像中場(chǎng)同步信號(hào)的有效脈沖電平?jīng)]有統(tǒng)一,ad模塊可以對(duì)輸入的場(chǎng)同步信號(hào)極性進(jìn)行自動(dòng)檢測(cè)并表示在內(nèi)部寄存器中,通過(guò)讀取該寄存器可以判斷輸入vga信號(hào)場(chǎng)同步的極性。ad模塊輸出的場(chǎng)同步信號(hào)可以實(shí)現(xiàn)對(duì)輸入場(chǎng)同步信號(hào)的反相。fpga內(nèi)部的同步邏輯只支持一種有效電平的場(chǎng)同步信號(hào),因此在采集前需要通過(guò)讀取ad內(nèi)部的寄存器判斷當(dāng)前輸入同步信號(hào)的極性,以確定是否需要設(shè)置ad芯片對(duì)場(chǎng)同步信號(hào)進(jìn)行反相處理。
為了方便主cpu對(duì)fpga的控制,fpga提供了iic接口。主cpu可以通過(guò)與ad模塊一樣的iic接口控制fpga。設(shè)置采集圖像的大小,圖像存儲(chǔ)起始地址,消隱時(shí)間長(zhǎng)短等信息,從而保證采集圖像大小精確、完整,同時(shí)為了方便主cpu對(duì)圖像進(jìn)行后續(xù)的處理,fpga把存儲(chǔ)圖像的sdram轉(zhuǎn)換成asram接口提供給cpu處理,從而把存儲(chǔ)圖像的空間直接映射到了cpu的尋址空間。cpu可以通過(guò)dma快速的對(duì)圖像數(shù)據(jù)進(jìn)行讀取和處理,提高系統(tǒng)效率。
fpga內(nèi)部設(shè)計(jì)
fpga內(nèi)部模塊如圖3所示。
fpga內(nèi)部由主控制、sdram控制器、ad接口、fifo、asram接口、iic等模塊組成。主控制模塊負(fù)責(zé)接收cpu的控制信號(hào)和協(xié)調(diào)各個(gè)模塊之間的工作,sdram控制模塊實(shí)現(xiàn)對(duì)sdram的操作邏輯。ad接口模塊接收ad模塊輸出的數(shù)據(jù)和同步信號(hào)并保證圖像數(shù)據(jù)的行場(chǎng)同步,asram接口模塊轉(zhuǎn)換cpu對(duì)asram的操作為對(duì)sdram的操作指令,iic邏輯模塊接收cpu對(duì)fpga采集系統(tǒng)的各種參數(shù)設(shè)置和控制。
系統(tǒng)fpga主要時(shí)鐘頻率有sdram工作頻率133mhz,由ep1c6自帶的pll倍頻產(chǎn)生;ad模塊輸出的像素時(shí)鐘,由ad芯片內(nèi)部pll產(chǎn)生,iic模塊中的時(shí)鐘,由cpu產(chǎn)生。其中ad芯片輸出的時(shí)鐘根據(jù)不同的輸入圖像格式有比較大的變動(dòng)范圍,從25-108mhz,而sdram的讀寫(xiě)時(shí)鐘固定為133mhz。因此在這兩個(gè)不同頻率的時(shí)鐘之間必須加fifo來(lái)同步,fifo使用quartusii軟件中提供的免費(fèi)ip核,通過(guò)使用fpga內(nèi)部高速ram來(lái)實(shí)現(xiàn)。
ad模塊負(fù)責(zé)與ad芯片的接口邏輯。前面已經(jīng)分析了圖像采集中同步的重要性,如果圖像中的某一行數(shù)據(jù)不完整,那么將影響到整個(gè)圖像。ad模塊通過(guò)ad芯片輸出的行場(chǎng)同步信號(hào)來(lái)實(shí)現(xiàn)圖像數(shù)據(jù)的同步,以ad芯片輸出點(diǎn)頻作為fifo模塊的寫(xiě)時(shí)鐘,行場(chǎng)同步信號(hào)的組合邏輯組成fifo的寫(xiě)使能。另外,由于模擬的vga接口存在有行、場(chǎng)同步時(shí)間和行、場(chǎng)消隱時(shí)間,為了保證圖像采集的精度和完整,ad芯片要求把點(diǎn)頻設(shè)置為比實(shí)際有效點(diǎn)頻大20%-30%,因?yàn)樵赼d轉(zhuǎn)換后的圖像中行幅和場(chǎng)幅往往比實(shí)際圖像大,造成圖像有比較大的黑邊。如圖4所示。為了獲得準(zhǔn)確的圖像數(shù)據(jù),ad模塊設(shè)置了計(jì)數(shù)器可以過(guò)濾圖像起始的黑邊。其計(jì)數(shù)值可以通過(guò)iic接口進(jìn)行設(shè)置。
sdram有多種不同長(zhǎng)度的突發(fā)模式。在本設(shè)計(jì)中由于ad輸出的頻率最高接近110mhz,突發(fā)存儲(chǔ)的長(zhǎng)度比較長(zhǎng),為了能保證數(shù)據(jù)能夠及時(shí)存儲(chǔ),工作頻率為133mhz的sdram必須工作在整頁(yè)突發(fā)的模式,以達(dá)到最高的數(shù)據(jù)吞吐率。
為了提高通用性,本設(shè)計(jì)中把sdram接口轉(zhuǎn)換成asram接口提供給主cpu,避免了sdram工作頻率和cpu外部時(shí)鐘不同時(shí)造成的sdram控制權(quán)切換的麻煩,提高對(duì)各種cpu的兼容性。asram接口邏輯實(shí)現(xiàn)對(duì)cpu地址到sdram地址的映射及操作時(shí)序的轉(zhuǎn)換。主控制模塊產(chǎn)生相應(yīng)的sdram控制指令,控制sdram讀寫(xiě)。sdram的操作對(duì)于cpu來(lái)說(shuō)是透明的。
該采集系統(tǒng)也可對(duì)4路8bit的ad通道進(jìn)行采集,因?yàn)閒pga內(nèi)部的ad邏輯模塊提供了32bit的接口,vga采集方式只用了其中24bit。采用4路8bit模式時(shí)只需把前端ad部分做一些調(diào)整。
實(shí)際應(yīng)用
在中國(guó)船級(jí)社對(duì)船載航行數(shù)據(jù)記錄儀的性能要求中,要求船載航行數(shù)據(jù)記錄儀應(yīng)能連接到欲記錄其圖像的雷達(dá)顯示器的視頻緩存輸出,通過(guò)專用的雷達(dá)緩存輸出接口,數(shù)據(jù)記錄儀需記錄一系列單個(gè)和整屏的視頻幀。該要求設(shè)計(jì)的顯示器的分辨率應(yīng)在640×350到1280×1024之間,刷新率在60-85hz之間。采用本設(shè)計(jì)可以完整實(shí)現(xiàn)該要求。
圖5所示為完整的雷達(dá)圖像記錄系統(tǒng)框圖。
總體上系統(tǒng)由本地端系統(tǒng)和遠(yuǎn)程系統(tǒng)兩大部分組成。本地端負(fù)責(zé)對(duì)雷達(dá)圖像的采集壓縮和存儲(chǔ)備份。遠(yuǎn)程系統(tǒng)保存雷達(dá)圖像的副本。本地系統(tǒng)由采集、處理、存儲(chǔ)傳輸3大部分組成。采集部分就是前文所述的以fpga為核心的雷達(dá)圖像采集系統(tǒng)。處理部分采用ti公司c6000系列dsp作為系統(tǒng)的cpu。存儲(chǔ)傳輸部分主芯片則采用了samsung公司的soc芯片s3c2410。存儲(chǔ)體則采用了多片大容量的nand flash。
遠(yuǎn)程系統(tǒng)與本地系統(tǒng)中的存儲(chǔ)和傳輸部分一樣。它只負(fù)責(zé)對(duì)雷達(dá)圖像的存儲(chǔ)。
本地系統(tǒng)和遠(yuǎn)程系統(tǒng)通過(guò)485或者以太網(wǎng)相互通信。同時(shí),本地系統(tǒng)和遠(yuǎn)程系統(tǒng)都提供了usb接口。在計(jì)算機(jī)上可以通過(guò)usb接口讀取設(shè)備中存儲(chǔ)的圖像,并對(duì)設(shè)備參數(shù)進(jìn)行設(shè)置。
本文介紹的高速圖像采集系統(tǒng)完整實(shí)現(xiàn)了預(yù)期的功能,能夠?qū)ψ罡叻直媛蕿?280×1024刷新率為60hz的雷達(dá)圖像進(jìn)行采集,并通過(guò)asram接口把圖像數(shù)據(jù)提供給cpu進(jìn)行后續(xù)處理。
該采集系統(tǒng)適用于嵌入式系統(tǒng)中,成功應(yīng)用于船載雷達(dá)數(shù)據(jù)記錄儀中,實(shí)現(xiàn)對(duì)雷達(dá)圖像的采集,通過(guò)了實(shí)際測(cè)驗(yàn)。主要性能如下:采集圖像分辨率從640×350到1280×1024可調(diào),刷新率從60-85hz可調(diào),在15s采集一次的情況下可以保存24小時(shí)的雷達(dá)圖像,并可以通過(guò)usb接口在計(jì)算機(jī)上重現(xiàn)雷達(dá)圖像。
此外,本采集系統(tǒng)實(shí)現(xiàn)了對(duì)高速突發(fā)長(zhǎng)度長(zhǎng)的數(shù)據(jù)的采集,并提供了相對(duì)通用的控制和存取接口,使得該系統(tǒng)的應(yīng)用不僅僅局限于雷達(dá)圖像的采集。通過(guò)修改前端的ad模塊,該系統(tǒng)還能同時(shí)對(duì)4路位寬為8bit,采樣率最高位120mhz的ad通道進(jìn)行數(shù)據(jù)采集,使它適用于其他需要高速采集的場(chǎng)合中。具有較強(qiáng)的通用性。
評(píng)論