孫田星
(沈陽職業技術學院,遼寧 沈陽 110045)
基于軟件載波技術學習型遙控器的實現
孫田星
(沈陽職業技術學院,遼寧 沈陽 110045)
介紹了一種基于軟件載波技術的學習型遙控器的設計方案,概述其工作原理與實現方法,詳細分析軟件載波技術在學習型遙控器編碼學習中的應用。該遙控器對接收信號的脈沖寬度進行測量與記錄,以軟件載波的方法用38kHz載波對控制信號進行調制,從而實現對紅外脈沖信號的復制與轉發,最后對此結構進行仿真,證明其對其他遙控器進行學習的可靠性。該裝置可以學習各種不同類型的家用遙控器從而實現單一遙控器對多種家用電器的控制。
軟件載波;學習型遙控器;一體化紅外接收器
隨著遙感技術的發展,越來越多的家用電子設備配置了遙控器以實現對設備的遠程控制。紅外線遙控是其中使用較廣泛的遙控方式,因其具有結構簡單、體積小、功耗低、成本低等特點而廣泛應用于各類家用電器設備及其工業控制中。然而在此類系統中,不僅不同廠家提供的遙控器控制信號不同,即使是同一廠家生產的不同產品,其遙控器的控制信號也不盡相同。這種不同遙控器控制信號不統一的現象使得此類電子產品在使用中變得復雜。為解決此類問題,設計一種可將不同遙控器的控制信號進行復制與轉發的學習型遙控器的構想應運而生。
本文介紹一種基于AT89S52單片機與HS0038B一體化紅外接收器的學習型紅外遙控器。通過對一體化紅外接收器的輸出信號進行采樣得到接收信號,然后將其保存在E2PROM中,最后利用單片定時器中斷產生38kHz載波信號對控制信號進行調制與發送。經驗證,該學習型紅外遙控器能夠學習其他紅外遙控設備的編碼,并通過38kHz載波對信號進行重發,實現了單一遙控器對多種電子設備的控制。
2.1 學習型紅外遙控器的原理
學習型遙控器對控制信號的學習主要有兩種思路;一種是在掌握控制信號的編碼協議基礎上,為學習型遙控器增加一個解碼模塊,通過解碼可以簡單容易的實現對控制信號的學習與重發;另一種方法則是不考慮控制信號的編碼方法,直接對其脈沖寬度進行采樣與記錄,轉發時根據脈沖寬度的記錄實現對信號的重發。前者對于遙控器的存儲空間要求低,同時由于解碼模塊的存在,對控制器工作頻率的要求也較低,但是由于此類學習型遙控器需要掌握各種電子設備的不同解碼模塊,考慮到目前電子設備種類繁多、更新換代迅速的特點,該方法并不實用。后者由于是對控制信號進行直接采樣與存儲,所需要的ROM存儲空間較大,但是由于此方案不需要收集各類編碼信息,因此簡化了設計過程,并且可以對市場上未來可能出現的其他紅外遙控器進行學習。本文主要采用第二種方案進行設計。
2.2 學習型紅外遙控器的硬件組成
本學習型紅外遙控器由單片機AT89S52、紅外發射電路、紅外一體化接收頭HS0038B、E2PROM存儲電路,矩陣鍵盤及LED指示燈構成,如圖1所示。單片機:用于對接受信號進行采樣處理,并利用單片機中的定時器T0與T1為信號的采樣與調制提供時鐘;紅外發射電路:用脈沖信號寬度對38kHz方波進行調制,經過放大后,驅動紅外發光二極管進行發射,其中載波由AT89S52定時器T0產生。紅外一體化接收頭:用于采集需要學習的控制信號,通過對紅外接收頭輸出的信號檢波、整形、放大、解調,得到可供單片機采樣的脈沖信號。外接E2PROM存儲器:存放學習到的控制信號脈沖寬度。
2.3 信號采樣模塊設計
本學習型遙控器通過對接收信號的脈沖寬度進行采樣達到對信號的學習目的,因此采樣周期以及計數器容量是否與待學習信號相匹配對于成功完成對信號的學習至關重要。由于紅外遙控器通常的載波頻率為38kHz,而一個信號脈沖長度通常在100個載波周期以內,因此本設計中采用了26μs作為采樣周期,利用16位計數器對脈沖寬度進行記錄,其中26μs周期利用單片機定時器T1產生。其值保存在設定的數據存儲器中,然后寫入到外部E2PROM存儲器中,發射時再從外部的E2PROM存儲器讀出,經過38kHz載波調制,發送編碼信號。
3.1 紅外遙控信號編碼結構分析
遙控器的控制信號由起始碼、系統碼、系統反碼、功能碼、功能反碼組成,如圖2所示。起始碼由1個高電平和1個低電平組成,用來標識控制信號的開端。這些編碼經38kHz的載波脈沖調制后發射出去。遙控碼的數據幀間歇寬度約在10ms以上,起始碼的高電平均為5ms以上,編碼位在10μs~5ms之間,本設計中,只考慮控制信號的脈沖寬度,不考慮其編碼方式,以簡化設計。
圖2 紅外遙控信號的編碼結構
3.2 控制信號的采樣模塊設計
本設計中,利用16位計數器的最高位存儲脈沖信號的高低電平狀態,其余的15位用來記錄脈沖寬度。對脈沖進行采樣時,首先對計數器清零,將第一次采樣時采集到的高低電平狀態存儲至計數器的最高位,經過采樣周期26μs后,若第二次采樣得到的電平狀態與之前相同,則計數器加1,若不同,則此時計數器的值即為當前脈沖寬度,將其記錄下來后,計數器清零,為下一個脈沖寬度測量做好準備。若脈沖長度超出計數器計數范圍,則根據此脈沖的高低電平將7FFFH(低電平)或FFFFH(高電平)存入寄存器,完成此脈沖寬度的測量。采樣模塊的數據處理流程如圖3所示。
3.3 紅外遙控信號的重發模塊
利用軟件載波技術對信號進行調制,用定時器T0產生38 kHz的載波信號,用E2PROM中存儲的脈沖寬度對載波進行調制:當16位脈沖寬度數據最高位為1時,每當T0定時器產生中斷則輸出電平取反;當脈沖寬度數據最高位為0時,則始終輸出低電平。發射時并不需要用到38kHz載波電路,而是采用以單片機的定時器TO產生載波,程序代碼如下所示:
TMOD=0X02; //設定定時器0工作于倒序方式
TH0=0XF3; //設定定時器0工作周期為26μs
TL0=0XF3;
EA=1; //開啟中斷使能
ET0=1; //開啟定時器0中斷使能
TR0=1; //定時器開始計時
Void timer0(void)interrupt 1
{ output=~output;} //每當定時器歸零,輸出取反,形
成載波信號
信號的重發數據流程圖如圖4所示。
3.4 學習型紅外遙控器的驗證
圖5(a)波形為向學習型紅外遙控器的紅外一體化接收器發送的待學習信號,圖5(b)波形為經過學習后,本遙控器向外發送的重發信號。可以觀察到本設計可以較好的完成對信號的學習與重發,重發信號與原信號波形基本保持一致。由于學習過程中沒有應用任何編碼與解碼設備,本設計理論上可以完成對采用任意編碼方式的遙控設備的學習。
該次設計中的學習型紅外遙控器,完成了對其他遙控器所發出信號的采集、采樣、保存以及重發,可以學習各種采用不同編碼形式的紅外遙控器控制信號,信號的學習與重發準確快捷,可以達到通過一臺遙控器對多種家用電子設備進行控制的目的,解決了多種遙控器共同使用造成的操作繁復等問題。然而由于本設計是建立在目前市面上大部分紅外遙控器采用38kHz頻率方波作為載波的基礎上完成的,若使用其他頻率進行調制的遙控器則無法完成學習,跨頻率紅外遙控器信號的學習與重發仍然需要進一步的研究與開發。
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