时间:2024-05-22
罗志远,张 涛,许 骏
(1.中国科学院云南天文台,昆明 650216;2.中国科学院大学,北京 100049)
照度计是一种测量环境光照强度的测量仪器。照度计应用非常广泛,物理,摄影,化学,工程,天文学,天体物理学等诸多领域以及日常的生产生活都需要对照度进行测量。目前,无论是建筑室内照明、还是机动车的内外照明、工矿企业的工作环境照明等各大照明场所基本上都需要使用照度计进行照度检测,以保证人们有更加舒适的生活工作环境,提高工作效率,减少不必要的光污染[1]。此外,在科研领域大面积光源如积分球等的均匀性测量也会用到照度计[2]。
本设计是以国家基金面上项目“CMOS响应非均匀性实时校正系统的设计研究”为背景而展开的,在基金项目中需要对CMOS相机的性能做相应的测试,其中需要用到积分球。在理论上积分球的输出光是均匀的,但由于积分球内部的反射材料喷涂不均匀使其很难百分之百的保证输出光源的完全均匀,在实际测试使用的过程也发现了这种不均匀性现象的存在。积分球输出光源的不均匀性给整个测试过程带来了额外误差,降低了测试精度。因此设计一套检测装置能够从积分球输出的面光源中挑选出一块相对稳定以及均匀的区域,为项目中的CMOS相机测试系统提供优质光源是非常必要的。首先照度计要在三维电动位移台的配合下对光面做二维截面扫描,从而测量出整个出光面的均匀情况。在测试过程中主要面临两个问题:一是照度计和整个测试系统的整合。目前在售的照度计多为手持式,无法在位移平台上进行固定。此外,所有的测试都是在封闭的暗室内进行,无法对照度计的数据进行读取和保存。二是测试效率。目前的照度计多为单通道照度计,当需要测量的面积较大,测量点较多时,需要反复调整电动位移台,而为保证系统的稳定性,位移台一般移动速度都较慢,这势必大大增加光源截面的扫描时间。在这里我们设计了4×4结构的照度计(具体结构将在下文阐述),它可大大提高光源截面的扫描速度,这一点在实验中也得到了证实,此照度计可以满足CMOS相机测试系统的要求。
系统设计原理框图如图1所示,由5个单元构成:①光电转换单元;②多通道切换单元;③嵌入式控制单元;④网络传输单元;⑤电脑采集单元。
图1 系统原理框图
在光电转换单元中,首先利用光敏二极管将探测到的光信号转变为电流信号,然后通过积分式 A/D 转换器对电流进行积分,最终将积分结果转换为数字量,并将其存入模数转换寄存器中[3]。当一个积分周期结束之后,积分式A/D转换器将会继续进入下一个积分过程。多通道切换单元,简单来说主要实现 4×4 个光电转换单元的I2C总线复用。使STM32通过一个I2C接口完成多个光电转换单元的数据采集。嵌入式单元,主要完成整个系统的逻辑以及控制胶合,起到对传感器以及PC间的连接和数据中转作用。网络传输单元,主要是完成通信接口间的转换,实现了STM32的SPI接口向以太网接口的转换,以便于将照度计与整个测试系统进行整合。通过采用TCP/IP协议,实现照度计及整个测试系统的远程控制。电脑采集单元,主要就是实现数据的采集、分析和处理,并将结果进行显示及保存。
主要任务就是设计一个多通道前端探测器,并将采集的数据传输回STM32微控制器,在STM32内部进行数据整理和分析,再经过网络模块传回电脑客户端显示。为了表现整体性和便于检测调试,设备制作时采用了模块化,将探测器模块、控制模块以及网络传输模块分别放置。将多个模块同时放在多块电路板中,这样方便各个模块的检测与组装,故障发生时也可以迅速发现故障以及修复。
前端探测器选用了16个TSL2561芯片作为光强传感器,一个TCA9548A芯片作为选通开关。TSL2561芯片是TAOS公司在2009年推出的一种光照强度数字转换芯片,该芯片可以将光照强度在内部进行模数转换后直接以数字信号输出。并且具有I2C接口,用于编程控制和数据传输。此外它还具有低功耗、宽量程、高速数据传输等优点[4]。,其内部结构如图2所示。
图2 TSL2561内部结构
TSL2561芯片主要由三部分构成:①两个光敏二极管;②两个积分式A/D转换器;③I2C接口。
①通道0连接了用于检测可见光和红外波段的光敏二极管,通道1连接了用于检测红外波段的光敏二极管。使用双光电二极管结构可有效克服硅探测器响应与人眼亮度感知结果之间的差异性问题。两者之间的差异性主要是由于硅探测器对人眼无法感知的红外波段有着强烈的响应,所以当入射光具有较高的红外分量时,将会导致人眼感知与实际测量之间的显著差异。修正两者之间的误差一般采用通道1的输出补偿通道0的输出上光的红外分量的影响。
②光强传感器A/D输出值在0~216的范围内可产生接近人类视觉感知的响应,内部的两个积分式A/D 转换器,主要用于将光敏二极管产生的电流模拟量转换成数字输出信号,并存入芯片内部各个通道的ADC寄存器中。数字信号输出表示当前通道的光强测量值,可以作为STM32单片机的输入[5]。
③STM32单片机可以通过I2C接口获取光强传感器的AD值,通过调整TSL2561芯片地址引脚上的电平可以获得不同的通信地址,就本芯片而言一共可以提供3个I2C从机地址,如表1所示。由于TSL2561光强传感器只能提供3个I2C从机地址,这意味着STM32只能最多连接3片TSL2561光强传感器芯片。
表1 从机地址选择
如何解决STM32同时携带16片芯片的问题呢,我们只能另辟蹊径,采用多路复用芯片TCA9548A进行桥接,来完成16路芯片复用同一个I2C接口。该芯片的结构如图3所示。TCA9548A芯片有8个通道,因此理论上一共可以携带3×8=24片光强传感器芯片。在实际设计中,只用了16片光强传感器芯片,因此每个通道只需连接两片即可。我们选择了接地的0101001地址和接高电平的1001001地址分别作为光强传感器芯片的从机地址。这样可以通过编写程序来控制某一个通道的通断来连接相应的光强传感器。
TCA9548A八个通道,每个通道连接两个不同地址的光强传感器芯片,这样可以将16片光强传感器芯片连接在TCA9548A选通芯片上,由于选通芯片的I2C接口采用了开漏输出结构,因此需要提供相应的上拉电阻[6]。制作电路板将这些芯片集成在一起形成前端探测器模块,探测器模块电路如图4 所示。通过单片机的SCL和SDA口与探测器模块中TCA9548A对应的SCL和SDA连接,通过输入不同的地址,实现一个单片机对不同光强传感器的访问。
图3 TCA9548A功能框图
图4 探测器电路图
这里采用的微处理芯片是STM32F103C8T6,该芯片具有性能强劲、接口丰富的特点,并支持多种通讯协议和外部设备,被广泛使用于各种消费电子以及嵌入式系统中[7]。对于本系统而言,主要使用了其PIO接口、I2C接口以及SPI接口,其中PIO接口主要完成各个模块的初始化、片选、以及中断控制等功能。I2C接口选用了单片机的PB10引脚和PB11引脚作为时钟线(SCL)和数据线(SDA),用于向探测器模块发送相应的控制命令以及数据采集的工作。SPI接口选用单片机的PA4~PA7引脚分别作为SCSn、SCLK、MISO和MOSI引脚。设置控制模块的SPI接口在主机模式下工作,向网络模块发送控制命令,模块配置信息,以及接收网络模块的返回数据等工作。
网络传输模块选用的是一款基于WIZnet W5500芯片的以太网模块。该模块具有性能出色、性价比高等特点[8]。模块集成硬件化TCP/IP协议,免去了在单片机中进行软TCP/IP协议堆栈的开发,可以极大的缩短整个开发的过程。只需对该模块通过SPI接口进行相应的套接字设置,例如本地IP,监听端口,协议类型等基本信息便实现了以太网的应用。模块通过单片机提供3.3 V电源供电,并工作在服务器模式下,连续监听来自计算机的控制命令,以及向计算机和单片机发送相应的反馈数据。此外,W5500芯片提供了外设串行接口(SPI),可以更方便的与控制器模块连接。
网络传输模块通过SPI协议与控制器模块通讯,其连接方式如图5所示,SCSn是片选信号,由控制器模块控制,当片选信号为使能信号时,才能对网络传输模块操作。SCLK是时钟信号,由控制器产生时钟脉冲,MOSI和MISO基于此时钟脉冲完成数据传输。MOSI是主机输出从机输入,MISO是主机输入从机输出[9]。SPI有4种工作模式,这里选择的模式0,即MOSI和MISO信号无论发送还是接收始终是从高电位到低电位有效[10]。探测器模块的数据经过控制器模块整理和分析后,将经过网络传输模块传回电脑客户端。
图5 控制器模块与网络传输模块硬件连接图
最后将分别调试好的探测器模块、控制模块以及网络传输模块进行组装,并固定住在黑色盒体内。多通道照度计具体结构如图6所示。
图6 多通道照度计
软件系统分成上位机(PC 机)软件和下位机(单片机)软件2个部分,软件系统流程图如图7所示。
图7 软件系统流程图
上位机软件是基于C#编程语言在windows 7平台上利用Microsoft Visual Studio软件开发的,采用多线程技术实现了对多通道的选择以及对光强数据的采集、汇总、整理、显示和保存等工作,其操作界面如图8 所示。在上位机软件上可以快速选择所用的探测器通道,实时返回光强传感器的CH0和CH1的数据,但是要以Lux为单位,还要根据CH0 和CH1 的数据进行计算。各个通道计算所得的光照强度将实时显示在用户界面上,并可以通过保存按钮将数据保存在文本中。
下位机软件的主要功能包括:I2C总线控制、多通道的选通、传感器阵列16点数据的循环采集、数据的汇总整理、SPI总线控制、数据的打包发送等。
PC 机与单片机之间的通信通过网络模块的硬件TCP/IP协议栈转SPI协议,数据发送为“1 bit start+8 bit data+1 bit stop”10位帧格式,无奇偶校验和硬件数据流控制。
图8 上位机软件操作界面
搭建实验平台进行仪器的实际测试,测试环境为温湿度可控的黑色暗室,通过加热机、半导体制冷机等控制箱体内的温度;通过干燥机控制箱体内的湿度,使其在测试过程中保持恒温恒湿。本次测试的环境温度为(20±1)℃,环境湿度为(50±5)%。测试使用的光源为卤素灯,通过积分球产生均匀光,将照度计固定在三维位移平台上,通过控制位移平台的运动将照度计放置在距离积分球出光口20cm的地方,并将前端探测器与积分球出光口中心对齐[11]。在采集数据之前首先打开光源,为了减少电源波动对测量的影响,0.5 h之后再进行数据采集[12]。在数据采集过程中通过调整光源亮度大小,来获取各个传感器CH0和CH1的数据。通过这些数据的拟合对多通道照度计各个传感器进行定标。
以通道1以为例,通过调节电流来改变光源亮度,在每个电流值下采集20组传数据,每组数据包含3个参数,分别为:L(标准设备测量值),CH0(光强传感器通道0测量值),CH1(光强传感器通道1测量值);再取每个参数的均值,最终可得各参数均值随电流的变化数据如表2所示。
根据光强传感器芯片通道0和通道1的特性,可以给出如下拟合模型。
L=aCH0+bCH1+c
(1)
a、b、c为待定拟合系数。整个拟合过程如下,取所有数据点的误差平方和最小,寻找数据的最佳函数匹配,如式(2)所示,
(2)
通过取各偏微分项为零,来获得f(a,b,c)的极值。
(3)
(4)
(5)
表2 L与CH0和CH1的数据表
图9 光强L与CH0和CH1的拟合曲面
通过MATLAB进行拟合计算,经过求解a=0.252 5,b=-0.333 9,c=11.34。此时,确定系数为0.999 9,拟合图像如图9所示。
同理,其他通道也用此方法进行拟合,得出系数的值。将各个通道拟合所得的公式,写入上位机软件内部,经过公式计算即可得到真实的照度值。此外,不同通道传感器的经过统一拟合定标后,也解决了因器件个体差异而导致响应度不同的问题。
根据拟合的公式可以计算出多通道照度计测量的照度值。通过采集多组数据,多通道照度计照度值与实际照度值对比如图10所示,通过对比可以看出照度计的测量数据与实际值没有明显的差异。
图10 测量数据与实际数据比较
通过相对误差公式
δ=|L-L1|/L×100%
(6)
可以得出各个点的相对误差δ如图11所示,L为标准设备测量值,L1为该照度计测量值。所有测量点的最大相对误差在8%以内,在相机测试系统常用的电流3.5 A~7 A间,平均相对误差为1.85%,相对误差在3%以内,符合测量精度要求[13]。并且在测量过程中相同光照下各个通道的照度值读出数据一致,因此可以确定本次所设计的照度计基本实现了预期测量功能,可以应用于相机测试系统中积分球均匀性的测量。
图11 相对误差
通过对相对误差的计算发现,在测量值较小时,相对误差较大。可能是因为一些噪声引起的。L包括实际测量值L0和噪声e两个部分。
L=L0+e
(7)
通过式(6)和式(7)可以知道,当实际测量值较小时,噪声会占主导,从而引起相对误差较大,信噪比较低。噪声的来源主要包括:量化噪声、杂散光噪声、光源抖动噪声。量化噪声是由积分式A/D转换器产生的。量化噪声是一个与信号序列完全不相关的白噪声序列,它与信号的关系是相加性的。当测量值较小时,量化噪声会产生较大影响。测量是在暗室内进行的,但是由于暗室内壁黑化处理不当以及隔板边缘的反射等都会产生杂散光,因此杂散光也会导致测量的误差。光源由稳压电源控制,由于稳压电源的不稳定会导致输出电流的不稳定,从而使光源产生抖动,带来测量的误差。以上这些因素都会带来测量上的误差,但我们的设备一般工作在电流值为:3.5 A~7.0 A之间,在该电流范围内信噪比较高,满足我们的测量需求,为了进一步提高测量精度,以后将会对这些误差进行更进一步的研究。
经过实验测试可知,基于STM32的多通道照度计能够实时返回数据并正常显示,各个通道在相同光强下照度读出值一致。多通道照度计外围电路结构简单,程序稳定性高,与普通照度计的测量值没有显著差别,但可以实现16个通道同时测量,增加测量面积的同时提高了测量效率,可以满足CMOS相机测试系统对光照强度检测的需求,有广泛的应用前景。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!