王小艷,肖 勇,葛曉宇,孫大雷,鄭 哲
(沈陽化工大學(xué) 信息工程學(xué)院,遼寧 沈陽 110142)
光電傳感器是各種光電檢測系統(tǒng)中實現(xiàn)光電轉(zhuǎn)換的關(guān)鍵元件,它首先把被測量的變化轉(zhuǎn)換成光信號(紅外、可見及紫外光輻射)的變化,然后借助光電元件進(jìn)一步將光信號轉(zhuǎn)換成電信號[1].光電檢測方法具有精度高、反應(yīng)快、非接觸等優(yōu)點,而且可測參數(shù)多,傳感器的結(jié)構(gòu)簡單,形式靈活多樣,因此,光電式傳感器在檢測和控制中應(yīng)用非常廣泛[2].
縱觀現(xiàn)有的傳感器都是以單片機(jī)為核心,輔以敏感元件作為檢測裝置,通過AD 轉(zhuǎn)換將檢測數(shù)據(jù)送至單片機(jī)中處理[3].本文基于光電傳感的智能檢測技術(shù),制定傳感器總體結(jié)構(gòu)方案,采用C8051F330 單片機(jī)作為控制器,對被檢物體的存在與否進(jìn)行檢測.由于光電傳感器檢測具有要求響應(yīng)時間快、抗干擾能力強(qiáng)等特點,因此,設(shè)計了一套微弱電信號采集與處理系統(tǒng),以及光源的脈沖驅(qū)動電路.系統(tǒng)首先對接受到的光電信號進(jìn)行預(yù)放大,接著進(jìn)行AD 轉(zhuǎn)換,然后與預(yù)設(shè)的閾值比較,并采用擾動法和表決法對物體的存在與否進(jìn)行決策判斷,最終將結(jié)果輸出.
光電傳感器由電源、發(fā)光二極管(LED)、驅(qū)動電路、光敏元件、信號放大電路、控制器和輸出電路組成[4],如圖1 所示.
圖1 光電傳感器結(jié)構(gòu)框圖Fig.1 Structure of fiber-optic photoelectric sensor
光電傳感器的光源由控制器產(chǎn)生的脈沖信號驅(qū)動,光線經(jīng)被檢物反射或折射后,造成光強(qiáng)一定程度的衰減,并通過接收電路放大和控制器處理,輸出檢測結(jié)果.其中,控制器對信號的穩(wěn)定檢測是影響傳感器檢測靈敏度的最重要因素之一.
光電傳感器信號檢測電路模塊的工作電壓為5 V,而工業(yè)用電電壓通常為10~30 V,因此,需要通過穩(wěn)壓芯片進(jìn)行降壓處理.選用穩(wěn)壓芯片LM2576,經(jīng)過降壓后輸出5 V 電壓.此外,由于C8051F330 單片機(jī)的供電電壓為3.3 V,因此,還需要采用另外一個穩(wěn)壓芯片ASM1117-3.3 對5 V 電壓再次降壓.
光電傳感器的發(fā)射光源選用Everlight 公司的IR333C-A 紅外發(fā)光二極管.該發(fā)光二極管具有可靠性高、輻射強(qiáng)度大、正向電壓低等特點,適合于檢測型傳感器.通過設(shè)置單片機(jī)程序輸出脈沖信號PLS1 來驅(qū)動光源,經(jīng)NPN 三極管進(jìn)行功率放大,以增加信號檢測距離.光源驅(qū)動電路如圖2 所示.
圖2 光源驅(qū)動電路Fig.2 Transmission electronics of photoelectric sensors
光電接收元件選用Everlight 公司的PD333-3C 紅外光敏二極管,與紅外發(fā)光二極管配套使用,將經(jīng)物體衰減后的光信號轉(zhuǎn)換為電信號,其信號強(qiáng)弱代表待檢測物體的狀態(tài).因為光電二極管的直接輸出電流很弱,容易受干擾噪聲的影響,所以,設(shè)計時采用了低噪聲前置放大電路來實現(xiàn)對微弱電信號的放大和濾波,增大信號幅值,以便單片機(jī)的A/D 轉(zhuǎn)換器可進(jìn)行數(shù)據(jù)轉(zhuǎn)換.
控制器采用的是Silicon labs 的C8051F330.片上集成了豐富的外設(shè),極大地降低了對外圍元器件的需求,整個系統(tǒng)成本 比較低[5].C8051F330 單片機(jī)內(nèi)部集成有16 通道的10 位ADC,可直接使用內(nèi)部A/D 轉(zhuǎn)換器進(jìn)行數(shù)據(jù)轉(zhuǎn)換,并且片內(nèi)已集成晶振,無需外接晶振,從而簡化了電路設(shè)計[6].此外C8051F330 單片機(jī)內(nèi)置的溫度傳感器可用于溫度的檢測,便于進(jìn)行傳感器溫度補償?shù)鹊难芯?
輸出顯示電路由74HC138 和74HC164 控制4 位數(shù)碼管顯示,74HC138 用于位選通,74HC164 用于段選通.根據(jù)檢測到的信號強(qiáng)弱由單片機(jī)輸出信號控制74HC138 和74HC164,最終通過LED 顯示傳感器的檢測結(jié)果.
系統(tǒng)的信號處理方案設(shè)計主要包括:基于C 語言的單片機(jī)驅(qū)動光源脈沖信號的產(chǎn)生,A/D 轉(zhuǎn)換,采集信號的處理,以及信號輸出及顯示.圖3 為主程序流程.單片機(jī)對采集到的電壓值轉(zhuǎn)換為數(shù)字信號,與預(yù)設(shè)的閾值進(jìn)行比較,超過閾值表示檢測到有效信號,低于閾值表示沒有檢測到有效信號.并在信號檢測算法中加入擾動處理和表決法處理,增加了信號檢測的穩(wěn)定性和準(zhǔn)確性[7-8].
光電傳感器光源驅(qū)動所需的脈沖信號產(chǎn)生程序如圖4 所示,在主程序初始化之后,設(shè)置計數(shù)器0 為8 位自動重載計數(shù)器,且裝入初值控制計數(shù)器從開始計數(shù)到溢出的時間為100 μs,即單個脈沖周期時間,等價于頻率為10 kHz,以滿足響應(yīng)時間的設(shè)計要求.進(jìn)入循環(huán)程序,P1.0 此時設(shè)為高電平,等到被檢信號即將達(dá)到峰值時,P1.0 設(shè)為低電平,該最優(yōu)脈寬時間通過實驗觀察為7.2 μs.等待計數(shù)器0 溢出,然后計數(shù)器0溢出標(biāo)志位清零并自動重載計數(shù),程序循環(huán)執(zhí)行.據(jù)此,P1.0 引腳的輸出脈沖信號呈周期性的變化,占空比為7.2 %,以此脈沖信號驅(qū)動光源發(fā)光二極管.
圖3 物體檢測主程序流程Fig.3 Main program flow chart of object detection
圖4 脈沖信號程序流程Fig.4 Program flow chart of pulse signal
單片機(jī)對放大后的接收信號進(jìn)行A/D 轉(zhuǎn)換及數(shù)據(jù)處理,由P0.2 引腳作為ADC0 輸入的正輸入通道,檢測信號由此引腳輸入.在P1.0 引腳由高電平變?yōu)榈碗娖街?,利用空閑時間清除A/D 轉(zhuǎn)換結(jié)束中斷標(biāo)志位.ADC 轉(zhuǎn)換的采樣點要控制在接收峰值附近.通過實驗觀察,ADC 開始轉(zhuǎn)換的采樣時間點設(shè)在P1.0 引腳變?yōu)榈碗娖胶?,向AD0BUSY 寫“1”啟動ADC0 轉(zhuǎn)換,采用查詢等待方式判斷AD 轉(zhuǎn)換控制寄存器中的ADCINT 位確定是否轉(zhuǎn)換完畢.轉(zhuǎn)換后從ADC數(shù)據(jù)字ADC0H 和ADC0L 中讀取轉(zhuǎn)換數(shù)據(jù),并將該數(shù)字信號放入數(shù)據(jù)緩沖區(qū).
AD 轉(zhuǎn)換后的數(shù)字信號要與設(shè)定的閾值進(jìn)行比較,判斷是否達(dá)到設(shè)定的強(qiáng)度.系統(tǒng)設(shè)定的閾值為1.6 V,大于1.6 V 表示檢測到有效信號,小于1.6 V 表示沒有檢測到有效信號.但是由于受到環(huán)境等因素的影響,檢測信號會有一定的波動性,因而通過信噪比分析,采取在10 %的擾動范圍內(nèi)對信號進(jìn)行處理,以提高檢測的穩(wěn)定性.因此,信號上升和下降閾值電壓可分別設(shè)定為1.76 V 和1.44 V,大于1.76 V 表示檢測到有效信號,小于1.44 V 表示沒有檢測到有效信號.當(dāng)電壓在1.76 和1.44 之間時,要結(jié)合前次狀態(tài)進(jìn)行判斷.
為了進(jìn)一步提高抗干擾能力和傳感器檢測的可靠性,在滿足光電傳感器檢測響應(yīng)時間要求的前提下,采用了較為復(fù)雜的表決法進(jìn)行信號處理,即只有當(dāng)連續(xù)出現(xiàn)多個超過一定閾值的有效信號時,才表示檢測到物體的存在.譬如,如果連續(xù)出現(xiàn)5 個有效信號,表示檢測到物體存在,否則重新表決.該檢測方法大大提高了光電傳感器檢測的可靠性和穩(wěn)定性.
圖5 為示波器檢測到的單片機(jī)引腳P1.0 產(chǎn)生的脈沖效果圖,其中脈沖信號為光源驅(qū)動脈沖,周期100 μs,脈寬為7 μs 左右.
圖6(a)所示為示波器檢測到的脈沖信號與接收到的放大模擬信號對比圖.上面波形為經(jīng)過信號放大器后的模擬信號.圖6(b)為單個脈沖和檢測信號的對比圖.
圖5 脈沖信號Fig.5 Pulsed signal
圖6 脈沖信號與檢測信號Fig.6 Pulse signal and detection signal
基于單片機(jī)的ADC 模塊,對檢測信號進(jìn)行處理,通過閾值的設(shè)定、擾動濾波和表決法處理,最終的輸出結(jié)果由LED 顯示.如圖7(a)所示,當(dāng)LED 顯示為0,表示檢測到物體不存在.反之,當(dāng)檢測到物體存在時LED 顯示為1,如圖7(b)所示.
圖7 LED 顯示實驗裝置Fig.7 Experimental results
制定了一種基于C8051F330 單片機(jī)的光電傳感器信號檢測方案,通過LED 實時顯示光電傳感器檢測物體存在與否的結(jié)果.實驗表明:該檢測方案通過對檢測信號的閾值設(shè)定、擾動濾波和表決法處理,滿足了光電傳感器對物體檢測時響應(yīng)時間快和抗干擾能力強(qiáng)的要求,達(dá)到了對干擾信號的進(jìn)一步抑制和提高傳感器檢測可靠性的目的.
[1]孟立凡,藍(lán)金輝.傳感器原理與應(yīng)用[M].北京:電子工業(yè)出版社,2007:133-154.
[2]Rahmat M,Rozali S M,Wahab N A,et al.Application of Draw Wire Sensor in Position Tracking of Electro-hydraulic Actuator System [J].International Journal of Smart Sensing and Intelligent Systems,2010,3(4):736-755.
[3]張旭.單片機(jī)技術(shù)在傳感器設(shè)計中的應(yīng)用[J].機(jī)電信息,2011(36):132-133.
[4]Xiao Y,Wang X Y,Zhu K Y,et al.A Method for Fine Bonding Wire Detection Using Light Diffraction[J].International Journal of Smart Sensing and Intelligent Systems,2010,4(1):112-124.
[5]潘琢金.C8051F330/1 混合信號ISP FLASH 微控制器數(shù)據(jù)手冊[EB/OL].(2003-12)[2012-11-10]http://www.doc88.com/p-31575342205.html
[6]趙世平,王賽.STC12C2052AD 單片機(jī)在智能傳感器開發(fā)中的應(yīng)用[J].軟件導(dǎo)刊,2008(12):75-76.
[7]童長飛.C8051F 系列單片機(jī)開發(fā)與C 語 言 編 程[M].北京:北京航空航天大學(xué)出版社,2005:56-120.
[8]鮑可進(jìn).C8051F 單片機(jī)原理及應(yīng)用[M].北京:中國電力出版社,2006:219-225.