張 力,張南洋生,曾延安,朱 兵,張 超
(華中科技大學(xué)光學(xué)與電子信息學(xué)院,湖北武漢 430074)
嵌入式圖像采集處理系統(tǒng)是工業(yè)機(jī)器視覺智能前端的基礎(chǔ),相對(duì)傳統(tǒng)的圖像采集處理系統(tǒng)具有體積小、功耗低、實(shí)時(shí)性好以及穩(wěn)定性高等優(yōu)點(diǎn),將其用于圖像采集、姿態(tài)定位、信息預(yù)處理等方面具有重要的意義。在當(dāng)前的嵌入式圖像采集系統(tǒng)中,常用的圖像傳感器主要有CMOS和CCD兩種類型,CMOS型圖像傳感器雖然功耗低,攝像系統(tǒng)尺寸小,但其圖像質(zhì)量和系統(tǒng)靈活性與CCD比相對(duì)較低,CCD動(dòng)態(tài)范圍大,靈敏度高,環(huán)境適應(yīng)性好,更能滿足工業(yè)需求[1]。為滿足工業(yè)應(yīng)用對(duì)圖像采集設(shè)備高分辨率、高速以及低功耗等方面的要求,本文以O(shè)MAP3530嵌入式處理器為核心,設(shè)計(jì)了一種適用于工業(yè)機(jī)器視覺智能前端的CCD圖像采集系統(tǒng)。
為滿足工業(yè)機(jī)器視覺智能前端的兩用性,既可以單獨(dú)作為嵌入式圖像采集處理系統(tǒng)使用,提供最終的數(shù)據(jù)處理結(jié)果,也可以作為終端系統(tǒng)的智能前端,提供完善的數(shù)據(jù),本文設(shè)計(jì)圍繞圖像采集及處理模塊展開,系統(tǒng)總體框圖如圖1所示。
圖像采集模塊由CCD圖像傳感器,A/D轉(zhuǎn)換電路,時(shí)序產(chǎn)生控制電路以及驅(qū)動(dòng)電路組成。物體經(jīng)過鏡頭成像在 CCD上,CCD將光信號(hào)轉(zhuǎn)換為電信號(hào),然后根據(jù)驅(qū)動(dòng)時(shí)序逐個(gè)像素輸出。CCD輸出的模擬信號(hào)由A/D進(jìn)行相關(guān)雙采樣、暗電平鉗位、增益放大和A/D轉(zhuǎn)換等處理后輸出給時(shí)序產(chǎn)生控制電路。最后,由時(shí)序控制電路產(chǎn)生同步信號(hào),同A/D轉(zhuǎn)換數(shù)字信號(hào)一起輸出給圖像處理及顯示部分。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
為提高成像質(zhì)量,選用ICX285AL CCD作為圖像傳感器,它具有像素尺寸大、光電轉(zhuǎn)換效率高、低噪聲等特性,滿足工業(yè)設(shè)計(jì)要求。
圖像處理模塊以O(shè)MAP3530處理器為核心。OMAP3530是一款基于ARM+DSP架構(gòu)的處理器,其中ARM核是采用了ARMv7架構(gòu)的Cortex-A8內(nèi)核,頻率最高可達(dá)720 MHz;該芯片同時(shí)集成了520 MHz的TMS320C64x+DSP、圖像引擎以及豐富的外設(shè),因此能夠滿足高性能要求。
鏡頭、圖像采集模塊以及圖像處理模塊共同組成工業(yè)機(jī)器視覺智能前端,同時(shí)本系統(tǒng)具有良好的擴(kuò)展性,系統(tǒng)提供了一系列的擴(kuò)展接口,可滿足各種定制服務(wù)。
本系統(tǒng)以 OMAP3530處理器為硬件平臺(tái)[2],由于以O(shè)MAP3530為核心的外圍電路設(shè)計(jì)較為成熟,因此選用集成了USB接口、網(wǎng)口、SD卡接口等外設(shè)的電路板為目標(biāo)嵌入式圖像處理硬件系統(tǒng)。
圖像采集模塊是本文硬件設(shè)計(jì)的重點(diǎn),主要包括CCD時(shí)序產(chǎn)生和控制電路、CCD信號(hào)驅(qū)動(dòng)電路、CCD輸出信號(hào)數(shù)字化處理以及電源電路。
CCD驅(qū)動(dòng)時(shí)序是一組具有特定電平電壓的、周期性的、關(guān)系比較復(fù)雜的時(shí)序脈沖信號(hào),它主要控制CCD電荷信號(hào)的轉(zhuǎn)移和讀出,直接影響CCD的轉(zhuǎn)換效率、讀出速率以及信噪比等重要參數(shù),因此,設(shè)計(jì)穩(wěn)定精確的時(shí)序產(chǎn)生電路尤為重要。
ICX285AL是行間轉(zhuǎn)移型CCD,需要5路垂直驅(qū)動(dòng)信號(hào)、2路水平驅(qū)動(dòng)信號(hào)、復(fù)位信號(hào)以及曝光控制信號(hào)等,時(shí)序設(shè)計(jì)復(fù)雜,因此選用可編程邏輯器件CPLD驅(qū)動(dòng),這樣的設(shè)計(jì)提高了設(shè)計(jì)的靈活性,調(diào)試簡(jiǎn)易,并且節(jié)約成本。
CPLD產(chǎn)生的時(shí)序信號(hào)需要經(jīng)過驅(qū)動(dòng)電路才能作用于CCD芯片,驅(qū)動(dòng)電路的作用就是改變信號(hào)幅值,增強(qiáng)信號(hào)功率。
ICX285AL垂直信號(hào)驅(qū)動(dòng)采用專用的驅(qū)動(dòng)芯片CXD3400N,它可以對(duì)垂直時(shí)序信號(hào) VΦ1、VΦ2A、VΦ2B、VΦ3、VΦ4和快門控制信號(hào)ΦSUB進(jìn)行驅(qū)動(dòng)。電路連接圖如圖2所示。
圖2 CXD3400N與ICX285AL連接原理圖
對(duì)于水平寄存器讀出信號(hào)HΦ1、HΦ2和復(fù)位信號(hào)ΦRG,要求驅(qū)動(dòng)器具有較大的驅(qū)動(dòng)電流,此外,芯片手冊(cè)中要求HΦ1、HΦ2的典型值為5 V,ΦRG的典型值為3.3 V,而CPLD輸出電壓為3.3 V,因此驅(qū)動(dòng)HΦ1、HΦ2需要進(jìn)行電壓變換。本設(shè)計(jì)選用專用的CCD時(shí)鐘驅(qū)動(dòng)芯片EL7155作為水平寄存器讀出信號(hào)HΦ1、HΦ2和復(fù)位信號(hào)ΦRG的驅(qū)動(dòng)器件。EL7155不僅可以提高信號(hào)的功率,還可以進(jìn)行電平的轉(zhuǎn)換。EL7155外圍電路設(shè)計(jì)如圖3所示。
圖3 EL7155外圍電路
CCD信號(hào)處理流程如圖4所示。
圖4 CCD信號(hào)處理流程
本文采用CCD視頻信號(hào)處理芯片AD9945進(jìn)行相關(guān)的信號(hào)處理,其噪聲小,精度高,適合工業(yè)應(yīng)用。AD9945的時(shí)序信號(hào)和設(shè)置信號(hào)由CPLD提供。AD9945完成對(duì)CCD信號(hào)的相關(guān)雙采樣、增益放大以及A/D轉(zhuǎn)換,它是整個(gè)圖像采集模塊的重要組成部分,其性能直接影響最終的圖像質(zhì)量。AD9945的外圍電路連接如圖5所示。
驅(qū)動(dòng)程序的設(shè)計(jì)包括圖像傳感器的驅(qū)動(dòng),OMAP3530端V4L2驅(qū)動(dòng)以及 OMAP3530圖像采集驅(qū)動(dòng)。通過修改OMAP3530EVM板提供的驅(qū)動(dòng)以滿足需要,需要修改的地方集中在2個(gè)方面:一是結(jié)合需要對(duì)V4L2部分的修改,引入自定義的圖像數(shù)據(jù)格式;二是對(duì)圖像數(shù)據(jù)處理通路的修改。
Linux視頻驅(qū)動(dòng)遵循V4L2標(biāo)準(zhǔn),為上層應(yīng)用程序提供標(biāo)準(zhǔn)接口[3]。V4L2驅(qū)動(dòng)框架提供了良好的數(shù)據(jù)時(shí)序及內(nèi)存管理功能,為驅(qū)動(dòng)開發(fā)提供了統(tǒng)一接口,擴(kuò)展性好。
CCD信號(hào)采集板的輸出信號(hào)為12位灰度圖像數(shù)據(jù),不同于標(biāo)準(zhǔn)的圖像格式,因此在V4L2的驅(qū)動(dòng)中有必要為其規(guī)定名稱及設(shè)定顏色空間。V4L2中圖像數(shù)據(jù)格式的定義可以在<linux/videodev2.h>中根據(jù)需要任意添加,但是在驅(qū)動(dòng)程序和應(yīng)用程序中新定義的圖像格式和顏色空間內(nèi)容應(yīng)保持一致。為CCD信號(hào)采集板定義的圖像數(shù)據(jù)格式如下:#define V4L2_PIX_FMT_MONO12 v4l2_fourcc(’M’,’N’,’1’,’2’)。定義這樣的格式只是為了不與其他的已有數(shù)據(jù)格式混淆,處理數(shù)據(jù)的時(shí)候仍需配置相應(yīng)的寄存器,指明數(shù)據(jù)通路。同樣地,在enum v4l2_colorspace中添加 V4L2_COLORSPACE_MON12=9,為CCD圖像傳感器規(guī)定新的顏色空間。
另一方面,對(duì)應(yīng)不同的圖像采集模塊,輸出信號(hào)的圖像數(shù)據(jù)格式不盡相同(單個(gè)像素所占字節(jié)數(shù)、有效圖像數(shù)據(jù)所占數(shù)據(jù)位等),對(duì)圖像數(shù)據(jù)的處理方式也各不相同,因此需要修改數(shù)據(jù)通路。首先修改<include/media/v4l2-int-device.h>,仿照 enum v4l2_if_type_bt656_mode和struct v4l2_if_type_bt656添加enum v4l2_if_type_raw_mode和struct v4l2_if_type_raw,指定圖像數(shù)據(jù)的場(chǎng)同步信號(hào)極性以及數(shù)據(jù)模式,數(shù)據(jù)模式在v4l2_if_type_raw_mode中添加,包括V4L2_IF_TYPE_RAW_12BIT等模式。
驅(qū)動(dòng)程序的設(shè)計(jì)一方面完成了寄存器的配置、數(shù)據(jù)通路的選擇,另一方面為應(yīng)用程序功能實(shí)現(xiàn)提供了基礎(chǔ)。
應(yīng)用程序設(shè)計(jì)主要包括3個(gè)模塊:基于V4L2框架的圖像采集標(biāo)準(zhǔn)流程;圖像顯示;人機(jī)交互界面及控制功能。其中基于V4L2框架的圖像采集標(biāo)準(zhǔn)流程為最重要的部分,圖像顯示與人機(jī)交互界面為該智能前端的拓展應(yīng)用之一。下面詳細(xì)介紹基于V4L2框架的圖像采集模塊設(shè)計(jì)。
由于設(shè)計(jì)的圖像傳感器驅(qū)動(dòng)是在V4L2框架下實(shí)現(xiàn)的,因此圖像采集部分的應(yīng)用程序也遵循V4L2框架。V4L2程序流程圖如圖6所示。
圖6 V4L2應(yīng)用程序流程圖
V4L2的應(yīng)用程序框架較為簡(jiǎn)單且相對(duì)穩(wěn)定,采用流水線方式,具體操作通過ioctl實(shí)現(xiàn),主要包括:打開設(shè)備、查詢?cè)O(shè)備屬性、獲取設(shè)備有效輸入、設(shè)置視頻格式和幀格式、向驅(qū)動(dòng)申請(qǐng)幀緩沖、將申請(qǐng)到的幀緩沖入隊(duì)以存放數(shù)據(jù),以上工作結(jié)束后開始采集視頻,然后循環(huán)將幀緩沖出隊(duì)取得數(shù)據(jù)并將幀緩沖重新入隊(duì),最后停止視頻采集關(guān)閉設(shè)備。
應(yīng)用程序的設(shè)計(jì)圍繞數(shù)據(jù)源采集處理展開,提供了工業(yè)機(jī)器視覺智能前端圖像采集系統(tǒng)的框架,根據(jù)需求,機(jī)器視覺圖像算法可以方便地嵌入到該框架中。
本文用CCD圖像采集電路和OMAP3530開發(fā)板搭建了一套實(shí)驗(yàn)測(cè)試系統(tǒng),驗(yàn)證系統(tǒng)方案設(shè)計(jì)的可行性,系統(tǒng)實(shí)物圖如圖7所示。
系統(tǒng)工作時(shí),ICX285AL CCD圖像采集模塊采集到的圖像數(shù)據(jù)通過轉(zhuǎn)接板傳送到OMAP3530處理器,系統(tǒng)對(duì)圖像數(shù)據(jù)采集處理后將其實(shí)時(shí)顯示到LCD觸摸屏上。用戶通過觸摸屏控制圖像的采集、停止、拍照等,需要保存的圖像數(shù)據(jù)存儲(chǔ)在SD卡中。圖像顯示使用幀緩沖設(shè)備,通過幀緩沖設(shè)備可以將顯示器作為圖形設(shè)備來使用,可以設(shè)置其分辨率、顏色深度等屬性,修改其任意地方像素點(diǎn)的值。人機(jī)交互界面及控制功能使用Qt工具進(jìn)行開發(fā),本文由Qt開發(fā)的人機(jī)交互界面友好,穩(wěn)定性高。軟件功能可以根據(jù)工業(yè)需求擴(kuò)展。圖像實(shí)時(shí)顯示效果如圖8所示。
圖7 系統(tǒng)實(shí)物圖
圖8 圖像顯示效果圖
實(shí)驗(yàn)結(jié)果表明圖像數(shù)據(jù)從采集到接收未丟失,所拍攝的圖像能實(shí)時(shí)完整顯示。整套系統(tǒng)功耗低,數(shù)據(jù)處理能力強(qiáng),實(shí)時(shí)性好,穩(wěn)定性高。
本文設(shè)計(jì)了一套高效的工業(yè)機(jī)器視覺智能前端圖像采集系統(tǒng),一方面可以單獨(dú)作為嵌入式圖像采集系統(tǒng),另一方面可以作為具有一定預(yù)處理功能的前端設(shè)備。硬件系統(tǒng)穩(wěn)定可靠,功耗低,具有良好的擴(kuò)展性;軟件系統(tǒng)實(shí)時(shí)高效,在構(gòu)建的框架下可較好地嵌入各種機(jī)器視覺算法??傊鞠到y(tǒng)符合工業(yè)機(jī)器視覺智能前端的特性要求,具有很大的研究和實(shí)用價(jià)值。此外,本文工作也可應(yīng)用于其他CCD、CMOS圖像傳感器、OMAP處理器等,應(yīng)用前景廣泛。
[1]佟雨兵,常青,張其善.嵌入式CCD視頻圖像采集系統(tǒng).光電工程,2004(B12):133-136.
[2]王衛(wèi),秦會(huì)斌,鄭陽(yáng)春.基于OMAP3530 Linux的3G無線視頻監(jiān)控系統(tǒng).中國(guó)儀器儀表,2014(2):22-25.
[3]SCHIMEK M H.Video for Linux two API specification(Revision 0.24),http://v4l2spec.bytesex.org/spec - single/v4l2.html.
[4]宋悅,周玉國(guó),李晴慧,等.基于ARM的嵌入式紅外圖像監(jiān)控系統(tǒng).儀表技術(shù)與傳感器,2013(11):38-40.
[5]V4L2 基 礎(chǔ) 知 識(shí).http://blog.csdn.net/woxincd/article/details/6371226.
[6]姚聰,方勇,汪敏,等.基于ARM的嵌入式圖像采集處理系統(tǒng)及其無線傳輸.電子技術(shù),2013(11):25-28.
[7]宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解.2版.北京:人民郵電出版社,2010:334-362.