馮婷,鐘澔
(北京中麗制機工程技術有限公司 工程技術部,北京 101111)

馮婷,鐘澔
(北京中麗制機工程技術有限公司 工程技術部,北京 101111)
摘要:采用TAOS公司的顏色傳感器TCS230作為顏色識別器件,其核心控制器件采用Atmel公司的AT89C2051微控制器實現邏輯控制和數據采集。數據經串口傳送至上位機,對采集到的數據進行存儲處理和顏色識別。本文對TCS230識別電路、通信電路及其附屬電路進行了硬件設計。根據實驗算法和硬件電路進行了軟件設計,軟件程序包括串口通信和顏色識別算法。實驗結果表明,本設計方案合理,結果正確。
關鍵詞:TCS230;顏色傳感器;AT89C2051
引言
顏色的識別在現代生產中的應用越來越廣泛,不論是材料、工業自動化、遙感技術、圖像處理、產品質檢,還是某些模糊的探測技術都需要對顏色進行檢測。在很多實際應用中,往往不需要精確地確定顏色的光譜組成,只需對不同的顏色加以區別。利用單片機對傳感器采集的顏色信號進行處理,可以有效地區別不同的顏色,可應用于印染、油漆、汽車等行業,也可以把它裝在自動生產線上,對產品的顏色進行檢測,實施質量管理,并為生產線的中央控制系統提供顏色控制信號。
TCS230是TAOS(Texas Advanced Optoelectronic Solutions)公司推出的可編程彩色光到頻率的轉換器,其輸出信號是數字量,可以驅動標準的TTL或CMOS 邏輯輸入,因此可直接與微控制器或其他邏輯電路相連接。由于輸出的是數字量,并且能夠實現每個彩色信道10 位以上的轉換精度,因而不再需要A/D 轉換電路,電路變得更加簡單。
1基于TCS230的顏色識別系統
1.1設計原理
由三原色感應原理可知,如果知道構成各種顏色的三原色的值,就能夠知道所測試物體的顏色。對于TCS230來說,當選定一個顏色濾波器時,它只允許某種特定的原色通過,阻止其他原色通過。例如:當選擇紅色濾波器時,入射光中只有紅色可以通過,藍色和綠色都被阻止,這樣就可以得到紅色光的光強;同理,選擇其他的濾波器,就可以得到藍色光和綠色光的光強。通過這3個值,就可以分析投射到TCS230傳感器上的光的顏色。
1.2硬件設計
基于上述分析,采用AT89C2051、TCS230和MAX232設計了一個顏色識別裝置,該裝置具有結構簡單、識別精度和效率高的特點,并且能夠和上位機通信,將識別的結果實時傳送給上位機。本系統在硬件上分為6部分:主控電路(單片機控制系統)、通信電路、濾波電路、復位電路、電源電路和PC主機。其工作原理框圖如圖1所示。

圖1 系統工作原理框圖
下面分別給出了與上位機進行通信的通信電路、TCS230顏色識別電路、濾波電路、電源電路以及復位電路。
通信電路如圖2所示,AT98C2051的P3.0(RXD)、P3.1(TXD)分別與MAX232的R2OUT、T2IN相連,再由MAX232的T2OUT、R2IN分別與主機串口的RXD、TXD相連,組成通信電路。

圖2 通信電路
顏色識別電路如圖3所示,用AT89C2051的P1口的幾個引腳來控制TCS230 的各個控制引腳,由P1.2、P1.1分別控制S0、S1,用于選擇光電二極管類型,P1.4、P1.5分別控制S3、S2,用于選擇輸出頻率分頻比,P3.5(定時/計數器1輸入)計OUT輸出的脈沖個數。

圖3 顏色識別電路
其中比較特殊的是,AT89C2051的P1.0、P1.1口分別為內部精密比較器的同相輸入端(A/N0)和反相輸入端(A/N1),所以P1.0和P1.1的內部無上拉電阻,需要在外部接5.1 kΩ的上拉電阻,即圖中的Rs1、Rs2。
濾波電路如圖4所示,在每個芯片的電源正負極之間并聯一個電容,通過電源線串出,防止外界干擾通過電源線串入。

圖4 濾波電路
電源電路如圖5所示,AT89C2051芯片內部使用2.7~6 V電壓,TCS230使用2.7~5.5 V電壓,I/O端口和外部供電電壓為5 V。其中CP1和CP2構成的濾波電路改善系統的電磁兼容性,降低對電源的高頻干擾。LED指示燈用來顯示系統是否通電,SP1開關用于在擦寫程序時方便斷電。
復位電路如圖6所示,使用了10 kΩ電阻,增強了上電復位的可靠性,在調試系統時手動復位按鈕非常有用。

