新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于S12單片機的循跡小車視覺系統設計與優(yōu)化

基于S12單片機的循跡小車視覺系統設計與優(yōu)化

作者: 時間:2009-03-11 來源:網絡 收藏

全國大學生智能汽車競賽已經在國內順利舉行兩年。隨著智能車速度的提高,越來越多的參賽隊開始采用攝像頭作為道路辨識的主要傳感器,而如何使用進行數字圖像信號采集,并識別賽道路徑是該重點。目前與處理技術已經得到了廣泛的應用,但多數圖像的控制都采用了DSP等高速處理器,并不適合智能車競賽所規(guī)定使用的平臺。本文利用CMOS圖像傳感器的可編程特性,了適用于中低速的數字處理,用MC9DG128單片機進行實時和控制。該系統結構簡潔、成本低廉、通用性強,可方便地移植到各種類型的處理器。

本文引用地址:http://www.butianyuan.cn/article/173873.htm

1 主要芯片

MC9DG128是Freescale公司出品的16位單片機,其采用增強型16位HC CPU,內部總線時鐘最高可達25MHz;片內資源包括8KB RAM、128KB Flash、2KB EEPROM、8路10位A/D轉換器、SCI、IIC、SPI串行通訊模塊、PWM模塊以及多路CAN總線模塊等。同時它支持Freescale特有的背景調試模式(BDM),可以進行在系統調試,使開發(fā)效率大大提高。

OV7620[1]是美國OmniVision公司出品的彩色/黑白CMOS圖像傳感器。這是一種自帶圖像敏感陣列和A/D轉換元件、能直接提供8/16位CCIR601、CCIR656等格式視頻數字信號的彩色/黑白圖像傳感器,圖像輸出最高速度可達60S/s,最大圖像分辨率為644×492,5V供電;它具有自動增益、自動曝光、自動白平衡、邊緣增強、伽瑪校正等控制功能;可以通過I 2 C總線進行設置;同時OV7620具有圖像開窗輸出的功能,即允許用戶可根據實際使用需要設置其內部寄存器,使其只輸出完整圖像中的任意一矩形區(qū)域內的信號,其范圍從4×2到644×492。這種功能從硬件上屏蔽了圖像中不需要的部分,只保留用戶需要的部分圖像,大大減少了圖像的數據量,提高了系統的效率。

存儲器沒有地址線,按照先入先出的順序進行順序讀寫,因此是接口電路十分簡潔,讀寫速度快,允許讀寫動作同時進行。IDT7205是IDT公司生產的高速、低功耗異步,容量為8 192×9bit,存取時間最小只有12ns,有空、半滿、滿三個標志位,最大功耗660mW,工作電壓+5V;D0~D8為數據輸入總線,Q0~Q8為數據輸出總線,為讀寫控制端,分別在信號下降沿鎖存、輸出數據,是FIFO寫滿標志位,此外,IDT公司還提供256B~64KB不同容量的FIFO可供選擇。

2 系統硬件結構

由于所使用的MC9S12DG128單片機的頻率較低,最高只有25MHz,而攝像頭的圖像輸出速率一般至少有13.5MHz(以30萬像素為例),每個像素的信號保持時間不到75ns,若使用單片機直接采集圖像傳感器輸出的數字信號,則會受到其時鐘頻率的影響,難以將信號完整地采集進系統。

因此本系統使用FIFO芯片IDT7205作為圖像傳感器與單片機之間的數據緩存,通過設計一定的邏輯電路,使圖像傳感器自動地將圖像數據寫入FIFO,同時MCU開始從FIFO讀出數據。圖像采集系統結構框圖如圖1所示。

2.1 攝像頭同步信號分析

OV7620的同步信號時序如下:垂直同步信號VSYN為兩個正脈沖之間掃描一幀的定時,即完整的一幀圖像在兩個正脈沖之間;水平同步信號HREF掃描該幀圖像中各行像素的定時,即高電平時為掃描一行像素的有效時間;像素同步信號PCLK為讀取有效像素值提供同步信號,高電平時輸出有效圖像數據,若當前圖像窗口大小為320×240,則在VSYN兩個正脈沖之間有240個HREF的正脈沖,即240行;在每個HREF正脈沖期間有320個PCLK正脈沖,即每行320個像素。這就是VSYN、HREF、PCLK三個同步信號之間的關系[2]。OV7620同步信號時序如圖2所示。

