新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的智能學習型紅外空調遙控器

        基于單片機的智能學習型紅外空調遙控器

        作者: 時間:2015-02-02 來源:網絡 收藏

          3系統軟件設計與實現

        本文引用地址:http://www.104case.com/article/269330.htm

          系統程序主要分為三個部分:學習模式,發送模式以及通信模式。當第一次進入系統時,初始化設置設備地址,然后設置通信的波特率,提供1200、9600以及19200三種選擇。系統主程序即在三個模式間切換,默認進入通信模式,可以通過模式切換按鍵改變模式,也可以通過上位機直接更改。出于系統的穩定性需要,在程序中加入了軟件看門狗,防止程序"跑飛".

          3.1學習功能設計

          3.1.1學習模式

          紅外遙控器的碼型多樣,編碼一般包括:幀頭、系統碼、操作碼、同步碼、幀間隔碼、幀尾,且同步碼與幀間隔碼出現的位置不固定,因此碼型格式靈活多變,很難區分各種碼型的編碼含義;各個紅外遙控的編碼長度不盡相同,發送方式也多種多樣,最常用的有三種:完整幀只發送一次、完整幀重復發送兩次、先發送一個完整幀,后重復發送幀頭和一個脈沖。面對如此多樣化的編碼方式,如果區分每種編碼的含義進行學習,學習的復雜度將會很高,并且通用性也會受到影響。所以,為了避開各色碼型的干擾,系統在學習時并不關心碼型數據的實際意義,只記錄脈沖的時間寬度。系統主要針對載波頻率為38KHz(周期為26us)的紅外遙控器,利用變量IR_time記錄接收到的脈沖寬度。學習程序流程如圖4所示。

          

         

          圖4學習程序流程圖。

          3.1.2壓縮存儲

          由于不考慮具體的碼型數據意義,只記錄脈沖的寬度,系統的學習功能通用性得到了提高,但這種方式學習到的數據量很大,對存儲的要求就變得很高。

          盡管系統針對存儲的大容量需求設計了單獨的存儲模塊,但考慮到應在不增加硬件開銷的情況下保證足夠的存儲容量,以及滿足未來擴展的需要,在進行數據存儲時,采取了數據壓縮技術。

          從學習到的電平數據可以發現,無論數據是1還是0,都有相同時長的電平出現,這符合游程編碼的特點。游程編碼是一種簡單的非破壞性資料壓縮法,其好處是加壓縮和解壓縮都非常快,其方法是計算連續出現的資料長度壓縮之。比如:一張二值圖像的數據為:

          WWWWWWWWBWWWWBBBWWWWWWWBWWWWW

          使用游程編碼壓縮可得:8W1B4W3B7W1B 5W.

          可見,壓縮效率極高,且可避免復雜的編碼和解碼運算。所以,在存儲時,系統對學習到的數據進行游程編碼壓縮[7,8].例如,學習到的一組空調遙控器的數據為[157 153 23 53…23 53 23 180 156 152 23 53…53 23],如圖5所示,對重復的電平數據采用游程編碼壓縮后,原本需要199字節的空調遙控碼,只需要106個字節即可存儲,壓縮率達53.27%.因此,在存儲時針對學習到的數據特點采取游程編碼壓縮,可以有效節約存儲空間。

          

         

          圖5一組典型的空調數據幀。

        萬能遙控器相關文章:萬能遙控器代碼


        手機電池相關文章:手機電池修復


        pwm相關文章:pwm是什么


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        塵埃粒子計數器相關文章:塵埃粒子計數器原理
        紅外遙控器相關文章:紅外遙控器原理
        晶振相關文章:晶振原理
        脈沖點火器相關文章:脈沖點火器原理
        雙絞線傳輸器相關文章:雙絞線傳輸器原理


        關鍵詞: 單片機 PWM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 荣昌县| 梓潼县| 崇阳县| 禹州市| 县级市| 临潭县| 武清区| 佛山市| 汤阴县| 开阳县| 体育| 五指山市| 泗洪县| 长岛县| 阳朔县| 香格里拉县| 金川县| 获嘉县| 松阳县| 乐至县| 余干县| 绥芬河市| 时尚| 尉犁县| 鱼台县| 嫩江县| 石屏县| 顺昌县| 禄劝| 清流县| 府谷县| 遂昌县| 长武县| 昌图县| 冕宁县| 南汇区| 庆元县| 珠海市| 大荔县| 吉木萨尔县| 十堰市|