一.吐槽
作為一個雞凍工程師,呸,打錯了,是驅動工程師,最基本的硬體基礎知識你必須得懂吧。
舉個栗子【敲黑板,重點來了啊】
1.你要點亮Camera,你得知道你用的是什麼介面的,是MIPI的還是Parallel的?
2.資料傳輸有哪些方式?
3.Camera 的成像原理是什麼?
等等
說點題外話
1.作為一個小白,我為啥要寫一個專題嗎?
我想,
一來是記錄自己的成長過程吧,記錄看過的資料,做了什麼思考。
二來是激勵自己不斷前行吧。Just keep moving!
如果有天我不幸真的成為了Camera【磚家】,那麼這些就是我自學的成長曆程,也許對後人有一定的幫助;
如果我還一直是個鹹魚,那麼這個專題就是我努力而不得的見證。
我很喜歡的一句話: If you can’t fly, then run; if you can’t run, then walk; if you can’t walk, then crawl, but whatever you do, you have to keep moving forward.
我不知道30歲之後,我是否能立業,是否依舊迷茫!
總之,無論如何,我們每天都要向前走,即使這個步子很小,但至少我勇往直前了!
廢話少說,本篇文章知識點
二.知識點
1.Camera的成像原理
景物通過鏡頭(LENS)生成的光學影象投射到影象感測器(Sensor)表面上,然後轉為模擬的電訊號,經過 A/D(模數轉換)轉換後變為數字影象訊號,再送到數字訊號處理晶片(DSP)中加工處理,再通過 IO 介面傳輸到 CPU 中處理,通過 LCD 就可以看到影象了
這個成像原理還是很重要的,對未來我們分析問題會有很大的幫助。影象感測器(SENSOR)是一種半導體晶片,其表面包含有幾十萬到幾百萬的光電二極體。光電二極體受到光照射時,就會產生電荷。
目前的 SENSOR 型別有兩種:
1.CCD(Charge Couple Device),電荷耦合器件,它是目前高畫素類 sensor 中比較成熟的成像器件,是以一行為單位的電流訊號。
2.CMOS(Complementary Metal Oxide Semiconductor),互補金氧半導體。CMOS的訊號是以點為單位的電荷訊號,更為敏感,速度也更快,更為省電
ISP 的效能是決定影像流暢的關鍵,JPEG encoder 的效能也是關鍵指標之一。而 JPEG encoder 又分為硬體 JPEG 壓縮方式,和軟體 RGB 壓縮方式。
DSP 控制晶片的作用是:將感光晶片獲取的資料及時快速地傳到 baseband 中並重新整理感光晶片,因此控制晶片的好壞,直接決定畫面品質(比如色彩飽和度、清晰度)與流暢度。
2.Image Sensor型別(Camera的資料格式)
a) YUV Sensor(低端貨)
YUV Sensor輸出的Data格式為YUV,影象的效果處理使用Sensor內部的ISP,BB端接收YUV格式的data後只進行格式的轉換,效果方面不進行處理,由於Sensor內部的ISP處理能力有限,且YUV Sensor的資料量比較大(YUV422的格式1個pixel2個byte),一般Size都比較小,常見的YUV sensor都是5M以下
b) Raw Sensor(稍微好一點的貨,優勢明顯)
Raw Sensor輸出的Data格式為Raw,影象的效果處理使用BB端的ISP,BB端接收Raw data後進行一系列的影象處理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要針對不同的模組進行效果除錯,Raw sensor是目前的主流,資料量比YUV Sensor小(RAW10 格式的sensor 1個pixel 10個bit)使用平臺ISP處理,能支援較大的size
3.硬體介面
簡單說來,Camera的介面分為並行和序列兩種方式,而目前MTK平臺主要支援的序列方式為mipi介面,
Parallel介面和mipi介面的介紹可以參考下圖
雖然硬體介面有Parallel介面和mipi介面,實際上MIPI是主流,基本已經看不到Parallel的身影了! 後面我們會詳細講解MIPI介面的硬體原理圖!
4.常見基本概念
我們這的BB端-原本是是baseband基帶的意思,這裡理解成CPU即可
a) 三路電壓
camera包含的三路電壓為模擬電壓(VCAMA),數字電壓(VCAMD),IO口電壓(VCAMIO)
b) I2C訊號
BB與Sensor端通過I2C來通訊(讀寫暫存器),包括SCL(I2C Clock) SDA(I2C Data)訊號
c) mipi幾條lane
mipi data是成對的差分訊號,MIPI_RDN和MIPI_RDP,有幾對這樣的pin腳,則說明是幾條lane,同一顆sensor由於register setting不同,輸出的訊號有可能是2 lane或者4lane等
d) parallel高低八位
Parallel介面一般Data有10根pin,分別叫做Data0~Data9,Parallel sensor輸出的data訊號是8根pin時,這八根pin接到的是Data0~Data7還是Data2~Data9,需要配置正確,叫做接到高八位或者低八位,接錯了可能產生如下現象
e) Data Format Sensor輸出的資料格式,對於YUV Sensor來說,Data Fomat一般有YUYV,YVYU,UYVY等,配置不對可能會導致顏色和亮度錯掉,例如下圖 對於Raw Sensor來說,Data Format就是First Pixel的顏色,分為R,Gr,Gb,B,配置不對會導致顏色錯誤f) MCLK
BB提供給Sensor的外部clock
g) PCLK
Parallel介面的Sensor輸出的clock,該clock變化一次,data更新一次
h) mipi 訊號
mipi訊號包括mipi clock和mipi data,該訊號是高速訊號,用來傳輸mipi資料包
5.硬體電路原理圖
(以最近做的TIMOVI_S9016為例子)
我第一次接觸原理圖的時候,也是一臉懵逼,心裡就在想,這他媽什麼鬼,密密麻麻那麼多線,後來看多了,也就得心應手了。原理圖分析(引腳作用)
1.供電部分
camera包含的三路電壓為模擬電壓(VCAMA),數字電壓(VCAMD),IO口電壓(VCAMIO)
a) VCAMD 就是 DVDD 數字供電,主要給 ISP 供電
b) VCAM_IO 就是 VDDIO 數字 IO 電源主要給 I2C 部分供電;
c) VCAMA 就是 AVDD 模擬供電,主要給感光區和 ADC 部分供電;
d) VCAM_AF 是對 Camera 自動對焦馬達的供電
2.Sensor Input部分
a) Rest腳:用於復位和初始化
b) PDN腳:Camera工作狀態控制:1.normol work(工作) 2.standby(待機)
c)Mlck腳: 即MasterClock腳,由BB提供給Sensor的外部clock
3.I2C部分
BB與Sensor端通過I2C來通訊(讀寫暫存器),包括SCL(I2C Clock) SDA(I2C Data)訊號
4.MIPI部分
mipi訊號包括mipi clock和mipi data,該訊號是高速訊號,用來傳輸mipi資料包。
mipi data是成對的差分訊號,MIPI_RDN和MIPI_RDP,有幾對這樣的pin腳,則說明是幾條lane,同一顆sensor由於register setting不同,輸出的訊號有可能是2 lane或者4lane等。
1.MIPI_RDN0和MIPI_RDP0:用於資料傳輸
2.MIPI_RDN1和MIPI_RDP1:用於資料傳輸
因此是2lane的
另外
MIPI_RCN和MIPI_RCP:時鐘訊號
圖中漏標
圖中漏標了一個VIO18_PMU:用於拉高。
路漫漫其修遠兮,吾將上下而求索。
以上是我看資料過程中,覺得應該掌握的Camera硬體基礎知識!
參考文件
1.MTK 資料