ov5640介紹


1 攝像頭

 

在各類信息中,圖像含有最豐富的信息,作為機器視覺領域的核心部件,攝像頭被廣泛地應用在安防、探險以及車牌檢測等場合。攝像頭按輸出信號的類型來看可以分為數字攝像頭和模擬攝像頭,按照攝像頭圖像傳感器材料構成來看可以分為CCDCMOS。現在智能手機的攝像頭絕大部分都是CMOS類型的數字攝像頭。

1.1 數字攝像頭跟模擬攝像頭區別

    輸出信號類型

數字攝像頭輸出信號為數字信號,模擬攝像頭輸出信號為標准的模擬信號。

    接口類型

數字攝像頭有USB接口(比如常見的PC端免驅攝像頭)IEE1394火線接口(由蘋果公司領導的開發聯盟開發的一種高速度傳送接口,數據傳輸率高達800Mbps)、千兆網接口(網絡攝像頭)。模擬攝像頭多采用AV視頻端子(信號線+地線)或S-VIDEO(即蓮花頭--SUPER VIDEO,是一種五芯的接口,由兩路視頻亮度信號、兩路視頻色度信號和一路公共屏蔽地線共五條芯線組成)。

    分辨率

模擬攝像頭的感光器件,其像素指標一般維持在752(H)*582(V)左右的水平,像素數一般情況下維持在41萬左右。現在的數字攝像頭分辨率一般從數十萬到數千萬。但這並不能說明數字攝像頭的成像分辨率就比模擬攝像頭的高,原因在於模擬攝像頭輸出的是模擬視頻信號,一般直接輸入至電視或監視器,其感光器件的分辨率與電視信號的掃描數呈一定的換算關系,圖像的顯示介質已經確定,因此模擬攝像頭的感光器件分辨率不是不能做高,而是依據於實際情況沒必要做這么高。

1.2 CCD與CMOS的區別

攝像頭的圖像傳感器CCDCMOS傳感器主要區別如下:

    成像材料

CCDCMOS的名稱跟它們成像使用的材料有關,CCD"電荷耦合器件"(Charge Coupled Device)的簡稱,而CMOS"互補金屬氧化物半導體"(Complementary Metal Oxide Semiconductor)的簡稱。

    功耗

由於CCD的像素由MOS電容構成,讀取電荷信號時需使用電壓相當大(至少12V)的二相或三相或四相時序脈沖信號,才能有效地傳輸電荷。因此CCD的取像系統除了要有多個電源外,其外設電路也會消耗相當大的功率。有的CCD取像系統需消耗2~5W的功率。而CMOS光電傳感器件只需使用一個單電源5V3V,耗電量非常小,僅為CCD1/8~1/10,有的CMOS取像系統只消耗20~50mW的功率。

    成像質量

CCD傳感器件制作技術起步早,技術成熟,采用PN結或二氧化硅(sio2)隔離層隔離噪聲,所以噪聲低,成像質量好。與CCD相比,CMOS的主要缺點是噪聲高及靈敏度低,不過現在隨着CMOS電路消噪技術的不斷發展,為生產高密度優質的CMOS傳感器件提供了良好的條件,現在的CMOS傳感器已經占領了大部分的市場,主流的單反相機、智能手機都已普遍采用CMOS傳感器。

2 OV5640攝像頭

本章主要講解實驗板配套的攝像頭,它的實物見圖 461,該攝像頭主要由鏡頭、圖像傳感器、板載電路及下方的信號引腳組成。

461 實驗板配套的OV5640攝像頭

鏡頭部件包含一個鏡頭座和一個可旋轉調節距離的凸透鏡,通過旋轉可以調節焦距,正常使用時,鏡頭座覆蓋在電路板上遮光,光線只能經過鏡頭傳輸到正中央的圖像傳感器,它采集光線信號,然后把采集得的數據通過下方的信號引腳輸出數據到外部器件。

2.1 OV5640傳感器簡介

