講的比較明了,內容很短但言簡意賅
通過閱讀本文,可以使你快速地了解線性CCD的工作原理、圖像的采集方法以及一些常見問題。本文還將給出線性 CCD的編程方法以及基于亮度反饋的編程思路。
1. 與攝像頭CCD 的區別
我們常說的攝像頭CCD 模塊通常使用的是面陣CCD芯片,一般以OV 系列面陣 CCD 最為常用。而TSL1401屬于線性 CCD,也可以叫做線陣CCD。與面陣CCD相比,線性CCD 最明顯的特點就是其只能采集一行的可視像素。在智能車競賽中,攝像頭組使用的是面陣 CCD,而光電組則必須使用線性CCD。同樣是看一段賽道的圖像,兩種 CCD模塊看到的圖像如圖 1所示。
0.png (11.32 KB, 下載次數: 131)
下載附件
2018-12-9 02:05 上傳
由圖 1 可見,左邊圖像為面陣 CCD 采集的二維圖像,它的分辨率為 m*n,而右側的圖像為線性CCD采集的一維圖像,分辨率為p*1。其中 p為線性 CCD器件的最大像素數,TSL1401的像素數為128,因此可以將右圖紅框內的線分為128 個點。
2. 線性CCD 工作原理
在 TSL1401的官方技術文檔中已經詳細描述了線性CCD 的工作原理。但是該文檔是全英文的,而且講的大部分內容與實際使用無關。這里筆者將為你簡明扼要的解釋它的工作原理與要點。
0.png (38.06 KB, 下載次數: 129)
下載附件
2018-12-9 02:05 上傳
2.2. 功能描述
TSL1401線性CCD傳感器包含 128個線性排列的光電二極管。每個光電二極管都有各自的積分電路,以下我們將此電路統稱為像素。每個像素所采集的圖像灰度值與它所感知的光強和積分時間成正比。以上名詞所對應的物理量綱為:
灰度值:輸出電壓 Vout;
光強:器件對給定光波長在電壓上的反應Ve;(Ve=V/(μJ/cm2)* μW/cm2)
積分時間:即曝光時間,tint。
那么這 128 個像素是怎么進行采集并輸出的呢,這就用到了 SI 和 CLK 信號。根據表 1可以簡單的了解它們的功能。在 128個像素之外,還有一個開關邏輯控制和移位寄存器電路。SI通過該電路,控制每一個像素的積分和復位操作;CLK 通過該電路控制每一個像素電壓的依次輸出。TSL1401內部的模塊圖如圖 2所示。
0.png (77.25 KB, 下載次數: 132)
下載附件
2018-12-9 02:06 上傳
圖中可以看到上面提到的像素電路、開關邏輯控制和位移寄存器電路。從圖中我們還可以看到一個Gain Trim,該模塊對傳感器輸出的電壓進行增益調整,因此從AO引腳輸出的電壓無需再接其他運放,直接接入單片機的 AD 輸入引腳即可。每個像素的值可以在 CLK 的下降沿時從AO采集。
3. 積分時間or 曝光時間
如果你閱讀了 TSL1401 的英文技術文檔,經常會看到積分(integration)這個詞,而上一節我們也說了,像素的輸出值與積分時間成正比,其實這里所說的積分時間就是我們熟知的曝光時間。這個曝光時間的概念和相機中膠片的曝光時間是一樣的。曝光時間是指底片的感光時間,曝光時間越長底片上生成的相片越亮,相反越暗。線性CCD的曝光時間也是這個原理。
0.png (32.31 KB, 下載次數: 108)
下載附件
2018-12-9 02:07 上傳
TSL1401技術文檔中關于積分時間做了大量說明,其實歸根結底可以由圖 3表示。圖中第19個CLK到下一個SI開始的這段時間,就是CCD 的積分時間,即曝光時間。之前的18個CLK的時間為積分器的復位時間。
小提示:在每個SI信號之后采集到的像素均是這個SI 信號之前所曝光得到的圖像。 如果用戶提供的CLK頻率足夠快(最大8MHz),那么前 18個CLK的時間可以忽略不計,TSL1401 的曝光時間可以近似為兩個 SI 信號的間隔時間。而一般情況下,即使 CLK 頻率為8MHz,單片機的AD轉換時間也達不到那么快。
3.2. 關于曝光時間長短討論
根據 TSL1401 技術文檔的提供的數據,該器件的最大曝光時間為 100ms,即無論你實際曝光多長時間,只要超過 100ms,其圖像效果和100ms是一樣的。那么如何選擇合適的曝光時間,就成了需要面對的問題。
即使是相同的物體,在不同的光線環境下得到的圖像是不一樣的。從理論上講,在光線較暗的環境中,應該增加曝光時間,以換取亮度合適的圖像;在光線較強的環境中,應該減少曝光時間,以防止圖像出現飽和現象。
但是對于采集變化較快的圖像,例如在智能車的應用中,應該避免增加曝光時間。原因有兩個:
一、增加曝光時間意味著圖像采集周期變長,不利于系統的控制。說白了就是采集周期變長,系統控制的反應能力就變弱;
二、增加曝光時間會使圖像變模糊,不利于圖像處理。這個道理也和相機一樣,相機的快門越快,越適合捕捉高速運動的圖像,反之則捕捉的圖像很模糊! 當然如果你用來采集變化較慢的圖像,或者是靜止的圖像,則沒有曝光時間長短的問題。
4. 常用的編程方法
由于線性CCD只需采集 1行像素即可,因此它的編程方法相比面陣CCD更為簡單,唯一需要處理好的就是曝光時間的長短以及閾值的選擇。
常用的曝光方法有兩種,分別是單次曝光法和連續曝光法。
4.1. 曝光方法分類
單次曝光法:這種方法適用于采集周期不固定的情況,即首先利用一個 SI 周期來曝光CCD,緊接著在下一個 SI 周期對 128 個像素進行依次采集。在前一個SI 周期內,必須輸出129 個 CLK 以丟棄沒用的 AO 輸出,曝光結束后的第二個 SI 周期內采集的 AO 輸出才是正確的。
該方法需要在兩個 SI 信號之間添加延時函數來控制曝光時間。缺點是占用 CPU 運行時間來進行曝光,即在曝光期間內 CPU只能處于等待狀態。 連續曝光法:該方法的采集原理與單次法相同,只不過該方法利用單片機的周期定時器來控制SI 信號的間隔,即曝光時間。該法通過設置單片機 PIT 的中斷周期時間來獲取不同的曝光時間,并在PIT中斷函數內進行 AO 的數據采集。 相比單次采集法,連續采集法可以節約 CPU時間,利用 PIT周期中斷定時器實現曝光延時。
4.2. 像素采集方法
不管采用哪種曝光方法,其針對像素輸出值 AO 的采集方法是一樣的,如圖 4 所示。使用者需要在SI持續高電平 20ns后產生第1個 CLK信號,并在每個 CLK信號的下降沿時采集AO 引腳的輸出的電壓值。在采集了 128 個像素后,還必須生成第 129 個 CLK 以結束本次采集。在第129個 CLK之后到下一個 SI信號之間的時間就是下次采集的曝光時間(這里說的曝光時間是忽略了第19到129個CLK之間的時間) 。
完整的pdf格式文檔51黑下載地址(共8頁):
快速上手tsl1401線性ccd.pdf
(485.42 KB, 下載次數: 317)
2018-12-9 01:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|