熊俊俏,周建軍,熊詩(shī)琪
(1.武漢工程大學(xué)電氣信息學(xué)院,湖北 武漢 430205;2.武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205)
隨著集成電路技術(shù)的發(fā)展,集成圖像傳感器已進(jìn)入數(shù)字式時(shí)代[1],輸出數(shù)據(jù)為一定格式的數(shù)據(jù)流,不受外部控制.因此,由于處理器的運(yùn)行速率有限,直接應(yīng)用數(shù)據(jù)總線采集數(shù)據(jù)已不可能,因此大多采用先進(jìn)先出存儲(chǔ)器先緩存處理[1-2],如文獻(xiàn)[2]在設(shè)計(jì)中通過(guò)現(xiàn)場(chǎng)可編程門陣列實(shí)現(xiàn)雙時(shí)鐘先進(jìn)先出存儲(chǔ)器模塊,仍需要通過(guò)內(nèi)部總線進(jìn)行數(shù)據(jù)存儲(chǔ),采集速率將受到內(nèi)部總線的限制;文獻(xiàn)[3]采用現(xiàn)場(chǎng)可編程門陣列器件設(shè)計(jì)的控制器亦需要通過(guò)內(nèi)部總線存儲(chǔ)采集的數(shù)據(jù),并利用靜態(tài)隨機(jī)存儲(chǔ)器緩沖, 因此,數(shù)據(jù)速率也受到內(nèi)部總線速率的限制.如果傳感器數(shù)據(jù)速率增大,數(shù)據(jù)流將要求大容量的先進(jìn)先出存儲(chǔ)器,使得成本上升.本文提出采用現(xiàn)場(chǎng)可編程門陣列器件設(shè)計(jì)專用數(shù)據(jù)采集控制器,在采集數(shù)據(jù)時(shí)直接接管靜態(tài)隨機(jī)存儲(chǔ)器的數(shù)據(jù)總線,數(shù)據(jù)采集速率將與內(nèi)部總線無(wú)關(guān),僅與傳感器和靜態(tài)隨機(jī)存儲(chǔ)器的工作速率有關(guān),采集完數(shù)據(jù)后利用軟核處理和顯示采集的圖像,非常適合視頻圖像的實(shí)時(shí)采集.
根據(jù)實(shí)際需要,系統(tǒng)由專用數(shù)字?jǐn)z像頭、控制器和顯示器組成,數(shù)字?jǐn)z像頭選用OV6620數(shù)字圖像傳感器[3],液晶顯示器,控制器為DE2系統(tǒng),內(nèi)有3.5萬(wàn)邏輯單元的可編程邏輯器件Altera Cyclone II 2C35、512 kbyte 靜態(tài)隨機(jī)存儲(chǔ)器和1Mbyte FLASH存儲(chǔ)器,VGA(Video Graphics Array)顯示接口等,其中,Cyclone II支持NIOSII軟核微處理器,內(nèi)置32位Avalon總線.
考慮NIOSII處理速率的限制,圖像采集控制器由現(xiàn)場(chǎng)可編程門陣列模塊構(gòu)成,接收傳感器數(shù)據(jù),并根據(jù)地址發(fā)生器的地址寫入至靜態(tài)隨機(jī)存儲(chǔ)器,控制器模塊只由處理器給定地址發(fā)生器的起始地址,已經(jīng)啟動(dòng)/終止采集命令,當(dāng)處理器處理數(shù)據(jù)時(shí),通過(guò)Avalon總線讀取數(shù)據(jù)處理,系統(tǒng)的結(jié)構(gòu)如圖1所示.
OV6620為專用數(shù)字圖像傳感器[3],內(nèi)含總像素為101 376,以及雙8位模/數(shù)轉(zhuǎn)換器,兩種工作模式為16bit/YUV和8bit/YUV,對(duì)應(yīng)的攝像頭分辨率分別為QCIF(176×144 像素)和CIF(352×288像素).OV6620采用模塊化,與外圍接口只有場(chǎng)同步信號(hào)VSYN、行同步信號(hào)HREF、像素同步信號(hào)PCLK(像素同步信號(hào))和數(shù)據(jù)總線DATA,逐行數(shù)據(jù)讀出,數(shù)據(jù)格式為YCrCb4∶2∶2、GRB4∶2∶2或RGB原始數(shù)據(jù),通過(guò)串行控制總線可編程,可實(shí)現(xiàn)圖像增強(qiáng)處理,如色彩飽和度、亮度、對(duì)比度、白平衡、曝光時(shí)間、增益控制等,常用于視頻會(huì)議、視頻電話、視頻監(jiān)控和多媒體等場(chǎng)所.OV6620的工作時(shí)序如圖2所示,圖2中VSYN為場(chǎng)同步信號(hào),HREF為行同步信號(hào),像素同步信號(hào)PCLK為讀取有效像素值提供同步信號(hào),高電平時(shí)輸出有效圖像數(shù)據(jù).
圖1 圖像數(shù)據(jù)采集與顯示結(jié)構(gòu)框圖Fig.1 Image data acquisition and display block diagram
圖2 OV6620工作時(shí)序Fig.2 Timing of OV6620
在CIF狀態(tài)下,OV6620的工作時(shí)序如圖2所示,VYNSC為幀信號(hào),周期是20 ms, 其中高電平持續(xù)時(shí)間很短;HREF是為行脈沖信號(hào),周期為63 μs左右,其中高電平持續(xù)時(shí)間為40 μs,低電平持續(xù)時(shí)間 23 μs,對(duì)照時(shí)序圖可以計(jì)算OV6620的分辨率為:20 ms/63 μs=317,但實(shí)際并沒(méi)有這么多,除去消隱和無(wú)效信號(hào)后只有292行;每一行的像素為40 μs/110 ns=363個(gè), 去掉消隱和無(wú)效信號(hào)后為356個(gè),因此,OV6620的分辨率為356×292.通過(guò)實(shí)際測(cè)量,PCLK的周期只有150 ns,因此,不能直接采用處理器的中斷或查詢采集圖像數(shù)據(jù).
根據(jù)OV6620的工作時(shí)序,幀信號(hào)決定了數(shù)據(jù)流的起始點(diǎn),行脈沖決定了每一行數(shù)據(jù)的起始位置和長(zhǎng)度,像素同步信號(hào)提供了數(shù)據(jù)讀時(shí)鐘,但需要考慮的是:數(shù)據(jù)讀時(shí)鐘持續(xù)有效,而實(shí)際有效數(shù)據(jù)個(gè)數(shù)由幀脈沖和行脈沖決定.因此,數(shù)據(jù)采集控制器的寫信號(hào)為PCLK,地址發(fā)生器實(shí)際為地址累加器,初始地址通過(guò)NIOSII預(yù)置,PCLK為地址發(fā)生器的時(shí)鐘.具體的程序流程和內(nèi)部結(jié)構(gòu)如圖3所示.
考慮到錯(cuò)誤冗余,在每一行的數(shù)據(jù)存儲(chǔ)地址空間為360,比實(shí)際的352大,每一幀的空間為360×295,因此,每一幀的首地址由處理器預(yù)置,每一個(gè)像素的存儲(chǔ)地址為
A=Q0+Q1·360+Q2
式中,Q0為每一幀的起始地址,由處理器預(yù)置,Q1為行脈沖計(jì)數(shù)器值,Q2為地址累加器的值,每個(gè)PCLK時(shí)鐘自動(dòng)加一.
該控制器模塊采用Verilog描述,經(jīng)過(guò)編譯下載執(zhí)行,可獲得穩(wěn)定的采樣數(shù)據(jù).這里需要注意的是,由于數(shù)據(jù)采集開(kāi)始的指令與幀脈沖信號(hào)不一致,因此每幀數(shù)據(jù)的采集時(shí)間應(yīng)超過(guò)2幀的時(shí)間,才能保證完整的一幀數(shù)據(jù)存儲(chǔ)在指定的空間,這是由于只有第一幀的振脈沖下降沿才能確定存儲(chǔ)起始地址的緣故,本系統(tǒng)取40 ms完成一幀數(shù)據(jù)采集.
系統(tǒng)軟件主要完成控制器的初始地址預(yù)置、圖像數(shù)據(jù)處理與顯示.由于采集的數(shù)據(jù)為YUV格式,需要轉(zhuǎn)化為RGB格式才能由VGA顯示.
圖3 控制器時(shí)序與內(nèi)部結(jié)構(gòu)Fig.3 Controller processes and internal structure
YUV與RGB的轉(zhuǎn)換關(guān)系為
Y= 0.59G+ 0.31R+ 0.11B
U=R-Y
V=B-Y
首先系統(tǒng)初始化,設(shè)置數(shù)據(jù)存儲(chǔ)空間首地址,為開(kāi)始圖像采集作準(zhǔn)備,進(jìn)入主循環(huán),啟動(dòng)采集控制器工作.根據(jù)需要完成采集圖像幀數(shù)目,開(kāi)始進(jìn)行圖像處理和顯示[4].程序流程如圖4所示.
圖4 系統(tǒng)軟件流程Fig.4 System software program flow
顯示模塊是將采集的圖片對(duì)比,VGA顯示為640×480,將采集的圖片裁剪置入640×480矩陣中,改變圖片在矩陣中的坐標(biāo)存放,并一起在VGA屏上顯示.
根據(jù)實(shí)際需要,對(duì)圖像傳感器采集的彩色圖像做灰度處理,并采用閾值分割法,對(duì)目標(biāo)和背景占據(jù)不同灰度級(jí)范圍的圖像,壓縮數(shù)據(jù)量,并設(shè)定閥值將采集的圖像作二值化處理,獲得邊界輪廓.
將設(shè)計(jì)的控制器與內(nèi)核NIOSII一并編譯下載,并裝配程序執(zhí)行.根據(jù)需要,系統(tǒng)連續(xù)采集多幀圖像,并顯示在VGA顯示屏上,如圖5所示.
利用現(xiàn)場(chǎng)可編程門陣列芯片的高速特性實(shí)現(xiàn)高速數(shù)據(jù)采集與存儲(chǔ),并采用片上系統(tǒng)NIOSII進(jìn)行數(shù)據(jù)處理和顯示,全部設(shè)計(jì)在一片Altera Cyclone II 2C35上完成,節(jié)省了硬件開(kāi)銷,提高了數(shù)據(jù)采集的速度,不占用處理器的資源,其在線可編程功能提高設(shè)計(jì)應(yīng)用的靈活性.所設(shè)計(jì)的采集控制器為硬件模塊,也適用于其它高速數(shù)據(jù)采集場(chǎng)合.高速圖像采集與顯示的實(shí)現(xiàn),為下一步圖像識(shí)別和控制提供了基礎(chǔ),在此特別感謝Altera公司提供的DE2平臺(tái)和技術(shù)指導(dǎo).
圖5 實(shí)物與采集的圖片顯示Fig.5 The Actual Object and its Display
參考文獻(xiàn):
[1] 許崢,李明,李成金,等. 基于SOPC 的實(shí)時(shí)圖像處理系統(tǒng)設(shè)計(jì)[J].光電技術(shù)應(yīng)用, 2011,26(4):4-7.
[2] 尚媛園,楊新華,徐達(dá)維.基于SOPC技術(shù)的高速圖像采集控制系統(tǒng)的設(shè)計(jì)與研究[J].傳感技術(shù)學(xué)報(bào),2011,24(6):864-869.
[3] OV6620 SINGLE-CHIP CMOS CIF COLOR DIGITAL CAMERA[EB/OL].http//www.cs.cmu.edu /~cmucam/Downloads/ov6620DSLF.PDF.2000-03-13/2011-07-10.
[4] 廖永清,丁旭昌,付建國(guó).基于FPGA的VGA圖像動(dòng)態(tài)顯示控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(17):52-54.