程書晗蘇宇鋒
(鄭州大學機械與動力工程學院,河南 鄭州 450001)
隨著現代工業生產向高速化、自動化方向的發展[1],顏色識別被越來越多地應用于現代工業生產。由顏色傳感器識別到顏色信息傳遞給控制單元進行處理,相比人眼獲得更客觀準確的數據。顏色識別可應用于工業自動化、遙感技術、圖像處理、產品質檢以及一些需要色彩檢測的模糊檢測技術中。這些應用中,許多對顏色檢測精度要求并不高,往往只需要區分不同顏色,比如:圖書館中利用給圖書添加各種顏色貼條對文獻分類;不同顏色的包裝或者裝潢表示內部產品的不同特性;醫療行業,批量檢測試管中血樣的有無等。
本文設計一種低功耗、可擴展的顏色檢測系統,此系統保證顏色數據傳輸準確,過程穩定,單次采集量可控,采集過程可滿足整個流程自動化,精度滿足一般工業對顏色采集的要求。
該系統整體框架如圖1 所示,分為上位機、數據采集模塊和顏色檢測模塊三部分,其中后兩部分都是以STC8F2K16S2 為核心,顏色檢測模塊通過陣列的排布,利用顏色傳感器對多個待檢測目標的RGB值進行檢測,得到的數據經過處理后傳給數據采集模塊;數據采集模塊再把采集到的數據傳送給上位機,通過上位機的監測窗口可以看到待測物體的RGB 值。

圖1 系統總體框架圖
系統中各部分通過RS485 總線進行通信,收發器選擇MAX487 芯片,保證顏色檢測模塊在數量上可以實現128×128 的擴展。
供電電路如圖2 所示,通過開關電壓調節器LM2596 將24 V 直流電轉換為5 V 直流電供系統使用。也可通過調節撥碼開關,不經過降壓模塊,直接接入5 V 直流電。其中每個采集設備與檢測設備都分別與一個電源模塊相連,且同級設備并聯,降低總線電流,減小電路損耗。

圖2 系統供電電路
RS485 通信模塊電路如圖3 所示,硬件電路采用自動收發式設計,電路可根據TXD 發送數據的起始位自動將收發器設置為發送模式,發送完畢后設置為監聽模式。

圖3 RS485 通信電路圖
顏色檢測芯片為AMS 公司生產的TCS3200D芯片,該芯片通過將顏色信號轉換為頻率信號[2],通過單片機計數器接收到芯片信號,從而進行顏色轉換。此部分主要目的就是對物體顏色進行檢測,得到相應的RGB 數據、處理后傳送給數據采集設備。顏色檢測模塊的電路如圖4 所示。

圖4 顏色檢測電路圖
顏色檢測電路中每個顏色檢測設備包含一個含有6 個LED 燈的照明燈,用于增加檢測精度。顏色檢測設備實物如圖5 所示,檢測設備分兩部分,一部分為顏色檢測,模塊化管理,另一部分為檢測部分供電以及與數據采集設備連接。

圖5 顏色檢測設備實物圖
軟件部分主要對整體流程框架進行設計,包含對數據采集模塊與顏色檢測模塊之間的RS485 通信協議的設計,對采集模塊得到數據的處理。以及根據通信的命令對上位機的設計。在軟件設計時全部采用模塊化處理,便于后續命令的擴展和對程序的移植。
通信部分都為點對多點的形式,將主機發送的數據按照地址幀與數據幀進行分類,地址幀發送地址與命令,數據幀進行主從機握手之后的數據傳輸。數據幀以數據包的形式發送。
(1)數據包結構
顏色檢測模塊與數據采集模塊數據發送采用數據包的模式,方便對數據進行解析和校驗。數據包格式如下:

表1 數據包格式
其中數據字段為核心內容數據字段,此部分長度可調節。
(2)數據包發送模塊
數據包在顏色檢測模塊的串口中斷2 中發送,串口中斷處理程序流程如圖6 所示。在串口中斷中進行了顏色的檢測和數據的發送。

圖6 發送數據流程圖
其中數據處理包含傳感器多次測量去極值后所取的平均值和對數據包中的數據添加16 位的CRC校驗碼,在數據發送過程中為數據包中添加1 byte的校驗和。
(3)數據包接收模塊
數據包由數據采集模塊接收,接收部分在采集模塊串口2 中斷服務程序中,程序流程如圖7 所示,數據采集模塊接收來自多個顏色檢測模塊的RGB數據,采用了數據和校驗與循環冗余校驗(Cyclic Redundancy Check,CRC)校驗相結合的方式,CRC是通信領域常用的一種校驗碼,用于檢測數據在傳輸過程中是否發生了被篡改的錯誤[3]。兩種校驗共3 byte,此冗余設計保證了接收數據的準確性。

