android camera(二):攝像頭工作原理、s5PV310 攝像頭介面(CAMIF)
一、攝像頭工作原理
上一篇我們講了攝像頭模組的組成,工作原理,做為一種瞭解。下面我們析攝像頭從暫存器角度是怎麼工作的。如何閱讀攝像頭規格書(針對驅動調節時用到關鍵引數,以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.60116位資料傳輸;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 介面