陳 曦 趙辰雪
(河北工業大學電氣與自動化學院,天津 300130)
近年來,顏色檢測已廣泛應用于各個領域中。目視法、分光光度法和光電積分法是常用的顏色檢測方法[1]。這些測量方法最重要的作用是實現顏色傳感器與上位機的通信,并對實時數據進行處理、顯示和保存。其中,虛擬儀器在通信中起到很重要的作用,它可以實現上位機與測試儀器的一體化,并有望成為現階段及將來測試技術與儀器發展的一個重要方向[2]。美國Applied Color Systems、英國Instrumental Color Systems和瑞士Data Color是世界上3個主要的色控儀器公司[3]。在國內,儀器測色、配色的理論和系統的研究仍處于相當落后的狀態。基于LabVIEW的顏色檢測系統簡化了以往軟件設計的工作量,降低了通信的復雜程度,從而提高了系統的自動化水平。該系統為國內的顏色檢測工業提供了一種新的檢測方法。
顏色采集系統由顏色傳感器TCS230與數據采集卡PCI-1716組成,其通過研華32位DLL驅動程序接口使PCI-1716與計算機相連,然后與LabVIEW軟件共同構成通信系統。顏色檢測系統的具體工作過程是:首先,LabVIEW通過程序給采集卡設初值進行硬件初始化;然后,由PCI-1716的數字輸出端控制TCS230顏色濾波器的選擇,從而進行顏色數據的采集;接著,PCI-1716將采集的數據傳遞給計算機;最后,利用LabVIEW對數據進行處理、顯示與保存。
顏色檢測系統結構如圖1所示。

圖1 顏色檢測系統結構框圖Fig.1 Structure of the color detection system
顏色傳感器TCS230是美國TAOS公司推出的一種可編程光到頻率的轉換器[4]。它把可配置的硅光電二極管與電流轉換器集成在一個單一的CMOS電路上,并在同一芯片上集成紅綠藍(RGB)三種濾光器,從而形成一種有數字兼容接口的RGB顏色傳感器,它可以直接與微處理器或其他邏輯電路相連接。由于其輸出為數字量,并且能夠實現彩色通道10位以上的轉換精度。因此,在轉換過程中不需要A/D轉換電路,簡化了電路結構。
TCS230的功能框圖如圖2所示。

圖2 TCS230功能框圖Fig.2 Functional block diagram of TCS230
圖2中,引腳S0和S1用于選擇輸出不同比例因子或電源關斷模式,并可以對輸出范圍進行調整,以滿足不同的需求;引腳S2和S3用于選擇不同的顏色濾光器;OE為使能引腳,也可作為片選信號;OUT為頻率輸出引腳;GND為芯片的接地引腳;VCC為芯片提供相應的工作電壓。
自然界中的顏色都是由紅、綠、藍三原色混合組成的。因此,對顏色的檢測實際就是對紅、綠、藍值的檢測,TCS230就是通過控制S2和S3,選通不同顏色濾波器,經過濾波后,分別得到R、G、B的值,最后通過數據處理獲得待測的顏色。
PCI-1716是一款高分辨率多功能的PCI數據采集卡[5],適用于儀器測試、圖形處理、視頻數字化處理及聲音與振動測試等領域。它采用16位的A/D轉換器,1 kB的FIFO緩沖器,采樣速率達250 kS/s;可以提供16路單端模擬量輸入或8路差分模擬量輸入,采集卡的這些輸入可以單一使用,也可以組合輸入;采集卡帶有2個16位的D/A輸出通道、16路數字量輸入/輸出通道和1個10 MHz的16位計數器通道。
同時,PCI-1716還是一款即插即用的采集卡,只要將設計好的電路板直接與采集卡相連,再通過相應的DLL驅動控制,就可以采集到需要的數據。
系統采用研華“Advantech DLL Driver”驅動軟件中的LabVIEW驅動程序來實現軟件控制。設計調用了DRV_DeviceOpen()函數開啟整個虛擬設備,再通過對其他功能模塊進行配置和連接,從而完成PCI-1716與LabVIEW的通信,同時控制TCS230的顏色檢測。
本設計充分利用了LabVIEW強大的數據處理功能,將采集到的數據按需要進行相應的處理,加上友好的人機交互界面,則形成了一種實用、方便的顏色檢測系統。
在程序構架中,系統采用平鋪式順序結構將所有程序包含在內,每個順序結構里面主要采用了While循環和條件結構的嵌套。在條件結構中,給出一定的定時條件,當條件滿足要求時,觸發計數器便開始計數并顯示。
程序首先運行的是白平衡的RGB計數,然后是顏色檢測的RGB初始計數,最后經過數學方法處理,得到所檢測顏色的真實RGB值。
轉換公式為[6]:

式中:P為平衡值,平衡值為最終測得顏色的R、G、B值,即R、G、B;Y為原始值,原始值為顏色檢測時測得的初始數據,即R1、G1、B1;C為參考值,參考值為白平衡時測得的原始數據,即CR、CG、CB。
程序中設定了“白平衡”和“顏色檢測”兩個按鍵。
①“白平衡”執行的是讀取白平衡原始數據,以供顏色檢測的使用。具體步驟是:由軟件開啟采集卡后,通過PC-LAB WT-B模塊對采集卡寫入命令,控制S0、S1、S2和 S3,經過 10 ms 的定時后,由 PC-LAB ENVENT READ模塊讀取這段時間內采集卡計數器的數值,并傳送到LabVIEW的前面板顯示。
②“顏色檢測”過程是重復“白平衡”的過程。
最后,這兩部分的數據經過LabVIEW自帶的模塊進行數據處理,并在前面板顯示最終的RGB值,以還原為所檢測的顏色。
顏色檢測系統程序流程如圖3所示。

圖3 顏色檢測系統流程圖Fig.3 Flowchart of the color detection system
整個系統設計采用研華開發的通用“Advantech DLL Driver”驅動軟件及其配備的LabVIEW驅動,結合LabVIEW軟件,實現對PCI-1716和TCS230的控制;同時,采用LabVIEW本身的數據處理模塊對采集的數據進行處理、顯示和保存。相對其他的顏色檢測系統,該系統借助LabVIEW軟件進行仿真,并設計友好的人機交互界面,大大降低了通信的復雜度、減少了設計的工作量、提高了自動化程度,為國內的顏色檢測工業提供一種新的檢測方法。
[1]龐小兵.在線顏色識別傳感技術的研究[D]長沙:長沙理工大學,2008.
[2]杜春玲,張唏,葛蕾.顏色測量儀器及其發展[J].現代儀器,2005,11(3):56 -57.
[3]曾文琪,高滿茹.基于虛擬儀器的自控仿真實驗系統的設計[J].微計算機信息,2010(16):153-154.
[4]李愛琴,張緒坤.基于TCS230與LabVIEW的顏色測量系統[J].電子科技,2008,21(6):26 -27.
[5]王夢玲,王思明.基于PCI-1713和LabVIEW的高速數據采集系統設計[J].微計算機信息,2006(19):120 -122.
[6]盧川英,于浩成,孫敬輝,等.基于TCS230傳感器的顏色檢測系統[J].吉林大學學報:信息科學版,2008,26(6):624 -625.
[7]王鑫,郭繼燕,丁鐵夫,等.基于PCI總線的高速數據采集卡的設計[J].微計算機信息,2003(5):31-32.
[8]劉冠宇,戴義保,朱丹.ARM7高精度雙金屬片形變檢測系統[J].自動化儀表,2009,30(9):67 -70.