王光興, 李洪祚, 黃 勇, 楊 帆
(1.長春理工大學(xué)電子信息工程學(xué)院,吉林長春 130022;2.吉林省博安消防設(shè)備有限公司,吉林長春 130022)
機器視覺就是用機器代替人眼來做測量和判斷。機器視覺系統(tǒng)是指通過機器視覺產(chǎn)品(即圖像攝取裝置,分CMOS和CCD兩種)將被攝取目標轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號;圖像系統(tǒng)對這些信號進行各種運算來抽取目標特征,進而根據(jù)判別的結(jié)果來控制現(xiàn)場的設(shè)備動作。文中將MT9V034這種幀曝光圖像傳感器作為機器視覺的傳感器,通過DSP對采集的圖像進行分析和處理,完成對背景光源的亮度和傳感器電子快門時間的控制,設(shè)計出一款背景光源亮度可調(diào)的工業(yè)化智能相機為貼片機服務(wù)。
系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
主控芯片采用DSP28335,該芯片沒有獨立的圖像采集接口,不能與CMOS圖像傳感器無縫連接。在CMOS圖像傳感器和DSP直接加了一個FIFO芯片,此FIFO芯片內(nèi)存非常大,可以將一幀圖像完整地存在內(nèi)部。SRAM作為圖像存儲芯片,CPLD與CY7C68013A相連作為圖像的傳輸芯片,將圖像數(shù)據(jù)經(jīng)過USB總線傳至上位機。CY7V68013A是一款集成SIE收發(fā)器的USB協(xié)議芯片,內(nèi)置51內(nèi)核接口簡單,數(shù)據(jù)傳輸速度快。DSP28335具有內(nèi)部PWM模塊,可以進行光源的控制。通過不同的占空比,使光源的亮度可調(diào)。
CMOS圖像傳感器選用MT9V034——一款36 W像素的幀曝光圖像傳感器。幀曝光圖像傳感器在曝光的時候采取整幀曝光,同一時間將整個傳感器暴露出來,在對運行中的物體進行采集的時候,不會發(fā)生形變。CMOS圖像傳感器輸出的圖像數(shù)據(jù)包括:幀同步信號、行同步信號、像素輸出時鐘、圖像數(shù)據(jù)。幀同步信號標志著一幀圖像的開始和結(jié)束;行同步信號標志著一幀中一行圖像的開始和結(jié)束;加上像素輸出時鐘的約束,即可以將圖像完美地表示出來。
AL422B是內(nèi)存為3 Mbits的雙口FIFO芯片,可以存放393 216*8 bits數(shù)據(jù)。圖像傳感器設(shè)置為輸出尺寸640*480*8 bits=307 200*8 bits,可以清晰地看出在AL422B芯片內(nèi)部正好可以存上完整的一幀圖像。MT9V034寄存器配置引腳與DSP相連,使得DSP可以完成對MT9V034內(nèi)部寄存器的配置工作,配置總線采用IIC總線。MT9V034傳感器的幀同步信號(FRAME_VALID)連接DSP并在DSP配置引腳的時候配置成下降沿中斷觸發(fā)模式,檢測幀頭幀尾功能。MT9V034的行有效信號(LINE_VALID)與DSP一個普通IO與非后控制AL422B的寫使能。MT9V034的數(shù)據(jù)輸出引腳和時鐘引腳與AL422B相連,在DSP的控制下將圖像數(shù)據(jù)傳輸?shù)紸L422B中,做圖像的緩存工作。
DSP28335內(nèi)部存在一個DMA控制器,直接存儲訪問(DMA)模塊是在不需要CPU仲裁的情況下提供的一種在外設(shè)和內(nèi)存之間傳遞數(shù)據(jù)的硬件辦法。DMA技術(shù)可以在后臺完成數(shù)據(jù)傳輸,減輕CPU的工作量,對于DSP28335這樣的沒有視頻接口的DSP芯片的圖像采集和圖像傳輸工作有很大的幫助。根據(jù)DSP內(nèi)部的DMA控制器的時序要求,需要將FIFO芯片AL422B連接在地址和數(shù)據(jù)總線上。AL422B在DSP地址總線上的編碼為0x200000。
高速可讀寫存儲器SRAM作為圖像的存儲芯片,型號為IS61LV51216,DSP的外設(shè)接口可以與此SRAM芯片無縫連接,地址分配為0x100000~0x17FFFF。
USB芯片使用 Cpress公司的CY7C68013A,此USB芯片內(nèi)部含有一個51內(nèi)核,通過對內(nèi)部固件程序的編寫,可以使CY7C68013A工作在SLAVE_FIFO模式,使用非常簡單,Cpress公司提供基本的固件程序模塊,僅需要簡單修改即可。在與上位機連接時,Cpress公司同時提供了可以正常使用的驅(qū)動程序,大大簡化了DSP與上位機通過USB總線連接的方法[1]。
DSP的數(shù)據(jù)總線同時與CY7C68013A和CPLD相連,地址總線XA8~XA11與CPLD相連,進行部分地址的編碼。當CY7C68013A的FIFO中存到2 KB數(shù)據(jù)時,CY7C68013A將此數(shù)據(jù)包打包發(fā)往上位機。CY7C68013A的FIFO狀態(tài)引腳與CPLD相連,并可以通過總線傳到DSP內(nèi)部,完成對FIFO狀態(tài)的監(jiān)控。當DSP檢測到FIFO為非滿時,啟動下一次傳輸,繼續(xù)向FIFO中寫入數(shù)據(jù)。由于USB發(fā)送數(shù)據(jù)比DSP向FIFO中發(fā)送數(shù)據(jù)快,所以,這樣既可以加快傳輸速度又避免了出錯[2]。
LM3410為LED驅(qū)動芯片,最大輸出電流為2.8 A。工作時外圍電路非常簡單,而且芯片具有反饋引腳,在芯片內(nèi)部可以完成自動控制功能。LM3410芯片和其外圍電路構(gòu)成一個升壓斬波電路。在DIMM引腳處接占空比可調(diào)的PWM信號,就可以完成對背景光源的控制。LM3410光源驅(qū)動芯片外圍電路如圖2所示。
圖2 LM3410光源驅(qū)動芯片外圍電路
整個系統(tǒng)的軟件分為4個部分,USB芯片固件程序、DSP程序、CPLD程序和上位機程序。USB芯片的固件程序使USB芯片CY7C68013A運行在SLAVE_FIFO模式,USB芯片負責(zé)完成上位機和DSP芯片的數(shù)據(jù)交流工作;DSP程序是整個系統(tǒng)的核心,負責(zé)采集圖像、處理圖像、傳輸圖像以及背景光源的控制等工作;CPLD程序負責(zé)將DSP系統(tǒng)的地址擴展以便DSP連接USB芯片;上位機程序使用Lab View軟件,負責(zé)向DSP芯片發(fā)送指令以及顯示圖像數(shù)據(jù)[3]。
通過對USB芯片CY7C68013A固件程序的編寫,使此芯片工作在異步SLAVE_FIFO模式。當FIFO內(nèi)數(shù)據(jù)到達2 KB時,由內(nèi)置的51內(nèi)核將圖像數(shù)據(jù)打包通過USB總線發(fā)送到上位機。下面為3個比較重要的寄存器配置,這3條程序位置在void TD_Init(void)函數(shù)中。
DSP作為整個系統(tǒng)的核心模塊,啟動后DSP一直等待上位機發(fā)來的指令。如果上位機發(fā)送來的指令是快速模式的話,DSP會直接采集圖像然后傳給上位機。如果為慢速模式時,DSP會依據(jù)具體指令對光源亮度和電子快門時間進行設(shè)定,再進行圖像采集、圖像處理和圖像傳輸?shù)裙ぷ鳌3绦蛘w流程如圖3所示。
圖3 整體軟件流程
3.2.1 圖像采集程序
圖像傳感器的配置使用IIC總線,DSP通過IIC總線完成圖像傳感器的配置工作[4]。圖像采集部分按數(shù)據(jù)流向分為兩個階段:第一階段圖像數(shù)據(jù)流由CMOS圖像傳感器到FIFO芯片;第二階段圖像數(shù)據(jù)流由FIFO芯片到SRAM中。
第一階段,利用下降沿檢測中斷檢測圖像傳感器的幀同步信號,DSP連接在與非門的引腳輸出高電平。在CMOS傳感器行同步信號的限制下,圖像數(shù)據(jù)流入FIFO芯片中。當再次檢測到下降沿時,標志著圖像數(shù)據(jù)的幀尾標志,關(guān)閉流向FIFO的數(shù)據(jù)通道,到此第一階段完成。第二階段,利用DMA控制器將FIFO芯片地址(0x200000)的數(shù)據(jù)傳輸?shù)絊RAM芯片地址(0x100000)中,完成圖像數(shù)據(jù)流向SRAM中。至此完成圖像數(shù)據(jù)采集工作,圖像數(shù)據(jù)由圖像傳感器到達SRAM中。
3.2.2 圖像傳輸和圖像處理程序
圖像處理部分由很多個圖像處理子函數(shù)組成[5],還可以根據(jù)個人需要再次添加圖像處理函數(shù),在SRAM中可以存3幀圖像數(shù)據(jù),在進行圖像處理時可以作為圖像數(shù)據(jù)的緩存。
圖像傳輸部分同樣是由DMA模塊控制的,由DMA控制器將存在SRAM中的圖像數(shù)據(jù)發(fā)送到CY7C68013A芯片內(nèi)部的FIFO中,再由CY7C68013A芯片打包發(fā)送到上位機。由于圖像數(shù)據(jù)量特別大且CY7C68013A片內(nèi)的FIFO尺寸問題,所以圖像傳輸時需要經(jīng)過很多次DMA傳輸。其傳輸子函數(shù)如下:
3.2.3 DSP發(fā)送的占空比可調(diào)的PWM
DSP28335內(nèi)部具有一個強大的PWM模塊,可以完成很多功能,這里僅用到它的很簡單的功能,發(fā)送一個占空比可調(diào)的方波。EPwm5Regs.TBPRD寄存器設(shè)置方波的周期,EPwm5Regs.CMPA.half.CMPA寄存器設(shè)置方波的占空比,通過設(shè)置不同的值來調(diào)整方波的占空比。
NI-VISA(Virtual Instrument Software Architecture)是美國國家儀器公司開發(fā)的一種用來與各種儀器總線進行通信的高級應(yīng)用編程接口[6]。在Lab View上使用NI-VISA進行USB通信時,使用USB RAW設(shè)備,USB RAW設(shè)備是指除了明確符合USB TMC規(guī)格的儀器之外的任何USB設(shè)備,通信時需要進行配置。通過查詢USB設(shè)備的PID和VID的數(shù)值,建立驅(qū)動程序。之后即可以很方便使用PID和VID的值,在Lab View程序中調(diào)用這個USB設(shè)備。
上位機通過USB總線與DSP系統(tǒng)連接在一起,通過發(fā)送不同的數(shù)據(jù)指令,完成多種功能[7]。
USB指令格式(共66 bits)見表1。
表2 PDO1通信參數(shù)設(shè)置
傳輸?shù)暮竺婢哂蠧RC16的32位數(shù)據(jù)校驗區(qū),保證數(shù)據(jù)的可靠傳輸。
MODE:0為慢速圖像采集模式,在圖像采集時可以進行背景光源的控制,電子快門的控制以及進行一些圖像處理功能;1為高速圖像采集模式,DSP接到此命令以后僅進行圖像采集,然后立即將圖像數(shù)據(jù)上傳到上位機,其它位的數(shù)值均被忽略;
LED:LED的值為0時,背景光源采集自動控制,首先進行一次圖像采集,然后對此圖像進行判斷,根據(jù)判斷的結(jié)果調(diào)整光源亮度;LED的值為1時,LEDVALUE的值有效,根據(jù)此值調(diào)整光源亮度;
LEDVALUE:當LED為1時,有效。其值為PWM的占空比,即亮度程度。范圍在10~90之內(nèi),代表10%~90%;
SHUTTER:當SHUTTER為0時,自動控制圖像傳感器的電子快門時間;為1時,根據(jù)S_VALUE的值,手動設(shè)置電子快門時間;
S_VALUE:圖像傳感器的電子快門時間;范圍在10~32 765之內(nèi);
PROCESS:為1時,圖像采集以后進行圖像處理,進行何種圖像處理功能由P_TYPE確定;為0時,不進行任何圖像處理;
P_TYPE:圖像處理類型;
SEND:為1時,圖像通過USB數(shù)據(jù)總線發(fā)送到上位機;為0時,不發(fā)送。
硬件連接圖及實驗平臺如圖4所示。
圖4 實物圖
系統(tǒng)通過總線隔離和地址譯碼,只使用簡單的雙口FIFO芯片AL422B接入DSP,僅占用DSP少量軟件開銷和總線資源就完成圖像數(shù)據(jù)的采集。與采用視頻接口芯片、外圍FIFO和CPLD/FPGA等方案相比[8],很大程度上降低了系統(tǒng)成本,縮短了開發(fā)周期,對系統(tǒng)總線的占用卻并沒有增加。利用CY7C68013A大大簡化了DSP與上位機通過USB總線連接的方法;利用LM3410可使工作時外圍電路非常簡單并完成對背景光源的控制,減少系統(tǒng)中斷次數(shù),優(yōu)化系統(tǒng)性能,能夠?qū)D像處理的結(jié)果直觀地顯示出來。與其它DSP系統(tǒng)相比,本系統(tǒng)具有處理速度快、接口簡單、成本低、能實時顯示的特點,適用于視覺導(dǎo)航、視頻實時處理等要求高速處理圖像以及有實時演示要求的場合。
[1] 王文杰.USB2_0加密接口芯片的設(shè)計及其FPGA驗證[D]:[碩士學(xué)位論文].長沙:中南大學(xué),2008.
[2] 趙彥全.基于FX2的數(shù)據(jù)源設(shè)計與USB2_0高速傳輸探討[D]:[碩士學(xué)位論文].北京:中國科學(xué)院電子學(xué)研究所,2006.
[3] 段雷.基于DSP+FPGA的圖像處理電路板硬件設(shè)計[D]:[碩士學(xué)位論文].成都:西南交通大學(xué),2008.
[4] 何維.一種高速數(shù)據(jù)采集及存儲系統(tǒng)的研究[D]:[碩士學(xué)位論文].西安:西北工業(yè)大學(xué),2007.
[5] 岡薩雷斯.數(shù)字圖像處理[M].2版.北京:電子工業(yè)出版社,2004:59-98.
[6] 余志榮,楊莉.基于NI-VISA與Lab VIEW的USB接口應(yīng)用設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2007(1):66-69.
[7] 楊樂平,李海濤,趙勇,等.Lab VIEW高級程序設(shè)計[M].北京:清華大學(xué)出版社,2003:37-44.
[8] 閆豐.一種基于FPGA的實時圖像處理系統(tǒng)[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2003,24(4):50-52.