李洪法 ,薛旭成,郭永飛,朱宏殷,2
(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春130033;2.中國科學院 研究生院,北京100039)
隨著電子耦合器件( Charge Coupled Device,CCD) 在光電成像領(lǐng)域應(yīng)用范圍的擴大,應(yīng)用系統(tǒng)對CCD 的功能和性能要求越來越高,CCD 逐漸向大尺寸、小像元、高速度的方向發(fā)展。為了適應(yīng)上述發(fā)展要求,許多CCD 在輸出數(shù)據(jù)時采用了多抽頭的結(jié)構(gòu)形式[1-2]。這種結(jié)構(gòu)形式的CCD 輸出的圖像呈多段式,如果直接使用,則最終的圖像將呈條段式,這與實際使用不相符合。另一方面,通常這種結(jié)構(gòu)CCD 的多個抽頭間的數(shù)據(jù)輸出方向相反。因此,實際應(yīng)用這種CCD 時,需要對其輸出的圖像數(shù)據(jù)進行重新整合。本文提出了一種利用XILINX VIRTEX 系列現(xiàn)場可編程門陣列( FPGA)的內(nèi)部Block RAM 實現(xiàn)多抽頭CCD 圖像數(shù)據(jù)整合的方法。
某系統(tǒng)使用的線陣CCD 共有4 096 個像元,采用雙抽頭輸出的工作模式,其圖像輸出原理示意圖如圖1 所示。
圖1 兩抽頭CCD 的圖像輸出示意圖Fig.1 Output sketch of double-tap CCD
表1 CCD 各像元的輸出次序Tab.1 Pixel sequences of CCD output
當CCD 完成對景物積分后,該行的圖像數(shù)據(jù)從位于CCD 兩側(cè)的抽頭1 和抽頭2 同時輸出。每個抽頭輸出2 048 個像元的數(shù)據(jù)。但是抽頭1 輸出的圖像是正序,而抽頭2 輸出的圖像是逆序,即抽頭1 依次輸出像元1 ~像元2 048,抽頭2 依次輸出像元4 096 ~像元2 049[3]。兩個抽頭輸出的圖像像元順序如表1所示。
由于該CCD 是多抽頭輸出,其順序和正常景物的順序不一致,因此需要對其進行二次整合后再使用[4]。整合的要求是按CCD 的實際像元位置將兩個抽頭的數(shù)據(jù)合并為一路輸出,即把兩個抽頭的圖像數(shù)據(jù)合并為一路按像元1 ~像元4 096順序輸出圖像[5]。通常利用乒乓原理對兩個抽頭的數(shù)據(jù)進行緩存處理[6],其實現(xiàn)結(jié)構(gòu)如圖2 所示。
圖2 傳統(tǒng)的乒乓操作整合結(jié)構(gòu)Fig.2 Conformal structure of traditional Ping-Pang
在圖2 中,RAM1 和RAM3 分別用于緩存抽頭1 和抽頭2 的第1 行圖像數(shù)據(jù),RAM2 和RAM4分別用于緩存抽頭1 和抽頭2 的第2 行圖像數(shù)據(jù)。如果輸入的圖像數(shù)據(jù)以8 bit 進行量化,則對于第2 小節(jié)中的CCD而言,RAM1 ~RAM4 都是容量為2 Kbit 的雙口RAM,因此在這種工作結(jié)構(gòu)下,完成圖像數(shù)據(jù)的整合共需要8 Kbit 的雙口RAM。
圖2 中RAM 使用的工作原理如下:
(1) 在第N個行周期,將CCD 的第N行數(shù)據(jù)分別緩存進RAM1 和RAM3 中;
(2) 在第N+1 個行周期,在將CCD 的第N+1 行數(shù)據(jù)分別緩存進RAM2 和RAM4 中的同時,將之前緩存在RAM1 和RAM3 中的第N行圖像數(shù)據(jù)進行整合輸出至輸出端口;
(3) 在第N+2 個行周期,在將CCD 的第N+2 行數(shù)據(jù)分別緩存進RAM1 和RAM3 中的同時,將緩存在RAM2 和RAM4 中的第N+1 行圖像數(shù)據(jù)進行整合輸出至輸出端口;
(4) 在第4 個行周期以及后面的行周期中,重復(fù)上述步驟2 和步驟3 即可,直至停止數(shù)據(jù)采集。
采用上述方法可以實現(xiàn)對多抽頭CCD 圖像數(shù)據(jù)的整合,但是它的缺點是占用的RAM 資源量較大,輸出有延滯,這在一些對資源要求比較高的系統(tǒng)中是不合適的[7]。根據(jù)CCD 兩個抽頭輸出的圖像數(shù)據(jù)的特點,本文對上述RAM 使用結(jié)構(gòu)進行了改進。
圖3 改進乒乓后的數(shù)據(jù)整合結(jié)構(gòu)Fig.3 Conformal structure of improved Ping-Pang
由于抽頭1 的圖像數(shù)據(jù)與抽頭2 同時輸入,但在輸出時抽頭1 的圖像數(shù)據(jù)比抽頭2 的數(shù)據(jù)先輸出,且抽頭1 的數(shù)據(jù)在輸入時和輸出時沒有改變[8],因此可以通過調(diào)整工作時序使得采用一片RAM 即可完成抽頭1 的數(shù)據(jù)緩存。改進后的RAM 結(jié)構(gòu)如圖3 所示。
圖3 中,抽頭1 占用了一片容量為2 Kbit 的RAM,抽頭2 用了兩片容量為2 Kbit 的RAM,合計共占用6 Kbit 大小的RAM,和改進前相比節(jié)省了25%的存儲空間[8]。
抽頭1 數(shù)據(jù)的像元順序在輸入時和輸出時一致,而且輸出時先于抽頭2 輸出。因此,如果寫入速率為CLK1X,讀出速率為CLK2X,則只要在寫入端完成一半的圖像數(shù)據(jù)寫入后,即可在完成寫入數(shù)據(jù)的同時也完成對抽頭1 數(shù)據(jù)的讀取。為了保證FPGA 內(nèi)部對RAM 操作時有可靠的建立時間和保持時間,對抽頭1 數(shù)據(jù)完成了1025 個像元數(shù)據(jù)存儲后再進行讀取,詳細過程如下:
(1) 在第N個行周期中,在RAM1 和RAM3的寫入端,將CCD 數(shù)據(jù)以CLK1X 的速率分別緩存進RAM1 和RAM3 中; 在RAM1 輸出端,在寫完第1 026 個像元的數(shù)據(jù)后,以CLK2X 的速率將RAM1 中存儲的抽頭1 數(shù)據(jù)按順序進行輸出。將RAM1 中的數(shù)據(jù)讀完后,將RAM3 的數(shù)據(jù)按規(guī)定的順序進行輸出。
(2) 在第N+ 1 個行周期中,在RAM1 和RAM4 的寫入端,將CCD 數(shù)據(jù)以CLK1X 的速率分別緩存進RAM1 和RAM4 中; 在RAM1 輸出端,在寫完第1 026 個像元的數(shù)據(jù)后,以CLK2X的速率將RAM1 中存儲的抽頭1 數(shù)據(jù)按順序進行輸出。將RAM1 中的數(shù)據(jù)讀完后,將RAM4 的數(shù)據(jù)按規(guī)定的順序進行輸出。
(3) 在第N+2 個行周期以及后面的行周期中,重復(fù)上述步驟1 和步驟2 即可。
為了驗證改進后的RAM 結(jié)構(gòu),采用XILINX的VIRTEX 系列FPGA 搭建了一個軟件平臺[9]對其進行仿真驗證,如圖4 所示。其中自校圖形產(chǎn)生模塊用來模擬從CCD 輸出的兩個抽頭的數(shù)據(jù),圖像整合模塊采用第2 節(jié)中介紹的RAM 結(jié)構(gòu)實現(xiàn)將輸入的數(shù)據(jù)按照指定的順序重新整合[10],并將整合后的數(shù)據(jù)輸出,由此形成該仿真軟件的頂層原理圖,如圖5 所示。
圖4 仿真軟件方框圖Fig.4 Block diagram of simulation software
在圖5 中,自校圖形產(chǎn)生模塊zjtx 模擬CCD的抽頭1 和抽頭2 的輸出圖像,兩個抽頭的圖像格式相同。由于系統(tǒng)中所使用的CCD 共有4 096個像元從兩個抽頭分別輸出,因此每個抽頭上有2 048個像元數(shù)據(jù)輸出。自校圖形是數(shù)據(jù)由00H逐漸增加至FFH 的數(shù)據(jù)段 ,根據(jù)上面的分析可知,每個抽頭上這樣的數(shù)據(jù)段共有8 組,如表2所示。
表2 自校圖形模塊輸出格式Tab.2 Output format of self-check image module
圖5 圖像整合的頂層原理圖Fig.5 Top scheme of image conformity
圖像整合模塊由RAM1,RAM34,hecheng 和xzout 等子模塊構(gòu)成。由于圖3 中的WR_ENA2和WR_ENB2 互相對立,即當WR_ENA2 有效時,WR_ENB2 無效;當WR_ENA2 無效時,WR_ENB2有效。因此可以將這兩個信號作為RAM 的寫地址線使用,即可以將圖3 中的RAM3 和RAM4 兩片RAM 更新為圖5 中的一片RAM—RAM34。這樣,自校圖形模塊產(chǎn)生的兩抽頭數(shù)據(jù)在hecheng子模塊的控制下,在RAM1 和RAM34 兩片RAM之間可進行乒乓存儲和讀取。最后,通過xzout 子模塊輸出整合后形成的有序圖像流。
圖6 ModelSim 仿真結(jié)果Fig.6 Simulation result of ModelSim
圖7 整合后行頭數(shù)據(jù)( 局部)Fig.7 Conformed data at the beginning of line
圖8 整合后抽頭接縫處數(shù)據(jù)( 局部)Fig.8 Conformed data at the join of two taps
在上述輸入圖像數(shù)據(jù)格式下,利用ModelSim軟件對上述模塊進行了仿真。仿真結(jié)果如圖6 所示。將其進行局部放大后,如圖7 ~圖9 所示,分別是整合后行首、抽頭接縫以及行尾處的局部放大圖。從圖中可以看出,輸出圖像實現(xiàn)了對輸入的兩抽頭數(shù)據(jù)按照CCD 像元1 ~4 096 的順序重新整合,完成了工作目標。
圖9 整合后行尾數(shù)據(jù)( 局部)Fig.9 Conformed data at the end of line
針對硬件資源占用率要求較高的CCD 圖像數(shù)據(jù)采集系統(tǒng),提出了一種基于XILINX VIRTEX系列FPGA 的內(nèi)部BLOCK RAM,利用改進的RAM 結(jié)構(gòu)實現(xiàn)了對雙抽頭CCD 輸出圖像數(shù)據(jù)的整合。與傳統(tǒng)的乒乓操作方法相比,該方法可以節(jié)省25%的RAM 資源占用,大大降低了軟件對系統(tǒng)硬件資源的要求,有利于實現(xiàn)系統(tǒng)的集成化、小型化和輕量化,也有利于降低系統(tǒng)的成本。該方法在實際的工程中得到了成功應(yīng)用,從運行結(jié)果看,該方法是有效和準確的。
[1] 胡琳.CCD 圖像傳感器的現(xiàn)狀及未來發(fā)展[J].電子科技,2010,23(6) :82-85.HU L. Current situations and future developments of CCD image sensors[J].Electronic Sci.&Technology,2010,23(6) :82-85.( in Chinese)
[2] HIDESHI A. Device technologies for high quality and smaller pixel in CCD and CMOS image sensors[C]//Proceeding of the Technical Digest International Electron Devices Meeting,2004:989-912.
[3] THEUWISSEN A J P. The hole role in solid-state imagers[J].IEEE T. Electron Devices,2006,53(12) :2972-2980.
[4] 王明富,楊世洪,吳欽章.大面陣CCD 圖像實時顯示系統(tǒng)的設(shè)計[J].光學 精密工程,2010,18(9) :2053-2059.WANG M F,YANG SH H,WU Q ZH. Design of large-array CCD real-time display system[J].Opt. Precision Eng.,2009,17(8) :2053-2059.( in Chinese)
[5] 徐欣,于紅旗,易凡,等.基于FPGA 的嵌入式系統(tǒng)設(shè)計[M].北京:機械工業(yè)出版社,2004.XU X,YU H Q,YI F,et al. Embedded System Design Based on FPGA[M]. Beijing:China Machine Press,2004.( in Chinese)
[6] 周賢波,馮龍齡.基于DSP 和FPGA 圖像采集技術(shù)的研究[J].光學技術(shù),2006,32( 增) :141-143.ZHOU X B,F(xiàn)ENG L L. A study on image acquisition technology based on DSP and FPGA[J].Opt. Technique,2006,32( S) :141-143.( in Chinese)
[7] 梁冰,易茂祥,顏天信.高性能線性CCD 開發(fā)平臺的研制[J]. 合肥工業(yè)大學學報( 自然科學版) ,2010,33( 10) :1579-1581.LIANG B,YI M X,YAN T X. Design of high-performance linear CCD development platform[J].J. Hefei University Technol.,2010,33(10) :1579-1581.( in Chinese)
[8] DUAN J H,DENG Y L,LANG K. Development of image processing system based on DSP and FPGA[C],ICEMI'07. 8th Int Conf on Electronic Measurement and Instruments,Aug 16-18 2007,Xi'an,China,2007:2791-2794.
[9] ZHANG F. A high-speed method of CCD image data storage system[J].IEEE Advanced Computer Control,2010,2(6) :45-48.
[10] ZHAO Y F,WANG Q Y. Digital image storage system based on 1M60 digital CCD[J].Electronics&Control,2007,14(5) :179-183.
[11] 王文華,何斌,任建岳.線陣CCD 成像系統(tǒng)自校圖形設(shè)計[J].光學 精密工程,2009,17(8) :2011-2016.WANG W H,HE B,REN J Y. Design of self-check figures in linear CCD imaging system[J].Opt. Precision Eng.,2009,17(8) :2011-2016.( in Chinese)