<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 用87LPC764實現(xiàn)遙控信號的解碼

          用87LPC764實現(xiàn)遙控信號的解碼

          作者:浙江大學(xué)控制系系統(tǒng)工程研究所 劉鍇 吳明光/浙江大學(xué)機械與能源工程學(xué)院 魏欣 時間:2004-09-07 來源:電子設(shè)計應(yīng)用 收藏

          電子設(shè)計應(yīng)用2003年第5期

          本文引用地址:http://www.ex-cimer.com/article/3224.htm

          摘   要: 本文針對家電系統(tǒng)中使用專用解碼芯片解碼的方法消耗系統(tǒng)資源多、占用空間大、成本高等問題,提出了一種用單片機對編碼芯片的信號進(jìn)行解碼的方法,并介紹了其硬件結(jié)構(gòu)和軟件實現(xiàn)的流程。
          關(guān)鍵詞: ;;

          引言
          在紅外/無線遙控應(yīng)用中,與PT2272是一對常用的編碼和解碼IC。使用該組芯片的典型家電遙控收發(fā)系統(tǒng)用PT2272來解碼(圖1中虛線箭頭所示)。PT2272可以獲得較快的解碼速度,但是PT2272采用并行輸出的方式,占用單片機I/O資源多,整個系統(tǒng)的開銷和成本相對較大。如果采用單片機兼作解碼器的技術(shù)(圖1中粗實線箭頭所示),不僅可以省去芯片PT2272,減少中間環(huán)節(jié),增強系統(tǒng)的可靠性,而且僅占用了單片機上兩個I/O口,充分利用了單片機資源,節(jié)省了電路板上的空間,降低了成本,具有很好的實用價值。

          圖1 遙控系統(tǒng)結(jié)構(gòu)圖

          圖2 PT2262引腳排列圖


          PT2262編碼原理
          PT2262是Princeton Technology公司的一款適用于紅外和無線遙控,將載波振蕩、編碼、發(fā)射部分集于一身的集成電路。它具有價格低、功耗小、抗擾性好、單電阻振蕩、適用電壓范圍寬等優(yōu)點,外圍電路簡單,使用方便。目前被廣泛應(yīng)用于家電遙控、車門遙控、遙控玩具及工業(yè)遙控等領(lǐng)域。
          PT2262芯片引腳排列如圖2所示。各引腳功能如下:A0~A5為地址輸入,可編制成三種狀態(tài):1、0和高阻態(tài);A6/D0~A11/D5為地址或數(shù)據(jù)輸入,取決于接收端的譯碼器。做地址輸入時,可編制成三種狀態(tài):1、0和高阻態(tài);做數(shù)據(jù)輸入時,可編成l和0兩種狀態(tài)。該芯片最大編碼容量為531441(312)種。為發(fā)射使能端,低電平有效。OSC1、OSC2外接振蕩電阻,決定電路時鐘頻率。Dout為數(shù)據(jù)輸出端。由地址、數(shù)據(jù)的不同狀態(tài)而決定的各位編碼由此腳串行輸出。PT2262 的信號發(fā)送格式如圖3所示。
          每當(dāng)按鍵有效時,PT2262 發(fā)送四次編碼。每發(fā)送一次編碼都有5ms 寬度的低電平分開,而16ms的編碼是由A0~A11十二個碼組成,低位在前,高位在后。
          PT2262每組發(fā)送12位三態(tài)數(shù)據(jù),要把三態(tài)碼轉(zhuǎn)換成二進(jìn)制形式,每位數(shù)據(jù)(0,1,高阻態(tài))由兩個脈沖位組成(具體編碼格式見圖4),接收端的信號與發(fā)送的信號高低電平正好相反。在接收端,把負(fù)電平的脈沖作為有效信號,這樣的脈沖有兩種,一種為寬脈沖,長度約490μs,一種為窄脈沖,寬度約165μs。每一個數(shù)據(jù)位的寬度約為1.3ms,每組12位數(shù)據(jù)的寬度約為16ms。如果把寬脈沖看作二進(jìn)制“0”,窄脈沖看作二進(jìn)制“1”,那么接收到的二進(jìn)制碼和發(fā)送的三態(tài)碼的對應(yīng)關(guān)系如表1所示。這樣,解碼的對象實際上就是與12位三態(tài)碼對應(yīng)的24位的二進(jìn)制碼。

          圖3 PT2262發(fā)送格式

          圖4 PT2262編碼格式

          解碼原理及硬件結(jié)構(gòu)
          每檢測到一次有效按鍵,PT2262都發(fā)送四次編碼,接收端收到的編碼間隔是5ms的高電平??梢岳眠@一特點先檢測有沒有接收到數(shù)據(jù)。當(dāng)有數(shù)據(jù)的時候,就去掉第一次編碼的信號,接收到5ms的高電平的負(fù)跳變后才開始解碼。解碼時,使用單片機內(nèi)的比較器判斷信號的電平跳變,用定時器記錄信號相鄰下降沿和上升沿之間的時間,判斷是寬脈沖(二進(jìn)制1)還是窄脈沖(二進(jìn)制0),將該二進(jìn)制數(shù)值記錄下來,就得到了與發(fā)送端相對應(yīng)的編碼。
          本文采用的解碼單片機是Philips公司的。這是一款性價比較高的80C51改進(jìn)型MCU,增加了WDT、I2C、模擬比較器等功能。利用其模擬比較器的功能可以較方便的實現(xiàn)對PT2262信號的解碼,而且僅占用單片機的2個I/O口。解碼部分的硬件連接方式見圖5。圖中遙控接收頭是一個模擬接收電路,接收發(fā)送方的物理信號,將信號傳送到單片機比較器的輸入腳。
          內(nèi)置了2個模擬信號比較器,CMP1和CMP2。每一個比較器包含一個正相輸入端、一個反相輸入端和一個輸出端。當(dāng)正相輸入電壓大于反相輸入電壓時,比較器輸出邏輯“1”,反之則輸出“0”。同時每一個比較器都可以成為一個中斷源。
          解碼過程只需要一個比較器,外接一個參考電壓作為判斷高低電平信號的參考。當(dāng)接收端信號電平發(fā)生跳變時,產(chǎn)生一個比較器中斷,利用中斷服務(wù)程序可以實現(xiàn)解碼操作。

          圖5 接收頭與單片機硬件連接圖

          圖6  比較器中斷程序流程圖

          解碼軟件的實現(xiàn)
          解碼程序在比較器中斷服務(wù)程序中實現(xiàn)。第一個下降沿表明編碼輸出開始,這時將時間記錄為last_time,當(dāng)比較器輸出跳變?yōu)楦唠娖綍r,記錄當(dāng)前時間current_time,并且記錄脈沖寬(current_time - last_time),判斷收到的為寬脈沖還是窄脈沖,如果是窄脈沖,記錄為1,寬脈沖記錄為0。
          圖6是比較器中斷程序流程圖。每一組有效的編碼由24個位組成,因此程序中需要有一個脈沖計數(shù)變量來記錄是否有24位碼,只有確認(rèn)收到24位碼后,才認(rèn)為這次按鍵有效。同時需要防止將用戶的一次按鍵解釋為多次按鍵,需要有去抖功能。可以設(shè)一個變量來記錄同一個鍵值的收到次數(shù),當(dāng)它的記錄小于某一預(yù)定的值時,表示用戶在進(jìn)行同一次按鍵操作。完整的接收到一組編碼以后,在中斷程序中將鍵值有效標(biāo)志key_flag置1,主程序循環(huán)中如果查詢到key_flag為1,則保存這個鍵碼,即完成了一次解碼的操作。
           
          結(jié)語
          文章提出的解碼方法已經(jīng)成功應(yīng)用于一個無線遙控浴霸產(chǎn)品。使用該方法,遙控模塊的成本降低了15%左右,而且電路板空間節(jié)省了5%左右,硬件資源也得到了充分利用?!?/p>

          參考文獻(xiàn)
          1 Princeton Technology Corp. Remote Control Encoder. 1999
          2 Philips Semiconductor. 87LPC764 Data Sheet. 2001
          3 李堅. PT2262-IR-PT2272芯片應(yīng)用.現(xiàn)代通信.1997.2



          關(guān)鍵詞: 87LPC764 PT2262 單片機解碼 遙控

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();