1. 程式人生 > >CMOS Sensor除錯經驗分享

CMOS Sensor除錯經驗分享

CMOS Sensor的除錯經驗分享
     我這裡要介紹的就是CMOS攝像頭的一些除錯經驗。
  首先,要認識CMOS攝像頭的結構。我們通常拿到的是整合封裝好的模組,一般由三個部分組成:鏡頭、感應器和影象訊號處理器構成。一般情況下,整合好的模組我們只看到外面的鏡頭、介面和封裝殼,這種一般是固定焦距的。有些廠商只提供晶片,需要自己安裝鏡頭,鏡頭要選擇合適大小的鏡頭,如果沒有夜視要求的話,最好選擇帶有紅外濾光的鏡頭,因為一般的sensor都能感應到紅外光線,如果不濾掉,會對影象色彩產生影響,另外要注意在PCB設計時要保證鏡頭的聚焦中心點要設計在sensor的感光矩陣中心上。除了這點 CMOS Sensor硬體上就和普通的IC差不多了,注意不要弄髒或者磨花表面的玻璃。

  其次,CMOS模組輸出訊號可以是模擬訊號輸出和數字訊號輸出。模擬訊號一般是電視訊號輸出,PAL和NTSC都有,直接連到電視看的;數字輸出一般會有並行和序列兩種形式,由於影象尺寸大小不同,所要傳輸的資料不同,資料的頻率差異也很大,但是序列介面的pixel clock頻率都要比並行方式高(同樣的資料量下這不難理解),較高的頻率對外圍電路也有較高的要求;並行方式的頻率就會相對低很多,但是它需要更多引腳連線;所以這應該是各有裨益。(筆者測試使用的系統是8bit並行介面)另外輸出訊號的格式有很多種,視訊輸出的主要格式有:RGB、YUV、BAYER PATTERN等。一般CMOS Sensor模組會整合ISP在模組內部,其輸出格式可以選擇,這樣可以根據自己使用的晶片的介面做出較適合自己系統的選擇。其中,部分sensor為了降低成本或者技術問題,sensor部分不帶ISP或者功能很簡單,輸出的是BAYER PATTERN,這種格式是sensor的原始影象,因此需要後期做處理,這需要有專門的影象處理器或者連線的通用處理器有較強的運算能力(需要執行影象處理
演算法
)。

  不管sensor模組使用何種資料格式,一般都有三個同步訊號輸出:幀同步/場同步(Frame synchronizing)、行同步(Horizontal synchronizing)和畫素時鐘(pixel clock)。要保證訊號的有效狀態與自己系統一致,如都是場同步上升(下降)沿觸發、行同步高(低)電平有效等。
  通過以上介紹,我們就可以根據自己的使用的系統選擇適合的sensor模組。要選擇介面對應(如果並行介面,sensor模組輸出資料bit位多於接受端,可以用丟棄低位的資料的方法連線)、資料格式可以接受或處理、pixel clock沒有超過可接受的最高頻率(有的是可調的,但幀率會受影響)、場同步和行同步可以調節到一致的sensor模組,這樣才可以保證可以使用。

  保證這些條件的正確性下,還要符合它的硬體電路要求,首要的是確定它的電源、時鐘、RESET等訊號是否符合晶片要求,其次要看所有的引腳是否連線正確,這樣保證外圍的電路沒有錯誤情況下才可能正確顯示影象。各個廠商生產的產品各不相同,一些廠商的sensor模組在預設狀態下就可以輸出影象,而有些廠商的sensor模組必須要設定一些暫存器以後才可以得到影象。區別是否可以直接輸出影象,可以通過檢測sensor 的輸出腳,如果三個同步訊號都有,資料線上也有資料,那一般就會有預設影象輸出,另外也可以跟廠商聯絡獲得有關資訊。如果沒有預設輸出就需要設定暫存器了,一般都是通過兩線序列方式(IIC匯流排使用頻率很高)設定暫存器。    

  攝像頭問題及解決辦法彙總
  一、名詞解釋
  1. 白平衡
  白平衡指的是感測器對在光線不斷變化環境下的色彩準確重現的能力表示。大多數拍照系統具有自動白平衡的功能,從而能在光線條件變化下自動改變白平衡值。設計工程師尋找的影象感測器應該配備了一個很好的自動白平衡(AWB)控制,從而提供正確的色彩重現。
  2. 動態範圍
  動態範圍測量了 影象感測器在同一張照片中同時捕獲光明和黑暗物體的能力,通常定義為最亮訊號與最暗訊號(噪聲門檻級別)比值的對數,通常用54dB來作為商業 影象感測器的通用指標。具有較寬動態範圍的 影象感測器可以在明光環境下提供更好的效能(例如,使用較窄動態範圍感測器在明光環境下拍出的照片會出現“水洗”或模糊的現象。)
  3. 工頻干擾 (Banding)
  Sensor在日光燈作為光源下獲取影象資料時會產生flicker,其根本原因是照在不同pixel上光能量不同產生的,所接受的光能量的 不同也就是影象的亮度的不同。
  由於CMOS sensor的曝光方式是一行一行的方式進行的,任何一個pixel的曝光時間是一樣的,也就是同一行上的每個pixel的曝光開始點和曝光的時間都是一模一樣的,所以同一行的所有點所接收到的能量是一樣的,而在不同行之間雖然曝光時間都是一樣的,但是曝光的開始點是不同的,所以不同行之間所接受到的能量是不一定相同的。 為了使不同行之間所接受的能量相同,就必須找一個特定的條件,使得每一行即使曝光開始點不同,但是所接受的光能量是相同的,這樣就避開了flicker,這個特定的條件就是曝光時間必須是光能量週期的整數倍時間。
  Banding由工頻干擾引起,交流電光源都有光強的波動,在中國交流電頻率是50Hz,光強的波動就是100Hz,週期10ms。如果camera曝光時間不是10ms的整數倍,那麼在不同的感光面接收到的光能量一定不一樣,體現在影象上就是有明暗條紋。 消除banding就得想辦讓曝光時間是10ms的整數倍!60Hz的交流電需要控制曝光時間為8.33ms的整數倍。
  以50Hz為例說明,實現這個有兩種辦法:
  1、設定曝光控制,強制為10ms整數倍變化,但是這樣會浪費一部分曝光時間,導致曝光無法用滿,在室內自然就會損失效能。
  2、修改楨率,使每楨影象分到的時間是10ms的整數倍,則可以用滿每楨曝光時間在,室內效果更好。修改楨率可以插入Dummy Line或者Dummy Pixel。這需要一點點計算,具體計算需要看sensor輸出Timing。
  例如把楨率設定為7.14fps,則每楨曝光時間是140ms。如果是15fps,則每楨曝光時間是66.66ms,如果強制曝光為10ms整數倍,最大即60ms,則有6.66ms無法參與曝光,損失效能。
  具體調整楨率方法得和sensor的FAE溝通,每個sensor都可能不一樣,不能一概而論。調整楨率還有個原則要注意,預覽一般不能低於 10fps,再低就很卡,常用14.3fps和12.5fps;抓拍不能低於5fps,否則用手就很難拍出清晰的照片,常用7.14fps。楨率是一個權 衡折中
  的選擇,高了曝光時間不夠,暗光效果太差,低了沒法拍照,容易虛。
  4. Lens Shading (color shading)
  5. Chief Ray Angle
  拍攝鏡頭和感測器之間的介面是整個可拍照手機系統中最重要 的介面之一。隨著鏡頭的長度變得越來越短,光線到達感測器畫素位置的角度也就會變得越來越大。每個畫素上都有一個微鏡頭。微鏡頭的主要功能就是將來自不同 角度的光線聚焦在此畫素上。然而,隨著畫素位置的角度越來越大,某些光線將無法聚焦在畫素上,從而導致光線損失和畫素響應降低。
  從鏡頭的感測器一側,可以聚焦到畫素上的光線的最大角度被定義為一個引數,稱為主光角(CRA)。對於主光角的一般性定義是:此角度處的畫素響應降低為零度角畫素響應(此時,此畫素是垂直於光線的)的80%。
  光 線進入每個畫素的角度將依賴於該畫素所處的位置。鏡頭軸心線附近的光線將以接近零度的角度進入畫素中。隨著它與軸心線的距離增大,角度也將隨之增大。 CRA與畫素在感測器中的位置是相關的,它們之間的關係與鏡頭的設計有關。很緊湊的鏡頭都具有很複雜的CRA模式。如果鏡頭的CRA與感測器的微鏡頭設計 不匹配,將會出現不理想的透過感測器的光線強度(也就是“陰影”)。通過改變微鏡頭設計,並對拍攝到的影象進行適當處理,就可以大大降低這種現象。
  改 變微鏡頭設計可以大大降低陰影現象。然而,在改變微鏡頭設計時,必須與鏡頭設計者密切配合,以便為各種拍攝鏡頭找到適合的CRA模式。相機的設計工程師應 該確保這種技術合作得以實現,並確保感測器與鏡頭CRA特性可以很好地匹配。為確保成功實現此目標,美光開發了相關的模擬工具和評價工具。
  由於光 線是沿著不同的角度入射到感測器上的,因此對於各種鏡頭設計而言,陰影現象都是固有的。“cos4定律”說明,減少的光線與增大角度餘弦值的四次方是成比 例關係的。另外,在某些鏡頭設計中,鏡頭可能本身就會阻擋一部分光線(稱為“暈光”),這也會引起陰影現象。所以,即使微鏡頭設計可以最小化短鏡頭的陰影 現象,此種現象還是會多多少少地存在。為了給相機設計者提供額外的校正陰影現象的方法,MT9D111中內嵌的影象處理器包含了陰影校正功能,它是為某些 特定鏡頭而定製的。 為了幫助設計工程師將感測器整合在他們的產品中,美光為其生產的所有感測器產品提供了各種開發軟體。通過使用這些軟體,相機設 計工程師可以簡化對各種晶片特性預設值的修改過程。每種變化的結果都可以顯示在一個PC監視器上。對於很多相機中用到的新型鏡頭,通過使用這個開發系統, 可以對校正鏡頭陰影和空間色彩失真進行引數設定。通過使用一個均勻點亮的白色目標,可以對設定響應過程進行簡單的試驗。軟體開發工具可顯示對陰影現象的分 析結果。之後,工程師就可以使用區域方法來應用校正值。關於校正過程的暫存器設定將儲存在開發系統中,以用於相機設計。
  6. Binning
  Binning是將相鄰的像元中感應的電荷被加在一起,以一個畫素的模式讀出。Binning分為水平方向Binning和垂直方向 Binning,水平方向Binning是將相鄰的行的電荷加在一起讀出,而垂直方向Binning是將相鄰的列的電荷加在一起讀出,Binning這一 技術的優點是能將幾個畫素聯合起來作為一個畫素使用,提高靈敏度,輸出速度,降低解析度,當行和列
  同時採用Binning時,影象的縱橫比並不改變,當採 用2:2Binning,影象的解析度將減少75%。在手機小螢幕上Preview時建議用這種方式 而不是通過DSP來做抽點的動作。
  7. IR cut (濾除紅外光)
  sensor不僅對可見光譜感光,而且對紅外光譜感光. IR就是infrared紅外光, 如果沒有IR-Cut Filter,圖象就會明顯偏紅,這種色差是沒法來用軟體來調整的,一般IR-Cut在650+/-10nm,而UV,紫外光的能量很小,一般就忽略了.
  未加IR cut 拍攝的照片,可見影響最大的是影象的色彩.
  二、影象感測器拍攝問題彙總
  1. 出現橫向條紋
  比如出現橫向的紫色或綠色條紋。一般情況下是時序有問題。
  例項圖如下:
  硬體改善了MCLK和PCLK線,現在已經基本沒有綠線了.
  走線的時候要注意 MCLK、PCLK還有幀同步(vsync)和行同步(hsync),基本上市面上的晶片這些訊號都要分開走線,最好加GND shielding.
  總結:
  現象: 閃橫的紫色或綠色干擾線
  原因: Hsync和高速線距離太近太長, 產生了耦合(10cm的高速線產生約5pF左右的耦合電容), 導致HSYNC不能迅速拉昇至90%的區域,相位不同步,最終資料採集有錯位。然後因為YUV演算法的作用,引起綠線和紫色的閃線。
  解決辦法:絕對禁止將HSYNC,PCLK,MCLK這三根線擠在一起走線。 1)HSYNC夾在低速線SDA和SCL之間
  2)PCLK和MCLK如果一定要貼著走線,最好拉開一點距離,當中夾一根地線。
  2. 顏色和亮度不連續
  一般是資料線存在短路、斷路和連錯的問題。影象會出現類似於水波紋的等高線或大面積色偏. D訊號丟失畫面整體也會色偏,比如RGB565,D0~D4均斷路影象會因藍色和綠色訊號丟失過多而呈現紅色。
  1)一根資料線虛焊導致的等高線及顏色失真例子
  等高線
  正常的影象
  2)兩根資料線和其他裝置複用導致的偏綠問題
  8根資料線中有兩根被其它裝置複用了,所以這兩跟線沒出資料。
  3)資料線接反的情況:
  4)資料線錯位
  例1. 好不容易把OV2640初始化了,但是預覽的影象卻不對,附件是我capture的一張圖(我的一根手指頭-_-|||)。 我用Photoshop分析了一下上面的圖片,發現只有G通道有訊號,RB通道全黑。
  我測了一下2640的10根資料線與CSI的16根資料線的連線關係,發現硬體工程師布板時弄錯了將sensor的10根資料線D[0]~D[9]連到了CSI的D[4]~D[15],而CSI取得的是D[8]~D[15]的8bit資料,結果造成了資料位的錯位與丟失,造成了以上影象的狀況。
  5) 資料線問題例圖彙總
  第一張是亮度很低的情況下抓到的原始資料影象
  第二張是將光圈調大以後出現的現象
  3. 影象中只有紅或綠顏色
  Y和U/V的順序不對。將攝像頭的取樣格式由CbYCrY改為YCbYCr後,顏色就對了。 示例圖片如下所示:
  4. 橫向無規則條紋
  5. 豎向無規則條紋
  6. 偏紅
  7. 熱噪聲.
  過一段時間噪點逐漸增多.
  開始工作時正常的,,沒有色點,工作過一段時間後,模組開始出現色點,而且色點越來越多. 如上圖所示. 原因:
  工作一段時間sensor溫度會提升,溫度升高會加劇半導體材料的本徵激發。這會導致sensor S/N降低,noise加劇。此狀況與sensor材料關係較大,後端或軟體處理可以減緩此狀況但不能根除。這種叫hot pixel,是晶片過熱造成的。
  8. 模擬電壓過低或不穩定
  模擬電壓過低導致很強的光才能感應影象,並且偏色。
  例1如下圖所示,只有天花板上的燈管才感應成像,其他部分很模糊。
  例2, 模擬電壓過低導致豎向條紋。提高AVDD後問題解決。
  例3,在除錯 OV7725時發現,剛開啟攝像頭時影象有條紋,開了一段時間後圖像就正常了,有沒有哪位知道是什麼原因;不正常的影象如下。查出問題了,是模擬電壓不穩導致的。
  9. 背部材料太薄導致“鬼影”
  補強的表面要用亞光黑油,防止漏光。
  例1. OV2715異常影象,感測到了背面電路板的漏光,影象如下:
  例2,GC0307 影象異常,如下圖。 中間有條線,像分層那樣的線,正常情況是沒有。格科微的叫我們四周都補膠,就解決啦。
  10. 由噪聲導致的影象橫紋
  在新版的電路板中,將CMOS移到離主IC較遠的地方現象就消失了,之前是放在主IC的背面,猜測是主IC對CMOS造成的影響,比如在模擬電壓上引入噪聲。 示例1 如下圖所示。
  示例2:
  cmos為ov的30w畫素,型號為ov7141。使用時出項很明顯的水平方向的橫波紋。 採用3.3v和2.5v供電,其中VDD_C和VDD_A是由2.5v供電,pcb上直接將他們連在一起接2.5v。直接鋪地,沒有劃分模擬地和數字地。
  使用外接電源對AVDD供電,沒有出現上述現象。可以確定是由主機板的電源噪聲引起的
  改板後效果還可以,主要改動有:
  1) 原來是兩層板,現在用的是4層板,有專門的電源層
  2) LDO輸出改用大容量的鉭電容濾波。示波器測量電源紋波 比以前小了。
  11. 工頻干擾
  在室外自然光下如果不會出現,那一定是50/60Hz引起的flicker;
  12. Lens校準引數未調好導致的中間較亮的情況
  用OV9650攝像頭模組拍的圖片,畫素是800 X 600;中間較亮
  從硬體來說,可能是lens set與sensor不匹配,特別是CRA,你得看看datasheet兩者是否差距太大。
  軟體上,可能是lens correction沒調好(個人感覺樓主狀況屬此列),設定好correction區域然後將gain值拉高讓中心與周邊亮度差異減少,如果此時整個畫面過曝,可以將整體gain值再往下調(也可以設定曝光引數來減少畫面亮度)。
  按以上方法調整OV9650的幾個與lens correction有關的暫存器的值,使中心和四周的亮度均勻!
  13. 通過自動增益控制降低噪點
  在除錯OV7675時,影象有左邊是模糊的,右邊正常,圖片如下:
  將 AGC 調小之後不會出現了,但是沒之前亮了.效果如下:
  14. 自動曝光計算出現的偏綠現象
  OV7670:
  在室外光線較亮拍攝時,畫面顏色任何時候都正常。
  在室內光線較暗拍攝時,剛開啟攝像時拍攝的畫面偏綠,幾秒鐘之後就會恢復正常。
  屬於正常現象。
  OV7670 30W 計算AE時間比較長。在計算AE的過程中容易出現偏色現象。 可以丟幀或者延時解決這個問題
  15. 時序不對導致的影象上部或下部出現條紋 因Vsync偏移出現問題的例子如下圖所示。
  問題解決方法:
  camera 模組的timing調整不了。修改AP的camera控制,使垂直同步偏移12 rows. 影象輸出正確。
  16. lens鏡間反射導致的眩光
  這是一顆5M的模組拍攝的圖片,天花板的燈在視場外邊緣,圖中為何出現紫紅色的光?是什麼原因造成的?
  屬眩光現象,一般是由於多片lens鏡間反射造成。通過改善鍍膜製程,增加鏡片透射率可以緩解次問題。
  另外,這張照片光心偏到左邊去了,holder偏移?lens set circle夠大啊,這種偏移都能cover掉。
  多謝各位關注,問題已經解決,此現象是lens組裝到模組上面的機構問題產生。
  17. pclk與vsync佈線干擾
  在除錯一款手機攝像頭(OV7675)時,發現畫面垂直不同步,主要是畫面的下半部分跳動很厲害,上半部分是好的.
  問題已經找到了,幀同步VSYNC和PCLK佈線有干擾
  18. PCLK取樣邊沿選擇不對導致的噪點
  例1,圖中有噪點
  轉換了一下Pclk的極性,這個躁點的問題得到了很好的解決。
  例2. ov7675拍出來的照片發綠。可能是PCLK取樣邊緣不對,可以試試將pclk反向。也可能是資料線缺失問題。
  例3, 如下圖所示。通過修改pclk的上升沿和下降沿就解決了。
  主要有兩點:
  1.修改PCLK的上升沿的斜率。 2.或者修改I/O的上升沿的斜率。
  原因是不同廠家的模組layout的走線的長短,FPC的厚薄,都可能影響到PCLK的獲取, FPC的公差過大,或者頭板的製作是否有什麼問題,都可能引起這個問題。 如果可以通過硬體的方式改變PCLK上升沿的斜率,也可以解決這個問題。
  來結案了,通過修改pclk的上升沿和下降沿就解決了
  19. FPN問題
  白天或亮一點的地方是沒有這個問題,就只有在低照度下使用閃光燈拍照會有這樣的情形。
  FPN( fixed pattern noise), 無解。
  20. 臺階效應
  gain過大,把digitalize的量化步距,乘大了,就出現臺階效應。還與內部的量化精度不夠,有關係。
  另外,若不同的顏色通道的gain不同(白平衡計算出的R/G/B_gain不同),會出現color phase error。
  示意圖,如下,只畫了B、G兩個通道,B_gain比G_gain大,會造成灰階的景物,有的地方B大,有的地方G大,就會出現顏色不斷交替。
  結合上臺階效應,可能就會表現成的這幅圖
  21. 因電源問題產生的豎向條紋
  現在已經確定是電源的問題了,我在每個電源都並上了一個大電容,條紋消失了。現在我是用CPU的I/O採集的,效果很好。
  22. Lens與攝像頭不匹配導致的部分偏紅現象
  圖中下方居中的地方偏紅。ov工程師將LENS CORRECTION調到了極限問題還存在,確認是LENS與SENSOR不匹配造成的,模組廠家更換了鏡頭後問題基本解決。
  我下載了你的圖片發現有以下問題:
  1.首先你的照片awb就不對,本身這張照片就沒有達到白平衡. 2.照片邊界鋸齒現象很嚴重.
  3. 色偏問題,你首先要了解一下你的sensor的Lenschief ray angle角度是多少,還有lens的CRA是多少.如果lens的CRA小於sensor的.一定會有偏色的現象.要麼換lens.如果市場上找不合適 的Lens,就說明sensor 本身品質不是很好.
  4.理論上lens shading是解決lens的通透率不一樣的問題.但也許各家回加自己的演算法,可以一試.
  5.如果Lens 和sensor都已經固定,可以人為想一些辦法來減少色差. a.可以將顏色調淡點,這樣就不太明顯
  b.做AWB校正,排除不同sensor對RGB感應的不同,引起AWB曲線走的不準.
  CRA通俗的講是lens的主軸光線和對成像有貢獻的最大的如射光線的夾角,一般Lens廠商會提供CRA曲線,因為Lens從中心到四周的CRA是不一樣的.
  偏紅除了SHADING外可能還是要調AWB,因為圖片的下方其實就是一片白色,sensor在照白色的地方出現了偏紅,再試試調整一下AWB,或者在燈箱裡看看R,G,B的三條線是
  否重合!
  如果是AWB的問題,那為什麼影象還有白色區域呢?AWB是不會調的有的偏色,有的不偏,不知道的就不要亂說。
  如果是CRA不比配,那出現的偏色應該是對稱的,下面偏紅則上面一定會偏紅。 個人覺得應該是漏光造成的,不是barrel就是通光孔那裡引入了雜光。
  23. DOVDD28走線過細過長以及地線不合理 現象:花屏
  原因:2.8V電壓因為導線上的電阻吸收了電壓,導致驅動能力不夠。地線被拉高併產生毛刺現象,影響訊號完整性和資料採集。
  24. DVDD電壓有問題
  圖中的高光部分是辦公室窗戶。其它部分全黑,沒有任何細節? 是什麼原因?AWB?AGC?還是對比度啊?
  問題解決了,是DVDD電壓不對。
  datasheet寫的1.8V,問了FAE結果是1.2V。
  25. 增益小導致的白色條紋問題
  當對著白色的物體時,剛進入預覽時,會出現下圖中顯示的條紋,當移動手機時,則這種條紋消失,以後也不會出現,只有再次進入預覽時可能會出現,請教各位大蝦到底是什麼原因?
  這個問題,現在已經解決了,加大了初始化程式碼中的增益之後,就可以了。
  26. 幀率問題導致的影象錯位
  Sensor為0v9655 在拍sxga 130萬影象有時會出現影象錯位的問題(如圖),vga的則不會出現,幫忙分析。謝謝!
  幀率太高了,暴光時間短了.可以調整VBLANK,HBLANK來解決 再降低FPS到5,試試,你的buffer速度呢?? 謝謝大家!在我這裡降低幀速率比較有效。
  27. 電源噪聲
  OV9653出現如圖所示的橫向紋路。
  問題已經解決,電源問題,AVDD加鉭電容就好了。估計是電源紋波比較嚴重導致的。