圖像傳感器是攝像頭的核心部件,上述攝像頭中的圖像傳感器是一款型號為OV5640CMOS類型數字圖像傳感器。該傳感器支持輸出最大為500萬像素的圖像 (2592x1944分辨率),支持使用VGA時序輸出圖像數據,輸出圖像的數據格式支持YUV(422/420)YCbCr422RGB565以及JPEG格式,若直接輸出JPEG格式的圖像時可大大減少數據量,方便網絡傳輸。它還可以對采集得的圖像進行補償,支持伽瑪曲線、白平衡、飽和度、色度等基礎處理。根據不同的分辨率配置,傳感器輸出圖像數據的幀率從15-60幀可調,工作時功率在150mW-200mW之間。

2.2 OV5640引腳及功能框圖

OV5640模組帶有自動對焦功能,引腳的定義見圖 462

462 OV5640傳感器引腳分布圖

信號引腳功能介紹如下,介紹如下表 461

461 OV5640管腳

管腳名稱

管腳類型

管腳描述

SIO_C

輸入

SCCB總線的時鍾線,可類比I2CSCL

SIO_D

I/O

SCCB總線的數據線,可類比I2CSDA

RESET

輸入

系統復位管腳,低電平有效

PWDN

輸入

掉電/省電模式,高電平有效

HREF

輸出

行同步信號

VSYNC

輸出

幀同步信號

PCLK

輸出

像素同步時鍾輸出信號

XCLK

輸入

外部時鍾輸入端口,可接外部晶振

Y2Y9

輸出

像素數據輸出端口

下面我們配合圖 463中的OV5640功能框圖講解這些信號引腳。

463 OV5640功能框圖

(5)    控制寄存器

標號處的是OV5640的控制寄存器,它根據這些寄存器配置的參數來運行,而這些參數是由外部控制器通過SIO_CSIO_D引腳寫入的,SIO_CSIO_D使用的通訊協議跟I2C十分類似,在STM32中我們完全可以直接用I2C硬件外設來控制。

(6)    通信、控制信號及時鍾

標號‚處包含了OV5640的通信、控制信號及外部時鍾,其中PCLKHREFVSYNC分別是像素同步時鍾、行同步信號以及幀同步信號,這與液晶屏控制中的信號是很類似的。RESETB引腳為低電平時,用於復位整個傳感器芯片,PWDN用於控制芯片進入低功耗模式。注意最后的一個XCLK引腳,它跟PCLK是完全不同的,XCLK是用於驅動整個傳感器芯片的時鍾信號,是外部輸入到OV5640的信號;而PCLKOV5640輸出數據時的同步信號,它是由OV5640輸出的信號。XCLK可以外接晶振或由外部控制器提供,若要類比XCLK之於OV5640就相當於HSE時鍾輸入引腳與STM32芯片的關系,PCLK引腳可類比STM32I2C外設的SCL引腳。

(7)    感光矩陣

標號ƒ處的是感光矩陣,光信號在這里轉化成電信號,經過各種處理,這些信號存儲成由一個個像素點表示的數字圖像。

(8)    數據輸出信號

標號„處包含了DSP處理單元,它會根據控制寄存器的配置做一些基本的圖像處理運算。這部分還包含了圖像格式轉換單元及壓縮單元,轉換出的數據最終通過Y0-Y9引腳輸出,一般來說我們使用8根據數據線來傳輸,這時僅使用Y2-Y9引腳,OV5640與外部器件的連接方式見圖 464

464     8位數據線接法

(9)    數據輸出信號

標號⑤處為VCM處理單元,他會通過圖像分析來實現圖像的自動對焦功能。要實現自動對焦還需要下載自動對焦固件到模組,后面攝像頭實驗詳細介紹這個功能。

46.2.3 SCCB時序

外部控制器對OV5640寄存器的配置參數是通過SCCB總線傳輸過去的,而SCCB總線跟I2C十分類似,所以在STM32驅動中我們直接使用片上I2C外設與它通訊。SCCB與標准的I2C協議的區別是它每次傳輸只能寫入或讀取一個字節的數據,而I2C協議是支持突發讀寫的,即在一次傳輸中可以寫入多個字節的數據(EEPROM中的頁寫入時序即突發寫)。關於SCCB協議的完整內容可查看配套資料里的《SCCB協議》文檔,下面我們簡單介紹下。

