图1所示的设计实例是一种能够在大动态范围内产生RGB三原色的颜色检测器,对机器视觉应用来说这是一种很有用的特性。该电路透过自动曝光控制达到这个目的。这样,在一定范围光强内,物体的RGB值就能保持不变。
图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置低,并完成输入讯号的转换。
图2 时序图。
总之,R、G和B中的最亮讯号决定了曝光时间(t1),因此任何讯号上都不会发生饱和。这种讯号压缩在使用8位ADC时支持约100dB的动态范围。另外,为了达到这样的性能,不必调整任何电路参数。
图3解释了如何透过自动曝光控制功能获得高的动态范围。对于某个给定的目标和每个光照强度,总有一个曝光时间可以保证三色电压[RH,GH,BH]保持不变。
[R1,G1,B1]是亮讯号,在Ta点采样,而[R2,G2,B2]是暗讯号,在Tb点采样。因为[R1,G1,B1]Ta= [R2,G2,B2]Tb,因此物体的色度与光线强度无关。
虽然市场上有高度整合、数字接口的RGB传感器(比如安华高的APDS-9950,AMS的TMG3993),但它们都无法实现自动曝光功能,因此可能要求多次曝光和μC干预才能实现这样的功能。
(来源:EDNC姐妹网EDNTaiwan)