圖1所示的設計實例是一種能夠在大動態範圍內產生RGB三原色的顏色檢測器,對機器視覺應用來說這是一種很有用的特性。該電路透過自動曝光控制達到這個目的。這樣,在一定範圍光強內,物體的RGB值就能保持不變。

20170613TA01P1 圖1 具有自動曝光控制功能的RGB感測器。

圖中的三個共陰極RGB光電二極體(U1)採用反向偏置,並在μC(微控制器)將RES驅動為高時,透過三個N溝道的MOSFET(M1,M2,M3)預充電到VR(典型值為0.5V)。復位之後,節點R、G和B上的電壓開始增加,並線性正比於每個顏色分量的光強。這些訊號透過有線或連接輸出饋送給三個比較器(U2)。達到閾值VTH(典型值為2.6V)的第一個訊號透過反相器U3A使SH有效,進而選通採樣——保持放大器U4。

保持電壓RH、GH和BH由Arduino Nano轉換後作進一步處理。類比數位轉換可以不用U4而單獨由μC完成,但後續轉換將在訊號間引入採樣誤差。對較亮的訊號來說這種誤差比較大,因為具有較高的轉換速率。作為替代方案,可以使用具有至少三個ADC的μC。

D1給比較器增加了很大的遲滯後,D2允許Arduino透過下拉節點T2並保持RGB訊號來確定最長曝光時間,這個功能對於保證感測器的固定工作速率非常必要。圖2顯示了訊號時序。在時間點t1,當R=VTH時,比較器U2A拉至低電平,保持三電壓[RH,GH,BH],並在處理結束時(TADC)由μC完成轉換。在時間點t2——最長曝光時間結束時——由μC將SH1置低,並完成輸入訊號的轉換。

20170613TA01P2 圖2 時序圖。

總之,R、G和B中的最亮訊號決定了曝光時間(t1),因此任何訊號上都不會發生飽和。這種訊號壓縮在使用8位元ADC時支援約100dB的動態範圍。另外,為了達到這樣的性能,不必調整任何電路參數。

圖3解釋了如何透過自動曝光控制功能獲得高的動態範圍。對於某個給定的目標和每個光照強度,總有一個曝光時間可以保證三色電壓[RH,GH,BH]保持不變。

20170613TA01P3 圖3 在兩種不同光線強度下捕獲的,以相同目標為基準的兩組RGB三色例子。

[R1,G1,B1]是亮訊號,在Ta點採樣,而[R2,G2,B2]是暗訊號,在Tb點採樣。因為[R1,G1,B1]Ta= [R2,G2,B2]Tb,因此物體的色度與光線強度無關。

雖然市場上有高度整合、數位介面的RGB感測器(比如安華高的APDS-9950,AMS的TMG3993),但它們都無法實現自動曝光功能,因此可能要求多次曝光和μC干預才能實現這樣的功能。