<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 基于圖像傳感器的CPLD視覺(jué)系統設計與研究

基于圖像傳感器的CPLD視覺(jué)系統設計與研究

作者: 時(shí)間:2009-02-20 來(lái)源:網(wǎng)絡(luò ) 收藏

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

  1 系統方案與原理

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

   方案1 圖像傳感器+微處理器(或DSP)+SRAM

   方案2圖像傳感器+/FPGA+微處理器+SRAM

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

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

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

 ?、俟牡母叩涂梢钥刂?。對于功耗有嚴格要求的場(chǎng)合,通過(guò)CPLD的可編程性將時(shí)序部分的接口與ARM的中斷端口相連,僅僅是組合邏輯的總線(xiàn)相連,可以降低CPLD的功耗從而達到方案1的效果;對于采集速度要求高而功耗要求不高的情況,可以充分發(fā)揮CPLD的優(yōu)勢,利用組合與時(shí)序邏輯來(lái)實(shí)現圖像傳感器輸出同步信號的識別,并將圖像數據寫(xiě)入SRAM中。

 ?、谄骷倪x擇可以多樣。在硬件設計上,所有總線(xiàn)均與CPLD相連;在軟件設計上,不同的模塊單獨按功能封裝。這樣以CPLD為中心,系統的其他器件均可更換而無(wú)需對CPLD部分程序進(jìn)行改動(dòng),有利于系統的功能升級。作為本系統的一種應用,開(kāi)發(fā)了視覺(jué)跟蹤的程序,可以在目標和背景顏色對比強烈的情況下對物體進(jìn)行跟蹤。通過(guò)對CMOS攝像頭采集來(lái)的數據進(jìn)行實(shí)時(shí)處理,根據物體的顏色計算出被追蹤物體的質(zhì)心坐標。下面分別描述系統各部分的功能。

  2 系統硬件

  2.1 硬件組成及連接

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

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

  0V6620集成在一個(gè)板卡上,有獨立的17 MHz晶振。輸出3個(gè)圖像同步的時(shí)序信號:像素時(shí)鐘PCLK、幀同步VSYNC和行同步HREF。同時(shí),還可以通過(guò)8位或16位的數據總線(xiàn)輸出RGB或YCrCb格式的圖像數據。

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

 ?、賵D像采集的嚴格時(shí)序同步;

 ?、陔pCPU共享SRAM的總線(xiàn)仲裁。

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

  對于雙CPU共享SRAM,可以通過(guò)合理的連接方式來(lái)解決??紤]到CPLD的可編程性,將OV6620的數據總線(xiàn),LPC2214的地址、數據總線(xiàn)以及SRAM的總線(xiàn)都連接到CPLD上。通過(guò)編程來(lái)控制總線(xiàn)之間的連接,只要在軟件上保證總線(xiàn)的互斥性,即在同一時(shí)刻有且僅有一個(gè)控制器(CPLD或者LPC2214)來(lái)操作SRAM的總線(xiàn),就可以有效地避免總線(xiàn)沖突。這樣,硬件上的仲裁就可以通過(guò)軟件來(lái)保證,該過(guò)程可以通過(guò)在CPLD中編寫(xiě)多路數據選擇器來(lái)實(shí)現。

  各器件之間的連接關(guān)系如圖1所示。

各器件之間的連接關(guān)系

  由圖1可見(jiàn),微處理器的總線(xiàn)接在CPLD上,在對功耗有嚴格要求的場(chǎng)合中,只需要在CPLD中,將OV6620的同步時(shí)序信號所對應的引腳與LPC2214連接在CPLD上的中斷引腳相連,系統就可以轉換成方案1的形式。對CPLD而言,引腳相連的僅僅是組合邏輯,降低了功耗。方案1的具體工作過(guò)程可見(jiàn)參考文獻。而對于采集速度要求較高的場(chǎng)合,CPLD部分的程序源代碼見(jiàn)本刊網(wǎng)站www.mesnet.com.cn——編者注。下面重點(diǎn)介紹這種情況下的應用。

  2.2 工作過(guò)程

  系統上電后,首先由LPC2214通過(guò)I2C總線(xiàn)配置攝像頭的工作狀態(tài),需要配置的主要有輸出圖像的數據格式、速率、是否白平衡,以及自動(dòng)增益是否打開(kāi)。配置完成后,LPC2214發(fā)出圖像采集的信號給CPLD,此時(shí)CPlD操作SRAM的總線(xiàn),并通過(guò)對OV6620輸出時(shí)序的檢測將圖像數據寫(xiě)入SRAM。當然,寫(xiě)入SRAM需要嚴格符合SRAM的操作時(shí)序。一幀圖像采集完成后,CPLD置位標志位來(lái)通知LPC2214,如果LPC2214處于空閑狀態(tài),則通知CPLD將總線(xiàn)使用權切換至LPC2214,由LPC2214讀取SRAM中的數據并進(jìn)行圖像處理。同時(shí),發(fā)送信號給CPLD進(jìn)行數據采集,圖像的采集和處理將并行執行,提高了系統的工作效率。當再次采集完一幀數據后,重復上述過(guò)程。

  2.3 硬件方案的特點(diǎn)

  LPC2214負責圖像處理,CPLD負責圖像數據的采集,很好地實(shí)現了功能上的封裝??梢钥吹?,CPLD將與硬件時(shí)序相關(guān)的程序封裝,與外界的接口僅為標志狀態(tài)線(xiàn)以及數據采集總線(xiàn),極大地方便了系統的升級而無(wú)需改動(dòng)圖像采集部分的硬件和軟件。甚至更換為其他型號功能更為強大的微處理器,只要按照上述標志狀態(tài)線(xiàn)的約定來(lái)操作,系統仍然可以正常工作,增強了系統的兼容性和可移植性。

  3 系統軟件

  系統軟件主要由ARM微處理器和CPLD兩部分程序構成。ARM部分的代碼使用C語(yǔ)言在A(yíng)DSl.2環(huán)境下開(kāi)發(fā),而CPLD部分則使用Verilog硬件語(yǔ)言在QuartusII下開(kāi)發(fā)。

  3.1 CPLD部分程序設計

  CPLD的程序主要分為2部分:組合邏輯和時(shí)序邏輯。組合邏輯主要完成總線(xiàn)仲裁,程序并不依賴(lài)CPLD的全局時(shí)鐘;時(shí)序邏輯完成對信號的檢測,根據SRAM的操作時(shí)序將圖像數據寫(xiě)入。

  在總線(xiàn)仲裁部分,需要注意的是:對CPLD而言,不同的時(shí)刻同一總線(xiàn)的數據流人方向是不同的。因而在Verilog中,需要聲明總線(xiàn)為雙向端口。具體的總線(xiàn)仲裁程序如下:

總線(xiàn)仲裁程序

  對雙向端口的總線(xiàn)操作總結如下:

 ?、傩枰刂菩盘栔该鞫丝谠谀骋粫r(shí)刻的方向;

 ?、谳敵龈咦杓创碓撾p向端口是輸入狀態(tài),此時(shí)可以作為普通的輸入端口來(lái)使用。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 視覺(jué)系統 嵌入式 CPLD ARM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>