文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.037
中文引用格式: 王浩健,姚遠程,秦明偉. 基于FPGA的高速圖像數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(8):131-134.
英文引用格式: Wang Haojian,Yao Yuancheng,Qin Mingwei. Design of high-speed image data acquisition system based on FPGA[J].Application of Electronic Technique,2015,41(8):131-134.
0 引言
高速圖像數(shù)據(jù)采集系統(tǒng)實現(xiàn)高速相機拍攝圖像數(shù)據(jù)的采集、實時傳輸、處理和圖像數(shù)據(jù)存儲。通過采集的高速數(shù)據(jù),可以觀測到高速運動物體的細微變化,從而能夠更全面地改進目標,提高目標性能。圖像數(shù)據(jù)采集使用高速面陣相機,相機數(shù)據(jù)傳輸接口為Camera Link接口。通過Camera Link接口將圖像數(shù)據(jù)傳輸?shù)?a class="innerlink" href="http://theprogrammingfactory.com/tags/FPGA" title="FPGA" target="_blank">FPGA開發(fā)板上進行實時處理,處理后的數(shù)據(jù)能夠用顯示器顯示以便更好地觀測。本文主要研究高速相機和Camera Link接口協(xié)議[1],設(shè)計一個能夠?qū)崿F(xiàn)數(shù)據(jù)實時高速傳輸?shù)腃amera Link接口電路,節(jié)省FPGA內(nèi)部資源消耗。同時通過FPGA的緩存處理,在VGA顯示器上實現(xiàn)實時圖像顯示。
Camera Link協(xié)議是由一些高速相機生產(chǎn)商和圖像采集卡供應(yīng)商為了降低相機與采集卡之間連接的成本而聯(lián)合推出的一個標準。設(shè)計選用了Teledyne Dalsa公司的PT-41-04M60[2]相機(以下簡稱為4M60),F(xiàn)PGA板卡采用Xilinx公司Virtex-6系列的XC6VLX240T,相機數(shù)據(jù)通過Camera Link接口傳輸?shù)紽PGA芯片上進行高速緩存處理。
1 PT-41-04M60相機簡介
4M60相機[2]采用Teledyne DALSA專利的CMOS傳感技術(shù),在全分辨率4M時幀率可達62 f/s。4M60相機分辨率為2 352×1 728,像素尺寸7.4 μm×7.4 μm,有8/10 bit可選數(shù)據(jù)位,4路傳感器通道,基本(Base)和中級(Medium)兩種配置方式。相機上電后電源指示燈會閃爍一段時間表示正在初始化,初始化完畢之后指示燈變?yōu)榉€(wěn)定的綠色。在實際操作中可依據(jù)相機電源指示燈狀態(tài)變化情況來判斷相機是否正常工作。
計算機可通過向串口發(fā)送命令來控制相機工作狀態(tài),異步串口命令[3]為ASCII字符,默認1位起始位,1位停止位,無奇偶校驗位和握手位,波特率默認為9 600 b/s,通過串口命令sbr m可以改變波特率,m可選擇9 600(默認)、19 200、57 600、115 200幾種。相機上電后的波特率總是9 600 b/s,通過rc命令可重置相機,但重置后的波特率不是上電后的9 600 b/s,而是最近一次使用過的波特率。
串口每條命令以回車鍵<CR>結(jié)束,相機會以ok>或Error x:Error Message>回應(yīng)。x為錯誤的類型,Error Message為錯誤的具體內(nèi)容,‘>’通常為相機發(fā)送的最后一個符號,發(fā)送命令大小寫均支持。gcp<CR>為讀取相機當前配置數(shù)據(jù)。用戶可以根據(jù)實際需求配置相機參數(shù),相機指示燈變成穩(wěn)定的綠色后就會自動向Camera Link接口傳輸圖像數(shù)據(jù)。
2 Camera Link標準與協(xié)議
Camera Link接口主要是利用低壓差分信號(LVDS),將相機采集的并行數(shù)據(jù)通過LVDS轉(zhuǎn)換成串行數(shù)據(jù)高速傳輸,在接收端再將串行數(shù)據(jù)轉(zhuǎn)換成并行,以便于FPGA進行處理。Camera Link協(xié)議主要包括相機信號和Channel Link技術(shù)兩個方面。
2.1 相機信號
Camera Link接口規(guī)定了相機信號主要分為高速視頻信號、相機控制信號、串行通信信號和電源。
(1)高速視頻信號
高速視頻信號傳輸圖像數(shù)據(jù)信號,其中包括圖像數(shù)據(jù)和圖像使能信號。使能信號有4個:幀有效(FVAL)、行有效(LVAL)、數(shù)據(jù)有效(DVAL)和備用(Spare)。FVAL為高時表明輸出有效行;LVAL為高時表明輸出有效像素;DVAL為高時表明輸出有效數(shù)據(jù)。備用信號(Spare)留作備用。相機必須給每個Channel Link芯片提供上述4個使能信號。
(2)高速相機控制信號
Camera Link協(xié)議定義了4對LVDS信號用來傳輸相機控制信號,分別是Camera Control 1(CC1)、Camera Control 2(CC2)、Camera Control 3(CC3)、Camera Control 4(CC4)。4對信號是由圖像采集卡發(fā)給相機,相機生產(chǎn)商可以根據(jù)自己的需要來定義這4組信號。本文使用的4M60相機將CC1作為外同步信號(EXSYNC)來觸發(fā)相機輸出幀數(shù)據(jù)。其他3個信號未使用。
(3)低速串行通信信號
Camera Link協(xié)議使用了兩對LVDS信號來傳輸相機與圖像采集卡之間的異步串行通信信號,分別為:由相機發(fā)給采集卡的信號SerTFG(Serial communications to The Frame Grabber)和采集卡發(fā)送給相機的信號SerTC(Serial communications to The Camera)。兩對信號實現(xiàn)了計算機與相機的通信,計算機可以通過串口用ASCII字符對相機進行配置。
(4)電源
Camera Link連接器并不為相機提供電源,相機要通過獨立的電纜來供電,本設(shè)計中使用的4M60相機的電源插座如圖1所示,其引腳配置[4]如表1所示。
2.2 Channel Link
Channel Link接口是利用低壓差分信號傳輸視頻信號的新技術(shù)。如圖2[2]所示為Channel Link主要原理圖,Channel Link是由一個并轉(zhuǎn)串驅(qū)動器和一個串轉(zhuǎn)并接收器構(gòu)成一對信號傳輸線路。在一片Channel Link接口芯片上有5對這樣的信號,4對用來傳輸數(shù)據(jù),另外一對用來傳輸時鐘信號。傳輸數(shù)據(jù)時,在并轉(zhuǎn)串驅(qū)動器端,發(fā)送數(shù)據(jù)按照7:1的比例串行化,這樣就將28 bit數(shù)據(jù)串行轉(zhuǎn)化為4路數(shù)據(jù),分別通過差分信號對傳輸;在接收器端又將4路串行數(shù)據(jù)轉(zhuǎn)換回28 bit并行數(shù)據(jù),方便FPGA進行數(shù)據(jù)處理。
3 系統(tǒng)設(shè)計
高速圖像采集系統(tǒng)一般分為圖像獲取、圖像接收、圖像控制、圖像存儲和圖像顯示幾個部分,本設(shè)計主要是實現(xiàn)圖像的接收和顯示,總體框圖[5]如圖3所示。
3.1 圖像的接收和接口控制
圖像數(shù)據(jù)由高速相機發(fā)送過來,在基本模式下相機發(fā)送的數(shù)據(jù)包括了24 bit圖像數(shù)據(jù)和4個同步信號,并串轉(zhuǎn)換為4路串行差分信號。在接收端需要將這4路串行信號轉(zhuǎn)換為FPGA能夠識別的并行CMOS/TTL信號,所以在圖像采集端就需要串并轉(zhuǎn)換芯片實現(xiàn)信號轉(zhuǎn)換。本設(shè)計采用了美國國家半導(dǎo)體公司的DS90CR288A[6]芯片實現(xiàn)上述要求。此外,相機控制信號和串行通信信號也需要轉(zhuǎn)換芯片,分別使用美國國家半導(dǎo)體公司的DS90LV031A和DS90LV019芯片實現(xiàn)?;九渲媚J骄唧w實現(xiàn)框圖如圖4所示。
如圖4,Camera Link接口選用3M公司生產(chǎn)的MDR26作為信號傳輸?shù)倪B接器。在基本模式下相機端和采集卡端各有一個,中級和高級模式下則各有兩個MDR26連接器。其詳細引腳接口可參照文獻[1]。FPGA接收288A芯片轉(zhuǎn)換的28 bit 數(shù)據(jù),并可根據(jù)相機提供的FVAL、LVAL和DVAL 3個同步信號將接收到的數(shù)據(jù)通過液晶顯示器顯示出來。FPGA還可以通過019和031A芯片實現(xiàn)對相機的控制,例如設(shè)置曝光模式、輸出模式、外同步等。
圖5為Camera Link接口基本(Base)配置模式的硬件實現(xiàn)原理圖。中級(Medium)配置比圖5多了一個MDR26連接器和一塊288A芯片,連接方法與圖5類似。圖中最右邊的28個引腳為采集到的圖像數(shù)據(jù)和同步信號的輸出引腳,將采集到的數(shù)據(jù)送到FPGA的FMC連接器上,這樣FPGA就可以方便地對數(shù)據(jù)進行操作。圖5中每對差分對之間跨接一個100 ?贅的電阻,用來確保信號的完整性,減少終端信號的反射。硬件模塊搭建完畢,就可以進行數(shù)據(jù)的采集。圖6所示為圖像數(shù)據(jù)采集的時序圖,從圖中可以看出,相機輸出的FVAL和LVAL信號都為周期信號,第一個FVAL低電平出發(fā)相機發(fā)送數(shù)據(jù),當FVAL和LVAL同時為低電平時,數(shù)據(jù)無效。FVAL的兩個低電平之間為一行數(shù)據(jù)。
3.2 圖像的顯示
4M60相機在Medium模式下,可以同時輸出4路(Taps)80 MHz數(shù)據(jù),即一個時鐘周期可以同時輸出4個像素點的數(shù)據(jù)。像素點的輸出方式如圖7所示,像素數(shù)據(jù)從屏幕左邊到右邊、從屏幕下方到上方依次輸出。4通道輸出方式下,4個通道依次輸出像素點,即通道1依次輸出第1、5、9、13、17…2 349個像素點的數(shù)據(jù)。
像素4通道同時輸出時,每個通道的時鐘率為80 MHz,4個通道同時輸出則為320 MHz的數(shù)據(jù)率[3]。而VGA顯示標準中,最大只能顯示108 MHz、1 280×1 024分辨率的圖像,達不到要求。所以在顯示過程中選一路數(shù)據(jù)進行顯示來驗證設(shè)計結(jié)果。此時,圖片的分辨率就變?yōu)?88×432,根據(jù)VGA顯示標準表,選擇640×480@60顯示標準,60為每秒顯示幀數(shù),與相機要求匹配,但是640×480顯示標準的時鐘只有25 MHz,達不到相機的數(shù)據(jù)率,所以在FPGA中采用了乒乓存儲結(jié)構(gòu)[7]對數(shù)據(jù)進行緩存,從而達到實時顯示的效果,顯示效果如圖8所示。圖像未經(jīng)處理顯示效果略有失真,但總體還是比較理想。
4 結(jié)論
本文根據(jù)Camera Link協(xié)議要求,設(shè)計和實現(xiàn)了Camera Link硬件電路。充分利用FPGA的高速特性,將采集到的高速圖像數(shù)據(jù)信號以幀為單位選擇性地送到顯示器上進行顯示,達到了單路60 f/s的顯示速率,提高了圖像處理系統(tǒng)圖像接收部分的數(shù)據(jù)傳輸量和數(shù)據(jù)傳輸速率。
參考文獻
[1] Basler.Specification of the camera link interface standard for digital cameras and frame grabbers[Z].Ahrensburg,Germany:Basler,2000.
[2] DALSA. Falcon 4M30 and 4M60 monochrome and color camera manual[Z].2011.
[3] 郝偉,朱明.新型數(shù)字相機DS-21-01M60的原理及其硬件接口設(shè)計[J].電子技術(shù)應(yīng)用,2007,33(2):56-59.
[4] DALSA.Teledyne DALSA implementation road map[Z].Revision level 02.2011.
[5] 朱齊丹,劉進業(yè),康嶺.Camera Link硬件接口電路設(shè)計[J].應(yīng)用科技,2008,35(10):57-60.
[6] National Semiconductor.DS90CR288 28-Bit camera link-75MHz datasheet[Z].Santa Clara,USA:National Semiconductor Corporation,2002.
[7] 董琰,彭琦,李健志,等.基于Camera Link協(xié)議的CCD圖像采集系統(tǒng)[J].吉林大學(xué)學(xué)報:信息科學(xué)版,2010,28(4):372-377.