用EM78P156E單片機(jī)控制紅外編碼探測(cè)障礙物
1 探測(cè)障礙的原理
在室內(nèi)自動(dòng)感知障礙的設(shè)備中,常使用紅外線(xiàn)探測(cè)障礙物的存在與否。探測(cè)的基本原理是:在測(cè)量的范圍內(nèi),主動(dòng)向探測(cè)方向發(fā)射紅外信號(hào),如果存在障礙物,就會(huì)把發(fā)射的信號(hào)反射回發(fā)送端。在發(fā)送端,如果收到反射的信號(hào),就確認(rèn)障礙物的存在。
但是在實(shí)際應(yīng)用中,紅外干擾源較多;而且在有反射光的情況下,由于光線(xiàn)的干擾,很容易判斷失誤,出現(xiàn)虛警。因此,有些設(shè)備在發(fā)射信號(hào)時(shí),改進(jìn)為發(fā)送一串連續(xù)的紅外脈沖,然后接收反射的信號(hào)。如果接收到的紅外脈沖數(shù)量超過(guò)某一門(mén)限值時(shí),就判斷障礙存在。這種方法盡管在一定程度上可以降低虛警率,但實(shí)驗(yàn)表明,在較強(qiáng)的反射光和使用電子鎮(zhèn)流器方式的日光燈起輝時(shí),仍很容易出現(xiàn)干擾現(xiàn)象。
本文提出解決干擾的方案是:由單片機(jī)控制發(fā)射有一定意義的紅外編碼脈沖串,同時(shí),單片機(jī)接收該脈沖串。如果接收到的信號(hào)和發(fā)射的信號(hào)基本一致,才判斷為有障礙物的存在。
探測(cè)障礙的原理框圖如圖1所示。
圖1 探測(cè)障礙原理框圖
2 電路設(shè)計(jì)
在實(shí)測(cè)電路中,使用臺(tái)灣義隆公司的EM78P156E單片機(jī),紅外發(fā)射管為MIE552A2,紅外接收頭為寧波甬晶微電子有限公司的NB0038,電路如圖2所示。
圖2 紅外編碼探測(cè)障礙電路
當(dāng)需要探測(cè)障礙物時(shí),單片機(jī)U1首先讓U2紅外接收頭 NB0038接通電源。在發(fā)射電路中,D2為紅外發(fā)射管,U1的P51引腳輸出編碼脈沖,通過(guò)Q2控制D2發(fā)射紅外信號(hào)。當(dāng)有紅外信號(hào)進(jìn)入接收頭時(shí),U2的輸出端出現(xiàn)高電位,并送到U1的P67引腳。
NB0038是用于紅外接收的一體化接收頭,采用環(huán)氧樹(shù)脂封裝,把獨(dú)立的PIN二極管同前置放大器集成在同一封裝上。其內(nèi)部結(jié)構(gòu)框圖如圖3所示。接收的載波中心頻率為38.0 kHz。
圖3 NB0038內(nèi)部結(jié)構(gòu)框圖
3 編碼脈沖的產(chǎn)生和接收
在實(shí)際使用中,由于EM78P156E單片機(jī)的工作頻率是4 MHz,載波脈沖采用26 μs,其中高電位是10 μs,低電位是16 μs,占空比是38.5%。在產(chǎn)生載波時(shí),要檢測(cè)是否有反射信號(hào)。反射信號(hào)的檢測(cè)是單片機(jī)利用低電位的16 μs時(shí)間內(nèi)判斷接收引腳是否存在相應(yīng)的發(fā)射信號(hào)。
為了確定需要編碼的調(diào)制信號(hào)脈沖寬度,在1 000個(gè)NB0038的接收頭中,隨意選擇 30個(gè)作實(shí)驗(yàn)。在約20 cm的距離內(nèi)出現(xiàn)表面不光滑的障礙物,從單片機(jī)通過(guò)紅外發(fā)射管發(fā)射信號(hào)到NB0038接收信號(hào),檢測(cè)出現(xiàn)在接收引腳為高電平時(shí)的載波脈沖量如表1所列。
表1 載波脈沖數(shù)統(tǒng)計(jì)
因此,選擇調(diào)制信號(hào)脈沖為24個(gè)載波脈沖寬度為:
3.1 編碼“1”脈沖產(chǎn)生和接收
(1) 產(chǎn)生一個(gè)占空比為38.5%的載波脈沖
首先,使紅外發(fā)射控制P51=1,發(fā)射紅外信號(hào),保持時(shí)間是10 μs。然后,重新使P51=0,停止發(fā)射紅外信號(hào),保持時(shí)間是16 μs。
(2) 判斷是否存在反射信號(hào)“1”
在發(fā)射到第17、19、21和23個(gè)載波脈沖時(shí),在停止發(fā)射紅外信號(hào)的16 μs內(nèi),檢測(cè)接收引腳P52。如果P52=1,則表明存在反射信號(hào);如果P52=0,則認(rèn)為無(wú)反射信號(hào)。
在這4次判斷過(guò)程中,如果有3次以上判斷為存在反射信號(hào),則確認(rèn)接收到反射的“1”。
實(shí)現(xiàn)的軟件流程如圖5所示。
3.2 編碼“0”脈沖產(chǎn)生和接收
當(dāng)發(fā)射“0”脈沖時(shí),停止發(fā)送任何紅外信號(hào)。
在相當(dāng)于第17、19、21和23個(gè)載波脈沖時(shí)間的時(shí)候,檢測(cè)接收引腳P52。如果P52=1,則表明存在干擾的紅外信號(hào);如果P52=0,則表明沒(méi)有其他紅外信號(hào)的干擾。
在這4次判斷過(guò)程中,如果有3次以上判斷為沒(méi)有其他紅外信號(hào)的干擾,則確認(rèn)正確地接收到“0”。
4 抗干擾能力分析
在應(yīng)用中,發(fā)現(xiàn)發(fā)送和接收低于6位的編碼脈沖,仍然有一定的受干擾現(xiàn)象發(fā)生;但發(fā)送和接收高于10位的編碼脈沖,已經(jīng)具有較強(qiáng)的抗干擾能力。實(shí)際上,在發(fā)送編碼為“0”時(shí),是沒(méi)有紅外信號(hào)存在的。對(duì)于隨機(jī)而頻繁的干擾信號(hào),這時(shí)很容易檢測(cè)到干擾的存在。
發(fā)送編碼的實(shí)質(zhì)是:
?、?當(dāng)編碼位為“1”時(shí),檢測(cè)是否存在障礙物。這時(shí)如果有信號(hào)的反射,則表明在測(cè)量的范圍內(nèi)有障礙物。如果接收不到反射的信號(hào),說(shuō)明沒(méi)有障礙物,或者是障礙物超出測(cè)量的范圍。
?、?當(dāng)編碼位為“0”時(shí),檢測(cè)是否存在干擾。這時(shí)如果有干擾信號(hào),則表明發(fā)射“1”測(cè)到的障礙物,有可能是由于有干擾信號(hào)而導(dǎo)致的錯(cuò)誤判斷。
5 編碼的方案
應(yīng)用中,發(fā)送編碼的方案有3種:
?、?發(fā)送較短的編碼串(10~16位),判斷時(shí)間約6~10 ms。在接收過(guò)程中,不能有一位的誤碼,否則認(rèn)為是干擾,要等待下一次的障礙檢測(cè)。這種方案在檢測(cè)過(guò)程中,不能存在干擾。
?、?發(fā)送大于16位的編碼串(16~32位),判斷時(shí)間約10~20 ms。對(duì)接收“0”和“1”的編碼誤碼統(tǒng)計(jì),其中可以根據(jù)應(yīng)用場(chǎng)合的需要,存在 1~2位“0”的誤碼和 1~3位“1”的誤碼,這樣能有效提高抗干擾能力。
?、?發(fā)送大于32位編碼串,判斷時(shí)間 >20 ms。根據(jù)實(shí)際情況來(lái)分析接收的編碼,以判斷障礙的存在。
電子鎮(zhèn)流器相關(guān)文章:電子鎮(zhèn)流器工作原理
評(píng)論