王亭嶺,焦金戈,王 琪,熊軍華,陳建明
(華北水利水電大學(xué)電力學(xué)院,河南鄭州 450011)
?
基于STM32的便攜高分辨率色度檢測儀設(shè)計
王亭嶺,焦金戈,王 琪,熊軍華,陳建明
(華北水利水電大學(xué)電力學(xué)院,河南鄭州 450011)
研制了一種基于STM32的便攜高精度色度檢測儀器。使用STM32F107芯片為主控制芯片,采集模塊使用TCS3200D型傳感器,不需添加A/D采集模塊,并且在測量步驟中加入了閉環(huán)反饋控制。提高了系統(tǒng)識別的分辨率,簡化了硬件電路,并且在算法上能減小測量誤差。硬件系統(tǒng)上添加了LCD顯示模塊,人機(jī)交互更加方便,添加的USB功能方便數(shù)據(jù)的上傳。軟件架構(gòu)基于μC /OS-II操作系統(tǒng),使得系統(tǒng)更加安全可靠。測試表明儀器能夠穩(wěn)定運(yùn)行,為工業(yè)現(xiàn)場的色度檢測提供了一種便攜式的高分辨率解決方案。
STM32;TCS3200D;μC /OS-Ⅱ;色度檢測
隨著現(xiàn)代工業(yè)生產(chǎn)向高速化、自動化方向發(fā)展,色彩識別廣泛應(yīng)用于各種工業(yè)檢測和自動控制領(lǐng)域,而生產(chǎn)過程中長期以來由人眼起主導(dǎo)作用的顏色識別工作將越來越多地被相應(yīng)的顏色傳感器所替代。傳統(tǒng)的色度傳感器都是在獨立的光電二極管上覆蓋濾光片進(jìn)行測量,并且輸出的都是模擬信號,需要外加A/D采樣電路。工業(yè)級的光柵傳感器雖然精度高,單一性強(qiáng),但其價格過于昂貴,體積過于龐大,測量過程過于復(fù)雜等因素同樣不適用于便攜式色度測量工作。本文使用TCS3200D型傳感器,它集成了RGB(Red‘Green’Blue)與無光(Clear)四種顏色分量的測量,輸出是一個頻率正比于光強(qiáng)的約50%占空比的方波,可直接與微控制器進(jìn)行通訊。相比于傳統(tǒng)的色度檢測儀器,該系統(tǒng)資源的到充分利用,界面更加友好,操作更加簡易,分辨率得到提升,整體性能也更加出彩。
通常所看到的物體的顏色,實際上是物體表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反應(yīng)。根據(jù)三原色原理可知,自然界的任何顏色都可以由3種顏色按不同的比例混合而成,而每種顏色都可以分解成3種基本顏色?;旌仙娘柡投扔?種顏色的比例來決定,混合色的亮度為3種顏色的亮度之和,只要知道3種顏色的亮度,就可以知道混合光所代表的物體。 當(dāng)發(fā)光二極管發(fā)的光穿過待測物體,打到TCS3200D芯片上,就能得到不同光的分量。通過MCU的計數(shù)器功能對波形進(jìn)行采集與計算,就能得到相應(yīng)分量的頻率,進(jìn)而得到相應(yīng)的顏色的亮度。通過外部鍵盤,能手動選擇需要的操作,進(jìn)行數(shù)據(jù)的測試、存儲、發(fā)送、刪除,并在屏幕上顯示出來。
在測試之前必須對LED發(fā)光強(qiáng)度進(jìn)行調(diào)整,由于發(fā)光二極管的發(fā)光不穩(wěn)定,系統(tǒng)每次上電會使二極管發(fā)光強(qiáng)度發(fā)生變化,通常光強(qiáng)變化會有1%以上的差異,這極大地影響了本儀器的分辨率。為了使LED的發(fā)光穩(wěn)定,在電路中加上了反饋調(diào)節(jié),并且在算法上求平均值,在此基礎(chǔ)上的系統(tǒng)分辨率能達(dá)到0.1%以上。
本系統(tǒng)基于STM32F107VCT6,主要由色度采集模塊、處理器模塊、電源模塊、數(shù)據(jù)存儲模塊、人機(jī)交互模塊組成,如圖1所示。
圖1 系統(tǒng)硬件架構(gòu)
STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M內(nèi)核,優(yōu)異的兼容性為開發(fā)人員帶來最大的設(shè)計靈活性。此次作為主控制處理器的是STM32F107VCT6。STM32F107是全新STM32互連型(Connectivity)系列微控制器中的一款性能較強(qiáng)產(chǎn)品,此芯片集成了各種高性能工業(yè)標(biāo)準(zhǔn)接口,時鐘頻率72 MHz,包括10個定時器、2個12位1-Msample/s ADC(模數(shù)轉(zhuǎn)換器)、2個12位DAC(數(shù)模轉(zhuǎn)換器)、2個I2C接口、5個USART接口和3個SPI端口和高質(zhì)量數(shù)字音頻接口IIS,另外STM32F107擁有全速USB(OTG)接口,可以方便地與U盤通訊,并包含2路CAN2.0B接口,以及以太網(wǎng)10/100 MAC模塊,能夠滿足此系統(tǒng)的設(shè)計要求。
TCS3200D屬于可編程彩色光/頻轉(zhuǎn)換器,芯片上面含有4×6的光電二極管陣列,可輸出為占空比約50%的方波,且輸出頻率與發(fā)光強(qiáng)度成正相關(guān)關(guān)系,量程可根據(jù)兩個控制輸入引腳進(jìn)行調(diào)整,通過控制S2與S3管腳就能在4種顏色的濾波片進(jìn)行切換使用,并且輸出的數(shù)字量可以直接接到微控制器或者其他邏輯電路,這使得電路中不再需要添加A/D轉(zhuǎn)換模塊。
為了保證測量的精度,還需要添加反饋裝置。反饋裝置電路原理圖如圖2所示。
圖2 光亮度反饋電路
SN74LVC4245是3.3 V到5 V轉(zhuǎn)換器,負(fù)責(zé)將STM32發(fā)出的3.3 V信號轉(zhuǎn)換成5 V發(fā)給X9C103X芯片。X9C103是100階高精度數(shù)字電位器,電位器阻值變化是階梯式增加。NCP4300在電路中起到射極跟隨器放大信號的作用。LM2791是一款開關(guān)電容電流調(diào)節(jié)器,接受的輸入電壓范圍為3~5.8 V并由可變電壓輸入控制輸出電流。檢測光強(qiáng)信號首先從NCP4300基極輸入,從發(fā)射極輸出至微控制器,微控制器根據(jù)數(shù)值大小控制NCP4300的阻值來改變LM2791的輸入電壓,從而改變其輸出電流,最后達(dá)到控制LED光強(qiáng)的目的。
存儲模塊使用的是W25Q128FV,屬于NOR串行閃存器件,容量有128 Mbite,能通過SPI方式進(jìn)行讀寫操作。測試得到光的各個分量值以后,對比W25Q128中的數(shù)據(jù)庫,就能得到這種光所對應(yīng)的物質(zhì)。
STM32F107VCT6支持USB OTG功能,該儀器能夠通過USB接口與外界通訊。本次使用的是它的主機(jī)模式,在此模式下,OTG_FS支持全速和低速模式,并且完全支持USB2.0協(xié)議。在此基礎(chǔ)上,通過USB接口能將測量數(shù)據(jù)上載到U盤中,方便數(shù)據(jù)的查看。
本設(shè)計使用的STM32自帶標(biāo)準(zhǔn)外設(shè)庫。STM32庫是由ST公司針對STM32提供的函數(shù)接口,即API 。它使得開發(fā)人員得以脫離最底層的寄存器操作,有開發(fā)快速,易于閱讀,維護(hù)成本低等優(yōu)點。從ST公司網(wǎng)站下載最新STM32標(biāo)注外設(shè)庫,使用的版本是V3.5.0。
為了采集TCS3200D傳輸?shù)男盘?,需要使用STM32F107VCT的定時器功能,配置為外部時鐘模式2(External clock Mode2)。
數(shù)據(jù)采集的流程圖如圖3所示。
圖3 數(shù)據(jù)采集的流程圖
首先需要配置系統(tǒng)定時器,使之能運(yùn)行準(zhǔn)確的延時函數(shù)。然后配置相應(yīng)的I/O管腳并開啟他們的時鐘。其次需要配置通用定時器時鐘。這里管腳選擇PA0管腳,根據(jù)其管腳定義,定時器選用的是TIM2。首先聲明定時器結(jié)構(gòu)體TIM_TimeBaseStructure,再復(fù)位TIM2,接著對結(jié)構(gòu)體下TIM_Period ,TIM_Prescaler ,TIM_ClockDivision ,TIM_CounterMode這4個變量賦值。最后開啟外部時鐘模式2,計數(shù)器清零,使能TIM2時鐘,就完成了對定時器時鐘的配置。
至此即可完成對光亮度數(shù)據(jù)的采集,采集10組數(shù)據(jù)并求平均值,然后根據(jù)采集到的數(shù)據(jù)在數(shù)據(jù)庫中尋找最接近的數(shù)據(jù),這個最接近的數(shù)據(jù)就是待測光所對應(yīng)的物質(zhì)。
μC /OS-Ⅱ是一個完整的、可移植、可固化、可裁剪的搶占式實時多任務(wù)內(nèi)核。μC/OS-Ⅱ絕大部分的代碼是用ANSI的C語言編寫的,包含一小部分匯編代碼,完全能在STM32平臺上運(yùn)行,并且源碼公開,便于移植和維護(hù)。
文中將各個模塊的程序當(dāng)成任務(wù),將工程文件都放在USER文件夾,在STM32的架構(gòu)上再添加HARDWARE文件,用來放置外設(shè)庫文件;添加UCOSⅡ-CORE,UCOSⅡ-PORT,UCOSⅡ-CONFIG這3個文件,用來放置UCOSⅡ的配置文件。
首先,初始化μC /OS-Ⅱ并創(chuàng)建外設(shè)硬件驅(qū)動程序BSP_Init();建立了1個開始任務(wù),用來啟動μC /OS-II操作系統(tǒng)。建立了6個子任務(wù),用來執(zhí)行用戶程序。移植時只需要把任務(wù)子函數(shù)編寫好,給任務(wù)分配堆棧和優(yōu)先級,方便前期開發(fā)與后期維護(hù)工作。最后調(diào)用OSStart()這個函數(shù)來開啟μC /OS-Ⅱ。表1列出了需要執(zhí)行的任務(wù)以及其優(yōu)先級和堆棧大小。
表1 任務(wù)屬性
此次,添加了6個子任務(wù)。由于主任務(wù)是進(jìn)行色度檢測,所以將ctrl_task_1這個任務(wù)的堆棧設(shè)置為1 024,保證任務(wù)執(zhí)行流暢進(jìn)行。在中斷程序中,由于不希望被打斷,需要加上OSIntEnter() 和 OSIntExit()這兩個指令來控制中斷關(guān)閉與開啟。
由于本次使用的定時器和USB使用的定時器重復(fù)了,需要在定時器二的中斷部分添加標(biāo)志位,來判斷到底是執(zhí)行哪個任務(wù)的中斷函數(shù)。
如表2所示,在標(biāo)準(zhǔn)頻率發(fā)生器輸出的條件下,使用本測試儀器進(jìn)行波形采集,頻率從600 kHz~10 Hz,信號接收并處理后,精度達(dá)到0.01%。
表2 測試結(jié)果
待LED發(fā)光狀態(tài)穩(wěn)定后,使用TCS3200D接收光信號,接收R,G,B,C 4個顏色濾光片的分量,經(jīng)過各種算法處理后的信號精度達(dá)到0.03%左右,完全達(dá)到當(dāng)初0.1%的設(shè)計要求。本儀器在μC /OS-II操作系統(tǒng)下運(yùn)行穩(wěn)定流暢,數(shù)據(jù)的測試、查看、存儲、發(fā)送功能均能正常工作,滿足當(dāng)初設(shè)計要求。
傳統(tǒng)的色度檢測儀雖然精度高,但體積過于龐大并且操作復(fù)雜。本文中基于STM32研制的便攜高精度色度檢測儀使用了閉環(huán)反饋控制,具有體積小、質(zhì)量輕、操作簡易、精度高等優(yōu)點。并且此儀器添加了USB的主機(jī)功能,能將數(shù)據(jù)方便上傳。此外軟件系統(tǒng)上增加了操作系統(tǒng),增強(qiáng)了系統(tǒng)的實時性與穩(wěn)定性,方便日后對系統(tǒng)的擴(kuò)展與升級。適用于各種工業(yè)現(xiàn)場環(huán)境下的快速色度檢測,也適用于學(xué)校的科研教學(xué)工作,具有很強(qiáng)的實用性。
[1] 王世龍,王麗娜,王宏博,等.多功能氣動誤差測量儀.儀表技術(shù)與傳感器,2010(9):27-29.
[2] 李錦明,李娜娜,馬游春.基于高精度A/D的石英撓性加速度計數(shù)據(jù)采集的設(shè)計.儀表技術(shù)與傳感器,2012(2):22-24.
[3] 李愛蓮,解韶峰,武慧挺.基于STM32的罐式橡膠硫化系統(tǒng)智能控制的實現(xiàn).計算機(jī)測量與控制,2013,21(7):1838-1842.
[4] 楊光祥,劉渝新.基于STM32的振弦式頻率測量儀器研究.計算機(jī)測量與控制,2013,21(6):1708-1710.
[5] LABROSSE J J.嵌入式實時操作系統(tǒng)μC/OS-Ⅲ.宮輝,譯.北京:北京航空航天大學(xué)出版社,2012.
[6] 任哲.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ原理及應(yīng)用.2版.北京:北京航空航天大學(xué)出版社,2009:2-12.
[7] 張菁,楊應(yīng)平,章金敏,等.基于TCS3200D的顏色再現(xiàn)與分類.武漢大學(xué)學(xué)報(工學(xué)版),2013(2):257-260.
[8] 鐘銳,徐宇柘,陸生禮.基于STM32的開關(guān)磁阻電機(jī)角度位置控制系統(tǒng).計算機(jī)測量與控制,2012,20(11):2961-2964.
Portable High-resolution Chroma Analyzer Based on STM32
WANG Ting-ling,JIAO Jin-ge,WANG Qi ,XIONG Jun-hua,CHEN Jian-ming
(Department of Electric Power, North China Institute of Water Conservancy and Hydroelectric Power, Zhengzhou 450011, China)
A design of high-precision STM32-based portable chroma analyzer was developped. STM32F107 ST-Microelectronics chip-based control chip was used ,and the acquisition module used TCS3200D sensor, without adding A/D acquisition module, and the closed-loop feedback control was joined in the acquisition step, thus improving the resolution of the system identification and simplifying the hardware circuit, and the algorithm can reduce the measurement error. Human-computer interaction is more convenient adding LCD display module, so as to facilitating data because of USB functionality. Software architecture was based on μC / OS-II operating system, making the system more secure. Tests show that the instrument has stable operation, thus providing a portable solution for high-resolution of analysis detection for industrial site .
STM32;TCS3200D;μC /OS-II; chrome analysis
2015-01-31 收修改稿日期:2015-06-03
TP29
A
1002-1841(2015)11-0049-03
王亭嶺(1975—),副教授,碩士,主要從事嵌入式系統(tǒng)、現(xiàn)代檢測技術(shù)及電力系統(tǒng)自動化方面的研究。E-mail:wtl@ncwu.edu.cn