嵌入式系統(tǒng)數(shù)字圖像采集接口電路設計
四、內(nèi)存直接寫入接口設計
在處理器速度較慢且圖像數(shù)據(jù)輸出的頻率不能降低的情況下,采用上述I/O接口方法不能得到完整的圖像。另外,有些應用中要求能夠?qū)崟r采集圖像。為此,我們設計了高速數(shù)據(jù)圖像采集方法?內(nèi)存直接寫入法。由于SRAM訪問控制簡單,電路設計方便,被大量嵌入式系統(tǒng)采用,本文以SRAM作為存儲器。
1、電路原理和結(jié)構
內(nèi)存直接寫入方法通過設計的圖像采集控制器(以下簡稱控制器)不需處理器參與,直接將圖像數(shù)據(jù)寫入系統(tǒng)中的內(nèi)存中,實現(xiàn)高速圖像采集。
圖5是接口結(jié)構圖,當需要采集圖像時,處理器向控制器發(fā)出采集請求,請求信號capture_r從高到低??刂破鹘拥秸埱竺}沖后,發(fā)出處理器掛起請求信號HOLD,使處理器的外總線處于高阻狀態(tài),釋放出總線??刂破魇盏教幚砥鲬餒OLDA后管理總線,同時檢測圖像同步信號。當檢測到圖像開始位置時,控制器自動產(chǎn)生地址和讀寫控制信號將圖像數(shù)據(jù)直接寫入內(nèi)存中。圖像采集完成后,控制器自動將總線控制權交還處理器,處理器繼續(xù)運行,控制器中與采集相關的狀態(tài)復位??刂破骺梢愿鶕?jù)同步信號或設定的采集圖像大小確定采集是否完成。
在圖5中,控制器包括同步信號檢測、地址發(fā)生器、SRAM寫控制器、總線控制器和處理器握手電路等主要部分。同步信號檢測確定每一場(幀)和每一行的起始位置;地址發(fā)生器產(chǎn)生寫SRAM所需的地址;SRAM寫控制器產(chǎn)生寫入時序;總線控制器在采集圖像時管理總線,采集完成后自動釋放;處理器握手電路接受處理器命令、發(fā)總線管理請求和應答處理器。
2、SRAM寫控制時序
采集圖像過程中,控制器自動將數(shù)據(jù)寫入到硬件設定的內(nèi)存中。寫內(nèi)存時,控制器產(chǎn)生RAM地址(A)、片選信號(/CS)、讀信號(/RD)和寫信號(/WD),同時鎖存?zhèn)鞲衅鬏敵龅臄?shù)據(jù)并送到數(shù)據(jù)總線(D)上。每寫入一個數(shù)據(jù)后,地址(A)自動增1。采集時/CS保持有效(‘0’)狀態(tài)而/RD處于無效狀態(tài)(‘1’)。地址A的變化必須與/WD和數(shù)據(jù)鎖存器協(xié)調(diào)好才能保證圖像數(shù)據(jù)的有效性。
圖6是控制器產(chǎn)生的SRAM信號時序圖。用PCLK作為地址發(fā)生器的輸入時鐘,且在其上升沿更新地址值。同樣,在PCLK的上沿鎖存數(shù)據(jù)并輸出到總線上。將PCLK反相,作為/WD信號,使得在/WD的上升沿地址和數(shù)據(jù)穩(wěn)定,確保寫入數(shù)據(jù)的有效性。
3、控制器主要功能的VHDL描述
描述控制器中全部功能的VHDL代碼較長,而且有些部分是常用的(如計數(shù)器等)。圖像采集狀態(tài)產(chǎn)生和同步信號的檢測是其中重要的部分。下面介紹這兩部分的VHDL描述。
圖像采集狀態(tài) capture_s:
處理器的采集請求信號capture_r使capture_s從‘0’到‘1’,場地址發(fā)生器(計數(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;
同步信號檢測:
評論