新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)數(shù)字圖像采集接口電路設(shè)計(jì)

嵌入式系統(tǒng)數(shù)字圖像采集接口電路設(shè)計(jì)

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

四、內(nèi)存直接寫(xiě)入接口設(shè)計(jì)

在處理器速度較慢且圖像數(shù)據(jù)輸出的頻率不能降低的情況下,采用上述I/O接口方法不能得到完整的圖像。另外,有些應(yīng)用中要求能夠?qū)崟r(shí)采集圖像。為此,我們?cè)O(shè)計(jì)了高速數(shù)據(jù)圖像采集方法?內(nèi)存直接寫(xiě)入法。由于SRAM訪問(wèn)控制簡(jiǎn)單,電路設(shè)計(jì)方便,被大量采用,本文以SRAM作為存儲(chǔ)器。

1、電路原理和結(jié)構(gòu)

內(nèi)存直接寫(xiě)入方法通過(guò)設(shè)計(jì)的圖像采集控制器(以下簡(jiǎn)稱(chēng)控制器)不需處理器參與,直接將圖像數(shù)據(jù)寫(xiě)入系統(tǒng)中的內(nèi)存中,實(shí)現(xiàn)高速圖像采集。

圖5是接口結(jié)構(gòu)圖,當(dāng)需要采集圖像時(shí),處理器向控制器發(fā)出采集請(qǐng)求,請(qǐng)求信號(hào)capture_r從高到低。控制器接到請(qǐng)求脈沖后,發(fā)出處理器掛起請(qǐng)求信號(hào)HOLD,使處理器的外總線處于高阻狀態(tài),釋放出總線??刂破魇盏教幚砥鲬?yīng)答HOLDA后管理總線,同時(shí)檢測(cè)圖像同步信號(hào)。當(dāng)檢測(cè)到圖像開(kāi)始位置時(shí),控制器自動(dòng)產(chǎn)生地址和讀寫(xiě)控制信號(hào)將圖像數(shù)據(jù)直接寫(xiě)入內(nèi)存中。圖像采集完成后,控制器自動(dòng)將總線控制權(quán)交還處理器,處理器繼續(xù)運(yùn)行,控制器中與采集相關(guān)的狀態(tài)復(fù)位??刂破骺梢愿鶕?jù)同步信號(hào)或設(shè)定的采集圖像大小確定采集是否完成。

在圖5中,控制器包括同步信號(hào)檢測(cè)、地址發(fā)生器、SRAM寫(xiě)控制器、總線控制器和處理器握手電路等主要部分。同步信號(hào)檢測(cè)確定每一場(chǎng)(幀)和每一行的起始位置;地址發(fā)生器產(chǎn)生寫(xiě)SRAM所需的地址;SRAM寫(xiě)控制器產(chǎn)生寫(xiě)入時(shí)序;總線控制器在采集圖像時(shí)管理總線,采集完成后自動(dòng)釋放;處理器握手電路接受處理器命令、發(fā)總線管理請(qǐng)求和應(yīng)答處理器。

2、SRAM寫(xiě)控制時(shí)序

采集圖像過(guò)程中,控制器自動(dòng)將數(shù)據(jù)寫(xiě)入到硬件設(shè)定的內(nèi)存中。寫(xiě)內(nèi)存時(shí),控制器產(chǎn)生RAM地址(A)、片選信號(hào)(/CS)、讀信號(hào)(/RD)和寫(xiě)信號(hào)(/WD),同時(shí)鎖存?zhèn)鞲衅鬏敵龅臄?shù)據(jù)并送到數(shù)據(jù)總線(D)上。每寫(xiě)入一個(gè)數(shù)據(jù)后,地址(A)自動(dòng)增1。采集時(shí)/CS保持有效(‘0’)狀態(tài)而/RD處于無(wú)效狀態(tài)(‘1’)。地址A的變化必須與/WD和數(shù)據(jù)鎖存器協(xié)調(diào)好才能保證圖像數(shù)據(jù)的有效性。

圖6是控制器產(chǎn)生的SRAM信號(hào)時(shí)序圖。用PCLK作為地址發(fā)生器的輸入時(shí)鐘,且在其上升沿更新地址值。同樣,在PCLK的上沿鎖存數(shù)據(jù)并輸出到總線上。將PCLK反相,作為/WD信號(hào),使得在/WD的上升沿地址和數(shù)據(jù)穩(wěn)定,確保寫(xiě)入數(shù)據(jù)的有效性。

3、控制器主要功能的VHDL描述

描述控制器中全部功能的VHDL代碼較長(zhǎng),而且有些部分是常用的(如計(jì)數(shù)器等)。圖像采集狀態(tài)產(chǎn)生和同步信號(hào)的檢測(cè)是其中重要的部分。下面介紹這兩部分的VHDL描述。

圖像采集狀態(tài) capture_s:

處理器的采集請(qǐng)求信號(hào)capture_r使capture_s從‘0’到‘1’,場(chǎng)地址發(fā)生器(計(jì)數(shù)器)的溢出位vcount_o,清除capture_s。


process (capture_r, reset, vcount_o)


begin


if reset='0' or vcount_o='1' then


capture_s='0'; -- 清除


else if capture_r'event and capture_r='0' then


capture_s='1'; -- 置狀態(tài)位


end if;


end process;

同步信號(hào)檢測(cè):



評(píng)論


相關(guān)推薦

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

關(guān)閉