嵌入式系統(tǒng)數(shù)字圖像采集接口電路設(shè)計(jì)
(作者未知) 2009/10/18
(接上頁(yè))時(shí),則從該行的第一個(gè)像素開(kāi)始。因此,在讀取圖像數(shù)據(jù)前應(yīng)先判斷場(chǎng)和行的起始位置。圖4是通過(guò)I/O接口方式讀取圖像數(shù)據(jù)的流程。讀取每個(gè)像素?cái)?shù)據(jù)前先查詢(xún)數(shù)據(jù)狀態(tài),如果數(shù)據(jù)已準(zhǔn)備好則讀取數(shù)據(jù)。
3、同步信號(hào)檢測(cè)
為了簡(jiǎn)化電路設(shè)計(jì),用處理器直接讀取同步信號(hào),然后找出場(chǎng)和行的起始位置。
從圖2可以看出,處理器讀取同步信號(hào)時(shí),信號(hào)可能處在同步脈沖狀態(tài)(‘1’)或正常狀態(tài)(‘0‘)。對(duì)于那些同步信號(hào)反向的器件,則分別為‘0’和‘1’。如果信號(hào)處于同步脈沖狀態(tài),第一次檢測(cè)到的正常狀態(tài)就起始位置。如果信號(hào)處于正常狀態(tài),則首先檢測(cè)到脈沖狀態(tài),然后用同樣的方法確定起始位置。
通過(guò)上述方法可以檢測(cè)出場(chǎng)的起始位置和行起始位置。
4、用VHDL設(shè)計(jì)鎖存器
在應(yīng)用中,以上兩個(gè)鎖存器的功能和其他邏輯集中在一起,用可編程邏輯器件實(shí)現(xiàn)。下面分別為它們的VHDL表示。
設(shè)DO(0-7)是鎖存器輸出端,DI(0-7)是鎖存器輸入端,DM(0-7)是中間狀態(tài),Data_R是數(shù)據(jù)讀信號(hào)(低電平時(shí)有效),則數(shù)據(jù)鎖存器的VHDL描述為:
Process (reset, PCLK) -- 鎖存圖像數(shù)據(jù)
Begin
If reset=’0’ then
DM﹤="00000000"; -- 清除數(shù)據(jù)
Else if PCLK’event and PCLK=’1’ then
DM﹤=DI; -- 鎖存數(shù)據(jù)
End if;
End process;
Process (DM, Data_R) -- 讀取圖像數(shù)據(jù)
Begin
If Data_R=’0’ then
DO﹤=DM; -- 輸出圖像數(shù)據(jù)
Else
DO﹤="ZZZZZZZZ" -- 輸出高阻
End if;
End process;
進(jìn)一步設(shè)數(shù)據(jù)有效狀態(tài)為Dstatus, 狀態(tài)讀寫(xiě)信號(hào)為Status_R (低點(diǎn)平時(shí)有效),則狀態(tài)鎖存器的VHDL描述為:
Process (reset, PCLK,Data_R) -- 數(shù)據(jù)有效狀態(tài)控制
Begin
If reset=’0’ or Data_R=’0’ then
Dstatus﹤=’0’; -- 清除狀態(tài)
Else if PCLK’enent and PCLK=’1’ then
Dstatus﹤=’1’; -- 設(shè)置狀態(tài)
End if;
End process;
Process (Dstatus, Status_R) --讀取狀態(tài)和同步信號(hào)
Begin
If Status_R=’0’ then
DO0﹤=Dstatus;
DO1﹤=VSYNC;
DO2﹤=HSYNC;
DO3﹤=FRAME;
Else
DO﹤="ZZZZZZZZ"; -- 高阻狀態(tài)
End if;
End process;
四、內(nèi)存直接寫(xiě)入接口設(shè)計(jì)
在處理器速度較慢且圖像數(shù)據(jù)輸出的頻率不能降低的情況下,采用上述I/O接口方法不能得到完整的圖像。另外,有些應(yīng)用中要求能夠?qū)崟r(shí)采集圖像。為此,我們?cè)O(shè)計(jì)了高速數(shù)據(jù)圖像采集方法―內(nèi)存直接寫(xiě)入法。由于SRAM訪(fǎng)問(wèn)控制簡(jiǎn)單,電路設(shè)計(jì)方便,被大量嵌入式系統(tǒng)采用,本文以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,使處理器的外總線(xiàn)處于高阻狀態(tài),釋放出總線(xiàn)?刂破魇盏教幚砥鲬(yīng)答HOLDA后管理總線(xiàn),同時(shí)檢測(cè)圖像同步信號(hào)。當(dāng)檢測(cè)到圖像開(kāi)始位置時(shí),控制器自動(dòng)產(chǎn)生地址和讀寫(xiě)控制信號(hào)將圖像數(shù)據(jù)直接寫(xiě)入內(nèi)存中。圖像采集完成后,控制器自動(dòng)將總線(xiàn)控制權(quán)交還處理器,處理器繼續(xù)運(yùn)行,控制器中與采集相關(guān)的狀態(tài)復(fù)位?刂破骺梢愿鶕(jù)同步信號(hào)或設(shè)定的采集圖像大小確定采集是否完成。
在圖5中,控制器包括同步信號(hào)檢測(cè)(未完,下一頁(yè))
|