《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于軟件載波的學(xué)習(xí)型遙控器的設(shè)計(jì)與實(shí)現(xiàn)
基于軟件載波的學(xué)習(xí)型遙控器的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 紅外線遙控是目前使用最廣泛的一種通信和遙控方式,由于其具有結(jié)構(gòu)簡(jiǎn)單、體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而廣泛應(yīng)用于彩電、空調(diào)機(jī)、CD/ VCD、錄像機(jī)家用電器設(shè)備及其工業(yè)控制中。隨著現(xiàn)在人們生活中家電日益增加的需要,使用紅外遙控器也越來越頻繁。因其各種紅外遙控器編碼格式不同[1 ] ,使得各種紅外遙控器不能兼容。經(jīng)常需要更換遙控器,這也給人們生活帶來了不便。
Abstract:
Key words :

 

0  引 言

  紅外線遙控是目前使用最廣泛的一種通信和遙控方式,由于其具有結(jié)構(gòu)簡(jiǎn)單、體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而廣泛應(yīng)用于彩電、空調(diào)機(jī)、CD/ VCD、錄像機(jī)家用電器設(shè)備及其工業(yè)控制中。隨著現(xiàn)在人們生活中家電日益增加的需要,使用紅外遙控器也越來越頻繁。因其各種紅外遙控器編碼格式不同[1 ] ,使得各種紅外遙控器不能兼容。經(jīng)常需要更換遙控器,這也給人們生活帶來了不便。

  目前國(guó)內(nèi)學(xué)習(xí)型遙控器大多采用復(fù)制遙控器紅外波形達(dá)到學(xué)習(xí)目的,其方法簡(jiǎn)單,實(shí)現(xiàn)起來較方便。但其采用專用遙控集成的芯片,導(dǎo)致設(shè)計(jì)復(fù)雜,成本高,并且遙控器的紅外信號(hào)形成都是采用紅外線遙控發(fā)射芯片產(chǎn)生,其集成度高,但價(jià)格昂貴。而紅外遙控器離不開紅外線接收頭。

  在此介紹一種基于以A T89S52 為核心的學(xué)習(xí)型紅外遙控器,通過測(cè)量紅外一體化接收頭輸出信號(hào),并原樣地記錄其輸出脈沖寬度[ 2 ] ,然后保存在E2 PROM ,最后利用單片定時(shí)器中斷產(chǎn)生38 kHz 載波信號(hào),以軟件代替了硬件,節(jié)約了資源。該學(xué)習(xí)型紅外遙控器能成功地學(xué)習(xí)各種紅外遙控設(shè)備的編碼,并通過38 kHz 載波發(fā)送學(xué)習(xí)到的記憶信號(hào)。實(shí)現(xiàn)了對(duì)各種各樣紅外遙控的學(xué)習(xí),從而變成了真正的自學(xué)習(xí)遙控器。

  1  學(xué)習(xí)型紅外遙控器系統(tǒng)

  1. 1  學(xué)習(xí)型紅外遙控器的原理

  從家用萬能學(xué)習(xí)型紅外遙控一般原理出發(fā),其可以分為2 類:固定碼式學(xué)習(xí)遙控器和波形拷貝式學(xué)習(xí)遙控器[3 ] .前者,主要通過收集各種不同種類的遙控器信號(hào),然后分而治之。這種學(xué)習(xí)型遙控器對(duì)硬件要求相對(duì)簡(jiǎn)單,控制器的工作頻率不高,存儲(chǔ)容量大,其缺點(diǎn)是對(duì)未知遙控器無效。后者,主要是把原始遙控器所發(fā)出的信號(hào)進(jìn)行完全拷貝,而不管遙控器是什么格式,進(jìn)行適當(dāng)?shù)膲嚎s后,存儲(chǔ)在ROM 存儲(chǔ)器中,當(dāng)發(fā)射時(shí),只需將儲(chǔ)存器中讀出的遙控編碼,還原成原始信號(hào),便完成了學(xué)習(xí)功能。此學(xué)習(xí)型遙控器對(duì)MCU 的主頻要求高,RAM 要求大,其優(yōu)點(diǎn)是對(duì)任何一種紅外遙控器可以進(jìn)行學(xué)習(xí)。下面主要以第二種方法進(jìn)行設(shè)計(jì)。

 

 1. 2  學(xué)習(xí)型紅外遙控器基本硬件組成

  學(xué)習(xí)型紅外遙控器由單片機(jī)、紅外發(fā)射電路、紅外一體化接收頭、E2 PROM 存儲(chǔ)電路,矩陣鍵盤及L ED指示燈構(gòu)成[4 ] ,如圖1 所示。單片機(jī)A T89S52 構(gòu)成紅外遙控的處理器,其數(shù)據(jù)存儲(chǔ)器RAM(258 B) 用來存儲(chǔ)學(xué)習(xí)過程中編碼信號(hào)的脈沖寬度;紅外發(fā)射電路:用遙控脈沖信號(hào)調(diào)制38 kHz 方波,經(jīng)過三極管放大后,驅(qū)動(dòng)紅外發(fā)光二極管,其中38 kHz 載波由A T89S52 定時(shí)器T0 產(chǎn)生。紅外一體化接收頭:紅外接收頭輸出的信號(hào)經(jīng)過檢波、整形、放大、解調(diào)38 kHz 載波信號(hào),其輸出信號(hào)為TTL 高低電平。外接E2 PROM 存儲(chǔ)器:存放學(xué)習(xí)到的高低電平信號(hào)的脈寬值。

