趙思成 郭 娜
中圖分類(lèi)號(hào):TP7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2009)0110026-01
隨著單片機(jī)嵌入式應(yīng)用系統(tǒng)和紅外線遙控技術(shù)的發(fā)展,越來(lái)越多的紅外遙控器械在單片機(jī)系統(tǒng)中來(lái)代替鍵盤(pán)進(jìn)行輸入工作。在工控設(shè)備中,傳統(tǒng)的方法是用專(zhuān)用的紅外發(fā)射和接收電路來(lái)實(shí)現(xiàn)的。這種設(shè)計(jì)方法要考慮到震蕩載頻的產(chǎn)生,接收的自動(dòng)增益控制(AGC)等,使得在設(shè)計(jì)、制作和調(diào)試上非常繁瑣,容易產(chǎn)生相互干擾。如果采用現(xiàn)在廣泛使用的普通遙控器加上一體化接收頭作為單片機(jī)的輸入系統(tǒng),就可以有效地克服上述缺點(diǎn)。
一、紅外遙控系統(tǒng)原理
紅外遙控的發(fā)射電路是采用紅外發(fā)光二極管來(lái)發(fā)出經(jīng)過(guò)調(diào)制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發(fā)射器發(fā)射雕紅外光轉(zhuǎn)換為相應(yīng)的電信號(hào),再送后置放大器。
發(fā)射機(jī)一般由指令鍵(或操作桿)、指令編碼系統(tǒng)、調(diào)制電路、驅(qū)動(dòng)電路、發(fā)射電路等幾部分組成。當(dāng)按下指令鍵或推動(dòng)操作桿時(shí),指令編碼電路產(chǎn)生所需的指令編碼信號(hào),指令編碼信號(hào)對(duì)載體進(jìn)行調(diào)制,再由驅(qū)動(dòng)電路進(jìn)行功率放大后由發(fā)射電路向外發(fā)射經(jīng)調(diào)制定指令編碼信號(hào)。
接收電路一般由接收電路、放大電路、調(diào)制電路、指令譯碼電路、驅(qū)動(dòng)電路、執(zhí)行電路(機(jī)構(gòu))等幾部分組成。接收電路將發(fā)射器發(fā)出的已調(diào)制的編碼指令信號(hào)接收下來(lái),并進(jìn)行放大后送解調(diào)電路,解調(diào)電路將已調(diào)制的指令編碼信號(hào)解調(diào)出來(lái),即還原為編碼信號(hào)。
二、編碼格式
LC7461M型遙控發(fā)射芯片采用PWM方法來(lái)發(fā)送信號(hào)。當(dāng)按下某個(gè)鍵后,就會(huì)發(fā)出一組長(zhǎng)108ms的編碼。它由引導(dǎo)碼、13位用戶(hù)識(shí)別碼、13位用戶(hù)識(shí)別反碼、8位操作碼和8位操作反碼組成,共計(jì)42位信息。其中引導(dǎo)碼由9ms的高電平和4.5ms的低電平組成。因?yàn)樵诟鞣N光電干擾中干擾信號(hào)都是以尖脈沖形式出現(xiàn)的,持續(xù)時(shí)間很短(一般都在7ms以?xún)?nèi)),當(dāng)接收到13.5ms的引導(dǎo)碼后,接著接收到的信號(hào)就可以認(rèn)為是發(fā)射的數(shù)據(jù)信號(hào),這樣就有效地防止了外界的干擾。用戶(hù)識(shí)別碼可以準(zhǔn)確地識(shí)別出不同的電器設(shè)備,防止不同機(jī)種間的相互干擾。同時(shí),利用發(fā)送的反碼信息可以防止接收錯(cuò)誤。對(duì)于位信息,7461芯片發(fā)射的“0”代碼總長(zhǎng)1.125ms,以0.56ms的高電平開(kāi)始,然后為
0.565ms的低電平;“1”代碼總長(zhǎng)2.25ms,也是以0.56ms的高電平開(kāi)始,不同的是后邊低電平的長(zhǎng)度為1.69ms。
三、接收
接收部分采用的是一體化接收頭,它是集接收、放大于一體,不需外接任何元件就能完成從紅外線接收到產(chǎn)生與單片機(jī)兼容信號(hào)的所有工作。當(dāng)它收到紅外信號(hào)后,會(huì)反相輸出。最終單片機(jī)識(shí)別的編碼與位碼應(yīng)該與紅外線遙控器發(fā)射的相反。
四、和單片機(jī)的接口
我們這里以國(guó)內(nèi)電氣控制中常用的51架構(gòu)單片機(jī)為例,闡述硬件連接和軟件解碼過(guò)程。
(一)硬件連接
采用一體化接收頭作為接收器件后,與單片機(jī)的連接非常簡(jiǎn)單。單片機(jī)控制系統(tǒng)僅需開(kāi)啟一個(gè)外部中斷,將之與一體化接收頭的OUT端相連接即可,
(二)軟件解碼
1.延時(shí)查詢(xún)式解碼。解碼的關(guān)鍵是如何識(shí)別“0”和“1”。從接收到位的特征我們可以發(fā)現(xiàn),“0”和“1”均以0.56ms的低電平開(kāi)始,不同的是高電平的寬度,“0”為0.565ms,“1”為1.69ms。所以,可以根據(jù)高電平的寬度來(lái)區(qū)分“0”和“1”。如果0.56ms低電平過(guò)后開(kāi)始延時(shí),再過(guò)0.565ms以后讀到了低電平,說(shuō)明該位是“0”,否則為“1”。為了可靠接收,防止誤讀,我們一般可取中間值最為可靠。
2.全中斷式解碼。上述延時(shí)方法簡(jiǎn)單易懂,但其進(jìn)入解碼程序后會(huì)大量使用延時(shí)操作,極大地降低了單片機(jī)的利用率,而且容易產(chǎn)生誤判、無(wú)法退出解碼程序的現(xiàn)象。經(jīng)研究改進(jìn),現(xiàn)設(shè)計(jì)出一種全中斷接收解碼方式。
通過(guò)上述脈沖波形分析,我們發(fā)現(xiàn)“0”和“1”的區(qū)別就在于這一位的波長(zhǎng)為1.125ms還是為2.25ms。如果為1.125ms,我們就認(rèn)為接收到了“0”;如果為2.25ms,我們就認(rèn)為接收到了“1”。從整個(gè)接收到的信息編碼看,數(shù)據(jù)位是以低電平開(kāi)始的,又以下一個(gè)低電平到來(lái)而結(jié)束。這時(shí),我們可以對(duì)位的采集采用外部中斷方式,使在負(fù)邊沿產(chǎn)生一個(gè)外部中斷,在中斷子程序中啟動(dòng)一從0開(kāi)始計(jì)數(shù)的定時(shí)器。在下一個(gè)中斷里,首先把剛才的定時(shí)值保存下來(lái)。這時(shí)這個(gè)值就是剛才接收位的時(shí)長(zhǎng)。我們可以把這個(gè)值與1.125ms和2.25ms比較,從而判斷是“0”還是“1”。考慮到執(zhí)行效率問(wèn)題,我們可以只用
來(lái)對(duì)其標(biāo)定。事實(shí)上,我們可以只比較定時(shí)器THx中的數(shù)據(jù)即可。其解碼流程如圖1所示。

