OV7725攝像頭圖像採集基礎知識

目前FPGA用於圖像採集 傳輸 處理 顯示應用越來越多,主要原因是圖像處理領域的火熱以及FPGA強大的並行處理能力。本文以OV7725爲例,對攝像頭使用方面的基礎知識做個小的總結,爲後續做個鋪墊。

這裏寫圖片描述

  XCLK:工作時鐘輸入,由主控器產生,頻率爲24MHz;
  
  HREF:行參考信號輸出;
  PCLK:像素時鐘輸出,由XCLK產生,用於控制器採樣圖像數據(時鐘速率<5ns,比如PCL84MHZ,30fps);
  VSYNC:場同步信號輸出;
  D[9:0] 像素數據輸出;
  
  RSTB:復位輸入,低電平有效;
  PWDN:低功耗模式選擇輸入,正常工作期間需拉低;
  SCL:SCCB管理接口時鐘,最高頻率400KHz;
  SDA:SCCB接口串行數據總線;
  
  PCLK引出一個幀率的概念,單位爲fps(Frames Per Second),指每秒鐘輸出幾幅靜態圖像,幀率越高視頻越流暢。另外SCCB總線與IIC總線非常相近,主機寫時序基本一致,故多數圖像採集系統直接複用IIC控制器對圖像傳感器內部寄存器進行配置。這裏給出大體的讀寫流程,具體見參考文獻2。需要格外注意的是,SIO_C時鐘信號在IDLE狀態下必須爲高電平。

寫操作:
這裏寫圖片描述
讀操作(分兩部分):
這裏寫圖片描述
總結來說,SCCB與IIC的主要區別在以下兩點:

1 IIC有重複開始的概念,讀操作先寫設備地址 再寫寄存器地址,然後重新開始,寫設備地址,讀取數據。而SCCB讀操作時在第一次寫寄存器地址後必須有結束條件。

2 IIC主機寫數據到從機時,從機必須在寫8bit下一時鐘拉低總線響應主機。IIC主機讀取從機數據時,多字節連續讀取除最後字節主句均在第9時鐘週期拉低總線響應,單字節讀取拉高總線便於下一拍提供停止條件。而SCCB每個phase第9bit爲don’t care bit /NACK,主機寫從機第9bit不關心,讀取從機數據由於不支持多字節操作第9bit主機必須拉高總線。

  接下來從整體上把握輸出圖像數據與同步信號的關係。(圖片截取自《OV7725攝像頭編程基本知識筆記》,見參考文獻3.
  這裏寫圖片描述
  兩個VSYNC高脈衝之間爲包含一幀圖像數據,但只有HREF高電平期間數據才爲有效數據,每個HREF高電平區間對應一行圖像數據。因此通過這兩個信號即可找到有效的圖像數據。OV7725攝像頭支持多種圖像輸出格式,此處闡述常用的RGB565格式:
     這裏寫圖片描述
  圖像數據在PCLK下降沿輸出,控制器在其上升沿採樣。當選擇此模式輸入時,僅使用數據線高八位。時序圖給出了相鄰兩個字節數據內容,可見兩個字節表示一個像素點數據,從高位到低位依次是:R 5bit,G 6bit,B 5bit。Ov7725圖像傳感器的像素30萬,分辨率:640*480,即每行640個有效像素點,一共480行。所以每個HREF高脈衝期間有640*2個PCLK週期,兩個VSYNC高脈衝期間循環480次。
     
參考文獻:
1 ov7725手冊(可註釋)圖文百度文庫 https://wenku.baidu.com/view/3e5504004431b90d6c85c764.html
2 OV7725學習之SCCB協議(一) - aslmer - 博客園 https://www.cnblogs.com/aslmer/p/5965229.html
3 ov7725數字攝像頭編程基本知識筆記圖文百度文庫 https://wenku.baidu.com/view/d1af7a731711cc7931b716c6.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章