王偉
(羅克韋爾自動化控制集成(上海)有限公司,上海,201201)
隨著半導體和電子技術的發展,光譜傳感器也有了很大的進步,它不斷向小型化、高精度、高性能和低成本的方向邁進。一般地,光譜傳感器是由光學部件和控制部件共同組成,光學部件包括利用反射光學元件的成像光學元件和利用分光鏡來劃分譜段的分光元件。所劃分的各個譜段需要用多個探測器,分別是可見光探測器、近紅外探測器、中波紅外探測器和長波紅外探測器。而控制部件包括控制器、圖像信號處理器、溫度控制器和顯示器,將采集的到信號經過數字化處理,形成離散的數據。現在的電子集成技術,讓該類型的傳感器變得小體積,很多廠商也將光譜傳感器封裝成一個IC芯片,例如艾邁斯公司芯片級的光譜傳感器。這些新器件的面世,大大地方便了光譜檢測的應用。
在傳感器發展的同時,也激發了許多基于光譜測量的應用。首先在攝影和攝像領域,專業的攝影師都非常了解不同的照明源對照片顏色渲染的影響。現在手機的拍照功能非常強大,不但提供非常高的像素,同時也提供了更多照片處理的功能,如美顏處理和人工智能處理等。特別在一些高端手機上,配備一個能夠拍攝真彩色的照片也是一個很大的賣點。在這些要求中,對于光源的檢測無疑變成了一個必須的功能,從而對于白平衡補償技術提供更有價值的信息。其次在照明領域也有很多應用,需要檢測環境光源的光譜,提供更準確的光源控制技術和質量。還有很多消費領域和工業領域,需要對產品的顏色有一個準確的識別,從而來判斷產品的顏色滿足預期的標準。
這些新的應用對光譜傳感器也產生了要求,首先是需要一個更小的體積,能夠嵌入到手機等電子產品中,很多對光譜測量的新領域都要去便攜。其次需要一個較低的功耗,這些新的應用都是電池供電,無法提供很高的功耗,特別是手機這樣本身就是一個耗電的設備。最后更高性能的要求是滿足新應用的必須手段,只有光譜的檢測更準確,才能提供對光源的控制和顏色的識別需求。
近年來,艾麥斯公司推出的AS7341光譜傳感器是一款11通道分光儀,特別適用于移動設備中的光譜識別和色彩匹配應用。它具有以下特點:
(1)其光譜響應定義在約350nm至1000nm的波長范圍內,八個光學通道覆蓋可見光譜,一個通道可用于測量近紅外光(NIR),一個通道是沒有濾光器的光電二極管(C)。近紅外光通道與其他可見光通道組合可以提供周圍環境光條件(光源)檢測的信息。
(2)六個通道可以由獨立的16位ADC并行處理,而其他通道通過多路復用器訪問。
(3)該器件還集成了專用通道,可檢測50Hz或60Hz的環境光閃爍,閃爍檢測引擎還可以用于在外部計算其他閃爍頻率時緩沖數據。
(4)該器件還可以通過引腳GPIO與外部信號同步。
(5)小尺寸和低功耗的光譜傳感器。AS7341通過納米光學沉積干涉濾光片技術將濾光片集成到標準CMOS硅片中,其封裝提供了一個內置光圈來控制進入傳感器陣列的光線。該器件采用1.8VDC低電壓供電,典型的功耗210uA。該器件采用超薄型封裝,尺寸為3.1mmX2mmX1mm(OLGA8封裝)。
該器件可以通過串行400KHz I2C接口實現控制和訪問光譜數據。該器件與外部交互采用串行400KHz I2C通信接口實現,它支持7位芯片尋址,并支持標準速度和全速時鐘模式。對器件的讀寫傳輸兼容飛利浦制定的標準。在設備內部有一個8位緩存寄存器,用來存儲要讀寫數據的地址。可以認為該器件的接口是標準的I2C,作為從設備進行操作。
該器件多路檢測的光電二極管,包括具有4X4的光電二極管陣列用來檢測可見光,和在光電二極管陣列的頂部是檢測閃爍頻率的專用光二極管,加上在下部陣列是近紅外光二極管。在陣列下部的兩個角上是沒有過濾器的光二極管,成為“C”通道。每一組過濾器對都可以被映射到一個ADC通道上。
每一個光電二極管通道對應一個波長,如表1所示。通過這些光電二極管來檢測其對應波長的光強度。

