基于攝像頭的路徑信息采集系統(tǒng)的簡(jiǎn)易設(shè)計(jì)與實(shí)現(xiàn)
摘要:?本文基于freescale 16位HCS12單片機(jī)的輸入捕捉功能設(shè)計(jì)一種視頻信號(hào)采集系統(tǒng)。在該系統(tǒng)中,將CMOS攝像頭的輸出信號(hào)二值化,利用單片機(jī)輸入捕捉功能實(shí)時(shí)對(duì)信號(hào)采樣、處理,提取出黑色導(dǎo)引線的形狀特征。實(shí)驗(yàn)證明:系統(tǒng)能很好地滿足智能車(chē)對(duì)路徑識(shí)別性能和抗干擾能力的要求,實(shí)時(shí)性好,測(cè)量精度高,同時(shí)硬件和軟件的開(kāi)銷(xiāo)都比較小。
關(guān)鍵詞:?圖像二值化;HCS12單片機(jī);視頻圖像;比較器
引言
第二屆“飛思卡爾”杯全國(guó)大學(xué)生智能車(chē)競(jìng)賽中,要求各參賽隊(duì)賽車(chē)在規(guī)定的賽道上行駛,速度快者勝出。由于跑道只有黑、白兩色,對(duì)圖像的灰度沒(méi)有要求,所以只需要反映反射光線的強(qiáng)弱。若用A/D進(jìn)行采樣,不僅軟件設(shè)計(jì)比較麻煩,而且測(cè)量的精度和響應(yīng)時(shí)間都不夠理想,抗干擾能力也較差。本文摒棄傳統(tǒng)的視頻信號(hào)采集方法,結(jié)合單片機(jī)的輸入捕捉功能,提出一種新的路徑識(shí)別方法,并在實(shí)際系統(tǒng)中得到應(yīng)用,實(shí)踐表明該方法不僅使系統(tǒng)具有良好的性能,而且容易實(shí)現(xiàn)。
視頻信號(hào)的特征
使用CHD-918B面陣CMOS攝像頭,通過(guò)對(duì)內(nèi)部電路的改造,可以在5V電壓環(huán)境下正常工作,輸出PAL 制式模擬視頻信號(hào),如圖1所示。每秒掃描50場(chǎng)圖像,一場(chǎng)又有312.5行,每行圖像信號(hào)時(shí)間為64μs,除去行同步頭,其中有效的圖像信號(hào)約為59.3μs。所以,若選用S12的A/D轉(zhuǎn)換器采集,轉(zhuǎn)換耗時(shí)壓力大,圖像分辨率低。
系統(tǒng)設(shè)計(jì)思想
設(shè)計(jì)是于白色跑道和黑色導(dǎo)引線對(duì)光反射能力不同的設(shè)計(jì)思路,同時(shí)又結(jié)合單片機(jī)的輸入捕捉功能模塊來(lái)實(shí)現(xiàn)的。
根據(jù)競(jìng)賽的實(shí)際情況和要求,只需要在白色背景的跑道中提取出黑色的導(dǎo)引線,而與圖像的灰度無(wú)關(guān),通過(guò)分析攝像頭輸出信號(hào)的特點(diǎn),利用比較器將視頻信號(hào)二值化,進(jìn)而把黑色導(dǎo)引線與白色背景區(qū)分開(kāi)來(lái),如圖2所示。同時(shí),由于導(dǎo)引線的寬度是恒定的,行掃描時(shí)間和同步頭時(shí)間也是定值,通過(guò)軟件簡(jiǎn)單編程就可以濾除環(huán)境干擾,達(dá)到不錯(cuò)的濾波效果。
鑒于MC9S12DG128是HCS12系列單片機(jī)的一種,片內(nèi)設(shè)有增強(qiáng)型定時(shí)器(ECT),具有輸入捕捉功能,可通過(guò)捕捉系統(tǒng)時(shí)鐘脈沖來(lái)檢測(cè)導(dǎo)引線。這樣,計(jì)算單片機(jī)相應(yīng)階段內(nèi)輸入捕捉系統(tǒng)時(shí)鐘脈沖的個(gè)數(shù)就能反映當(dāng)前的路徑信息。系統(tǒng)的實(shí)現(xiàn)如圖3所示。
系統(tǒng)實(shí)現(xiàn)
視頻信號(hào)同步分離:視頻信號(hào)分離電路主要采用視頻同步分離芯片1881,電路原理圖如圖4所示。先將經(jīng)過(guò)預(yù)處理的視頻信號(hào)通過(guò)一個(gè)濾波電路接至LM1881的2腳,為了濾除雜波,匹配阻抗,C4選取0.1μF,C2取510pF,R2取620Ω。1腳輸出行同步信號(hào),3腳輸出場(chǎng)同步信號(hào),在實(shí)際運(yùn)用中,二者存在高頻干擾,所以必須加上低通濾波器。
選行電路:在一場(chǎng)視頻信號(hào)中共掃描312.5行,沒(méi)有必要每一行都進(jìn)行采樣,只需要選擇性的采集特定行,計(jì)算出跑道的大致形狀,同時(shí)也為后續(xù)處理留出時(shí)間。該部分電路主要由一片二進(jìn)制計(jì)數(shù)器74LS161實(shí)現(xiàn),原理圖如圖5所示。對(duì)行使能信號(hào)控制行同步信號(hào)的開(kāi)關(guān),通過(guò)對(duì)撥碼開(kāi)關(guān)的設(shè)置,可對(duì)行同步2、4、8、16分頻,選擇采集不同的行。本文在調(diào)試過(guò)程中設(shè)置成4分頻。
二值化電路
視頻信號(hào)的二值化主要由芯片MAX941完成,通過(guò)調(diào)節(jié)滑動(dòng)變阻器的阻值來(lái)改變閾值電壓。經(jīng)反復(fù)試驗(yàn)本文將閾值定在2.55V。防止黑色導(dǎo)引線的邊界處出現(xiàn)毛刺干擾,在二值化輸出端加上RC低通濾波電路。電路圖如圖6所示。
時(shí)序關(guān)系:在上述幾個(gè)電路模塊中,使用了門(mén)電路、計(jì)數(shù)器、比較器,使原有的時(shí)序關(guān)系發(fā)生了變化,后續(xù)編程處理和系統(tǒng)的可靠性受到挑戰(zhàn)。在比較器的輸出端加入兩片非門(mén),增大延時(shí),情況得到改善。最后得到的時(shí)序關(guān)系如圖7所示。其中a為場(chǎng)同步,b為行同步,c是經(jīng)過(guò)4分頻后的行同步信號(hào),d為二值化后的視頻信號(hào),包含著路徑信息。
輸入捕捉:MC9S12DG128單片機(jī)的外部晶振為16MHz,,由于輸入捕捉寄存器為16 位,其計(jì)數(shù)值最大為65535,需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻處理,設(shè)分配系數(shù)為a,其中
a=2-n,(n=0,1,2…7)??????????? (1)
則分頻后的系統(tǒng)時(shí)鐘可由(2)式得,
f1=f0×a=16MHz×2-3=2MHz? (2)
即最小單位為0.5μs,對(duì)應(yīng)的跑道采集精度,遠(yuǎn)處的分辨率為0.4cm,近處的為0.2cm ,完全符合路徑識(shí)別的要求。輸入捕捉的觸發(fā)方式設(shè)置成任意沿捕捉,這樣可以簡(jiǎn)化硬件電路的設(shè)計(jì)。以,僅僅需要計(jì)算幾個(gè)沿變化之間輸入捕捉系統(tǒng)時(shí)鐘脈沖的個(gè)數(shù),就能精準(zhǔn)的反映當(dāng)前的路徑信。對(duì)應(yīng)圖2,BC段是黑線,DE段是同步頭,AB與CD段反映的是左右視場(chǎng)邊沿到黑線的距離,在后續(xù)處理中,可以利用這些信息方便的計(jì)算出跑道的曲率和斜率。由于黑色導(dǎo)引線的寬度是一定的,每行有效圖像掃描時(shí)間都約為59.3μs,根據(jù)這些信息就可以剔除明顯的壞點(diǎn),增強(qiáng)系統(tǒng)得抗干擾能力。
軟件實(shí)現(xiàn):為了節(jié)約系統(tǒng)時(shí)間,在編程中主要采用中斷處理,并且設(shè)置成上升沿觸發(fā)。在場(chǎng)中斷期間,先調(diào)用屏蔽場(chǎng)同步消隱子程序,把成像效果不好的部分濾除掉,隨后打開(kāi)行中斷。當(dāng)經(jīng)過(guò)分頻后的行同步頭到來(lái)時(shí),開(kāi)始捕捉圖像信號(hào)的4個(gè)任意沿,在相應(yīng)兩個(gè)沿之間,所捕捉到的系統(tǒng)時(shí)鐘脈沖個(gè)數(shù)就反映了當(dāng)前的路徑信息。另外,為了消除偶然誤差的影響,在不降低系統(tǒng)速度測(cè)量精度的前提下,通過(guò)使用軟件上的循環(huán)隊(duì)列算法,保證了路徑信息的準(zhǔn)確性。循環(huán)隊(duì)列的具體實(shí)現(xiàn)過(guò)程為:通過(guò)設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)的隊(duì)列,每發(fā)生一次輸入捕捉中斷就進(jìn)行一次入隊(duì)操作,由隊(duì)列“先進(jìn)先出”的性質(zhì),即替換最先入隊(duì)數(shù)據(jù),能夠保證將最新的刷新數(shù)據(jù)進(jìn)行數(shù)據(jù)處理并進(jìn)行控制,提高了控制的實(shí)時(shí)性。該系統(tǒng)部分軟件流程圖如圖8所示。
結(jié)語(yǔ)
若采用片內(nèi)A/D采集,在最高時(shí)鐘頻率2MHZ的情況下,進(jìn)行一次10位精度A/D轉(zhuǎn)換的時(shí)間為7μs。這樣,采集的圖像每行只有8個(gè)像素,圖像分辨率過(guò)低。如果采用超頻的手段來(lái)補(bǔ)償,又會(huì)降低系統(tǒng)的可靠性。而本文采集的圖像數(shù)據(jù)分辨率為128×64,每行有128個(gè)像素,并且分辨率留有進(jìn)一步提高的余留量,軟件的編寫(xiě)也比較簡(jiǎn)單。但是該方法目前還不能區(qū)分圖像的灰度,是以后需要改進(jìn)之處。
參考文獻(xiàn):
1 邵貝貝, 單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M], 北京:清華大學(xué)出版社,2004.
2 王明順, 虛擬編碼器在智能車(chē)上的應(yīng)用[J,
電子產(chǎn)品世界,2006 (12)
3 吳建輝,印制電路板的電磁兼容性設(shè)計(jì)[M],北京:國(guó)防工業(yè)出版社,2005
4? [美]Steven F.Barrett,Daniel J.Pack著,鄭扣根譯,嵌入式系統(tǒng)——使用68HC12和HCS12的設(shè)計(jì)與應(yīng)用[M]. 北京:電子工業(yè)出版社,2006
5 卓晴等., 學(xué)做智能車(chē)[M]. 北京那個(gè)航空航天大學(xué)出版社,2007
評(píng)論