圖5 電源電路

圖6 復位電路
1.3軟件設計
結合上述分析,使用C語言完成軟件設計,實現系統功能。
1.3.1串口通信
串口通信是用來連接上位機和下位機的。其中,上位機負責顯示采集數據,在本系統中,由電腦完成,即在電腦上顯示所測頻率的值,需要軟件編程完成人機界面,電腦上使用的人機界面會在下面部分具體介紹;下位機負責采集數據,在此系統中就是整個單片機系統,也是本文重點涉及和討論的內容。
利用定時/計數器1進行串口通信。在定時模式下,計數器對單片機振蕩頻率fOSC經12分頻后的機器周期進行加1計數,用X表示計數個數,M表示模,C表示定時初值,Tcy表示機器周期,則1Tcy=12/fOSC。因此,定時時間T的計算公式為:
T=X·Tcy=(M-C) Tcy
定時初值公式為:
C=M-T/ Tc
定時器的溢出率為:
1/T=fOSC/(12X)= fOSC/(12(M-C))
工作方式1、3的波特率可變,與定時器的溢出率有關。
8031/8051/8751系統中常用定時/計數器1(T/C1)波特率發生器。波特率由下式計算:

其中,SMOD是PCON寄存器最高位的值。由上式可得:

式中:M為計數器的模2K,與T/C1的工作方式有關,K=8、13、16。
因此,波特率公式還可寫為:

實際應用中,總是先確定波特率,再計算定時器1的定時初值C,然后進行定時器的初始化。根據上述波特率的公式,可得出計算定時器初值的公式為:

在通信初始化過程中,定時/計數器2采用工作方式2:16位定時/計數器,將串口通信的通信速率設定為9 600 bps,在這個程序里SMOD=1,在工作方式2、3中,K=8,則有M=K8=28。定時器初值設定如下:

故定時/計數器1的初值為0xFD。
串口通信界面如圖7所示。

圖7 串口通信界面
1.3.2顏色識別算法

圖8 顏色識別流程示意圖
顏色識別流程示意圖如圖8所示。首先進行系統初始化,接收命令,依據程序設定選擇光電二極管類型和輸出頻率分頻比,然后檢測TCS230輸出頻率,將數據回傳到PC機,接收命令,最后觀察程序是否繼續,如果繼續則重新接收命令,設置檢測通道和分頻比,如果不再繼續,則發送結果,結束程序。
具體的計算思路是:在一段固定的時間T內,測出TCS230輸出的脈沖個數N,所測頻率f=N/T。具體操作為,定時/計數器0用來計測TCS230輸出的脈沖個數N,定時/計數器0工作在方式1:16位定時/計數器,初值設為0x00。用程序設置一個軟計數器TV1,規定一段固定時間T,定時/計數器1的中斷實現軟計數器。定時/計數器1的中斷周期T0:

≈3.252×10-6
由上述計算可知,一個中斷周期太短,需要循環實現周期的累積,以達到一個微秒級的固定時間段。由于系統使用了串口通信,所以要求數據盡量可以完全除盡,考慮上述要求,設置循環次數N=864。故固定時間段為:
綜上所述,所測頻率為:
2檢測過程及結果
本實驗將TCS230分別選通無濾光、紅色、藍色、綠色通道,對紅色和白色的色卡進行檢測,輸出頻率分頻比選擇100%(0~500 kHz)。
檢測具體過程如下:
① 將單片機系統用串口線與PC機相連,開啟電源開關;
② 點擊人機界面上的“連接”鍵;
③ 等待5 s左右,待數據穩定后開始讀數,讀取10~14個數據;
④ 退出“連接”并記錄數據;
⑤ 關閉電源開關,修改單片機程序,選通下一種通道,重新用編程器寫入程序,重復上述步驟①~⑤進行操作。
由于原始采樣數據為十六進制, 如需進行統計分析,需將原始數據轉換為十進制數據,下面給出了原始數據、處理后的數據及統計分析數據。白色色卡的檢測結果略——編者注,為了更好地分析數據,由表中的平均值近似數據生成的柱狀圖略——編者注。
從白色色卡檢測結果圖中可明顯看出,當無濾光通道選通時光強最大,而選通紅色、藍色和綠色通道的光強基本相同,而且值較低,分別占選通無濾光通道光強的30.74%、33.85%、28.03%。由于30.74%、33.85%、28.03%三個值之和約為92.62%,與無濾光通道的值相差在10%以內,從而可知數據正確。由于30.74%、33.85%、28.03%三個值沒有一個超過無濾光通道值的50%,從而可知檢測的是白光。雖然程序沒有涉及白平衡,但這組數據就可以作為一組白平衡數據。
紅色色卡的檢測結果略——編者注。從圖中可明顯看出,當選通無濾光通道時光強最大,其次是選通紅色通道時,而且其值較大,為選通無濾光通道的74.95%,而選通藍色和綠色通道的光強基本相同,而且較低,分別為選通無濾光通道的13.20%、13.56%。由于74.95%、13.20%、13.56%三個值之和約為101.71%,與無濾光光通道的值相差在10%以內,從而可知數據正確。由于紅色通道的74.95%超過了無濾光通道值的50%,從而可知檢測的是紅光。
結語
以光傳感器TCS230為探測器,AT89C2051單片機為運算、控制核心的顏色識別系統,具有結構簡單、可靠性高、使用方便等優點。TCS230使用硅光電二極管測量光強,具有響應快、重復性和穩定性好等特點,特別適用于彩色打印機、醫療診斷、計算機彩色監視器校正、過程控制以及顏料、紡織品、化妝品和印刷材料的配色等應用方面。利用單片機快速強大的處理功能,能夠快速、準確地做出單一顏色的識別,在以顏色為標志的過程監控和產品分檢中有著廣泛的用途。

