數(shù)字圖像采集設計分析論文

時間:2022-07-14 08:04:00

導語:數(shù)字圖像采集設計分析論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

數(shù)字圖像采集設計分析論文

摘要:本文介紹了兩種用于嵌入式系統(tǒng)的數(shù)字圖像采集接口方法,I/O接口和內存直接寫入。在對采集速度要求不高的應用中,I/O接口方法可以簡化接口電路設計,減少系統(tǒng)資源。對于要求實時進行圖像處理的系統(tǒng),直接寫入內存法可以在不需要處理器干預的情況下,直接將圖像數(shù)據(jù)寫入系統(tǒng)存儲區(qū)內,實現(xiàn)高速圖像采集。

關鍵詞:嵌入式系統(tǒng),圖像采集,電路設計

Abstract:Inthispaper,wepresenttwodifferentinterfacesbetweendigitalaimagesensorsandaprocessorforembedsystems,I/OmodeandDMW(DirectMemoryWrite)mode.InI/Omode,processorcanreadimagedatathroughI/Oport,andtheinterfaceissimple.InDMWmode,imagedatacanbewriteintoRAMdirectlywhileaprocessorissuspended.

Keywords:EmbedSystem,ImageCapture,ElectronicCircuit

一、引言

隨著半導體技術的飛速發(fā)展,具有圖像功能的嵌入式應用愈來愈多。從數(shù)碼相機、可視電話、多功能移動電話等消費產品到門禁、數(shù)字視頻監(jiān)視等工業(yè)控制及安防產品,圖像采集和處理已成為重要的組成部分之一。圖像采集需要進行同步信號的處理,比通常的A/D數(shù)據(jù)采集過程復雜,電路的設計也較為困難。傳統(tǒng)PC上的圖像采集卡都是在Philips、Brooktree等半導體公司提供的接口芯片基礎上,由專業(yè)公司開發(fā)生產。在嵌入式系統(tǒng)中不同的處理器和圖像傳感器的信號定義及接口方式不同,沒有通用的接口芯片。另外,利用系統(tǒng)中的現(xiàn)有資源設計圖像采集電路,可以減少器件數(shù)量、縮小產品體積和降低系統(tǒng)成本。所以,通常嵌入式系統(tǒng)中要求自行設計圖像采集接口電路。本文針對不同采集速度的要求,提出了兩種圖像采集接口電路的設計方法。

目前市場上主流的圖像傳感器有CCD、CMOS兩種器件,其中CMOS器件上世紀90年代產生,近年來得到了迅速發(fā)展。傳感器的輸出有模擬和數(shù)字兩種。由于CMOS器件功耗小、使用方便,具有直接數(shù)字圖像輸出功能,作者在設計時選用了CMOS數(shù)字輸出圖像傳感器件。其他方式器件的接口設計與此類似,將在討論中說明。

本文內容做如下安排:第二部分簡述圖像信號的特點;第三、四部分分別介紹I/O和內存直接寫入兩種接口設計方法;最后部分是討論。

二、圖像信號介紹

圖1給出了采樣時鐘(PCLK)和輸出數(shù)據(jù)(D)之間的時序關系。在讀取圖像數(shù)據(jù)時用PCLK鎖存輸出數(shù)據(jù)。除采樣時鐘(PCLK)和數(shù)據(jù)輸出(D)外,還有水平方向的行同步信號(HSYNC))和垂直方向的場同步信號(VSYNC)。對于隔行掃描器件,還有幀同步信號(FRAME)。如圖2,一幀包括兩場。圖2中窄的矩形條是同步脈沖,同步脈沖期間數(shù)據(jù)端口輸出的數(shù)據(jù)無效。

PLCK存在時,圖像數(shù)據(jù)端口連續(xù)不斷地輸出數(shù)據(jù)。由于行之間以及場之間輸出數(shù)據(jù)無效,在采集圖像數(shù)據(jù)必須考慮同步信號,讀取有效數(shù)據(jù)才能保證圖像的完整性。

三、I/O接口設計

對于MCU、DSP處理器,I/O是最方便的訪問方式之一。以I/O方式讀取圖像數(shù)據(jù)不僅可以簡化電路設計,而且程序也很簡單。但由于讀取每一個像素都要檢測狀態(tài),在處理器速度低的情況下,讀取圖像慢。在處理器速度快或圖像采集速度要求不高的應用中,I/O接口方式是一個較好的選擇。

