新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 智能型紅外遙控器的設(shè)計(jì)

智能型紅外遙控器的設(shè)計(jì)

作者:陳祖爵 王建毅 時(shí)間:2008-05-08 來(lái)源:微計(jì)算機(jī)信息 收藏

  引言

本文引用地址:http://2s4d.com/article/82284.htm

  空調(diào)已進(jìn)入千家萬(wàn)戶(hù),作為空調(diào)的用戶(hù)界面,其設(shè)計(jì)的原理已成熟。目前,對(duì)學(xué)習(xí)型智能遙控器的研制開(kāi)展了大量的工作,旨在提高遙控器的智能化和通用性,取得了較大的進(jìn)展,并有部分產(chǎn)品進(jìn)入市場(chǎng)。當(dāng)前研制開(kāi)發(fā)的學(xué)習(xí)型智能遙控器主要采用38KHz固定載波頻率,遙控器編碼不壓縮或簡(jiǎn)單壓縮。不同于其它家電遙控器(如彩電),發(fā)出的編碼包含當(dāng)前狀態(tài)的多種信息,而彩電遙控器的編碼是一鍵一碼。把空調(diào)遙控器所有可能的狀態(tài)都要學(xué)習(xí)和存儲(chǔ),需要花費(fèi)大量的時(shí)間和存儲(chǔ)空間。為此,提出了一種基于溫度控制的編碼狀態(tài)轉(zhuǎn)換算法,為基于單片機(jī)的智能型紅外空調(diào)遙控器的設(shè)計(jì)提供了可能。

  1 紅外遙控碼型分析

  1.1 紅外遙控碼型研究分析

  目前,各電器生產(chǎn)廠家對(duì)遙控脈沖編碼及碼流還沒(méi)有形成統(tǒng)一的標(biāo)準(zhǔn)。通過(guò)對(duì)市面上比較普遍的幾十種遙控器的碼型結(jié)構(gòu)進(jìn)行研究分析,總結(jié)其特點(diǎn)如下: 
  (1)碼型多樣:脈沖流中一般包括:幀頭、系統(tǒng)碼、操作碼、同步碼、幀間隔碼、幀尾。且同步碼與幀間隔碼出現(xiàn)的位置不固定。針對(duì)這些靈活多變的碼型格式,很難區(qū)分各種脈沖流的含義。

  (2)載波頻率不固定:常用的遙控器采用38KHz作為載波頻率,有的采用36KHz-42KHz之間的載頻。

  (3)編碼長(zhǎng)短不一:彩電類(lèi)產(chǎn)品一般只有幾十位,空調(diào)遙控器編碼長(zhǎng)達(dá)上百位。

  (4)不同的發(fā)送方式:常用有三種方式,即:完整幀只發(fā)送一次(如圖1a)、完整幀重復(fù)發(fā)送兩次(如圖1b)、先發(fā)一個(gè)完整幀,后重復(fù)發(fā)送幀頭和一個(gè)脈沖(如圖1c)。

       
        
       

  圖1 紅外編碼完整幀格式

  由于編碼方式的多樣化,若區(qū)分每種碼流的含義進(jìn)行學(xué)習(xí),其復(fù)雜性極高且占用很大的內(nèi)存空間。本系統(tǒng)避開(kāi)了各種形色碼流的干擾,總結(jié)了編碼的共性,只需了解脈沖的時(shí)間寬度,無(wú)需關(guān)心它的實(shí)際意義。因此,在系統(tǒng)中沒(méi)有引導(dǎo)碼、0碼、1碼、同步幀、反碼等,定義了用0、1、2等數(shù)字表示各種時(shí)間寬度不等的脈沖流的算法。

  1.2 空調(diào)紅外遙控碼型研究分析

  空調(diào)遙控器開(kāi)發(fā)的關(guān)鍵是溫度狀態(tài)的轉(zhuǎn)化。對(duì)多種類(lèi)型空調(diào)遙控器紅外編碼進(jìn)行大量研究分析,找出了其編碼規(guī)律:在空調(diào)的每一個(gè)編碼中,其中有4位二進(jìn)制表示開(kāi)始溫度(溫度1),另外4位二進(jìn)制表示按鍵后的末溫度(溫度2),當(dāng)遙控器進(jìn)行溫度控制時(shí),前一按鍵的末狀態(tài)跳轉(zhuǎn)到后一按鍵的初狀態(tài),從而可以對(duì)空調(diào)的溫度進(jìn)行連續(xù)控制。對(duì)空調(diào)遙控器紅外編碼進(jìn)行提取,取出有關(guān)表示溫度的部分(各種空調(diào)遙控器的編碼規(guī)律類(lèi)似),如下表所示:

  空調(diào)溫度部分編碼表

       

      

  圖2 空調(diào)溫度編碼狀態(tài)轉(zhuǎn)換圖

  2 遙控器硬件結(jié)構(gòu)

  遙控器由STC系列STC89C51RD+單片機(jī)、紅外編碼發(fā)射與接收電路、鍵盤(pán)、顯示屏、SD卡接口等外圍器件組成。其中SD卡用來(lái)存放和保存學(xué)習(xí)的遙控器編碼,并能與PC機(jī)進(jìn)行交流;遙控器編碼的識(shí)別是通過(guò)接收電路和整形電路來(lái)實(shí)現(xiàn),為了能識(shí)別一定范圍內(nèi)的載頻,編碼接收電路中不含解調(diào)電路,載頻的提取是用單片機(jī)來(lái)實(shí)現(xiàn)。

       

  圖3 遙控器硬件結(jié)構(gòu)

  3 軟件設(shè)計(jì)

  3.1 編碼狀態(tài)轉(zhuǎn)換算法與實(shí)現(xiàn)

  空調(diào)遙控器編碼復(fù)雜,主要有制熱、制冷、除濕、通風(fēng)等模式,有些模式下還有不同的風(fēng)速級(jí)別,并在每一種風(fēng)速下,其溫度狀態(tài)變化規(guī)律不同。為此,對(duì)空調(diào)遙控器的編碼創(chuàng)建了狀態(tài)轉(zhuǎn)換算法。算法中通過(guò)建立空調(diào)遙控器工作模式、風(fēng)速等級(jí)和溫度值序列三層關(guān)系模型,設(shè)計(jì)了對(duì)應(yīng)的數(shù)組序列,每一個(gè)數(shù)組序列中存放著各種模式下不同風(fēng)速等級(jí)時(shí)的溫度值編碼,通過(guò)指針?lè)绞竭M(jìn)行調(diào)用。例如:圖2中的二進(jìn)制數(shù)據(jù):{0000,0001,0011,0010,0100,0101,0111,0110,1100,1101,1111,1110,1000,1001,1011,1010}轉(zhuǎn)換成十進(jìn)制后,初始化數(shù)組data1,則:data1[i]={0,1,3,2,4,5,7,6,12,13,15,14,8,9,11,10};指針P = data1[i%16]。結(jié)合data1和指針P,空調(diào)遙控器在一級(jí)風(fēng)速時(shí)的編碼狀態(tài)轉(zhuǎn)換流程見(jiàn)圖4:

       

  圖4 編碼狀態(tài)轉(zhuǎn)換流程

  3.2載波信號(hào)精密檢測(cè)

  遙控器載頻通常在36KHz-42KHz范圍之間,如簡(jiǎn)單的用38KHz的載頻調(diào)制,對(duì)有些遙控設(shè)備不能正確控制。為此,遙控器自學(xué)習(xí)時(shí),需要精確檢測(cè)編碼的載波頻率[1]。

  通常用單片機(jī)定時(shí)器檢測(cè)的最高頻率和遙控器的載波頻率屬同一量級(jí),無(wú)法精確測(cè)量載波脈沖的頻率。為此,提出了均值算法。將定時(shí)器1和定時(shí)器2(捕獲功能)配合使用,通過(guò)編碼脈沖寬度和載波脈沖數(shù)的測(cè)量,通過(guò)計(jì)算,得到精確的載波頻率。載波信號(hào)精確測(cè)量流程見(jiàn)圖5:

       

  圖5 載波信號(hào)精確測(cè)量流程圖

  3.3 信號(hào)識(shí)別、編碼分類(lèi)與發(fā)送

  遙控器編碼長(zhǎng)度為幾十位到上百位,而且,每個(gè)編碼的信息量較大。遙控器自學(xué)習(xí)時(shí),所有的編碼狀態(tài)都要按照脈沖寬度方式存儲(chǔ),要求較大的存儲(chǔ)空間。為此,提出了一種編碼壓縮技術(shù)[2][3]。遙控器編碼內(nèi)容包括:幀頭、機(jī)器碼、操作碼、同步碼、幀間隔和尾幀等類(lèi)型,自學(xué)習(xí)時(shí),對(duì)識(shí)別的遙控器編碼進(jìn)行分類(lèi),并按類(lèi)型號(hào)進(jìn)行存儲(chǔ),見(jiàn)圖6所示:

       

  圖6 信號(hào)識(shí)別、編碼分類(lèi)示意圖

  遙控器自學(xué)習(xí)編碼識(shí)別和分類(lèi)過(guò)程:

  (1) 紅外編碼和載波識(shí)別

  紅外編碼和載波周期相差較大,先設(shè)定一個(gè)脈沖周期的門(mén)限值THRESHOLD1。每當(dāng)有脈沖下降沿到時(shí),啟動(dòng)定時(shí)器開(kāi)始定時(shí),在下一個(gè)下降沿時(shí)定時(shí)為t。當(dāng)0THRESHOLD1時(shí),為紅外編碼脈沖。此時(shí)記錄T1的值為t,同理可檢測(cè)到T2,T3,T4…編碼脈沖的值。

  (2) 數(shù)組建立

  char sigdata[i];                

  typedef struct {

         union intchar    bith;  

         union intchar    bitl; 

  uchar    bitl1;             

  } timer[m];  

  其中:sigdata[i]存放編碼中順序出現(xiàn)幀的類(lèi)別;

  timer[m]存放 sigdata[i] 中幀的不同類(lèi)別的時(shí)間值。           

  (3) 編碼幀類(lèi)別識(shí)別

  將T(i+1)的t1、t2與T(i)的t1、t2分別進(jìn)行比較,若相等,timer[m]數(shù)組中不寫(xiě)入新的內(nèi)容,此時(shí),sigdata[i+1]=sigdata[i];否則,timer[m]中寫(xiě)入T(i+1)的時(shí)間值,且sigdata[i+1]中寫(xiě)入新的類(lèi)別號(hào)。例如學(xué)習(xí)一個(gè)按鍵編碼后:timer[m]={9000,4500,540,0,540,540,540,540,1650,0,……};sigdata[i]={1,2,3,3,4,……}。

  (4) 紅外編碼完整幀格式確定

  兩個(gè)完整幀之間有較長(zhǎng)的時(shí)間間隔,且這段時(shí)間間隔大于編碼中任何低電平的時(shí)間。為此,可定義THRESHOLD2為兩完整幀之間的間隔值;可定義THRESHOLD3為編碼脈沖結(jié)束后停止幀長(zhǎng)度。當(dāng)THRESHOLD3> t2 >THRESHOLD2時(shí),判斷為第二幀的開(kāi)始。再比較T(i+1)中t1,t2與T2中t1,t2的值,若相等,為一次發(fā)送兩個(gè)完整幀。否則,一次發(fā)一幀加幀頭和一個(gè)脈沖;當(dāng)t2 >THRESHOLD3,編碼接收完成,為一次只發(fā)送一個(gè)完整幀的情況。

  (5)  發(fā)送載波頻率初始值計(jì)算

  載波頻率=  ,6分頻時(shí)n=2;12分頻時(shí)n=4。得(RCAP2H,RCAP2L)=3*freq(freq為學(xué)習(xí)時(shí)檢測(cè)出的載波脈沖寬度)。

  4 結(jié)論

  通過(guò)對(duì)空調(diào)遙控器編碼的精簡(jiǎn),創(chuàng)建了狀態(tài)信息轉(zhuǎn)換表,當(dāng)每進(jìn)入一種模式時(shí),只需發(fā)射與溫度狀態(tài)信息相關(guān)的編碼,簡(jiǎn)化了發(fā)射編碼、提高了傳輸效率。開(kāi)發(fā)的遙控器自學(xué)習(xí)功能,通過(guò)編碼學(xué)習(xí)與原機(jī)進(jìn)行對(duì)比,每種脈沖流的時(shí)間僅差1個(gè)時(shí)鐘周期;采用均值算法,使發(fā)送的載波頻率誤差小于0.5KHz;設(shè)計(jì)的遙控器編碼矢量壓縮算法,存儲(chǔ)一個(gè)鍵碼(200個(gè)編碼)僅需134個(gè)存貯單元,壓縮比達(dá)8:1。上述技術(shù)為采用單片機(jī)實(shí)現(xiàn)智能空調(diào)遙控器創(chuàng)建了基礎(chǔ),其中,“狀態(tài)信息轉(zhuǎn)換表的創(chuàng)建”和“高精度載波頻率測(cè)量”是本文的主要?jiǎng)?chuàng)新。

  參考文獻(xiàn):

  [1]  江玉潔.新型頻率測(cè)量方法的研究[M]. 儀器儀表學(xué)報(bào),2004,22:30-33

  [2]  李冬梅等.通用學(xué)習(xí)式中數(shù)據(jù)壓縮與識(shí)別算法[M]. 清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2000,40:85-88

  [3]  張鳴瑞等.編碼理論[M ]. 北京:航空航天大學(xué)出版社,1990.


  [4]  安穎、劉麗娜.具有學(xué)習(xí)功能的智能遙控器.微計(jì)算機(jī)信息,2005 No.3

  [5]  VITERBI,A.J.K.OMURA,Principle of digital communication and coding, McGraw-Hill Book Company,New York,1979

紅外遙控器相關(guān)文章:紅外遙控器原理

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