肖 可
(湖南科技學院 計算機與通信工程系,湖南 永州 425100)
數字圖像采集接口電路設計方法
肖 可
(湖南科技學院 計算機與通信工程系,湖南 永州 425100)
本文介紹了兩種用于嵌入式系統的數字圖像采集接口方法,I/O接口和內存直接寫入。在對采集速度要求不高的應用中,I/O接口方法可以簡化接口電路設計,減少系統資源。對于要求實時進行圖像處理的系統,直接寫入內存法可以在不需要處理器干預的情況下,直接將圖像數據寫入系統存儲區內,實現高速圖像采集。本文主要討論I/O接口方法。
嵌入式系統;圖像采集;I/O接口方法;接口電路設計
嵌入式系統通常是一個包含微處理器的特殊計算機系統,是一個較大系統或設備的組成部分,它在很大程度上決定了設備的功能特性。如今隨著信息化、智能化、網絡化的迅速發展,嵌入式系統已被廣泛應用在消費電子、工業應用、軍事國防、網絡設備等領域。隨著半導體技術的飛速發展,具有圖像功能的嵌入式應用愈來愈多。從數碼相機、可視電話、多功能移動電話等消費產品到門禁、數字視頻監視等工業控制及安防產品,圖像采集和處理已成為重要的組成部分之一。圖像采集需要進行同步信號的處理,圖像采集過程比較復雜,電路設計也比較困難。傳統PC上的圖像采集卡在嵌入式系統中不同的處理器和圖像傳感器的信號定義及接口方式不同,沒有通用的接口芯片。利用系統中的現有資源設計圖像采集電路,可以減少器件數量、縮小產品體積和降低系統成本。所以,通常嵌入式系統中要求自行設計圖像采集接口電路。本文針對不同采集速度的要求,提出了兩種圖像采集接口電路的設計方法。
在讀取圖像數據時用采樣時鐘PCLK鎖存輸出數據。除采樣時鐘(PCLK)和數據輸出(D)外,還有水平方向的行同步信號(HSYNC))和垂直方向的場同步信號(VSYNC)。對于隔行掃描器件,還有幀同步信號(FRAME)。一幀包括兩場,同步脈沖期間數據端口輸出的數據無效。 PLCK存在時,圖像數據端口連續不斷地輸出數據。由于行之間以及場之間輸出數據無效,在采集圖像數據必須考慮同步信號,讀取有效數據才能保證圖像的完整性。
對于MCU、DSP處理器,I/O是最方便的訪問方式之一。以I/O方式讀取圖像數據不僅可以簡化電路設計,而且程序也很簡單。但由于讀取每一個像素都要檢測狀態,在處理器速度低的情況下,讀取圖像慢。在處理器速度快或圖像采集速度要求不高的應用中,I/O接口方式是一個較好的選擇。
在圖像傳感器和處理器之間,利用兩個鎖存器分別鎖存狀態和圖像數據,處理器通過兩個I/O端口分別讀取。在采樣時鐘的上升沿數據鎖存器保存傳感器輸出的圖像數據,當處理器通過I/O口讀取圖像時,數據鎖存器輸出數據。其它情況下,鎖存器輸出處于高阻狀態。處理器通過狀態鎖存器讀取同步信號和圖像就緒(Ready)指示信號。在數據鎖存器保存圖像數據的同時,狀態鎖存器產生Ready信號(從‘0’到‘1’)。處理器讀取圖像數據時,Ready信號自動清除(從‘1’到‘0’)。處理器讀取狀態時鎖存器驅動總線,其他情況下輸出處于高阻狀態。
要保證圖像的完整性就必須從一場圖像的第一行開始讀取,對于隔行掃描輸出的圖像則必須從一幀的第一行開始讀取。讀取每行圖像數據時,則從該行的第一個像素開始。因此,在讀取圖像數據前應先判斷場和行的起始位置。讀取每個像素數據前先查詢數據狀態,如果數據已準備好則讀取數據。
為了簡化電路設計,用處理器直接讀取同步信號,然后找出場和行的起始位置。 處理器讀取同步信號時,信號可能處在同步脈沖狀態(‘1’)或正常狀態(‘0‘)。對于那些同步信號反向的器件,則分別為‘0’和‘1’。如果信號處于同步脈沖狀態,第一次檢測到的正常狀態就起始位置。如果信號處于正常狀態,則首先檢測到脈沖狀態,然后用同樣的方法確定起始位置。
通過上述方法可以檢測出場的起始位置和行起始位置。
在應用中,以上兩個鎖存器的功能和其他邏輯集中在一起,用可編程邏輯器件實現。下面分別為它們的VHDL表示。
設DO(0-7)是鎖存器輸出端,DI(0-7)是鎖存器輸入端,DM(0-7)是中間狀態,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;
進一步設數據有效狀態為Dstatus, 狀態讀寫信號為Status_R (低點平時有效),則狀態鎖存器的VHDL描述為:
Process (reset, PCLK,Data_R) -- 數據有效狀態控制
Begin
If reset='0' or Data_R='0' then
Dstatus<='0'; -- 清除狀態
Else if PCLK'enent and PCLK='1' then
Dstatus<='1'; -- 設置狀態
End if;
End process;
Process (Dstatus, Status_R) --讀取狀態和同步信號
Begin
If Status_R='0' then
DO0<=Dstatus;
DO1<=VSYNC;
DO2<=HSYNC;
DO3<=FRAME;
Else
DO<="ZZZZZZZZ"; -- 高阻狀態
End if;
End process;
在處理器速度較慢且圖像數據輸出的頻率不能降低的情況下,采用上述I/O接口方法不能得到完整的圖像。另外,有些應用中要求能夠實時采集圖像。為此,我們設計了高速數據圖像采集方法―內存直接寫入法。由于SRAM訪問控制簡單,電路設計方便,被大量嵌入式系統采用。具體應用中可根據不同需求對上述設計進行修改以滿足不同的要求。
[1]何立民.從嵌入式系統看現代計算機產業革命[J].單片機與嵌入式系統應用,2008,(1).
[2]胡繼陽等. 嵌入式系統導論. 北京: 中國鐵道出版社,2005.
[3]陳翌等. 嵌入式軟件開發技術. 北京: 國防工業出版社,2003.
[4]劉攀,王紅亮,孟令軍.基于FPGA的數字圖像采集存儲系統的設計[J].電視技術,2010,34(6):32-34.
[5]朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統[J].計算機應用,2011,31(5): 1258-1260.
TP302
A
1673-2219(2012)08-0043-03
2012-05-10
肖可(1972-),男,湖南永州人,實驗師,研究方向為智能仿真。
(責任編校:何俊華)