1、電路原理和結構

在圖像傳感器和處理器之間,利用兩個鎖存器分別鎖存狀態(tài)和圖像數(shù)據(jù),處理器通過兩個I/O端口分別讀取。圖3中,在采樣時鐘的上升沿數(shù)據(jù)鎖存器保存?zhèn)鞲衅鬏敵龅膱D像數(shù)據(jù),當處理器通過I/O口讀取圖像時,數(shù)據(jù)鎖存器輸出數(shù)據(jù)。其它情況下,鎖存器輸出處于高阻狀態(tài)。處理器通過狀態(tài)鎖存器讀取同步信號和圖像就緒(Ready)指示信號。在數(shù)據(jù)鎖存器保存圖像數(shù)據(jù)的同時,狀態(tài)鎖存器產生Ready信號(從‘0’到‘1’)。處理器讀取圖像數(shù)據(jù)時,Ready信號自動清除(從‘1’到‘0’)。處理器讀取狀態(tài)時鎖存器驅動總線,其他情況下輸出處于高阻狀態(tài)。

2、圖像讀取流程

要保證圖像的完整性就必須從一場圖像的第一行開始讀取,對于隔行掃描輸出的圖像則必須從一幀的第一行開始讀取。讀取每行圖像數(shù)據(jù)時,則從該行的第一個像素開始。因此,在讀取圖像數(shù)據(jù)前應先判斷場和行的起始位置。圖4是通過I/O接口方式讀取圖像數(shù)據(jù)的流程。讀取每個像素數(shù)據(jù)前先查詢數(shù)據(jù)狀態(tài),如果數(shù)據(jù)已準備好則讀取數(shù)據(jù)。

3、同步信號檢測

為了簡化電路設計,用處理器直接讀取同步信號,然后找出場和行的起始位置。

從圖2可以看出,處理器讀取同步信號時,信號可能處在同步脈沖狀態(tài)(‘1’)或正常狀態(tài)(‘0‘)。對于那些同步信號反向的器件,則分別為‘0’和‘1’。如果信號處于同步脈沖狀態(tài),第一次檢測到的正常狀態(tài)就起始位置。如果信號處于正常狀態(tài),則首先檢測到脈沖狀態(tài),然后用同樣的方法確定起始位置。

通過上述方法可以檢測出場的起始位置和行起始位置。

4、用VHDL設計鎖存器

在應用中,以上兩個鎖存器的功能和其他邏輯集中在一起,用可編程邏輯器件實現(xiàn)。下面分別為它們的VHDL表示。

設DO(0-7)是鎖存器輸出端,DI(0-7)是鎖存器輸入端,DM(0-7)是中間狀態(tài),Data_R是數(shù)據(jù)讀信號(低電平時有效),則數(shù)據(jù)鎖存器的VHDL描述為:

Process(reset,PCLK)--鎖存圖像數(shù)據(jù)

Begin

Ifreset=''''0''''then

DM<="00000000";--清除數(shù)據(jù)

ElseifPCLK''''eventandPCLK=''''1''''then

DM<=DI;--鎖存數(shù)據(jù)

Endif;

Endprocess;

Process(DM,Data_R)--讀取圖像數(shù)據(jù)

Begin

IfData_R=''''0''''then

DO<=DM;--輸出圖像數(shù)據(jù)

Else

DO<="ZZZZZZZZ"--輸出高阻

Endif;

Endprocess;

進一步設數(shù)據(jù)有效狀態(tài)為Dstatus,狀態(tài)讀寫信號為Status_R(低點平時有效),則狀態(tài)鎖存器的VHDL描述為:

Process(reset,PCLK,Data_R)--數(shù)據(jù)有效狀態(tài)控制

Begin

Ifreset=''''0''''orData_R=''''0''''then

Dstatus<=''''0'''';--清除狀態(tài)

ElseifPCLK''''enentandPCLK=''''1''''then

Dstatus<=''''1'''';--設置狀態(tài)

Endif;

Endprocess;

Process(Dstatus,Status_R)--讀取狀態(tài)和同步信號

Begin

IfStatus_R=''''0''''then

DO0<=Dstatus;

DO1<=VSYNC;

DO2<=HSYNC;

DO3<=FRAME;

Else