表1 光譜通道與對應波長
該光譜傳感器不但具有十分小的尺寸和更低的功耗,并且也提供更多的光學通道,將可見光分成8個級別的光譜波長。該器件也具有16位的模數轉換采樣,提供了更高的分辨率和檢測能力。
對于這種高度集成的傳感器,使用是十分復雜的。傳感器AS7341是一個支持標準400Kbps的I2C通信接口的器件,通過通信接口來控制和設置傳感器,使其工作在我們期望的模式,如檢測的通道配置和檢測的輸出數據的范圍等。AS7341器件的I2C地址是0x39,通過I2C的讀寫傳輸對傳感器進行操作。通過I2C總線寫寄存器的方式配置傳感器,然后通過讀操作讀取傳感器的狀態和采集到的數據信息。
對于光譜檢測的應用,需要將每個通道對應的波長強度測量出來。該傳感器一共有11個光電通道,其中10個通道用于檢測光譜的分布,一個通道用于檢測光源的閃爍頻率。在該論文中只討論光譜的分布檢測。因為該器件共有6個獨立的ADC通道,不能同時檢測全部的通道,所以需要將檢測的通道分成兩組,第一組檢測F1,F2,F3,F4,CLEAR,NIR共計6個通道,而第二組就是剩余的F5,F6,F7,F8,加上CLEAR和NIR。由于不是同時檢測的,需要判斷檢測的光源是同一個,比較CLEAR和NIR通道的強度,如果兩組檢測的強度是比較接近的,可以認為是同一組光源,可以將F1~F8和CLEAR、NIR通道的強度一起成為一組有效的檢測。反之,重新檢測所有通道的強度,直至兩組檢測數據是有效的。將有效檢測的數據存儲并發送出來用于分析光源的特征。
首先,需要將被檢測的光譜通道映射到實際的ADC上。通常地,對于第一組檢測,將F1映射到ADC0,F2映射到ADC1,F3映射到ADC2,F4映射到ADC3,CLEAR映射到ADC4,NIR映射到ADC5。而第二組映射F5映射到ADC0,F6映射到ADC1,F7映射到ADC2,F8映射到ADC3,CLEAR映射到ADC4,NIR映射到ADC5。將這些映射的配置通過I2C的通信接口來寫入到傳感器AS7341的超級多路復用器SMUX來實現。
傳感器的輸出依賴于器件的增益參數AGAIN(gain)和積分時間TINT(integrationtime)。積分時間TINT的值又依賴于ATIME和ASTEP這兩個寄存器。積分時間TINT的計算如下面的公式(1):

通過配置AGAIN和TINT這兩個參數,盡量使器件輸出盡可能的大,來提高測量精度。如果某一通道的測量值達到65535時,說明信號的飽和,需要改變GAIN值和ATIME、ASTEP的值來調整器件輸出。所以在測量時,需要根據傳感器的輸出來調整傳感器的設置,讓傳感器的輸出在理想的范圍內,這將會提高檢測的準確度。
光譜相關色溫的計算都依賴于標準化值BasicCount,而這個值的計算需要根據傳感器的輸出和檢測時的配置參數,如下公式(2)所示:

我們可以根據AMS提供的傳感器批量生產的修正數據和基于CIE1931的XYZ修正矩陣來計算色溫,XYZ修正矩陣如下表2。CIE1931XYZ基色系統中的X、Y、Z的值可依據下面計算公式(3):


表2 XYZ修正矩陣[4]
CIE1931xyY顏色空間中的相對系數x、y、z可以采用如下公式(4)計算:

而對應的相關色溫計算公式(5):