SCCB的起始、停止信號及數據有效性

SCCB的起始信號、停止信號及數據有效性與I2C完全一樣,見圖 465及圖 466

    起始信號:在SIO_C為高電平時,SIO_D出現一個下降沿,則SCCB開始傳輸。

    停止信號:在SIO_C為高電平時,SIO_D出現一個上升沿,則SCCB停止傳輸。

    數據有效性:除了開始和停止狀態,在數據傳輸過程中,當SIO_C為高電平時,必須保證SIO_D上的數據穩定,也就是說,SIO_D上的電平變換只能發生在SIO_C為低電平的時候,SIO_D的信號在SIO_C為高電平時被采集。

465 SCCB停止信號

466 SCCB的數據有效性

SCCB數據讀寫過程

SCCB協議中定義的讀寫操作與I2C也是一樣的,只是換了一種說法。它定義了兩種寫操作,即三步寫操作和兩步寫操作。三步寫操作可向從設備的一個目的寄存器中寫入數據,見圖 467。在三步寫操作中,第一階段發送從設備的ID地址+W標志(等於I2C的設備地址:7位設備地址+讀寫方向標志),第二階段發送從設備目標寄存器的16位地址,第三階段發送要寫入寄存器的8位數據。圖中的"X"數據位可寫入10,對通訊無影響。

467 SCCB的三步寫操作

而兩步寫操作沒有第三階段,即只向從器件傳輸了設備ID+W標志和目的寄存器的地址,見圖 468。兩步寫操作是用來配合后面的讀寄存器數據操作的,它與讀操作一起使用,實現I2C的復合過程。

468 SCCB的兩步寫操作

兩步讀操作,它用於讀取從設備目的寄存器中的數據,見圖 469。在第一階段中發送從設備的設備ID+R標志(設備地址+讀方向標志)和自由位,在第二階段中讀取寄存器中的8位數據和寫NA (非應答信號)。由於兩步讀操作沒有確定目的寄存器的地址,所以在讀操作前,必需有一個兩步寫操作,以提供讀操作中的寄存器地址。

469 SCCB的兩步讀操作

可以看到,以上介紹的SCCB特性都與I2C無區別,而I2CSCCB還多出了突發讀寫的功能,所以SCCB可以看作是I2C的子集,我們完全可以使用STM32I2C外設來與OV5640進行SCCB通訊。

46.2.4 OV5640的寄存器

控制OV5640涉及到它很多的寄存器,可直接查詢《ov5640datasheet》了解,通過這些寄存器的配置,可以控制它輸出圖像的分辨率大小、圖像格式及圖像方向等。要注意的是OV5640寄存器地址為16位。

官方還提供了一個《OV5640_自動對焦照相模組應用指南(DVP_接口)__R2.13C.pdf》的文檔,它針對不同的配置需求,提供了配置范例,見圖 4610。其中write_SCCB是一個利用SCCB向寄存器寫入數據的函數,第一個參數為要寫入的寄存器的地址,第二個參數為要寫入的內容。

4610 調節幀率的寄存器配置范例

46.2.5 像素數據輸出時序

OV5640采用SCCB協議進行控制,而它輸出圖像時則使用VGA時序(還可用SVGAUXGA,這些時序都差不多),這跟控制液晶屏輸入圖像時很類似。OV5640輸出圖像時,一幀幀地輸出,在幀內的數據一般從左到右,從上到下,一個像素一個像素地輸出(也可通過寄存器修改方向),見圖 4611

4611 攝像頭數據輸出

例如,圖 4612,若我們使用Y2-Y9數據線,圖像格式設置為RGB565,進行數據輸出時,Y2-Y9數據線會在1個像素同步時鍾PCLK的驅動下發送1字節的數據信號,所以2PCLK時鍾可發送1RGB565格式的像素數據。像素數據依次傳輸,每傳輸完一行數據時,行同步信號HREF會輸出一個電平跳變信號,每傳輸完一幀圖像時,VSYNC會輸出一個電平跳變信號。

4612 DVP接口時序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM