新聞中心

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

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

作者: 時間:2012-02-01 來源:網絡 收藏

一、引言

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

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

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

二、圖像信號介紹

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

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

三、I/O接口設計

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

1、電路原理和結構

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

2、圖像讀取流程

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

3、同步信號檢測

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

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

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

4、用VHDL設計鎖存器

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

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

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


Begin


If reset='0' then


DM="00000000"; -- 清除數據


Else if PCLK'event and PCLK='1' then


DM=DI; -- 鎖存數據


End if;


End process;


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


Begin


If Data_R='0' then


DO=DM; -- 輸出圖像數據


Else


DO="ZZZZZZZZ" -- 輸出高阻


End if;


End process;

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

Process (reset, PCLK,Data_R) -- 數據有效狀態(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'; -- 設置狀態(tài)


End if;


End process;


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


Begin


If Status_R='0' then


DO0=Dstatus;


DO1=VSYNC;


DO2=HSYNC;


DO3=FRAME;


Else


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


End if;


End process;


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