孫田星
(沈陽職業(yè)技術(shù)學(xué)院,遼寧 沈陽 110045)
基于軟件載波技術(shù)學(xué)習(xí)型遙控器的實(shí)現(xiàn)
孫田星
(沈陽職業(yè)技術(shù)學(xué)院,遼寧 沈陽 110045)
介紹了一種基于軟件載波技術(shù)的學(xué)習(xí)型遙控器的設(shè)計(jì)方案,概述其工作原理與實(shí)現(xiàn)方法,詳細(xì)分析軟件載波技術(shù)在學(xué)習(xí)型遙控器編碼學(xué)習(xí)中的應(yīng)用。該遙控器對接收信號(hào)的脈沖寬度進(jìn)行測量與記錄,以軟件載波的方法用38kHz載波對控制信號(hào)進(jìn)行調(diào)制,從而實(shí)現(xiàn)對紅外脈沖信號(hào)的復(fù)制與轉(zhuǎn)發(fā),最后對此結(jié)構(gòu)進(jìn)行仿真,證明其對其他遙控器進(jìn)行學(xué)習(xí)的可靠性。該裝置可以學(xué)習(xí)各種不同類型的家用遙控器從而實(shí)現(xiàn)單一遙控器對多種家用電器的控制。
軟件載波;學(xué)習(xí)型遙控器;一體化紅外接收器
隨著遙感技術(shù)的發(fā)展,越來越多的家用電子設(shè)備配置了遙控器以實(shí)現(xiàn)對設(shè)備的遠(yuǎn)程控制。紅外線遙控是其中使用較廣泛的遙控方式,因其具有結(jié)構(gòu)簡單、體積小、功耗低、成本低等特點(diǎn)而廣泛應(yīng)用于各類家用電器設(shè)備及其工業(yè)控制中。然而在此類系統(tǒng)中,不僅不同廠家提供的遙控器控制信號(hào)不同,即使是同一廠家生產(chǎn)的不同產(chǎn)品,其遙控器的控制信號(hào)也不盡相同。這種不同遙控器控制信號(hào)不統(tǒng)一的現(xiàn)象使得此類電子產(chǎn)品在使用中變得復(fù)雜。為解決此類問題,設(shè)計(jì)一種可將不同遙控器的控制信號(hào)進(jìn)行復(fù)制與轉(zhuǎn)發(fā)的學(xué)習(xí)型遙控器的構(gòu)想應(yīng)運(yùn)而生。
本文介紹一種基于AT89S52單片機(jī)與HS0038B一體化紅外接收器的學(xué)習(xí)型紅外遙控器。通過對一體化紅外接收器的輸出信號(hào)進(jìn)行采樣得到接收信號(hào),然后將其保存在E2PROM中,最后利用單片定時(shí)器中斷產(chǎn)生38kHz載波信號(hào)對控制信號(hào)進(jìn)行調(diào)制與發(fā)送。經(jīng)驗(yàn)證,該學(xué)習(xí)型紅外遙控器能夠?qū)W習(xí)其他紅外遙控設(shè)備的編碼,并通過38kHz載波對信號(hào)進(jìn)行重發(fā),實(shí)現(xiàn)了單一遙控器對多種電子設(shè)備的控制。
2.1 學(xué)習(xí)型紅外遙控器的原理
學(xué)習(xí)型遙控器對控制信號(hào)的學(xué)習(xí)主要有兩種思路;一種是在掌握控制信號(hào)的編碼協(xié)議基礎(chǔ)上,為學(xué)習(xí)型遙控器增加一個(gè)解碼模塊,通過解碼可以簡單容易的實(shí)現(xiàn)對控制信號(hào)的學(xué)習(xí)與重發(fā);另一種方法則是不考慮控制信號(hào)的編碼方法,直接對其脈沖寬度進(jìn)行采樣與記錄,轉(zhuǎn)發(fā)時(shí)根據(jù)脈沖寬度的記錄實(shí)現(xiàn)對信號(hào)的重發(fā)。前者對于遙控器的存儲(chǔ)空間要求低,同時(shí)由于解碼模塊的存在,對控制器工作頻率的要求也較低,但是由于此類學(xué)習(xí)型遙控器需要掌握各種電子設(shè)備的不同解碼模塊,考慮到目前電子設(shè)備種類繁多、更新?lián)Q代迅速的特點(diǎn),該方法并不實(shí)用。后者由于是對控制信號(hào)進(jìn)行直接采樣與存儲(chǔ),所需要的ROM存儲(chǔ)空間較大,但是由于此方案不需要收集各類編碼信息,因此簡化了設(shè)計(jì)過程,并且可以對市場上未來可能出現(xiàn)的其他紅外遙控器進(jìn)行學(xué)習(xí)。本文主要采用第二種方案進(jìn)行設(shè)計(jì)。
2.2 學(xué)習(xí)型紅外遙控器的硬件組成
本學(xué)習(xí)型紅外遙控器由單片機(jī)AT89S52、紅外發(fā)射電路、紅外一體化接收頭HS0038B、E2PROM存儲(chǔ)電路,矩陣鍵盤及LED指示燈構(gòu)成,如圖1所示。單片機(jī):用于對接受信號(hào)進(jìn)行采樣處理,并利用單片機(jī)中的定時(shí)器T0與T1為信號(hào)的采樣與調(diào)制提供時(shí)鐘;紅外發(fā)射電路:用脈沖信號(hào)寬度對38kHz方波進(jìn)行調(diào)制,經(jīng)過放大后,驅(qū)動(dòng)紅外發(fā)光二極管進(jìn)行發(fā)射,其中載波由AT89S52定時(shí)器T0產(chǎn)生。紅外一體化接收頭:用于采集需要學(xué)習(xí)的控制信號(hào),通過對紅外接收頭輸出的信號(hào)檢波、整形、放大、解調(diào),得到可供單片機(jī)采樣的脈沖信號(hào)。外接E2PROM存儲(chǔ)器:存放學(xué)習(xí)到的控制信號(hào)脈沖寬度。
2.3 信號(hào)采樣模塊設(shè)計(jì)
本學(xué)習(xí)型遙控器通過對接收信號(hào)的脈沖寬度進(jìn)行采樣達(dá)到對信號(hào)的學(xué)習(xí)目的,因此采樣周期以及計(jì)數(shù)器容量是否與待學(xué)習(xí)信號(hào)相匹配對于成功完成對信號(hào)的學(xué)習(xí)至關(guān)重要。由于紅外遙控器通常的載波頻率為38kHz,而一個(gè)信號(hào)脈沖長度通常在100個(gè)載波周期以內(nèi),因此本設(shè)計(jì)中采用了26μs作為采樣周期,利用16位計(jì)數(shù)器對脈沖寬度進(jìn)行記錄,其中26μs周期利用單片機(jī)定時(shí)器T1產(chǎn)生。其值保存在設(shè)定的數(shù)據(jù)存儲(chǔ)器中,然后寫入到外部E2PROM存儲(chǔ)器中,發(fā)射時(shí)再從外部的E2PROM存儲(chǔ)器讀出,經(jīng)過38kHz載波調(diào)制,發(fā)送編碼信號(hào)。
3.1 紅外遙控信號(hào)編碼結(jié)構(gòu)分析
遙控器的控制信號(hào)由起始碼、系統(tǒng)碼、系統(tǒng)反碼、功能碼、功能反碼組成,如圖2所示。起始碼由1個(gè)高電平和1個(gè)低電平組成,用來標(biāo)識(shí)控制信號(hào)的開端。這些編碼經(jīng)38kHz的載波脈沖調(diào)制后發(fā)射出去。遙控碼的數(shù)據(jù)幀間歇寬度約在10ms以上,起始碼的高電平均為5ms以上,編碼位在10μs~5ms之間,本設(shè)計(jì)中,只考慮控制信號(hào)的脈沖寬度,不考慮其編碼方式,以簡化設(shè)計(jì)。
圖2 紅外遙控信號(hào)的編碼結(jié)構(gòu)
3.2 控制信號(hào)的采樣模塊設(shè)計(jì)
本設(shè)計(jì)中,利用16位計(jì)數(shù)器的最高位存儲(chǔ)脈沖信號(hào)的高低電平狀態(tài),其余的15位用來記錄脈沖寬度。對脈沖進(jìn)行采樣時(shí),首先對計(jì)數(shù)器清零,將第一次采樣時(shí)采集到的高低電平狀態(tài)存儲(chǔ)至計(jì)數(shù)器的最高位,經(jīng)過采樣周期26μs后,若第二次采樣得到的電平狀態(tài)與之前相同,則計(jì)數(shù)器加1,若不同,則此時(shí)計(jì)數(shù)器的值即為當(dāng)前脈沖寬度,將其記錄下來后,計(jì)數(shù)器清零,為下一個(gè)脈沖寬度測量做好準(zhǔn)備。若脈沖長度超出計(jì)數(shù)器計(jì)數(shù)范圍,則根據(jù)此脈沖的高低電平將7FFFH(低電平)或FFFFH(高電平)存入寄存器,完成此脈沖寬度的測量。采樣模塊的數(shù)據(jù)處理流程如圖3所示。
3.3 紅外遙控信號(hào)的重發(fā)模塊
利用軟件載波技術(shù)對信號(hào)進(jìn)行調(diào)制,用定時(shí)器T0產(chǎn)生38 kHz的載波信號(hào),用E2PROM中存儲(chǔ)的脈沖寬度對載波進(jìn)行調(diào)制:當(dāng)16位脈沖寬度數(shù)據(jù)最高位為1時(shí),每當(dāng)T0定時(shí)器產(chǎn)生中斷則輸出電平取反;當(dāng)脈沖寬度數(shù)據(jù)最高位為0時(shí),則始終輸出低電平。發(fā)射時(shí)并不需要用到38kHz載波電路,而是采用以單片機(jī)的定時(shí)器TO產(chǎn)生載波,程序代碼如下所示:
TMOD=0X02; //設(shè)定定時(shí)器0工作于倒序方式
TH0=0XF3; //設(shè)定定時(shí)器0工作周期為26μs
TL0=0XF3;
EA=1; //開啟中斷使能
ET0=1; //開啟定時(shí)器0中斷使能
TR0=1; //定時(shí)器開始計(jì)時(shí)
Void timer0(void)interrupt 1
{ output=~output;} //每當(dāng)定時(shí)器歸零,輸出取反,形
成載波信號(hào)
信號(hào)的重發(fā)數(shù)據(jù)流程圖如圖4所示。
3.4 學(xué)習(xí)型紅外遙控器的驗(yàn)證
圖5(a)波形為向?qū)W習(xí)型紅外遙控器的紅外一體化接收器發(fā)送的待學(xué)習(xí)信號(hào),圖5(b)波形為經(jīng)過學(xué)習(xí)后,本遙控器向外發(fā)送的重發(fā)信號(hào)??梢杂^察到本設(shè)計(jì)可以較好的完成對信號(hào)的學(xué)習(xí)與重發(fā),重發(fā)信號(hào)與原信號(hào)波形基本保持一致。由于學(xué)習(xí)過程中沒有應(yīng)用任何編碼與解碼設(shè)備,本設(shè)計(jì)理論上可以完成對采用任意編碼方式的遙控設(shè)備的學(xué)習(xí)。
該次設(shè)計(jì)中的學(xué)習(xí)型紅外遙控器,完成了對其他遙控器所發(fā)出信號(hào)的采集、采樣、保存以及重發(fā),可以學(xué)習(xí)各種采用不同編碼形式的紅外遙控器控制信號(hào),信號(hào)的學(xué)習(xí)與重發(fā)準(zhǔn)確快捷,可以達(dá)到通過一臺(tái)遙控器對多種家用電子設(shè)備進(jìn)行控制的目的,解決了多種遙控器共同使用造成的操作繁復(fù)等問題。然而由于本設(shè)計(jì)是建立在目前市面上大部分紅外遙控器采用38kHz頻率方波作為載波的基礎(chǔ)上完成的,若使用其他頻率進(jìn)行調(diào)制的遙控器則無法完成學(xué)習(xí),跨頻率紅外遙控器信號(hào)的學(xué)習(xí)與重發(fā)仍然需要進(jìn)一步的研究與開發(fā)。
Achievement Based on Software Carrier Techndoyg Learning Remote-controller
SUNTian-xing
(Shenyang Vocational and Technical College,Shenyang 110045,China)
A learning remote control using software carrier technology is designed in this paper.Its working principle and implementation has been explained then the application of the software carrier technology in a learning remote control unit will be analyzed in detail.For copying and transmission the infrared pulse signal,this remote control unit measures the pulse width of the incoming signal then modulates the control signal with 38 kHz carrier by using the software carrier technology.In the last part of the paper,a simulation of this system will be presented to prove its reliability.By learning multiple remote controls,this device can control various household appliances through a sole remote control unit.
software carrier,learning remote controler,Integrated IR receiver
1004-289X(2015)01-0071-03
TM85
B
2014-12-05