參考文獻
[1] 季峰,陳炳若.色敏器件的研究進展和應用[J].光電子技術,2003(3).
[2] 張松燦,肖本賢.高分辨率顏色傳感器TCS230的原理和應用[J].單片機與嵌入式系統應用,2005(3).
[3] 彭為,黃科,雷道仲.單片機典型系統設計實例精講[M].北京:電子工業出版社,2006.
[4] 蔣寅國,鄧燕妮.基于TCS3200的多點顏色檢測裝置的設計[J].儀表技術,2011(3).
[5] 吳杰.基于單片機的數據采集系統設計[J].無線互聯科技,2015(20).
馮婷(碩士研究生),研究方向為檢測技術及自動化裝置;鐘澔(助理工程師),研究方向為自動化技術及電機拖動。

4.4失真度測試
定義:輸出電壓失真度為電壓所含諧波分量的比率。
測試方法:每相接22 Ω負載時,用失真度測試儀測試系統輸出電壓波形失真度,測試結果如表6所列。

表6 失真度測試結果
結果分析:整體上來說,測量精度比較理想,在加重負載(8 Ω)情況下測量,失真度為4.8%。

[1] 任賢,王紅.基于DSP的大功率三相逆變電源設計與實現[J].裝備制造技術,2012(6):175-178.
[2] 張鵬超.基于DSP的三相逆變電源研制[J].電源技術,2011,35(9):1154-1156.
[3] 呂飛.三相逆變電源的混雜控制研究[D].哈爾濱:哈爾濱工業大學,2012.
[4] 何通能,安康,逯峰.基于模糊PI控制的三相船用逆變電源研究[J].浙江工業大學學報,2013,41(2):222-226.
[5] 吳家梁,樊波,劉嘉,等.三相SVPWM逆變電源輸出波形優化控制策略[J].空軍工程大學學報:自然科學版,2013,14(4):91-94.
[6] 曹太強,祁強,王軍.三相逆變電源不平衡負載控制方法的研究[J].電機與控制學報,2013,16(4):53-55.
[7] 孫馳,馬偉明,魯軍勇.三相逆變器輸出電壓不平衡的產生機理分析及其矯正[J].中國電機工程學報,2006,26(21):57-64.
[8] 周錦榮,王輝,周小方.三相逆變電源系統的SVPWM技術研究[J].寧夏大學學報,2013,34(4):317-319.
[9] 王曉東,李嵐.一種用于雙電源系統的三相逆變電源[J].電氣技術,2012(10):13-15.
劉彤(講師),主要研究方向為控制理論與控制工程。

Feng Ting,Zhong Hao
(Department of Engineering Technology,Beijing Chonglee Machinery Engineering Co.,Ltd.,Beijing 101111,China)
Abstract:The color sensor TCS230 produced by TAOS is used in the color detection system.The AT89C2051 of Atmel company is used to achieve logic control and data acquisition.The data is transmitted to the host computer through the serial port,then the collected data is stored and do the color recognition.The hardware of recognition circuit,communication circuit and subsidiary circuit are designed.The software is designed according to the experimental algorithm and the hardware circuit,which includes the serial communication and color recognition algorithm.The experiment results indicate that the design plan is rational and the result is correct.
Key words:TCS230;color sensor;AT89C2051
中圖分類號:TP212.9
文獻標識碼:A
收稿日期:(責任編輯:薛士然2016-01-25) (責任編輯:薛士然2016-03-07)