android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)
平臺信息:
內核: linux
系統: android
平臺:S5PV310(samsung exynos 4210)?
作者:xubin341719(歡迎轉載,請注明作者)
android camera(一):camera模組CMM介紹
android camera(二):攝像頭工作原理、s5PV310 攝像頭接口(CAMIF)
android camera(三):camera V4L2 FIMC
android camera(四):camera 驅動 GT2005
下載:常用攝像頭規格書(個別有android驅動程序)? :bf3703 30W、gc0308 30W、ov7670、gt2005 200W、gt2015 200W、NT99250 200W、s5k5ba 200W、s5k4ba
一、攝像頭工作原理
上一篇我們講了攝像頭模組的組成,工作原理,做為一種了解。下面我們析攝像頭從寄存器角度是怎么工作的。如何閱讀攝像頭規格書(針對驅動調節時用到關鍵參數,以GT2005為例)。
規格書,也就是一個器件所有的說明,精確到器件每一個細節,軟件關心的寄存器、硬件關心的電氣特性、封裝等等。單單驅動方面,我們只看對我們有用的方面就可以了,沒必要全部看完。主要這樣資料全都是鳥語(En),全部看完一方面時間上會用的比較多,找到關鍵的地方就行了。
1、camera的總體示意圖如下:控制部分為攝像頭上電、IIC控制接口,數據輸出為攝像頭拍攝的圖傳到主控芯片,所有要有data、行場同步和時鐘號。GT2005/GT2015是CMOS接口的圖像傳感器芯片,可以感知外部的視覺信號并將其轉換為數字信號并輸出。
?????? 我們需要通過MCLK給攝像頭提供時鐘,RESET是復位線,PWDN在攝像頭工作時應該始終為低。PCLK是像素時鐘,HREF是行參考信號,VSYNC是場同步信號。一旦給攝像頭提供了時鐘,并且復位攝像頭,攝像頭就開始工作了,通過HREF,VSYNC和PCLK同步傳輸數字圖像信號。 數據是通過D0~D7這八根數據線并行送出的。
(1)、Pixel Array
?????? GT2005陣列大小為 1268 列、1248 行,有效像素為 1616 列, 1216 行。也就是說攝像頭為1600X1200的時候,像素點要多于這個,去除邊緣一部分,保證圖像質量吧。
(2)、IIC?這個不用說了,攝像頭寄存器初始化的數據都從這里傳輸的,所有的IIC器件都一樣的工作,來張圖吧,后面做詳細分析;
下面這一部分在調試驅動的過程中比較重要了:
(3)、MCLK
電子元件工作都得要個時鐘吧,攝像頭要工作,這個就是我們所要的時鐘,在主控制芯片提供,這個時鐘一定要有,要不然攝像頭不會工作的。
(4)、上下電時序,這個要接規格書上來,注間PWDN、RESETB這兩個腳,不同的攝像頭不太一樣,這個圖是上電時序,上電時參考一下,知道在那里看就行;
(5)PCLK \D1~D7
攝像頭得到的數據要傳出來吧,要有數據,當然數據出來要有時鐘和同步信號了,看下它的時序,和LCD顯示的時序一樣,道理是一樣的:
(6)、主要的寄存器:分辨率、YUV順序、X軸、Y軸鏡相、翻轉
以上工作完成后,也許還有一些問題,分辨率太小; YUV順序不對圖像不對; XY圖像方向。這些工作完成后,如果還有什么細節的問題,如果你想花時間,看規格書里面的寄存器可以解決的,如果不想看,找模組廠的FAE,他們專業的,很快會幫你搞定。
(7)、攝像頭的硬件接口
二、S5pv310上Camera主控芯片上的硬件接口
1、CAMIF? ?Camera Interface
先看一下攝像頭接口框圖:(這個看著有點抽像,我們放這里,先了解一下,其實驅動中一般不會涉及到這里,不過我們這里分析了,就把這個帶出來了)
(1)、攝像頭接口的主要屬性:
a、支持多種輸入接口:(就是上面我們看到的四模式)
??? DMA (AXI 64-bitinterface) 模式;
??? MIPI (CSI) 模式;
??? ITU-R BT 601/ 656/ 709模式;
??? Direct FIFO (PlayBack)模式;
b、支持多種輸出模式:
??? DMA (AXI 64-bitinterface) 模式;
??? Direct FIFO 模式;
c、支持數碼變焦Digital Zoom In (DZI) capability;
d、支持多攝像頭輸入;
e、 支持視頻同步信號極性可編程控制;
f、支持最大輸入分辨率為8192X8192;
g、支持圖像翻轉(X軸、Y軸鏡相,90、180、270翻轉);
h、支持多種圖片格式;
i、支持捕獲幀控制;
j、支持的圖像特效。
2、FIMC? Fully InteractiveMobile Camera
??? 攝像頭的采集的數據要CPU無法直接處理,主控芯片里面集成了Camera控制器,叫FIMC(FullyInteractive Mobile Camera)。攝像頭需要先把圖像數據傳給控制器,經過控制器處理(裁剪拉升后直接預覽或者編碼)之后交給CPU處理。實際上攝像頭工作需要的時鐘(MCLK)也是FIMC給它提供的。
??? 在s5pv310上的攝像頭接口是一個FIMC(完全交互式移動相機接口),支持ITUR BT-601-605標準、AMX接口、MIPI接口
MIPI 、ITU、AMX
(1)、ITU國際電信聯盟無線電通信部門ITU-RRadiocommunication Sector of ITU 簡稱ITU-RITU-R BT.601?16位數據傳輸;Y、U、V信號同時傳輸,是并行數據,行場同步單獨輸出。
ITU-R BT.6568/10位數據傳輸;不需要同步信號;串行數據傳輸;傳輸速率是601的2倍;先傳Y,后傳UV。行場同步信號嵌入在數據流中。
(2)、MIPI(移動行業處理器接口)是MobileIndustry Processor Interface的縮寫 MIPI 規范:Camera工作組:MIPI Camera Serial Interface 1.0specification .Camera Serial Interface 2 v1.0 (CSI-2)
(3)、AMX(Advanced eXtensible Interface)是一種總線協議,該協議是ARM公司提出的AMBA(Advanced Microcontroller BusArchitecture)3.0協議中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內總線。
3、接口信息
FIMC信號定義如下所示(YCbCr模式)
| Signal | I/O | Description | ???Type |
| HREF | I | 行同步信號 | ? |
| PCLK | I | 像素時鐘 | |
| DATA[7:0] | I | 像素數據 | |
| FIELD | O | FIELD信號 | |
| MCLK | O | 系統時鐘信號 |
?
通過CAM_MCLK給攝像頭提供時鐘,RST是復位線,PWDN在攝像頭工作時應該始終為低。HREF是行參考信號,PCLK是像素時鐘,VSYNC是場同步信號。一旦給攝像頭提供了時鐘,并且復位攝像頭,攝像頭就開始工作了,通過HREF,PCLK和VSYNC同步傳輸數字圖像信號。數據是通過DATA0~DATA7這八根數據線并行送出的。
4、不同接口模式的工作時序
ITU-R BT 656輸入時序圖,這種方式下同步信號已經內嵌到視頻數據中了,因此不需要額外的行和幀同步信號。
ITU-R BT 601輸入時序圖,這種方式下行和幀同步信號獨立于視頻數據,因此需要同步信號。
(ITU-R?BT?601:?16位數據傳輸;21芯;Y、U、V信號同時傳輸。??
ITU-R?BT?656:?9芯,不需要同步信號;8位數據傳輸;串行視頻傳輸;傳輸速率是601的2倍;先傳Y,后傳UV。)
同步信號的時延參數
?????????t1:表示VSYNC前、后插入周期
?????????t2:表示HREF前插入周期
?????????t3:表示 HREF寬度
?????????t4:表示HREF后插入周期
?
5、camera的時鐘域,三個時鐘:系統時鐘、PCLK、MCLK
??? 每個攝像頭接口包括三個時鐘域,每一個時鐘域是系統總線時鐘,第二個是攝像頭像素時鐘PCLK,第三個時鐘域為內部時鐘MCLK。系統總線時鐘必需高于PCLK, CAM_MCLK 必需固定頻率分頻,如PLL時鐘。如果有外部時鐘晶振,CAM_MCLK 空掉。不需要同步MMCLK,PCLK應該與schmitt-triggered電平移位器連接。
6、硬件接口電路
主控芯片上的接口:
camera 接口
總結
以上是生活随笔為你收集整理的android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手持机设备公司(WINCE/ANDROI
- 下一篇: android camera(三):ca