由此我們可以計算出相關色溫的值。
通過上面對傳感器的分析,我們通過下面的實驗來看看傳感器的相關測量數據。在實驗中使用德州儀器的CC2640R2F開發板,通過開發板給傳感器供電,并通過開發板的I2C接口連接傳感器,來配置與控制傳感器進行光譜的采集,并通過串口將采集到的數據發送出來,用于實驗數據的分析。在試驗中,被測光源選擇護眼臺燈,在距離20cm處進行光源的檢測。
首先要在開發板上設計軟件對傳感器進行配置。使用Code Composer Studio開發工具新建一個工程SensorAnalyzer,選擇微處理器的型號和工程存儲的位置,并加載CC2640R2F的驅動庫。在新建的工程中加載微處理器的I2C驅動文件,并根據微處理器的驅動庫設計幾個操作傳感器的函數Sensor_Init()、Sensor_Read()、Sensor_Write()和Sensor_Update()。下面詳細說明一下每個函數的功能:
(1)Sensor_Init()
該函數用來初始化I2C的通信參數,對微處理器的GPIO管腳和I2C進行初始化,并設置I2C波特率400KHz,然后使用函數I2C_open()來打開I2C的主模式。通過讀取傳感器的設備ID來檢驗I2C通信是否成功。根據傳感器的手冊,設備ID在寄存器0x92,讀到的值應該是0x24。在該函數中配置光譜采集需要的參數AGAIN、ATIME和ASTEP這些寄存器,這些配置參數決定了ADC采集到數據的范圍。
(2)Sensor_Read() 和Sensor_Write()
該函數用來通過I2C通信讀取/寫入傳感器中的數據。在初始化的函數中也是調用了這些操作來實現的。
(3)Sensor_Update()
該函數用來讀取傳感器采集到的光譜數據。由于傳感器只有6路獨立的ADC通道,不能同時采集所有的光譜通道。首先設置超級多路復用器,采集F1~F4的光譜值和CLEAR、NIR的值,然后重新配置超級多路復用器,采集F5~F8的光譜值和CLEAR、NIR的值,并比較前后兩次采集的CLEAR和NIR,如果兩次的值比較接近,大約相差在50(這個值需要進一步驗證)的范圍內,可以認為兩次的檢測同一光源,將兩次采集到的數據保存并通過串口發送出來。
將寫好的程序下載到微處理器并進行調試,檢查程序運行的準確性,并將采集到的數據保存一個文件。在輸出光譜數據的同時,也輸出配置參數的值。根據測試平臺檢測的數據,設置傳感器的寄存器ATIME(寄存器地址0x81)為29,ASTEP(寄存器地址0xCA,0xCB)為599,則根據公式(1)計算TINT=50.04毫秒。傳感器的寄存器CFG1(寄存器地址0xAA)中的低四位值為10,那么增益值(gain)是512。將傳感器通道的波長與傳感器輸出的原始值可以繪制圖1。

圖1 傳感器通道的波長與輸出原始值對應圖
根據公式(2)可以計算出各個傳感器通道的組成的矩陣BasicCount為

根據公式(3)可以計算出

從而可以根據公式(4)計算出

進而根據公式(5)計算出CCT= 3 898K。查詢產品的技術參數,護眼臺燈的色溫與計算出來的色溫吻合,滿足測量的要求。
光譜傳感器AS7341是小封裝光譜傳感器技術取得突破的代表性產品,適合安裝在手機或其他消費設備中,甚至一些工業領域。它在同類產品中尺寸最小,提供11個測量通道,與面向消費類市場的其他多通道光譜傳感器相比,其光靈敏度更高。該傳感器不但可以重建光譜,而且可以測量光源的閃爍頻率(50赫茲到1000赫茲)。該傳感器還可以用于色彩匹配和膚色測量等方面的應用。該傳感器的顏色測量是一個低成本并能滿足很多需求的方案,該傳感器的應用領域將會被不斷拓展。對于光譜傳感器來說,其準確度是一個值得關注的參數,對于那些檢測精度不高的領域來說能夠滿足需求,但要將高集成度的傳感器應用于高分辨率的應用,就需要更加復雜的校準方法,同時也對IC型的光譜傳感器提出更高的挑戰。