侯宏錄,高偉平
(西安工業(yè)大學(xué) 光電工程學(xué)院,陜西 西安 710021)
高幀頻相機(jī)是研究物體的高速運(yùn)動(dòng)或瞬態(tài)流逝現(xiàn)象的有效工具,廣泛應(yīng)用于航空、航天以及武器系統(tǒng)等領(lǐng)域,研究高速運(yùn)動(dòng)物體的運(yùn)動(dòng)規(guī)律,在武器試驗(yàn)領(lǐng)域可對(duì)艦載、機(jī)載導(dǎo)彈發(fā)射姿態(tài)進(jìn)行實(shí)時(shí)記錄與跟蹤,對(duì)其性能進(jìn)行分析等,為武器系統(tǒng)試驗(yàn)驗(yàn)證提供決策依據(jù)。
長(zhǎng)期以來,中國(guó)的高幀頻相機(jī)主要依賴于進(jìn)口,盡管進(jìn)口相機(jī)的幀頻達(dá)到了1 000fps,可分辨率很低,且使用條件僅限于民用,所采用的技術(shù)不對(duì)外公開,可借鑒的文獻(xiàn)極少。國(guó)內(nèi)目前研究高幀頻相機(jī)的單位極少,長(zhǎng)春光機(jī)所在2008 年研制的高幀頻互補(bǔ)金屬氧化物半導(dǎo)體(complementary metal oxide semiconductor,CMOS)實(shí)時(shí)圖像采集系統(tǒng)能夠滿足高速圖像數(shù)據(jù)的采集與處理,且畫面清晰,但該系統(tǒng)采用Camera Link接口實(shí)現(xiàn)數(shù)據(jù)的傳輸,通過PCI圖像采集卡將數(shù)據(jù)采集到計(jì)算機(jī)上進(jìn)行處理及顯示,系統(tǒng)體積較大,不符合機(jī)載相機(jī)體積小的要求[1]。
本文所研究的高幀頻圖像采集系統(tǒng)的分辨率為1 024×1 280,采集幀頻為500fps,對(duì)實(shí)時(shí)圖像采集和數(shù)據(jù)處理的要求很高。采用Cypress公司130萬像數(shù)的LUPA1300-2型CMOS圖像傳感器捕獲圖像信息,以現(xiàn)場(chǎng)可編程門陣列(field-programmable gate array,F(xiàn)PGA)為核心處理單元來完成500fps的圖像數(shù)據(jù)采集及實(shí)時(shí)顯示,對(duì)圖像數(shù)據(jù)的采集,色彩復(fù)原,先入先出隊(duì)列(first in first out,F(xiàn)IFO)緩存,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(synchronous dynamic random access memory,SDRAM)存貯及VGA 顯示進(jìn)行的研究,可滿足機(jī)載、艦載和車載環(huán)境下高機(jī)動(dòng)性、小型一體化的需求。
由于要對(duì)高速運(yùn)動(dòng)物體的瞬態(tài)圖像進(jìn)行拍攝,如爆炸瞬間,導(dǎo)彈發(fā)射瞬間等,需要較高的分辨率及幀頻,為滿足需求,所研究的500fps圖像采集與實(shí)時(shí)顯示系統(tǒng)的主要技術(shù)參數(shù)有:
拍攝幀頻:500fps;
采集像素?cái)?shù):1 024×1 280;
數(shù)據(jù)位寬:10bit。
由系統(tǒng)的主要技術(shù)參數(shù)可以計(jì)算出高幀頻數(shù)字圖像傳感器的圖像信息輸出速度為781.25 MB/s,并且LUPA1300-2圖像傳感器輸出格式為Bayer格式,需要轉(zhuǎn)化為RGB格式,格式轉(zhuǎn)化后在FPGA 內(nèi)部的傳輸速度為2343.75 MB/s[2]。由此可見,系統(tǒng)的數(shù)據(jù)處理量很大,對(duì)FPGA、緩存器件的性能及數(shù)據(jù)處理算法的要求很高。由于幀頻很高,不需要人眼實(shí)時(shí)觀察全過程,僅觀察變化規(guī)律即可,因此在實(shí)時(shí)顯示環(huán)節(jié),采用抽幀顯示的方式,可以減小系統(tǒng)的數(shù)據(jù)處理負(fù)擔(dān),增加系統(tǒng)的穩(wěn)定性。
本文選用Altera公司的Cyclone II系列EP2C35型號(hào)的FPGA 芯片作為核心處理單元,系統(tǒng)有低壓差分信號(hào)(low-voltage differential signaling,LVDS)支持,接收端最高805 Mbit/s 數(shù)據(jù)速率,支持SDRAM、DDR2SDRAM 器件,使系統(tǒng)的硬件結(jié)構(gòu)更為簡(jiǎn)單。系統(tǒng)的總體框圖如圖1所示。
圖1 圖像采集系統(tǒng)的總體框圖Fig.1 The general block diagram of image acquisition system
系統(tǒng)工作時(shí)首先通過鍵盤啟動(dòng)數(shù)字圖像傳感器LUPA1300-2,F(xiàn)PGA 通過串行外設(shè)接口(serial peripheral interface,SPI)總線將默認(rèn)參數(shù)傳輸?shù)絃UPA1300-2,如曝光時(shí)間、像素?cái)?shù)、開窗區(qū)域等,并對(duì)整個(gè)系統(tǒng)進(jìn)行初始化設(shè)置。系統(tǒng)啟動(dòng)完成后由LUPA1300-2捕獲高速運(yùn)動(dòng)目標(biāo)的瞬態(tài)圖像信息,通過高速LVDS接口將Bayer格式的圖像傳輸?shù)綀D像采集模塊,由色彩復(fù)原模塊對(duì)完成圖像色彩重建,轉(zhuǎn)化為RGB格式圖像。圖像抽幀模塊每20幀抽取一幀圖像,且通過FIFO1緩存存儲(chǔ)到SDRAM 中,由FIFO2讀取SDRAM 中暫存的圖像信息并傳輸?shù)絍GA 接口,最終在LCD 上實(shí)時(shí)顯示[3]。
圖像采集模塊對(duì)LVDS信號(hào)進(jìn)行串行數(shù)據(jù)解析,得到同步信息碼,還原出正常的圖像同步信息。如行有效信號(hào),場(chǎng)有效信號(hào)等,最終完成對(duì)圖像信息的采集。
LUPA1300-2是Cypress公司推出的針對(duì)機(jī)器視覺和運(yùn)動(dòng)分析的高性能的CMOS圖像傳感器,它能夠提供無失真圖像并執(zhí)行快速讀出。LUPA1300-2在1 024×1 280分辨率下可實(shí)現(xiàn)500fps的圖像采集,利用視窗或子采樣讀取模式可以達(dá)到更高的幀速率;采用12路10位ADC 的LVDS以DDR 方式輸出,每通道像素率最大為630Mbit/s;采用管線化全局同步快門成像,可有效避免拍攝高速運(yùn)動(dòng)所產(chǎn)生的影像模糊和圖像畸變;通過SPI接口對(duì)CMOS 傳感器內(nèi)部寄存器配置,控制傳感器的工作狀態(tài),控制方式簡(jiǎn)單、靈活;輸出圖像格式為Bayer格式,要在傳感器外部完成色彩重建[4]。
LUPA1300-2 的工作流程分為如下幾步:初始化復(fù)位、訓(xùn)練模式、配置片內(nèi)寄存器、像素光積分、圖像信號(hào)放大和量化輸出。
LUPA1300-2在工作時(shí)首先通過RESET_N 對(duì)傳感器的片載序列發(fā)生器、內(nèi)部寄存器和時(shí)序電路進(jìn)行復(fù)位;復(fù)位完成后啟動(dòng)訓(xùn)練模式,確保讀出圖像數(shù)據(jù)的正確性;然后通過SPI總線對(duì)片內(nèi)寄存器進(jìn)行配置,主要包括傳感器的幀頻、曝光時(shí)間、開窗、光積分模式等;寄存器配置完成后開始對(duì)圖像進(jìn)行捕獲、圖像信號(hào)放大、LVDS量化輸出。
FPGA 通過SPI總線對(duì)LUPA1300-2內(nèi)部105個(gè)寄存器進(jìn)行配置,以使傳感器能夠正常工作。SPI總線有CS、CLK、IN、OUT 四條信號(hào)線。CLK 提供接口同步時(shí)鐘,最高速率為主時(shí)鐘的三十分之一。每組數(shù)據(jù)有16位,第1位為讀寫控制命令位,第2~8位為內(nèi)部寄存器的地址位,第9~16位為數(shù)據(jù)位,對(duì)應(yīng)于傳感器的寄存器配置參數(shù)。其中SPI讀時(shí)序的仿真圖如圖2所示。
圖2 SPI總線讀時(shí)序仿真圖Fig.2 The simulation of SPI bus read timing sequence
LUPA1300-2輸出的圖像數(shù)據(jù)通過LVDS接口以DDR方式輸出,每24個(gè)像數(shù)為一個(gè)核單元,每一行總共有54個(gè)核單元。每個(gè)核單元按照一定的次序,分2次在12個(gè)通路中,以雙倍數(shù)據(jù)速率串行輸出。先輸出第0、2、4…22個(gè)像數(shù),再輸出第1、3、5…23個(gè)像數(shù),接著再輸出47、45、43…25個(gè)像數(shù),再輸出第46、44、42…24個(gè)像數(shù),以此類推,直至輸出1行的所有像數(shù)數(shù)據(jù)[5]。數(shù)據(jù)通道與像素時(shí)鐘的相位關(guān)系如圖3所示。
FPGA 在接收到LUPA1300-2 的圖像數(shù)據(jù)后,進(jìn)過串行數(shù)據(jù)解析和像素重組,得到場(chǎng)標(biāo)識(shí)信號(hào)iFVAL,行標(biāo)識(shí)信號(hào)iLVAL和像素信號(hào)[11:0]iDATA,復(fù)位信號(hào)iRST,開始信號(hào)iSTART 和結(jié)束信號(hào)iEND,然后通過對(duì)這些信號(hào)的時(shí)序控制,接收到正確的圖像數(shù)據(jù)。
最終在ModelSim 中仿真得到圖像采集仿真圖如圖4所示。
圖3 數(shù)據(jù)通道與像素時(shí)鐘的相位關(guān)系Fig.3 The phase relationship of the data channel with the pixel clock
圖4 圖像采集模塊仿真圖Fig.4 The simulation of image acquisition modules
在實(shí)時(shí)顯示圖像信息時(shí),盡管進(jìn)行了抽幀,但數(shù)據(jù)處理量仍然很大,僅靠FPGA 內(nèi)部的存儲(chǔ)空間無法滿足需求,需要高速、大容量的存儲(chǔ)器來緩存圖像數(shù)據(jù),采用SDRAM 對(duì)圖像進(jìn)行緩存。但FPGA 的時(shí)鐘,SDRAM 的時(shí)鐘及VGA 的時(shí)鐘均不相同,需要采用FIFO 將兩個(gè)工作頻率不同的器件進(jìn)行數(shù)據(jù)的交互。FIFO 是一種先進(jìn)先出的數(shù)據(jù)緩存器,分為同步FIFO 和異步FIFO 兩種,異步FIFO 是跨時(shí)鐘域系統(tǒng)設(shè)計(jì)中比較常見的模塊組成,它的主要作用是使2個(gè)工作頻率不同的器件在進(jìn)行數(shù)據(jù)交互時(shí)實(shí)現(xiàn)數(shù)據(jù)的平穩(wěn)傳輸[6]。
人眼的極限分辨時(shí)間為1/24s,每20幀抽取一幀,抽幀后幀頻為25fps,此時(shí)RGB 格式圖像的傳輸速率為117.187 5 MB/s。為滿足實(shí)時(shí)性需求,SDRAM 緩存時(shí),采用乒乓交替讀入和寫出完成數(shù)據(jù)的緩存,每個(gè)SDRAM 的容量需大于一幀圖像的大小,即4.687 5 MB,存一幀數(shù)據(jù)需要的時(shí)間為0.04s。因此,選用的SDRAM 的容量應(yīng)大于4.687 5 MB,讀寫速度應(yīng)大于117.187 5 MB/s。設(shè)計(jì)中選用的2片SDRAM,型號(hào)為IS42S16320B,容量為64 MB,讀寫速度為286 MB/s。
SDRAM 在上電時(shí),首先要進(jìn)行初始化,包括200μs的輸入穩(wěn)定期,L-Bank預(yù)充電,8次自刷新,模式寄存器設(shè)置。初始化完成后進(jìn)入工作狀態(tài),其工作時(shí)序?yàn)榭臻e狀態(tài)→行有效狀態(tài)→行有效等待狀態(tài)→讀/寫數(shù)據(jù)準(zhǔn)備狀態(tài)→讀等待潛伏期→讀/寫數(shù)據(jù)狀態(tài)→讀/寫完后預(yù)充電等待狀態(tài)→空閑狀態(tài)[7]。用ModelSim 對(duì)其讀/寫時(shí)序進(jìn)行仿真,讀操作與寫操作的仿真圖如圖5和圖6所示。
圖5 SDRAM 讀操作時(shí)序圖Fig.5 The timing diagram of SDRAM read
圖6 SDRAM 寫操作時(shí)序圖Fig.6 The timing diagram of SDRAM write
VGA 時(shí)序控制模塊的作用是將緩存于SDRAM 中的圖像數(shù)據(jù)在VGA 顯示器上實(shí)時(shí)顯示。VGA 工作時(shí)采用逐行掃描的方式,掃描從屏幕的左上方開始,從左到右,從上到下,逐行掃描。每掃完一行,用行同步信號(hào)進(jìn)行行同步,電子束對(duì)顯示器進(jìn)行消隱,并使其回到屏幕下一行的起始位置。當(dāng)掃描完所有行時(shí),用場(chǎng)同步信號(hào)進(jìn)行場(chǎng)同步,使掃描回到屏幕左上方掃描起始位置。同時(shí)進(jìn)行場(chǎng)消隱,并預(yù)備下一幀的掃描[8-9],圖7所示為用ModelSim 所做的VGA 顯示時(shí)序仿真圖。
圖7 VGA 顯示時(shí)序仿真圖Fig.7 The timing simulation of VGA display
在此時(shí)序圖中,有VGA 時(shí)鐘vga_clk,行有效信號(hào)hsync和幀有效信號(hào)vsync,在其都為高電平并且在VGA 時(shí)鐘的上升沿輸出圖像顏色信息vga_r,vga_g,vga_b。
為了驗(yàn)證系統(tǒng)設(shè)計(jì)的正確性,依據(jù)總體設(shè)計(jì)方案制作了采集、記錄與顯示電路,設(shè)計(jì)了采集軟件,對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)際拍攝。
在滿分辨率條件下對(duì)靜態(tài)物體(花盆)進(jìn)行實(shí)時(shí)圖像采集與顯示,如圖8所示,能夠很清晰地將物體圖像顯示在顯示器上。
以電動(dòng)小車為目標(biāo),移動(dòng)速度約為4.5km/h,在一段時(shí)間內(nèi)對(duì)小車的移動(dòng)過程進(jìn)行拍攝,選取其中連續(xù)的6幅圖像進(jìn)行分析,如圖9所示。通過圖9可以看出,本文所論述的500fps圖像采集及實(shí)時(shí)顯示系統(tǒng)能夠完成對(duì)高速運(yùn)動(dòng)的目標(biāo)進(jìn)行高速的圖像采集并實(shí)時(shí)顯示,滿足現(xiàn)場(chǎng)實(shí)時(shí)性的需求。
圖8 靜態(tài)圖像采集Fig.8 Stationary image acquisition
圖9 連續(xù)圖像采集Fig.9 Continuous image acquisition
本文對(duì)分辨率為1 024×1 280的500fps高幀頻圖像采集及實(shí)時(shí)顯示的關(guān)鍵技術(shù)進(jìn)行了研究,提出了實(shí)現(xiàn)該技術(shù)的基本方案。在設(shè)計(jì)過程中對(duì)各模塊進(jìn)行仿真,驗(yàn)證其可行性,最終設(shè)計(jì)完成后對(duì)整個(gè)系統(tǒng)進(jìn)行性能測(cè)試,實(shí)現(xiàn)了對(duì)視頻圖像的實(shí)時(shí)采集、緩存與顯示,滿足國(guó)防與科研試驗(yàn)中對(duì)高速視頻采集與記錄顯示的需求。
[1] 杜 鵑.基于FPGA 的高幀頻CMOS相機(jī)數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[D].西安:西安工業(yè)大學(xué),2011:2-3.
[2] 楊莉珺,劉鐵根,朱均超,等.基于CMOS圖像傳感器的嵌入式圖像采集與格式轉(zhuǎn)化[J].電子產(chǎn)品世界,2008(6):96-98.
[3] 侯宏錄,杜 鵑.基于乒乓操作的千兆MAC中的FIFO 設(shè)計(jì)[J].光學(xué)儀器,2011,33(1):36-42.
[4] 楊會(huì)偉.高幀頻CMOS相機(jī)圖像采集系統(tǒng)研究[D].西安:西安工業(yè)大學(xué),2009:10-13.
[5] 郭文豹.高速CMOS智能相機(jī)研究[D].長(zhǎng)春:長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,2010:13-21.
[6] 張 濤.高幀頻CMOS相機(jī)實(shí)時(shí)壓縮與傳輸關(guān)鍵技術(shù)究[D].西安:西安工業(yè)大學(xué),2012:24-25.
[7] 張文芳.基于FPGA 的SDRAM 控制器設(shè)計(jì)方案[J].兵工自動(dòng)化,2012,31(2):57-60.
[8] 孫 艷,孫愛良,王紫婷.基于FPGA 的VGA 顯示控制器的實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2008,6(7):106-107.
[9] 董 兵,朱齊丹,文 睿.基于FPGA 的VGA 圖像控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].應(yīng)用科技,2006,33(10):42-45.