做爲一個雞凍工程師,呸,打錯了,是驅動工程師,最基本的硬件基礎知識你必須得懂吧。html
舉個栗子【敲黑板,重點來了啊】ide
1.你要點亮Camera,你得知道你用的是什麼接口的,是MIPI的仍是Parallel的?性能
2.數據傳輸有哪些方式?3d
3.Camera 的成像原理是什麼?調試
等等code
說點題外話orm
1.做爲一個小白,我爲啥要寫一個專題嗎?cdn
我想,htm
一來是記錄本身的成長過程吧,記錄看過的資料,作了什麼思考。blog
二來是激勵本身不斷前行吧。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歲以後,我是否能立業,是否依舊迷茫!
總之,不管如何,咱們天天都要向前走,即便這個步子很小,但至少我一往無前了!
廢話少說,本篇文章知識點
景物經過鏡頭(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 中並刷新感光芯片,所以控制芯片的好壞,直接決定畫面品質(好比色彩飽和度、清晰度)與流暢度。
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
簡單說來,Camera的接口分爲並行和串行兩種方式,而目前MTK平臺主要支持的串行方式爲mipi接口,
Parallel接口和mipi接口的介紹能夠參考下圖
雖然硬件接口有Parallel接口和mipi接口,實際上MIPI是主流,基本已經看不到Parallel的身影了! 後面咱們會詳細講解MIPI接口的硬件原理圖!
咱們這的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數據包
(以最近作的TIMOVI_S9016爲例子)
我第一次接觸原理圖的時候,也是一臉懵逼,內心就在想,這他媽什麼鬼,密密麻麻那麼多線,後來看多了,也就駕輕就熟了。camera包含的三路電壓爲模擬電壓(VCAMA),數字電壓(VCAMD),IO口電壓(VCAMIO)
a) VCAMD 就是 DVDD 數字供電,主要給 ISP 供電
b) VCAM_IO 就是 VDDIO 數字 IO 電源主要給 I2C 部分供電;
c) VCAMA 就是 AVDD 模擬供電,主要給感光區和 ADC 部分供電;
d) VCAM_AF 是對 Camera 自動對焦馬達的供電
a) Rest腳:用於復位和初始化
b) PDN腳:Camera工做狀態控制:1.normol work(工做) 2.standby(待機)
c)Mlck腳: 即MasterClock腳,由BB提供給Sensor的外部clock
BB與Sensor端經過I2C來通訊(讀寫寄存器),包括SCL(I2C Clock) SDA(I2C Data)信號
mipi信號包括mipi clock和mipi data,該信號是高速信號,用來傳輸mipi數據包。
1.MIPI_RDN0和MIPI_RDP0:用於數據傳輸
2.MIPI_RDN1和MIPI_RDP1:用於數據傳輸
所以是2lane的
另外
MIPI_RCN和MIPI_RCP:時鐘信號
圖中漏標
圖中漏標了一個VIO18_PMU:用於拉高。
以上是我看資料過程當中,以爲應該掌握的Camera硬件基礎知識!
參考文檔
1.MTK 資料