引言
在單片機(jī)應(yīng)用系統(tǒng)中,由于圖像采集速度、程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間的限制,要完整存儲(chǔ)30 fps、640×480像素大小的一幅圖像是相當(dāng)困難的。本文運(yùn)用較高性能的16位飛思卡爾單片機(jī)在超高頻的情況下直接采集圖像,也只能采集到每行320個(gè)像素,丟失圖像,無法獲得一幅完整的圖像。本文通過在圖像采集過程中增加FIFO芯片AL422B較好地解決了這一問題,相對(duì)于采用昂貴的DSP而言,降低了圖像采集系統(tǒng)的成本。
1 單目點(diǎn)光源測(cè)距原理
野外作業(yè)時(shí),需要在運(yùn)動(dòng)中知道前方標(biāo)桿和觀察點(diǎn)之間的距離。本文將標(biāo)桿制成等間距紅外點(diǎn)光源標(biāo)桿,滿足了基于單幀靜態(tài)圖像的小孔成像原理測(cè)距模型要求,減少了圖像處理量,提高了測(cè)量的實(shí)時(shí)性、全天候性。H為各點(diǎn)光源標(biāo)桿的實(shí)際距離;n為點(diǎn)光源個(gè)數(shù),它可以通過圖像處理獲得;f為攝像頭焦距;標(biāo)尺實(shí)際像素物理距離h由攝像頭標(biāo)定取得。遠(yuǎn)距離測(cè)距原理示意圖如圖1所示,整條點(diǎn)光源標(biāo)桿都在攝像頭視野范圍內(nèi)。近距離測(cè)距原理示意圖如圖2所示,點(diǎn)光源標(biāo)桿只有部分在攝像頭范圍內(nèi)。通過圖1,可求出前方標(biāo)桿與觀察點(diǎn)的距離D.攝像機(jī)的成像幾何關(guān)系也可用小孔成像原理來近似表示:
2 圖像采集系統(tǒng)硬件設(shè)計(jì)
根據(jù)單目視覺測(cè)距的要求,需要通過一黑白攝像頭實(shí)時(shí)采集前車的點(diǎn)光源標(biāo)桿,通過標(biāo)尺上點(diǎn)光源所在的像素距離推算出前車距離。為了能完整地讀取圖像,本文增加了FIFO芯片,圖像采集原理示意圖如圖3所示。由單片機(jī)監(jiān)測(cè)攝像頭的行/場(chǎng)信號(hào),控制FIFO讀取相應(yīng)的圖像;讀完所有行后,關(guān)閉FIFO讀取圖像功能,開始由單片機(jī)從FIFO中讀取圖像數(shù)據(jù),并進(jìn)行相應(yīng)的圖像處理,根據(jù)圖像處理的復(fù)雜程度,決定圖像處理和圖像采集的時(shí)間比。由于FIFO是先入先出,其讀取數(shù)據(jù)時(shí)單片機(jī)只需通過中斷使能行/場(chǎng)信號(hào),絕大部分時(shí)間單片機(jī)可以用來進(jìn)行圖像處理。本文采取的是采集一幀圖像后,單片機(jī)利用兩幀圖像的空閑時(shí)間和下一幀F(xiàn)IFO采集時(shí)間,共約3幀時(shí)間進(jìn)行圖像處理和控制,其結(jié)果是圖像由原來的30 fps,變成10fps.盡管幀率慢了,但經(jīng)過分析得知,在100 km/h情況下,滯后距離2.8 m,可以滿足要求。
2.1 飛思卡爾16位單片機(jī)MC9S12DG128
本文采用飛思卡爾1 6位單片機(jī)MC9S12DG128作為主控芯片,該芯片是Freescale公司推出的S12系列微控制器中的一款增強(qiáng)型、汽車級(jí)的16位微控制器,片內(nèi)總線時(shí)鐘頻率最高可達(dá)25 MHz,集成了8 KB的RAM、128KB的Flash、2 KB的EEPROM,集成度高,資源也相當(dāng)豐富。
2.2 攝像頭芯片OV7670
OV7670是OmniVision公司推出的Camerachiptm圖像傳感器,體積小,工作電壓低。VGA圖像最高達(dá)到30fps.其主要特性為:
◆感光陣列(共有656×488個(gè)像素,在YUV的模式中有效像素為640×480個(gè));
◆高靈敏度適合低照度應(yīng)用,對(duì)紅外光線敏感;
◆標(biāo)準(zhǔn)的SCCB接口,兼容I2C總線接口;
◆RawRGB、RGB(GRB4:2:2,RGB565/555/444)、YUV(4:2:2)和YCbCr(4:2:2)輸出格式;
◆支持VGA、CIF和從CIF到40×30的各種尺寸。
2.3 FIFO芯片AL422B
AL422B是AverLogic公司推出的一個(gè)存儲(chǔ)容量為393 216字節(jié)×8位的FIFO存儲(chǔ)芯片。其所有的尋址、刷新等操作都由集成在芯片內(nèi)部的控制系統(tǒng)完成,AL422B內(nèi)部功能結(jié)構(gòu)框圖如圖4所示。
AL422B主要特點(diǎn)是:
◆AL422B的存儲(chǔ)體為3 Mb(393 21 6字節(jié)×8位);
◆可以存儲(chǔ)VGA、CCIR、NTSC、PAL和HDTV等制式一幀圖形的信息;
◆獨(dú)立的讀寫操作,可以接受不同的I/O速率;
◆高速異步串行存??;
◆讀寫周期為20 ns;
◆存取時(shí)間為15 ns;
◆內(nèi)部DRAM自刷新。
3 圖像采集系統(tǒng)程序設(shè)計(jì)
3.1 系統(tǒng)實(shí)現(xiàn)
要想在單片機(jī)應(yīng)用系統(tǒng)中實(shí)現(xiàn)數(shù)字圖像的靜態(tài)存儲(chǔ),必須解決存儲(chǔ)速度和存儲(chǔ)容量兩大問題。對(duì)于速度問題,需要對(duì)OV7670的數(shù)據(jù)輸出時(shí)序進(jìn)行分析,使其滿足要求。VGA時(shí)序圖如圖5所示。其中PCLK為像素時(shí)鐘,頻率與主頻一致,即27 MHz,上升沿時(shí)數(shù)據(jù)輸出有效;VSYNC為場(chǎng)信號(hào);
HREF為水平參考信號(hào),當(dāng)像素在窗口有效時(shí)為高電平,否則為低電平;HSYNC為行信號(hào);D[7:0]為8位數(shù)據(jù)輸出。
AL422B寫操作時(shí)序圖如圖6所示,WCK為AL422B的寫入時(shí)鐘,周期最大為1000 ns,最小為20 ns(對(duì)應(yīng)主頻50 MHz);其上升沿時(shí)數(shù)據(jù)寫入,隨著該時(shí)鐘輸入其內(nèi)部,寫指針自動(dòng)增加??梢?,AL422B的速度滿足設(shè)計(jì)要求。具體操作時(shí),由單片機(jī)的I/O口控制AL422B的寫使能/WE,使其為低電平,使能寫功能,數(shù)據(jù)端DI7~0在WCK上升沿時(shí)將數(shù)據(jù)寫入。寫完一副圖像后,由單片機(jī)的I/O口控制寫復(fù)位/WRST,使其為低電平,使能復(fù)位,數(shù)據(jù)寫入地址指針將回到0地址位。
AL422B讀操作時(shí)序圖如圖7所示。RCK為AL422B的讀出時(shí)鐘,周期最大為1000 ns,最小為20 ns,當(dāng)/RE和/OE有效時(shí),在其上升沿?cái)?shù)據(jù)有效,隨著該時(shí)鐘輸入,其內(nèi)部的讀指針自動(dòng)增加。當(dāng)單片機(jī)的主頻為25 MHz時(shí),還不能直接給OV7670的系統(tǒng)時(shí)鐘XCLK提供時(shí)鐘,我們采用外部晶振提供27 MHz的同頻信號(hào)給OV7670。
圖像采集電路原理圖如圖8所示。OV7670的像素時(shí)鐘PCLK直接和AL422B的數(shù)據(jù)讀入時(shí)鐘WCK相連,具體操作時(shí),由單片機(jī)的I/O口控制AL 422B的讀使能/RE和輸出數(shù)據(jù)使能/OE,使它們?yōu)榈碗娖剑皇鼓軘?shù)據(jù)讀出功能,數(shù)據(jù)端DO7~0在RCK上升沿時(shí)將數(shù)據(jù)輸出給單片機(jī)。讀完一副圖像后,由單片機(jī)的I/O口控制寫復(fù)位/RRST,使其為低電平,使能復(fù)位,數(shù)據(jù)讀出地址指針將回到0地址位。
3.2 程序設(shè)計(jì)
程序設(shè)計(jì)流程如圖9所示。當(dāng)單片機(jī)檢測(cè)到場(chǎng)信號(hào)更新后,開始監(jiān)測(cè)行信號(hào)到達(dá),之后使能/WE,開始順序讀取圖像。讀完一幀圖像后關(guān)閉/WE,單片機(jī)使能/RE,開始讀取首行圖像中的640個(gè)像素。本文采取邊讀邊處理的方式,較好地解決了一幀圖像多達(dá)3 MB的問題。點(diǎn)光源標(biāo)桿發(fā)出的紅外光線在圖像上呈現(xiàn)出若干個(gè)光暈區(qū)域,找到光暈中心就可以找到點(diǎn)光源的圖像坐標(biāo),為此在讀取的同時(shí)將各像素點(diǎn)與閾值進(jìn)行比較,小于閾值的為疑似點(diǎn)光源并記錄對(duì)應(yīng)坐標(biāo);當(dāng)讀取完一行像素時(shí),得到的將是一組疑似點(diǎn)光源坐標(biāo)的像素位置,將其進(jìn)行統(tǒng)計(jì)求平均,得出點(diǎn)光源在該行的坐標(biāo),最多12個(gè)字節(jié)(正面標(biāo)桿6個(gè),某側(cè)標(biāo)桿6個(gè)),遠(yuǎn)遠(yuǎn)小于整行640個(gè)字節(jié)。
當(dāng)讀取完一幀像素時(shí),得到最多12×480個(gè)字節(jié),單片機(jī)64 KB的容量完全可以存儲(chǔ),最后將行求平均,得出最終的點(diǎn)光源坐標(biāo)。經(jīng)驗(yàn)證,所需總時(shí)間在2.15幀圖像內(nèi)完成。
結(jié)語
文中討論了基于FIFO芯片和單片機(jī)實(shí)現(xiàn)的點(diǎn)光源圖像采集系統(tǒng),描述了單目點(diǎn)光源測(cè)距原理、圖像采集系統(tǒng)硬件和軟件設(shè)計(jì)方法,著重介紹了FIFO芯片在圖像采集中的橋梁作用。通過系統(tǒng)樣機(jī)檢驗(yàn),能夠滿足要求,達(dá)到了預(yù)期效果。
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423115 -
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634590 -
圖像采集
+關(guān)注
關(guān)注
2文章
299瀏覽量
41276
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論