圖1  學(xué)習(xí)型紅外遙控器基本硬件組成

圖1  學(xué)習(xí)型紅外遙控器基本硬件組成

  1. 3  系統(tǒng)軟件設(shè)計(jì)

  學(xué)習(xí)型遙控器的設(shè)計(jì)性能及實(shí)現(xiàn)與其軟件設(shè)計(jì)編寫具有密切的關(guān)系,特別是碼寬計(jì)數(shù)的采集周期及計(jì)數(shù)器采用的位數(shù)都關(guān)系到能否精確采集到遙控編碼信號(hào)。編碼寬度計(jì)數(shù)的采樣周期在編程中須經(jīng)過多次實(shí)驗(yàn)測(cè)試才能決定。該設(shè)計(jì)讀碼采樣周期大約為12μs.

  讀遙控編碼的計(jì)數(shù)器采用16 位計(jì)數(shù)器,采樣時(shí)間在0~786. 432 ms 之間。其值保存在設(shè)定的數(shù)據(jù)存儲(chǔ)器中,然后寫入到外部E2 PROM 存儲(chǔ)器中,發(fā)射過程再?gòu)耐獠康腅2 PROM 存儲(chǔ)器讀出,通過38 kHz 載波發(fā)送編碼信號(hào)。

  2  紅外遙控編碼學(xué)習(xí)與軟件載波的發(fā)射

  2. 1  紅外遙控信號(hào)編碼結(jié)構(gòu)分析

  紅外遙控器發(fā)射的遙控編碼脈沖由起始碼、系統(tǒng)碼、功能碼、功能碼的反碼組成[5 ] ,如圖2 所示。起始碼是1 個(gè)遙控碼的起始部分,由1 個(gè)高電平和1 個(gè)低電平組成, 作為接收數(shù)據(jù)的準(zhǔn)備脈沖。這些編碼是經(jīng)38 kHz的載波脈沖調(diào)制后發(fā)射出去。

圖2  遙控器編碼結(jié)構(gòu)

圖2  遙控器編碼結(jié)構(gòu)

  通過分析大量不同類型的紅外遙控碼波形,遙控碼的數(shù)據(jù)幀間歇寬度均為10 ms 以上,起始碼的高電平均為5 ms 以上,通常為9 ms 左右。編碼位在10 μs~5 ms之間,在設(shè)計(jì)中,只考慮遙控器發(fā)射信號(hào)的高低電平寬度,不考慮其編碼方式,以簡(jiǎn)化設(shè)計(jì)[ 6 ] .

  2. 2  紅外遙控信號(hào)編碼學(xué)習(xí)軟件設(shè)計(jì)

  一般紅外遙控器的的紅外信號(hào)都是通過38 ~40 kHz (周期大約為26. 3μs) 進(jìn)行載波調(diào)制而成的,經(jīng)過載波后信號(hào)的脈沖寬度與單片機(jī)的指令周期時(shí)間(12 MHz晶振的指令周期為1μs) 數(shù)量級(jí)差不多。如果直接記錄載波信號(hào)的脈沖寬度,這樣誤差很大,必須對(duì)載波信號(hào)進(jìn)行解調(diào)后,方可記錄此時(shí)遙控編碼信號(hào)的脈沖寬度。

  在設(shè)計(jì)中采用計(jì)數(shù)器對(duì)信號(hào)高低電平計(jì)時(shí)的方法來采集數(shù)據(jù)并保存。當(dāng)系統(tǒng)識(shí)別到起始碼的低電平時(shí),系統(tǒng)啟動(dòng)設(shè)計(jì)的采集信號(hào)對(duì)低電平進(jìn)行采集,同時(shí)計(jì)數(shù)器開始計(jì)數(shù),當(dāng)起始碼的低電平結(jié)束時(shí),并保存計(jì)數(shù)器此時(shí)的值,記錄下起始碼的低電平信號(hào)脈沖寬度值。然后依次保存采集到的編碼信號(hào)脈沖寬度值,如果采集到編碼信號(hào)位數(shù)大于設(shè)定值M (程序中設(shè)定值) ,就認(rèn)為編碼采集已經(jīng)結(jié)束,學(xué)習(xí)子程序結(jié)束,如圖3 所示:

圖3  紅外信號(hào)的自學(xué)習(xí)

圖3  紅外信號(hào)的自學(xué)習(xí)

  2. 3  紅外遙控信號(hào)的發(fā)射

  由軟件實(shí)現(xiàn)遙控信號(hào)的載波合成,用定時(shí)中斷0 產(chǎn)生38 kHz 的載波信號(hào),用學(xué)習(xí)到的遙控編碼信號(hào)的低電平去控制載波的輸出,此時(shí)定時(shí)器0 定時(shí)長(zhǎng)度由相應(yīng)的遙控信號(hào)低電平寬度計(jì)數(shù)值確定,即如果需發(fā)射的遙控信號(hào)為高電平時(shí),關(guān)定時(shí)中斷0 ;如果為低電平,則開定時(shí)中斷0 .輸出38 kHz 載波信號(hào)到紅外發(fā)射控制腳(P3. 7) ,從而實(shí)現(xiàn)遙控信號(hào)的脈寬調(diào)制發(fā)射。不考慮紅外信號(hào)的編碼方式,只采集其高低電平寬度的方法,如圖4 所示。發(fā)射時(shí)并不需要用到38 kHz 載波電路,而是采用以單片機(jī)的定時(shí)器T0 產(chǎn)生載波,程序代碼[7 ]如下所示:

  TMOD = 0X02 ;   / / 定時(shí)器0 工作于方式2
  TH0 = 0XF3 ;   
  / / 定時(shí)器0 定時(shí)26. 3μs ,以產(chǎn)生38 kHz 載波
  TL0 = 0XF3 ;
  EA = 1 ;     / / 開總中斷允許
  ET0 = 1 ;     / / 開定時(shí)器1 中斷允許
  TR0 = 1 ;  / / 開定時(shí)器0 ,產(chǎn)生38 kHz 載波
  void timer0 (void) interrupt 1
  {  remoteout = ~remoteout ;   }   
  / / 遙控信號(hào)38 kHz 載波輸出

  用學(xué)習(xí)到的脈沖高低電平(0 和1 信號(hào)) 來控制38 kHz的輸出,然后經(jīng)三極管放大信號(hào),編碼信號(hào)經(jīng)二極管以38 kHz 載波形式發(fā)射,這樣以軟件替代硬件,使電路簡(jiǎn)化,有效實(shí)現(xiàn)了紅外遙控信號(hào)的接收和轉(zhuǎn)發(fā)。如圖5 所示。

圖4  紅外信號(hào)的發(fā)射

圖4  紅外信號(hào)的發(fā)射

圖5  38 kHz 載波的軟件實(shí)現(xiàn)

圖5  38 kHz 載波的軟件實(shí)現(xiàn)

  2. 4  紅外編碼脈沖

  學(xué)習(xí)型紅外遙控器對(duì)微處理器的頻率要求比較高,選擇單片機(jī)的晶振頻率12 MHz ,其頻率大小直接影響到遙控器的學(xué)習(xí)效果。通過系統(tǒng)設(shè)計(jì)的遙控器學(xué)習(xí)效果優(yōu)良,能學(xué)習(xí)到的各種紅外脈沖。

  圖6 以Ht6221 標(biāo)準(zhǔn)紅外遙控器為例,其波形為"1"鍵的紅外編碼脈沖。圖6 (a) 的編碼脈沖是學(xué)習(xí)型紅外遙控器學(xué)習(xí)到的,圖6 (b) 的編碼脈沖是Ht6221 標(biāo)準(zhǔn)紅外遙控器發(fā)射出的,學(xué)習(xí)到的"1"號(hào)鍵完全能取代原始的遙控器的"1"號(hào)鍵。遙控器發(fā)射電路中的38 kHz載波用單片機(jī)中的定時(shí)器產(chǎn)生,這樣節(jié)約了硬件資源,簡(jiǎn)化了電路。

圖6  紅外編碼脈沖

圖6  紅外編碼脈沖

  3  結(jié) 語(yǔ)

  該次設(shè)計(jì)中紅外遙控器,可以準(zhǔn)確采集到紅外編碼脈沖信號(hào),并將原始的紅外編碼信號(hào)保存,發(fā)送,能成功學(xué)習(xí)各種不同家用紅外遙控器,對(duì)各種家用紅外遙控器進(jìn)行控制,解決了家庭用戶眾多遙控器的煩勞。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。