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

          新聞中心

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

          基于MSP430的低功耗RF/紅外控制器的設計

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



            1)電源模塊

            電源模塊的主要功能是實現(xiàn)電壓的轉(zhuǎn)換。把220V的交流電轉(zhuǎn)換成數(shù)字電路工作所需要的3V和6V的直流電,其中3V是主要供單片機所使用的,6V供給一體化接收頭和RF發(fā)射、接收模塊使用的。此系統(tǒng)的電源回路采用無變壓器的有源電路,它主要由一些電容、電阻、二極管、穩(wěn)壓管等組成,可達到體積小,耗電少、經(jīng)濟實用、性能穩(wěn)定可靠的指標。

            2)模塊

            模塊以F1121單片機為,它的主要功能是完成與其它模塊的接口,控制和協(xié)調(diào)各模塊的工作。是TI公司推出的16位系列單片機,它具有4kB+256字節(jié)的FLASH ROM和256字節(jié)的RAM的存儲空間。因此,在整個硬件電路上無須外加程序存儲器。在電池供電的低應用中具有獨特的優(yōu)勢,其工作電壓在1.8-3.6V之間,正常工作時可控制在200μA左右,低模式可實現(xiàn)2μA甚至0.1μA的低功耗。當單片機處于閑置狀態(tài)時,可以讓其處于睡眠狀態(tài)以降低供耗,可供選擇的有6種模式:活動方式(AM)和低功耗方式(LM0,LM1,LM2,LM3,LM4),低功耗方式可讓其最低功耗幾乎為零[3][4]。

            3)自學習模塊

            自學習模塊的主要功能是能夠?qū)W習并記錄各種格式紅外編碼波形,常規(guī)的方法是將各種型號的紅外編碼存于一個表中,但這需要海量存儲器。本模塊由單片機內(nèi)的捕獲/比較功能模塊、紅外一體化接收頭,2個開關,一個為自學習開關,另一個為復位開關,以及指示用的LED組成。

            圖3是捕獲比較模塊的結構框圖 [5]。捕獲比較模塊用于捕獲應用事件的發(fā)生時間,或產(chǎn)生定時間隔。利用Timer_Ad定時器的捕獲功能,將CCTL1中的模式位CAP置位,并選定任意跳變的脈沖觸發(fā)模式,當被測的紅外波形產(chǎn)生上升沿或下降沿時,定時器計數(shù)值將被復制到捕獲寄存器CCR1中。相鄰兩次跳變時所記錄的定時器計數(shù)值之差就是高電平或低電平的持續(xù)時間。將每個時間值保存在FLASH中,就是將紅外編碼波形完整的記錄下來。由于是波形的復制,可以避免由于廠家不同,紅外遙控器發(fā)出的紅外編碼信號不統(tǒng)一而帶來的麻煩。由于每發(fā)生一次捕獲,捕獲/比較模塊寄存器將產(chǎn)生中斷,因此程序能方便的判斷紅外波形是否結束。另外,捕獲/比較模塊中的輸出單元可根據(jù)定時器計數(shù)到CCRx和CCR0時,輸出PWM波形。


            由于MSP430具有高穩(wěn)定度的時鐘,所以所捕獲的紅外編碼有較精確的波形,能夠準確地復現(xiàn)紅外編碼信號,實現(xiàn)紅外編碼的自學習和存儲,以供紅外-射頻調(diào)制模塊的使用。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();