王小艷,肖 勇,葛曉宇,孫大雷,鄭 哲
(沈陽化工大學(xué) 信息工程學(xué)院,遼寧 沈陽 110142)
光電傳感器是各種光電檢測系統(tǒng)中實(shí)現(xiàn)光電轉(zhuǎn)換的關(guān)鍵元件,它首先把被測量的變化轉(zhuǎn)換成光信號(hào)(紅外、可見及紫外光輻射)的變化,然后借助光電元件進(jìn)一步將光信號(hào)轉(zhuǎn)換成電信號(hào)[1].光電檢測方法具有精度高、反應(yīng)快、非接觸等優(yōu)點(diǎn),而且可測參數(shù)多,傳感器的結(jié)構(gòu)簡單,形式靈活多樣,因此,光電式傳感器在檢測和控制中應(yīng)用非常廣泛[2].
縱觀現(xiàn)有的傳感器都是以單片機(jī)為核心,輔以敏感元件作為檢測裝置,通過AD 轉(zhuǎn)換將檢測數(shù)據(jù)送至單片機(jī)中處理[3].本文基于光電傳感的智能檢測技術(shù),制定傳感器總體結(jié)構(gòu)方案,采用C8051F330 單片機(jī)作為控制器,對(duì)被檢物體的存在與否進(jìn)行檢測.由于光電傳感器檢測具有要求響應(yīng)時(shí)間快、抗干擾能力強(qiáng)等特點(diǎn),因此,設(shè)計(jì)了一套微弱電信號(hào)采集與處理系統(tǒng),以及光源的脈沖驅(qū)動(dòng)電路.系統(tǒng)首先對(duì)接受到的光電信號(hào)進(jìn)行預(yù)放大,接著進(jìn)行AD 轉(zhuǎn)換,然后與預(yù)設(shè)的閾值比較,并采用擾動(dòng)法和表決法對(duì)物體的存在與否進(jìn)行決策判斷,最終將結(jié)果輸出.
光電傳感器由電源、發(fā)光二極管(LED)、驅(qū)動(dòng)電路、光敏元件、信號(hào)放大電路、控制器和輸出電路組成[4],如圖1 所示.
圖1 光電傳感器結(jié)構(gòu)框圖Fig.1 Structure of fiber-optic photoelectric sensor
光電傳感器的光源由控制器產(chǎn)生的脈沖信號(hào)驅(qū)動(dòng),光線經(jīng)被檢物反射或折射后,造成光強(qiáng)一定程度的衰減,并通過接收電路放大和控制器處理,輸出檢測結(jié)果.其中,控制器對(duì)信號(hào)的穩(wěn)定檢測是影響傳感器檢測靈敏度的最重要因素之一.
光電傳感器信號(hào)檢測電路模塊的工作電壓為5 V,而工業(yè)用電電壓通常為10~30 V,因此,需要通過穩(wěn)壓芯片進(jìn)行降壓處理.選用穩(wěn)壓芯片LM2576,經(jīng)過降壓后輸出5 V 電壓.此外,由于C8051F330 單片機(jī)的供電電壓為3.3 V,因此,還需要采用另外一個(gè)穩(wěn)壓芯片ASM1117-3.3 對(duì)5 V 電壓再次降壓.
光電傳感器的發(fā)射光源選用Everlight 公司的IR333C-A 紅外發(fā)光二極管.該發(fā)光二極管具有可靠性高、輻射強(qiáng)度大、正向電壓低等特點(diǎn),適合于檢測型傳感器.通過設(shè)置單片機(jī)程序輸出脈沖信號(hào)PLS1 來驅(qū)動(dòng)光源,經(jīng)NPN 三極管進(jìn)行功率放大,以增加信號(hào)檢測距離.光源驅(qū)動(dòng)電路如圖2 所示.
圖2 光源驅(qū)動(dòng)電路Fig.2 Transmission electronics of photoelectric sensors
光電接收元件選用Everlight 公司的PD333-3C 紅外光敏二極管,與紅外發(fā)光二極管配套使用,將經(jīng)物體衰減后的光信號(hào)轉(zhuǎn)換為電信號(hào),其信號(hào)強(qiáng)弱代表待檢測物體的狀態(tài).因?yàn)楣怆姸O管的直接輸出電流很弱,容易受干擾噪聲的影響,所以,設(shè)計(jì)時(shí)采用了低噪聲前置放大電路來實(shí)現(xiàn)對(duì)微弱電信號(hào)的放大和濾波,增大信號(hào)幅值,以便單片機(jī)的A/D 轉(zhuǎn)換器可進(jìn)行數(shù)據(jù)轉(zhuǎn)換.
控制器采用的是Silicon labs 的C8051F330.片上集成了豐富的外設(shè),極大地降低了對(duì)外圍元器件的需求,整個(gè)系統(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è)計(jì)[6].此外C8051F330 單片機(jī)內(nèi)置的溫度傳感器可用于溫度的檢測,便于進(jìn)行傳感器溫度補(bǔ)償?shù)鹊难芯?
輸出顯示電路由74HC138 和74HC164 控制4 位數(shù)碼管顯示,74HC138 用于位選通,74HC164 用于段選通.根據(jù)檢測到的信號(hào)強(qiáng)弱由單片機(jī)輸出信號(hào)控制74HC138 和74HC164,最終通過LED 顯示傳感器的檢測結(jié)果.
系統(tǒng)的信號(hào)處理方案設(shè)計(jì)主要包括:基于C 語言的單片機(jī)驅(qū)動(dòng)光源脈沖信號(hào)的產(chǎn)生,A/D 轉(zhuǎn)換,采集信號(hào)的處理,以及信號(hào)輸出及顯示.圖3 為主程序流程.單片機(jī)對(duì)采集到的電壓值轉(zhuǎn)換為數(shù)字信號(hào),與預(yù)設(shè)的閾值進(jìn)行比較,超過閾值表示檢測到有效信號(hào),低于閾值表示沒有檢測到有效信號(hào).并在信號(hào)檢測算法中加入擾動(dòng)處理和表決法處理,增加了信號(hào)檢測的穩(wěn)定性和準(zhǔn)確性[7-8].
光電傳感器光源驅(qū)動(dòng)所需的脈沖信號(hào)產(chǎn)生程序如圖4 所示,在主程序初始化之后,設(shè)置計(jì)數(shù)器0 為8 位自動(dòng)重載計(jì)數(shù)器,且裝入初值控制計(jì)數(shù)器從開始計(jì)數(shù)到溢出的時(shí)間為100 μs,即單個(gè)脈沖周期時(shí)間,等價(jià)于頻率為10 kHz,以滿足響應(yīng)時(shí)間的設(shè)計(jì)要求.進(jìn)入循環(huán)程序,P1.0 此時(shí)設(shè)為高電平,等到被檢信號(hào)即將達(dá)到峰值時(shí),P1.0 設(shè)為低電平,該最優(yōu)脈寬時(shí)間通過實(shí)驗(yàn)觀察為7.2 μs.等待計(jì)數(shù)器0 溢出,然后計(jì)數(shù)器0溢出標(biāo)志位清零并自動(dòng)重載計(jì)數(shù),程序循環(huán)執(zhí)行.據(jù)此,P1.0 引腳的輸出脈沖信號(hào)呈周期性的變化,占空比為7.2 %,以此脈沖信號(hào)驅(qū)動(dòng)光源發(fā)光二極管.
圖3 物體檢測主程序流程Fig.3 Main program flow chart of object detection
圖4 脈沖信號(hào)程序流程Fig.4 Program flow chart of pulse signal
單片機(jī)對(duì)放大后的接收信號(hào)進(jìn)行A/D 轉(zhuǎn)換及數(shù)據(jù)處理,由P0.2 引腳作為ADC0 輸入的正輸入通道,檢測信號(hào)由此引腳輸入.在P1.0 引腳由高電平變?yōu)榈碗娖街埃每臻e時(shí)間清除A/D 轉(zhuǎn)換結(jié)束中斷標(biāo)志位.ADC 轉(zhuǎn)換的采樣點(diǎn)要控制在接收峰值附近.通過實(shí)驗(yàn)觀察,ADC 開始轉(zhuǎn)換的采樣時(shí)間點(diǎn)設(shè)在P1.0 引腳變?yōu)榈碗娖胶螅駻D0BUSY 寫“1”啟動(dòng)ADC0 轉(zhuǎn)換,采用查詢等待方式判斷AD 轉(zhuǎn)換控制寄存器中的ADCINT 位確定是否轉(zhuǎn)換完畢.轉(zhuǎn)換后從ADC數(shù)據(jù)字ADC0H 和ADC0L 中讀取轉(zhuǎn)換數(shù)據(jù),并將該數(shù)字信號(hào)放入數(shù)據(jù)緩沖區(qū).
AD 轉(zhuǎn)換后的數(shù)字信號(hào)要與設(shè)定的閾值進(jìn)行比較,判斷是否達(dá)到設(shè)定的強(qiáng)度.系統(tǒng)設(shè)定的閾值為1.6 V,大于1.6 V 表示檢測到有效信號(hào),小于1.6 V 表示沒有檢測到有效信號(hào).但是由于受到環(huán)境等因素的影響,檢測信號(hào)會(huì)有一定的波動(dòng)性,因而通過信噪比分析,采取在10 %的擾動(dòng)范圍內(nèi)對(duì)信號(hào)進(jìn)行處理,以提高檢測的穩(wěn)定性.因此,信號(hào)上升和下降閾值電壓可分別設(shè)定為1.76 V 和1.44 V,大于1.76 V 表示檢測到有效信號(hào),小于1.44 V 表示沒有檢測到有效信號(hào).當(dāng)電壓在1.76 和1.44 之間時(shí),要結(jié)合前次狀態(tài)進(jìn)行判斷.
為了進(jìn)一步提高抗干擾能力和傳感器檢測的可靠性,在滿足光電傳感器檢測響應(yīng)時(shí)間要求的前提下,采用了較為復(fù)雜的表決法進(jìn)行信號(hào)處理,即只有當(dāng)連續(xù)出現(xiàn)多個(gè)超過一定閾值的有效信號(hào)時(shí),才表示檢測到物體的存在.譬如,如果連續(xù)出現(xiàn)5 個(gè)有效信號(hào),表示檢測到物體存在,否則重新表決.該檢測方法大大提高了光電傳感器檢測的可靠性和穩(wěn)定性.
圖5 為示波器檢測到的單片機(jī)引腳P1.0 產(chǎn)生的脈沖效果圖,其中脈沖信號(hào)為光源驅(qū)動(dòng)脈沖,周期100 μs,脈寬為7 μs 左右.
圖6(a)所示為示波器檢測到的脈沖信號(hào)與接收到的放大模擬信號(hào)對(duì)比圖.上面波形為經(jīng)過信號(hào)放大器后的模擬信號(hào).圖6(b)為單個(gè)脈沖和檢測信號(hào)的對(duì)比圖.
圖5 脈沖信號(hào)Fig.5 Pulsed signal
圖6 脈沖信號(hào)與檢測信號(hào)Fig.6 Pulse signal and detection signal
基于單片機(jī)的ADC 模塊,對(duì)檢測信號(hào)進(jìn)行處理,通過閾值的設(shè)定、擾動(dòng)濾波和表決法處理,最終的輸出結(jié)果由LED 顯示.如圖7(a)所示,當(dāng)LED 顯示為0,表示檢測到物體不存在.反之,當(dāng)檢測到物體存在時(shí)LED 顯示為1,如圖7(b)所示.
圖7 LED 顯示實(shí)驗(yàn)裝置Fig.7 Experimental results
制定了一種基于C8051F330 單片機(jī)的光電傳感器信號(hào)檢測方案,通過LED 實(shí)時(shí)顯示光電傳感器檢測物體存在與否的結(jié)果.實(shí)驗(yàn)表明:該檢測方案通過對(duì)檢測信號(hào)的閾值設(shè)定、擾動(dòng)濾波和表決法處理,滿足了光電傳感器對(duì)物體檢測時(shí)響應(yīng)時(shí)間快和抗干擾能力強(qiáng)的要求,達(dá)到了對(duì)干擾信號(hào)的進(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è)計(jì)中的應(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 混合信號(hào)ISP FLASH 微控制器數(shù)據(jù)手冊(cè)[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.