羅志遠,張 濤,許 駿
(1.中國科學院云南天文臺,昆明 650216;2.中國科學院大學,北京 100049)
照度計是一種測量環(huán)境光照強度的測量儀器。照度計應用非常廣泛,物理,攝影,化學,工程,天文學,天體物理學等諸多領域以及日常的生產(chǎn)生活都需要對照度進行測量。目前,無論是建筑室內(nèi)照明、還是機動車的內(nèi)外照明、工礦企業(yè)的工作環(huán)境照明等各大照明場所基本上都需要使用照度計進行照度檢測,以保證人們有更加舒適的生活工作環(huán)境,提高工作效率,減少不必要的光污染[1]。此外,在科研領域大面積光源如積分球等的均勻性測量也會用到照度計[2]。
本設計是以國家基金面上項目“CMOS響應非均勻性實時校正系統(tǒng)的設計研究”為背景而展開的,在基金項目中需要對CMOS相機的性能做相應的測試,其中需要用到積分球。在理論上積分球的輸出光是均勻的,但由于積分球內(nèi)部的反射材料噴涂不均勻使其很難百分之百的保證輸出光源的完全均勻,在實際測試使用的過程也發(fā)現(xiàn)了這種不均勻性現(xiàn)象的存在。積分球輸出光源的不均勻性給整個測試過程帶來了額外誤差,降低了測試精度。因此設計一套檢測裝置能夠從積分球輸出的面光源中挑選出一塊相對穩(wěn)定以及均勻的區(qū)域,為項目中的CMOS相機測試系統(tǒng)提供優(yōu)質(zhì)光源是非常必要的。首先照度計要在三維電動位移臺的配合下對光面做二維截面掃描,從而測量出整個出光面的均勻情況。在測試過程中主要面臨兩個問題:一是照度計和整個測試系統(tǒng)的整合。目前在售的照度計多為手持式,無法在位移平臺上進行固定。此外,所有的測試都是在封閉的暗室內(nèi)進行,無法對照度計的數(shù)據(jù)進行讀取和保存。二是測試效率。目前的照度計多為單通道照度計,當需要測量的面積較大,測量點較多時,需要反復調(diào)整電動位移臺,而為保證系統(tǒng)的穩(wěn)定性,位移臺一般移動速度都較慢,這勢必大大增加光源截面的掃描時間。在這里我們設計了4×4結構的照度計(具體結構將在下文闡述),它可大大提高光源截面的掃描速度,這一點在實驗中也得到了證實,此照度計可以滿足CMOS相機測試系統(tǒng)的要求。
系統(tǒng)設計原理框圖如圖1所示,由5個單元構成:①光電轉換單元;②多通道切換單元;③嵌入式控制單元;④網(wǎng)絡傳輸單元;⑤電腦采集單元。
圖1 系統(tǒng)原理框圖
在光電轉換單元中,首先利用光敏二極管將探測到的光信號轉變?yōu)殡娏餍盘?然后通過積分式 A/D 轉換器對電流進行積分,最終將積分結果轉換為數(shù)字量,并將其存入模數(shù)轉換寄存器中[3]。當一個積分周期結束之后,積分式A/D轉換器將會繼續(xù)進入下一個積分過程。多通道切換單元,簡單來說主要實現(xiàn) 4×4 個光電轉換單元的I2C總線復用。使STM32通過一個I2C接口完成多個光電轉換單元的數(shù)據(jù)采集。嵌入式單元,主要完成整個系統(tǒng)的邏輯以及控制膠合,起到對傳感器以及PC間的連接和數(shù)據(jù)中轉作用。網(wǎng)絡傳輸單元,主要是完成通信接口間的轉換,實現(xiàn)了STM32的SPI接口向以太網(wǎng)接口的轉換,以便于將照度計與整個測試系統(tǒng)進行整合。通過采用TCP/IP協(xié)議,實現(xiàn)照度計及整個測試系統(tǒng)的遠程控制。電腦采集單元,主要就是實現(xiàn)數(shù)據(jù)的采集、分析和處理,并將結果進行顯示及保存。
主要任務就是設計一個多通道前端探測器,并將采集的數(shù)據(jù)傳輸回STM32微控制器,在STM32內(nèi)部進行數(shù)據(jù)整理和分析,再經(jīng)過網(wǎng)絡模塊傳回電腦客戶端顯示。為了表現(xiàn)整體性和便于檢測調(diào)試,設備制作時采用了模塊化,將探測器模塊、控制模塊以及網(wǎng)絡傳輸模塊分別放置。將多個模塊同時放在多塊電路板中,這樣方便各個模塊的檢測與組裝,故障發(fā)生時也可以迅速發(fā)現(xiàn)故障以及修復。
前端探測器選用了16個TSL2561芯片作為光強傳感器,一個TCA9548A芯片作為選通開關。TSL2561芯片是TAOS公司在2009年推出的一種光照強度數(shù)字轉換芯片,該芯片可以將光照強度在內(nèi)部進行模數(shù)轉換后直接以數(shù)字信號輸出。并且具有I2C接口,用于編程控制和數(shù)據(jù)傳輸。此外它還具有低功耗、寬量程、高速數(shù)據(jù)傳輸?shù)葍?yōu)點[4]。,其內(nèi)部結構如圖2所示。
圖2 TSL2561內(nèi)部結構
TSL2561芯片主要由三部分構成:①兩個光敏二極管;②兩個積分式A/D轉換器;③I2C接口。
①通道0連接了用于檢測可見光和紅外波段的光敏二極管,通道1連接了用于檢測紅外波段的光敏二極管。使用雙光電二極管結構可有效克服硅探測器響應與人眼亮度感知結果之間的差異性問題。兩者之間的差異性主要是由于硅探測器對人眼無法感知的紅外波段有著強烈的響應,所以當入射光具有較高的紅外分量時,將會導致人眼感知與實際測量之間的顯著差異。修正兩者之間的誤差一般采用通道1的輸出補償通道0的輸出上光的紅外分量的影響。
②光強傳感器A/D輸出值在0~216的范圍內(nèi)可產(chǎn)生接近人類視覺感知的響應,內(nèi)部的兩個積分式A/D 轉換器,主要用于將光敏二極管產(chǎn)生的電流模擬量轉換成數(shù)字輸出信號,并存入芯片內(nèi)部各個通道的ADC寄存器中。數(shù)字信號輸出表示當前通道的光強測量值,可以作為STM32單片機的輸入[5]。
③STM32單片機可以通過I2C接口獲取光強傳感器的AD值,通過調(diào)整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連接,通過輸入不同的地址,實現(xiàn)一個單片機對不同光強傳感器的訪問。
圖3 TCA9548A功能框圖
圖4 探測器電路圖
這里采用的微處理芯片是STM32F103C8T6,該芯片具有性能強勁、接口豐富的特點,并支持多種通訊協(xié)議和外部設備,被廣泛使用于各種消費電子以及嵌入式系統(tǒng)中[7]。對于本系統(tǒng)而言,主要使用了其PIO接口、I2C接口以及SPI接口,其中PIO接口主要完成各個模塊的初始化、片選、以及中斷控制等功能。I2C接口選用了單片機的PB10引腳和PB11引腳作為時鐘線(SCL)和數(shù)據(jù)線(SDA),用于向探測器模塊發(fā)送相應的控制命令以及數(shù)據(jù)采集的工作。SPI接口選用單片機的PA4~PA7引腳分別作為SCSn、SCLK、MISO和MOSI引腳。設置控制模塊的SPI接口在主機模式下工作,向網(wǎng)絡模塊發(fā)送控制命令,模塊配置信息,以及接收網(wǎng)絡模塊的返回數(shù)據(jù)等工作。
網(wǎng)絡傳輸模塊選用的是一款基于WIZnet W5500芯片的以太網(wǎng)模塊。該模塊具有性能出色、性價比高等特點[8]。模塊集成硬件化TCP/IP協(xié)議,免去了在單片機中進行軟TCP/IP協(xié)議堆棧的開發(fā),可以極大的縮短整個開發(fā)的過程。只需對該模塊通過SPI接口進行相應的套接字設置,例如本地IP,監(jiān)聽端口,協(xié)議類型等基本信息便實現(xiàn)了以太網(wǎng)的應用。模塊通過單片機提供3.3 V電源供電,并工作在服務器模式下,連續(xù)監(jiān)聽來自計算機的控制命令,以及向計算機和單片機發(fā)送相應的反饋數(shù)據(jù)。此外,W5500芯片提供了外設串行接口(SPI),可以更方便的與控制器模塊連接。
網(wǎng)絡傳輸模塊通過SPI協(xié)議與控制器模塊通訊,其連接方式如圖5所示,SCSn是片選信號,由控制器模塊控制,當片選信號為使能信號時,才能對網(wǎng)絡傳輸模塊操作。SCLK是時鐘信號,由控制器產(chǎn)生時鐘脈沖,MOSI和MISO基于此時鐘脈沖完成數(shù)據(jù)傳輸。MOSI是主機輸出從機輸入,MISO是主機輸入從機輸出[9]。SPI有4種工作模式,這里選擇的模式0,即MOSI和MISO信號無論發(fā)送還是接收始終是從高電位到低電位有效[10]。探測器模塊的數(shù)據(jù)經(jīng)過控制器模塊整理和分析后,將經(jīng)過網(wǎng)絡傳輸模塊傳回電腦客戶端。
圖5 控制器模塊與網(wǎng)絡傳輸模塊硬件連接圖
最后將分別調(diào)試好的探測器模塊、控制模塊以及網(wǎng)絡傳輸模塊進行組裝,并固定住在黑色盒體內(nèi)。多通道照度計具體結構如圖6所示。
圖6 多通道照度計
軟件系統(tǒng)分成上位機(PC 機)軟件和下位機(單片機)軟件2個部分,軟件系統(tǒng)流程圖如圖7所示。
圖7 軟件系統(tǒng)流程圖
上位機軟件是基于C#編程語言在windows 7平臺上利用Microsoft Visual Studio軟件開發(fā)的,采用多線程技術實現(xiàn)了對多通道的選擇以及對光強數(shù)據(jù)的采集、匯總、整理、顯示和保存等工作,其操作界面如圖8 所示。在上位機軟件上可以快速選擇所用的探測器通道,實時返回光強傳感器的CH0和CH1的數(shù)據(jù),但是要以Lux為單位,還要根據(jù)CH0 和CH1 的數(shù)據(jù)進行計算。各個通道計算所得的光照強度將實時顯示在用戶界面上,并可以通過保存按鈕將數(shù)據(jù)保存在文本中。
下位機軟件的主要功能包括:I2C總線控制、多通道的選通、傳感器陣列16點數(shù)據(jù)的循環(huán)采集、數(shù)據(jù)的匯總整理、SPI總線控制、數(shù)據(jù)的打包發(fā)送等。
PC 機與單片機之間的通信通過網(wǎng)絡模塊的硬件TCP/IP協(xié)議棧轉SPI協(xié)議,數(shù)據(jù)發(fā)送為“1 bit start+8 bit data+1 bit stop”10位幀格式,無奇偶校驗和硬件數(shù)據(jù)流控制。
圖8 上位機軟件操作界面
搭建實驗平臺進行儀器的實際測試,測試環(huán)境為溫濕度可控的黑色暗室,通過加熱機、半導體制冷機等控制箱體內(nèi)的溫度;通過干燥機控制箱體內(nèi)的濕度,使其在測試過程中保持恒溫恒濕。本次測試的環(huán)境溫度為(20±1)℃,環(huán)境濕度為(50±5)%。測試使用的光源為鹵素燈,通過積分球產(chǎn)生均勻光,將照度計固定在三維位移平臺上,通過控制位移平臺的運動將照度計放置在距離積分球出光口20cm的地方,并將前端探測器與積分球出光口中心對齊[11]。在采集數(shù)據(jù)之前首先打開光源,為了減少電源波動對測量的影響,0.5 h之后再進行數(shù)據(jù)采集[12]。在數(shù)據(jù)采集過程中通過調(diào)整光源亮度大小,來獲取各個傳感器CH0和CH1的數(shù)據(jù)。通過這些數(shù)據(jù)的擬合對多通道照度計各個傳感器進行定標。
以通道1以為例,通過調(diào)節(jié)電流來改變光源亮度,在每個電流值下采集20組傳數(shù)據(jù),每組數(shù)據(jù)包含3個參數(shù),分別為:L(標準設備測量值),CH0(光強傳感器通道0測量值),CH1(光強傳感器通道1測量值);再取每個參數(shù)的均值,最終可得各參數(shù)均值隨電流的變化數(shù)據(jù)如表2所示。
根據(jù)光強傳感器芯片通道0和通道1的特性,可以給出如下擬合模型。
L=aCH0+bCH1+c
(1)
a、b、c為待定擬合系數(shù)。整個擬合過程如下,取所有數(shù)據(jù)點的誤差平方和最小,尋找數(shù)據(jù)的最佳函數(shù)匹配,如式(2)所示,
(2)
通過取各偏微分項為零,來獲得f(a,b,c)的極值。
(3)
(4)
(5)
表2 L與CH0和CH1的數(shù)據(jù)表
圖9 光強L與CH0和CH1的擬合曲面
通過MATLAB進行擬合計算,經(jīng)過求解a=0.252 5,b=-0.333 9,c=11.34。此時,確定系數(shù)為0.999 9,擬合圖像如圖9所示。
同理,其他通道也用此方法進行擬合,得出系數(shù)的值。將各個通道擬合所得的公式,寫入上位機軟件內(nèi)部,經(jīng)過公式計算即可得到真實的照度值。此外,不同通道傳感器的經(jīng)過統(tǒng)一擬合定標后,也解決了因器件個體差異而導致響應度不同的問題。
根據(jù)擬合的公式可以計算出多通道照度計測量的照度值。通過采集多組數(shù)據(jù),多通道照度計照度值與實際照度值對比如圖10所示,通過對比可以看出照度計的測量數(shù)據(jù)與實際值沒有明顯的差異。
圖10 測量數(shù)據(jù)與實際數(shù)據(jù)比較
通過相對誤差公式
δ=|L-L1|/L×100%
(6)
可以得出各個點的相對誤差δ如圖11所示,L為標準設備測量值,L1為該照度計測量值。所有測量點的最大相對誤差在8%以內(nèi),在相機測試系統(tǒng)常用的電流3.5 A~7 A間,平均相對誤差為1.85%,相對誤差在3%以內(nèi),符合測量精度要求[13]。并且在測量過程中相同光照下各個通道的照度值讀出數(shù)據(jù)一致,因此可以確定本次所設計的照度計基本實現(xiàn)了預期測量功能,可以應用于相機測試系統(tǒng)中積分球均勻性的測量。
圖11 相對誤差
通過對相對誤差的計算發(fā)現(xiàn),在測量值較小時,相對誤差較大??赡苁且驗橐恍┰肼曇鸬摹包括實際測量值L0和噪聲e兩個部分。
L=L0+e
(7)
通過式(6)和式(7)可以知道,當實際測量值較小時,噪聲會占主導,從而引起相對誤差較大,信噪比較低。噪聲的來源主要包括:量化噪聲、雜散光噪聲、光源抖動噪聲。量化噪聲是由積分式A/D轉換器產(chǎn)生的。量化噪聲是一個與信號序列完全不相關的白噪聲序列,它與信號的關系是相加性的。當測量值較小時,量化噪聲會產(chǎn)生較大影響。測量是在暗室內(nèi)進行的,但是由于暗室內(nèi)壁黑化處理不當以及隔板邊緣的反射等都會產(chǎn)生雜散光,因此雜散光也會導致測量的誤差。光源由穩(wěn)壓電源控制,由于穩(wěn)壓電源的不穩(wěn)定會導致輸出電流的不穩(wěn)定,從而使光源產(chǎn)生抖動,帶來測量的誤差。以上這些因素都會帶來測量上的誤差,但我們的設備一般工作在電流值為:3.5 A~7.0 A之間,在該電流范圍內(nèi)信噪比較高,滿足我們的測量需求,為了進一步提高測量精度,以后將會對這些誤差進行更進一步的研究。
經(jīng)過實驗測試可知,基于STM32的多通道照度計能夠實時返回數(shù)據(jù)并正常顯示,各個通道在相同光強下照度讀出值一致。多通道照度計外圍電路結構簡單,程序穩(wěn)定性高,與普通照度計的測量值沒有顯著差別,但可以實現(xiàn)16個通道同時測量,增加測量面積的同時提高了測量效率,可以滿足CMOS相機測試系統(tǒng)對光照強度檢測的需求,有廣泛的應用前景。