引言
USB、串口、并口是PC機和外設進行通訊的常用接口,但對于數據量大的圖像來說,若利用串行RS-232協議進行數據采集,速度不能達到圖像數據采集所需的要求;而用USB進行數據采集,雖能滿足所需速度,但要求外設必須支持USB協議,而USB協議與常用工程軟件的接口還不普及,給使用帶來困難。有些用戶為了利用標準并行口(SPP)進行數據采集,但SPP協議的150kb/s傳輸率對于圖像數據采集,同樣顯得太低。因此,為了采集數據量大的圖像數據,本文采用了具有較高傳輸速率的增強型并行口協議(EPP)和FPGA,實現對OV7620CMOS圖像傳感器進行高速數據采集,它最高速率可以達到2Mb/s。
硬件電路方案
圖1為基于FPGA和EPP技術對OV7620CMOS圖像傳感器的高速數據采集系統原理框圖,它主要由三部分組成:OV7620的參數配置電路、圖像采樣電路以及PC讀取數據電路。
圖1 系統原理框圖
OV7620的參數配置電路
系統在上電后需要對CMOS采像芯片進行初始化,以確定采集圖像的開
窗位置、窗口大小和彩色或黑白工作模式等。這些參數的配置是通過OV7620芯片上提供的SCCB接口進行的。
SCCB接口是采用一種簡單、雙向二線制的同步串行總線I2C總線,接口引線有SCL和SDA。由于89C2051沒有標準的I2C總線接口,可以用軟件程序來模擬I2C總線,OV7620開窗位置和開窗大小、黑白和彩色模式以及掃描方式均可通過相應寄存器來設置。這些寄存器都是可讀/寫的,具體操作方法如下:可以采用頁寫的方式,即在寫寄存器過程中要先發送寫允許指令OX42,然后發送寫數據的目的寄存器地址,接著為要寫的數據。寫完一個寄存器后,CMOS會自動把寄存器地址加一,程序可繼續向下寫,而不需要再次輸入地址。讀寄存器是同樣過程,只不過指令改為OX43。
I2C總線功能的實現完全是依靠SCL、SDA線上電平的狀態以及兩者之間的相互配合實現的。I2C總線規約中規定的條件如下:
啟動時序:SCL為高電平時, SDA出現一個下降沿;
傳輸時序:在啟動條件滿足后,SDA為穩定數據狀態, SCL產生一個正脈沖,將傳送一位數據;
應答時序: 在從機接收到一個完整的數據字節時,在主機釋放SDA的情況下,主機給SCL輸出一個正的時鐘脈沖,從機將SDA拉低,以表應答;
停止條件:當SCL為高電平時,SDA出現一個上升沿,該條件可以解決多機競爭的問題,即在兩個器件對話時,第三者插入會終止前者的數據通信,其主要特點在于各器件每一位都在判斷總線的狀態。
I2C總線的啟動和停止條件如圖2所示。
圖2 I2C總線的啟動和停止條件
圖像采樣電路
在隧道的平行度、無損檢測、垂直度測量儀中常選用的圖像分辨率為320×320,用黑白模式就能基本滿足圖像識別對圖像特征點的要求。 因此本系統采樣的參數是在圖像分辨率取為320×320、黑白模式、ZV圖像格式中進行的。
CMOS圖像芯片ZV端口格式的輸出波形如圖3所示。圖中VSYNC是垂直場同步信號,其下降沿表示一幀圖像的開始(CMOS是按列采集圖像的),HREF是水平場同步信號,其上升沿表示一列圖像數據的開始。PCLK是輸出數據同步信號,Y是圖像灰度信息。下面介紹FPGA如何對圖像傳感器的數據采樣。
圖3 OV7620在ZV端口格式的輸出時序
為了進行速度匹配,FPGA和PC之間有兩根握手信號: READY和ACK。它們來協調FPGA對同一個數據存儲芯片的讀寫過程。READY是FPGA通知PC圖像數據已經讀完信號;ACK是PC通知FPGA數據已讀完信號,兩者都是低電平有效。
在數據采樣期間,將READY拉高,表示正在采集,這時FPGA根據OV7620的VSYNC、HREF、PCLK產生圖像MEM_WR(寫信號)和ADDRESS(地址),讀取OV7620的數據到高速緩存,到下一個VSYNC信號時,表示一幀數據已經采完,接著向PC機發送申請READY信號,表示圖像采集完成,如果PC不給應答信號ACK,FPGA開始采樣下一幀數據放到高速緩存中,并覆蓋原有的數據;若PC響應,FPGA停止采樣數據。
PC讀取數據電路
PC讀取數據是通過并口的EPP模式進行的。在EPP模式下讀時序如圖4所示。 在讀模式下,nWRITE(EPP寫信號)保持高電平, 當nDATASTB(EPP讀信號)變低時,準備讀取外設數據;當外設數據準備好后,使nWAIT(外設忙標志)為高,這時PC程序向基址+4的端口(EPP數據端口)執行一個I/O讀操作(nDATASTB信號);在讀脈沖nDATASTB信號的上升沿,PC讀取數據總線上數據。整個過程是在一個ISA周期內完成的。
圖4 EPP模式下讀時序
FPGA完成對EPP協議實現的時序如圖5。PC不停查詢READY信號是否有效,直到READY有效時,PC才可以讀取圖像數據,同時將ACK置高,表示PC正在讀取數據緩存中的圖像數據。這時FPGA停止采集圖像(不產生寫信號),FPGA檢測PC通過EPP發出讀脈沖(CPU_DS),產生高速緩存MEM_RD(讀信號)和地址,從高速緩存中讀取一個字節放到并口上,同時向PC上發送一個BUSY信號,PC在這個時刻之后可以讀取一個字節數據,完成整個數據讀寫。讀取數據過程中EPP端口的PC_WRITE(寫信號)要一直保持為高電平。
圖5 FPGA對EPP協議的實現時序
結語
FPGA對CMOS高速數據采集方法,可以把CMOS的主動器件通過FPGA變成可控制的方式,PC可間接對存儲體進行尋址運算。在該系統中用PC的并口實現了CMOS信號的高速采集處理,按前述軟硬件方法制作的系統,實際穩定的采樣速率達到了15幀/s, 該系統已應用在管道無損檢測樣機中,效果良好。這種信號采集方法還可以在其它諸多需要高速圖像數據采集的場合應用。
-
傳感器
+關注
關注
2548文章
50678瀏覽量
752010 -
FPGA
+關注
關注
1626文章
21667瀏覽量
601853 -
數據采集
+關注
關注
38文章
5906瀏覽量
113518
發布評論請先 登錄
相關推薦
評論