DO<="ZZZZZZZZ";--高阻狀態(tài)

Endif;

Endprocess;

四、內存直接寫入接口設計

在處理器速度較慢且圖像數(shù)據(jù)輸出的頻率不能降低的情況下,采用上述I/O接口方法不能得到完整的圖像。另外,有些應用中要求能夠實時采集圖像。為此,我們設計了高速數(shù)據(jù)圖像采集方法―內存直接寫入法。由于SRAM訪問控制簡單,電路設計方便,被大量嵌入式系統(tǒng)采用,本文以SRAM作為存儲器。

1、電路原理和結構

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

圖5是接口結構圖,當需要采集圖像時,處理器向控制器發(fā)出采集請求,請求信號capture_r從高到低。控制器接到請求脈沖后,發(fā)出處理器掛起請求信號HOLD,使處理器的外總線處于高阻狀態(tài),釋放出總線。控制器收到處理器應答HOLDA后管理總線,同時檢測圖像同步信號。當檢測到圖像開始位置時,控制器自動產生地址和讀寫控制信號將圖像數(shù)據(jù)直接寫入內存中。圖像采集完成后,控制器自動將總線控制權交還處理器,處理器繼續(xù)運行,控制器中與采集相關的狀態(tài)復位。控制器可以根據(jù)同步信號或設定的采集圖像大小確定采集是否完成。

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

2、SRAM寫控制時序

采集圖像過程中,控制器自動將數(shù)據(jù)寫入到硬件設定的內存中。寫內存時,控制器產生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é)調好才能保證圖像數(shù)據(jù)的有效性。

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

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

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

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

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

process(capture_r,reset,vcount_o)

begin

ifreset=''''0''''orvcount_o=''''1''''then

capture_s<=''''0'''';--清除

elseifcapture_r''''eventandcapture_r=''''0''''then

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

endif;

endprocess;

同步信號檢測:

只有在采集狀態(tài)capture_s有效時(‘1’)才檢測場同步信號,場同步信號下降沿置場有效狀態(tài)(vsync_s),場地址發(fā)生器溢出位vcount_o清除場有效狀態(tài)。只有在vsync_s有效情況下才檢測行同步信號,行同步信號下降沿置行有效狀態(tài)(hsync_s),行計數(shù)器溢出信號hcount_o清除行狀態(tài)。只有在行狀態(tài)有效的情況下計數(shù)器才工作,且將數(shù)據(jù)寫入RAM。

Process(capture_s,reset,vcount_o,vsync)

Begin

Ifreset=''''0''''orvcount_o=''''1''''orcapture_s=''''0''''then

Vsync_s<=''''0'''';--清除

Elseifvsync''''eventandvsync=''''0''''then

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

Endif;

Endprocess;

Process(vsync_s,reset,hcount_o,hsync)

Begin

Ifvsync_s=''''0''''orreset=''''0''''orhcount_o=''''1''''then

Hsync_s<=''''0'''';--清除

Elseifhsync''''eventandhsync=''''0''''then

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

Endif;

Endprocess;

五、討論

我們在基于TI公司的TMS320C3X系列DSP開發(fā)的嵌入式指紋圖像處理模塊中分別用上述兩種方法成功實現(xiàn)了指紋圖像的采集。

采用I/O接口方式最關鍵的是要求處理器的頻率遠高于圖像數(shù)據(jù)輸出的頻率。例如,如果處理的指令周期為20ns,讀取每個數(shù)據(jù)需要10個指令周期,則數(shù)據(jù)的輸出頻率不能超過5MHz,它低于一般的CMOS圖像傳感器件最快的數(shù)據(jù)輸出頻率。例如國內使用較多的OV7610和OV7620,其正常輸出數(shù)據(jù)頻率為13.5MHz。在應用過程中,通常改變傳感器中寄存器的設置值,降低其數(shù)據(jù)輸出頻率。

本文選用的是CMOS數(shù)字輸出圖像傳感器。對于模擬視頻信號,在設計時應加同步分離和A/D轉換電路。圖像采集的數(shù)字接口和邏輯控制與本文相同。

在我們系統(tǒng)中所采集的是單色圖像,如果采集彩色圖像邏輯設計是相同的所不同的只是數(shù)據(jù)寬度和后期處理方式。

具體應用中可根據(jù)需求對上述設計進行修改以滿足不同的要求。