2.2 數字圖像信號的采集

為了將圖像傳感器輸出的圖像信號自動地存入FIFO,只需要通過一個“與非門”就能產生符合FIFO要求的寫時鐘脈沖,如圖3所示。將幀同步信號VSYN引入單片機輸入口,復位后V_EN置0,“與非門”關閉,輸出1。當單片機檢測到VSYN上跳后,V_EN輸出1,打開“與非門”。當攝像頭輸出有效像素時,HREF為高,PCLK高電平時像素數據有效,三者“與非”后輸出為0,使信號產生一個下跳,觸發(fā)FIFO鎖存OV7620輸出的圖像數據。

經過圖3電路處理后的系統時序如圖4所示。寫信號已符合腳的時序要求,經實際使用,功能正常。

當一幀圖像寫入FIFO后,單片機根據時序要求在FIFO的腳上產生相應脈沖,即可從FIFO中讀出圖像數據,按照一定格式存入內存,進行后續(xù)處理。圖5為采集得到的黑線圖像。

3 單片機圖像采集系統的

雖然單片機通過一定的硬件結構等可以實現圖像信號的采集,但是由于內部結構的原因,其進行大數據量運算的能力有限,進行圖像處理速度較慢。通過以下方法進行,可以使單片機進行一些簡單的圖像處理和實時控制任務。

3.1 減小圖像數據量

CMOS圖像傳感器具有圖像開窗輸出(Windowing)的功能,通過設置其內部相應寄存器,可以使CMOS只輸出特定區(qū)域內的圖像數據。如設置CMOS使其只輸出畫面中用戶所關心部分的圖像信號,圖像數據量則可大大減少,同時也減輕了后期進行圖像處理的難度,提高了系統的性能。

在要求圖像精度不高的情況下,為了進一步降低圖像數據量、減輕單片機負擔,可以采取隔行、隔像素采集的方法,即在PCLK和HREF信號上加入計數電路,每隔N行和M個像素采集一次,這樣在保證圖像可用的情況下數據量可減小為原來的1/(N×M)。

3.2 FIFO異步讀寫圖像數據

IDT7205具有兩套獨立的讀寫指針,可以同時進行讀和寫操作而互不干擾。當圖像輸出速度比單片機讀入速度快許多時,為了提高采集效率,可以讓圖像讀寫同時進行,即當新的一幀圖像開始寫入FIFO后,單片機就開始讀取圖像數據,讀寫同時進行,以減少單片機等待數據寫入FIFO完成的空閑時間。

3.3 程序算法

單片機并不適合完成復雜的圖像處理算法,如卷積等運算。因此在編寫圖像處理算法時應根據單片機特性,盡量避免使用浮點運算,要簡化算式,或者可以犧牲一定精度來換取時間。以圖像分割的大津算法(OTSU)為例,該算法遍歷0~255個灰度值,以找出一個最小的灰度u,使得到的g最小。

OTSU原始算式:g=Wa×(u0-u)2+Wb×(u1-u)2

OTSU改進算式:g=Wa×Wb×(u0-u1)2

使用原始算式和改進的等效算式進行計算時,每次迭代中改進算式比原始算式少進行2個乘法運算,其速度約提高1/3。

本文提出的FIFO和單片機的圖像處理系統,結構十分簡潔,成本低廉,可移植性強。雖然單片機并不十分適合于大數據量的圖像處理任務,但通過優(yōu)化和精度與性能的折中,可以完成一些簡單的基于圖像的處理任務,并具有一定的實時性。本文介紹的采集系統被用在基于CMOS的智能循跡上,使用一片MC9S12DG128單片機運行于24MHz的總線時鐘并配合IDT7205、OV7620圖像傳感器實現了圖像采集、處理和控制,取得了良好的效果。



評論


相關推薦

技術專區(qū)

關閉