圖7 接收數據流程圖
在輪詢從機時,對接收數據失敗的從機,在第一輪輪詢從機結束后,再對通信失敗的從機進行第二次詢問,重新進行數據接收。
設計采用由主機控制從機機制,將命令分為廣播命令與點對點命令,廣播命令完成對所有從機的控制,點對點命令進行主機與指定從機的通信。
為保證顏色檢測的實時性,顏色傳感器進行顏色讀取的時間由上位機確定,上位機發送命令給數據采集設備,使其向所有顏色檢測設備發送讀取顏色命令;上位機發送命令使采集器對檢測并處理后的數據進行分別采集;最后逐個收集采集器采集到的數據,以此完成應用層與感知層的間接通信。
(1)數據采集設備數據發送模塊
其中上位機與數據采集設備通信過程中,采集設備通過串口1 完成對上位機命令的接收以及采集數據的發送。其串口1 中斷流程如圖8 所示。

圖8 上位機與采集設備通信流程圖
(2)上位機模塊
上位機采用C#軟件編寫,軟件界面如圖9 所示,各部分功能清晰可視化。可實現在命令區單獨發送命令或者在配置區與工作區進行一些配置后,通過開始檢測按鈕直接對各采集設備與檢測設備自動化控制,完成從檢測到在上位機顯示RGB 值,以及間隔一定時間重新采集的自動化流程。在上位機接受區可以接收到各從機檢測到的RGB 數據。

圖9 上位機與采集設備通信流程圖
根據上述系統的設計,使用C 語言完成軟件部分各模塊的編程,生成hex 文件后使用STC-ISP 軟件燒錄到數據采集設備和顏色檢測設備中,連接通信電路、打開上位機軟件,使用自動檢測模式對系統進行測試。
(1)數據準確性測試
將程序中由顏色檢測傳感器采集RGB 值并處理后的數據改為已知的固定數據,分別在設置不同CRC 校驗碼與數據和校驗碼的情況下對數據傳輸的準確性進行測試。
結果表明,只有當CRC 校驗碼與數據和校驗碼檢測正確時,才能傳輸成功,否則數據采集設備內部關于相應顏色檢測設備的傳輸標志位不置位,即表示傳輸失敗。由此可以看出此系統能夠準確地傳輸數據,并且在傳輸過程中出現錯誤導致數據不準確時會由于雙重冗余校驗導致傳輸失敗。
(2)穩定性測試
將檢測系統數據采集設備設置為四個,顏色采集設備設置為五個。系統連接好后,在自動檢測模式下進行自動化檢測待測物體RGB 值,經測試,系統在連續工作13 h 的情況下檢測與傳輸過程未中止,且在此期間內未丟失任何一組RGB 數據,可以看出系統穩定可靠。
(3)RGB 值檢測測試
使用此系統,經白平衡測試后,由顏色傳感器TCS3200D 檢測到的RGB 值對應的顏色與實物的對比如表2 所示。

表2 RGB 值測試
該對比圖在待測物體與檢測裝置光源約3 mm處測得,從該對比圖可以看出檢測效果較為理想。但限于TCS3200D 顏色傳感器性能,對待測物體與檢測裝置之間距離以及白平衡測試準度要求比較嚴格,需要仔細調試,否則得到的檢測結果誤差可能較大。
對于一些對RGB 值精度要求不高或者只需要進行對顏色進行區分的應用場合,比如進行糖尿病患者尿液血糖水平檢測[4],家具封裝中激光封邊的顏色檢測[5]等。本系統完全滿足此類工業中對顏色識別的使用要求。
該系統以STC8F2K16S2 為核心,通過顏色檢測設備對大量待測物體進行RGB 值讀取,處理后通過RS485 協議對數據進行準確、穩定的傳輸至數據采集設備,最后由數據采集設備將數據發送給上位機,通過上位機檢測到每一個待測物體對應的RGB 值。整個系統可以完全自動化的循環檢測,且可根據需求對單次檢測數量進行擴展。經測試后系統精度適中、成本低、功耗低、性能穩定,可以滿足一般工業中對顏色檢測的要求。