基于ARM和CPLD的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)


原標(biāo)題:基于ARM和CPLD的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)
基于ARM和CPLD的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)是一種結(jié)合了ARM處理器的強(qiáng)大計(jì)算能力和CPLD(Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)的高靈活性的設(shè)計(jì)方案。以下是對(duì)該系統(tǒng)的詳細(xì)設(shè)計(jì)介紹:
一、系統(tǒng)方案與原理
在嵌入式視覺(jué)系統(tǒng)的設(shè)計(jì)中,目前主流的方案有兩種:
圖像傳感器+微處理器(ARM或DSP)+SRAM:該方案系統(tǒng)結(jié)構(gòu)緊湊,功耗低。在圖像采集時(shí),圖像傳感器輸出的同步時(shí)序信號(hào)的識(shí)別需要借助ARM的中斷。然而,中斷處理時(shí)微處理器需要完成程序跳轉(zhuǎn)、保存上下文等工作,這降低了圖像采集的速度,因此該方案更適合對(duì)采集速度要求不高、功耗低的場(chǎng)合。
圖像傳感器+CPLD/FPGA+微處理器+SRAM:該方案借助CPLD來(lái)識(shí)別圖像傳感器的同步時(shí)序信號(hào),不必經(jīng)過(guò)微處理器的中斷,因此系統(tǒng)的采集速度得以提高。但CPLD的介入會(huì)使系統(tǒng)的功耗相應(yīng)提高。
為了綜合以上兩種方案的優(yōu)勢(shì),可以采用“ARM+CPLD+圖像傳感器+SRAM”的硬件組合方案。該方案充分利用了CPLD的可編程性,通過(guò)軟件編程來(lái)兼有兩種方案的優(yōu)勢(shì)。
二、系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)的硬件部分主要包括CMOS圖像傳感器、可編程器件CPLD、SRAM和微處理器。以下是對(duì)各硬件部分的詳細(xì)介紹:
CMOS圖像傳感器:如OV6620,是美國(guó)OmniVision公司生產(chǎn)的CMOS圖像傳感器,以其高性能、低功耗適合應(yīng)用在嵌入式圖像采集系統(tǒng)中。OV6620集成在一個(gè)板卡上,有獨(dú)立的17MHz晶振,可以輸出3個(gè)圖像同步的時(shí)序信號(hào)(像素時(shí)鐘PCLK、幀同步VSYNC和行同步HREF),同時(shí)還可以通過(guò)8位或16位的數(shù)據(jù)總線輸出RGB或YCrCb格式的圖像數(shù)據(jù)。
可編程器件CPLD:如Altera公司的EPM7128S,可以通過(guò)Verilog硬件編程語(yǔ)言在QuartusII下編寫(xiě)程序。在硬件設(shè)計(jì)上,所有總線均與CPLD相連;在軟件設(shè)計(jì)上,不同的模塊單獨(dú)按功能封裝。這樣以CPLD為中心,系統(tǒng)的其他器件均可更換而無(wú)需對(duì)CPLD部分程序進(jìn)行改動(dòng),有利于系統(tǒng)的功能升級(jí)。
SRAM:作為系統(tǒng)的數(shù)據(jù)緩沖,如IS61LV5128,其隨機(jī)訪問(wèn)的特性為圖像處理程序提供了便利。
微處理器:如32位微處理器LPC2214,在PLL(鎖相環(huán))的支持下最高可以運(yùn)行在60MHz的頻率下,為圖像的快速處理提供了硬件支持。
三、系統(tǒng)軟件設(shè)計(jì)
在軟件設(shè)計(jì)上,主要需要解決兩個(gè)問(wèn)題:圖像采集的嚴(yán)格時(shí)序同步和雙CPU共享SRAM的總線仲裁。
圖像采集的嚴(yán)格時(shí)序同步:關(guān)鍵在于如何實(shí)時(shí)、準(zhǔn)確地讀取OV6620的時(shí)序輸出信號(hào),并據(jù)此將圖像數(shù)據(jù)寫(xiě)入SRAM中。解決方案是用CPLD來(lái)實(shí)現(xiàn)時(shí)序信號(hào)的識(shí)別以及圖像數(shù)據(jù)的寫(xiě)入。CPLD在硬件上可以識(shí)別信號(hào)的邊沿,速度更快,通過(guò)Verilog語(yǔ)言編寫(xiě)Mealy狀態(tài)機(jī)來(lái)實(shí)現(xiàn)圖像數(shù)據(jù)的SRAM寫(xiě)入,更加穩(wěn)定。
雙CPU共享SRAM的總線仲裁:可以通過(guò)合理的連接方式來(lái)解決。考慮到CPLD的可編程性,將OV6620的數(shù)據(jù)總線、LPC2214的地址和數(shù)據(jù)總線以及SRAM的總線都連接到CPLD上。通過(guò)編程來(lái)控制總線之間的連接,只要在軟件上保證總線的互斥性,即在同一時(shí)刻有且僅有一個(gè)控制器(CPLD或者LPC2214)來(lái)操作SRAM的總線,就可以有效地避免總線沖突。這樣,硬件上的仲裁就可以通過(guò)軟件來(lái)保證,該過(guò)程可以通過(guò)在CPLD中編寫(xiě)多路數(shù)據(jù)選擇器來(lái)實(shí)現(xiàn)。
四、系統(tǒng)應(yīng)用與功能
該系統(tǒng)可以應(yīng)用于多種場(chǎng)合,如移動(dòng)機(jī)器人等領(lǐng)域。作為該系統(tǒng)的一種應(yīng)用,可以開(kāi)發(fā)視覺(jué)跟蹤的程序,該程序可以在目標(biāo)和背景顏色對(duì)比強(qiáng)烈的情況下對(duì)物體進(jìn)行跟蹤。通過(guò)對(duì)CMOS攝像頭采集來(lái)的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,根據(jù)物體的顏色計(jì)算出被追蹤物體的質(zhì)心坐標(biāo)。
此外,該系統(tǒng)還可以根據(jù)不同的需要提供兩種模式可供選擇:一種是行處理模式,該模式可以得到關(guān)于跟蹤目標(biāo)的更多信息,但每行處理的方式增大了處理器的負(fù)擔(dān),處理速度相對(duì)較慢;另一種是幀處理模式,該模式處理速度較快,但可能無(wú)法獲取到關(guān)于跟蹤目標(biāo)的所有詳細(xì)信息。
五、優(yōu)化建議
為了提高系統(tǒng)的性能和效率,可以采取以下優(yōu)化建議:
在ARM系統(tǒng)中,函數(shù)調(diào)用過(guò)程中參數(shù)個(gè)數(shù)應(yīng)限制為4個(gè)或更少,以減少額外的指令和慢速的存儲(chǔ)器操作。如果參數(shù)個(gè)數(shù)不可避免地超過(guò)4個(gè),則可以把常用的前4個(gè)參數(shù)放在R0~R3中。
在循環(huán)語(yǔ)句中,用“減到0”代替“加到某個(gè)值”,以減少指令數(shù)量和提高執(zhí)行效率。
由于ARM核不含除法硬件,除法運(yùn)算通常用一個(gè)運(yùn)行庫(kù)函數(shù)來(lái)實(shí)現(xiàn),運(yùn)行需要很多個(gè)周期。因此,一些除法操作可以在編譯時(shí)作為特例來(lái)處理,例如除以2的操作用左移代替。
避免使用大的局部結(jié)構(gòu)體或數(shù)組,可以考慮用malloc/free代替,以減少內(nèi)存占用和提高內(nèi)存訪問(wèn)效率。
避免使用遞歸,以減少函數(shù)調(diào)用的開(kāi)銷(xiāo)和提高程序的可讀性。
綜上所述,基于ARM和CPLD的嵌入式視覺(jué)系統(tǒng)設(shè)計(jì)結(jié)合了ARM和CPLD的優(yōu)勢(shì),具有結(jié)構(gòu)緊湊、功耗低、采集速度快等特點(diǎn)。通過(guò)合理的硬件和軟件設(shè)計(jì),該系統(tǒng)可以實(shí)現(xiàn)對(duì)物體的實(shí)時(shí)跟蹤和圖像處理等功能,并適用于多種應(yīng)用場(chǎng)合。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。