1. 程式人生 > >高清攝像頭MIPI- CSI2介面

高清攝像頭MIPI- CSI2介面

MIPI攝像頭常見於手機、平板中,支援500萬畫素以上高清解析度。它的全稱為“MobileIndustryProcessorInterface”,分為MIPIDSI和MIPICSI,分別對應於視訊顯示和視訊輸入標準。目前,MIPI攝像頭在其他嵌入式產品中,比如行車記錄儀、執法儀、高清微型相機、網路監控相機等得到廣泛應用,因此我們以OMAP4處理器為例,談談MIPI攝像頭如何與ARM處理器連線。
OMAP4支援MIPICSI2版本,其中4460支援兩路視訊輸入,為了進行介面和軟體驗證,我們先在OMAP4開發板PandaboardES上設計了攝像頭模組,如下圖:

攝像頭模組是通過Pandabaord的J17引腳焊接上去的,為了更好地理解CSI2介面,我們先看看PandabaordES的J17定義了哪些引腳:


可以看到J17中包含了5組差分訊號,即(CSI21_DX0,CSI21_DY0),(CSI21_DX1,CSI21_DY1),(CSI21_DX2,CSI21_DY2),(CSI21_DX3,CSI21_DY3),(CSI21_DX4,CSI21_DY4)。這五組訊號來自於OMAP4的CSI2-A介面,如下圖所示:

上圖摘自於omap4的手冊。可以看出,OMAP4430其實有兩路CSI2介面,即CSI2A和CSI2B,說明其可以接兩個攝像頭,這已經是手機或者平板應用的基本要求了。CSI2A介面擁有五組差分介面(csi2a_dxi,csi2a_dyi,i=0~4),分別對應J17引腳的(CSI21_DXi,CSI21_DYi,i=0~4)。一組差分訊號稱為Lane,每個Lane可以通過軟體配置為DataLane和ClockLane,而且差分訊號的極性也可以軟體配置。當然最常規的用法是將(dx0,dy0)用於傳輸clock資訊。CSI2A可以有4個DataLane和1個ClockLane,而CSI2B則只能有1個DataLane和1個ClockLane,DataLane越多,其能傳輸的速度越高,也就是更傳輸更高解析度的圖片。DataLane個數與傳輸速度的關係是這樣的:

 

datalane個數 極限速度 對應影象傳輸幀率
OneDatalane 1000Mbps 1280*[email protected]
TwoDatalane 2x1000Mbps 1280*[email protected]
ThreeDatalane 3x1000Mbps 1280*[email protected]

從這個表格中可以看到,MIPI採用差分線傳輸,速度還是很快的,比並行傳輸要快很多。在使用兩組datalane的情況下,就可以做到

[email protected]了。如果要提高影象的解析度,在使用同樣多datalane的情況下,就要降低幀率了。
我們為pandaboard研發的攝像頭模組採用ov5640感測器,它支援兩組datalane,以下是它所支援的傳輸格式:

format resolution framerate
5Mpixel 2592x1944 15fps
1280x960 1280x960 45fps
1080p 1920x1080 30fps
720p 1280x720 60fps
VGA 640x480 90fps
QVGA 320x240 120fps

ov5640擁有2組datalane,還有1組clocklane,因此可以如下方式連線ov5640和omap4.

其中(MC_P,MC_N)為ov5640的用於傳輸時鐘的引腳,(MD0_P,MD0_N),(MD1_P,MD1_N)為用於傳輸資料的引腳。除了要連線好ov5640的差分訊號外,還要給ov5640輸入時鐘訊號,這個時鐘訊號可以來自於晶振,也可以來自於omap4。我們選擇一個用一個晶振產生24M的時鐘訊號,具體如何連線這裡不再敘述。
接下來我們順便講講OV5640的I2C控制訊號。另外我們注意到OV5640有SIOC和SIOD。那麼這I2C控制訊號是幹什麼的?一個很明顯的用途就是來設定OV5640的影象輸出格式,比如是輸出RGB格式還是YUV格式。這是通過暫存器來設定的。
其實OV5640作為視覺感測晶片,其有很多暫存器來控制影象的拍攝引數,比如增益控制、曝光控制等,這些引數一般設定為預設值即可,但如果使用者想再特定環境下獲得更好的影象質量,可以設定這些引數來達到最佳效果。比如在晚上開啟夜視模式(把每幀曝光時間調長),或者在室內開啟工頻抑制,在日光燈下影象不閃爍(通過設定曝光時間為光周期訊號整數倍),可以達到更加靈活的使用效果。運行於omap4的拍照軟體可以執行一個類似於光照檢測的演算法來來設定這些引數,從而達到一個最佳效果,這個就得看軟體演算法的功力了。
另外,OV5640內部還有一個ISP(ImageSignalProcessor),能夠做簡單的一些影象處理演算法,比如Gamma校正,影象縮放等,但相對於OMAP4430的強大的ISP而言,而其功能還是小巫見大巫了,所以推薦直接使用OMAP4430的ISP功能。