采用圖像傳感器的CPLD視覺系統(tǒng)設(shè)計方法
2011-08-03 08:11:25 來源:互聯(lián)網(wǎng)

采用圖像傳感器的CPLD視覺系統(tǒng)設(shè)計方法

  搭建一種低成本的嵌入式視覺系統(tǒng),系統(tǒng)由CMOS圖像傳感器、CPLD、ARM7微處理器以及SRAM構(gòu)成。其中,CPLD識別時序,解決了圖像采集系統(tǒng)存在的嚴(yán)格時序同步和雙CPU共享一片SRAM的總線競爭問題;用Verilog語言編寫Mealy狀態(tài)機(jī)控制圖像數(shù)據(jù)寫入SRAM,多路數(shù)據(jù)選擇器實(shí)現(xiàn)總線切換,避免了總線沖突。圖像處理算法注重效率,基于ARM實(shí)現(xiàn),系統(tǒng)最終工作速率為25幀/s。

  目前,關(guān)于視覺系統(tǒng)的研究已經(jīng)成為熱點(diǎn),也有開發(fā)出的系統(tǒng)可供參考。但這些系統(tǒng)大多是基于PC機(jī)的,由于算法和硬件結(jié)構(gòu)的復(fù)雜性而使其在小型嵌入式系統(tǒng)中的應(yīng)用受到了限制。上述系統(tǒng)將圖像數(shù)據(jù)采集后,視覺處理算法是在PC機(jī)上實(shí)現(xiàn)的。隨著嵌入式微處理器技術(shù)的進(jìn)步,32位ARM處理器系統(tǒng)擁有很高的運(yùn)算速度和很強(qiáng)的信號處理能力,可以作為視覺系統(tǒng)的處理器,代替PC機(jī)來實(shí)現(xiàn)簡單的視覺處理算法。下面介紹一種基于ARM和CPLD的嵌入式視覺系統(tǒng),希望能分享嵌入式視覺開發(fā)過程中的一些經(jīng)驗(yàn)。

1 系統(tǒng)方案與原理

  在嵌入式視覺的設(shè)計中,目前主流的有以下2種方案:

方案1圖像傳感器+微處理器(ARM或DSP)+SRAM
方案2圖像傳感器+CPLD/FPGA+微處理器+SRAM

  方案1系統(tǒng)結(jié)構(gòu)緊湊,功耗低。在圖像采集時,圖像傳感器輸出的同步時序信號的識別需要借助ARM的中斷,而中斷處理時,微處理器需要完成程序跳轉(zhuǎn)、保存上下文等工作[1],降低了圖像采集的速度,適合對采集速度要求不高、功耗低的場合。

  方案2借助CPLD來識別圖像傳感器的同步時序信號,不必經(jīng)過微處理器的中斷,因而系統(tǒng)的采集速度提高,但CPLD的介入會使系統(tǒng)的功耗提高。

  為了綜合以上2種方案的優(yōu)勢,在硬件上采用“ARM+CPLD+圖像傳感器+SRAM”。該方案充分利用了CPLD的可編程性,通過軟件編程來兼有方案1的優(yōu)勢,具體體現(xiàn)在以下方面:

 ?、?功耗的高低可以控制。對于功耗有嚴(yán)格要求的場合,通過CPLD的可編程性將時序部分的接口與ARM的中斷端口相連,僅僅是組合邏輯的總線相連,可以降低CPLD的功耗從而達(dá)到方案1的效果;對于采集速度要求高而功耗要求不高的情況,可以充分發(fā)揮CPLD的優(yōu)勢,利用組合與時序邏輯來實(shí)現(xiàn)圖像傳感器輸出同步信號的識別,并將圖像數(shù)據(jù)寫入SRAM中。
 ?、?器件的選擇可以多樣。在硬件設(shè)計上,所有總線均與CPLD相連;在軟件設(shè)計上,不同的模塊單獨(dú)按功能封裝。這樣以CPLD為中心,系統(tǒng)的其他器件均可更換而無需對CPLD部分程序進(jìn)行改動,有利于系統(tǒng)的功能升級。

  作為本系統(tǒng)的一種應(yīng)用,開發(fā)了視覺跟蹤的程序,可以在目標(biāo)和背景顏色對比強(qiáng)烈的情況下對物體進(jìn)行跟蹤。通過對CMOS攝像頭采集來的數(shù)據(jù)進(jìn)行實(shí)時處理,根據(jù)物體的顏色計算出被追蹤物體的質(zhì)心坐標(biāo)。下面分別描述系統(tǒng)各部分的功能。

2 系統(tǒng)硬件

2.1 硬件組成及連接

  系統(tǒng)的硬件主要有4部分:CMOS圖像傳感器OV6620、可編程器件CPLD、512 KB的SRAM和32位微處理器LPC2214。

  OV6620是美國OmniVision公司生產(chǎn)的CMOS圖像傳感器,以其高性能、低功耗適合應(yīng)用在嵌入式圖像采集系統(tǒng)中,本系統(tǒng)圖像數(shù)據(jù)的輸入都是通過OV6620采集進(jìn)來的;可編程器件CPLD采用Altera公司的EPM7128S,用Verilog硬件編程語言在QuartusII下編寫程序;作為系統(tǒng)的數(shù)據(jù)緩沖,SRAM選用的是IS61LV5128,其隨機(jī)訪問的特性為圖像處理程序提供了便利;而LPC2214在PLL(鎖相環(huán))的支持下最高可以運(yùn)行在60 MHz的頻率下,為圖像的快速處理提供了硬件支持。

  OV6620集成在一個板卡上,有獨(dú)立的17 MHz晶振。輸出3個圖像同步的時序信號:像素時鐘PCLK、幀同步VSYNC和行同步HREF。同時,還可以通過8位或16位的數(shù)據(jù)總線輸出RGB或YCrCb格式的圖像數(shù)據(jù)。

  在硬件設(shè)計上,有2個問題需要解決:

 ?、?圖像采集的嚴(yán)格時序同步;
 ?、?雙CPU共享SRAM的總線仲裁。

  解決第一個問題的關(guān)鍵在于如何實(shí)時、準(zhǔn)確地讀取OV6620的時序輸出信號,據(jù)此將圖像數(shù)據(jù)寫入SRAM中。這里采用的解決方案是用CPLD來實(shí)現(xiàn)時序信號的識別以及圖像數(shù)據(jù)的寫入。CPLD在硬件上可以識別信號的邊沿,速度更快,通過Verilog語言編寫Mealy狀態(tài)機(jī)來實(shí)現(xiàn)圖像數(shù)據(jù)的SRAM寫入,更加穩(wěn)定。

免責(zé)聲明:本文僅代表作者個人觀點(diǎn),與自動化網(wǎng)無關(guān)。對本文及其中內(nèi)容、文字的真實(shí)性、完整性、及時性,本站不作任何保證或承諾。請讀者僅供參考。