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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430的低功耗RF/紅外控制器的設(shè)計(jì)

          基于MSP430的低功耗RF/紅外控制器的設(shè)計(jì)

          作者: 時(shí)間:2010-11-24 來源:網(wǎng)絡(luò) 收藏

          0 引言

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

            在智能化家居控制系統(tǒng)應(yīng)用中,無線通信和控制已經(jīng)越來越廣泛地被運(yùn)用。為了實(shí)現(xiàn)對(duì)居室電器設(shè)備的集中無線控制,可采用電話遙控、手持遙控器進(jìn)行遠(yuǎn)程或短距離的無線控制,但所控制和傳輸?shù)男盘?hào)都是RF信號(hào)。然而有些被控對(duì)象本身是用信號(hào)遙控的,例如電視機(jī)、空調(diào),由于各種品牌的空調(diào)都有自己的編碼信號(hào),相互不能通用,這就給智能化家居控制系統(tǒng)中遙控器的集中無線控制帶來了極大的不便。本文就的低紅外與實(shí)現(xiàn)進(jìn)行介紹。

            1 工作原理

            大多數(shù)紅外遙控信號(hào)的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40KHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的PWM信號(hào),如圖1所示。各種品牌的紅外遙控器的編碼信號(hào)互不兼容 [1][2]。


            對(duì)該波形進(jìn)行測量,并將高低電平的寬度存于 Flash中,而不管其如何編碼。當(dāng)需要對(duì)遠(yuǎn)端的紅外設(shè)備進(jìn)行無線控制時(shí),在內(nèi)存中取出該數(shù)字序列,經(jīng) Msp430單片機(jī)中的捕獲比較功能模塊,將其還原成紅外編碼信號(hào)。為了實(shí)現(xiàn)無線傳輸,將該信號(hào)調(diào)制到 350MHz或 420MHz的無線電波上進(jìn)行傳送。

            由于紅外編碼信號(hào)的頻率只有幾十 K左右,而無線載波的頻率是350MHz,以上變換的誤差很小。而防止產(chǎn)生誤動(dòng)作的關(guān)鍵是脈沖函數(shù)的寬度的選取。采樣頻率越高,誤差就越小,但內(nèi)存的用量就越大。本文選取采樣頻率為紅外基波頻率(20KHz)的 6倍 [6][7]。

            接收端的電路先將收到的調(diào)制信號(hào)解調(diào),得到與圖 1相似的紅外波形,該信號(hào)通過紅外驅(qū)動(dòng)電路將驅(qū)動(dòng)紅外發(fā)光兩極管,就可以得到遙控發(fā)射信號(hào),完成要求的控制動(dòng)作。只要解調(diào)信號(hào)和實(shí)際的紅外波形有很好的一致性,就能夠正確的實(shí)現(xiàn)紅外遙控。

            2 系統(tǒng)的硬件結(jié)構(gòu)

            本分主和接收節(jié)點(diǎn)兩個(gè)部分。如圖 2所示。


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(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); })();