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










評論