歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OV9650攝像頭驅動分析

OV9650攝像頭驅動分析

日期:2017/3/1 10:04:06   编辑:Linux編程

首先要明確一下攝像頭工作方式:

一、攝像頭是怎麼把數據傳送給mini2440的呢?

這個攝像頭有10個數據口,mini2440通過這些數據口采集攝像頭的數據。

二、硬件以什麼樣的方式交換采集數據呢?

攝像頭將采集到的圖像數據以一些標准的格式通過數據口輸出。有兩種輸出方式,一種是一次輸出10個bits.另一種是每次輸出8bits.我們的mini2440采集的是第二種接法。

三、camera interface怎麼把數據傳給我們的程序呢?

我們在程序中設定一大塊內存區如:frame_bufffer[][],這樣的數組,並把這個數組的地址傳給 camera interface的相應寄存器。這樣camera interface會自動把攝像頭傳給它的數據經過自己的處理後存入那個內存區。至於camera interface做何種處理是我們可以通過寄存器設定的。

四、ov9650以什麼格式輸出呢,參見(二)紅色字體

ov9650支持很多種格式,比如說我們常用的YCbCr4:2:2格式,這種格式我們的camera interface也支持。只到我們把兩方都設成這種格式,camera interface就能正確處理數據。

五、camera interface以什麼格式存入我們給的內存區中呢?

這個也是可以通過設定寄存器設置的。

比如說我們設成RGB565格式,camera interface就會把從ov9650拿到的YCbCr像素用硬件廣商設定的程序轉換成RGB565的格式,並存內我們的數組裡,我們按照這個格式從數組裡取數據就可以,也可以直接把這個地址給LCD的寄存器,LCD就可以直接顯示了。

六、mini2440怎麼設置ov9650中的寄存器呢?

ov9650有SCCB總線,我們可以用mini2440的IO口模擬一個SCCB總線傳送方式。其實SCCB總線是弱化的IIC總線,我們也可以用IIC總線傳送命令。

七、ov9650中有很多寄存有設置啊?

是啊,真多,不過廣商提供一些標准的設置方法,我們只要寫成數據,並循環寫入就可以了。

Copyright © Linux教程網 All Rights Reserved