這種外部中斷與定時(shí)器結(jié)合的方式解碼準(zhǔn)確,CPU的利用率高。需要補(bǔ)充的是,當(dāng)鍵盤(pán)按下長(zhǎng)達(dá)108ms后,遙控器會(huì)開(kāi)始發(fā)送連續(xù)信號(hào),對(duì)7461來(lái)說(shuō)與引導(dǎo)碼格式相同。我們可以根據(jù)需要用定時(shí)器溢出退出解碼狀態(tài)與重碼計(jì)數(shù)來(lái)分別處理。
五、抗干擾措施
用紅外遙控器作為單片機(jī)的輸入系統(tǒng),采用檢測(cè)脈寬作為信號(hào)區(qū)分標(biāo)志,同時(shí)引導(dǎo)碼為13.5ms超寬脈沖作為起始信號(hào),抗干擾能力強(qiáng),適合應(yīng)用于高壓、輻射、有毒氣體、粉塵等工業(yè)環(huán)境。如果該系統(tǒng)應(yīng)用于有嚴(yán)重紅外干擾的場(chǎng)合時(shí),我們可以采取在接收頭上加裝紅色濾光片、軟件上采用高中斷優(yōu)先級(jí),兩次比較等方式,從而有效抑制干擾。
六、結(jié)束語(yǔ)
單片機(jī)應(yīng)用系統(tǒng)加接這種紅外遙控鍵盤(pán),接口簡(jiǎn)單,操作方便,全中斷軟件解碼性能可靠穩(wěn)定,抗干擾能力強(qiáng),并且節(jié)約了單片機(jī)應(yīng)用系統(tǒng)的硬件資源,具有很好的應(yīng)用空間。
參考文獻(xiàn):
[1]何立民,單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),北京:北京航空航天大學(xué)出版社,1990.
[2]潘永雄,新編單片機(jī)原理與應(yīng)用,西安電子科技大學(xué)出版社,2003.
[3]蘇長(zhǎng)贊,紅外線和超聲波遙控,人民郵電出版社,1999.